Function at 0x4139a5
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov edx, dword [ebp + 8]
mov eax, ecx
push ebx
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
push esi
mov esi, edx
mov dword [ebp - 0xc], eax
push edi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 8], ecx
cmp word [edx], cx
je 0x413b4b
mov edi, dword [sym.imp.USER32.dll_CharNextW]
lea ecx, [ecx]
cmp word [esi], 0x25
jne 0x413b2c
push esi
call edi
mov esi, eax
movzx ecx, word [esi]
cmp ecx, 0x25
je 0x413b2c
xor edi, edi
xor edx, edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], edx
test cx, cx
je 0x413890
mov edi, dword [ebp - 8]
lea ecx, [ecx]
cmp cx, 0x23
jne 0x41384b
add edi, 2
jmp 0x413873
cmp cx, 0x2a
jne 0x41385b
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 0x10], eax
jmp 0x413873
cmp cx, 0x2d
je 0x413873
cmp cx, 0x2b
je 0x413873
cmp cx, 0x30
je 0x413873
cmp cx, 0x20
jne 0x413884
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x413840
cmp dword [ebp - 0x10], 0
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x18]
jne 0x4138da
push esi
call fcn.0043a8d0
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0x10], eax
test cx, cx
je 0x4138da
lea eax, [ebp + 0xc]
movzx ecx, cx
push eax
push 1
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], ecx
push eax
push 1
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
push eax
call dword [sym.imp.KERNEL32.dll_GetStringTypeExW]
test byte [ebp + 0xc], 4
je 0x4138da
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x4138a4
cmp word [esi], 0x2e
mov dword [ebp - 0x18], 0
jne 0x413956
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
push esi
cmp word [esi], 0x2a
jne 0x413909
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
jmp 0x413956
call fcn.0043a8d0
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0x18], eax
test cx, cx
je 0x413956
lea esp, [esp]
lea eax, [ebp - 4]
movzx ecx, cx
push eax
push 1
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ecx
push eax
push 1
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
push eax
call dword [sym.imp.KERNEL32.dll_GetStringTypeExW]
test byte [ebp - 4], 4
je 0x413956
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx ecx, word [esi]
test cx, cx
jne 0x413920
movzx eax, word [esi]
mov dword [ebp - 0x14], 0
cmp eax, 0x49
jne 0x41397f
cmp word [esi + 2], 0x36
jne 0x41397f
cmp word [esi + 4], 0x34
jne 0x41397f
add esi, 6
mov dword [ebp - 0x14], 0x40000
jmp case.0x41398e.71
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x41398e.71
movzx eax, byte [eax + 0x413d0c]
jmp dword [eax*4 + 0x413cfc]
mov dword [ebp - 0x14], 0x10000
jmp case.0x41398e.70
mov dword [ebp - 0x14], 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
movzx eax, word [esi]
mov ecx, dword [ebp - 0x14]
or eax, ecx
cmp eax, 0x10063
jg 0x413a4b
je 0x4139dd
cmp eax, 0x73
jg 0x413a3d
je 0x413a24
cmp eax, 0x43
je 0x4139dd
cmp eax, 0x53
je 0x413a0b
cmp eax, 0x63
jne 0x413ab5
mov edi, 2
add ebx, 4
mov eax, dword [ebp - 0x10]
cmp edi, eax
cmovg eax, edi
mov edi, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je case.0x413acb.70
cmp edi, eax
cmovl eax, edi
mov edi, eax
add dword [ebp - 8], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x413b36
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x413a19
lea edi, [eax + 6]
jmp 0x4139e5
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
jmp 0x413a9f
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x413a32
lea edi, [eax + 6]
jmp 0x4139e5
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
jmp 0x413a9f
sub eax, 0x10043
je 0x4139dd
sub eax, 0x10
je 0x413a0b
jmp 0x413ab5
cmp eax, 0x20053
jg 0x413a68
je 0x413a78
cmp eax, 0x10073
je 0x413a0b
cmp eax, 0x20043
je 0x4139dd
jmp 0x413ab5
sub eax, 0x20063
je 0x4139dd
sub eax, 0x10
jne 0x413ab5
mov edi, dword [ebx]
add ebx, 4
test edi, edi
jne 0x413a8b
mov edi, 6
jmp 0x4139e5
lea ecx, [edi + 2]
mov edi, edi
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x413a90
sub edi, ecx
sar edi, 1
cmp edi, 1
mov eax, 1
cmovl edi, eax
test edi, edi
jne 0x4139e5
mov ecx, dword [ebp - 0x14]
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x413acb.70
movzx eax, byte [eax + 0x413d48]
jmp dword [eax*4 + 0x413d34]
test ecx, 0x40000
je case.0x413acb.112
add ebx, 8
jmp 0x413ae2
add ebx, 4
mov eax, dword [ebp - 0x18]
mov edi, 0x20
add eax, dword [ebp - 0x10]
cmp eax, edi
jl case.0x413acb.70
mov edi, eax
add dword [ebp - 8], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x413b36
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 - 8], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x413b36
add ebx, 4
add dword [ebp - 8], edi
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x413b36
push esi
call edi
sub eax, esi
sar eax, 1
add dword [ebp - 8], eax
push esi
call edi
mov esi, eax
cmp word [esi], 0
jne 0x413810
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or ebx, 0xffffffff
cmp dword [eax - 0x20], 1
lea esi, [eax - 0x20]
jg 0x413b62
cmp ecx, dword [eax - 0xc]
jle 0x413bf4
mov edi, dword [eax - 8]
cmp ecx, edi
cmovl ecx, edi
mov dword [ebp - 8], ecx
test ecx, ecx
jne 0x413b78
mov eax, dword [0x476478]
jmp 0x413bb5
lea eax, [ecx*2 + 0x22]
push eax
call fcn.004451f4
add esp, 4
test eax, eax
je 0x413cf1
mov ecx, dword [ebp - 8]
xor edx, edx
mov dword [eax], 1
mov word [eax + ecx*2 + 0x20], dx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 8], edx
mov dword [eax + 4], edx
mov dword [eax + 0x10], edx
add eax, 0x20
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
lea eax, [edi*2 + 2]
push eax
lea eax, [esi + 0x20]
push eax
push dword [ecx]
call fcn.004480a0
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov eax, dword [eax]
mov dword [eax - 8], edi
cmp esi, dword [0x476474]
je 0x413bf4
mov eax, ebx
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x413bf4
push esi
call fcn.004471aa
add esp, 4
mov esi, dword [ebp - 0xc]
mov eax, dword [esi]
test eax, eax
je 0x413cf1
push dword [ebp - 0x1c]
push dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_wvsprintfW]
mov eax, dword [esi]
cmp dword [eax - 0x20], 1
lea edi, [eax - 0x20]
jle 0x413cc4
add eax, 0xffffffe0
cmp eax, dword [0x476474]
je 0x413c63
lock xadd dword [edi], ebx
dec ebx
test ebx, ebx
mov ebx, esi
jg 0x413c5a
mov esi, dword [ebx]
mov eax, dword [esi - 0x10]
test eax, eax
je 0x413c4c
push eax
call fcn.00446dea
add esp, 4
mov dword [esi - 0x10], 0
mov eax, dword [ebx]
sub eax, 0x20
push eax
call fcn.004471aa
add esp, 4
mov eax, dword [0x476478]
mov dword [ebx], eax
jmp 0x413c65
mov ebx, esi
mov esi, dword [edi + 0x18]
test esi, esi
jne 0x413c73
mov eax, dword [0x476478]
jmp 0x413ca9
lea eax, [esi*2 + 0x22]
push eax
call fcn.004451f4
add esp, 4
test eax, eax
je 0x413cc4
xor ecx, ecx
mov dword [eax], 1
mov word [eax + esi*2 + 0x20], cx
mov dword [eax + 0x18], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0x10], ecx
add eax, 0x20
mov dword [ebx], eax
mov eax, dword [edi + 0x18]
lea eax, [eax*2 + 2]
push eax
lea eax, [edi + 0x20]
push eax
push dword [ebx]
call fcn.004480a0
add esp, 0xc
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebx]
mov dword [eax - 0x14], 0
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebx]
xor edx, edx
pop edi
pop esi
mov dword [ecx - 8], eax
mov ecx, dword [ebx]
pop ebx
mov word [ecx + eax*2], dx
lea eax, [edx + 1]
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8