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

Disassembly:
test dword [0x7eda90], 0xffffff80
jne 0x4ffab8
test dword [0x7eda90], 0xffffffff
jne 0x4ffe3c
call fcn.006a6b5c
jmp fcn.004ffa90
push edi
push esi
push ebp
push ebx
sub esp, 0x14
mov esi, ecx
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x4ffadc
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov dword [esi + 0xc], ebp
mov dword [esi + 0x1b], edi
xor eax, eax
xor edx, edx
mov ecx, dword [edx + 0x7bc24c]
test ecx, ecx
je 0x4ffb0f
movzx ecx, byte [ecx + 0x10]
test cl, 2
jne 0x4ffb0f
add edx, 0x94
inc eax
cmp eax, 0x400
jl 0x4ffae6
mov edx, 0
cmove eax, edx
movsx ebx, ax
mov word [esi + 0x21], bx
imul eax, ebx, 0x94
lea ebx, [eax + 0x7bc1c0]
mov dword [ebx + 0x8c], esi
xor edx, edx
mov word [esi + 0x1f], dx
and byte [esi + 0x10], 0xfd
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4ffb40
push 1
call fcn.004ff14c
push 1
push 4
mov ecx, 0x6ffb0c
call fcn.004e566c
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
push eax
push edi
push ebx
mov ecx, ebp
call fcn.0054c8dc
cmp eax, 1
je 0x4ffb6c
movsx edx, word [ebx + 8]
test edx, edx
jl 0x4ffb7b
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
movsx eax, word [ebx + 0xa]
cmp eax, 0x10
jne 0x4ffb6c
neg edx
movsx edi, dx
cmp edi, dword [ebx + 0x84]
jle 0x4ffbb2
mov ecx, dword [ebx + 0x80]
call fcn.004db418
mov ecx, edi
shl ecx, 7
call fcn.004dbd48
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], edi
mov ecx, dword [0x7e12c0]
test ecx, ecx
je 0x4ffbcc
movsx edx, word [0x7e12c4]
cmp edi, edx
jle 0x4ffbe3
call fcn.004db418
lea ecx, [edi + edi]
call fcn.004dbd48
mov ecx, eax
mov dword [0x7e12c0], ecx
mov word [0x7e12c4], di
mov edx, dword [ebx + 0x80]
mov eax, dword [ebx]
mov dword [edx], eax
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [ebx + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ebx + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebx + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [ebx + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 0x3c]
mov dword [edx + 0x3c], eax
mov eax, dword [ebx + 0x40]
mov dword [edx + 0x40], eax
mov eax, dword [ebx + 0x44]
mov dword [edx + 0x44], eax
mov eax, dword [ebx + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [ebx + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [ebx + 0x50]
mov dword [edx + 0x50], eax
mov eax, dword [ebx + 0x54]
mov dword [edx + 0x54], eax
mov eax, dword [ebx + 0x58]
mov dword [edx + 0x58], eax
mov eax, dword [ebx + 0x5c]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x60]
mov dword [edx + 0x60], eax
mov eax, dword [ebx + 0x64]
mov dword [edx + 0x64], eax
mov eax, dword [ebx + 0x68]
mov dword [edx + 0x68], eax
mov eax, dword [ebx + 0x6c]
mov dword [edx + 0x6c], eax
mov eax, dword [ebx + 0x70]
mov dword [edx + 0x70], eax
mov eax, dword [ebx + 0x74]
mov dword [edx + 0x74], eax
mov eax, dword [ebx + 0x78]
mov dword [edx + 0x78], eax
mov eax, dword [ebx + 0x7c]
mov dword [edx + 0x7c], eax
lea eax, [edx + 0x80]
mov dword [esp + 8], eax
mov dword [ebx + 0x88], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 4], eax
movzx edx, word [edx + 0xa]
shl edx, 0x10
add edx, 0xfff00000
shr edx, 0x10
mov word [ecx], dx
cmp edi, 1
jle 0x4ffe24
mov edx, 1
mov ecx, dword [esp + 8]
lea ecx, [ecx + 0x10]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
mov dword [esp], esi
mov ebp, edx
mov esi, edx
mov ebx, ecx
mov edx, eax
mov edi, dword [esp + 8]
jmp 0x4ffd11
add ebx, 0x80
add edi, 0x80
mov eax, dword [esp + 0x30]
push eax
push edx
push edi
mov ecx, dword [esp + 0x34]
call fcn.0054c8dc
cmp eax, 1
je 0x4ffacd
mov edx, dword [edi + 0xc]
mov ecx, dword [0x7e12c0]
movzx eax, word [edi + 0xa]
shl eax, 0x10
add eax, 0xfff00000
shr eax, 0x10
mov word [ecx + ebp*2], ax
inc ebp
movsx eax, word [edi + 8]
movsx ecx, si
cmp eax, ecx
jne 0x4ffacd
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x88]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebx + 0x28]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [eax + 0x2c], ecx
mov ecx, dword [ebx + 0x30]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebx + 0x34]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebx + 0x38]
mov dword [eax + 0x38], ecx
mov ecx, dword [ebx + 0x3c]
mov dword [eax + 0x3c], ecx
mov ecx, dword [ebx + 0x40]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebx + 0x44]
mov dword [eax + 0x44], ecx
mov ecx, dword [ebx + 0x48]
mov dword [eax + 0x48], ecx
mov ecx, dword [ebx + 0x4c]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebx + 0x50]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebx + 0x54]
mov dword [eax + 0x54], ecx
mov ecx, dword [ebx + 0x58]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebx + 0x5c]
mov dword [eax + 0x5c], ecx
mov ecx, dword [ebx + 0x60]
mov dword [eax + 0x60], ecx
mov ecx, dword [ebx + 0x64]
mov dword [eax + 0x64], ecx
mov ecx, dword [ebx + 0x68]
mov dword [eax + 0x68], ecx
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 0x6c], ecx
mov eax, dword [esp + 0x10]
add dword [eax + 0x88], 0x70
inc esi
movsx ecx, si
mov eax, dword [esp + 0xc]
cmp eax, ecx
jg 0x4ffd05
mov esi, dword [esp]
or byte [esi + 0x10], 2
mov ecx, esi
call fcn.005001bc
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
push edi
push esi
push ebp
push ebx
sub esp, 0x14
mov ebp, ecx
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x4ffe60
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x1b], esi
xor eax, eax
xor edx, edx
mov ecx, dword [edx + 0x7bc24c]
test ecx, ecx
je 0x4ffe92
movzx ecx, byte [ecx + 0x10]
test cl, 2
jne 0x4ffe92
add edx, 0x94
inc eax
cmp eax, 0x400
jl 0x4ffe6a
jne 0x4ffe92
mov eax, 0
movsx edi, ax
mov word [ebp + 0x21], di
imul eax, edi, 0x94
lea edi, [eax + 0x7bc1c0]
mov dword [edi + 0x8c], ebp
xor edx, edx
mov word [ebp + 0x1f], dx
and byte [ebp + 0x10], 0xfd
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4ffec3
push 1
call fcn.004ff14c
push 1
push 4
mov ecx, 0x6ffb0c
call fcn.004e566c
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x30]
push eax
push esi
push edi
mov ecx, ebx
call fcn.0054c8dc
cmp eax, 1
je 0x4ffeef
movsx edx, word [edi + 8]
test edx, edx
jl 0x4ffefe
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
movsx eax, word [edi + 0xa]
cmp eax, 0x10
jne 0x4ffeef
neg edx
movsx esi, dx
cmp esi, dword [edi + 0x84]
jle 0x4fff35
mov ecx, dword [edi + 0x80]
call fcn.004db418
mov ecx, esi
shl ecx, 7
call fcn.004dbd48
mov dword [edi + 0x80], eax
mov dword [edi + 0x84], esi
mov ecx, dword [0x7e12c0]
test ecx, ecx
je 0x4fff4f
movsx edx, word [0x7e12c4]
cmp esi, edx
jle 0x4fff66
call fcn.004db418
lea ecx, [esi + esi]
call fcn.004dbd48
mov ecx, eax
mov dword [0x7e12c0], ecx
mov word [0x7e12c4], si
mov edx, dword [edi + 0x80]
mov eax, dword [edi]
mov dword [edx], eax
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov eax, dword [edi + 8]
mov dword [edx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [edx + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [edi + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [edi + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [edi + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [edi + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x38]
mov dword [edx + 0x38], eax
mov eax, dword [edi + 0x3c]
mov dword [edx + 0x3c], eax
mov eax, dword [edi + 0x40]
mov dword [edx + 0x40], eax
mov eax, dword [edi + 0x44]
mov dword [edx + 0x44], eax
mov eax, dword [edi + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [edi + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [edi + 0x50]
mov dword [edx + 0x50], eax
mov eax, dword [edi + 0x54]
mov dword [edx + 0x54], eax
mov eax, dword [edi + 0x58]
mov dword [edx + 0x58], eax
mov eax, dword [edi + 0x5c]
mov dword [edx + 0x5c], eax
mov eax, dword [edi + 0x60]
mov dword [edx + 0x60], eax
mov eax, dword [edi + 0x64]
mov dword [edx + 0x64], eax
mov eax, dword [edi + 0x68]
mov dword [edx + 0x68], eax
mov eax, dword [edi + 0x6c]
mov dword [edx + 0x6c], eax
mov eax, dword [edi + 0x70]
mov dword [edx + 0x70], eax
mov eax, dword [edi + 0x74]
mov dword [edx + 0x74], eax
mov eax, dword [edi + 0x78]
mov dword [edx + 0x78], eax
mov eax, dword [edi + 0x7c]
mov dword [edx + 0x7c], eax
lea eax, [edx + 0x80]
mov dword [esp + 8], eax
mov dword [edi + 0x88], eax
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 4], eax
movzx edx, word [edx + 0xa]
shl edx, 0x10
add edx, 0xfff00000
shr edx, 0x10
mov word [ecx], dx
cmp esi, 1
jle 0x5001a7
mov edx, 1
mov ecx, dword [esp + 8]
lea ecx, [ecx + 0x10]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov dword [esp], ebp
mov ebp, edx
mov esi, edx
mov ebx, ecx
mov edx, eax
mov edi, dword [esp + 8]
jmp 0x500094
add ebx, 0x80
add edi, 0x80
mov eax, dword [esp + 0x30]
push eax
push edx
push edi
mov ecx, dword [esp + 0x34]
call fcn.0054c8dc
cmp eax, 1
je 0x4ffe51
mov edx, dword [edi + 0xc]
movzx eax, word [edi + 0xa]
shl eax, 0x10
add eax, 0xfff00000
shr eax, 0x10
mov ecx, dword [0x7e12c0]
mov word [ecx + ebp*2], ax
inc ebp
movsx eax, word [edi + 8]
movsx ecx, si
cmp eax, ecx
jne 0x4ffe51
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x88]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebx + 0x28]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [eax + 0x2c], ecx
mov ecx, dword [ebx + 0x30]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebx + 0x34]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebx + 0x38]
mov dword [eax + 0x38], ecx
mov ecx, dword [ebx + 0x3c]
mov dword [eax + 0x3c], ecx
mov ecx, dword [ebx + 0x40]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebx + 0x44]
mov dword [eax + 0x44], ecx
mov ecx, dword [ebx + 0x48]
mov dword [eax + 0x48], ecx
mov ecx, dword [ebx + 0x4c]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebx + 0x50]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebx + 0x54]
mov dword [eax + 0x54], ecx
mov ecx, dword [ebx + 0x58]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebx + 0x5c]
mov dword [eax + 0x5c], ecx
mov ecx, dword [ebx + 0x60]
mov dword [eax + 0x60], ecx
mov ecx, dword [ebx + 0x64]
mov dword [eax + 0x64], ecx
mov ecx, dword [ebx + 0x68]
mov dword [eax + 0x68], ecx
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 0x6c], ecx
mov eax, dword [esp + 0x10]
add dword [eax + 0x88], 0x70
inc esi
movsx ecx, si
mov eax, dword [esp + 0xc]
cmp eax, ecx
jg 0x500088
mov ebp, dword [esp]
or byte [ebp + 0x10], 2
mov ecx, ebp
call fcn.005001bc
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc