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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0xc4
fld qword [ebp + 0x38]
mov eax, dword [ebp + 8]
test eax, eax
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x68]
je 0x65a3e3
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x65a3e3
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x65a3cf
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x65a3cf
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jl 0x65a3cf
mov eax, dword [ebp + 0x1c]
test eax, eax
jl 0x65a3cf
mov eax, dword [ebp + 0x20]
test eax, eax
jle 0x65a3cf
mov eax, dword [ebp + 0x24]
test eax, eax
jle 0x65a3cf
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jle 0x659ab3
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x1c]
cmp eax, edi
jle 0x659ab3
mov eax, dword [ebp + 0x30]
test eax, eax
jle 0x65a3cf
mov eax, dword [ebp + 0x34]
test eax, eax
jle 0x65a3cf
fldz
fcom st(1)
fnstsw ax
sahf
jae 0x659a9d
fld qword [ebp + 0x40]
fcomp st(1)
fnstsw ax
sahf
jp 0x65816f
jbe 0x659a9d
cmp ebx, 1
je 0x658199
cmp ebx, 2
je 0x658199
cmp ebx, 4
je 0x658199
cmp ebx, 0x10
je 0x658199
fstp st(0)
fstp st(0)
mov eax, 0xffffffea
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp eax, 8
jl 0x6581a9
mov eax, dword [ebp + 0x10]
cmp eax, 8
jge 0x6581e2
mov eax, dword [ebp + 0xc]
cmp ebx, 0x10
jne 0x6581b6
mov ebx, 4
cmp eax, 4
jl 0x6581c3
mov eax, dword [ebp + 0x10]
cmp eax, 4
jge 0x6581e2
mov eax, dword [ebp + 0xc]
cmp ebx, 4
jne 0x6581d0
mov ebx, 2
cmp eax, 2
jl 0x6581dd
mov eax, dword [ebp + 0x10]
cmp eax, 2
jge 0x6581e2
mov ebx, 1
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc0], esi
mov esi, dword [ebp + 0x20]
mov dword [esp + 0xb4], ebx
lea ebx, [ecx + esi]
mov edi, eax
sub edi, ecx
cmp eax, ebx
jl 0x658203
mov edi, esi
mov esi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xb8], edi
lea ebx, [ecx + esi]
mov edi, eax
sub edi, ecx
mov ecx, dword [ebp + 0x18]
cmp eax, ebx
mov eax, dword [ebp + 0x6c]
mov ebx, dword [esp + 0xb4]
jl 0x65822d
mov edi, esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xbc], edi
test eax, eax
je 0x65838f
fld qword [0xb49dd0]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
fst qword [esp + 0x68]
mov dword [esp + 0x60], edi
fild dword [esp + 0x60]
fmul st(3)
fadd st(1), st(0)
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fmul qword [ebp + 0x40]
fld st(2)
call fcn.0069e080
mov edi, dword [ebp + 0x30]
mov dword [esp + 0x90], eax
cmp edi, eax
jle 0x6582c8
test eax, eax
jg 0x65a3f7
fld qword [0xb49dd8]
fcomp st(3)
fnstsw ax
fxch st(2)
fstp st(0)
sahf
ja 0x6582ae
mov eax, 1
mov dword [esp + 0x90], eax
jmp 0x6582d4
fstp st(3)
fstp st(1)
fstp st(1)
fstp st(0)
mov eax, 0xffffff37
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(2)
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x90], eax
fld qword [esp + 0x68]
fadd st(2)
fld st(0)
call fcn.0069e080
mov edi, dword [ebp + 0x34]
cmp edi, eax
mov dword [esp + 0xa4], eax
jle 0x658312
test eax, eax
jg 0x65a3fe
fld qword [0xb49dd8]
fcompp
fnstsw ax
sahf
ja 0x6582ae
mov eax, 1
mov dword [esp + 0xa4], eax
jmp 0x65831e
fstp st(0)
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
cmp ebx, 1
je 0x659ac7
fstp st(3)
fld1
fcom st(3)
fnstsw ax
sahf
jae 0x65834e
jp 0x65834e
fsub st(3), st(0)
mov eax, dword [esp + 0xb8]
add eax, 0xffffffff
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(4)
fxch st(3)
jmp 0x658352
fstp st(3)
fld st(1)
fxch st(1)
fcom st(3)
fnstsw ax
sahf
jbe 0x65837f
fsubrp st(3)
mov eax, dword [esp + 0xbc]
add eax, 0xffffffff
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdivrp st(3)
fxch st(2)
fstp qword [esp + 0x80]
jmp 0x658459
fstp st(3)
fstp st(2)
fst qword [esp + 0x80]
jmp 0x658459
cmp ebx, 1
je 0x65a3ae
mov eax, dword [esp + 0xb8]
add eax, 0xffffffff
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdiv st(2)
add edi, 0xffffffff
mov dword [esp + 0x60], edi
fild dword [esp + 0x60]
fdiv qword [ebp + 0x40]
fld qword [0xb49dd0]
fst qword [esp + 0x68]
faddp st(2)
fxch st(1)
call fcn.0069e080
mov edi, dword [ebp + 0x30]
lea edi, [edi - 1]
mov dword [esp + 0x90], eax
cmp eax, edi
jge 0x6583fd
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x6583ea
mov edi, eax
cmp edi, 1
jg 0x6583f4
mov edi, 1
mov dword [esp + 0x90], edi
jmp 0x658407
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x90], eax
fadd qword [esp + 0x68]
call fcn.0069e080
mov edi, dword [ebp + 0x34]
lea edi, [edi - 1]
mov dword [esp + 0xa4], eax
cmp eax, edi
jge 0x658440
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x65842d
mov edi, eax
cmp edi, 1
jg 0x658437
mov edi, 1
mov dword [esp + 0xa4], edi
jmp 0x65844a
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
fld qword [ebp + 0x40]
fstp qword [esp + 0x80]
cmp ebx, 1
je 0x65845f
fst qword [esp + 0x78]
jmp 0x658476
fstp st(0)
fld st(0)
fld qword [0xb49dd8]
fmul st(1), st(0)
fmul qword [esp + 0x80]
fstp qword [esp + 0x78]
mov eax, dword [ebp + 0x64]
test eax, eax
jne 0x6584c2
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x65848c
mov edi, 2
jmp 0x65849e
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov edi, 4
je 0x65849e
mov edi, 1
mov eax, dword [ebp + 0x1c]
imul eax, edx
add eax, dword [ebp + 8]
imul ecx, dword [ebp + 0x58]
imul ecx, edi
xor edi, edi
add eax, ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edi
jmp 0x6584fe
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x6584d1
mov eax, 2
jmp 0x6584e3
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov eax, 4
je 0x6584e3
mov eax, 1
imul eax, ecx
mov edi, dword [ebp + 0x1c]
imul edi, edx
add edi, eax
mov dword [esp + 0xa0], edi
xor eax, eax
mov dword [esp + 0x9c], eax
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x65850c
sar edx, 1
sar esi, 1
jmp 0x65851a
mov eax, dword [ebp + 0x60]
cmp eax, 2
jne 0x65851a
sar edx, 2
sar esi, 2
mov eax, dword [esp + 0xa4]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xa8], eax
test eax, eax
jne 0x658598
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0xac], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
xor esi, esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x659a1b
mov eax, dword [esp + 0x90]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x98], eax
test eax, eax
je 0x65a36c
cmp ebx, 1
je 0x658e35
cmp ebx, 2
jne 0x658873
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x659b2b
mov eax, dword [esp + 0xa4]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c748c
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xac], eax
test eax, eax
jne 0x65866d
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0xb8], edi
xor esi, esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x6599fd
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax]
push ecx
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c748c
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
test eax, eax
je 0x659af7
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x65876c
fld qword [esp + 0x78]
fld qword [esp + 0x68]
mov eax, dword [ebp + 0x1c]
fld qword [esp + 0x80]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xc0], esi
xor ecx, ecx
neg eax
add eax, dword [ebp + 0x10]
add eax, 0xffffffff
mov dword [esp + 0x70], eax
fld st(1)
fadd st(3)
call fcn.0069e080
mov esi, eax
mov eax, dword [esp + 0x70]
cmp esi, eax
jne 0x658727
add esi, 0xffffffff
mov eax, 0x4000
mov word [ebx + ecx*2], ax
jmp 0x658742
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
fsubr st(3)
fmul qword [0xb49de0]
fadd st(2)
call fcn.0069e080
mov word [ebx + ecx*2], ax
imul esi, edx
mov eax, dword [esp + 0xa4]
fadd st(2), st(0)
mov dword [edi + ecx*4], esi
add ecx, 1
cmp ecx, eax
jl 0x658706
fstp st(0)
fstp st(1)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x659ae0
fld qword [esp + 0x68]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0xb4], ebx
xor edi, edi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x94]
neg ecx
add ecx, dword [ebp + 0xc]
add ecx, 0xffffffff
fld st(0)
fadd st(2)
call fcn.0069e080
mov ebx, eax
cmp ebx, ecx
jne 0x6587d4
add ebx, 0xffffffff
mov eax, edi
shl eax, 2
xor esi, esi
mov word [edx + eax], si
mov esi, 0x4000
mov word [edx + edi*4 + 2], si
jmp 0x658804
mov dword [esp + 0x60], ebx
fild dword [esp + 0x60]
fsubr st(2)
fmul qword [0xb49de0]
fadd st(1)
call fcn.0069e080
movzx esi, ax
mov eax, edi
mov word [edx + edi*4 + 2], si
shl eax, 2
neg esi
add esi, 0x4000
mov word [edx + eax], si
mov esi, dword [ebp + 0x64]
test esi, esi
jne 0x658823
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x658823
imul ebx, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [eax + esi], ebx
jmp 0x65882d
mov esi, dword [esp + 0x98]
mov dword [eax + esi], ebx
fxch st(1)
fadd st(2)
mov eax, dword [esp + 0x90]
add edi, 1
cmp edi, eax
fxch st(1)
jl 0x6587ab
fstp st(0)
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
jmp 0x658f17
cmp ebx, 4
jne 0x658b22
mov eax, dword [esp + 0xa4]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xac], eax
test eax, eax
jne 0x6588f3
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0xb8], edi
xor esi, esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x6599fd
mov eax, dword [esp + 0x90]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
test eax, eax
je 0x659af7
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x658a1a
fld qword [esp + 0x78]
fld qword [esp + 0x68]
mov edi, dword [ebp + 0x1c]
fld qword [esp + 0x80]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xb4], ebx
xor ecx, ecx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb0], edx
lea eax, [eax - 1]
mov dword [esp + 0x70], eax
fld st(1)
fadd st(3)
call fcn.0069e080
mov ebx, dword [esp + 0x70]
lea edx, [edi + eax]
cmp edx, ebx
jne 0x6589ac
mov ebx, dword [esp + 0xac]
add eax, 0xfffffffe
mov edx, ecx
shl edx, 2
mov dword [ebx + edx], 0x40000000
jmp 0x6589dd
test edx, edx
jne 0x6589b5
add eax, 1
jmp 0x6589c4
mov ebx, dword [ebp + 0x10]
lea esi, [ebx - 2]
lea ebx, [eax - 1]
cmp edx, esi
jne 0x6589c4
mov eax, ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fsubr st(3)
mov edx, ecx
shl edx, 2
fstp dword [ebx + edx]
imul eax, dword [esp + 0xb0]
fadd st(2), st(0)
mov ebx, dword [esp + 0xa8]
mov dword [edx + ebx], eax
add ecx, 1
mov eax, dword [esp + 0xa4]
cmp ecx, eax
jl 0x658980
fstp st(0)
fstp st(1)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x659ae0
fld qword [esp + 0x68]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
xor edi, edi
lea ecx, [ecx - 1]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb0], edx
mov edx, eax
fld st(0)
fadd st(2)
call fcn.0069e080
lea ebx, [edx + eax]
cmp ebx, ecx
jne 0x658a7a
mov esi, dword [esp + 0x94]
add eax, 0xfffffffe
mov ebx, edi
shl ebx, 2
mov dword [esi + ebx], 0x40000000
jmp 0x658ab3
test ebx, ebx
jne 0x658a83
add eax, 1
jmp 0x658a9a
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0xc]
lea esi, [ecx - 2]
lea ecx, [eax - 1]
cmp ebx, esi
jne 0x658a96
mov eax, ecx
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fsubr st(2)
mov ebx, edi
shl ebx, 2
fstp dword [esi + ebx]
mov esi, dword [ebp + 0x64]
test esi, esi
jne 0x658ad2
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x658ad2
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [ebx + esi], eax
jmp 0x658adc
mov esi, dword [esp + 0x98]
mov dword [ebx + esi], eax
fxch st(1)
fadd st(2)
mov ebx, dword [esp + 0x90]
add edi, 1
cmp edi, ebx
fxch st(1)
jl 0x658a52
fstp st(0)
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
jmp 0x658f17
mov eax, dword [esp + 0xa4]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xac], eax
test eax, eax
jne 0x658b99
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0xb8], edi
xor esi, esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x6599fd
mov eax, dword [esp + 0x90]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
test eax, eax
je 0x659af7
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x658c57
fld qword [esp + 0x78]
fld qword [esp + 0x68]
mov edi, eax
fld qword [esp + 0x80]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xc0], esi
mov esi, dword [esp + 0xa8]
xor ecx, ecx
fld st(1)
fadd st(3)
call fcn.0069e080
mov dword [esp + 0x60], eax
imul eax, edx
fild dword [esp + 0x60]
fsubr st(3)
fstp dword [ebx + ecx*4]
fadd st(2), st(0)
mov dword [esi + ecx*4], eax
add ecx, 1
cmp ecx, edi
jl 0x658c1e
fstp st(0)
fstp st(1)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x65a405
fld qword [esp + 0x68]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0xc0], esi
mov esi, eax
mov dword [esp + 0xb0], edx
xor ecx, ecx
mov edx, dword [esp + 0x94]
fld st(0)
fadd st(2)
call fcn.0069e080
mov edi, dword [ebp + 0x64]
test edi, edi
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fsubr st(2)
fstp dword [edx + ecx*4]
jne 0x658cc4
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x658cc4
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [ebx + ecx*4], eax
jmp 0x658cc7
mov dword [ebx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x658c94
fstp st(0)
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2]
add ecx, ecx
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x60], eax
test eax, eax
jne 0x658d43
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], edi
xor esi, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], edi
mov esi, 0xfffffff7
jmp 0x6599f2
mov eax, dword [esp + 0xa4]
lea ecx, [eax + eax*2]
add ecx, ecx
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x64], eax
test eax, eax
jne 0x658d95
xor eax, eax
mov dword [esp + 0x6c], eax
xor esi, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
xor edi, edi
mov dword [esp + 0x68], edi
mov esi, 0xfffffff7
jmp 0x6599f2
push 0xb51cc0
mov eax, dword [esp + 0x64]
push eax
mov ecx, dword [esp + 0x98]
push ecx
mov edi, dword [esp + 0xa0]
push edi
mov dword [esp + 0xc0], edx
call fcn.006b4a00
mov edx, dword [esp + 0xc0]
push 0xb51cc0
mov eax, dword [esp + 0x78]
push eax
mov ecx, dword [esp + 0xbc]
push ecx
mov edi, dword [esp + 0xc8]
push edi
mov dword [esp + 0xd0], edx
call fcn.006b4a00
mov edx, dword [esp + 0xd0]
add esp, 0x20
mov eax, dword [ebp + 0x6c]
test eax, eax
je 0x658e17
fld1
fld qword [ebp + 0x40]
fcompp
fnstsw ax
xor ecx, ecx
sahf
mov dword [esp + 0x70], ecx
mov eax, ecx
setae al
mov dword [esp + 0x70], eax
jmp 0x658f17
fld1
fld qword [ebp + 0x40]
fcompp
fnstsw ax
xor ecx, ecx
sahf
mov dword [esp + 0x70], ecx
mov eax, ecx
setb al
mov dword [esp + 0x70], eax
jmp 0x658f17
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x658e85
fld qword [esp + 0x78]
fld qword [esp + 0x68]
mov edi, dword [esp + 0xa8]
fld qword [esp + 0x80]
lea ecx, [edi + eax*4]
fld st(1)
fadd st(3)
fxch st(1)
fadd st(3), st(0)
fxch st(1)
call fcn.0069e080
imul eax, edx
mov dword [edi], eax
add edi, 4
cmp edi, ecx
jb 0x658e64
fstp st(0)
fstp st(1)
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x65a347
fld qword [esp + 0x68]
mov dword [esp + 0xc0], esi
mov esi, eax
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x98]
xor ecx, ecx
fld st(0)
fadd st(2)
call fcn.0069e080
mov edi, dword [ebp + 0x64]
test edi, edi
jne 0x658ed7
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x658ed7
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [edx + ecx*4], eax
jmp 0x658eda
mov dword [edx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x658eb4
fstp st(0)
fstp st(0)
fstp st(0)
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
cmp ebx, 2
jl 0x6591ae
cmp ebx, 0x10
je 0x658f2a
cmp ebx, 4
jne 0x658f7e
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x658f4d
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x658fd5
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x658f31
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659d4b
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x658fd5
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x658f2a
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x658fa6
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x658fd5
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x658f8d
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659f58
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x659f32
cmp ebx, 0x10
je 0x658ff2
cmp ebx, 4
jne 0x659046
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x659015
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x65909d
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x658ff9
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659d68
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x65909d
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x658ff2
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x65906e
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x65909d
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x659055
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659f15
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x74], eax
test eax, eax
je 0x659ef5
cmp ebx, 4
jl 0x659196
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6590d9
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x659108
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6590c0
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659ed8
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xb8], eax
test eax, eax
je 0x659ebf
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x65913e
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x65916d
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x659125
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659ea2
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xbc], eax
test eax, eax
je 0x659e90
cmp ebx, 0x10
je 0x659d85
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
jmp 0x6591cc
xor eax, eax
mov dword [esp + 0xb8], eax
xor edi, edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], edi
jmp 0x6591cc
xor eax, eax
mov dword [esp + 0x6c], eax
xor edi, edi
mov dword [esp + 0x74], eax
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x64]
test eax, eax
jne 0x6593ef
cmp ebx, 1
je 0x659f75
cmp ebx, 2
je 0x659375
cmp ebx, 4
jne 0x659282
mov ecx, dword [esp + 0x68]
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x5c]
lea eax, [eax + 3]
cmp ecx, 1
mov ecx, dword [ebp + 0x60]
je 0x65920d
mov eax, ecx
mov ecx, dword [ebp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x58]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
push esi
push edx
mov edx, dword [ebp + 0x28]
push edx
mov esi, dword [esp + 0xd8]
push esi
call dword [eax*4 + 0xb9a1b0]
add esp, 0x40
jmp 0x6599f0
cmp ebx, 0x10
jne 0x6599f0
mov ecx, dword [ebp + 0x60]
mov dword [esp + 0xb4], ebx
mov ebx, dword [ebp + 0x5c]
lea eax, [ecx + 3]
mov ecx, dword [ebp + 0x60]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x90]
cmp ebx, 1
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xc], esi
mov esi, dword [ebp + 0x1c]
je 0x6592be
mov eax, ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov ecx, dword [ebp + 0x28]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], edx
mov edx, dword [ebp + 0xc]
sub edx, ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x10]
sub edx, esi
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 0x58]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0x5c]
mov dword [esp + 0x58], edx
call dword [eax*4 + 0xb9a1e8]
jmp 0x6599f0
mov ecx, dword [esp + 0x68]
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x5c]
lea eax, [eax + 4]
cmp ecx, 1
mov ecx, dword [ebp + 0x60]
je 0x659390
mov eax, ecx
mov ecx, dword [ebp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x58]
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xb4]
push ecx
push esi
push edx
mov edx, dword [ebp + 0x28]
push edx
mov esi, dword [esp + 0xd0]
push esi
call dword [eax*4 + 0xb9a190]
add esp, 0x38
jmp 0x6599f0
cmp ebx, 1
je 0x65a254
cmp ebx, 2
je 0x659878
cmp ebx, 4
jne 0x6595b4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push edx
push dword [ecx]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xf0], edx
call dword [eax*4 + 0xb9a1bc]
mov edx, dword [esp + 0xf0]
add esp, 0x40
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 4]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push edx
push dword [ecx + 4]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xf0], edx
call dword [eax*4 + 0xb9a1bc]
mov edx, dword [esp + 0xf0]
add esp, 0x40
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 8]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push edx
push dword [ecx + 8]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xf0], edx
call dword [eax*4 + 0xb9a1bc]
mov edx, dword [esp + 0xf0]
add esp, 0x40
jmp 0x6599e4
cmp ebx, 0x10
jne 0x6599e4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xb0], edx
mov dword [esp + 8], edx
add ebx, dword [eax]
mov eax, dword [ecx]
mov ecx, dword [ebp + 0x1c]
mov dword [esp], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
neg eax
neg ecx
add eax, dword [ebp + 0xc]
add ecx, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x60]
call dword [eax*4 + 0xb9a1f4]
mov edx, dword [esp + 0xb0]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xb0], edx
mov dword [esp + 8], edx
add ebx, dword [eax + 4]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp + 0x1c]
mov dword [esp], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
neg eax
neg ecx
add eax, dword [ebp + 0xc]
add ecx, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x60]
call dword [eax*4 + 0xb9a1f4]
mov edx, dword [esp + 0xb0]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xb0], edx
mov dword [esp + 8], edx
add ebx, dword [eax + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp + 0x1c]
mov dword [esp], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
neg eax
neg ecx
add eax, dword [ebp + 0xc]
add ecx, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x60]
call dword [eax*4 + 0xb9a1f4]
mov edx, dword [esp + 0xb0]
jmp 0x6599e4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xb4]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push edx
push dword [ecx]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xe8], edx
call dword [eax*4 + 0xb9a1a0]
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xa0], ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 4]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0xf8]
push ecx
mov ecx, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0xfc]
push ecx
mov ecx, dword [esp + 0xec]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push edx
push dword [ecx + 4]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x120], edx
call dword [eax*4 + 0xb9a1a0]
mov edx, dword [esp + 0x120]
add esp, 0x70
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 8]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xb4]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push edx
push dword [ecx + 8]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xe8], edx
call dword [eax*4 + 0xb9a1a0]
mov edx, dword [esp + 0xe8]
add esp, 0x38
mov eax, dword [ebp + 0x5c]
cmp eax, 4
je 0x65a02a
xor esi, esi
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x659a0a
mov eax, dword [esp + 0xa8]
push eax
call fcn.006339b8
mov eax, dword [esp + 0x98]
test eax, eax
je 0x659a1b
push eax
call fcn.006339b8
cmp ebx, 2
jl 0x659a8e
mov eax, dword [esp + 0xac]
test eax, eax
je 0x659a31
push eax
call fcn.006339b8
mov eax, dword [esp + 0x94]
test eax, eax
je 0x659a42
push eax
call fcn.006339b8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x659a50
push eax
call fcn.006339b8
mov eax, dword [esp + 0x74]
test eax, eax
je 0x659a5e
push eax
call fcn.006339b8
cmp ebx, 4
jl 0x659a8e
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x659a74
push eax
call fcn.006339b8
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x659a85
push eax
call fcn.006339b8
cmp ebx, 0x10
je 0x659fed
mov eax, esi
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(1)
fstp st(0)
mov eax, 0xffffffe9
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(0)
mov eax, 0x1d
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(1)
fstp st(0)
fstp st(0)
fld1
fdivr st(1), st(0)
fdiv qword [ebp + 0x40]
fstp qword [esp + 0x80]
jmp 0x658461
fstp st(0)
fstp st(0)
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
jmp 0x658f17
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], edi
xor esi, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x6599fd
mov eax, dword [esp + 0xa4]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xac], eax
test eax, eax
jne 0x659ba2
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0xb8], edi
xor esi, esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x6599fd
mov eax, dword [esp + 0x90]
push eax
fstp qword [esp + 0x74]
fstp qword [esp + 0x8c]
mov dword [esp + 0xb4], edx
call fcn.006c7470
fld qword [esp + 0x88]
fld qword [esp + 0x70]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x94], eax
test eax, eax
je 0x659af7
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x659c82
fld qword [esp + 0x78]
fld qword [esp + 0x68]
mov edi, dword [ebp + 0x1c]
fld qword [esp + 0x80]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0xc0], esi
mov esi, dword [esp + 0xa8]
xor ecx, ecx
neg edi
add edi, dword [ebp + 0x10]
add edi, 0xffffffff
fld st(1)
fadd st(3)
call fcn.0069e080
cmp eax, edi
jne 0x659c4b
fld1
fstp dword [ebx + ecx*4]
add eax, 0xffffffff
jmp 0x659c58
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fsubr st(3)
fstp dword [ebx + ecx*4]
imul eax, edx
fadd st(2), st(0)
mov dword [esi + ecx*4], eax
mov eax, dword [esp + 0xa4]
add ecx, 1
cmp ecx, eax
jl 0x659c34
fstp st(2)
fstp st(1)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x659ae0
fld qword [esp + 0x68]
mov edi, dword [ebp + 0x18]
mov dword [esp + 0xb4], ebx
mov ebx, eax
mov dword [esp + 0xc0], esi
mov dword [esp + 0xb0], edx
xor ecx, ecx
mov edx, dword [esp + 0x94]
neg edi
add edi, dword [ebp + 0xc]
add edi, 0xffffffff
fld st(0)
fadd st(2)
call fcn.0069e080
cmp eax, edi
jne 0x659cda
fld1
fstp dword [edx + ecx*4]
add eax, 0xffffffff
jmp 0x659ce7
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fsubr st(2)
fstp dword [edx + ecx*4]
mov esi, dword [ebp + 0x64]
test esi, esi
jne 0x659d06
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x659d06
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [esi + ecx*4], eax
jmp 0x659d10
mov esi, dword [esp + 0x98]
mov dword [esi + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, ebx
fxch st(1)
jl 0x659cc3
fstp st(0)
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0xb0]
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
jmp 0x658f17
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x658fd5
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x65909d
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x659da5
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x659dd4
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x659d8c
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659e73
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x68], eax
test eax, eax
je 0x659e67
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x659e07
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x659e32
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x659dee
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x659e4d
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
mov edx, dword [esp + 0xb0]
mov edi, eax
test edi, edi
jne 0x6591cc
mov esi, 0xfffffff7
jmp 0x6599f2
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x659e32
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6599f2
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x659dd4
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6599f2
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x65916d
xor eax, eax
mov dword [esp + 0xbc], eax
xor edi, edi
mov esi, 0xfffffff7
mov dword [esp + 0x68], eax
jmp 0x6599f2
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x659108
xor eax, eax
mov dword [esp + 0xb8], eax
xor edi, edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], eax
mov esi, 0xfffffff7
jmp 0x6599f2
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x65909d
xor eax, eax
mov dword [esp + 0x74], eax
xor esi, esi
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], esi
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6599f2
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x658fd5
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x659f99
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
lea eax, [eax + 8]
cmp edx, 4
je 0x659f90
mov eax, ecx
mov dword [esp + 0xb0], eax
jmp 0x659fa6
mov eax, dword [ebp + 0x60]
lea edx, [eax + 4]
mov dword [esp + 0xb0], edx
mov eax, dword [ebp + 0x58]
push eax
mov edx, dword [esp + 0x9c]
push edx
mov ecx, dword [esp + 0xb0]
push ecx
mov eax, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xa0]
push eax
push esi
mov esi, dword [ebp + 0x28]
push esi
mov eax, dword [esp + 0xb8]
push eax
mov eax, dword [esp + 0xd0]
call dword [eax*4 + 0xb9a160]
add esp, 0x20
jmp 0x6599f0
mov eax, dword [esp + 0x64]
test eax, eax
je 0x659ffb
push eax
call fcn.006339b8
mov eax, dword [esp + 0x60]
test eax, eax
je 0x65a009
push eax
call fcn.006339b8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x65a017
push eax
call fcn.006339b8
test edi, edi
je 0x659a8e
push edi
call fcn.006339b8
jmp 0x659a8e
cmp ebx, 1
je 0x65a20b
cmp ebx, 2
je 0x65a1a5
cmp ebx, 4
jne 0x65a0bd
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0xa0]
add eax, dword [ecx + 0xc]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
push esi
mov esi, dword [ebp + 0x60]
push edx
mov edx, dword [ebp + 0x28]
push dword [edx + 0xc]
push eax
call dword [esi*4 + 0xb9a1bc]
add esp, 0x40
jmp 0x6599f0
cmp ebx, 0x10
jne 0x6599f0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0xa0]
add ecx, dword [eax + 0xc]
mov eax, dword [ebp + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], ebx
mov ebx, dword [ebp + 0x1c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x10]
sub eax, ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x60]
call dword [eax*4 + 0xb9a1f4]
jmp 0x6599f0
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0xa0]
add eax, dword [ecx + 0xc]
xor ecx, ecx
push ecx
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xc4]
push ecx
mov ecx, dword [esp + 0xb4]
push ecx
push esi
mov esi, dword [ebp + 0x60]
push edx
mov edx, dword [ebp + 0x28]
push dword [edx + 0xc]
push eax
call dword [esi*4 + 0xb9a1a0]
add esp, 0x38
jmp 0x6599f0
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0xa0]
add eax, dword [edx + 0xc]
push 0
mov ecx, dword [esp + 0x9c]
push ecx
mov edx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0xb0]
push edx
mov edx, dword [esp + 0xa0]
push edx
push esi
mov esi, dword [ebp + 0x28]
push dword [esi + 0xc]
push eax
mov eax, dword [ebp + 0x60]
call dword [eax*4 + 0xb9a170]
add esp, 0x20
jmp 0x6599f0
mov eax, dword [esp + 0xa0]
mov ecx, dword [ebp + 8]
push 0
add eax, dword [ecx]
mov ecx, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xa0]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push dword [ecx]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xd0], edx
call dword [eax*4 + 0xb9a170]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xc0]
mov ecx, dword [ebp + 8]
push 0
add eax, dword [ecx + 4]
mov ecx, dword [esp + 0xbc]
push ecx
mov ecx, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xd0]
push ecx
mov ecx, dword [esp + 0xc0]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push dword [ecx + 4]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0xf0], edx
call dword [eax*4 + 0xb9a170]
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe0]
mov ecx, dword [ebp + 8]
push 0
add eax, dword [ecx + 8]
mov ecx, dword [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0xe0]
push ecx
mov ecx, dword [ebp + 0x28]
push esi
push dword [ecx + 8]
push eax
mov eax, dword [ebp + 0x60]
mov dword [esp + 0x110], edx
call dword [eax*4 + 0xb9a170]
mov edx, dword [esp + 0x110]
add esp, 0x60
jmp 0x6599e4
fstp st(0)
fstp st(0)
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
jmp 0x658f17
fstp st(0)
fstp st(0)
xor edi, edi
mov dword [esp + 0xac], edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
xor esi, esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov esi, 0xfffffff7
jmp 0x6599fd
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
fdiv st(2)
mov dword [esp + 0x60], edi
fild dword [esp + 0x60]
fdiv qword [ebp + 0x40]
jmp 0x6583ba
fstp st(0)
mov eax, 0xfffffffa
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(0)
mov eax, 0xfffffff8
add esp, 0xc4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
fstp st(2)
jmp 0x6582d4
fstp st(0)
jmp 0x65831e
fstp st(0)
fstp st(0)
jmp 0x658cef