Function at 0x401d30
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, ecx
xor ecx, ecx
push esi
push edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], ebx
mov dword [ebp + 0xc], ecx
mov esi, edx
cmp word [edx], cx
je 0x40205a
jmp 0x401d60
cmp word [esi], 0x25
jne 0x40203d
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
cmp ecx, 0x25
je 0x40203a
xor edi, edi
xor edx, edx
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], edx
test cx, cx
je 0x401de1
mov edi, dword [ebp + 0xc]
cmp cx, 0x23
jne 0x401d9c
add edi, 2
jmp 0x401dc4
cmp cx, 0x2a
jne 0x401dac
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 8], eax
jmp 0x401dc4
cmp cx, 0x2d
je 0x401dc4
cmp cx, 0x2b
je 0x401dc4
cmp cx, 0x30
je 0x401dc4
cmp cx, 0x20
jne 0x401dd5
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x401d91
cmp dword [ebp - 8], 0
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x10]
jne 0x401e18
push esi
call dword [sym.imp.MSVCR110.dll__wtoi]
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 8], eax
test cx, cx
je 0x401e18
movzx ecx, cx
push ecx
call dword [sym.imp.MSVCR110.dll_iswdigit]
add esp, 4
test eax, eax
je 0x401e18
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x401df6
cmp word [esi], 0x2e
mov dword [ebp - 0x10], 0
jne 0x401e82
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
push esi
cmp word [esi], 0x2a
jne 0x401e47
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
jmp 0x401e82
call dword [sym.imp.MSVCR110.dll__wtoi]
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0x10], eax
test cx, cx
je 0x401e82
jmp 0x401e60
movzx ecx, cx
push ecx
call dword [sym.imp.MSVCR110.dll_iswdigit]
add esp, 4
test eax, eax
je 0x401e82
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x401e60
movzx eax, word [esi]
mov dword [ebp - 0xc], 0
cmp eax, 0x49
jne 0x401eab
cmp word [esi + 2], 0x36
jne 0x401eab
cmp word [esi + 4], 0x34
jne 0x401eab
add esi, 6
mov dword [ebp - 0xc], 0x40000
jmp case.0x401eba.71
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x401eba.71
movzx eax, byte [eax + 0x402188]
jmp dword [eax*4 + 0x402178]
mov dword [ebp - 0xc], 0x10000
jmp case.0x401eba.70
mov dword [ebp - 0xc], 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, dword [ebp - 0xc]
or eax, ecx
cmp eax, 0x10063
jg 0x401f71
je 0x401f09
cmp eax, 0x73
jg 0x401f63
je 0x401f4a
cmp eax, 0x43
je 0x401f09
cmp eax, 0x53
je 0x401f31
cmp eax, 0x63
jne 0x401fd5
mov edi, 2
add ebx, 4
mov eax, dword [ebp - 8]
cmp edi, eax
cmovg eax, edi
mov edi, eax
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x401feb.70
cmp edi, eax
cmovl eax, edi
mov edi, eax
add dword [ebp + 0xc], edi
jmp 0x402041
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x401f3f
lea edi, [eax + 6]
jmp 0x401f11
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
jmp 0x401fbf
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x401f58
lea edi, [eax + 6]
jmp 0x401f11
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
jmp 0x401fbf
sub eax, 0x10043
je 0x401f09
sub eax, 0x10
je 0x401f31
jmp 0x401fd5
cmp eax, 0x20053
jg 0x401f8a
je 0x401f9a
cmp eax, 0x10073
je 0x401f31
cmp eax, 0x20043
je 0x401f09
jmp 0x401fd5
sub eax, 0x20063
je 0x401f09
sub eax, 0x10
jne 0x401fd5
mov edi, dword [ebx]
add ebx, 4
test edi, edi
jne 0x401fad
mov edi, 6
jmp 0x401f11
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x401fb0
sub edi, ecx
sar edi, 1
cmp edi, 1
mov eax, 1
cmovl edi, eax
test edi, edi
jne 0x401f11
mov ecx, dword [ebp - 0xc]
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x401feb.70
movzx eax, byte [eax + 0x4021c4]
jmp dword [eax*4 + 0x4021b0]
test ecx, 0x40000
je case.0x401feb.112
add ebx, 8
jmp 0x402002
add ebx, 4
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 8]
mov edi, 0x20
cmp eax, edi
jl case.0x401feb.70
mov edi, eax
add dword [ebp + 0xc], edi
jmp 0x402041
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
jmp 0x402041
add ebx, 4
add dword [ebp + 0xc], edi
jmp 0x402041
mov ecx, dword [ebp + 0xc]
inc ecx
mov dword [ebp + 0xc], ecx
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [ebp + 0xc]
mov esi, eax
cmp word [esi], 0
jne 0x401d60
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ebx, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
cmp dword [eax - 0xc], 1
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea esi, [eax - 0xc]
jg 0x402076
cmp ecx, dword [eax - 4]
jle 0x4020cb
mov edi, dword [eax - 8]
cmp ecx, edi
cmovl ecx, edi
push ecx
mov ecx, dword [ebp - 4]
call fcn.00401c00
test eax, eax
je 0x40216b
lea eax, [edi*2 + 2]
push eax
lea eax, [esi + 0xc]
push eax
mov eax, dword [ebp - 4]
push dword [eax]
call sub.MSVCR110.dll_memcpy
mov eax, dword [ebp - 4]
add esp, 0xc
mov eax, dword [eax]
mov dword [eax - 8], edi
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp esi, 0x4124e8
je 0x4020cb
push esi
call edi
test eax, eax
jg 0x4020cb
push esi
call ebx
add esp, 4
mov esi, dword [ebp - 4]
mov eax, dword [esi]
test eax, eax
je 0x40216b
push dword [ebp - 0x14]
push dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_wvsprintfW]
mov eax, dword [esi]
cmp dword [eax - 0xc], 1
lea esi, [eax - 0xc]
jle 0x402147
add eax, 0xfffffff4
cmp eax, 0x4124e8
je 0x40211b
push esi
call edi
test eax, eax
jg 0x40210f
mov eax, dword [ebp - 4]
mov eax, dword [eax]
sub eax, 0xc
push eax
call ebx
add esp, 4
mov ebx, dword [ebp - 4]
mov eax, dword [0x4124f8]
mov dword [ebx], eax
jmp 0x40211e
mov ebx, dword [ebp - 4]
push dword [esi + 4]
mov ecx, ebx
call fcn.00401c00
test eax, eax
je 0x40214a
mov eax, dword [esi + 4]
lea eax, [eax*2 + 2]
push eax
lea eax, [esi + 0xc]
push eax
push dword [ebx]
call sub.MSVCR110.dll_memcpy
add esp, 0xc
jmp 0x40214a
mov ebx, dword [ebp - 4]
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebx]
pop edi
mov dword [ecx - 8], eax
mov ecx, dword [ebx]
xor edx, edx
pop esi
mov word [ecx + eax*2], dx
lea eax, [edx + 1]
pop ebx
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8