Function at 0x446b50
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 0x446f80
push eax
push ecx
lea eax, [esp + 0x54]
push eax
call fcn.00446350
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x20], ecx
test ecx, ecx
je case.0x446dab.7
mov eax, dword [esp + 0x50]
mov edx, eax
cmp eax, dword [esp + 0x54]
jae 0x446f75
jmp 0x446ba9
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
push ecx
push edx
lea edx, [esp + 0x68]
push edx
call fcn.00446350
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je case.0x446dab.7
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push edi
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00446350
add esp, 0xc
test eax, eax
je case.0x446dab.7
push edi
push eax
lea edx, [esp + 0x40]
push edx
call fcn.00446350
add esp, 0xc
test eax, eax
je case.0x446dab.7
cmp dword [esp + 0x34], 0
jne case.0x446dab.7
movzx ecx, byte [esp + 0x31]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x446dab.7
movzx eax, byte [eax + 0x446fc0]
jmp dword [eax*4 + 0x446f98]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
sub ecx, eax
cmp ecx, 1
je 0x446c3e
xor eax, eax
jmp 0x446d03
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x446c4d
mov eax, str.FALSE
push eax
call dword [0x45e00c]
add esp, 4
jmp 0x446d03
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.00446530
jmp 0x446d03
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
inc eax
cmp eax, edi
jbe 0x446c8a
xor eax, eax
jmp 0x446d03
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
call fcn.004464c0
jmp 0x446d03
push 0x45a9ec
call dword [0x45e00c]
add esp, 4
jmp 0x446d03
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
push 1
push edx
call fcn.00446950
mov ebx, dword [esp + 0x84]
add esp, 8
jmp 0x446d03
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
call fcn.00446ac0
jmp 0x446d03
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push eax
call fcn.004469d0
add esp, 4
jmp 0x446d03
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
call fcn.00446580
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.0x446dab.7
test esi, esi
je 0x446d51
mov dl, byte [eax]
mov ecx, eax
cmp dl, 0x41
jl 0x446d26
cmp dl, 0x5a
jg 0x446d26
mov dl, byte [ecx + 1]
inc ecx
cmp dl, 0x41
jge 0x446d18
cmp byte [ecx], 0
jne 0x446d37
sub ecx, eax
cmp ecx, 2
mov ecx, 0x453698
jle 0x446d3c
mov ecx, 0x451018
sub ecx, esi
mov edi, edi
cmp esi, ebx
jae 0x446d4a
mov dl, byte [ecx + esi]
mov byte [esi + ebp], dl
inc esi
cmp byte [ecx + esi], 0
jne 0x446d40
cmp byte [eax], 0
je 0x446d71
mov ecx, eax
sub ecx, esi
lea ebx, [ebx]
cmp esi, ebx
jae 0x446d6a
mov dl, byte [ecx + esi]
mov byte [esi + ebp], dl
inc esi
cmp byte [ecx + esi], 0
jne 0x446d60
push eax
call dword [0x45e004]
add esp, 4
cmp esi, ebx
jae 0x446d83
mov byte [esi + ebp], 0x3d
inc esi
cmp dword [esp + 0x48], 0
mov dword [esp + 0x10], esi
jne case.0x446dab.7
movzx ecx, byte [esp + 0x45]
lea eax, [ecx - 1]
cmp eax, 0x1d
ja case.0x446dab.7
movzx eax, byte [eax + 0x447008]
jmp dword [eax*4 + 0x446fe0]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
sub ecx, eax
cmp ecx, 1
je 0x446dc8
xor eax, eax
jmp 0x446f37
cmp byte [eax], 0
mov eax, str.TRUE
jne 0x446dd7
mov eax, str.FALSE
push eax
call dword [0x45e00c]
add esp, 4
jmp 0x446f37
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, edi
xor ecx, ecx
sub edx, eax
jne 0x446dfd
xor eax, eax
jmp 0x446f37
cmp edx, 4
jbe 0x446e0c
call fcn.004464c0
jmp 0x446f37
test byte [eax], 0x80
je 0x446e14
or ecx, 0xffffffff
movzx edx, byte [eax]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, edi
jb 0x446e14
mov eax, 0x4595e8
cmp ecx, 0xa
jae 0x446e30
mov eax, 0x45a9ec
push ecx
push eax
push str._s_x
call fcn.00419ee0
add esp, 0xc
jmp 0x446f37
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
inc eax
cmp eax, edi
jbe 0x446e60
xor eax, eax
jmp 0x446f37
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.004464c0
jmp 0x446f37
push 0x45a9ec
call dword [0x45e00c]
add esp, 4
jmp 0x446f37
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
xor edi, edi
cmp ebx, ebp
jae 0x446ee5
push ebp
push ebx
push edi
push edi
call fcn.00446770
mov esi, eax
add esp, 0x10
test esi, esi
je 0x446ee1
lea eax, [esi + 1]
push eax
call dword [section..data]
mov edi, eax
add esp, 4
test edi, edi
je 0x446ee1
push ebp
push ebx
push esi
push edi
call fcn.00446770
add esp, 0x10
mov byte [esi + edi], 0
call fcn.00446460
mov esi, eax
test esi, esi
je 0x446ee1
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 0x446f37
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00446ac0
jmp 0x446f37
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push edx
call fcn.004469d0
add esp, 4
jmp 0x446f37
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
call fcn.00446580
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.0x446dab.7
cmp byte [eax], 0
mov ecx, eax
je 0x446f52
cmp esi, ebx
jae 0x446f4b
mov dl, byte [ecx]
mov byte [esi + ebp], dl
inc ecx
inc esi
cmp byte [ecx], 0
jne 0x446f42
push eax
call dword [0x45e004]
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, dword [esp + 0x54]
jb 0x446ba5
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 8]
cmp ecx, eax
jb 0x446b76
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