Function at 0x446c90
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 0x4470c0
push eax
push ecx
lea eax, [esp + 0x54]
push eax
call fcn.00446490
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x20], ecx
test ecx, ecx
je case.0x446eeb.7
mov eax, dword [esp + 0x50]
mov edx, eax
cmp eax, dword [esp + 0x54]
jae 0x4470b5
jmp 0x446ce9
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
push ecx
push edx
lea edx, [esp + 0x68]
push edx
call fcn.00446490
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je case.0x446eeb.7
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push edi
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00446490
add esp, 0xc
test eax, eax
je case.0x446eeb.7
push edi
push eax
lea edx, [esp + 0x40]
push edx
call fcn.00446490
add esp, 0xc
test eax, eax
je case.0x446eeb.7
cmp dword [esp + 0x34], 0
jne case.0x446eeb.7
movzx ecx, byte [esp + 0x31]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x446eeb.7
movzx eax, byte [eax + 0x447100]
jmp dword [eax*4 + 0x4470d8]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, eax
cmp ecx, 1
je 0x446d7e
xor eax, eax
jmp 0x446e43
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x446d8d
mov eax, str.FALSE
push eax
call dword [0x45e00c]
add esp, 4
jmp 0x446e43
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.00446670
jmp 0x446e43
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
inc eax
cmp eax, edi
jbe 0x446dca
xor eax, eax
jmp 0x446e43
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.00446600
jmp 0x446e43
push 0x45a9ec
call dword [0x45e00c]
add esp, 4
jmp 0x446e43
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push edx
call fcn.00446a90
mov ebx, dword [esp + 0x84]
add esp, 8
jmp 0x446e43
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.00446c00
jmp 0x446e43
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
call fcn.00446b10
add esp, 4
jmp 0x446e43
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
call fcn.004466c0
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.0x446eeb.7
test esi, esi
je 0x446e91
mov dl, byte [eax]
mov ecx, eax
cmp dl, 0x41
jl 0x446e66
cmp dl, 0x5a
jg 0x446e66
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x41
jge 0x446e58
cmp byte [ecx], 0
jne 0x446e77
sub ecx, eax
cmp ecx, 2
mov ecx, 0x453698
jle 0x446e7c
mov ecx, 0x451018
sub ecx, esi
mov edi, edi
cmp esi, ebx
jae 0x446e8a
mov dl, byte [ecx + esi]
mov byte [esi + ebp], dl
inc esi
cmp byte [ecx + esi], 0
jne 0x446e80
cmp byte [eax], 0
je 0x446eb1
mov ecx, eax
sub ecx, esi
lea ebx, [ebx]
cmp esi, ebx
jae 0x446eaa
mov dl, byte [ecx + esi]
mov byte [esi + ebp], dl
inc esi
cmp byte [ecx + esi], 0
jne 0x446ea0
push eax
call dword [0x45e004]
add esp, 4
cmp esi, ebx
jae 0x446ec3
mov byte [esi + ebp], 0x3d
inc esi
cmp dword [esp + 0x48], 0
mov dword [esp + 0x10], esi
jne case.0x446eeb.7
movzx ecx, byte [esp + 0x45]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x446eeb.7
movzx eax, byte [eax + 0x447148]
jmp dword [eax*4 + 0x447120]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
sub ecx, eax
cmp ecx, 1
je 0x446f08
xor eax, eax
jmp 0x447077
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x446f17
mov eax, str.FALSE
push eax
call dword [0x45e00c]
add esp, 4
jmp 0x447077
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, edi
xor ecx, ecx
sub edx, eax
jne 0x446f3d
xor eax, eax
jmp 0x447077
cmp edx, 4
jbe 0x446f4c
call fcn.00446600
jmp 0x447077
test byte [eax], 0x80
je 0x446f54
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, edi
jb 0x446f54
mov eax, 0x4595e8
cmp ecx, 0xa
jae 0x446f70
mov eax, 0x45a9ec
push ecx
push eax
push str._s_x
call fcn.0041a040
add esp, 0xc
jmp 0x447077
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
inc eax
cmp eax, edi
jbe 0x446fa0
xor eax, eax
jmp 0x447077
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.00446600
jmp 0x447077
push 0x45a9ec
call dword [0x45e00c]
add esp, 4
jmp 0x447077
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor edi, edi
cmp ebx, ebp
jae 0x447025
push ebp
push ebx
push edi
push edi
call fcn.004468b0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x447021
lea eax, [esi + 1]
push eax
call dword [section..data]
mov edi, eax
add esp, 4
test edi, edi
je 0x447021
push ebp
push ebx
push esi
push edi
call fcn.004468b0
add esp, 0x10
mov byte [esi + edi], 0
call fcn.004465a0
mov esi, eax
test esi, esi
je 0x447021
push edi
call dword [0x45e004]
mov ecx, dword [esi + 4]
push ecx
call dword [0x45e00c]
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 0x447077
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00446c00
jmp 0x447077
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
call fcn.00446b10
add esp, 4
jmp 0x447077
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
call fcn.004466c0
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.0x446eeb.7
cmp byte [eax], 0
mov ecx, eax
je 0x447092
cmp esi, ebx
jae 0x44708b
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc esi
cmp byte [ecx], 0
jne 0x447082
push eax
call dword [0x45e004]
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, dword [esp + 0x54]
jb 0x446ce5
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 8]
cmp ecx, eax
jb 0x446cb6
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