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

Disassembly:
push 0xffffffffffffffff
push 0x68176428
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x68188590]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x68188590]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0xa7e0], 0x10
mov eax, dword [esi + 0xa7a8]
mov eax, dword [eax + 0x1c]
jb 0x4f8e0e
mov ecx, dword [esi + 0xa7cc]
jmp 0x4f8e14
lea ecx, [esi + 0xa7cc]
mov edx, dword [eax]
lea ebx, [esi + 0xc]
push ebx
lea ebp, [esi + 8]
push ebp
push ecx
push eax
mov eax, dword [edx + 0x31c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x40], ebp
call eax
mov ecx, dword [esi + 0xa7a8]
mov edi, eax
xor eax, eax
cmp dword [esi + 0xa7e0], 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x1c]
jb 0x4f8e5e
mov edx, dword [esi + 0xa7cc]
mov dword [esp + 0x20], edx
jmp 0x4f8e68
lea ecx, [esi + 0xa7cc]
mov dword [esp + 0x20], ecx
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
push ebp
push ecx
push eax
call edx
test edi, edi
mov dword [esp + 0x24], edi
fild dword [esp + 0x24]
jge 0x4f8e98
fadd qword [0x6817ccc8]
mov eax, dword [esp + 0x34]
fmul qword [0x6817ccc0]
lea ecx, [eax + eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jge 0x4f8eb7
fadd qword [0x6817ccc8]
mov ecx, dword [esp + 0x78]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x24], eax
fldcw word [esp + 0x24]
fistp qword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, ecx
mov dword [esp + 0x18], eax
fldcw word [esp + 0x14]
jbe 0x4f8eed
mov edi, eax
sub edi, ecx
jmp 0x4f8eef
xor edi, edi
cmp dword [esi + 0xa7e0], 0x10
mov edx, dword [esi + 0xa7a8]
mov eax, dword [edx + 0x1c]
jb 0x4f8f09
mov ecx, dword [esi + 0xa7cc]
jmp 0x4f8f0f
lea ecx, [esi + 0xa7cc]
mov edx, dword [eax]
push ebx
push ebp
push ecx
push eax
mov eax, dword [edx + 0x118]
call eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esi + 0xa7a8]
mov dword [esp + 0x30], eax
call fcn.00500610
mov edx, dword [esi + 0xa7a8]
mov eax, dword [edx + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x35c]
push eax
mov dword [esp + 0x74], 0
call edx
test al, al
jne 0x4f930d
cmp byte [esi + 0xa340], al
jne 0x4f930d
cmp dword [esi + 0xa7e0], 0x10
mov ecx, dword [esi + 0xa7dc]
jb 0x4f8f78
mov eax, dword [esi + 0xa7cc]
jmp 0x4f8f7e
lea eax, [esi + 0xa7cc]
push ecx
push eax
mov eax, dword [esp + 0x64]
push eax
push 0
lea ecx, [esp + 0x58]
call fcn.004f0ae0
test eax, eax
jne 0x4f90ad
cmp dword [esi + 0xa7e0], 0x10
mov ecx, dword [esi + 0xa7a8]
mov eax, dword [ecx + 0x1c]
jb 0x4f8fb2
mov ecx, dword [esi + 0xa7cc]
jmp 0x4f8fb8
lea ecx, [esi + 0xa7cc]
mov edx, dword [eax]
lea edi, [esp + 0x1e]
push edi
lea edi, [esp + 0x18]
push edi
lea edi, [esp + 0x27]
push edi
push ebx
push ebp
push ecx
push eax
mov eax, dword [edx + 0x340]
call eax
cmp byte [esp + 0x1f], 0
jne 0x4f906e
cmp byte [esp + 0x1e], 0
jne 0x4f906e
mov ecx, dword [esi + 0xa7a8]
mov ecx, dword [ecx + 0x50]
call fcn.00514500
cmp eax, 0x3e8
jae 0x4f9330
mov edx, dword [esi + 0xa7a8]
mov eax, dword [edx + 0x50]
mov ecx, dword [eax + 0x1f4]
imul ecx, dword [esp + 0x2c]
shl ecx, 0xa
test ecx, ecx
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
jge 0x4f902d
fadd qword [0x6817ccc8]
mov edx, dword [esp + 0x18]
fmul qword [0x6817ccb8]
test edx, edx
fild dword [esp + 0x18]
jge 0x4f9045
fadd qword [0x6817ccc8]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
faddp st(1)
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x14]
jmp 0x4f932c
cmp dword [esi + 0xa7e0], 0x10
jb 0x4f907f
mov eax, dword [esi + 0xa7cc]
jmp 0x4f9085
lea eax, [esi + 0xa7cc]
mov ecx, dword [esi + 0xa7a8]
push ebx
push ebp
push eax
call fcn.004fe900
add eax, 5
imul eax, dword [esp + 0x2c]
shl eax, 0xa
cmp dword [esp + 0x18], eax
ja 0x4f9330
jmp 0x4f932c
mov ecx, esi
call fcn.004f8040
test al, al
je 0x4f9258
mov ecx, esi
call fcn.004f8cb0
test al, al
je 0x4f927f
mov ecx, dword [esi + 0xa7a8]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
cmp eax, 0x10
mov ebp, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x4c]
jb 0x4f90f1
mov dword [esp + 0x24], ecx
jmp 0x4f90f9
lea edx, [esp + 0x4c]
mov dword [esp + 0x24], edx
cmp eax, 0x10
mov eax, ecx
jae 0x4f9104
lea eax, [esp + 0x4c]
mov ecx, dword [ebp]
lea edx, [esp + 0x14]
push edx
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [ecx + 0x20c]
push ebp
call eax
mov ecx, dword [ebp]
mov ecx, dword [ecx + 0x50]
lea edx, [esp + 0x14]
push edx
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x2c]
push edx
push ebp
mov dword [esp + 0x34], eax
call ecx
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jb 0x4f927f
cmp dword [esp + 0x5c], 0
jne 0x4f9164
mov edx, dword [esi + 0xa7a8]
push 0xffffffffffffffff
push 0
add edx, 0x94
push edx
lea ecx, [esp + 0x54]
call fcn.004eefa0
cmp dword [esp + 0x60], 0x10
mov eax, dword [esi + 0xa7a8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0x4c]
jae 0x4f917c
lea ecx, [esp + 0x4c]
mov edx, dword [eax]
lea ebp, [esp + 0x14]
push ebp
lea ebp, [esp + 0x24]
push ebp
push ecx
push eax
mov eax, dword [edx + 0x348]
call eax
cmp dword [esi + 0xa7e0], 0x10
mov ecx, dword [esi + 0xa7a8]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x1c]
jb 0x4f91b0
mov ecx, dword [esi + 0xa7cc]
jmp 0x4f91b6
lea ecx, [esi + 0xa7cc]
mov edx, dword [eax]
push ebx
mov ebx, dword [esp + 0x34]
push ebx
push ecx
push eax
mov eax, dword [edx + 0x14c]
call eax
xor edx, edx
div dword [esp + 0x2c]
mov ecx, dword [esi + 0xa7a8]
mov ebx, eax
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x338]
shr ebx, 0xa
call eax
mov ecx, dword [esi + 0xa7a8]
mov ebp, eax
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x2c4]
call eax
test al, al
jne 0x4f9207
mov ecx, ebp
shr ecx, 1
add ebp, ecx
mov edx, dword [esp + 0x24]
lea eax, [ebx + edx]
cmp eax, ebp
jae 0x4f9281
cmp dword [esi + 0xa7e0], 0x10
mov ecx, dword [esi + 0xa7a8]
mov eax, dword [ecx + 0x1c]
jb 0x4f922c
mov esi, dword [esi + 0xa7cc]
jmp 0x4f9232
add esi, 0xa7cc
mov ecx, dword [esp + 0x38]
mov edx, dword [eax]
mov edx, dword [edx + 0x118]
push ecx
mov ecx, dword [esp + 0x34]
push ecx
push esi
push eax
call edx
sub ebp, ebx
sub ebp, dword [esp + 0x24]
mov edi, eax
imul edi, ebp
shl edi, 0xa
jmp 0x4f9281
mov ecx, dword [esi + 0xa7a8]
call fcn.00503950
test al, al
je 0x4f9281
mov eax, dword [esi + 0xa7a8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c4]
push eax
call edx
test al, al
je 0x4f9281
xor edi, edi
call fcn.004f1f30
test eax, eax
je 0x4f92d6
call fcn.004f1f30
cmp dword [eax + 0xc], 0
je 0x4f92d6
call fcn.004f1f30
mov edx, dword [eax + 0xc]
call edx
test al, al
je 0x4f92d6
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
push edi
push ecx
shr eax, 0xa
push eax
mov eax, edi
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push eax
shr ecx, 0xa
push ecx
push 0x6817cc58
push 0x4e24
call fcn.004f1fb0
add esp, 0x1c
cmp dword [esp + 0x60], 0x10
jb 0x4f92ea
mov eax, dword [esp + 0x4c]
push eax
call fcn.0051ed44
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.0051f4e2
add esp, 0x60
ret 4
mov eax, dword [esi + 0xa7a8]
mov ecx, dword [eax + 0x50]
mov eax, dword [ecx + 0x1db]
imul eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
shl eax, 0xa
cmp edi, eax
ja 0x4f9334
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
cmp edi, eax
jbe 0x4f927f
sub edi, eax
jmp 0x4f9281