Function at 0x402410
Capabilities:
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x41c58d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x2c], esi
call dword [sym.imp.Rotxe.dll_public:_void___thiscall_CTTXERFrame::constructor_void_]
lea edi, [esi + 0x2a4]
xor ebx, ebx
mov ebp, 1
mov dword [esp + 0x138], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], ebp
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0x144], ebp
mov dword [esi + 0x148], ebx
mov dword [esi + 0x14c], ebx
mov dword [esi + 0x150], ebx
mov dword [esi + 0x154], ebx
mov dword [edi], ebx
mov dword [esi + 0x3e8], ebx
push str.SpkrCal.crl
mov dword [esi + 0x3f4], ebx
mov dword [esi + 0x3f8], ebx
mov dword [esi + 0x3fc], ebx
mov dword [esi + 0x400], ebx
mov dword [esi + 0x404], ebx
mov dword [esi], 0x41d948
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0xbf800000
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0x3f800000
mov dword [esp + 0x2c], ebx
mov dword [esi + 0x408], ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [esi + 0x3ec], eax
push ebx
je 0x402bbf
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [esi + 0x3ec]
lea ebp, [esi + 0x188]
push 0x104
push ebp
push 0x1b
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
call sub.MFC42.DLL_AfxGetModuleState
push 0x80
push 0xe
push 0x80
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
push edi
push 0x41d918
push 3
push ebx
push 0x41d928
mov dword [esi + 0x3fc], eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x402b67
push str.WM_SPKCAL_INIT
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
push str.WM_SPKCAL_COMPLETE
mov dword [esi + 0x158], eax
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
mov ecx, dword [esi + 0x158]
push ebx
push ebx
push ecx
push 0xffff
mov dword [esi + 0x15c], eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [edi]
lea ecx, [esi + 0x150]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
mov eax, dword [edi]
lea ecx, [esi + 0x154]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [edi]
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [edi]
push ebp
push eax
mov edx, dword [eax]
call dword [edx + 0x20]
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x16c]
mov eax, dword [edi]
lea ebp, [esi + 0x3f0]
push ebp
push eax
mov edx, dword [eax]
call dword [edx + 0x2c]
mov al, byte [ebp]
push ebx
not al
and eax, 1
mov dword [esi + 0xac], eax
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x120]
push ebx
mov dword [esi + 0x3f8], ebx
call dword [sym.imp.openal32.dll_alcOpenDevice]
add esp, 4
cmp eax, ebx
mov dword [esi + 0x3f8], eax
je 0x402b04
push ebx
push eax
mov dword [esi + 0x3f4], ebx
call dword [sym.imp.openal32.dll_alcCreateContext]
add esp, 8
cmp eax, ebx
mov dword [esi + 0x3f4], eax
je 0x402a91
push eax
call dword [sym.imp.openal32.dll_alcMakeContextCurrent]
mov edx, dword [esi + 0x3f8]
push edx
call dword [sym.imp.openal32.dll_alcGetError]
lea eax, [esp + 0x1c]
push eax
push 0x100f
call dword [sym.imp.openal32.dll_alListenerfv]
mov edi, dword [sym.imp.openal32.dll_alListener3f]
push ebx
push ebx
push ebx
push 0x1004
call edi
push ebx
push ebx
push ebx
push 0x1006
call edi
lea ecx, [esi + 0x290]
push ecx
push 4
call dword [sym.imp.openal32.dll_alGenBuffers]
mov edi, dword [sym.imp.openal32.dll_alGetError]
call edi
lea ebx, [esi + 0x160]
push ebx
push 0xa
call dword [sym.imp.openal32.dll_alGenSources]
add esp, 0x40
call edi
mov edx, dword [ebx]
mov edi, dword [sym.imp.openal32.dll_alSourcef]
push 0x3f800000
push 0x100a
push edx
call edi
mov eax, dword [ebx]
push 0x3f800000
push 0x1003
push eax
call edi
mov ecx, dword [ebx]
mov ebp, dword [sym.imp.openal32.dll_alSourcei]
push 1
push 0x1007
push ecx
call ebp
mov edx, dword [ebx]
push 0x3f800000
push 0x1020
push edx
call edi
mov eax, dword [ebx]
mov ebx, dword [sym.imp.openal32.dll_alSource3f]
push 0xbf5db3d7
push 0
push 0xbf000000
push 0x1004
push eax
call ebx
mov ecx, dword [esi + 0x164]
add esp, 0x44
push 0x3f800000
push 0x100a
push ecx
call edi
mov edx, dword [esi + 0x164]
push 0x3f800000
push 0x1003
push edx
call edi
mov eax, dword [esi + 0x164]
push 1
push 0x1007
push eax
call ebp
mov ecx, dword [esi + 0x164]
push 0x3f800000
push 0x1020
push ecx
call edi
mov edx, dword [esi + 0x164]
push 0xbf5db3d7
push 0
push 0x3f000000
push 0x1004
push edx
call ebx
mov eax, dword [esi + 0x168]
add esp, 0x44
push 0x3f800000
push 0x100a
push eax
call edi
mov ecx, dword [esi + 0x168]
push 0x3f800000
push 0x1003
push ecx
call edi
mov edx, dword [esi + 0x168]
push 1
push 0x1007
push edx
call ebp
mov eax, dword [esi + 0x168]
push 0x3f800000
push 0x1020
push eax
call edi
mov ecx, dword [esi + 0x168]
push 0x3f5db3d7
push 0
push 0xbf000000
push 0x1004
push ecx
call ebx
mov edx, dword [esi + 0x16c]
add esp, 0x44
push 0x3f800000
push 0x100a
push edx
call edi
mov eax, dword [esi + 0x16c]
push 0x3f800000
push 0x1003
push eax
call edi
mov ecx, dword [esi + 0x16c]
push 1
push 0x1007
push ecx
call ebp
mov edx, dword [esi + 0x16c]
push 0x3f800000
push 0x1020
push edx
call edi
mov eax, dword [esi + 0x16c]
push 0x3f5db3d7
push 0
push 0x3f000000
push 0x1004
push eax
call ebx
mov ecx, dword [esi + 0x170]
add esp, 0x44
push 0x3f800000
push 0x100a
push ecx
call edi
mov edx, dword [esi + 0x170]
push 0x3f800000
push 0x1003
push edx
call edi
mov eax, dword [esi + 0x170]
push 1
push 0x1007
push eax
call ebp
mov ecx, dword [esi + 0x170]
push 0x3f800000
push 0x1020
push ecx
call edi
mov edx, dword [esi + 0x170]
push 0xbf800000
push 0
push 0
push 0x1004
push edx
call ebx
mov eax, dword [esi + 0x174]
add esp, 0x44
push 0x3f800000
push 0x100a
push eax
call edi
mov ecx, dword [esi + 0x174]
push 0x3f800000
push 0x1003
push ecx
call edi
mov edx, dword [esi + 0x174]
push 1
push 0x1007
push edx
call ebp
mov eax, dword [esi + 0x174]
push 0x3f800000
push 0x1020
push eax
call edi
mov ecx, dword [esi + 0x174]
push 0
push 0
push 0
push 0x1004
push ecx
call ebx
mov edx, dword [esi + 0x178]
add esp, 0x44
push 0x3f800000
push 0x100a
push edx
call edi
mov eax, dword [esi + 0x178]
push 0x3f800000
push 0x1003
push eax
call edi
mov ecx, dword [esi + 0x178]
push 1
push 0x1007
push ecx
call ebp
mov edx, dword [esi + 0x178]
push 0x3f800000
push 0x1020
push edx
call edi
mov eax, dword [esi + 0x178]
push 0x3f800000
push 0
push 0
push 0x1004
push eax
call ebx
mov ecx, dword [esi + 0x17c]
add esp, 0x44
push 0x3f800000
push 0x100a
push ecx
call edi
mov edx, dword [esi + 0x17c]
push 0x3f800000
push 0x1003
push edx
call edi
push 1
push 0x1007
mov eax, dword [esi + 0x17c]
push eax
call ebp
mov ecx, dword [esi + 0x17c]
push 0x3f800000
push 0x1020
push ecx
call edi
mov edx, dword [esi + 0x17c]
push 0
push 0
push 0xbf800000
push 0x1004
push edx
call ebx
mov eax, dword [esi + 0x180]
add esp, 0x44
push 0x3f800000
push 0x100a
push eax
call edi
mov ecx, dword [esi + 0x180]
push 0x3f800000
push 0x1003
push ecx
call edi
mov edx, dword [esi + 0x180]
push 1
push 0x1007
push edx
call ebp
mov eax, dword [esi + 0x180]
push 0x3f800000
push 0x1020
push eax
call edi
mov ecx, dword [esi + 0x180]
push 0
push 0
push 0x3f800000
push 0x1004
push ecx
call ebx
mov edx, dword [esi + 0x184]
add esp, 0x44
push 0x3f800000
push 0x1003
push edx
call edi
mov eax, dword [esi + 0x184]
push 0x3f800000
push 0x100a
push eax
call edi
mov ecx, dword [esi + 0x184]
push 0xbf800000
push 0
push 0
push 0x1004
push ecx
call ebx
mov edx, dword [esi + 0x184]
push 0x3f800000
push 0x1020
push edx
call edi
mov eax, dword [esi + 0x184]
push 1
push 0x1007
push eax
call ebp
mov ecx, dword [esp + 0x174]
add esp, 0x44
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c
ret
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
push 0x95
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], 1
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esi + 0x3ec]
lea ecx, [esp + 0x30]
push 0x100
push ecx
push 0x96
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [esp + 0x10]
push ebx
lea ecx, [esp + 0x34]
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CWnd::MessageBoxA
mov edx, dword [esi + 0x3f8]
push edx
call dword [sym.imp.openal32.dll_alcCloseDevice]
mov edi, dword [edi]
add esp, 4
mov eax, dword [edi]
push edi
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
push 0x95
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], 2
call sub.MFC42.DLL_CString::LoadStringA
mov edx, dword [esi + 0x3ec]
lea ecx, [esp + 0x30]
push 0x100
push ecx
push 0x96
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [esp + 0x10]
push ebx
lea ecx, [esp + 0x34]
push eax
push ecx
mov ecx, esi
call sub.MFC42.DLL_CWnd::MessageBoxA
mov edi, dword [edi]
push edi
mov edx, dword [edi]
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
push 0x95
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], 3
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [esi + 0x3ec]
lea eax, [esp + 0x30]
push 0x100
push eax
push 0x5f
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov edx, dword [esp + 0x10]
push ebx
lea eax, [esp + 0x34]
push edx
push eax
mov ecx, esi
call sub.MFC42.DLL_CWnd::MessageBoxA
call dword [sym.imp.ole32.dll_CoUninitialize]
push 1
call dword [sym.imp.MSVCRT.dll_exit]
push ebx
push str.Cannot_find_SpkrCal.crl_resource_file_
mov ecx, esi
call sub.MFC42.DLL_CWnd::MessageBoxA
push ebp
call dword [sym.imp.MSVCRT.dll_exit]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ecx + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
ret