Function at 0x40e820
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x10
push ebp
mov ebp, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x1c]
cmp word [esi], 0
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], 0
je 0x40eb90
push ebx
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
cmp word [esi], 0x25
jne 0x40eb75
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
cmp ax, 0x25
je 0x40eb75
xor edi, edi
cmp ax, di
mov dword [esp + 0x10], edi
je 0x40e8c3
cmp ax, 0x23
jne 0x40e885
add dword [esp + 0x28], 2
jmp 0x40e8af
cmp ax, 0x2a
jne 0x40e897
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x10], eax
jmp 0x40e8af
cmp ax, 0x2d
je 0x40e8af
cmp ax, 0x2b
je 0x40e8af
cmp ax, 0x30
je 0x40e8af
cmp ax, 0x20
jne 0x40e8bc
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40e878
cmp dword [esp + 0x10], 0
jne 0x40e8fd
push esi
call fcn.0046283f
mov dword [esp + 0x14], eax
movzx eax, word [esi]
add esp, 4
test ax, ax
je 0x40e8fd
jmp 0x40e8e0
movzx eax, ax
push eax
call fcn.00462812
add esp, 4
test eax, eax
je 0x40e8fd
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40e8e0
cmp word [esi], 0x2e
mov dword [esp + 0x14], 0
jne 0x40e95d
push esi
call ebx
mov esi, eax
cmp word [esi], 0x2a
push esi
jne 0x40e927
mov ecx, dword [ebp]
add ebp, 4
mov dword [esp + 0x18], ecx
call ebx
mov esi, eax
jmp 0x40e95d
call fcn.0046283f
mov dword [esp + 0x18], eax
movzx eax, word [esi]
add esp, 4
test ax, ax
je 0x40e95d
jmp 0x40e940
movzx eax, ax
push eax
call fcn.00462812
add esp, 4
test eax, eax
je 0x40e95d
push esi
call ebx
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40e940
movzx eax, word [esi]
xor ebx, ebx
cmp ax, 0x49
jne 0x40e980
cmp word [esi + 2], 0x36
jne 0x40e980
cmp word [esi + 4], 0x34
jne 0x40e980
add esi, 6
mov ebx, 0x40000
jmp case.0x40e992.71
movzx eax, ax
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x40e992.71
movzx edx, byte [eax + 0x40ec00]
jmp dword [edx*4 + 0x40ebf0]
mov ebx, 0x10000
jmp case.0x40e992.70
mov ebx, 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
or eax, ebx
cmp eax, 0x10063
jg 0x40ea58
je 0x40ea25
cmp eax, 0x73
jg 0x40ea4a
je 0x40ea32
cmp eax, 0x43
je 0x40ea25
cmp eax, 0x53
je 0x40e9f7
cmp eax, 0x63
je 0x40ea25
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x40e9f0.70
movzx eax, byte [eax + 0x40ec3c]
jmp dword [eax*4 + 0x40ec28]
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40ea09
lea edi, [eax + 6]
jmp 0x40eab0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
cmp edi, 1
jge 0x40eaa8
mov edi, 1
jmp 0x40eab0
mov edi, 2
add ebp, 4
jmp 0x40eab0
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40ea41
lea edi, [eax + 6]
jmp 0x40eab0
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x40ea10
sub eax, 0x10043
je 0x40ea25
sub eax, 0x10
je 0x40e9f7
jmp 0x40e9da
cmp eax, 0x20053
jg 0x40ea72
je 0x40ea82
cmp eax, 0x10073
je 0x40e9f7
cmp eax, 0x20043
jmp 0x40e9d8
sub eax, 0x20063
je 0x40ea25
sub eax, 0x10
jne 0x40e9da
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40ea91
lea edi, [eax + 6]
jmp 0x40eab0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ea94
sub eax, edx
sar eax, 1
jmp 0x40ea10
test edi, edi
je 0x40e9da
mov eax, dword [esp + 0x10]
cmp edi, eax
jg 0x40eaba
mov edi, eax
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x40e9f0.70
cmp edi, eax
jl case.0x40e9f0.70
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
add dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
jmp 0x40eb80
test ebx, 0x40000
je 0x40eaf0
add ebp, 8
jmp 0x40eaf3
add ebp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov edi, 0x20
lea eax, [ecx + edx]
cmp eax, edi
jl case.0x40e9f0.70
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
add dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
jmp 0x40eb80
push str.Floating_point____e____f____g__and___G__is_not_supported_by_the_WTL::CString_class.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
add dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x40eb80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, 0x20
add eax, ecx
add ebp, 4
cmp eax, edi
jl case.0x40e9f0.70
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
mov edi, eax
add dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
jmp 0x40eb80
add ebp, 4
add dword [esp + 0x28], edi
mov edi, dword [esp + 0x18]
mov ebx, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x40eb80
push esi
call ebx
sub eax, esi
sar eax, 1
add dword [esp + 0x28], eax
push esi
call ebx
mov esi, eax
cmp word [esi], 0
jne 0x40e851
pop ebx
mov edx, dword [esp + 0x24]
push edx
mov ecx, edi
call fcn.0040cdb0
test eax, eax
jne 0x40eba9
pop edi
pop esi
pop ebp
add esp, 0x10
ret 8
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [eax - 4]
push edx
add ecx, 1
push ecx
push eax
call fcn.00462731
add esp, 0x10
mov ecx, edi
call fcn.0040ceb0
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [edi]
mov dword [ecx - 8], eax
mov edx, dword [edi]
pop edi
pop esi
mov word [edx + eax*2], 0
mov eax, 1
pop ebp
add esp, 0x10
ret 8