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

Disassembly:
sub esp, 0x40
push ebx
mov ebx, dword [esp + 0x48]
push ebp
push esi
mov esi, ebx
imul esi, esi, 0x2830
push edi
add esi, 0x9d27d8
xor edi, edi
cmp ebx, 1
mov dword [esp + 0x40], esi
jne 0x4f78ca
test byte [0x8c0871], bl
jne 0x4f78ca
mov dword [esi + 0x27e0], edi
mov dword [esi + 0x27e4], edi
jmp 0x4f78f1
push ebx
call fcn.004f0070
push eax
call fcn.00529280
push ebx
mov dword [esi + 0x27e0], eax
call fcn.004f0070
push eax
call fcn.00529200
add esp, 0x10
mov dword [esi + 0x27e4], eax
mov ecx, dword [0x705898]
mov dword [esi + 0x27e8], edi
mov dword [esi + 0x27ec], edi
mov dword [esi + 0x27f0], edi
mov dword [esi + 0x27f4], edi
mov dword [esi + 0x27f8], edi
mov dword [esi + 0x27fc], edi
mov dword [esi + 0x2800], edi
mov dword [esi + 0x2804], edi
mov dword [esi + 0x2808], edi
mov dword [esi + 0x2810], edi
mov dword [esi + 0x2820], edi
mov dword [esi + 0x2814], edi
mov dword [esi + 0x2824], edi
mov dword [esi + 0x2818], edi
mov dword [esi + 0x2828], edi
mov dword [esi + 0x281c], edi
mov dword [esi + 0x282c], edi
movss xmm0, dword [ecx + 0x3b4]
mulss xmm0, dword [0x64f8a0]
cvttss2si edx, xmm0
movss xmm0, dword [ecx + 0x3b8]
mulss xmm0, dword [0x649614]
mov eax, 0xfffffff0
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x3a8]
mov ecx, eax
cvttss2si edx, xmm0
sub ecx, edx
sub ecx, 0x1d0
cmp dword [esp + 0x58], edi
je 0x4f79be
cdq
sub eax, edx
sar eax, 1
mov edx, 0x100
sub edx, eax
add ecx, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], edi
jmp 0x4f79cf
add ecx, 0x20
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], edi
jmp 0x4f79cf
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
imul eax, eax, 0x13f0
push 1
add eax, esi
push 0x13e
push eax
mov edi, 0x3f800000
mov dword [esp + 0x34], eax
call fcn.004b7a50
push 9
call fcn.00523270
add esp, 0x10
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
xor ebp, ebp
jmp 0x4f7a10
mov ecx, dword [esp + 0x28]
lea eax, [ebp*8]
sub eax, ebp
add eax, eax
sub eax, ebp
shl eax, 4
test ebp, ebp
lea esi, [eax + ecx + 0x10]
jne 0x4f7a75
cmp dword [esp + 0x58], ebp
mov ebx, 0x18
je 0x4f7a61
mov edx, dword [0x705898]
mov eax, dword [edx + 0x3a8]
imul eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, 0x34
add eax, 0x99
mov edx, 0x98
jmp 0x4f7bbd
mov ecx, 0x58
mov eax, 0x175
mov edx, 0x98
jmp 0x4f7bbd
cmp ebp, 1
jne 0x4f7ac3
cmp dword [esp + 0x58], 0
mov ebx, 0x18
je 0x4f7aaf
mov eax, dword [0x705898]
mov eax, dword [eax + 0x3a8]
imul eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, 0xcc
add eax, 0x99
mov edx, 0x10
jmp 0x4f7bbd
mov ecx, 0xf0
mov eax, 0x175
mov edx, 0x10
jmp 0x4f7bbd
cmp ebp, 2
je 0x4f7b7e
cmp ebp, 3
je 0x4f7b7e
cmp ebp, 4
je 0x4f7b7e
cmp ebp, 5
je 0x4f7b45
cmp ebp, 6
je 0x4f7b45
cmp dword [esp + 0x58], 0
lea ebx, [ebp - 7]
je 0x4f7b28
mov edx, dword [0x705898]
mov eax, dword [edx + 0x3a8]
imul eax, dword [esp + 0x54]
cdq
mov ecx, 0x26
sub ecx, ebx
sub eax, edx
lea ecx, [ecx + ecx*2]
add ecx, ecx
lea edx, [ebx + ebx*2]
sar eax, 1
lea eax, [eax + edx*2 + 0x99]
mov ebx, 4
jmp 0x4f7bbb
mov ecx, 0x2c
sub ecx, ebx
lea eax, [ebx + ebx*2]
lea ecx, [ecx + ecx*2]
add ecx, ecx
lea eax, [eax + eax + 0x175]
mov ebx, 4
jmp 0x4f7bbb
cmp dword [esp + 0x58], 0
mov ebx, 5
je 0x4f7b72
mov eax, dword [0x705898]
mov eax, dword [eax + 0x3a8]
imul eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, 0x32
add eax, 0xc3
jmp 0x4f7bbb
mov ecx, 0x54
mov eax, 0x1a1
jmp 0x4f7bbb
cmp dword [esp + 0x58], 0
je 0x4f7bac
mov edx, dword [0x705898]
mov eax, dword [edx + 0x3a8]
imul eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, 0x3f
add eax, 0xb5
mov ebx, 9
jmp 0x4f7bbb
mov ecx, 0x63
mov eax, 0x191
mov ebx, 0xb
xor edx, edx
push 0
push 0
push 0
push 0
push 2
push 0x10
push 8
push 0
push 0
push ebx
push edx
mov edx, dword [esp + 0x50]
push 0xffc0
add eax, edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x60]
add ecx, eax
push ecx
mov ecx, dword [esp + 0x84]
push ecx
push edx
push esi
call fcn.004b8800
add esp, 0x44
test ebp, ebp
jne 0x4f7c18
mov eax, 0xfffa
add word [esi + 0xa8], ax
add word [esi + 0xc0], ax
mov eax, 0x507f7f7f
jmp 0x4f7c90
cmp ebp, 1
jne 0x4f7c45
mov eax, 0xfffa
add word [esi + 0xa8], ax
add word [esi + 0xc0], ax
mov eax, 0x507f7f7f
mov dword [esi + 0x98], eax
mov dword [esi + 0x68], eax
mov eax, 0x7f7f7f
jmp 0x4f7c99
cmp ebp, 2
je 0x4f7c8b
cmp ebp, 5
je 0x4f7c8b
cmp ebp, 3
jne 0x4f7c5b
mov eax, 0x80360a38
jmp 0x4f7c90
cmp ebp, 7
jne 0x4f7c67
mov eax, 0x6020436b
jmp 0x4f7c90
cmp ebp, 8
jne 0x4f7c73
mov eax, 0x6026682b
jmp 0x4f7c90
cmp ebp, 9
jne 0x4f7c7f
mov eax, 0x606c5d28
jmp 0x4f7c90
cmp ebp, 0xa
jne 0x4f7cba
mov eax, 0x60523a6a
jmp 0x4f7c90
mov eax, 0x50080808
mov dword [esi + 0x98], eax
mov dword [esi + 0x68], eax
mov dword [esi + 0xb0], eax
mov dword [esi + 0xb4], edi
mov dword [esi + 0x9c], edi
mov dword [esi + 0x80], eax
mov dword [esi + 0x84], edi
mov dword [esi + 0x6c], edi
add ebp, 1
cmp ebp, 0xb
jl 0x4f7a10
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x4f7cd2
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x58]
xor esi, esi
lea ecx, [eax + eax*8 + 0x90]
shl ecx, 4
add ecx, dword [esp + 0x28]
cmp eax, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], esi
mov byte [esp + 0x18], 1
mov dword [esp + 0x44], ecx
jne 0x4f7d12
push 0xa
call fcn.00523270
add esp, 4
jmp 0x4f7e36
cmp eax, 1
jne 0x4f7d1b
mov esi, eax
jmp 0x4f7d2b
cmp eax, 2
jne 0x4f7d24
mov esi, eax
jmp 0x4f7d2b
cmp eax, 3
jne 0x4f7d5e
mov esi, eax
push 0xc
call fcn.00523270
mov ecx, 0x18
mov edi, 0x10
mov dword [esp + 0x18], 0x48
mov dword [esp + 0x14], 0x40
mov dword [esp + 0x20], 0xffffffff
mov byte [esp + 0x1c], 0
jmp 0x4f7f9f
cmp eax, 4
jne 0x4f7da8
push 0xc
call fcn.00523270
add esp, 4
mov ecx, 0x18
cmp edi, esi
mov ebp, eax
mov ebx, edx
mov edi, ecx
mov esi, 0xd
jne 0x4f7d86
mov esi, 4
mov dword [esp + 0x14], 0x48
mov dword [esp + 0x10], 0x40
mov dword [esp + 0x1c], 0xffffffff
mov byte [esp + 0x18], 0
jmp 0x4f7fa6
cmp eax, 5
jne 0x4f7dd2
push 0xc
call fcn.00523270
add esp, 4
mov ecx, 0x18
cmp edi, esi
mov ebp, eax
mov ebx, edx
mov edi, ecx
mov esi, 0xe
jne 0x4f7d86
mov esi, 5
jmp 0x4f7d86
cmp eax, 6
jne 0x4f7dfc
push 0xc
call fcn.00523270
add esp, 4
mov ecx, 0x18
cmp edi, esi
mov ebp, eax
mov ebx, edx
mov edi, ecx
mov esi, 0xf
jne 0x4f7d86
mov esi, 6
jmp 0x4f7d86
cmp eax, 7
jne 0x4f7e26
push 0xd
mov esi, eax
call fcn.00523270
add esp, 4
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x14], 0xc0
mov dword [esp + 0x10], 0x60
jmp 0x4f7fa2
cmp eax, 8
jne 0x4f7f24
mov esi, eax
call fcn.00522e60
test edi, edi
mov ebp, eax
mov ebx, edx
je 0x4f7e47
xor ecx, ecx
xor edi, edi
jmp 0x4f7fa6
mov ecx, 0x40
mov edi, 0x50
mov eax, dword [esp + 0x20]
mov edx, dword [eax*8 + 0x69de70]
mov eax, dword [eax*8 + 0x69de74]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x18]
push 0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x40]
push edx
mov dx, word [esi*8 + 0x69ddf6]
add dx, ax
push 1
push 2
push edx
mov dx, word [esi*8 + 0x69ddf4]
add dx, ax
mov ax, word [esi*8 + 0x69ddf2]
push edx
mov dx, word [esi*8 + 0x69ddf0]
push eax
mov eax, dword [esp + 0x40]
add edi, eax
mov eax, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x4c]
push edi
push ecx
mov ecx, dword [esp + 0x68]
push 0xffc0
add ecx, edx
mov edx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x64]
add eax, ecx
push eax
push ebx
push ebp
push edx
call fcn.004b8250
mov eax, dword [esp + 0x68]
add eax, 1
add esp, 0x48
cmp eax, 0x12
mov dword [esp + 0x20], eax
jl 0x4f7cce
mov edi, dword [esp + 0x58]
test edi, edi
je 0x4f7fe5
mov eax, dword [0x705898]
mov eax, dword [eax + 0x3a8]
imul eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov ecx, 0x4c
add eax, 0x9c
jmp 0x4f7fef
cmp eax, 9
je 0x4f7f8c
cmp eax, 0xc
je 0x4f7f8c
cmp eax, 0xa
je 0x4f7f77
cmp eax, 0xb
je 0x4f7f77
cmp eax, 0xd
jne 0x4f7f52
push 0x10
mov esi, 0xb
call fcn.00523270
mov ecx, 0x14
mov edi, ecx
jmp 0x4f7f9f
push 0x13
mov esi, 0xc
call fcn.00523270
mov ecx, 8
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
mov edi, ecx
mov dword [esp + 0x38], 1
jmp 0x4f7f9f
push 0xf
mov esi, 0xa
call fcn.00523270
mov ecx, esi
mov edi, 0x10
jmp 0x4f7f9f
push 0xb
mov esi, 9
call fcn.00523270
mov ecx, 0x20
mov edi, ecx
add esp, 4
mov ebp, eax
mov ebx, edx
cmp dword [esp + 0x58], 0
je 0x4f7e51
mov eax, dword [esp + 0x20]
mov edx, dword [eax*8 + 0x69df00]
mov eax, dword [0x705898]
mov eax, dword [eax + 0x3a8]
imul eax, dword [esp + 0x54]
mov dword [esp + 0x3c], edx
cdq
sub eax, edx
mov edx, dword [esp + 0x20]
sar eax, 1
add eax, dword [edx*8 + 0x69df04]
jmp 0x4f7e67
mov ecx, 0x70
mov eax, 0x178
mov edx, dword [esp + 0x40]
mov edx, dword [edx + 0x27e4]
cmp edx, 0x160
push 0
push 0
jl 0x4f8032
mov esi, dword [esp + 0x2c]
push 0
push 0
push 0xffc0
add eax, esi
push eax
mov eax, dword [esp + 0x44]
add ecx, eax
push ecx
mov ecx, dword [esp + 0x44]
push edx
add ecx, 0x1320
push ecx
call fcn.004af7b0
add esp, 0x24
jmp 0x4f80ac
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
push 0x14
push 0x80
push 0xffc0
add eax, ebx
push eax
mov eax, dword [esp + 0x44]
add ecx, eax
push ecx
push edx
add esi, 0x1320
push esi
call fcn.004af7b0
mov eax, 0xfffa
add word [esi + 0xa8], ax
mov ecx, 0x80000000
add esp, 0x24
add word [esi + 0xc0], ax
mov eax, 0x3f800000
mov dword [esi + 0x80], ecx
mov dword [esi + 0x68], ecx
mov ecx, 0x80400020
mov dword [esi + 0x84], eax
mov dword [esi + 0x6c], eax
mov dword [esi + 0xb0], ecx
mov dword [esi + 0xb4], eax
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, 2
mov dword [esp + 0x30], eax
jl 0x4f79cb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret