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

Disassembly:
sub esp, 0x2c
cmp dword [0x7cf900], 0
push esi
mov esi, eax
push edi
mov edi, dword [esi + 0x1c]
je 0x4f968d
cmp dword [0x7cf8f0], 0
jne 0x4f968d
cmp dword [0x81688c], 0
fld dword [esp + 0x40]
fld qword [0x6af0a0]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x40]
fsubr dword [esp + 0x44]
fstp dword [esp + 0x44]
jne 0x4f85dc
call fcn.004e8580
mov eax, dword [esp + 0x4c]
mov edx, dword [edi + 0x30]
push ebx
lea ecx, [eax + eax]
or ecx, dword [esp + 0x4c]
push ebp
push ecx
push edx
add edi, 8
push edi
call fcn.004f7cd0
mov ecx, dword [esi + 0x40]
mov eax, dword [0x7cfae0]
mov edi, dword [esp + 0x40]
mov ebp, dword [0x8e80b0]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x2c]
mov edx, ecx
sub edx, dword [0x8e7f94]
mov ebx, eax
sub ebx, dword [0x8e7f98]
lea edi, [edx + edi - 1]
mov edx, dword [esp + 0x44]
lea ebx, [ebx + edx - 1]
and edi, ebx
mov ebx, dword [0x8e7f90]
sub ebx, edx
mov edx, dword [esp + 0x40]
sub ebx, 1
and edi, ebx
mov ebx, dword [0x8e7f8c]
sub ebx, edx
sub ebx, 1
and edi, ebx
test edi, edi
jns 0x4f8d87
mov eax, dword [0x7cfac8]
sub eax, 1
je 0x4f8a61
sub eax, 1
jne 0x4f9683
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4f9683
mov ecx, dword [0x7cfac4]
lea edi, [esi + 0x60]
mov dword [esp + 0x28], eax
jmp 0x4f8690
mov eax, dword [edi + 0x40]
mov edx, dword [0x80f6f8]
cmp edx, dword [eax]
je 0x4f86aa
mov esi, dword [eax]
call fcn.004f1af0
mov ecx, dword [0x7cfac4]
cmp dword [0x8168b0], 0
jne 0x4f86bc
cmp dword [0x8168b4], 0
je 0x4f86d3
push 0
mov eax, 1
xor ecx, ecx
call fcn.004f5fe0
mov ecx, dword [0x7cfac4]
add esp, 4
mov esi, dword [0x7cfac0]
cmp esi, 1
mov eax, dword [0x7cfacc]
je 0x4f8703
cmp eax, 4
jne 0x4f8703
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
lea ebx, [ecx + 6]
cmp ebx, dword [edx*4 + 0x6a2948]
jl 0x4f882e
test ecx, ecx
je 0x4f8812
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
mov edx, dword [edx*4 + 0x6a2960]
cmp dword [0x8168e0], edx
je 0x4f875e
mov eax, dword [0x7cf900]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 0x164]
push eax
call edx
mov esi, dword [0x7cfac0]
mov eax, dword [0x7cfac8]
lea ecx, [eax + esi*2]
mov eax, dword [0x7cfacc]
add ecx, esi
mov edx, dword [ecx*4 + 0x6a2960]
mov ecx, dword [0x7cfac4]
mov dword [0x8168e0], edx
test esi, esi
je 0x4f877d
mov edx, 0x6cf538
call fcn.004ea160
mov eax, dword [0x7cfacc]
mov ecx, dword [0x7cfac4]
mov esi, dword [0x7cfac0]
cmp eax, 4
jne 0x4f8792
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4f87c9
cmp eax, 2
jne 0x4f87a0
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x4f87c9
cmp eax, 6
jne 0x4f87aa
lea eax, [ecx - 2]
jmp 0x4f87c9
cmp eax, 5
jne 0x4f87b4
lea eax, [ecx - 2]
jmp 0x4f87c9
cmp eax, 3
jne 0x4f87be
lea eax, [ecx - 1]
jmp 0x4f87c9
sub eax, 1
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [0x7cfac8]
mov edx, dword [0x7cf900]
lea ecx, [ecx + esi*2]
add ecx, esi
mov esi, dword [edx]
add ecx, ecx
mov ebx, dword [ecx + ecx + 0x6a2978]
add ecx, ecx
mov ecx, dword [ecx + 0x7cfaa8]
push ebx
push ecx
mov ecx, dword [esi + 0x14c]
push eax
mov eax, dword [0x7cfacc]
push eax
push edx
call ecx
cmp dword [0x7cfac0], 0
je 0x4f8812
mov edx, 0x8e8170
call fcn.004ea160
mov edx, dword [0x7cfac8]
mov dword [0x7cfac4], 0
mov eax, dword [edx*4 + 0x7cfaa8]
mov dword [0x7cfaf4], eax
mov eax, dword [0x7cfaf4]
mov ecx, dword [esp + 0x20]
mov dword [0x7cfac0], 0
mov dword [0x7cfacc], 4
mov dword [eax + 0x88], ecx
mov dword [eax + 0x10], ecx
fld dword [edi - 4]
fld dword [esp + 0x48]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax]
fld dword [esp + 0x24]
fst dword [eax + 0x50]
fstp dword [eax + 0xa0]
fadd dword [edi + 0xc]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x28]
fld dword [esp + 0x2c]
fst dword [eax + 0x78]
fstp dword [eax + 0xc8]
fld dword [edi]
fld dword [esp + 0x4c]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 4]
fld dword [esp + 0x2c]
fst dword [eax + 0x2c]
fstp dword [eax + 0xcc]
fadd dword [edi + 0x20]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x54]
fld dword [esp + 0x2c]
fst dword [eax + 0x7c]
fstp dword [eax + 0xa4]
fild dword [0x8e80d0]
fadd dword [edi - 4]
fmul dword [0x7cfad8]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x18]
fld dword [esp + 0x2c]
fst dword [eax + 0x68]
fstp dword [eax + 0xb8]
fild dword [0x8e80d0]
fadd dword [edi + 0xc]
fmul dword [0x7cfad8]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x40]
fld dword [esp + 0x2c]
fst dword [eax + 0x90]
fstp dword [eax + 0xe0]
fild dword [0x8e80d4]
fadd dword [edi]
fmul dword [0x7cfadc]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x1c]
fld dword [esp + 0x2c]
fst dword [eax + 0x44]
fstp dword [eax + 0xe4]
fild dword [0x8e80d4]
fadd dword [edi + 0x20]
fmul dword [0x7cfadc]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
add edi, 0x60
fstp dword [eax + 0x6c]
fld dword [esp + 0x2c]
fst dword [eax + 0x94]
fstp dword [eax + 0xbc]
fld dword [edi - 0x5c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax + 0x20]
fld dword [esp + 0x24]
fst dword [eax + 0x70]
fstp dword [eax + 0xc0]
fld dword [edi - 0x4c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax + 0x48]
fld dword [esp + 0x24]
fst dword [eax + 0x98]
fstp dword [eax + 0xe8]
fld dword [edi - 0x58]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax + 0x24]
fld dword [esp + 0x24]
fst dword [eax + 0x4c]
fstp dword [eax + 0xec]
fld dword [edi - 0x38]
mov dword [eax + 0xd0], ebp
fstp dword [esp + 0x2c]
mov dword [eax + 0xa8], ebp
fld dword [esp + 0x2c]
mov dword [eax + 0x80], ebp
fst dword [esp + 0x24]
mov dword [eax + 0x58], ebp
fstp dword [eax + 0x74]
mov dword [eax + 0x30], ebp
fld dword [esp + 0x24]
mov dword [eax + 8], ebp
fst dword [eax + 0x9c]
fstp dword [eax + 0xc4]
mov ecx, dword [0x7cfac4]
add dword [0x7cfaf4], 0xf0
add ecx, 6
sub dword [esp + 0x28], 1
mov dword [0x7cfac4], ecx
jne 0x4f8690
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x2c
ret
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4f9683
mov ecx, dword [0x7cfac4]
lea edi, [esi + 0x60]
mov dword [esp + 0x28], eax
lea ebx, [ebx]
mov eax, dword [edi + 0x40]
mov edx, dword [0x80f6f8]
cmp edx, dword [eax]
je 0x4f8a9a
mov esi, dword [eax]
call fcn.004f1af0
mov ecx, dword [0x7cfac4]
cmp dword [0x8168b0], 0
jne 0x4f8aac
cmp dword [0x8168b4], 0
je 0x4f8ac3
push 0
mov eax, 1
xor ecx, ecx
call fcn.004f5fe0
mov ecx, dword [0x7cfac4]
add esp, 4
mov esi, dword [0x7cfac0]
cmp esi, 1
mov eax, dword [0x7cfacc]
je 0x4f8af3
cmp eax, 4
jne 0x4f8af3
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
lea ebx, [ecx + 6]
cmp ebx, dword [edx*4 + 0x6a2948]
jl 0x4f8c1e
test ecx, ecx
je 0x4f8c02
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
mov edx, dword [edx*4 + 0x6a2960]
cmp dword [0x8168e0], edx
je 0x4f8b4e
mov eax, dword [0x7cf900]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 0x164]
push eax
call edx
mov esi, dword [0x7cfac0]
mov eax, dword [0x7cfac8]
lea ecx, [eax + esi*2]
mov eax, dword [0x7cfacc]
add ecx, esi
mov edx, dword [ecx*4 + 0x6a2960]
mov ecx, dword [0x7cfac4]
mov dword [0x8168e0], edx
test esi, esi
je 0x4f8b6d
mov edx, 0x6cf538
call fcn.004ea160
mov eax, dword [0x7cfacc]
mov ecx, dword [0x7cfac4]
mov esi, dword [0x7cfac0]
cmp eax, 4
jne 0x4f8b82
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4f8bb9
cmp eax, 2
jne 0x4f8b90
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x4f8bb9
cmp eax, 6
jne 0x4f8b9a
lea eax, [ecx - 2]
jmp 0x4f8bb9
cmp eax, 5
jne 0x4f8ba4
lea eax, [ecx - 2]
jmp 0x4f8bb9
cmp eax, 3
jne 0x4f8bae
lea eax, [ecx - 1]
jmp 0x4f8bb9
sub eax, 1
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [0x7cfac8]
mov edx, dword [0x7cf900]
lea ecx, [ecx + esi*2]
add ecx, esi
mov esi, dword [edx]
add ecx, ecx
mov ebx, dword [ecx + ecx + 0x6a2978]
add ecx, ecx
mov ecx, dword [ecx + 0x7cfaa8]
push ebx
push ecx
mov ecx, dword [esi + 0x14c]
push eax
mov eax, dword [0x7cfacc]
push eax
push edx
call ecx
cmp dword [0x7cfac0], 0
je 0x4f8c02
mov edx, 0x8e8170
call fcn.004ea160
mov edx, dword [0x7cfac8]
mov dword [0x7cfac4], 0
mov eax, dword [edx*4 + 0x7cfaa8]
mov dword [0x7cfaf4], eax
mov eax, dword [0x7cfaf4]
mov dword [0x7cfac0], 0
mov dword [0x7cfacc], 4
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x64], ecx
mov dword [eax + 0x10], ecx
fld dword [edi - 4]
fld dword [esp + 0x48]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax]
fld dword [esp + 0x24]
fst dword [eax + 0x38]
fstp dword [eax + 0x70]
fadd dword [edi + 0xc]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x1c]
fld dword [esp + 0x2c]
fst dword [eax + 0x54]
fstp dword [eax + 0x8c]
fld dword [esp + 0x4c]
fld st(0)
fadd dword [edi]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 4]
fld dword [esp + 0x2c]
fst dword [eax + 0x20]
fstp dword [eax + 0x90]
fadd dword [edi + 0x20]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x2c]
fstp dword [eax + 0x3c]
fld dword [esp + 0x2c]
fst dword [eax + 0x58]
fstp dword [eax + 0x74]
fld dword [edi + 4]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax + 0x14]
fld dword [esp + 0x24]
fst dword [eax + 0x4c]
fstp dword [eax + 0x84]
fld dword [edi + 0x14]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax + 0x30]
fld dword [esp + 0x24]
fst dword [eax + 0x68]
fstp dword [eax + 0xa0]
fld dword [edi + 8]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fst dword [esp + 0x24]
fstp dword [eax + 0x18]
fld dword [esp + 0x24]
fst dword [eax + 0x34]
fstp dword [eax + 0xa4]
fld dword [edi + 0x28]
mov dword [eax + 0x94], ebp
fstp dword [esp + 0x2c]
mov dword [eax + 0x78], ebp
fld dword [esp + 0x2c]
mov dword [eax + 0x5c], ebp
fst dword [esp + 0x24]
mov dword [eax + 0x40], ebp
fstp dword [eax + 0x50]
mov dword [eax + 0x24], ebp
fld dword [esp + 0x24]
fst dword [eax + 0x6c]
fstp dword [eax + 0x88]
mov dword [eax + 8], ebp
mov ecx, dword [0x7cfac4]
add dword [0x7cfaf4], 0xa8
add ecx, 6
add edi, 0x60
sub dword [esp + 0x28], 1
mov dword [0x7cfac4], ecx
jne 0x4f8a80
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x2c
ret
sub eax, dword [0x8e7f90]
sub ecx, dword [0x8e7f8c]
lea edi, [ecx + edx - 1]
mov ecx, dword [esp + 0x44]
lea eax, [eax + ecx - 1]
and edi, eax
mov eax, dword [0x8e7f98]
sub eax, ecx
sub eax, 1
and edi, eax
mov eax, dword [0x8e7f94]
sub eax, edx
sub eax, 1
and edi, eax
test edi, edi
js 0x4f9683
fld dword [0x8e7f9c]
mov eax, dword [0x7cfac8]
sub eax, 1
fstp dword [esp + 0x10]
fld dword [0x8e7fa0]
fstp dword [esp + 0x18]
fld dword [0x8e7fa4]
fstp dword [esp + 0x14]
fld dword [0x8e7fa8]
fstp dword [esp + 0x24]
je 0x4f9298
sub eax, 1
jne 0x4f9683
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4f9683
fld dword [esp + 0x10]
mov ecx, dword [0x7cfac4]
lea ebx, [esi + 0x60]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x40]
mov edx, dword [0x80f6f8]
cmp edx, dword [eax]
je 0x4f8e3d
mov esi, dword [eax]
fstp st(0)
call fcn.004f1af0
fld dword [esp + 0x10]
mov ecx, dword [0x7cfac4]
cmp dword [0x8168b0], 0
jne 0x4f8e4f
cmp dword [0x8168b4], 0
je 0x4f8e6c
push 0
fstp st(0)
mov eax, 1
xor ecx, ecx
call fcn.004f5fe0
fld dword [esp + 0x14]
mov ecx, dword [0x7cfac4]
add esp, 4
mov esi, dword [0x7cfac0]
cmp esi, 1
mov eax, dword [0x7cfacc]
je 0x4f8e9c
cmp eax, 4
jne 0x4f8e9c
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
lea edi, [ecx + 6]
cmp edi, dword [edx*4 + 0x6a2948]
jl 0x4f8fcd
test ecx, ecx
je 0x4f8fb1
mov edx, dword [0x7cfac8]
fstp st(0)
lea edx, [edx + esi*2]
add edx, esi
mov edx, dword [edx*4 + 0x6a2960]
cmp dword [0x8168e0], edx
je 0x4f8ef9
mov eax, dword [0x7cf900]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 0x164]
push eax
call edx
mov esi, dword [0x7cfac0]
mov eax, dword [0x7cfac8]
lea ecx, [eax + esi*2]
mov eax, dword [0x7cfacc]
add ecx, esi
mov edx, dword [ecx*4 + 0x6a2960]
mov ecx, dword [0x7cfac4]
mov dword [0x8168e0], edx
test esi, esi
je 0x4f8f18
mov edx, 0x6cf538
call fcn.004ea160
mov eax, dword [0x7cfacc]
mov ecx, dword [0x7cfac4]
mov esi, dword [0x7cfac0]
cmp eax, 4
jne 0x4f8f2d
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4f8f64
cmp eax, 2
jne 0x4f8f3b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x4f8f64
cmp eax, 6
jne 0x4f8f45
lea eax, [ecx - 2]
jmp 0x4f8f64
cmp eax, 5
jne 0x4f8f4f
lea eax, [ecx - 2]
jmp 0x4f8f64
cmp eax, 3
jne 0x4f8f59
lea eax, [ecx - 1]
jmp 0x4f8f64
sub eax, 1
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [0x7cfac8]
mov edx, dword [0x7cf900]
lea ecx, [ecx + esi*2]
add ecx, esi
mov esi, dword [edx]
add ecx, ecx
mov edi, dword [ecx + ecx + 0x6a2978]
add ecx, ecx
mov ecx, dword [ecx + 0x7cfaa8]
push edi
push ecx
mov ecx, dword [esi + 0x14c]
push eax
mov eax, dword [0x7cfacc]
push eax
push edx
call ecx
cmp dword [0x7cfac0], 0
je 0x4f8fad
mov edx, 0x8e8170
call fcn.004ea160
fld dword [esp + 0x10]
mov edx, dword [0x7cfac8]
mov dword [0x7cfac4], 0
mov eax, dword [edx*4 + 0x7cfaa8]
mov dword [0x7cfaf4], eax
mov dword [0x7cfac0], 0
mov edi, 4
mov dword [0x7cfacc], edi
mov eax, dword [ebx + 0x40]
fild dword [eax + 0x24]
mov edx, dword [0x7cfaf4]
fld1
lea esi, [edx + 0x50]
fld st(0)
lea ecx, [edx + 0x18]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fidiv dword [eax + 0x28]
mov eax, dword [esp + 0x20]
fstp dword [esp + 0x28]
fld dword [0x7cfad8]
fstp dword [esp + 0x34]
fld dword [0x7cfadc]
fstp dword [esp + 0x38]
mov dword [edx + 0x88], eax
mov dword [edx + 0x10], eax
fld dword [ebx - 4]
fld dword [esp + 0x48]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx]
fstp dword [esi]
fadd dword [ebx + 0xc]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x28]
fstp dword [edx + 0x78]
fld dword [ebx]
fld dword [esp + 0x4c]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 4]
fstp dword [edx + 0x2c]
fadd dword [ebx + 0x20]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x54]
fstp dword [edx + 0x7c]
fild dword [0x8e80d0]
fadd dword [ebx - 4]
fmul dword [0x7cfad8]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [ecx]
fstp dword [edx + 0x68]
fild dword [0x8e80d0]
fadd dword [ebx + 0xc]
fmul dword [0x7cfad8]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x40]
fstp dword [edx + 0x90]
fild dword [0x8e80d4]
fadd dword [ebx]
fmul dword [0x7cfadc]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x1c]
fstp dword [edx + 0x44]
fild dword [0x8e80d4]
fadd dword [ebx + 0x20]
fmul dword [0x7cfadc]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x6c]
fstp dword [edx + 0x94]
fld dword [ebx + 4]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x20]
fstp dword [edx + 0x70]
fld dword [ebx + 0x14]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x48]
fstp dword [edx + 0x98]
fld dword [ebx + 8]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x24]
fstp dword [edx + 0x4c]
fld dword [ebx + 0x28]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edx + 0x74]
fstp dword [edx + 0x9c]
fld dword [esp + 0x1c]
fld dword [esp + 0x28]
fld dword [esp + 0x34]
fld dword [esp + 0x38]
jmp 0x4f9153
fxch st(4)
fld dword [ecx - 0x18]
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x4f917b
fld st(4)
fsub dword [ecx - 0x18]
fld st(4)
fmul st(1)
fadd dword [ecx + 8]
fstp dword [ecx + 8]
fmul st(2)
fadd dword [ecx]
fstp dword [ecx]
fxch st(4)
fst dword [ecx - 0x18]
jmp 0x4f91b1
fld dword [ecx - 0x18]
fld dword [esp + 0x14]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4f91ad
fsubr dword [ecx - 0x18]
fld dword [ecx + 8]
fld st(5)
fmul st(2)
fsubp st(1)
fstp dword [ecx + 8]
fld st(2)
fmulp st(1)
fsubr dword [ecx]
fstp dword [ecx]
fld dword [esp + 0x14]
fstp dword [ecx - 0x18]
jmp 0x4f91af
fstp st(0)
fxch st(4)
fld dword [ecx - 0x14]
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4f91e1
fsub dword [ecx - 0x14]
fld st(3)
fmul st(1)
fadd dword [ecx + 0xc]
fstp dword [ecx + 0xc]
fmul st(5)
fadd dword [ecx + 4]
fstp dword [ecx + 4]
fld dword [esp + 0x18]
fstp dword [ecx - 0x14]
jmp 0x4f9219
fstp st(0)
fld dword [ecx - 0x14]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4f9217
fsubr dword [ecx - 0x14]
fld dword [ecx + 0xc]
fld st(4)
fmul st(2)
fsubp st(1)
fstp dword [ecx + 0xc]
fld st(5)
fmulp st(1)
fsubr dword [ecx + 4]
fstp dword [ecx + 4]
fld dword [esp + 0x24]
fstp dword [ecx - 0x14]
jmp 0x4f9219
fstp st(0)
add ecx, 0x28
sub edi, 1
jne 0x4f9151
lea edi, [edx + 0xa0]
fstp st(3)
mov ecx, 0xa
fstp st(1)
rep movsd dword es:[edi], dword [esi]
fstp st(0)
fstp st(1)
lea edi, [edx + 0xc8]
mov ecx, 0xa
lea esi, [edx + 0x28]
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0xd0], ebp
mov dword [edx + 0xa8], ebp
mov dword [edx + 0x80], ebp
mov dword [edx + 0x58], ebp
mov dword [edx + 0x30], ebp
mov dword [edx + 8], ebp
mov ecx, dword [0x7cfac4]
add dword [0x7cfaf4], 0xf0
add ecx, 6
add ebx, 0x60
sub dword [esp + 0x2c], 1
mov dword [0x7cfac4], ecx
jne 0x4f8e1d
pop ebp
fstp st(0)
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x2c
ret
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4f9683
fld dword [esp + 0x10]
mov ecx, dword [0x7cfac4]
fld dword [esp + 0x18]
lea ebx, [esi + 0x60]
fld dword [esp + 0x14]
mov dword [esp + 0x2c], eax
jmp 0x4f92c5
fxch st(1)
fxch st(2)
fxch st(1)
mov eax, dword [ebx + 0x40]
mov edx, dword [0x80f6f8]
cmp edx, dword [eax]
je 0x4f92f3
mov esi, dword [eax]
fstp st(2)
fstp st(0)
fstp st(0)
call fcn.004f1af0
fld dword [esp + 0x14]
mov ecx, dword [0x7cfac4]
fld dword [esp + 0x18]
fld dword [esp + 0x10]
fxch st(2)
cmp dword [0x8168b0], 0
jne 0x4f9305
cmp dword [0x8168b4], 0
je 0x4f9330
fstp st(2)
push 0
fstp st(0)
mov eax, 1
xor ecx, ecx
fstp st(0)
call fcn.004f5fe0
fld dword [esp + 0x18]
fld dword [esp + 0x1c]
mov ecx, dword [0x7cfac4]
fld dword [esp + 0x14]
add esp, 4
fxch st(2)
mov esi, dword [0x7cfac0]
cmp esi, 1
mov eax, dword [0x7cfacc]
je 0x4f9360
cmp eax, 4
jne 0x4f9360
mov edx, dword [0x7cfac8]
lea edx, [edx + esi*2]
add edx, esi
lea edi, [ecx + 6]
cmp edi, dword [edx*4 + 0x6a2948]
jl 0x4f949f
test ecx, ecx
je 0x4f9483
mov edx, dword [0x7cfac8]
fstp st(2)
lea edx, [edx + esi*2]
fstp st(0)
add edx, esi
fstp st(0)
mov edx, dword [edx*4 + 0x6a2960]
cmp dword [0x8168e0], edx
je 0x4f93c1
mov eax, dword [0x7cf900]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 0x164]
push eax
call edx
mov esi, dword [0x7cfac0]
mov eax, dword [0x7cfac8]
lea ecx, [eax + esi*2]
mov eax, dword [0x7cfacc]
add ecx, esi
mov edx, dword [ecx*4 + 0x6a2960]
mov ecx, dword [0x7cfac4]
mov dword [0x8168e0], edx
test esi, esi
je 0x4f93e0
mov edx, 0x6cf538
call fcn.004ea160
mov eax, dword [0x7cfacc]
mov ecx, dword [0x7cfac4]
mov esi, dword [0x7cfac0]
cmp eax, 4
jne 0x4f93f5
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4f942c
cmp eax, 2
jne 0x4f9403
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x4f942c
cmp eax, 6
jne 0x4f940d
lea eax, [ecx - 2]
jmp 0x4f942c
cmp eax, 5
jne 0x4f9417
lea eax, [ecx - 2]
jmp 0x4f942c
cmp eax, 3
jne 0x4f9421
lea eax, [ecx - 1]
jmp 0x4f942c
sub eax, 1
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [0x7cfac8]
mov edx, dword [0x7cf900]
lea ecx, [ecx + esi*2]
add ecx, esi
mov esi, dword [edx]
add ecx, ecx
mov edi, dword [ecx + ecx + 0x6a2978]
add ecx, ecx
mov ecx, dword [ecx + 0x7cfaa8]
push edi
push ecx
mov ecx, dword [esi + 0x14c]
push eax
mov eax, dword [0x7cfacc]
push eax
push edx
call ecx
cmp dword [0x7cfac0], 0
je 0x4f9475
mov edx, 0x8e8170
call fcn.004ea160
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fld dword [esp + 0x10]
fxch st(2)
mov edx, dword [0x7cfac8]
mov dword [0x7cfac4], 0
mov eax, dword [edx*4 + 0x7cfaa8]
mov dword [0x7cfaf4], eax
mov edx, dword [0x7cfaf4]
mov eax, dword [esp + 0x20]
mov dword [0x7cfac0], 0
mov edi, 4
mov dword [0x7cfacc], edi
mov dword [edx + 0x64], eax
mov dword [edx + 0x10], eax
fld dword [ebx - 4]
fld dword [esp + 0x48]
lea esi, [edx + 0x38]
fld st(0)
lea ecx, [edx + 0x18]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx]
fstp dword [esi]
fadd dword [ebx + 0xc]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx + 0x1c]
fstp dword [edx + 0x54]
fld dword [ebx]
fld dword [esp + 0x4c]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx + 4]
fstp dword [edx + 0x20]
fadd dword [ebx + 0x20]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx + 0x3c]
fstp dword [edx + 0x58]
fld dword [ebx + 4]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx + 0x14]
fstp dword [edx + 0x4c]
fld dword [ebx + 0x14]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx + 0x30]
fstp dword [edx + 0x68]
fld dword [ebx + 8]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [ecx]
fstp dword [edx + 0x34]
fld dword [ebx + 0x28]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fst dword [edx + 0x50]
fstp dword [edx + 0x6c]
mov eax, dword [ebx + 0x40]
fild dword [eax + 0x24]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fidiv dword [eax + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + 0x1c]
fld dword [esp + 0x28]
jmp 0x4f9589
fxch st(3)
fxch st(4)
fld dword [ecx - 0x18]
fcomp st(5)
fnstsw ax
test ah, 5
jp 0x4f95a9
fld st(4)
fsub dword [ecx - 0x18]
fmul st(2)
fadd dword [ecx - 4]
fstp dword [ecx - 4]
fxch st(4)
fst dword [ecx - 0x18]
jmp 0x4f95cd
fld dword [ecx - 0x18]
fcomp st(3)
fnstsw ax
test ah, 0x41
jne 0x4f95cb
fld dword [ecx - 4]
fld dword [ecx - 0x18]
fsub st(4)
fmul st(3)
fsubp st(1)
fstp dword [ecx - 4]
fxch st(2)
fst dword [ecx - 0x18]
fxch st(2)
fxch st(4)
fld dword [ecx - 0x14]
fcomp st(4)
fnstsw ax
test ah, 5
jp 0x4f95eb
fld st(3)
fsub dword [ecx - 0x14]
fmul st(5)
fadd dword [ecx]
fstp dword [ecx]
fxch st(3)
fst dword [ecx - 0x14]
jmp 0x4f9617
fld dword [ecx - 0x14]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x4f9613
fld dword [ecx - 0x14]
fsubrp st(1)
fld st(5)
fmulp st(1)
fsubr dword [ecx]
fstp dword [ecx]
fld dword [esp + 0x24]
fstp dword [ecx - 0x14]
jmp 0x4f9615
fstp st(0)
fxch st(3)
add ecx, 0x1c
sub edi, 1
jne 0x4f9585
lea edi, [edx + 0x70]
fstp st(1)
mov ecx, 7
fstp st(3)
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 0x8c]
mov ecx, 7
lea esi, [edx + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x94], ebp
mov dword [edx + 0x78], ebp
mov dword [edx + 0x5c], ebp
mov dword [edx + 0x40], ebp
mov dword [edx + 0x24], ebp
mov dword [edx + 8], ebp
mov ecx, dword [0x7cfac4]
add dword [0x7cfaf4], 0xa8
add ecx, 6
add ebx, 0x60
sub dword [esp + 0x2c], 1
mov dword [0x7cfac4], ecx
jne 0x4f92bf
fstp st(1)
fstp st(1)
fstp st(0)
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x2c
ret
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x2c
ret