| 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
|
|---|