Function at 0x40b8f0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1d0
mov eax, dword [0x493ea0]
push esi
push edi
push str._r_n___r_n
mov dword [esp + 0x1d8], eax
call fcn.0040b4e0
lea eax, [esp + 0x14]
push eax
call fcn.004116ee
lea ecx, [esp + 0x24]
push ecx
call fcn.0041167e
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x2c]
push eax
push str._s__s_r_n
call fcn.0040b4e0
add esp, 0x18
call fcn.0046eb29
mov eax, dword [eax + 0x10]
push eax
push str._s_r_n
call fcn.0040b4e0
xor eax, eax
mov ecx, 0x27
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.kernel32.dll_GetVersionExA]
add esp, 8
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], 0x9c
call edi
mov esi, eax
test esi, esi
jne 0x40b98c
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x2c], 0x94
call edi
mov eax, dword [esp + 0x38]
dec eax
je 0x40b99d
dec eax
jne 0x40b9c4
push str.Microsoft_Windows_NT
jmp 0x40b9bc
mov eax, dword [esp + 0x2c]
cmp eax, 4
ja 0x40b9b7
jne 0x40b9b0
mov eax, dword [esp + 0x30]
test eax, eax
ja 0x40b9b7
push str.Microsoft_Windows_95
jmp 0x40b9bc
push str.Microsoft_Windows_98
call fcn.0040b4e0
add esp, 4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push ecx
push edx
push str._Version__u._u__Build__u_
call fcn.0040b4e0
add esp, 0x10
test esi, esi
je 0x40ba08
movzx eax, word [esp + 0xbe]
movzx ecx, word [esp + 0xbc]
push eax
push ecx
push str._Service_Pack__u._u
call fcn.0040b4e0
add esp, 0xc
mov edi, dword [ebp + 8]
mov esi, dword [edi]
push str._r_n_r_n
call fcn.0040b4e0
mov edx, dword [esi]
push edx
call fcn.0040b1c0
push eax
mov eax, dword [esi]
push eax
push str.Exception_code:__08X__s_r_n
call fcn.0040b4e0
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x24]
push edx
push 0x104
lea eax, [esp + 0xe8]
push eax
push ecx
call fcn.0040b430
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xf0]
push edx
mov edx, dword [esi + 0xc]
push eax
push ecx
push edx
push str.Fault_address:___08X__02X:_08X__s_r_n
call fcn.0040b4e0
mov esi, dword [edi + 4]
push str._r_nRegisters:_r_n
call fcn.0040b4e0
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0xa8]
add esp, 0x40
push eax
mov eax, dword [esi + 0xac]
push ecx
mov ecx, dword [esi + 0xa4]
push edx
mov edx, dword [esi + 0xb0]
push eax
push ecx
push edx
push str.EAX:_08X_r_nEBX:_08X_r_nECX:_08X_r_nEDX:_08X_r_nESI:_08X_r_nEDI:_08X_r_n
call fcn.0040b4e0
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xbc]
push eax
push ecx
push str.CS:EIP:_04X:_08X_r_n
call fcn.0040b4e0
mov edx, dword [esi + 0xb4]
mov eax, dword [esi + 0xc4]
mov ecx, dword [esi + 0xc8]
push edx
push eax
push ecx
push str.SS:ESP:_04X:_08X__EBP:_08X_r_n
call fcn.0040b4e0
mov edx, dword [esi + 0x8c]
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
push edx
mov edx, dword [esi + 0x98]
push eax
push ecx
push edx
push str.DS:_04X__ES:_04X__FS:_04X__GS:_04X_r_n
call fcn.0040b4e0
mov eax, dword [esi + 0xc0]
add esp, 0x4c
push eax
push str.Flags:_08X_r_n
call fcn.0040b4e0
add esp, 8
call fcn.0040b540
test eax, eax
jne 0x40bb54
push str.IMAGEHLP.DLL_or_its_exported_procs_not_found
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
push esi
call fcn.0040b5e0
add esp, 4
mov ecx, dword [esp + 0x1d4]
call fcn.00410507
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
call fcn.0040b710
add esp, 4
call dword [sym.imp.kernel32.dll_GetCurrentProcess]
push eax
call dword [0x4a1280]
push 0x476468
call fcn.0040b4e0
mov ecx, dword [esp + 0x1d8]
add esp, 4
call fcn.00410507
pop edi
pop esi
mov esp, ebp
pop ebp
ret