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

Disassembly:
sub esp, 0x90
push ebx
push ebp
push esi
mov esi, eax
mov eax, dword [edi]
test eax, eax
je 0x458213
mov byte [edi + 0xba], 1
cmp byte [ecx], 0
je 0x4579f9
push ecx
push eax
call dword [fcn.0048d470]
mov eax, 0x80000000
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov eax, dword [edi]
push eax
mov byte [esp + 0x1a], 0
call dword [fcn.0048d598]
mov ecx, dword [edi]
mov ebx, eax
push ecx
mov dword [esp + 0x50], ebx
call dword [fcn.0048d594]
mov dword [esp + 0x28], eax
test eax, eax
je 0x457a3d
mov dword [esp + 0x18], 9
jmp 0x457a4f
xor edx, edx
test ebx, ebx
setne dl
lea edx, [edx*4 + 1]
mov dword [esp + 0x18], edx
cmp byte [esi], 0
je 0x457c69
lea ebp, [esi + 1]
jmp 0x457a60
movzx ebx, byte [esi]
test ebx, 0xffffff80
jne 0x457a7d
push 2
push ebx
call fcn.0047814e
add esp, 8
test eax, eax
je 0x457a7d
and ebx, 0xffffffdf
movsx eax, bl
add eax, 0xffffffbf
cmp eax, 0x18
ja case.0x457a93.66
movzx eax, byte [eax + 0x45824c]
jmp dword [eax*4 + 0x458224]
push 8
push 0x496064
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne case.0x457a93.66
add esi, 7
add ebp, 7
mov byte [esp + 0x16], 1
jmp case.0x457a93.66
push 6
push 0x49549c
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne case.0x457a93.66
mov eax, 0x80000001
add esi, 5
add ebp, 5
mov dword [esp + 0x1c], eax
jmp 0x457c5a
push 8
push 0x49594c
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne 0x457b15
add esi, 7
add ebp, 7
mov dword [esp + 0x18], 6
jmp case.0x457a93.66
push 8
push 0x495958
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne case.0x457a93.66
add esi, 7
add ebp, 7
mov dword [esp + 0x18], 3
jmp case.0x457a93.66
push 2
push 0x496070
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne 0x457b63
inc esi
inc ebp
mov dword [esp + 0x18], 8
jmp case.0x457a93.66
push 0xa
push 0x496074
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne case.0x457a93.66
add esi, 9
add ebp, 9
mov dword [esp + 0x18], 4
jmp case.0x457a93.66
push 7
push 0x495964
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne case.0x457a93.66
add esi, 6
add ebp, 6
mov dword [esp + 0x18], 9
jmp case.0x457a93.66
push ebp
call fcn.00478196
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x457a93.66
push 4
push 0x494594
push esi
call fcn.00477695
add esp, 0xc
test eax, eax
jne 0x457beb
add esi, 3
add ebp, 3
mov dword [esp + 0x18], eax
jmp case.0x457a93.66
push ebp
call fcn.00478196
add esp, 4
mov dword [esp + 0xc], eax
jmp case.0x457a93.66
push 6
push 0x49549c
push ebp
call fcn.00477695
add esp, 0xc
test eax, eax
jne 0x457c1e
add esi, 6
add ebp, 6
mov dword [esp + 0x1c], 0x80000001
jmp case.0x457a93.66
push ebp
call fcn.00478196
add esp, 4
mov dword [esp + 0x1c], eax
jmp case.0x457a93.66
push 6
push 0x49549c
push ebp
call fcn.00477695
add esp, 0xc
test eax, eax
jne 0x457c51
add esi, 6
add ebp, 6
mov dword [esp + 0x24], 0x80000001
jmp case.0x457a93.66
push ebp
call fcn.00478196
add esp, 4
mov dword [esp + 0x24], eax
inc esi
inc ebp
cmp byte [esi], 0
jne 0x457a60
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ebx
mov byte [esp + 0x17], 0
test eax, eax
je 0x457c9e
cmp eax, 9
je 0x457c90
cmp eax, 4
jne 0x457cad
cmp dword [esp + 0x4c], 0
jne 0x457c9e
cmp dword [esp + 0x28], 0
je 0x457cad
mov ecx, dword [edi]
push eax
push ecx
call dword [fcn.0048d5d0]
mov byte [esp + 0x17], 1
mov edx, dword [edi]
push edx
call dword [fcn.0048d594]
test eax, eax
sete al
mov byte [esp + 0x23], al
test al, al
je 0x457e61
cmp byte [esp + 0x16], 0
je 0x457dae
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
cmp dword [edi + 0xc], ebx
jbe 0x457d6f
mov dword [esp + 0x10], ebx
jmp 0x457cf0
mov esi, dword [edi + 0x14]
add esi, dword [esp + 0x10]
cmp byte [esi + 4], 0x15
je 0x457d47
mov eax, dword [esi]
push 0xfffffffffffffff0
push eax
call dword [fcn.0048d5e8]
test eax, 0x10000000
je 0x457d47
mov edx, dword [esi]
lea ecx, [esp + 0x2c]
push ecx
push edx
call dword [fcn.0048d454]
mov ecx, dword [edi]
push 2
lea eax, [esp + 0x30]
push eax
push ecx
push 0
call dword [fcn.0048d3e4]
mov eax, dword [esp + 0x34]
cmp eax, ebp
jle 0x457d39
mov ebp, eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0xc]
jle 0x457d47
mov dword [esp + 0xc], eax
add dword [esp + 0x10], 0x14
inc ebx
cmp ebx, dword [edi + 0xc]
jb 0x457cf0
mov dword [esp + 0x10], ebp
test ebp, ebp
jle 0x457d61
add ebp, dword [edi + 0x78]
mov dword [esp + 0x10], ebp
cmp dword [esp + 0xc], 0
jle 0x457d6f
mov edx, dword [edi + 0x7c]
add dword [esp + 0xc], edx
mov eax, dword [edi + 4]
test eax, eax
je 0x457e61
push 0xfffffffffffffff0
push eax
call dword [fcn.0048d5e8]
test eax, 0x10000000
je 0x457e61
mov ecx, dword [edi + 4]
lea eax, [esp + 0x2c]
push eax
push ecx
call dword [fcn.0048d454]
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x30]
add dword [esp + 0xc], edx
jmp 0x457e61
cmp esi, 0x80000000
je 0x457dc2
cmp ebx, 0x80000000
jne 0x457e61
cmp byte [edi + 0xb8], 0
je 0x457e2b
cmp esi, 0x80000000
jne 0x457de0
mov eax, dword [edi + 0x90]
add eax, dword [edi + 0x78]
mov dword [esp + 0x10], eax
cmp ebx, 0x80000000
jne 0x457e61
mov esi, dword [edi + 0x94]
add esi, dword [edi + 0x7c]
mov eax, dword [edi + 4]
mov dword [esp + 0xc], esi
test eax, eax
je 0x457e61
push 0xfffffffffffffff0
push eax
call dword [fcn.0048d5e8]
test eax, 0x10000000
je 0x457e61
mov ecx, dword [edi + 4]
lea eax, [esp + 0x2c]
push eax
push ecx
call dword [fcn.0048d454]
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x30]
add esi, edx
mov dword [esp + 0xc], esi
jmp 0x457e61
mov ecx, dword [edi]
lea eax, [esp + 0x2c]
push eax
push ecx
call dword [fcn.0048d458]
cmp esi, 0x80000000
jne 0x457e4d
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
cmp ebx, 0x80000000
jne 0x457e61
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
cmp byte [edi + 0xb8], 0
je 0x457ec2
cmp byte [edi + 0x54], 0
je 0x457e9d
xor ebp, ebp
cmp dword [edi + 0xc], ebp
jbe 0x457e9d
xor esi, esi
lea esp, [esp]
mov eax, dword [edi + 0x14]
add eax, esi
cmp byte [eax + 4], 0x13
jne 0x457e94
push 0
push eax
push edi
call fcn.0045b2c0
inc ebp
add esi, 0x14
cmp ebp, dword [edi + 0xc]
jb 0x457e80
cmp dword [esp + 0x1c], 0x80000000
jne 0x457eaf
mov dword [esp + 0x1c], 0x80000001
mov ebx, dword [esp + 0x24]
cmp ebx, 0x80000000
jne 0x457ec6
mov ebx, 0x80000001
jmp 0x457ec6
mov ebx, dword [esp + 0x24]
mov eax, dword [edi]
push eax
call dword [fcn.0048d558]
cmp byte [esp + 0x23], 0
mov dword [esp + 0x28], eax
je 0x458128
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov esi, dword [fcn.0048d5e8]
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov eax, dword [edi]
push 0xffffffffffffffec
push eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
call esi
mov ecx, dword [edi]
push eax
push ecx
call dword [fcn.0048d494]
mov edx, dword [edi]
neg eax
sbb eax, eax
neg eax
push eax
push 0xfffffffffffffff0
push edx
call esi
push eax
lea eax, [esp + 0x48]
push eax
call dword [0x48d460]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
sub esi, dword [esp + 0x3c]
sub ebp, dword [esp + 0x40]
push 0
lea ecx, [esp + 0x5c]
push ecx
push 0
push 0x30
call dword [fcn.0048d45c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
sub eax, dword [esp + 0x58]
sub ecx, dword [esp + 0x5c]
cmp byte [edi + 0xb8], 0
je 0x457f83
cmp dword [esp + 0x50], 0x80000000
jne 0x457f73
cmp esi, eax
jle 0x457f73
mov esi, eax
cmp dword [esp + 0x54], 0x80000000
jne 0x457f83
cmp ebp, ecx
jle 0x457f83
mov ebp, ecx
cmp dword [esp + 0x1c], 0x80000001
jne 0x457f9c
sub eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
cmp ebx, 0x80000001
jne 0x457fb3
mov eax, ecx
sub eax, ebp
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
add ebx, dword [esp + 0x5c]
mov eax, dword [edi]
lea edx, [esp + 0x68]
push edx
push eax
call dword [fcn.0048d454]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
sub ecx, eax
cmp esi, ecx
jne 0x457ff9
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x6c]
sub ecx, edx
cmp ebp, ecx
jne 0x457ff9
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x80000000
je 0x457fed
cmp ecx, eax
jne 0x457ff9
cmp ebx, 0x80000000
je 0x45803e
cmp ebx, edx
je 0x45803e
mov edx, dword [edi]
push edx
call dword [fcn.0048d598]
test eax, eax
je 0x458011
mov eax, dword [edi]
push 9
push eax
call dword [fcn.0048d5d0]
cmp ebx, 0x80000000
jne 0x45801d
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
cmp eax, 0x80000000
jne 0x45802c
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
mov edx, dword [edi]
push ecx
push ebp
push esi
push ebx
push eax
push edx
call dword [fcn.0048d5c0]
cmp byte [edi + 0xb8], 0
je 0x458128
mov ecx, dword [edi]
lea eax, [esp + 0x78]
push eax
push ecx
call dword [fcn.0048d454]
mov eax, dword [edi]
lea edx, [esp + 0x88]
push edx
push eax
call dword [fcn.0048d458]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
sub eax, dword [esp + 0x78]
sub ecx, dword [esp + 0x7c]
mov esi, dword [edi + 0xa8]
mov edx, eax
sub edx, dword [esp + 0x90]
mov ebp, ecx
sub ebp, dword [esp + 0x94]
cmp esi, 0x80000001
jne 0x4580a8
mov dword [edi + 0xa8], eax
jmp 0x4580b8
cmp esi, 0x80000000
je 0x4580b8
add esi, edx
mov dword [edi + 0xa8], esi
mov esi, dword [edi + 0xac]
cmp esi, 0x80000001
jne 0x4580ce
mov dword [edi + 0xac], ecx
jmp 0x4580de
cmp esi, 0x80000000
je 0x4580de
add esi, ebp
mov dword [edi + 0xac], esi
mov esi, dword [edi + 0xb0]
cmp esi, 0x80000001
jne 0x4580f4
mov dword [edi + 0xb0], eax
jmp 0x458104
cmp esi, 0x80000000
je 0x458104
add esi, edx
mov dword [edi + 0xb0], esi
mov eax, dword [edi + 0xb4]
cmp eax, 0x80000001
jne 0x458119
mov dword [edi + 0xb4], ecx
jmp 0x458128
cmp eax, 0x80000000
je 0x458128
add eax, ebp
mov dword [edi + 0xb4], eax
cmp byte [esp + 0x17], 0
jne 0x45813d
mov ecx, dword [esp + 0x18]
mov edx, dword [edi]
push ecx
push edx
call dword [fcn.0048d5d0]
mov eax, dword [esp + 0x18]
dec eax
cmp eax, 8
ja case.0x458152.2
movzx eax, byte [eax + 0x458270]
jmp dword [eax*4 + 0x458268]
mov esi, dword [edi]
call dword [fcn.0048d604]
cmp esi, eax
je 0x45816c
mov eax, esi
call fcn.00467640
cmp byte [edi + 0xb9], 0
je case.0x458152.2
mov byte [edi + 0xb9], 0
call dword [fcn.0048d5f8]
mov ebx, eax
test ebx, ebx
je 0x4581dc
cmp byte [edi + 0x54], 0
je case.0x458152.2
mov ebp, dword [fcn.0048d614]
push ebx
call ebp
lea esi, [eax - 3]
cmp esi, dword [edi + 0xc]
jb 0x4581b5
push ebx
call dword [fcn.0048d610]
test eax, eax
je 0x4581b0
push eax
call ebp
lea esi, [eax - 3]
cmp esi, dword [edi + 0xc]
jae case.0x458152.2
mov edx, dword [edi + 0x14]
lea ecx, [esi + esi*4]
lea esi, [edx + ecx*4]
test esi, esi
je case.0x458152.2
cmp byte [esi + 4], 0x13
jne case.0x458152.2
mov eax, dword [edi]
push eax
call dword [0x48d3ec]
push 1
push esi
push edi
call fcn.0045b2c0
jmp case.0x458152.2
mov ecx, dword [edi]
push ecx
call dword [fcn.0048d5b4]
push 1
push 0xffffffffffffffff
mov byte [edi + 0xb8], 0
mov byte [edi + 0xba], 0
mov dword [0x49d328], 0
call fcn.00401340
add esp, 8
mov dword [0x49d328], 1
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x90
ret