Function at 0x402370
Capabilities:
Print debug messages

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x406cd0
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
test esi, esi
push edi
je 0x402586
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
push 0xffffffffffffffff
push esi
call ebx
test eax, eax
jne 0x402586
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], 0
test eax, eax
jne 0x4023d0
push esi
lea ecx, [esp + 0x38]
call fcn.004064e2
jmp 0x4023db
push eax
push esi
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::FormatV
mov ebp, dword [esp + 0x3c]
cmp ebp, 0xffffffff
je 0x40242f
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::CString
push ebp
lea eax, [esp + 0x40]
push str.__At_Line:__d_
push eax
mov byte [esp + 0x34], 1
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x34]
push 0x40a1e8
call sub.MFC42.DLL_CString::TrimRight
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x3c]
mov byte [esp + 0x28], 0
call fcn.004064ca
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4024a5
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + esi - 1], 0xd
je 0x40246e
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + esi - 1], 0xa
je 0x40246e
push 0xa
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::operator_1
jmp 0x4024a5
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ecx + esi - 1]
cmp edi, esi
jb 0x402491
mov al, byte [edi]
cmp al, 0xd
je 0x40248c
cmp al, 0xa
jne 0x402491
dec edi
cmp edi, esi
jae 0x402482
inc edi
push 0xffffffffffffffff
push edi
call ebx
test eax, eax
jne 0x4024a5
push edi
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::operator
mov edx, dword [esp + 0x34]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, dword [esp + 0x30]
test edi, edi
je 0x402575
push 0xffffffffffffffff
push edi
call ebx
test eax, eax
jne 0x402575
push 0x40a1e4
push edi
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
mov edi, eax
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
test edi, edi
je 0x402575
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1a]
push eax
mov eax, dword [esp + 0x1c]
and ecx, 0xffff
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x1e]
and eax, 0xffff
push edx
mov edx, dword [esp + 0x1e]
mov ebx, dword [sym.imp.MSVCRT.dll_fprintf]
push eax
mov eax, dword [esp + 0x20]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
push str._04d__02d__02d__02d:_02d:_02d__0x_08X__
push edi
call ebx
mov ecx, dword [esp + 0x5c]
push ecx
push esi
push edi
call dword [sym.imp.MSVCRT.dll_vfprintf]
add esp, 0x30
cmp ebp, 0xffffffff
je 0x402563
push ebp
push str._At_Line:__d_
push edi
call ebx
add esp, 0xc
push 0x40a1a4
push edi
call ebx
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0xc
lea ecx, [esp + 0x34]
mov dword [esp + 0x28], 0xffffffff
call fcn.004064ca
mov ecx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret