1 | .486
|
---|
2 | .model flat, stdcall
|
---|
3 |
|
---|
4 | ImportTrapLocal MACRO name, arg
|
---|
5 | @CATSTR(<_imp__>, name, <@>, arg) dd @CATSTR(name, <_Helper@>, arg)
|
---|
6 | PUBLIC @CATSTR(<_imp__>, name, <@>, arg)
|
---|
7 | ENDM
|
---|
8 |
|
---|
9 | ImportTrap MACRO name, arg
|
---|
10 | ImportTrapLocal name, arg
|
---|
11 | EXTERN @CATSTR(name, <_Helper@>, arg) : DWORD
|
---|
12 | ENDM
|
---|
13 |
|
---|
14 | .data
|
---|
15 | ImportTrap IsDebuggerPresent, 0
|
---|
16 | ImportTrap EncodePointer, 4
|
---|
17 | ImportTrap DecodePointer, 4
|
---|
18 | ImportTrap IsProcessorFeaturePresent, 4
|
---|
19 | ImportTrap HeapSetInformation, 16
|
---|
20 | ImportTrap InitializeCriticalSectionAndSpinCount, 8
|
---|
21 | ImportTrap InterlockedPushEntrySList, 8
|
---|
22 | ImportTrap InterlockedPopEntrySList, 4
|
---|
23 | ImportTrapLocal InterlockedCompareExchange, 12
|
---|
24 |
|
---|
25 | .code
|
---|
26 | InterlockedCompareExchange_Helper@12 PROC PRIVATE
|
---|
27 | mov ecx,[esp+4]
|
---|
28 | mov edx,[esp+8]
|
---|
29 | mov eax,[esp+12]
|
---|
30 | lock cmpxchg [ecx],edx
|
---|
31 | ret 12
|
---|
32 | InterlockedCompareExchange_Helper@12 ENDP
|
---|
33 | end
|
---|