Function at 0x401630
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x1c]
push edi
mov edi, ecx
mov al, byte [esi]
mov dword [esp + 0x14], edi
test al, al
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], 0
je 0x401949
push ebp
cmp byte [esi], 0x25
jne 0x401921
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
push esi
call ebp
mov esi, eax
mov al, byte [esi]
cmp al, 0x25
je 0x401927
xor edi, edi
test al, al
mov dword [esp + 0x10], edi
je 0x4016c0
cmp al, 0x23
jne 0x40168e
add dword [esp + 0x28], 2
jmp 0x4016ad
cmp al, 0x2a
jne 0x40169d
mov eax, dword [ebx]
add ebx, 4
mov dword [esp + 0x10], eax
jmp 0x4016ad
cmp al, 0x2d
je 0x4016ad
cmp al, 0x2b
je 0x4016ad
cmp al, 0x30
je 0x4016ad
cmp al, 0x20
jne 0x4016b8
push esi
call ebp
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x401683
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4016ee
push esi
call fcn.0040bb05
mov dword [esp + 0x14], eax
mov al, byte [esi]
add esp, 4
test al, al
je 0x4016ee
movsx ecx, al
push ecx
call fcn.0040b9eb
add esp, 4
test eax, eax
je 0x4016ee
push esi
call ebp
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x4016d3
mov al, byte [esi]
mov dword [esp + 0x14], 0
cmp al, 0x2e
jne 0x401744
push esi
call ebp
mov esi, eax
cmp byte [esi], 0x2a
jne 0x401716
mov edx, dword [ebx]
add ebx, 4
push esi
mov dword [esp + 0x18], edx
call ebp
mov esi, eax
jmp 0x401744
push esi
call fcn.0040bb05
mov dword [esp + 0x18], eax
mov al, byte [esi]
add esp, 4
test al, al
je 0x401744
movsx eax, al
push eax
call fcn.0040b9eb
add esp, 4
test eax, eax
je 0x401744
push esi
call ebp
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x401729
mov al, byte [esi]
xor ebp, ebp
cmp al, 0x49
jne 0x401762
cmp byte [esi + 1], 0x36
jne 0x401762
cmp byte [esi + 2], 0x34
jne 0x401762
add esi, 3
mov ebp, 0x40000
jmp case.0x401775.73
movsx eax, al
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x401775.73
xor ecx, ecx
mov cl, byte [eax + 0x401998]
jmp dword [ecx*4 + 0x401988]
mov ebp, 0x10000
jmp case.0x401775.70
mov ebp, 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
movsx eax, byte [esi]
or eax, ebp
cmp eax, 0x10063
jg 0x401834
je 0x401895
cmp eax, 0x73
jg 0x401826
je 0x40180a
cmp eax, 0x43
je 0x401895
cmp eax, 0x53
je 0x4017f7
cmp eax, 0x63
je 0x401895
movsx eax, byte [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x4017dc.73
xor edx, edx
mov dl, byte [eax + 0x4019d4]
jmp dword [edx*4 + 0x4019c0]
test ebp, 0x40000
je 0x4018c1
add ebx, 8
jmp 0x4018c4
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40187e
mov edi, 6
jmp 0x4018a7
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40181d
mov edi, 6
jmp 0x4018a7
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x401887
sub eax, 0x10043
je 0x401895
sub eax, 0x10
je 0x40184e
jmp 0x4017c5
cmp eax, 0x20053
jg 0x40185e
je 0x40186e
cmp eax, 0x10073
je 0x40184e
cmp eax, 0x20043
jmp 0x4017bf
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40181d
mov edi, 6
jmp 0x4018a7
sub eax, 0x20063
je 0x401895
sub eax, 0x10
jne 0x4017c5
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40187e
mov edi, 6
jmp 0x4018a7
push eax
call fcn.0040b1eb
add esp, 4
mov edi, eax
cmp edi, 1
jge 0x40189f
mov edi, 1
jmp 0x4018a7
mov edi, 2
add ebx, 4
jmp 0x4018a7
test edi, edi
je 0x4017c5
mov eax, dword [esp + 0x10]
cmp edi, eax
jg 0x4018b1
mov edi, eax
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x4017dc.73
cmp edi, eax
jl case.0x4017dc.73
mov edi, eax
jmp case.0x4017dc.73
add ebx, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, 0x20
add eax, ecx
cmp eax, edi
jl case.0x4017dc.73
mov edi, eax
jmp case.0x4017dc.73
push str.Floating_point____e____f____g__and___G__is_not_supported_by_the_WTL::CString_class.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp case.0x4017dc.73
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edi, 0x20
add eax, edx
add ebx, 4
cmp eax, edi
jl case.0x4017dc.73
mov edi, eax
jmp case.0x4017dc.73
add ebx, 4
mov eax, dword [esp + 0x28]
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
add eax, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x28], eax
jmp 0x401936
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
push esi
call ebp
mov ecx, dword [esp + 0x28]
sub eax, esi
add ecx, eax
mov dword [esp + 0x28], ecx
push esi
call ebp
mov esi, eax
cmp byte [esi], 0
jne 0x40165b
mov esi, dword [esp + 0x24]
pop ebp
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, edi
call fcn.00401ac0
test eax, eax
jne 0x401962
pop edi
pop esi
pop ebx
add esp, 0x10
ret 8
mov edx, dword [esp + 0x18]
mov eax, dword [edi]
push edx
push esi
push eax
call dword [sym.imp.USER32.dll_wvsprintfA]
push 0xffffffffffffffff
mov ecx, edi
call fcn.00401b50
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x10
ret 8