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

Disassembly:
test dword [0x9d4cb8], 0xffffff80
jne 0x5889f8
test dword [0x9d4cb8], 0xffffffff
jne 0x58af50
call fcn.008a6df8
jmp fcn.005889d0
push ebx
mov ebx, esp
and esp, 0xfffffff8
push edi
push esi
push ebp
sub esp, 0xcc
mov dword [esp + 0x78], ecx
mov eax, dword [ebx + 8]
mov ebp, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov esi, dword [ecx + eax*4 + 0x820]
mov eax, dword [ecx + edx*4 + 0x16fcc]
mov dword [esp + 0x6c], eax
mov eax, dword [eax + ebp*4]
mov ebp, dword [eax + 0x2b0]
mov dword [esp + 0x68], eax
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x58aa96
call fcn.004e0ca8
movzx eax, al
test eax, eax
je 0x58aa96
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0x4c]
lea ecx, [edx + 0x1b8]
mov dword [esi + 0x28], eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x2c], ecx
movsx eax, word [ebp + 0x14]
test eax, eax
mov word [esi + 0x26a4], ax
jl 0x58af04
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + edx*4 + 0x8030]
mov word [esi + 0x26a6], cx
mov edx, dword [esp + 0x6c]
lea eax, [edx + 0x8928]
lea ecx, [edx + 0x892c]
mov dword [esi + 0x26b8], eax
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x893c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x894c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x895c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x896c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x897c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x898c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x899c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a4c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a7c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8aac]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a5c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a8c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8abc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a6c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a9c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8acc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x89ac]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x89bc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x89cc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x89dc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x89ec]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x89fc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a0c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a1c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a2c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8a3c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8adc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8aec]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8afc]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b0c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b1c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b2c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b3c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b4c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b5c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b6c]
call fcn.0055af68
mov eax, dword [esp + 0x6c]
lea ecx, [eax + 0x8b7c]
call fcn.0055af68
xor edx, edx
xor eax, eax
mov edi, dword [esp + 0x6c]
lea ecx, [edi + 0x8e0c]
lea edi, [edi + 0x8f0c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], esi
mov ebp, eax
mov esi, edx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
mov dword [esi + eax + 0x8b8c], 0
mov dword [esi + eax + 0x8b90], 0
mov dword [esi + eax + 0x8b94], 0
mov dword [esi + eax + 0x8b98], 0
mov dword [esi + eax + 0x8b9c], 0
mov byte [esi + eax + 0x8ba0], 0
mov dword [ebp + eax + 0x8d0c], 0
mov dword [ebp + eax + 0x8d10], 0
mov dword [ebp + eax + 0x8d14], 0
call fcn.0055af68
mov ecx, edi
call fcn.0055af68
add esi, 0x18
add ebp, 0x10
add edi, 0x10
add dword [esp + 0x64], 0x10
cmp ebp, 0x100
jl 0x588cfa
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x26b8]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x588da8
movsx edx, word [esi + 0x26ac]
cmp eax, edx
jne 0x588db4
mov dword [ecx + 0x6f4], esi
inc dword [ecx + 0x6f0]
lea edx, [esi + 0x14]
lea eax, [esi + 0x18]
mov edi, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x10]
push edx
push edi
push eax
mov ecx, dword [esp + 0x88]
call fcn.0058d494
mov edi, 1
xor eax, eax
mov edx, dword [esp + 0x6c]
cmp byte [edx + 0x9045], 0xff
cmove eax, edi
mov byte [esi + 0x1c], al
push 0
push esi
mov ecx, dword [esp + 0x80]
call fcn.005b8604
mov al, byte [ebp + 0x30]
test al, al
jne 0x588e06
fld dword [0xa20d20]
jmp 0x588e3a
movzx ecx, byte [esi + 0x26a0]
mov eax, dword [esp + 0x68]
movzx edx, byte [eax + 0x2a0]
fld qword [0xa20ca0]
sub ecx, edx
fstp qword [esp]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fmul qword [0xa20c98]
fstp qword [esp + 8]
call fcn.0088b9f8
fstp dword [esi + 0x48]
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x78], eax
mov edx, dword [ebp + 0x1c]
mov dword [esi + 0x7c], edx
mov ecx, dword [ebp + 0x20]
mov dword [esi + 0x80], ecx
mov edi, dword [ebp + 0x554]
mov dword [esi + 0x84], edi
mov eax, dword [ebp + 0x558]
xor edi, edi
mov dword [esi + 0x88], eax
mov eax, dword [ebp + 0x55c]
mov dword [esi + 0x8c], eax
mov eax, dword [ebp + 0x560]
mov dword [esi + 0x90], eax
mov eax, dword [ebp + 0x564]
mov dword [esi + 0x94], eax
fld dword [ebp + 0x508]
fstp qword [esp + 0x48]
fld dword [ebp + 0x524]
fstp qword [esp + 0x50]
fld dword [ebp + 0x528]
fstp qword [esp + 0x40]
fld dword [0xa20d24]
mov dword [esp + 0x2c], esi
fstp qword [esp + 0x30]
mov edx, dword [edi + ebp + 0xa670]
add edi, 0x1c
test edx, edx
je 0x589a9b
cmp edx, 0x27
je 0x588eee
mov al, byte [edi + ebp + 0xa650]
cmp al, 5
je 0x588eee
cmp al, 6
je 0x588eee
cmp al, 7
je 0x588eee
cmp al, 8
jne 0x589a9b
lea eax, [edx - 1]
cmp eax, 0x26
ja 0x589a9b
mov eax, dword [edx*4 + 0xa20d7c]
jmp eax
cmp edi, 0x380
jl 0x588ebc
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x68]
movzx ecx, byte [eax + 0x29e]
fld qword [esp + 0x30]
test ecx, ecx
fld dword [0xa20d20]
je 0x589afa
movzx edi, byte [esi + 0x26a0]
movzx edx, byte [eax + 0x29a]
sub edi, edx
cmp edi, ecx
jge 0x589afa
fstp st(0)
inc ecx
inc edi
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld dword [0xa20d20]
fld st(0)
fdivrp st(2)
mov dword [esp + 0x18], edi
fild dword [esp + 0x18]
fmulp st(2)
fmulp st(1)
movzx ecx, byte [eax + 0x29f]
test ecx, ecx
je 0x589b37
movzx edx, byte [esi + 0x26a0]
movzx eax, byte [eax + 0x29b]
sub eax, edx
cmp eax, ecx
jge 0x589b37
inc ecx
inc eax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld dword [0xa20d20]
fdivrp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmulp st(1)
fmulp st(1)
mov eax, dword [esp + 0x68]
movzx ecx, byte [eax + 0x29c]
test ecx, ecx
je 0x589b78
movsx edi, byte [esi + 0x26a2]
movzx edx, byte [eax + 0x298]
sub edi, edx
cmp edi, ecx
jge 0x589b78
inc ecx
inc edi
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld dword [0xa20d20]
fdivrp st(1)
mov dword [esp + 0x18], edi
fild dword [esp + 0x18]
fmulp st(1)
fmulp st(1)
movzx ecx, byte [eax + 0x29d]
test ecx, ecx
je 0x589bb5
movzx eax, byte [eax + 0x299]
movsx edx, byte [esi + 0x26a2]
sub eax, edx
cmp eax, ecx
jge 0x589bb5
inc ecx
inc eax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld dword [0xa20d20]
fdivrp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmulp st(1)
fmulp st(1)
fmul dword [esi + 0x78]
fst dword [esi + 0x78]
fld dword [ebp + 0x18]
fcom st(2)
fnstsw ax
sahf
jbe 0x589bd6
fstp st(2)
fld dword [0xa20d20]
fdivrp st(2)
fmulp st(1)
fst dword [esi + 0x78]
jmp 0x589bdf
fstp st(1)
fstp st(0)
xor eax, eax
mov dword [esi + 0x78], eax
fcom qword [0xa20c90]
fnstsw ax
sahf
jb 0x58af49
fld dword [esi + 0x7c]
fsub dword [ebp + 0x1c]
fst dword [esi + 0x7c]
mov eax, dword [esi + 0x18]
cmp eax, 0xffffffff
je 0x58ae81
fxch st(1)
fmul dword [ebp + 0x18]
fxch st(1)
fadd dword [ebp + 0x1c]
lea eax, [esi + 0x54]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], eax
fld dword [0xa20cf8]
fld dword [0xa20cfc]
fadd st(2)
fmul st(1)
fmul dword [0xa20cf0]
fadd dword [0xa20cf4]
fstp dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov edi, edx
xor edi, 0xffffffff
and edx, 0x40000000
and edi, dword [esp + 0xa0]
or edi, edx
fxch st(1)
fadd st(0)
mov dword [esp + 0xa0], edi
fxch st(1)
fadd dword [esp + 0xa0]
fmul dword [0xa20cec]
fsubr dword [0xa20d20]
fmul st(2)
fstp dword [esi + 0x54]
fmul dword [0xa20cf0]
fadd dword [0xa20cf4]
fstp dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov dword [esp + 0xa4], eax
mov edx, eax
xor edx, 0xffffffff
and edx, dword [esp + 0xa0]
and eax, 0x40000000
or edx, eax
mov dword [esp + 0xa0], edx
fld dword [0xa20cf8]
fadd dword [esp + 0xa0]
fmul dword [0xa20cec]
fmulp st(1)
fstp dword [esi + 0x58]
movss xmm4, dword [ecx + 0x905c]
movss xmm6, dword [ecx + 0x9054]
movss xmm0, dword [0xa20cf8]
movss xmm2, dword [0xa20cfc]
addss xmm2, xmm6
mulss xmm2, xmm0
movss xmm7, dword [0xa20cf4]
movss xmm3, dword [0xa20cf0]
mulss xmm2, xmm3
addss xmm2, xmm7
movss xmm5, dword [0xa20d20]
movss dword [esp + 0xa8], xmm2
mov eax, dword [esp + 0xa8]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edx, eax
xor edx, 0xffffffff
and eax, 0x40000000
and edx, dword [esp + 0xa8]
or edx, eax
movss xmm2, dword [0xa20cec]
mov dword [esp + 0xa8], edx
movss xmm1, dword [esp + 0xa8]
addss xmm1, xmm0
mulss xmm1, xmm2
subss xmm5, xmm1
mulss xmm5, xmm4
movss dword [esp + 0x70], xmm5
addss xmm6, xmm6
mulss xmm6, xmm3
addss xmm7, xmm6
movss dword [esp + 0xa8], xmm7
mov eax, dword [esp + 0xa8]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov dword [esp + 0xac], eax
mov edx, eax
xor edx, 0xffffffff
and edx, dword [esp + 0xa8]
and eax, 0x40000000
or edx, eax
mov dword [esp + 0xa8], edx
addss xmm0, dword [esp + 0xa8]
mulss xmm0, xmm2
mulss xmm4, xmm0
movss dword [esp + 0x74], xmm4
call fcn.0057926c
movzx eax, al
test eax, eax
jne 0x589e2e
movss xmm3, dword [esi + 0x54]
mulss xmm3, dword [esp + 0x70]
lea eax, [esi + 0x58]
movss dword [esi + 0x54], xmm3
movss xmm0, dword [esi + 0x58]
mulss xmm0, dword [esp + 0x74]
mov dword [esp + 0x24], eax
movss dword [esi + 0x58], xmm0
jmp 0x589e58
add esp, 0xfffffff8
movss xmm3, dword [esp + 0x78]
movss xmm4, dword [esp + 0x7c]
movss dword [esp], xmm3
mov ecx, dword [esp + 0x74]
movss dword [esp + 4], xmm4
call fcn.00579308
lea eax, [esi + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
movss xmm0, dword [eax + 0x2a4]
movss xmm4, dword [eax + 0x2a8]
movss xmm7, dword [0xa20cf8]
movss xmm1, dword [0xa20cfc]
addss xmm1, xmm4
mulss xmm1, xmm7
movss xmm6, dword [0xa20cf4]
movss xmm3, dword [0xa20cf0]
mulss xmm1, xmm3
addss xmm1, xmm6
movss xmm5, dword [0xa20cec]
movss dword [esp + 0xb0], xmm1
mov edx, dword [esp + 0xb0]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov ecx, edx
xor ecx, 0xffffffff
and edx, 0x40000000
and ecx, dword [esp + 0xb0]
or ecx, edx
movss xmm1, dword [0xa20d20]
mov dword [esp + 0xb0], ecx
movss xmm2, dword [esp + 0xb0]
addss xmm2, xmm7
mulss xmm2, xmm5
subss xmm1, xmm2
mulss xmm1, xmm0
addss xmm4, xmm4
mulss xmm4, xmm3
addss xmm6, xmm4
movss dword [esp + 0xb0], xmm6
mov edi, dword [esp + 0xb0]
and edi, 0x40000000
add edi, edi
sar edi, 0x1f
and edi, 0x7fffffff
mov dword [esp + 0xb4], edi
mov eax, edi
xor eax, 0xffffffff
and eax, dword [esp + 0xb0]
and edi, 0x40000000
or eax, edi
mov dword [esp + 0xb0], eax
addss xmm7, dword [esp + 0xb0]
mulss xmm7, xmm5
mulss xmm0, xmm7
mulss xmm1, dword [esi + 0x54]
mov eax, dword [esp + 0x24]
movss dword [esi + 0x54], xmm1
mulss xmm0, dword [eax]
movss dword [eax], xmm0
mov al, byte [ebp + 0x24]
test al, al
je 0x589f92
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [eax], 0
mov dword [edx], 0
fld dword [0xa20ce8]
mov edx, dword [esp + 0x68]
fadd dword [edx + 0x2a8]
mov ecx, dword [esp + 0x6c]
fadd dword [ecx + 0x9054]
fadd dword [ebp + 0x1c]
fadd dword [esi + 0x7c]
fmul dword [0xa20cf0]
fadd dword [0xa20cf4]
fstp dword [esp + 0xb8]
mov edi, dword [esp + 0xb8]
and edi, 0x40000000
add edi, edi
sar edi, 0x1f
and edi, 0x7fffffff
mov dword [esp + 0xbc], edi
mov eax, edi
xor eax, 0xffffffff
and eax, dword [esp + 0xb8]
and edi, 0x40000000
or eax, edi
mov dword [esp + 0xb8], eax
movss xmm3, dword [0xa20cf8]
addss xmm3, dword [esp + 0xb8]
mulss xmm3, dword [0xa20cec]
movss dword [esi + 0x50], xmm3
movss xmm4, dword [edx + 0x2ac]
mulss xmm4, dword [ecx + 0x9058]
mulss xmm4, dword [0x9ebcb0]
movss dword [esi + 0x4c], xmm4
mov al, byte [ebp + 0x31]
test al, al
je 0x58a0d8
mov eax, dword [ebp + 0xa624]
test eax, eax
jne 0x58a0d8
mov dword [esi + 0x38], 0xffffffff
mov ecx, edx
mov eax, dword [ecx + 0x294]
neg eax
mov edx, dword [esi + 0x28]
mov dword [esp + 0x6c], eax
mov dword [esi + 0x34], eax
mov dword [esp + 0x58], edx
mov eax, dword [ecx + 0x290]
sub eax, dword [edx + 0x76c]
mov dword [esi + 0x26c8], eax
mov eax, dword [ecx + 0x294]
add eax, dword [edx + 0x76c]
mov dword [esi + 0x26cc], eax
mov edi, dword [ecx + 0x294]
add edi, dword [edx + 0x76c]
mov dword [esi + 0x26cc], edi
mov eax, dword [ecx + 0x290]
mov dword [esi + 0x26c8], eax
mov ecx, dword [edx + 0x76c]
sub ecx, edi
mov dword [esi + 0x26cc], ecx
mov edi, dword [edx + 0x76c]
sub edi, eax
mov dword [esi + 0x26c8], edi
sub edi, dword [edx + 0x76c]
jmp 0x58a10d
mov dword [esi + 0x38], 1
mov ecx, edx
mov edi, dword [ecx + 0x290]
mov dword [esp + 0x6c], edi
mov eax, dword [esi + 0x28]
mov dword [esi + 0x34], edi
mov edi, dword [ecx + 0x294]
mov dword [esi + 0x26c8], edi
mov ecx, dword [ecx + 0x290]
mov dword [esi + 0x26cc], ecx
mov dword [esp + 0x58], eax
xor eax, eax
cmp edi, 0
cmovl eax, edi
mov edx, dword [esp + 0x58]
mov dword [esi + 0x26c8], eax
mov edx, dword [edx + 0x76c]
neg edx
cmp eax, edx
jge 0x58a131
mov dword [esi + 0x26c8], edx
xor eax, eax
cmp ecx, 0
cmovg eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [esi + 0x26cc], eax
mov edx, dword [ecx + 0x76c]
cmp eax, edx
jle 0x58a15b
mov dword [esi + 0x26cc], edx
mov eax, ecx
mov edx, dword [eax + 0x76c]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x6c]
mov edx, ecx
fild dword [esp + 0x18]
fld qword [esp + 0x48]
fmulp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
faddp st(1)
fstp dword [esp + 0x10]
cvttss2si edi, dword [esp + 0x10]
mov dword [esi + 0x34], edi
mov eax, dword [edx + 0x76c]
dec eax
mov ecx, edi
sar ecx, 0x1f
xor ecx, 0xffffffff
and edi, ecx
mov edx, edi
sub edx, eax
sub eax, edi
sar eax, 0x1f
and edx, eax
sub edi, edx
mov dword [esi + 0x34], edi
mov al, byte [ebp + 0x504]
test al, al
je 0x58a20e
mov eax, dword [esp + 0x58]
lea ecx, [eax + 0x1ec]
mov edx, dword [eax + 0x1ec]
call dword [edx + 8]
movzx eax, al
test eax, eax
jne 0x58a1d4
mov eax, dword [esi + 0x28]
mov dword [esp + 0x58], eax
jmp 0x58a20e
mov edi, dword [esi + 0x28]
lea ecx, [edi + 0x1ec]
mov dword [esp + 0x68], ecx
push 0
push dword [esi + 0x34]
call fcn.00622814
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x1ec]
mov ecx, dword [esp + 0x68]
call dword [eax + 0xc]
mov edx, dword [esp + 0x64]
mov eax, dword [eax + edx*8 + 8]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x34], eax
mov dword [esp + 0x58], ecx
xor edx, edx
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x5c], eax
xor edi, edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], esi
mov ebp, eax
mov al, byte [ebp + edi + 0xd]
test al, al
je 0x58a29a
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x30], edx
lea ecx, [edx + edx]
add ecx, ecx
sub ecx, edx
mov esi, dword [esp + 0x58]
mov esi, dword [esi + 0x76c]
mov dword [esp + 0x64], esi
cmp eax, 1
je 0x58ae74
mov esi, dword [ebp + ecx*8 + 4]
add esi, 0xfffffffc
mov eax, esi
sar eax, 0x1f
xor eax, 0xffffffff
and esi, eax
add esi, dword [ebp + ecx*8]
neg esi
add esi, dword [esp + 0x64]
add esi, 0xfffffffc
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
add esi, dword [eax + 0x26c8]
cmp ecx, esi
jl 0x58ae65
add edi, 0x18
inc edx
cmp edx, 8
jl 0x58a22a
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp edx, 8
jl 0x58a2c0
mov ecx, 8
mov dword [esi + 0x30], 8
mov edx, 1
mov edi, dword [esp + 0x58]
mov al, byte [edi + 0x20]
mov dword [esp + 0x6c], edx
test al, al
je 0x58ae43
lea eax, [ecx + ecx]
add eax, eax
sub eax, ecx
lea edx, [eax + eax]
add edx, edx
add edx, edx
mov ecx, dword [esp + 0x5c]
add edx, ecx
lea ecx, [ecx + eax*8]
movsx eax, byte [ecx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
je 0x58a422
mov edi, dword [esi + 0x34]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x6c]
cmp edi, dword [ecx]
jle 0x58a41e
mov eax, ebp
cmp ebp, 8
jge 0x58a3ce
lea ecx, [eax + eax]
add ecx, ecx
sub ecx, eax
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x6c], ebp
mov ebp, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x5c]
mov al, byte [esi + ecx + 0xd]
test al, al
je 0x58a3b7
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x38]
lea edi, [ebp + ebp]
mov dword [edx + 0x30], ebp
add edi, edi
sub edi, ebp
mov dword [esp + 0x64], edi
lea edx, [edi + edi]
add edx, edx
add edx, edx
mov edi, dword [esp + 0x58]
mov edi, dword [edi + 0x76c]
mov dword [esp + 0x60], edi
cmp eax, 1
je 0x58aaba
add edx, esi
mov edi, dword [edx + 4]
add edi, 0xfffffffc
mov eax, edi
sar eax, 0x1f
xor eax, 0xffffffff
and edi, eax
add edi, dword [edx]
neg edi
add edi, dword [esp + 0x60]
add edi, 0xfffffffc
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x60]
add eax, dword [edi + 0x26c8]
mov edi, dword [esp + 0x64]
cmp edi, eax
jl 0x58aaa7
add ecx, 0x18
inc ebp
cmp ebp, 8
jl 0x58a340
mov eax, ebp
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x2c]
cmp eax, 8
jl 0x58a3e4
mov dword [esi + 0x30], 8
mov eax, dword [esp + 0x5c]
lea edx, [eax + 0xc0]
inc ebp
mov ecx, dword [esp + 0x58]
mov al, byte [ecx + 0x20]
test al, al
je 0x58a40c
mov ecx, edx
movsx eax, byte [edx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
jne 0x58a30e
mov ebp, dword [esp + 0x28]
jmp 0x58a422
mov ebp, dword [esp + 0x28]
movsx eax, byte [edx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x58a422
mov ebp, dword [esp + 0x28]
test eax, eax
jne 0x58abba
xor edi, edi
movzx eax, byte [esi + 0x2618]
test eax, eax
jle 0x58a65e
fldz
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], esi
fstp qword [esp + 0x50]
mov edx, dword [esp + 0x2c]
mov ebp, dword [edx + edi*4 + 0x98]
test ebp, ebp
je 0x58a64d
cmp byte [ebp + 4], 5
jne 0x58a63a
mov edx, dword [esp + 0x28]
movsx eax, word [edx + 0x12]
mov esi, dword [esp + 0x2c]
movzx edx, byte [esi + 0x26a0]
cmp eax, 0
cmovl eax, edx
movzx eax, al
sub eax, edx
mov dword [ebp + 0xac], eax
fld qword [0xa20ca0]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fst qword [esp + 0x48]
fmul dword [ebp + 0x18]
fxch st(1)
fstp qword [esp]
fmul qword [0xa20c98]
fstp qword [esp + 8]
call fcn.0088b9f8
fstp qword [esp + 0x40]
mov al, byte [ebp + 0xb4]
cmp al, 1
jne 0x58a4cb
fld dword [ebp + 0xb0]
fstp qword [esp + 0x50]
test al, al
jne 0x58a502
fld qword [esp + 0x48]
fstp dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
mov eax, edx
and eax, 0x80000000
xor edx, eax
mov dword [esp + 0xc0], edx
fld dword [ebp + 0xb0]
fmul dword [esp + 0xc0]
fstp qword [esp + 0x50]
fld qword [esp + 0x50]
fmul qword [0xa20c88]
fmul dword [ebp + 0x14]
fstp qword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, edx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58a54f
mov eax, edx
neg ecx
add ecx, 0x41e
shld eax, esi, 0xb
or eax, 0x80000000
shr eax, cl
mov esi, eax
neg esi
cmp edx, 0
cmovge esi, eax
jmp 0x58a551
xor esi, esi
mov dword [ebp + 0xb8], esi
test esi, esi
jle 0x58aaf6
fld qword [esp + 0x40]
fstp qword [esp]
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
fdivr qword [0xa20c80]
fstp qword [esp + 8]
call fcn.0088b9f8
mov esi, dword [ebp + 0xb8]
fstp dword [ebp + 0xa4]
fld qword [esp + 0x40]
fstp dword [ebp + 0x94]
test esi, esi
jle 0x58aadf
mov dword [esp + 0x18], esi
movss xmm2, dword [0xa20d24]
fild dword [esp + 0x18]
fdivr qword [0xa20c78]
fstp dword [ebp + 0xa8]
mov eax, dword [ebp + 0xac]
test eax, eax
jl 0x58aacc
xorps xmm1, xmm1
subss xmm1, dword [ebp + 0x18]
movss dword [ebp + 0xa0], xmm1
comiss xmm1, dword [0xa20d24]
jae 0x58a602
mov al, byte [ebp + 0xd]
test al, al
je 0x58a5f1
mov dword [ebp + 0x9c], 0xbf800000
jmp 0x58a627
xorps xmm0, xmm0
subss xmm0, xmm1
movss dword [ebp + 0x9c], xmm0
jmp 0x58a627
mov al, byte [ebp + 0xd]
test al, al
je 0x58a61f
movss xmm0, dword [0xa20d20]
subss xmm0, xmm1
movss dword [ebp + 0x9c], xmm0
jmp 0x58a627
movss dword [ebp + 0x9c], xmm2
movss dword [ebp + 0x98], xmm2
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + edi*4 + 0x98]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x14]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + 0x2618]
inc edi
cmp edi, eax
jl 0x58a449
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jle 0x58a696
mov dword [esp + 0x28], ebp
mov ecx, dword [esi + edi*4 + 0x98]
test ecx, ecx
je 0x58a68d
mov edx, dword [ecx + 0x88]
test edx, edx
je 0x58a68d
movzx ebp, word [ecx + 0x8c]
cmp ebp, 1
je 0x58ab8d
inc edi
cmp edi, eax
jl 0x58a668
mov ebp, dword [esp + 0x28]
mov edx, dword [esi + 0x26b8]
cmp esi, dword [edx + 0x6f4]
jne 0x58a6d5
xor edi, edi
test eax, eax
jle 0x58a6d5
mov ecx, dword [esi + edi*4 + 0x98]
test ecx, ecx
je 0x58a6d0
mov eax, dword [ecx]
movzx edx, byte [esi + edi + 0x2619]
push edx
push dword [esi + 0x26b8]
call dword [eax + 4]
movzx eax, byte [esi + 0x2618]
inc edi
cmp edi, eax
jl 0x58a6aa
mov ecx, dword [esi + 0x2680]
test ecx, ecx
je 0x58a6e4
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov eax, dword [esi + 0x267c]
test eax, eax
mov dword [esp + 0x6c], eax
je 0x58a8b8
mov eax, dword [eax + 4]
cmp eax, 0x20
je 0x58a703
cmp eax, 0x21
jne 0x58a779
mov al, byte [ebp + 0x30]
test al, al
jne 0x58a712
fld dword [0xa20d20]
jmp 0x58a73c
movzx eax, byte [esi + 0x26a0]
add eax, 0xffffffbb
fld qword [0xa20ca0]
fstp qword [esp]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0xa20c98]
fstp qword [esp + 8]
call fcn.0088b9f8
fmul qword [0xa20c68]
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
fmul dword [esi + 0x4c]
fmul dword [esi + 0x80]
fdivr dword [0xa20d20]
mov edx, dword [esp + 0x78]
fmul dword [edx + 0x16974]
fstp dword [esp + 0x10]
cvttss2si edi, dword [esp + 0x10]
push edi
call dword [eax + 0x14]
mov eax, dword [esi + 0x267c]
mov dword [esp + 0x6c], eax
mov edi, dword [esi + 0x34]
mov al, byte [ebp + 0xa650]
test al, al
je 0x58a89a
xor eax, eax
mov edx, dword [esp + 0x78]
mov edx, dword [edx + 0x1040]
test edx, edx
jle 0x58a7c2
mov dword [esp + 0x68], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], esi
mov esi, dword [ebx + 8]
cmp eax, esi
jne 0x58ab0f
inc eax
cmp eax, edx
jl 0x58a7a9
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp eax, edx
jge 0x58a89a
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax*4 + 0x820]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 4]
cmp eax, 0x23
je 0x58a89a
cmp eax, 0x24
jne 0x58a83e
mov edi, dword [edx + 0x267c]
fld qword [edi + 0x18]
fstp qword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58a83a
mov eax, dword [esp + 0x64]
mov edx, eax
neg ecx
shld edx, edi, 0xb
or edx, 0x80000000
add ecx, 0x41e
shr edx, cl
mov edi, edx
neg edi
cmp eax, 0
cmovge edi, edx
jmp 0x58a89a
xor edi, edi
jmp 0x58a89a
cmp eax, 0x20
jb 0x58a89a
cmp eax, 0x22
ja 0x58a89a
mov edi, dword [edx + 0x267c]
fld qword [edi + 0x20]
fstp qword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58a898
mov eax, dword [esp + 0x58]
mov edx, eax
neg ecx
shld edx, edi, 0xb
or edx, 0x80000000
add ecx, 0x41e
shr edx, cl
mov edi, edx
neg edi
cmp eax, 0
cmovge edi, edx
jmp 0x58a89a
xor edi, edi
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
add esp, 0xfffffff8
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fstp qword [esp]
call dword [eax + 0xc]
mov dword [esi + 0x34], 0
mov edi, dword [esp + 0x20]
mov eax, dword [edi]
mov edx, dword [esp + 0x24]
mov dword [esi + 0x64], eax
mov ecx, dword [edx]
mov dword [esi + 0x68], ecx
mov al, byte [ebp + 0x32]
test al, al
je 0x58aa72
mov eax, 1
xor edi, edi
movzx edx, byte [esi + 0x2618]
test edx, edx
jle 0x58aa74
lea ebp, [edi + edi]
add ebp, ebp
lea ecx, [ebp + ebp]
add ecx, ecx
add ecx, ecx
sub ecx, ebp
lea ebp, [ecx + ecx]
add ebp, ebp
add ebp, ebp
sub ebp, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + edi*4 + 0x98]
test ecx, ecx
je 0x58aa59
cmp byte [ecx + 4], 1
jne 0x58aa59
mov eax, dword [ecx]
push 1
call dword [eax + 0x60]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + ebp]
xor edx, edx
mov dword [esp + 0x60], ecx
mov eax, dword [ecx + 0x218]
test eax, eax
mov dword [esp + 0x58], edx
jle 0x58aa3c
cmp eax, 6
jl 0x58a9f7
lea edx, [eax - 6]
mov ecx, dword [esp + 0x58]
lea esi, [ecx + ecx]
mov dword [esp + 0x64], edx
add esi, esi
lea edx, [esi + esi]
add edx, esi
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x24], edi
movzx esi, word [eax + ebp + 0x158]
cmp esi, 1
je 0x58ab83
movzx esi, word [eax + ebp + 0x164]
cmp esi, 1
je 0x58af3c
movzx esi, word [eax + ebp + 0x170]
cmp esi, 1
je 0x58af2f
movzx esi, word [eax + ebp + 0x17c]
cmp esi, 1
je 0x58af22
movzx esi, word [eax + ebp + 0x188]
cmp esi, 1
je 0x58af15
add eax, 0x3c
add ecx, 5
cmp ecx, edx
jle 0x58a988
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
lea ecx, [edx + edx]
add ecx, ecx
lea esi, [ecx + ecx]
add esi, ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], esi
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ebp
mov ebp, esi
mov dword [esp + 0x24], edi
movzx esi, word [ebp + ecx + 0x158]
cmp esi, 1
je 0x58ab71
add ebp, 0xc
inc edx
cmp edx, eax
jl 0x58aa1b
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
xor eax, eax
xor edx, edx
cmp eax, 0
mov eax, dword [esp + 0x68]
cmovne eax, edx
mov ecx, dword [esp + 0x2c]
movzx edx, byte [ecx + 0x2618]
mov dword [esp + 0x68], eax
add ebp, 0xc4
inc edi
cmp edi, edx
jl 0x58a90b
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x2c]
jmp 0x58aa74
xor eax, eax
movzx eax, al
test eax, eax
je 0x58aa82
mov dword [esi + 0x30], 8
mov eax, 1
add esp, 0xcc
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret 0xc
xor eax, eax
add esp, 0xcc
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret 0xc
mov eax, ebp
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x2c]
jmp 0x58a3ce
add edx, esi
mov eax, dword [esp + 0x64]
mov edi, dword [esi + eax*8]
mov dword [esp + 0x64], edi
jmp 0x58a39d
movss xmm1, dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0xa0], eax
jmp 0x58a5d5
movss xmm2, dword [0xa20d24]
mov dword [ebp + 0xa8], 0
jmp 0x58a5b7
mov dword [ebp + 0xa4], 0x3f800000
mov dword [ebp + 0x94], 0x3f800000
jmp 0x58a593
mov ebp, dword [esp + 0x78]
mov ebp, dword [ebp + eax*4 + 0x820]
mov cl, byte [ebp]
test cl, cl
je 0x58a7b1
mov cl, byte [ebp + 9]
test cl, cl
je 0x58a7b1
movsx ecx, word [ebp + 0x26a8]
mov edi, dword [ebx + 0x10]
cmp ecx, edi
jne 0x58a7b1
mov ecx, dword [ebp + 0x267c]
test ecx, ecx
je 0x58a7b1
mov ecx, dword [ecx + 4]
mov ebp, dword [esp + 0x6c]
cmp ecx, dword [ebp + 4]
jne 0x58a7b1
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
jmp 0x58a7c2
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov eax, 1
jmp 0x58aa3e
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
jmp 0x58ab79
mov edx, dword [edx + 0x84]
test edx, edx
jne 0x58a68d
mov eax, dword [ecx]
mov ebp, dword [esp + 0x78]
mov edx, dword [ebp + 0x17030]
add edx, dword [esi + 0x3c]
push edx
call dword [eax + 0x34]
movzx eax, byte [esi + 0x2618]
jmp 0x58a68d
mov ecx, dword [edx + 8]
mov dword [esi + 0x26bc], ecx
mov al, byte [ebp + 0x520]
mov ecx, dword [esp + 0x58]
test al, al
mov byte [esi + 0x26dc], al
mov edi, dword [ecx + 0x76c]
mov dword [esp + 0x60], edi
fild dword [ecx + 0x76c]
fld qword [esp + 0x50]
fmul st(1)
fstp dword [esp + 0x10]
cvttss2si ecx, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
fld qword [esp + 0x40]
fmulp st(1)
fstp dword [esp + 0x10]
cvttss2si ecx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
jne 0x58ac1b
lea eax, [edx + 4]
mov dword [esp + 0x64], eax
jmp 0x58ad6a
mov ecx, dword [esi + 0x38]
mov eax, dword [edx]
add edx, 4
mov dword [esp + 0x64], eax
cmp ecx, 1
je 0x58ae2f
mov eax, dword [edx]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
mov ecx, dword [esp + 0x64]
add ecx, eax
neg ecx
add ecx, dword [esp + 0x60]
add ecx, 0xfffffffc
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
lea ecx, [edi + eax + 4]
add edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
sub eax, ecx
mov dword [esp + 0x68], ecx
dec eax
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0xffffffff
and edx, ecx
mov ecx, edx
sub ecx, eax
sub eax, edx
sar eax, 0x1f
and ecx, eax
sub edx, ecx
mov ecx, dword [esp + 0x58]
add ecx, 0x1ec
mov dword [esp + 0x58], ecx
push 0
push edx
call fcn.00622814
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edx, dword [esp + 0x5c]
mov ecx, dword [eax + edx*8 + 8]
mov eax, ecx
mov dword [esp + 0x58], ecx
mov edi, dword [esi + 0x28]
mov edx, dword [edi + 0x76c]
sub eax, dword [esp + 0x64]
dec edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x68]
add eax, ecx
mov dword [esp + 0x64], edi
mov ecx, eax
sar ecx, 0x1f
xor ecx, 0xffffffff
and eax, ecx
mov ecx, eax
sub ecx, edx
sub edx, eax
sar edx, 0x1f
and ecx, edx
sub eax, ecx
lea ecx, [edi + 0x1ec]
mov dword [esp + 0x60], ecx
push 1
push eax
call fcn.00622814
mov dword [esp + 0x5c], eax
mov eax, edi
mov edx, dword [eax + 0x1ec]
mov ecx, dword [esp + 0x60]
call dword [edx + 0xc]
mov edx, dword [esp + 0x5c]
mov edi, dword [eax + edx*8 + 8]
mov edx, dword [esi + 0x30]
sub edi, dword [esp + 0x58]
add edi, 0xfffffffc
mov eax, edi
sar eax, 0x1f
xor eax, 0xffffffff
and edi, eax
add edi, 4
mov eax, dword [esi + 0x2c]
lea ecx, [edx + edx]
mov dword [esp + 0x5c], eax
add ecx, ecx
sub ecx, edx
lea edx, [ecx + ecx]
add edx, edx
add edx, edx
add edx, eax
lea eax, [eax + ecx*8 + 4]
mov ecx, dword [eax]
mov dword [esp + 0x64], eax
add ecx, 0xfffffffc
mov eax, ecx
sar eax, 0x1f
xor eax, 0xffffffff
and ecx, eax
sub edi, ecx
add edi, 0xfffffffc
mov eax, dword [esi + 0x28]
mov dword [esp + 0x68], edi
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x38]
mov ecx, dword [edx]
cmp eax, 1
je 0x58ad98
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x76c]
mov edi, dword [esp + 0x64]
mov edi, dword [edi]
add edi, 0xfffffffc
mov edx, edi
sar edx, 0x1f
xor edx, 0xffffffff
and edi, edx
add ecx, edi
sub eax, ecx
lea ecx, [eax - 4]
mov edx, dword [esp + 0x6c]
add edx, ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov edi, dword [esp + 0x68]
mov dword [esi + 0x26c4], edx
mov eax, dword [eax]
add eax, 0xfffffffc
mov ecx, eax
sar ecx, 0x1f
xor ecx, 0xffffffff
and eax, ecx
lea eax, [edi + eax + 4]
mov ecx, dword [esp + 0x58]
mov dword [esi + 0x26c0], eax
mov ecx, dword [ecx + 0x76c]
cmp edx, ecx
jl 0x58adf1
xor edx, edx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x6c], edx
mov dword [esi + 0x26c4], 0
mov ecx, dword [ecx + 0x76c]
add eax, dword [esp + 0x6c]
cmp eax, ecx
jle 0x58ae03
sub ecx, dword [esp + 0x6c]
mov dword [esi + 0x26c0], ecx
xor al, al
mov edx, dword [esp + 0x5c]
mov byte [edx + 0xe], al
mov byte [edx + 0x26], al
mov byte [edx + 0x3e], al
mov byte [edx + 0x56], al
mov byte [edx + 0x6e], al
mov byte [edx + 0x86], al
mov byte [edx + 0x9e], al
mov byte [edx + 0xb6], al
jmp 0x58a42a
mov eax, dword [edx]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
jmp 0x58ac52
lea edx, [ecx + ecx]
add edx, edx
sub edx, ecx
add edx, edx
add edx, edx
add edx, edx
add edx, dword [esp + 0x5c]
movsx eax, byte [edx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x58a422
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov esi, eax
jmp 0x58a2af
mov eax, dword [ebp + ecx*8]
mov dword [esp + 0x6c], eax
jmp 0x58a280
fstp st(1)
fstp st(0)
mov ecx, dword [esp + 0x6c]
call fcn.0057926c
movzx eax, al
test eax, eax
jne 0x58aec5
movss xmm0, dword [esi + 0x78]
lea eax, [esi + 0x54]
mulss xmm0, dword [ebp + 0x18]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x68]
mulss xmm0, dword [edx + 0x2a4]
mov ecx, dword [esp + 0x6c]
mulss xmm0, dword [ecx + 0x905c]
movss dword [esi + 0x54], xmm0
jmp 0x58aef3
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x905c]
push eax
push eax
call fcn.00579308
movss xmm0, dword [esi + 0x78]
lea eax, [esi + 0x54]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mulss xmm0, dword [edx + 0x2a4]
movss dword [esi + 0x54], xmm0
lea eax, [esi + 0x58]
mov dword [esp + 0x24], eax
movss dword [esi + 0x58], xmm0
jmp 0x589f77
mov eax, 0xffffffff
mov word [esi + 0x26a6], ax
jmp 0x588a90
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
jmp 0x58ab79
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
jmp 0x58ab79
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
jmp 0x58ab79
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
jmp 0x58ab79
fstp st(0)
jmp 0x58aa96
push ebx
mov ebx, esp
and esp, 0xfffffff8
push edi
push esi
push ebp
sub esp, 0xd4
mov eax, ecx
mov dword [esp + 0x78], eax
mov ebp, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov ebp, dword [eax + ebp*4 + 0x820]
mov esi, dword [eax + ecx*4 + 0x16fcc]
mov eax, dword [esi + edi*4]
mov edx, dword [eax + 0x2b0]
mov ecx, dword [eax + 0x4c]
mov dword [esp + 0x5c], eax
test ecx, ecx
mov dword [esp + 0x7c], edx
je 0x58cf5d
call fcn.004e0ca8
movzx eax, al
test eax, eax
je 0x58cf5d
mov edi, dword [esp + 0x5c]
mov eax, dword [edi + 0x4c]
lea edx, [edi + 0x1b8]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x2c], edx
movsx eax, word [eax + 0x14]
test eax, eax
mov word [ebp + 0x26a4], ax
jl 0x58d445
lea edx, [eax + eax*4]
mov eax, dword [esi + edx*4 + 0x8030]
mov word [ebp + 0x26a6], ax
lea eax, [esi + 0x8928]
lea ecx, [esi + 0x892c]
mov dword [ebp + 0x26b8], eax
call fcn.0055af68
lea ecx, [esi + 0x893c]
call fcn.0055af68
lea ecx, [esi + 0x894c]
call fcn.0055af68
lea ecx, [esi + 0x895c]
call fcn.0055af68
lea ecx, [esi + 0x896c]
call fcn.0055af68
lea ecx, [esi + 0x897c]
call fcn.0055af68
lea ecx, [esi + 0x898c]
call fcn.0055af68
lea ecx, [esi + 0x899c]
call fcn.0055af68
lea ecx, [esi + 0x8a4c]
call fcn.0055af68
lea ecx, [esi + 0x8a7c]
call fcn.0055af68
lea ecx, [esi + 0x8aac]
call fcn.0055af68
lea ecx, [esi + 0x8a5c]
call fcn.0055af68
lea ecx, [esi + 0x8a8c]
call fcn.0055af68
lea ecx, [esi + 0x8abc]
call fcn.0055af68
lea ecx, [esi + 0x8a6c]
call fcn.0055af68
lea ecx, [esi + 0x8a9c]
call fcn.0055af68
lea ecx, [esi + 0x8acc]
call fcn.0055af68
lea ecx, [esi + 0x89ac]
call fcn.0055af68
lea ecx, [esi + 0x89bc]
call fcn.0055af68
lea ecx, [esi + 0x89cc]
call fcn.0055af68
lea ecx, [esi + 0x89dc]
call fcn.0055af68
lea ecx, [esi + 0x89ec]
call fcn.0055af68
lea ecx, [esi + 0x89fc]
call fcn.0055af68
lea ecx, [esi + 0x8a0c]
call fcn.0055af68
lea ecx, [esi + 0x8a1c]
call fcn.0055af68
lea ecx, [esi + 0x8a2c]
call fcn.0055af68
lea ecx, [esi + 0x8a3c]
call fcn.0055af68
lea ecx, [esi + 0x8adc]
call fcn.0055af68
lea ecx, [esi + 0x8aec]
call fcn.0055af68
lea ecx, [esi + 0x8afc]
call fcn.0055af68
lea ecx, [esi + 0x8b0c]
call fcn.0055af68
lea ecx, [esi + 0x8b1c]
call fcn.0055af68
lea ecx, [esi + 0x8b2c]
call fcn.0055af68
lea ecx, [esi + 0x8b3c]
call fcn.0055af68
lea ecx, [esi + 0x8b4c]
call fcn.0055af68
lea ecx, [esi + 0x8b5c]
call fcn.0055af68
lea ecx, [esi + 0x8b6c]
call fcn.0055af68
lea ecx, [esi + 0x8b7c]
call fcn.0055af68
xor edx, edx
xor eax, eax
lea ecx, [esi + 0x8e0c]
lea edi, [esi + 0x8f0c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], esi
mov esi, edx
mov dword [esp + 0x60], ebp
mov ebp, eax
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
mov dword [esi + eax + 0x8b8c], 0
mov dword [esi + eax + 0x8b90], 0
mov dword [esi + eax + 0x8b94], 0
mov dword [esi + eax + 0x8b98], 0
mov dword [esi + eax + 0x8b9c], 0
mov byte [esi + eax + 0x8ba0], 0
mov dword [ebp + eax + 0x8d0c], 0
mov dword [ebp + eax + 0x8d10], 0
mov dword [ebp + eax + 0x8d14], 0
call fcn.0055af68
mov ecx, edi
call fcn.0055af68
add esi, 0x18
add ebp, 0x10
add edi, 0x10
add dword [esp + 0x58], 0x10
cmp ebp, 0x100
jl 0x58b1b8
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov eax, dword [ebp + 0x26b8]
mov edi, dword [eax]
cmp edi, 0xffffffff
je 0x58b266
movsx edx, word [ebp + 0x26ac]
cmp edi, edx
jne 0x58b272
mov dword [eax + 0x6f4], ebp
inc dword [eax + 0x6f0]
lea edi, [ebp + 0x14]
lea eax, [ebp + 0x18]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x10]
push edi
push edx
push eax
mov ecx, dword [esp + 0x88]
call fcn.0058d494
cmp byte [esi + 0x9045], 0xff
sete al
mov byte [ebp + 0x1c], al
push 0
push ebp
mov ecx, dword [esp + 0x80]
call fcn.005b8604
mov edx, dword [esp + 0x7c]
mov al, byte [edx + 0x30]
test al, al
jne 0x58b2bd
fld dword [0xa20e98]
jmp 0x58b2f1
movzx eax, byte [ebp + 0x26a0]
mov edi, dword [esp + 0x5c]
movzx edx, byte [edi + 0x2a0]
fld qword [0xa20e58]
sub eax, edx
fstp qword [esp]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0xa20e50]
fstp qword [esp + 8]
call fcn.0088b9f8
fstp dword [ebp + 0x48]
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x18]
mov dword [ebp + 0x78], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp + 0x7c], edx
mov edx, dword [eax + 0x20]
mov dword [ebp + 0x80], edx
mov edx, dword [eax + 0x554]
mov dword [ebp + 0x84], edx
mov edx, dword [eax + 0x558]
mov dword [ebp + 0x88], edx
mov edx, dword [eax + 0x55c]
mov dword [ebp + 0x8c], edx
mov edi, dword [eax + 0x560]
mov dword [ebp + 0x90], edi
mov edx, dword [eax + 0x564]
xor edi, edi
mov dword [ebp + 0x94], edx
fld dword [eax + 0x508]
fstp qword [esp + 0x30]
fld dword [eax + 0x524]
fstp qword [esp + 0x38]
fld dword [eax + 0x528]
fstp qword [esp + 0x40]
fld dword [0xa20e9c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebp
fstp qword [esp + 0x70]
mov ebp, eax
mov edx, dword [edi + ebp + 0xa670]
add edi, 0x1c
test edx, edx
je 0x58bf68
cmp edx, 0x27
je 0x58b3af
mov al, byte [edi + ebp + 0xa650]
cmp al, 5
je 0x58b3af
cmp al, 6
je 0x58b3af
cmp al, 7
je 0x58b3af
cmp al, 8
jne 0x58bf68
lea eax, [edx - 1]
cmp eax, 0x26
ja 0x58bf68
mov eax, dword [edx*4 + 0xa20e9c]
jmp eax
cmp edi, 0x380
jl 0x58b37d
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
fld qword [esp + 0x70]
movzx edx, byte [eax + 0x29e]
test edx, edx
fld dword [0xa20e98]
je 0x58bfcf
movzx eax, byte [ebp + 0x26a0]
mov edi, dword [esp + 0x5c]
movzx edi, byte [edi + 0x29a]
sub eax, edi
cmp eax, edx
jge 0x58bfcf
fstp st(0)
inc edx
inc eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fld dword [0xa20e98]
fld st(0)
fdivrp st(2)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmulp st(2)
fmulp st(1)
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 0x29f]
test edx, edx
je 0x58c010
movzx edi, byte [ebp + 0x26a0]
movzx eax, byte [eax + 0x29b]
sub eax, edi
cmp eax, edx
jge 0x58c010
inc edx
inc eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fld dword [0xa20e98]
fdivrp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmulp st(1)
fmulp st(1)
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 0x29c]
test edx, edx
je 0x58c055
movsx eax, byte [ebp + 0x26a2]
mov edi, dword [esp + 0x5c]
movzx edi, byte [edi + 0x298]
sub eax, edi
cmp eax, edx
jge 0x58c055
inc edx
inc eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fld dword [0xa20e98]
fdivrp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmulp st(1)
fmulp st(1)
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + 0x29d]
test edx, edx
je 0x58c096
movzx eax, byte [eax + 0x299]
movsx edi, byte [ebp + 0x26a2]
sub eax, edi
cmp eax, edx
jge 0x58c096
inc edx
inc eax
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fld dword [0xa20e98]
fdivrp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmulp st(1)
fmulp st(1)
fmul dword [ebp + 0x78]
mov edx, dword [esp + 0x7c]
fst dword [ebp + 0x78]
fld dword [edx + 0x18]
fcom st(2)
fnstsw ax
sahf
jbe 0x58c0bb
fstp st(2)
fld dword [0xa20e98]
fdivrp st(2)
fmulp st(1)
fst dword [ebp + 0x78]
jmp 0x58c0c4
fstp st(1)
fstp st(0)
xor eax, eax
mov dword [ebp + 0x78], eax
fcom qword [0xa20e48]
fnstsw ax
sahf
jb 0x58d48a
fld dword [ebp + 0x7c]
fsub dword [edx + 0x1c]
fst dword [ebp + 0x7c]
mov eax, dword [ebp + 0x18]
cmp eax, 0xffffffff
je 0x58d3d8
mov eax, edx
fxch st(1)
fmul dword [eax + 0x18]
fxch st(1)
fadd dword [eax + 0x1c]
lea eax, [ebp + 0x54]
mov ecx, esi
mov dword [esp + 0x20], eax
fld dword [0xa20e74]
fadd st(1)
fmul dword [0xa20e70]
fmul dword [0xa20e68]
fadd dword [0xa20e6c]
fxch st(1)
fadd st(0)
fxch st(1)
fstp dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov eax, edx
xor eax, 0xffffffff
and edx, 0x40000000
and eax, dword [esp + 0xa8]
or eax, edx
mov dword [esp + 0xa8], eax
fld dword [0xa20e70]
fadd dword [esp + 0xa8]
fmul dword [0xa20e64]
fsubr dword [0xa20e98]
fmul st(2)
fstp dword [ebp + 0x54]
fmul dword [0xa20e68]
fadd dword [0xa20e6c]
fstp dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov dword [esp + 0xac], edx
mov eax, edx
xor eax, 0xffffffff
and eax, dword [esp + 0xa8]
and edx, 0x40000000
or eax, edx
mov dword [esp + 0xa8], eax
fld dword [0xa20e70]
fadd dword [esp + 0xa8]
fmul dword [0xa20e64]
fmulp st(1)
fstp dword [ebp + 0x58]
fld dword [esi + 0x9054]
fld dword [0xa20e70]
fld dword [0xa20e74]
fadd st(2)
fmul st(1)
fmul dword [0xa20e68]
fadd dword [0xa20e6c]
fxch st(2)
fadd st(0)
fmul dword [0xa20e68]
fxch st(2)
fstp dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
and eax, 0x40000000
add eax, eax
sar eax, 0x1f
and eax, 0x7fffffff
mov edi, eax
xor edi, 0xffffffff
and eax, 0x40000000
and edi, dword [esp + 0xb0]
or edi, eax
fxch st(1)
fadd dword [0xa20e6c]
mov dword [esp + 0xb0], edi
fld dword [esp + 0xb0]
fadd st(2)
fmul dword [0xa20e64]
fsubr dword [0xa20e98]
fmul dword [esi + 0x905c]
fstp dword [esp + 0x48]
fstp dword [esp + 0xb0]
mov edx, dword [esp + 0xb0]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov dword [esp + 0xb4], edx
mov eax, edx
xor eax, 0xffffffff
and eax, dword [esp + 0xb0]
and edx, 0x40000000
or eax, edx
mov dword [esp + 0xb0], eax
fadd dword [esp + 0xb0]
fmul dword [0xa20e64]
fmul dword [esi + 0x905c]
fstp dword [esp + 0x2c]
call fcn.0057926c
movzx eax, al
test eax, eax
jne 0x58c2e7
fld dword [ebp + 0x54]
fmul dword [esp + 0x48]
lea eax, [ebp + 0x58]
fstp dword [ebp + 0x54]
mov dword [esp + 0x24], eax
fld dword [ebp + 0x58]
fmul dword [esp + 0x2c]
fstp dword [ebp + 0x58]
jmp 0x58c307
add esp, 0xfffffff8
mov ecx, esi
fld dword [esp + 0x50]
fstp dword [esp]
fld dword [esp + 0x34]
fstp dword [esp + 4]
call fcn.00579308
lea eax, [ebp + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
fld dword [eax + 0x2a8]
fld dword [0xa20e70]
fld dword [0xa20e74]
fadd st(2)
fmul st(1)
fmul dword [0xa20e68]
fadd dword [0xa20e6c]
fxch st(2)
fadd st(0)
fmul dword [0xa20e68]
fxch st(2)
fstp dword [esp + 0xb8]
mov edi, dword [esp + 0xb8]
and edi, 0x40000000
add edi, edi
sar edi, 0x1f
and edi, 0x7fffffff
mov edx, edi
xor edx, 0xffffffff
and edi, 0x40000000
and edx, dword [esp + 0xb8]
or edx, edi
fxch st(1)
fadd dword [0xa20e6c]
mov dword [esp + 0xb8], edx
fld dword [esp + 0xb8]
fadd st(2)
fmul dword [0xa20e64]
fsubr dword [0xa20e98]
fmul dword [eax + 0x2a4]
fxch st(1)
fstp dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
and edx, 0x40000000
add edx, edx
sar edx, 0x1f
and edx, 0x7fffffff
mov edi, edx
mov dword [esp + 0xbc], edx
xor edi, 0xffffffff
and edx, 0x40000000
and edi, dword [esp + 0xb8]
or edi, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xb8], edi
fxch st(1)
fadd dword [esp + 0xb8]
fmul dword [0xa20e64]
fmul dword [eax + 0x2a4]
fxch st(1)
fmul dword [ebp + 0x54]
fstp dword [ebp + 0x54]
fmul dword [edx]
fstp dword [edx]
mov edx, dword [esp + 0x7c]
mov al, byte [edx + 0x24]
test al, al
je 0x58c41d
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [edx], 0
mov dword [eax], 0
fld dword [0xa20e60]
mov edi, dword [esp + 0x5c]
fadd dword [edi + 0x2a8]
fadd dword [esi + 0x9054]
mov edx, dword [esp + 0x7c]
fadd dword [edx + 0x1c]
fadd dword [ebp + 0x7c]
fmul dword [0xa20e68]
fadd dword [0xa20e6c]
fstp dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
and ecx, 0x40000000
add ecx, ecx
sar ecx, 0x1f
and ecx, 0x7fffffff
mov dword [esp + 0xc4], ecx
mov eax, ecx
xor eax, 0xffffffff
and eax, dword [esp + 0xc0]
and ecx, 0x40000000
or eax, ecx
mov dword [esp + 0xc0], eax
fld dword [0xa20e70]
fadd dword [esp + 0xc0]
fmul dword [0xa20e64]
fstp dword [ebp + 0x50]
fld dword [edi + 0x2ac]
fmul dword [esi + 0x9058]
fmul dword [0x9ebcb0]
fstp dword [ebp + 0x4c]
mov al, byte [edx + 0x31]
test al, al
je 0x58c555
mov eax, dword [edx + 0xa624]
test eax, eax
jne 0x58c555
mov dword [ebp + 0x38], 0xffffffff
mov eax, edi
mov ecx, dword [eax + 0x294]
neg ecx
mov esi, dword [ebp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [ebp + 0x34], ecx
mov edx, dword [eax + 0x290]
sub edx, dword [esi + 0x76c]
mov dword [ebp + 0x26c8], edx
mov edx, dword [eax + 0x294]
add edx, dword [esi + 0x76c]
mov dword [ebp + 0x26cc], edx
mov edx, dword [eax + 0x294]
add edx, dword [esi + 0x76c]
mov dword [ebp + 0x26cc], edx
mov edi, dword [eax + 0x290]
mov dword [ebp + 0x26c8], edi
mov eax, dword [esi + 0x76c]
sub eax, edx
mov dword [ebp + 0x26cc], eax
mov edx, dword [esi + 0x76c]
sub edx, edi
mov dword [ebp + 0x26c8], edx
sub edx, dword [esi + 0x76c]
mov dword [ebp + 0x26c8], edx
jmp 0x58c586
mov dword [ebp + 0x38], 1
mov eax, edi
mov edx, dword [eax + 0x290]
mov dword [esp + 0x28], edx
mov esi, dword [ebp + 0x28]
mov dword [ebp + 0x34], edx
mov edx, dword [eax + 0x294]
mov dword [ebp + 0x26c8], edx
mov eax, dword [eax + 0x290]
mov dword [ebp + 0x26cc], eax
test edx, edx
jle 0x58c596
xor edx, edx
mov dword [ebp + 0x26c8], 0
mov edi, dword [esi + 0x76c]
neg edi
cmp edx, edi
jge 0x58c5a8
mov dword [ebp + 0x26c8], edi
test eax, eax
jge 0x58c5b8
xor eax, eax
mov dword [ebp + 0x26cc], 0
mov edx, dword [esi + 0x76c]
cmp eax, edx
jle 0x58c5ce
mov dword [ebp + 0x26cc], edx
mov edx, dword [esi + 0x76c]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x28]
fild dword [esp + 0x18]
fld qword [esp + 0x30]
fmulp st(1)
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
faddp st(1)
fstp qword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58c631
mov edx, eax
neg ecx
add ecx, 0x41e
shld edx, edi, 0xb
or edx, 0x80000000
shr edx, cl
test eax, eax
mov dword [esp + 0x58], edx
jge 0x58c637
mov eax, edx
neg eax
mov dword [esp + 0x58], eax
jmp 0x58c637
xor eax, eax
mov dword [esp + 0x58], eax
mov edi, dword [esp + 0x58]
mov eax, edi
sar eax, 0x1f
mov dword [ebp + 0x34], edi
mov edx, dword [esi + 0x76c]
dec edx
xor eax, 0xffffffff
and edi, eax
mov eax, edi
sub eax, edx
sub edx, edi
sar edx, 0x1f
and eax, edx
sub edi, eax
mov edx, dword [esp + 0x7c]
mov dword [ebp + 0x34], edi
mov al, byte [edx + 0x504]
test al, al
je 0x58c6b8
lea ecx, [esi + 0x1ec]
mov esi, dword [esi + 0x1ec]
call dword [esi + 8]
movzx eax, al
test eax, eax
jne 0x58c688
mov esi, dword [ebp + 0x28]
jmp 0x58c6b8
mov esi, dword [ebp + 0x28]
lea ecx, [esi + 0x1ec]
mov dword [esp + 0x4c], ecx
push 0
push dword [ebp + 0x34]
call fcn.00622814
mov edi, eax
mov edx, dword [esi + 0x1ec]
mov ecx, dword [esp + 0x4c]
call dword [edx + 0xc]
mov eax, dword [eax + edi*8 + 8]
mov esi, dword [ebp + 0x28]
mov dword [ebp + 0x34], eax
xor ecx, ecx
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x30]
mov dword [esp + 0x5c], eax
xor edx, edx
mov dword [esp + 0x64], esi
mov esi, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x60], ebp
mov al, byte [esi + edx + 0xd]
test al, al
je 0x58c73a
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x60]
mov edi, dword [eax + 0x38]
mov dword [eax + 0x30], ecx
lea eax, [ecx + ecx]
add eax, eax
sub eax, ecx
mov ebp, dword [esp + 0x64]
mov ebp, dword [ebp + 0x76c]
cmp edi, 1
je 0x58d3d0
mov dword [esp + 0x54], edx
mov edx, dword [esi + eax*8]
mov edi, dword [esi + eax*8 + 4]
add edi, 0xfffffffc
mov eax, edi
sar eax, 0x1f
xor eax, 0xffffffff
and edi, eax
lea edi, [edx + edi + 4]
neg edi
add edi, ebp
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x60]
add ebp, dword [eax + 0x26c8]
cmp edi, ebp
jl 0x58d3bf
add edx, 0x18
inc ecx
cmp ecx, 8
jl 0x58c6d4
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x60]
cmp ecx, 8
jl 0x58c760
mov edi, 8
mov dword [ebp + 0x30], 8
mov edx, 1
mov al, byte [esi + 0x20]
test al, al
mov dword [esp + 0x28], edx
je 0x58d39d
lea eax, [edi + edi]
add eax, eax
sub eax, edi
lea edx, [eax + eax]
add edx, edx
add edx, edx
mov edi, dword [esp + 0x5c]
add edx, edi
lea ecx, [edi + eax*8]
movsx eax, byte [ecx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
je 0x58c8d3
mov edi, dword [ebp + 0x34]
mov dword [esp + 0x60], ebp
mov ebp, ecx
mov ecx, dword [esp + 0x28]
cmp edi, dword [ebp]
jle 0x58c8cf
mov eax, ecx
cmp ecx, 8
jge 0x58c87f
lea ebp, [eax + eax]
add ebp, ebp
sub ebp, eax
add ebp, ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
mov ecx, eax
mov dword [esp + 0x58], edi
mov al, byte [esi + ebp + 0xd]
test al, al
je 0x58c864
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x38]
lea edi, [ecx + ecx]
mov dword [edx + 0x30], ecx
add edi, edi
sub edi, ecx
mov dword [esp + 0x50], edi
lea edx, [edi + edi]
add edx, edx
add edx, edx
mov edi, dword [esp + 0x64]
mov edi, dword [edi + 0x76c]
mov dword [esp + 0x54], edi
cmp eax, 1
je 0x58cf81
add edx, esi
mov eax, dword [edx]
mov edi, dword [edx + 4]
mov dword [esp + 0x80], edx
add edi, 0xfffffffc
mov edx, edi
sar edx, 0x1f
xor edx, 0xffffffff
and edi, edx
lea eax, [eax + edi + 4]
neg eax
mov edx, dword [esp + 0x80]
add eax, dword [esp + 0x54]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
add eax, dword [edi + 0x26c8]
mov edi, dword [esp + 0x50]
cmp edi, eax
jl 0x58cf6e
add ebp, 0x18
inc ecx
cmp ecx, 8
jl 0x58c7df
mov eax, ecx
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x58]
cmp eax, 8
jl 0x58c899
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
lea edx, [edx + 0xc0]
mov dword [eax + 0x30], 8
inc ecx
mov al, byte [esi + 0x20]
test al, al
je 0x58c8bd
mov ebp, edx
movsx eax, byte [edx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
test eax, eax
jne 0x58c7ac
mov ebp, dword [esp + 0x60]
jmp 0x58c8d3
mov ebp, dword [esp + 0x60]
movsx eax, byte [edx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x58c8d3
mov ebp, dword [esp + 0x60]
test eax, eax
jne 0x58d07b
xor esi, esi
movzx eax, byte [ebp + 0x2618]
test eax, eax
jle 0x58caf4
fldz
mov dword [esp + 0x60], ebp
fstp qword [esp + 0x70]
mov edx, dword [esp + 0x60]
mov ebp, dword [edx + esi*4 + 0x98]
test ebp, ebp
je 0x58cae7
cmp byte [ebp + 4], 5
jne 0x58cad4
mov eax, dword [esp + 0x7c]
movsx eax, word [eax + 0x12]
movzx edx, byte [edx + 0x26a0]
test eax, eax
jge 0x58c92a
mov eax, edx
mov edx, eax
movzx eax, al
sub eax, edx
mov dword [ebp + 0xac], eax
fld qword [0xa20e58]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fst qword [esp + 0x68]
fmul dword [ebp + 0x18]
fxch st(1)
fstp qword [esp]
fmul qword [0xa20e50]
fstp qword [esp + 8]
call fcn.0088b9f8
fstp qword [esp + 0x40]
mov al, byte [ebp + 0xb4]
cmp al, 1
jne 0x58c976
fld dword [ebp + 0xb0]
fstp qword [esp + 0x70]
test al, al
jne 0x58c9ad
fld qword [esp + 0x68]
fstp dword [esp + 0xc8]
mov edx, dword [esp + 0xc8]
mov eax, edx
and eax, 0x80000000
xor edx, eax
mov dword [esp + 0xc8], edx
fld dword [ebp + 0xb0]
fmul dword [esp + 0xc8]
fstp qword [esp + 0x70]
fld qword [esp + 0x70]
fmul qword [0xa20e40]
fmul dword [ebp + 0x14]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58c9fd
mov edi, dword [esp + 0x64]
mov edx, edi
neg ecx
shld edx, eax, 0xb
or edx, 0x80000000
add ecx, 0x41e
shr edx, cl
test edi, edi
jge 0x58c9ff
neg edx
jmp 0x58c9ff
xor edx, edx
mov dword [ebp + 0xb8], edx
test edx, edx
jle 0x58cfb9
fld qword [esp + 0x40]
fstp qword [esp]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fdivr qword [0xa20e38]
fstp qword [esp + 8]
call fcn.0088b9f8
mov edx, dword [ebp + 0xb8]
fstp dword [ebp + 0xa4]
fld qword [esp + 0x40]
fstp dword [ebp + 0x94]
test edx, edx
jle 0x58cfa4
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fdivr qword [0xa20e30]
fstp dword [ebp + 0xa8]
fld dword [0xa20e9c]
mov eax, dword [ebp + 0xac]
test eax, eax
jl 0x58cf93
fld dword [ebp + 0x18]
fchs
fst dword [ebp + 0xa0]
fcom qword [0xa20e28]
fnstsw ax
sahf
jae 0x58caa6
mov al, byte [ebp + 0xd]
test al, al
je 0x58ca9c
fstp st(0)
mov dword [ebp + 0x9c], 0xbf800000
jmp 0x58cac3
fchs
fstp dword [ebp + 0x9c]
jmp 0x58cac3
mov al, byte [ebp + 0xd]
test al, al
je 0x58cabb
fsubr dword [0xa20e98]
fstp dword [ebp + 0x9c]
jmp 0x58cac3
fstp st(0)
fst dword [ebp + 0x9c]
fstp dword [ebp + 0x98]
mov eax, dword [esp + 0x60]
mov ebp, dword [eax + esi*4 + 0x98]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x14]
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + 0x2618]
inc esi
cmp esi, eax
jl 0x58c8f6
mov ebp, dword [esp + 0x60]
xor esi, esi
test eax, eax
jle 0x58cb24
mov ecx, dword [ebp + esi*4 + 0x98]
test ecx, ecx
je 0x58cb1f
mov edx, dword [ecx + 0x88]
test edx, edx
je 0x58cb1f
movzx edi, word [ecx + 0x8c]
cmp edi, 1
je 0x58d04e
inc esi
cmp esi, eax
jl 0x58cafa
mov edx, dword [ebp + 0x26b8]
cmp ebp, dword [edx + 0x6f4]
jne 0x58cb63
xor esi, esi
test eax, eax
jle 0x58cb63
mov ecx, dword [ebp + esi*4 + 0x98]
test ecx, ecx
je 0x58cb5e
mov eax, dword [ecx]
movzx edx, byte [ebp + esi + 0x2619]
push edx
push dword [ebp + 0x26b8]
call dword [eax + 4]
movzx eax, byte [ebp + 0x2618]
inc esi
cmp esi, eax
jl 0x58cb38
mov ecx, dword [ebp + 0x2680]
test ecx, ecx
je 0x58cb72
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov esi, dword [ebp + 0x267c]
test esi, esi
je 0x58cd8b
mov eax, dword [esi + 4]
cmp eax, 0x20
je 0x58cb91
cmp eax, 0x21
jne 0x58cc56
mov edx, dword [esp + 0x7c]
mov al, byte [edx + 0x30]
test al, al
jne 0x58cba4
fld dword [0xa20e98]
jmp 0x58cbce
movzx eax, byte [ebp + 0x26a0]
add eax, 0xffffffbb
fld qword [0xa20e58]
fstp qword [esp]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0xa20e50]
fstp qword [esp + 8]
call fcn.0088b9f8
fmul qword [0xa20e20]
mov edi, dword [esi]
mov edx, dword [edi + 0x14]
mov dword [esp + 0x28], edx
fmul dword [ebp + 0x4c]
fmul dword [ebp + 0x80]
fdivr dword [0xa20e98]
mov eax, dword [esp + 0x78]
fmul dword [eax + 0x16974]
fstp qword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58cc3d
mov edx, eax
neg ecx
add ecx, 0x41e
shld edx, edi, 0xb
or edx, 0x80000000
shr edx, cl
test eax, eax
mov dword [esp + 0x58], edx
jge 0x58cc43
mov eax, edx
neg eax
mov dword [esp + 0x58], eax
jmp 0x58cc43
xor eax, eax
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x58]
mov ecx, esi
push edx
mov eax, dword [esp + 0x2c]
call eax
mov esi, dword [ebp + 0x267c]
mov edx, dword [ebp + 0x34]
mov edi, dword [esp + 0x7c]
mov al, byte [edi + 0xa650]
test al, al
je 0x58cd6f
xor eax, eax
mov edi, dword [esp + 0x78]
mov edi, dword [edi + 0x1040]
test edi, edi
jle 0x58cca3
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], ebp
mov ebp, dword [ebx + 8]
cmp eax, ebp
jne 0x58cfd2
inc eax
cmp eax, edi
jl 0x58cc8a
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
cmp eax, edi
jge 0x58cd6f
mov edi, dword [esp + 0x78]
mov eax, dword [edi + eax*4 + 0x820]
mov edi, dword [esi + 4]
cmp edi, 0x23
je 0x58cd6f
cmp edi, 0x24
jne 0x58cd17
mov eax, dword [eax + 0x267c]
fld qword [eax + 0x18]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58cd13
mov edi, dword [esp + 0x50]
mov edx, edi
neg ecx
shld edx, eax, 0xb
or edx, 0x80000000
add ecx, 0x41e
shr edx, cl
test edi, edi
jge 0x58cd6f
neg edx
jmp 0x58cd6f
xor edx, edx
jmp 0x58cd6f
cmp edi, 0x20
jb 0x58cd6f
cmp edi, 0x22
ja 0x58cd6f
mov eax, dword [eax + 0x267c]
fld qword [eax + 0x20]
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58cd6d
mov edi, dword [esp + 0x58]
mov edx, edi
neg ecx
shld edx, eax, 0xb
or edx, 0x80000000
add ecx, 0x41e
shr edx, cl
test edi, edi
jge 0x58cd6f
neg edx
jmp 0x58cd6f
xor edx, edx
mov eax, dword [esi]
add esp, 0xfffffff8
mov ecx, esi
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp qword [esp]
call dword [eax + 0xc]
mov dword [ebp + 0x34], 0
mov eax, dword [esp + 0x20]
mov edi, dword [eax]
mov esi, dword [esp + 0x24]
mov dword [ebp + 0x64], edi
mov eax, dword [esi]
mov ecx, dword [esp + 0x7c]
mov dword [ebp + 0x68], eax
xor al, al
mov dl, byte [ecx + 0x32]
test dl, dl
je 0x58cf3e
mov al, 1
xor esi, esi
movzx edx, byte [ebp + 0x2618]
test edx, edx
jle 0x58cf3e
lea edi, [esi + esi]
add edi, edi
lea ecx, [edi + edi]
add ecx, ecx
add ecx, ecx
sub ecx, edi
lea edi, [ecx + ecx]
add edi, edi
add edi, edi
sub edi, ecx
mov byte [esp + 0x5c], al
mov dword [esp + 0x60], ebp
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + esi*4 + 0x98]
test ecx, ecx
je 0x58cf27
cmp byte [ecx + 4], 1
jne 0x58cf27
mov eax, dword [ecx]
push 1
call dword [eax + 0x60]
mov eax, dword [esp + 0x60]
lea ecx, [eax + edi]
xor edx, edx
mov dword [esp + 0x54], ecx
mov eax, dword [ecx + 0x218]
test eax, eax
mov dword [esp + 0x4c], edx
jle 0x58cf0c
cmp eax, 6
jl 0x58cecd
lea edx, [eax - 6]
mov ecx, dword [esp + 0x4c]
lea ebp, [ecx + ecx]
mov dword [esp + 0x58], edx
add ebp, ebp
lea edx, [ebp + ebp]
add edx, ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
movzx esi, word [eax + ebp + 0x158]
cmp esi, 1
je 0x58d044
movzx esi, word [eax + ebp + 0x164]
cmp esi, 1
je 0x58d47d
movzx esi, word [eax + ebp + 0x170]
cmp esi, 1
je 0x58d470
movzx esi, word [eax + ebp + 0x17c]
cmp esi, 1
je 0x58d463
movzx esi, word [eax + ebp + 0x188]
cmp esi, 1
je 0x58d456
add eax, 0x3c
add ecx, 5
cmp ecx, edx
jle 0x58ce5e
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x4c]
lea ecx, [edx + edx]
add ecx, ecx
lea ebp, [ecx + ecx]
add ebp, ecx
mov dword [esp + 0x58], ebp
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
movzx esi, word [ebp + ecx + 0x158]
cmp esi, 1
je 0x58d031
add ebp, 0xc
inc edx
cmp edx, eax
jl 0x58ceeb
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
xor al, al
mov byte [esp + 0x64], al
mov edx, dword [esp + 0x60]
movzx edx, byte [edx + 0x2618]
test al, al
je 0x58cf27
xor al, al
mov byte [esp + 0x5c], al
add edi, 0xc4
inc esi
cmp esi, edx
jl 0x58cde0
mov al, byte [esp + 0x5c]
mov ebp, dword [esp + 0x60]
test al, al
je 0x58cf49
mov dword [ebp + 0x30], 8
mov eax, 1
add esp, 0xd4
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret 0xc
xor eax, eax
add esp, 0xd4
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret 0xc
mov eax, ecx
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x58]
jmp 0x58c87f
add edx, esi
mov eax, dword [esp + 0x50]
mov edi, dword [esi + eax*8]
mov dword [esp + 0x50], edi
jmp 0x58c84a
fld dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0xa0], eax
jmp 0x58ca7c
fld dword [0xa20e9c]
mov dword [ebp + 0xa8], 0
jmp 0x58ca63
mov dword [ebp + 0xa4], 0x3f800000
mov dword [ebp + 0x94], 0x3f800000
jmp 0x58ca41
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + eax*4 + 0x820]
mov dl, byte [ecx]
test dl, dl
je 0x58cc92
mov dl, byte [ecx + 9]
test dl, dl
je 0x58cc92
movsx edx, word [ecx + 0x26a8]
mov esi, dword [ebx + 0x10]
cmp edx, esi
jne 0x58cc92
mov edx, dword [ecx + 0x267c]
test edx, edx
je 0x58cc92
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x5c]
cmp edx, dword [ecx + 4]
jne 0x58cc92
mov edx, dword [esp + 0x64]
mov esi, ecx
mov ebp, dword [esp + 0x60]
jmp 0x58cca3
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov al, 1
mov byte [esp + 0x64], al
jmp 0x58cf12
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x58d039
mov edx, dword [edx + 0x84]
test edx, edx
jne 0x58cb1f
mov eax, dword [ecx]
mov edi, dword [esp + 0x78]
mov edx, dword [edi + 0x17030]
add edx, dword [ebp + 0x3c]
push edx
call dword [eax + 0x34]
movzx eax, byte [ebp + 0x2618]
jmp 0x58cb1f
mov eax, dword [edx + 8]
mov edi, dword [esp + 0x7c]
mov dword [ebp + 0x26bc], eax
mov al, byte [edi + 0x520]
mov byte [esp + 0x50], al
mov byte [ebp + 0x26dc], al
mov edi, dword [esi + 0x76c]
fild dword [esi + 0x76c]
fld qword [esp + 0x38]
fmul st(1)
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58d10d
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x28]
shld edx, eax, 0xb
or edx, 0x80000000
neg ecx
mov dword [esp + 0x64], esi
add ecx, 0x41e
shr edx, cl
mov eax, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x80]
jge 0x58d113
mov eax, dword [esp + 0x4c]
neg eax
mov dword [esp + 0x4c], eax
jmp 0x58d113
xor eax, eax
mov dword [esp + 0x4c], eax
fld qword [esp + 0x40]
fmulp st(1)
fstp qword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x58d181
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x58]
mov eax, edx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x28]
neg ecx
shld eax, esi, 0xb
or eax, 0x80000000
add ecx, 0x41e
mov esi, dword [esp + 0x64]
shr eax, cl
test edx, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x54], eax
jge 0x58d187
neg eax
mov dword [esp + 0x54], eax
jmp 0x58d187
xor eax, eax
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x50]
test al, al
jne 0x58d19b
lea eax, [edx + 4]
mov dword [esp + 0x28], eax
jmp 0x58d2d1
mov eax, dword [ebp + 0x38]
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x28], ecx
cmp eax, 1
je 0x58d389
mov eax, dword [edx]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
mov edx, ecx
lea edx, [edx + eax + 4]
neg edx
add edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
lea eax, [ecx + eax + 4]
add edx, dword [esp + 0x28]
sub edi, eax
dec edi
mov dword [esp + 0x50], eax
mov eax, edx
sar eax, 0x1f
xor eax, 0xffffffff
and edx, eax
mov eax, edx
sub eax, edi
sub edi, edx
sar edi, 0x1f
and eax, edi
sub edx, eax
add esi, 0x1ec
push 0
mov ecx, esi
push edx
call fcn.00622814
mov dword [esp + 0x54], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + edx*8 + 8]
mov eax, ecx
mov dword [esp + 0x58], ecx
mov esi, dword [esp + 0x50]
add esi, ecx
sub eax, dword [esp + 0x28]
mov ecx, esi
sar ecx, 0x1f
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0x76c]
mov dword [esp + 0x54], eax
dec edx
xor ecx, 0xffffffff
and esi, ecx
mov edi, esi
sub edi, edx
sub edx, esi
sar edx, 0x1f
and edi, edx
sub esi, edi
lea ecx, [eax + 0x1ec]
mov dword [esp + 0x28], ecx
push 1
push esi
call fcn.00622814
mov esi, eax
mov edi, dword [esp + 0x54]
mov edx, dword [edi + 0x1ec]
mov ecx, dword [esp + 0x28]
call dword [edx + 0xc]
mov eax, dword [eax + esi*8 + 8]
mov esi, dword [ebp + 0x2c]
sub eax, dword [esp + 0x58]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
add eax, 4
mov edx, dword [ebp + 0x30]
lea ecx, [edx + edx]
mov dword [esp + 0x5c], esi
add ecx, ecx
sub ecx, edx
lea edx, [ecx + ecx]
add edx, edx
add edx, edx
add edx, esi
lea edi, [esi + ecx*8 + 4]
mov ecx, dword [edi]
mov dword [esp + 0x28], edi
add ecx, 0xfffffffc
mov esi, ecx
sar esi, 0x1f
xor esi, 0xffffffff
and ecx, esi
add ecx, 4
sub eax, ecx
mov esi, dword [ebp + 0x28]
mov dword [esp + 0x54], eax
mov edi, dword [ebp + 0x38]
mov eax, dword [edx]
cmp edi, 1
je 0x58d2fa
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
add edx, 0xfffffffc
mov edi, edx
sar edi, 0x1f
xor edi, 0xffffffff
and edx, edi
lea eax, [eax + edx + 4]
neg eax
add eax, dword [esi + 0x76c]
mov edx, dword [esp + 0x4c]
add edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], edx
mov dword [ebp + 0x26c4], edx
mov eax, dword [eax]
add eax, 0xfffffffc
mov edi, eax
sar edi, 0x1f
xor edi, 0xffffffff
and eax, edi
mov edi, dword [esp + 0x54]
lea edi, [edi + eax + 4]
mov dword [ebp + 0x26c0], edi
mov eax, dword [esi + 0x76c]
cmp edx, eax
jl 0x58d34b
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [ebp + 0x26c4], 0
mov eax, dword [esi + 0x76c]
add edi, dword [esp + 0x4c]
cmp edi, eax
jle 0x58d35d
sub eax, dword [esp + 0x4c]
mov dword [ebp + 0x26c0], eax
xor al, al
mov esi, dword [esp + 0x5c]
mov byte [esi + 0xe], al
mov byte [esi + 0x26], al
mov byte [esi + 0x3e], al
mov byte [esi + 0x56], al
mov byte [esi + 0x6e], al
mov byte [esi + 0x86], al
mov byte [esi + 0x9e], al
mov byte [esi + 0xb6], al
jmp 0x58c8db
mov eax, dword [edx]
add eax, 0xfffffffc
mov edx, eax
sar edx, 0x1f
xor edx, 0xffffffff
and eax, edx
jmp 0x58d1cd
lea edx, [edi + edi]
add edx, edx
sub edx, edi
add edx, edx
add edx, edx
add edx, edx
add edx, dword [esp + 0x5c]
movsx eax, byte [edx + 0xd]
neg eax
add eax, 2
shr eax, 0x1f
jmp 0x58c8d3
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x60]
jmp 0x58c74f
mov edi, dword [esi + eax*8]
jmp 0x58c728
fstp st(0)
fstp st(0)
mov ecx, esi
call fcn.0057926c
movzx eax, al
test eax, eax
jne 0x58d410
fld dword [ebp + 0x78]
lea edi, [ebp + 0x54]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], edi
fmul dword [edx + 0x18]
mov eax, dword [esp + 0x5c]
fmul dword [eax + 0x2a4]
fmul dword [esi + 0x905c]
fst dword [ebp + 0x54]
jmp 0x58d436
mov eax, dword [esi + 0x905c]
mov ecx, esi
push eax
push eax
call fcn.00579308
fld dword [ebp + 0x78]
lea edx, [ebp + 0x54]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
fmul dword [eax + 0x2a4]
fst dword [ebp + 0x54]
lea eax, [ebp + 0x58]
mov dword [esp + 0x24], eax
fstp dword [ebp + 0x58]
jmp 0x58c3fe
mov eax, 0xffffffff
mov word [ebp + 0x26a6], ax
jmp 0x58afea
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x58d039
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x58d039
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x58d039
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x58d039
fstp st(0)
jmp 0x58cf5d