Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
#include <asm.inc>
.code.align 4
EXTERN _cxx_frame_handler:PROC
#undef _MSVCRT_MACRO(START_VTABLE, shortname, cxxname)EXTERN _&shortname&_rtti:PROCEXTERN ___thiscall_&shortname&_vector_dtor:PROC .long _&shortname&_rttiPUBLIC _&shortname&_vtable_&shortname&_vtable:PUBLIC &cxxname&cxxname: .long ___thiscall_&shortname&_vector_dtorENDM
MACRO(DEFINE_EXCEPTION_VTABLE, shortname, cxxname) START_VTABLE shortname, cxxname EXTERN ___thiscall_exception_what:PROC .long ___thiscall_exception_whatENDM
START_VTABLE type_info, __dummyname_type_infoDEFINE_EXCEPTION_VTABLE exception, ??_7exception@@6B@DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@
// void call_copy_ctor( void *func, void *this, void *src, int has_vbase );PUBLIC _call_copy_ctor_call_copy_ctor: push ebp CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebp, 0 mov ebp, esp CFI_DEF_CFA_REGISTER ebp push 1 mov ecx, [ebp + 12] push dword ptr [ebp + 16] call dword ptr [ebp + 8] leave CFI_DEF_CFA esp, 4 CFI_SAME_VALUE ebp ret
// void DECLSPEC_NORETURN continue_after_catch( cxx_exception_frame* frame, void *addr );PUBLIC _continue_after_catch_continue_after_catch: mov edx, [esp + 4] mov eax, [esp + 8] mov esp, [edx - 4] lea ebp, [edx + 12] jmp eax
// void DECLSPEC_NORETURN call_finally_block( void *code_block, void *base_ptr );PUBLIC _call_finally_block_call_finally_block: mov ebp, [esp +8] jmp dword ptr [esp + 4]
// int call_filter( int (*func)(PEXCEPTION_POINTERS), void *arg, void *ebp );PUBLIC _call_filter_call_filter: push ebp push [esp + 12] mov ebp, [esp + 20] call dword ptr [esp + 12] pop ebp pop ebp ret
// void *call_handler( void * (*func)(void), void *ebp );PUBLIC _call_handler_call_handler: push ebp push ebx push esi push edi mov ebp, [esp + 24] call dword ptr [esp + 20] pop edi pop esi pop ebx pop ebp ret
PUBLIC ___CxxFrameHandler___CxxFrameHandler: push 0 push 0 push eax push[esp + 28] push[esp + 28] push[esp + 28] push[esp + 28] call _cxx_frame_handler add esp, 28 ret
END