Function at 0x475d30
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov edx, ecx
push ebx
push esi
mov esi, eax
mov dword [ebp - 0xc], edx
movzx eax, word [eax]
xor ebx, ebx
mov dword [ebp - 4], ebx
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x18], edi
test ax, ax
je 0x476095
mov ecx, eax
nop dword [eax]
cmp cx, 0x25
jne 0x47606b
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x25
je 0x47606b
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ecx
test ax, ax
je 0x475de5
mov ebx, dword [ebp - 4]
mov ecx, eax
cmp cx, 0x23
jne 0x475d9e
add ebx, 2
jmp 0x475dc6
cmp cx, 0x2a
jne 0x475dae
mov eax, dword [edi]
add edi, 4
mov dword [ebp - 8], eax
jmp 0x475dc6
cmp cx, 0x2d
je 0x475dc6
cmp cx, 0x2b
je 0x475dc6
cmp cx, 0x30
je 0x475dc6
cmp cx, 0x20
jne 0x475dd9
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x475d93
cmp dword [ebp - 8], 0
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0x14]
jne 0x475e20
push esi
call fcn.0059ef90
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 8], eax
test cx, cx
je 0x475e20
nop dword [eax]
push ecx
call fcn.005a1c00
add esp, 4
test eax, eax
je 0x475e20
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x475e00
cmp word [esi], 0x2e
mov dword [ebp - 0x14], 0
jne 0x475e82
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
push esi
cmp word [esi], 0x2a
jne 0x475e4f
mov eax, dword [edi]
add edi, 4
mov dword [ebp - 0x14], eax
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
jmp 0x475e82
call fcn.0059ef90
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0x14], eax
test cx, cx
je 0x475e82
push ecx
call fcn.005a1c00
add esp, 4
test eax, eax
je 0x475e82
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x475e62
movzx eax, word [esi]
mov dword [ebp - 0x10], 0
cmp eax, 0x49
jne 0x475ec3
movzx eax, word [esi + 2]
cmp eax, 0x36
jne 0x475ead
cmp word [esi + 4], 0x34
jne 0x475ebe
add esi, 6
mov dword [ebp - 0x10], 0x40000
jmp case.0x475ed2.71
cmp eax, 0x33
jne 0x475ebe
cmp word [esi + 4], 0x32
jne 0x475ebe
add esi, 6
jmp case.0x475ed2.71
add esi, 2
jmp case.0x475ed2.71
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x475ed2.71
movzx eax, byte [eax + 0x4762ec]
jmp dword [eax*4 + 0x4762dc]
mov dword [ebp - 0x10], 0x10000
jmp case.0x475ed2.70
mov dword [ebp - 0x10], 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
or eax, dword [ebp - 0x10]
cmp eax, 0x10063
ja 0x475f86
je 0x475f1f
cmp eax, 0x73
ja 0x475f78
je 0x475f61
cmp eax, 0x43
je 0x475f1f
cmp eax, 0x53
je 0x475f4a
cmp eax, 0x63
jne 0x475fde
mov ebx, 2
add edi, 4
mov eax, dword [ebp - 8]
cmp ebx, eax
cmovg eax, ebx
mov ebx, eax
mov eax, dword [ebp - 0x14]
test eax, eax
je case.0x475ff4.70
cmp ebx, eax
cmovl eax, ebx
mov ebx, eax
add dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
jmp 0x47607b
mov eax, dword [edi]
add edi, 4
test eax, eax
jne 0x475f58
lea ebx, [eax + 6]
jmp 0x475f27
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x475fc9
mov eax, dword [edi]
add edi, 4
test eax, eax
jne 0x475f6f
lea ebx, [eax + 6]
jmp 0x475f27
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x475fc9
sub eax, 0x10043
je 0x475f1f
sub eax, 0x10
je 0x475f4a
jmp 0x475fde
cmp eax, 0x20053
ja 0x475f9f
je 0x475faf
cmp eax, 0x10073
je 0x475f4a
cmp eax, 0x20043
je 0x475f1f
jmp 0x475fde
sub eax, 0x20063
je 0x475f1f
sub eax, 0x10
jne 0x475fde
mov eax, dword [edi]
add edi, 4
test eax, eax
jne 0x475fc0
lea ebx, [eax + 6]
jmp 0x475f27
push eax
call fcn.0059a3bd
add esp, 4
mov ebx, eax
mov eax, 1
cmp ebx, 1
cmovl ebx, eax
test ebx, ebx
jne 0x475f27
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x475ff4.70
movzx eax, byte [eax + 0x476328]
jmp dword [eax*4 + 0x476314]
mov eax, dword [ebp - 0x10]
mov ebx, 0x20
and eax, 0x40000
neg eax
sbb eax, eax
and eax, 4
add eax, 4
add edi, eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 8]
cmp eax, ebx
cmovge ebx, eax
add dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
jmp 0x47607b
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 - 4], ebx
mov ebx, dword [ebp - 4]
jmp 0x47607b
mov eax, dword [ebp - 0x14]
mov ebx, 0x20
add eax, dword [ebp - 8]
add edi, 4
cmp eax, ebx
jl case.0x475ff4.70
mov ebx, eax
add dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
jmp 0x47607b
add edi, 4
add dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
jmp 0x47607b
push esi
call dword [sym.imp.USER32.dll_CharNextW]
sub eax, esi
sar eax, 1
add ebx, eax
mov dword [ebp - 4], ebx
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, eax
test ax, ax
jne 0x475d60
mov edx, dword [ebp - 0xc]
mov esi, dword [edx]
or ebx, 0xffffffff
cmp dword [esi - 0xc], 1
lea edi, [esi - 0xc]
mov ecx, dword [ebp - 4]
jg 0x4760af
cmp ecx, dword [esi - 4]
jle 0x47613c
mov eax, dword [esi - 8]
cmp ecx, eax
mov dword [ebp - 8], eax
cmovl ecx, eax
mov dword [ebp - 4], ecx
push ecx
mov ecx, edx
call fcn.00476390
test eax, eax
je 0x4762d0
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea eax, [eax*2 + 2]
mov edx, dword [edx]
lea ecx, [ecx*2 + 2]
test eax, eax
jne 0x4760ef
mov esi, dword [ebp - 8]
jmp 0x47610f
test edx, edx
jne 0x476219
call fcn.0059a074
mov dword [eax], 0x16
call fcn.005968bf
mov esi, dword [ebp - 8]
mov eax, 0x16
push eax
call fcn.004738e0
mov eax, dword [ebp - 0xc]
add esp, 4
mov eax, dword [eax]
mov dword [eax - 8], esi
cmp edi, 0x78df4c
je 0x47613c
mov eax, ebx
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x47613c
push edi
call fcn.0058ac7a
add esp, 4
mov edi, dword [ebp - 0xc]
mov ecx, dword [edi]
test ecx, ecx
je 0x4762d0
push dword [ebp - 0x18]
mov eax, dword [ecx - 4]
push 0
push dword [ebp + 8]
inc eax
push eax
push ecx
call fcn.00450a00
push dword [eax + 4]
push dword [eax]
call fcn.0059edb3
mov esi, dword [edi]
add esp, 0x1c
cmp dword [esi - 0xc], 1
lea ecx, [esi - 0xc]
jle 0x4761f8
lea eax, [esi - 0xc]
cmp eax, 0x78df4c
je 0x4761a0
lock xadd dword [ecx], ebx
dec ebx
test ebx, ebx
jg 0x476199
mov eax, dword [edi]
sub eax, 0xc
push eax
call fcn.0058ac7a
add esp, 4
mov eax, dword [0x78df48]
mov dword [edi], eax
push dword [esi - 8]
mov ecx, edi
call fcn.00476390
test eax, eax
je 0x4761f8
mov eax, dword [esi - 8]
lea edi, [eax*2 + 2]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx - 4]
lea ebx, [eax*2 + 2]
test edi, edi
je 0x476293
test ecx, ecx
jne 0x476280
call fcn.0059a074
mov dword [eax], 0x16
call fcn.005968bf
mov eax, 0x16
push eax
call fcn.004738e0
mov edi, dword [ebp - 0xc]
add esp, 4
push dword [edi]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [edi]
xor edx, edx
mov dword [ecx - 8], eax
mov ecx, dword [edi]
pop edi
pop esi
pop ebx
mov word [ecx + eax*2], dx
lea eax, [edx + 1]
mov esp, ebp
pop ebp
ret 8
test esi, esi
je 0x476236
cmp ecx, eax
jb 0x476236
push eax
push esi
push edx
call fcn.0058c9c0
mov esi, dword [ebp - 8]
add esp, 0xc
xor eax, eax
jmp 0x47610f
push ecx
push 0
push edx
call fcn.0058d130
add esp, 0xc
test esi, esi
je 0x4760f7
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 4]
lea eax, [esi*2 + 2]
lea ecx, [edx*2 + 2]
cmp ecx, eax
jae 0x47610a
call fcn.0059a074
mov dword [eax], 0x22
call fcn.005968bf
mov eax, 0x22
jmp 0x47610f
test esi, esi
je 0x47629a
cmp ebx, edi
jb 0x47629a
push edi
push esi
push ecx
call fcn.0058c9c0
add esp, 0xc
xor eax, eax
jmp 0x4761ec
push ebx
push 0
push ecx
call fcn.0058d130
add esp, 0xc
test esi, esi
je 0x4761d7
cmp ebx, edi
jae 0x4761e7
call fcn.0059a074
mov dword [eax], 0x22
call fcn.005968bf
mov eax, 0x22
jmp 0x4761ec
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8