Function at 0x40bc30
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x24]
push edi
mov edi, ecx
mov al, byte [esi]
mov dword [esp + 0x1c], edi
test al, al
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], 0
je 0x40bf90
push ebp
cmp byte [esi], 0x25
jne 0x40bf6c
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
push esi
call ebp
mov esi, eax
mov al, byte [esi]
cmp al, 0x25
je 0x40bf72
xor edi, edi
test al, al
mov dword [esp + 0x18], edi
je 0x40bcc0
cmp al, 0x23
jne 0x40bc8e
add dword [esp + 0x14], 2
jmp 0x40bcad
cmp al, 0x2a
jne 0x40bc9d
mov eax, dword [ebx]
add ebx, 4
mov dword [esp + 0x18], eax
jmp 0x40bcad
cmp al, 0x2d
je 0x40bcad
cmp al, 0x2b
je 0x40bcad
cmp al, 0x30
je 0x40bcad
cmp al, 0x20
jne 0x40bcb8
push esi
call ebp
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x40bc83
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40bd0f
push esi
call fcn.0042046d
mov dword [esp + 0x1c], eax
mov al, byte [esi]
add esp, 4
test al, al
je 0x40bd0f
lea ecx, [esp + 0x10]
lea edx, [esp + 0x30]
push ecx
push 1
push edx
push 1
mov byte [esp + 0x40], al
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
mov ebp, dword [sym.imp.KERNEL32.dll_GetStringTypeExA]
push eax
call ebp
mov al, byte [esp + 0x10]
and al, 4
cmp al, 4
jne 0x40bd15
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x40bcd3
jmp 0x40bd15
mov ebp, dword [sym.imp.KERNEL32.dll_GetStringTypeExA]
mov al, byte [esi]
mov dword [esp + 0x1c], 0
cmp al, 0x2e
jne 0x40bd8e
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
cmp byte [esi], 0x2a
jne 0x40bd45
mov ecx, dword [ebx]
add ebx, 4
push esi
mov dword [esp + 0x20], ecx
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
jmp 0x40bd8e
push esi
call fcn.0042046d
mov dword [esp + 0x20], eax
mov al, byte [esi]
add esp, 4
test al, al
je 0x40bd8e
lea edx, [esp + 0x12]
mov byte [esp + 0x30], al
push edx
lea eax, [esp + 0x34]
push 1
push eax
push 1
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
push eax
call ebp
mov cl, byte [esp + 0x12]
and cl, 4
cmp cl, 4
jne 0x40bd8e
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x40bd58
mov al, byte [esi]
xor ebp, ebp
cmp al, 0x49
jne 0x40bdac
cmp byte [esi + 1], 0x36
jne 0x40bdac
cmp byte [esi + 2], 0x34
jne 0x40bdac
add esi, 3
mov ebp, 0x40000
jmp case.0x40bdbf.73
movsx eax, al
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x40bdbf.73
xor edx, edx
mov dl, byte [eax + 0x40bfd0]
jmp dword [edx*4 + 0x40bfc0]
mov ebp, 0x10000
jmp case.0x40bdbf.70
mov ebp, 0x20000
push esi
call dword [sym.imp.USER32.dll_CharNextA]
mov esi, eax
movsx eax, byte [esi]
or eax, ebp
cmp eax, 0x10063
jg 0x40be7e
je 0x40bedf
cmp eax, 0x73
jg 0x40be70
je 0x40be54
cmp eax, 0x43
je 0x40bedf
cmp eax, 0x53
je 0x40be41
cmp eax, 0x63
je 0x40bedf
movsx eax, byte [esi]
add eax, 0xffffffb9
cmp eax, 0x31
ja case.0x40be26.75
xor ecx, ecx
mov cl, byte [eax + 0x40c00c]
jmp dword [ecx*4 + 0x40bff8]
test ebp, 0x40000
je 0x40bf0b
add ebx, 8
jmp 0x40bf0e
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40bec8
mov edi, 6
jmp 0x40bef1
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40be67
mov edi, 6
jmp 0x40bef1
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x40bed1
sub eax, 0x10043
je 0x40bedf
sub eax, 0x10
je 0x40be98
jmp 0x40be0f
cmp eax, 0x20053
jg 0x40bea8
je 0x40beb8
cmp eax, 0x10073
je 0x40be98
cmp eax, 0x20043
jmp 0x40be09
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40be67
mov edi, 6
jmp 0x40bef1
sub eax, 0x20063
je 0x40bedf
sub eax, 0x10
jne 0x40be0f
mov eax, dword [ebx]
add ebx, 4
test eax, eax
jne 0x40bec8
mov edi, 6
jmp 0x40bef1
push eax
call fcn.00420e28
add esp, 4
mov edi, eax
cmp edi, 1
jge 0x40bee9
mov edi, 1
jmp 0x40bef1
mov edi, 2
add ebx, 4
jmp 0x40bef1
test edi, edi
je 0x40be0f
mov eax, dword [esp + 0x18]
cmp edi, eax
jg 0x40befb
mov edi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
je case.0x40be26.75
cmp edi, eax
jl case.0x40be26.75
mov edi, eax
jmp case.0x40be26.75
add ebx, 4
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edi, 0x20
add eax, edx
cmp eax, edi
jl case.0x40be26.75
mov edi, eax
jmp case.0x40be26.75
push str.Floating_point____e____f____g__and___G__is_not_supported_by_the_WTL::CMsString_class.
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
jmp case.0x40be26.75
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, 0x20
add ebx, 4
lea eax, [edx + ecx]
cmp eax, edi
jl case.0x40be26.75
mov edi, eax
jmp case.0x40be26.75
add ebx, 4
mov eax, dword [esp + 0x14]
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
add eax, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jmp 0x40bf7d
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add dword [esp + 0x14], eax
push esi
call ebp
mov esi, eax
cmp byte [esi], 0
jne 0x40bc5b
mov esi, dword [esp + 0x2c]
pop ebp
mov eax, dword [esp + 0x10]
mov ecx, edi
push eax
call fcn.0040b880
mov ecx, dword [esp + 0x20]
mov edx, dword [edi]
push ecx
push esi
push edx
call dword [sym.imp.USER32.dll_wvsprintfA]
push 0xffffffffffffffff
mov ecx, edi
call fcn.0040b900
pop edi
pop esi
pop ebx
add esp, 0x18
ret 8