.486 .model flat, stdcall ImportTrapLocal MACRO name, arg @CATSTR(<_imp__>, name, <@>, arg) dd @CATSTR(name, <_Helper@>, arg) PUBLIC @CATSTR(<_imp__>, name, <@>, arg) ENDM ImportTrap MACRO name, arg ImportTrapLocal name, arg EXTERN @CATSTR(name, <_Helper@>, arg) : DWORD ENDM .data ImportTrap IsDebuggerPresent, 0 ImportTrap EncodePointer, 4 ImportTrap DecodePointer, 4 ImportTrap IsProcessorFeaturePresent, 4 ImportTrap HeapSetInformation, 16 ImportTrap InitializeCriticalSectionAndSpinCount, 8 ImportTrap InterlockedPushEntrySList, 8 ImportTrap InterlockedPopEntrySList, 4 ImportTrapLocal InterlockedCompareExchange, 12 .code InterlockedCompareExchange_Helper@12 PROC PRIVATE mov ecx,[esp+4] mov edx,[esp+8] mov eax,[esp+12] lock cmpxchg [ecx],edx ret 12 InterlockedCompareExchange_Helper@12 ENDP end