Function at 0x40d990
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 0x40dcde
mov edi, dword [sym.imp.USER32.dll_CharNextW]
push ebx
jmp 0x40d9c0
cmp word [esi], 0x25
jne 0x40dcc3
push esi
call edi
mov esi, eax
movzx eax, word [esi]
cmp ax, 0x25
je 0x40dcc3
xor ebx, ebx
mov dword [esp + 0x10], ebx
test ax, ax
je 0x40da32
cmp ax, 0x23
jne 0x40d9f4
add dword [esp + 0x28], 2
jmp 0x40da1e
cmp ax, 0x2a
jne 0x40da06
mov eax, dword [ebp]
add ebp, 4
mov dword [esp + 0x10], eax
jmp 0x40da1e
cmp ax, 0x2d
je 0x40da1e
cmp ax, 0x2b
je 0x40da1e
cmp ax, 0x30
je 0x40da1e
cmp ax, 0x20
jne 0x40da2b
push esi
call edi
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40d9e7
cmp dword [esp + 0x10], 0
jne 0x40da64
push esi
call fcn.00450893
mov dword [esp + 0x14], eax
movzx eax, word [esi]
add esp, 4
test ax, ax
je 0x40da64
movzx eax, ax
push eax
call fcn.00450857
add esp, 4
test eax, eax
je 0x40da64
push esi
call edi
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40da47
cmp word [esi], 0x2e
mov dword [esp + 0x14], 0
jne 0x40dabf
push esi
call edi
mov esi, eax
cmp word [esi], 0x2a
push esi
jne 0x40da8e
mov ecx, dword [ebp]
add ebp, 4
mov dword [esp + 0x18], ecx
call edi
mov esi, eax
jmp 0x40dabf
call fcn.00450893
mov dword [esp + 0x18], eax
movzx eax, word [esi]
add esp, 4
test ax, ax
je 0x40dabf
movzx eax, ax
push eax
call fcn.00450857
add esp, 4
test eax, eax
je 0x40dabf
push esi
call edi
mov esi, eax
movzx eax, word [esi]
test ax, ax
jne 0x40daa2
movzx eax, word [esi]
xor edi, edi
cmp ax, 0x49
jne 0x40dae2
cmp word [esi + 2], 0x36
jne 0x40dae2
cmp word [esi + 4], 0x34
jne 0x40dae2
add esi, 6
mov edi, 0x40000
jmp case.0x40daf4.71
movzx eax, ax
add eax, 0xffffffba
cmp eax, 0x26
ja case.0x40daf4.71
movzx edx, byte [eax + 0x40dd48]
jmp dword [edx*4 + 0x40dd38]
mov edi, 0x10000
jmp case.0x40daf4.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 0x40dbba
je 0x40db87
cmp eax, 0x73
jg 0x40dbac
je 0x40db94
cmp eax, 0x43
je 0x40db87
cmp eax, 0x53
je 0x40db59
cmp eax, 0x63
je 0x40db87
movzx eax, word [esi]
add eax, 0xffffffbb
cmp eax, 0x33
ja case.0x40db52.70
movzx eax, byte [eax + 0x40dd84]
jmp dword [eax*4 + 0x40dd70]
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40db6b
lea ebx, [eax + 6]
jmp 0x40dc12
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
cmp ebx, 1
jge 0x40dc0a
mov ebx, 1
jmp 0x40dc12
mov ebx, 2
add ebp, 4
jmp 0x40dc12
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40dba3
lea ebx, [eax + 6]
jmp 0x40dc12
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
jmp 0x40db72
sub eax, 0x10043
je 0x40db87
sub eax, 0x10
je 0x40db59
jmp 0x40db3c
cmp eax, 0x20053
jg 0x40dbd4
je 0x40dbe4
cmp eax, 0x10073
je 0x40db59
cmp eax, 0x20043
jmp 0x40db3a
sub eax, 0x20063
je 0x40db87
sub eax, 0x10
jne 0x40db3c
mov eax, dword [ebp]
add ebp, 4
test eax, eax
jne 0x40dbf3
lea ebx, [eax + 6]
jmp 0x40dc12
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40dbf6
sub eax, edx
sar eax, 1
jmp 0x40db72
test ebx, ebx
je 0x40db3c
mov eax, dword [esp + 0x10]
cmp ebx, eax
jg 0x40dc1c
mov ebx, eax
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x40db52.70
cmp ebx, eax
jl case.0x40db52.70
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
add dword [esp + 0x28], ebx
jmp 0x40dcce
test edi, 0x40000
je 0x40dc4e
add ebp, 8
jmp 0x40dc51
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.0x40db52.70
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
add dword [esp + 0x28], ebx
jmp 0x40dcce
push 0x477c38
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 0x40dcce
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebx, 0x20
add eax, ecx
add ebp, 4
cmp eax, ebx
jl case.0x40db52.70
mov edi, dword [sym.imp.USER32.dll_CharNextW]
mov ebx, eax
add dword [esp + 0x28], ebx
jmp 0x40dcce
add ebp, 4
add dword [esp + 0x28], ebx
mov edi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x40dcce
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 0x40d9c0
pop ebx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
push edx
call fcn.0040d900
test eax, eax
jne 0x40dcf9
pop edi
pop esi
pop ebp
add esp, 0xc
ret 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [edi]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_wvsprintfW]
call fcn.0040df40
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [edi]
mov dword [ecx - 8], eax
mov edx, dword [edi]
pop edi
xor ecx, ecx
pop esi
mov word [edx + eax*2], cx
lea eax, [ecx + 1]
pop ebp
add esp, 0xc
ret 0xc