Function at 0x445f40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
push ebx
mov ebx, dword [esp + 0x70]
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
mov edi, dword [esp + 0x80]
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
xor esi, esi
cmp ecx, eax
jae 0x446370
push eax
push ecx
lea eax, [esp + 0x54]
push eax
call fcn.00445730
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x20], ecx
test ecx, ecx
je case.0x44619b.7
mov eax, dword [esp + 0x50]
mov edx, eax
cmp eax, dword [esp + 0x54]
jae 0x446365
jmp 0x445f99
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
push ecx
push edx
lea edx, [esp + 0x68]
push edx
call fcn.00445730
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je case.0x44619b.7
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push edi
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00445730
add esp, 0xc
test eax, eax
je case.0x44619b.7
push edi
push eax
lea edx, [esp + 0x40]
push edx
call fcn.00445730
add esp, 0xc
test eax, eax
je case.0x44619b.7
cmp dword [esp + 0x34], 0
jne case.0x44619b.7
movzx ecx, byte [esp + 0x31]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x44619b.7
movzx eax, byte [eax + 0x4463b0]
jmp dword [eax*4 + 0x446388]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, eax
cmp ecx, 1
je 0x44602e
xor eax, eax
jmp 0x4460f3
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x44603d
mov eax, str.FALSE
push eax
call dword [0x45d00c]
add esp, 4
jmp 0x4460f3
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.00445910
jmp 0x4460f3
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
inc eax
cmp eax, edi
jbe 0x44607a
xor eax, eax
jmp 0x4460f3
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.004458a0
jmp 0x4460f3
push 0x4599cc
call dword [0x45d00c]
add esp, 4
jmp 0x4460f3
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push edx
call fcn.00445d30
mov ebx, dword [esp + 0x84]
add esp, 8
jmp 0x4460f3
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.00445ea0
jmp 0x4460f3
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
call fcn.00445db0
add esp, 4
jmp 0x4460f3
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
call fcn.00445960
xor ecx, ecx
add esp, 8
test eax, eax
sets cl
lea eax, [ecx - 1]
and eax, dword [esp + 0x18]
test eax, eax
je case.0x44619b.7
test esi, esi
je 0x446141
mov dl, byte [eax]
mov ecx, eax
cmp dl, 0x41
jl 0x446116
cmp dl, 0x5a
jg 0x446116
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x41
jge 0x446108
cmp byte [ecx], 0
jne 0x446127
sub ecx, eax
cmp ecx, 2
mov ecx, 0x452678
jle 0x44612c
mov ecx, 0x44fff8
sub ecx, esi
mov edi, edi
cmp esi, ebx
jae 0x44613a
mov dl, byte [ecx + esi]
mov byte [esi + ebp], dl
inc esi
cmp byte [ecx + esi], 0
jne 0x446130
cmp byte [eax], 0
je 0x446161
mov ecx, eax
sub ecx, esi
lea ebx, [ebx]
cmp esi, ebx
jae 0x44615a
mov dl, byte [ecx + esi]
mov byte [esi + ebp], dl
inc esi
cmp byte [ecx + esi], 0
jne 0x446150
push eax
call dword [0x45d004]
add esp, 4
cmp esi, ebx
jae 0x446173
mov byte [esi + ebp], 0x3d
inc esi
cmp dword [esp + 0x48], 0
mov dword [esp + 0x10], esi
jne case.0x44619b.7
movzx ecx, byte [esp + 0x45]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x44619b.7
movzx eax, byte [eax + 0x4463f8]
jmp dword [eax*4 + 0x4463d0]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
sub ecx, eax
cmp ecx, 1
je 0x4461b8
xor eax, eax
jmp 0x446327
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x4461c7
mov eax, str.FALSE
push eax
call dword [0x45d00c]
add esp, 4
jmp 0x446327
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, edi
xor ecx, ecx
sub edx, eax
jne 0x4461ed
xor eax, eax
jmp 0x446327
cmp edx, 4
jbe 0x4461fc
call fcn.004458a0
jmp 0x446327
test byte [eax], 0x80
je 0x446204
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, edi
jb 0x446204
mov eax, 0x4585c8
cmp ecx, 0xa
jae 0x446220
mov eax, 0x4599cc
push ecx
push eax
push str._s_x
call fcn.00419280
add esp, 0xc
jmp 0x446327
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
inc eax
cmp eax, edi
jbe 0x446250
xor eax, eax
jmp 0x446327
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.004458a0
jmp 0x446327
push 0x4599cc
call dword [0x45d00c]
add esp, 4
jmp 0x446327
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor edi, edi
cmp ebx, ebp
jae 0x4462d5
push ebp
push ebx
push edi
push edi
call fcn.00445b50
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4462d1
lea eax, [esi + 1]
push eax
call dword [section..data]
mov edi, eax
add esp, 4
test edi, edi
je 0x4462d1
push ebp
push ebx
push esi
push edi
call fcn.00445b50
add esp, 0x10
mov byte [esi + edi], 0
call fcn.00445840
mov esi, eax
test esi, esi
je 0x4462d1
push edi
call dword [0x45d004]
mov ecx, dword [esi + 4]
push ecx
call dword [0x45d00c]
add esp, 8
mov edi, eax
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov eax, edi
jmp 0x446327
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00445ea0
jmp 0x446327
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
call fcn.00445db0
add esp, 4
jmp 0x446327
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
call fcn.00445960
xor ecx, ecx
add esp, 8
test eax, eax
sets cl
lea eax, [ecx - 1]
and eax, dword [esp + 0x1c]
test eax, eax
je case.0x44619b.7
cmp byte [eax], 0
mov ecx, eax
je 0x446342
cmp esi, ebx
jae 0x44633b
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc esi
cmp byte [ecx], 0
jne 0x446332
push eax
call dword [0x45d004]
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, dword [esp + 0x54]
jb 0x445f95
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 8]
cmp ecx, eax
jb 0x445f66
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x64
ret