Function at 0x409170
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 0xc]
xor edx, edx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp + 0xc], edx
movzx eax, word [edi]
test ax, ax
je 0x4094e4
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ecx, eax
cmp cx, 0x25
jne 0x4094c1
push esi
call edi
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x25
je 0x4094c1
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], ecx
test ax, ax
je 0x409222
mov edi, dword [ebp + 0xc]
mov ecx, eax
nop
cmp cx, 0x23
jne 0x4091db
add edi, 2
jmp 0x409203
cmp cx, 0x2a
jne 0x4091eb
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 4], eax
jmp 0x409203
cmp cx, 0x2d
je 0x409203
cmp cx, 0x2b
je 0x409203
cmp cx, 0x30
je 0x409203
cmp cx, 0x20
jne 0x409216
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x4091d0
cmp dword [ebp - 4], 0
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0xc]
jne 0x409256
push esi
call fcn.004198be
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 4], eax
test cx, cx
je 0x409256
push ecx
call fcn.0041994f
add esp, 4
test eax, eax
je 0x409256
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x409236
cmp word [esi], 0x2e
mov dword [ebp - 0xc], 0
jne 0x4092b8
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
push esi
cmp word [esi], 0x2a
jne 0x409285
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 0xc], eax
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
jmp 0x4092b8
call fcn.004198be
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0xc], eax
test cx, cx
je 0x4092b8
push ecx
call fcn.0041994f
add esp, 4
test eax, eax
je 0x4092b8
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x409298
movzx eax, word [esi]
mov dword [ebp - 8], 0
cmp eax, 0x49
jne 0x4092f9
movzx eax, word [esi + 2]
cmp eax, 0x36
jne 0x4092e3
cmp word [esi + 4], 0x34
jne 0x4092e3
add esi, 6
mov dword [ebp - 8], 0x40000
jmp case.0x409308.71
cmp eax, 0x33
jne 0x4092f4
cmp word [esi + 4], 0x32
jne 0x4092f4
add esi, 6
jmp case.0x409308.71
add esi, 2
jmp case.0x409308.71
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x409308.71
movzx eax, byte [eax + 0x409544]
jmp dword [eax*4 + 0x409534]
mov dword [ebp - 8], 0x10000
jmp case.0x409308.70
mov dword [ebp - 8], 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
or eax, dword [ebp - 8]
cmp eax, 0x10063
ja 0x4093c3
je 0x409355
cmp eax, 0x73
ja 0x4093b5
je 0x40939c
cmp eax, 0x43
je 0x409355
cmp eax, 0x53
je 0x409383
cmp eax, 0x63
jne 0x409428
mov edi, 2
add ebx, 4
mov eax, dword [ebp - 4]
cmp edi, eax
cmovg eax, edi
mov edi, eax
mov eax, dword [ebp - 0xc]
test eax, eax
je case.0x40943e.70
cmp edi, eax
cmovl eax, edi
mov edi, eax
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4094cb
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x409391
lea edi, [eax + 6]
jmp 0x40935d
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
jmp 0x409415
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x4093aa
lea edi, [eax + 6]
jmp 0x40935d
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
jmp 0x409415
sub eax, 0x10043
je 0x409355
sub eax, 0x10
je 0x409383
jmp 0x409428
cmp eax, 0x20053
ja 0x4093e0
je 0x4093f0
cmp eax, 0x10073
je 0x409383
cmp eax, 0x20043
je 0x409355
jmp 0x409428
sub eax, 0x20063
je 0x409355
sub eax, 0x10
jne 0x409428
mov edi, dword [ebx]
add ebx, 4
test edi, edi
jne 0x409403
mov edi, 6
jmp 0x40935d
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x409406
sub edi, ecx
sar edi, 1
cmp edi, 1
mov eax, 1
cmovl edi, eax
test edi, edi
jne 0x40935d
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x40943e.70
movzx eax, byte [eax + 0x409580]
jmp dword [eax*4 + 0x40956c]
mov eax, dword [ebp - 8]
mov edi, 0x20
and eax, 0x40000
neg eax
sbb eax, eax
and eax, 4
add eax, 4
add ebx, eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 4]
cmp eax, edi
cmovge edi, eax
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4094cb
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 [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4094cb
mov eax, dword [ebp - 0xc]
mov edi, 0x20
add eax, dword [ebp - 4]
add ebx, 4
cmp eax, edi
jl case.0x40943e.70
mov edi, eax
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4094cb
add ebx, 4
add dword [ebp + 0xc], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4094cb
push esi
call edi
sub eax, esi
sar eax, 1
add dword [ebp + 0xc], eax
push esi
call edi
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x4091a0
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x10]
mov ecx, ebx
push edx
call fcn.004095c0
test eax, eax
jne 0x4094fc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebx]
push dword [ebp - 0x14]
push 0
mov eax, dword [ecx - 4]
push edi
inc eax
push eax
push ecx
call fcn.0040cb10
push dword [eax + 4]
push dword [eax]
call fcn.0041b02f
add esp, 0x1c
mov ecx, ebx
push 0xffffffffffffffff
call fcn.0040b2a0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 8