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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
push esi
push edi
mov esi, ecx
push 0
push 0
lea ecx, [esp + 0x48]
mov dword [esp + 0x24], esi
call fcn.00591df0
mov eax, dword [ebp + 8]
cmp eax, 3
mov ecx, 0xa0
je 0x4fa6b8
cmp eax, 6
je 0x4fa6b8
cmp eax, 7
je 0x4fa6b8
cmp eax, 1
je 0x4fa6a5
cmp eax, 5
je 0x4fa6a5
cmp eax, 4
jne 0x4fa6cd
mov edx, dword [esi + 0x40]
cmp edx, dword [esi + 0x170]
jge 0x4fa6cd
mov edx, dword [esp + 0x40]
add edx, ecx
jmp 0x4fa6c9
mov edx, dword [esi + 0x38]
cmp edx, dword [esi + 0x168]
jle 0x4fa6cd
mov edx, dword [esp + 0x40]
sub edx, ecx
mov dword [esp + 0x40], edx
test eax, eax
je 0x4fa6fd
cmp eax, 7
je 0x4fa6fd
cmp eax, 4
je 0x4fa6fd
cmp eax, 2
je 0x4fa6ea
cmp eax, 5
je 0x4fa6ea
cmp eax, 6
jne 0x4fa712
mov eax, dword [esi + 0x44]
cmp eax, dword [esi + 0x174]
jge 0x4fa712
mov eax, dword [esp + 0x44]
add eax, ecx
jmp 0x4fa70e
mov edx, dword [esi + 0x3c]
cmp edx, dword [esi + 0x16c]
jle 0x4fa712
mov eax, dword [esp + 0x44]
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4fa726
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4fadfe
lea ecx, [esp + 0x30]
call fcn.0041c440
mov eax, dword [esi + 0x38]
mov ecx, dword [esp + 0x40]
lea edx, [eax + ecx + 0x200]
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x30], edx
lea edx, [eax + ecx + 0x180]
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edx
call fcn.0041c440
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004fa150
add esp, 8
push 0
push 0
lea ecx, [esp + 0x70]
call fcn.004017b0
mov edx, dword [0x11c76ac]
mov eax, dword [0x11c76a8]
dec edx
push edx
dec eax
push eax
lea ecx, [esp + 0x78]
call fcn.004017b0
mov ecx, dword [0x11c76ac]
dec ecx
push ecx
push 0
lea ecx, [esp + 0x80]
call fcn.004017b0
mov edx, dword [0x11c76a8]
push 0
dec edx
push edx
lea ecx, [esp + 0x88]
call fcn.004017b0
lea ecx, [esp + 0x50]
call fcn.0041c440
lea ecx, [esp + 0x58]
call fcn.0041c440
lea ecx, [esp + 0x48]
call fcn.0041c440
lea ecx, [esp + 0x60]
call fcn.0041c440
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.004f9720
mov edx, dword [eax]
mov dword [esp + 0x58], edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x64], eax
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 4]
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x74], edx
call fcn.004f9720
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov eax, dword [eax + 4]
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x28]
mov dword [esp + 0x68], eax
push edx
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push eax
push ecx
mov dword [esp + 0x8c], edx
call fcn.0050ea60
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
sub edi, eax
mov eax, dword [esp + 0x80]
push edx
push eax
mov dword [esp + 0x84], edi
call fcn.0050ea60
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
push ecx
sub ebx, eax
push edx
mov dword [esp + 0x94], ebx
call fcn.0050ea60
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x98]
push eax
push ecx
call fcn.0050ea60
mov edx, dword [esp + 0xa4]
sub edx, eax
add esp, 0x40
lea ecx, [esp + 0x38]
mov dword [esp + 0x64], edx
call fcn.0041c450
test eax, eax
jne 0x4fad7f
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ecx, dword [0x11c76ac]
xor edi, edi
xor ebx, ebx
cmp eax, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], edi
jge 0x4fa944
cmp esi, edi
jge 0x4fa932
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
push eax
jmp 0x4fad59
cmp ecx, esi
jg 0x4fa944
dec ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ecx
jmp 0x4fad4f
mov edx, dword [0x11c76a8]
cmp edx, eax
jg 0x4fa987
cmp esi, edi
jge 0x4fa96a
lea eax, [esp + 0x38]
dec edx
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
push ecx
jmp 0x4fad59
cmp ecx, esi
jg 0x4fa987
dec edx
mov dword [esp + 0x38], edx
lea edx, [esp + 0x38]
dec ecx
push edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x40], ecx
push eax
jmp 0x4fad59
cmp eax, edi
jge 0x4fa99a
mov ebx, 4
mov dword [esp + 0xc], 2
jmp 0x4fa9ab
cmp edx, eax
jg 0x4fa9af
mov ebx, 0xfffffffc
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 0x14], ebx
cmp esi, edi
jge 0x4fa9c2
mov ebx, 0xfffffffc
mov dword [esp + 0xc], 2
jmp 0x4fa9d3
cmp ecx, esi
jg 0x4fa9d7
mov ebx, 4
mov dword [esp + 0xc], 0xfffffffe
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x40], edi
jne 0x4faac6
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x40]
cmp esi, dword [eax + 0x170]
jle 0x4faa2b
dec edx
mov dword [esp + 0x3c], edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.0050ea60
mov ecx, dword [esp + 0x44]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x4faa79
mov edx, dword [eax + 0x38]
cmp edx, dword [eax + 0x168]
jge 0x4faa71
dec ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], ecx
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x40], edi
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.0050ea60
mov ecx, dword [esp + 0x44]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x4faa79
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x34]
cmp ebx, edi
je 0x4fab38
mov eax, dword [esp + 0xc]
test eax, eax
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x50]
jg 0x4fac3c
cdq
idiv ebx
mov edx, edi
sub edx, esi
imul eax, edx
mov edx, dword [esp + 0x54]
add eax, ecx
cmp eax, edx
jge 0x4fac30
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x2c]
push ecx
jmp 0x4fad59
cmp dword [esp + 0x44], edi
jne 0x4faa75
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x3c]
cmp esi, dword [eax + 0x16c]
jge 0x4fab18
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.0050ea60
mov ecx, dword [esp + 0x44]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x4faa79
mov esi, dword [eax + 0x44]
cmp esi, dword [eax + 0x174]
jle 0x4fab2e
dec edx
dec ecx
mov dword [esp + 0x3c], ecx
jmp 0x4fa9f5
mov ecx, dword [esp + 0x34]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4fab9c
test ebx, ebx
jg 0x4fab76
cmp esi, edi
jge 0x4fab72
mov eax, ebx
cdq
idiv dword [esp + 0xc]
mov edx, dword [esp + 0x4c]
sub edx, ecx
imul eax, edx
mov edx, dword [esp + 0x48]
add eax, esi
cmp eax, edx
jl 0x4fad10
mov ebx, dword [esp + 0x14]
test ebx, ebx
jl 0x4fab9c
cmp esi, edi
jle 0x4fab9c
mov eax, ebx
cdq
idiv dword [esp + 0xc]
mov edx, dword [esp + 0x64]
sub edx, ecx
imul eax, edx
mov edx, dword [esp + 0x60]
add eax, esi
cmp eax, edx
jg 0x4fad3d
mov ebx, dword [esp + 0x14]
test ebx, ebx
mov dword [esp + 0x20], 0
je 0x4fada7
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4fada7
mov eax, ebx
cdq
idiv dword [esp + 0xc]
mov ebx, eax
test ebx, ebx
jge 0x4fabc7
neg ebx
mov edx, dword [esp + 0x54]
cmp ecx, edx
jg 0x4fac7e
sub edx, ecx
sub edi, esi
mov eax, edi
jns 0x4fabdd
neg eax
imul edx, ebx
cmp eax, edx
jg 0x4faced
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x24]
push ecx
mov edi, 1
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.0050ea60
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x4facf1
mov eax, dword [esp + 0xc]
test eax, eax
jl 0x4fab48
mov eax, dword [esp + 0xc]
cdq
idiv ebx
mov edx, dword [esp + 0x58]
sub edx, esi
imul eax, edx
mov edx, dword [esp + 0x5c]
add eax, ecx
cmp eax, edx
jle 0x4fab40
mov eax, dword [0x11c76a8]
mov ecx, dword [0x11c76ac]
dec eax
lea edx, [esp + 0x38]
mov dword [esp + 0x38], eax
dec ecx
push edx
lea eax, [esp + 0x2c]
mov dword [esp + 0x40], ecx
push eax
jmp 0x4fad59
mov eax, dword [esp + 0x5c]
cmp eax, ecx
jg 0x4faced
mov edi, dword [esp + 0x58]
mov edx, ecx
sub edx, eax
mov eax, esi
sub eax, edi
jns 0x4fac96
neg eax
imul edx, ebx
cmp eax, edx
jg 0x4faced
mov edx, dword [0x11c76a8]
mov eax, dword [0x11c76ac]
dec edx
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
push ecx
lea edx, [esp + 0x24]
dec eax
push edx
mov edi, 1
mov dword [esp + 0x44], eax
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.0050ea60
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x4facf1
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
cmp esi, edx
jg 0x4fad24
mov eax, dword [esp + 0x4c]
sub edx, esi
sub eax, ecx
jns 0x4fad05
neg eax
imul eax, ebx
cmp eax, edx
jg 0x4fad9f
mov eax, dword [0x11c76ac]
dec eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], eax
jmp 0x4fad4f
mov eax, dword [esp + 0x60]
cmp eax, esi
jg 0x4fad9f
sub esi, eax
sub ecx, dword [esp + 0x64]
jns 0x4fad36
neg ecx
imul ecx, ebx
cmp ecx, esi
jg 0x4fad9f
mov eax, dword [0x11c76a8]
dec eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.004f9720
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 4]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.0050ea60
mov ecx, dword [esp + 0x44]
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
push 1
push 1
lea edx, [esp + 0x38]
push edx
call fcn.004f6910
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test edi, edi
jne 0x4fad7f
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x38]
call fcn.0041c450
test eax, eax
jne 0x4fad7f
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
lea esp, [esp]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add eax, ebx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x3c]
add edx, edi
push ecx
mov dword [esp + 0x3c], edx
call fcn.004fa150
add esp, 8
inc esi
cmp esi, 0x3e8
jge 0x4fadfe
lea ecx, [esp + 0x38]
call fcn.0041c450
test eax, eax
je 0x4fadc0
jmp 0x4fad7f
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4