Function at 0x40f580
Capabilities:
Print debug messages

Disassembly:
sub esp, 0xc
push ebp
mov ebp, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x1c]
cmp word [esi], 0
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], 0
je 0x40f8ce
mov edi, dword [sym.imp.USER32.dll_CharNextW]
push ebx
jmp 0x40f5b0
cmp word [esi], 0x25
jne 0x40f8b3
push esi
call edi
mov esi, eax
movzx eax, word [esi]
cmp ax, 0x25
je 0x40f8b3
xor ebx, ebx
test ax, ax
mov dword [esp + 0x10], ebx
je 0x40f622
cmp ax, 0x23
jne 0x40f5e4
add dword [esp + 0x28], 2
jmp 0x40f60e
cmp ax, 0x2a
jne 0x40f5f6
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x10], eax
jmp 0x40f60e
cmp ax, 0x2d
je 0x40f60e
cmp ax, 0x2b
je 0x40f60e
cmp ax, 0x30
je 0x40f60e
cmp ax, 0x20
jne 0x40f61b
push esi
call edi
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40f5d7
cmp dword [esp + 0x10], 0
jne 0x40f654
push esi
call fcn.0042233a
mov dword [esp + 0x14], eax
movzx eax, word [esi]
add esp, 4
test ax, ax
je 0x40f654
movzx eax, ax
push eax
call fcn.0042231b
add esp, 4
test eax, eax
je 0x40f654
push esi
call edi
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40f637
cmp word [esi], 0x2e
mov dword [esp + 0x14], 0
jne 0x40f6af
push esi
call edi
mov esi, eax
cmp word [esi], 0x2a
push esi
jne 0x40f67e
mov ecx, dword [ebp]
add ebp, 4
mov dword [esp + 0x18], ecx
call edi
mov esi, eax
jmp 0x40f6af
call fcn.0042233a
mov dword [esp + 0x18], eax
movzx eax, word [esi]
add esp, 4
test ax, ax
je 0x40f6af
movzx eax, ax
push eax
call fcn.0042231b
add esp, 4
test eax, eax
je 0x40f6af
push esi
call edi
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40f692
movzx eax, word [esi]
xor edi, edi
cmp ax, 0x49
jne 0x40f6d2
cmp word [esi + 2], 0x36
jne 0x40f6d2
cmp word [esi + 4], 0x34
jne 0x40f6d2
add esi, 6
mov edi, 0x40000
jmp case.0x40f6e4.71
movzx eax, ax
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x40f6e4.71
movzx edx, byte [eax + 0x40f944]
jmp dword [edx*4 + 0x40f934]
mov edi, 0x10000
jmp case.0x40f6e4.70
mov edi, 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
or eax, edi
cmp eax, 0x10063
jg 0x40f7aa
je 0x40f777
cmp eax, 0x73
jg 0x40f79c
je 0x40f784
cmp eax, 0x43
je 0x40f777
cmp eax, 0x53
je 0x40f749
cmp eax, 0x63
je 0x40f777
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x40f742.70
movzx eax, byte [eax + 0x40f980]
jmp dword [eax*4 + 0x40f96c]
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40f75b
lea ebx, [eax + 6]
jmp 0x40f802
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
cmp ebx, 1
jge 0x40f7fa
mov ebx, 1
jmp 0x40f802
mov ebx, 2
add ebp, 4
jmp 0x40f802
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40f793
lea ebx, [eax + 6]
jmp 0x40f802
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x40f762
sub eax, 0x10043
je 0x40f777
sub eax, 0x10
je 0x40f749
jmp 0x40f72c
cmp eax, 0x20053
jg 0x40f7c4
je 0x40f7d4
cmp eax, 0x10073
je 0x40f749
cmp eax, 0x20043
jmp 0x40f72a
sub eax, 0x20063
je 0x40f777
sub eax, 0x10
jne 0x40f72c
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40f7e3
lea ebx, [eax + 6]
jmp 0x40f802
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40f7e6
sub eax, edx
sar eax, 1
jmp 0x40f762
test ebx, ebx
je 0x40f72c
mov eax, dword [esp + 0x10]
cmp ebx, eax
jg 0x40f80c
mov ebx, eax
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x40f742.70
cmp ebx, eax
jl case.0x40f742.70
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
add dword [esp + 0x28], ebx
jmp 0x40f8be
test edi, 0x40000
je 0x40f83e
add ebp, 8
jmp 0x40f841
add ebp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, 0x20
lea eax, [ecx + edx]
cmp eax, ebx
jl case.0x40f742.70
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
add dword [esp + 0x28], ebx
jmp 0x40f8be
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], ebx
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x40f8be
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebx, 0x20
add eax, ecx
add ebp, 4
cmp eax, ebx
jl case.0x40f742.70
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
add dword [esp + 0x28], ebx
jmp 0x40f8be
add ebp, 4
add dword [esp + 0x28], ebx
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x40f8be
push esi
call edi
sub eax, esi
sar eax, 1
add dword [esp + 0x28], eax
push esi
call edi
mov esi, eax
cmp word [esi], 0
jne 0x40f5b0
pop ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push edx
call fcn.0040f9c0
test eax, eax
jne 0x40f8e9
pop edi
pop esi
pop ebp
add esp, 0xc
ret 0xc
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [eax - 4]
push edx
add ecx, 1
push ecx
push eax
call fcn.00420e0d
add esp, 0x10
call fcn.0040fa50
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, 0xc
ret 0xc