Function at 0x660c6c
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 0x662f9f
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x662f9f
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x662f8b
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x662f8b
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jl 0x662f8b
mov eax, dword [ebp + 0x1c]
test eax, eax
jl 0x662f8b
mov eax, dword [ebp + 0x20]
test eax, eax
jle 0x662f8b
mov eax, dword [ebp + 0x24]
test eax, eax
jle 0x662f8b
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jle 0x66266f
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x1c]
cmp eax, edi
jle 0x66266f
mov eax, dword [ebp + 0x30]
test eax, eax
jle 0x662f8b
mov eax, dword [ebp + 0x34]
test eax, eax
jle 0x662f8b
fldz
fcom st(1)
fnstsw ax
sahf
jae 0x662659
fld qword [ebp + 0x40]
fcomp st(1)
fnstsw ax
sahf
jp 0x660d2b
jbe 0x662659
cmp ebx, 1
je 0x660d55
cmp ebx, 2
je 0x660d55
cmp ebx, 4
je 0x660d55
cmp ebx, 0x10
je 0x660d55
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 0x660d65
mov eax, dword [ebp + 0x10]
cmp eax, 8
jge 0x660d9e
mov eax, dword [ebp + 0xc]
cmp ebx, 0x10
jne 0x660d72
mov ebx, 4
cmp eax, 4
jl 0x660d7f
mov eax, dword [ebp + 0x10]
cmp eax, 4
jge 0x660d9e
mov eax, dword [ebp + 0xc]
cmp ebx, 4
jne 0x660d8c
mov ebx, 2
cmp eax, 2
jl 0x660d99
mov eax, dword [ebp + 0x10]
cmp eax, 2
jge 0x660d9e
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 0x660dbf
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 0x660de9
mov edi, esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xbc], edi
test eax, eax
je 0x660f4b
fld qword [0xb49e60]
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 0x660e84
test eax, eax
jg 0x662fb3
fld qword [0xb49e68]
fcomp st(3)
fnstsw ax
fxch st(2)
fstp st(0)
sahf
ja 0x660e6a
mov eax, 1
mov dword [esp + 0x90], eax
jmp 0x660e90
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 0x660ece
test eax, eax
jg 0x662fba
fld qword [0xb49e68]
fcompp
fnstsw ax
sahf
ja 0x660e6a
mov eax, 1
mov dword [esp + 0xa4], eax
jmp 0x660eda
fstp st(0)
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
cmp ebx, 1
je 0x662683
fstp st(3)
fld1
fcom st(3)
fnstsw ax
sahf
jae 0x660f0a
jp 0x660f0a
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 0x660f0e
fstp st(3)
fld st(1)
fxch st(1)
fcom st(3)
fnstsw ax
sahf
jbe 0x660f3b
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 0x661015
fstp st(3)
fstp st(2)
fst qword [esp + 0x80]
jmp 0x661015
cmp ebx, 1
je 0x662f6a
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 [0xb49e60]
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 0x660fb9
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x660fa6
mov edi, eax
cmp edi, 1
jg 0x660fb0
mov edi, 1
mov dword [esp + 0x90], edi
jmp 0x660fc3
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 0x660ffc
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x660fe9
mov edi, eax
cmp edi, 1
jg 0x660ff3
mov edi, 1
mov dword [esp + 0xa4], edi
jmp 0x661006
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
fld qword [ebp + 0x40]
fstp qword [esp + 0x80]
cmp ebx, 1
je 0x66101b
fst qword [esp + 0x78]
jmp 0x661032
fstp st(0)
fld st(0)
fld qword [0xb49e68]
fmul st(1), st(0)
fmul qword [esp + 0x80]
fstp qword [esp + 0x78]
mov eax, dword [ebp + 0x64]
test eax, eax
jne 0x66107e
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x661048
mov edi, 2
jmp 0x66105a
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov edi, 4
je 0x66105a
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 0x6610ba
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x66108d
mov eax, 2
jmp 0x66109f
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov eax, 4
je 0x66109f
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 0x6610c8
sar edx, 1
sar esi, 1
jmp 0x6610d6
mov eax, dword [ebp + 0x60]
cmp eax, 2
jne 0x6610d6
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 0x661154
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 0x6625d7
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 0x662f28
cmp ebx, 1
je 0x6619f1
cmp ebx, 2
jne 0x66142f
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x6626e7
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 0x661229
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 0x6625b9
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 0x6626b3
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x661328
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 0x6612e3
add esi, 0xffffffff
mov eax, 0x4000
mov word [ebx + ecx*2], ax
jmp 0x6612fe
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
fsubr st(3)
fmul qword [0xb49e70]
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 0x6612c2
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 0x66269c
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 0x661390
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 0x6613c0
mov dword [esp + 0x60], ebx
fild dword [esp + 0x60]
fsubr st(2)
fmul qword [0xb49e70]
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 0x6613df
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x6613df
imul ebx, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [eax + esi], ebx
jmp 0x6613e9
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 0x661367
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 0x661ad3
cmp ebx, 4
jne 0x6616de
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 0x6614af
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 0x6625b9
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 0x6626b3
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x6615d6
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 0x661568
mov ebx, dword [esp + 0xac]
add eax, 0xfffffffe
mov edx, ecx
shl edx, 2
mov dword [ebx + edx], 0x40000000
jmp 0x661599
test edx, edx
jne 0x661571
add eax, 1
jmp 0x661580
mov ebx, dword [ebp + 0x10]
lea esi, [ebx - 2]
lea ebx, [eax - 1]
cmp edx, esi
jne 0x661580
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 0x66153c
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 0x66269c
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 0x661636
mov esi, dword [esp + 0x94]
add eax, 0xfffffffe
mov ebx, edi
shl ebx, 2
mov dword [esi + ebx], 0x40000000
jmp 0x66166f
test ebx, ebx
jne 0x66163f
add eax, 1
jmp 0x661656
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0xc]
lea esi, [ecx - 2]
lea ecx, [eax - 1]
cmp ebx, esi
jne 0x661652
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 0x66168e
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x66168e
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [ebx + esi], eax
jmp 0x661698
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 0x66160e
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 0x661ad3
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 0x661755
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 0x6625b9
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 0x6626b3
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x661813
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 0x6617da
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 0x662fc1
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 0x661880
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x661880
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [ebx + ecx*4], eax
jmp 0x661883
mov dword [ebx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x661850
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 0x6618ff
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 0x6625ae
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 0x661951
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 0x6625ae
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.006f7bb0
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.006f7bb0
mov edx, dword [esp + 0xd0]
add esp, 0x20
mov eax, dword [ebp + 0x6c]
test eax, eax
je 0x6619d3
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 0x661ad3
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 0x661ad3
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x661a41
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 0x661a20
fstp st(0)
fstp st(1)
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x662f03
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 0x661a93
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x661a93
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [edx + ecx*4], eax
jmp 0x661a96
mov dword [edx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x661a70
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 0x661d6a
cmp ebx, 0x10
je 0x661ae6
cmp ebx, 4
jne 0x661b3a
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x661b09
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661b91
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x661aed
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662907
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661b91
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x661ae6
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x661b62
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x661b91
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x661b49
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662b14
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 0x662aee
cmp ebx, 0x10
je 0x661bae
cmp ebx, 4
jne 0x661c02
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x661bd1
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661c59
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x661bb5
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662924
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661c59
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x661bae
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x661c2a
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x661c59
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x661c11
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662ad1
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 0x662ab1
cmp ebx, 4
jl 0x661d52
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x661c95
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661cc4
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x661c7c
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662a94
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 0x662a7b
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x661cfa
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661d29
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x661ce1
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662a5e
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 0x662a4c
cmp ebx, 0x10
je 0x662941
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
jmp 0x661d88
xor eax, eax
mov dword [esp + 0xb8], eax
xor edi, edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], edi
jmp 0x661d88
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 0x661fab
cmp ebx, 1
je 0x662b31
cmp ebx, 2
je 0x661f31
cmp ebx, 4
jne 0x661e3e
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 0x661dc9
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 + 0xb9a3f0]
add esp, 0x40
jmp 0x6625ac
cmp ebx, 0x10
jne 0x6625ac
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 0x661e7a
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 + 0xb9a428]
jmp 0x6625ac
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 0x661f4c
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 + 0xb9a3d0]
add esp, 0x38
jmp 0x6625ac
cmp ebx, 1
je 0x662e10
cmp ebx, 2
je 0x662434
cmp ebx, 4
jne 0x662170
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 + 0xb9a3fc]
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 + 0xb9a3fc]
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 + 0xb9a3fc]
mov edx, dword [esp + 0xf0]
add esp, 0x40
jmp 0x6625a0
cmp ebx, 0x10
jne 0x6625a0
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 + 0xb9a434]
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 + 0xb9a434]
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 + 0xb9a434]
mov edx, dword [esp + 0xb0]
jmp 0x6625a0
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 + 0xb9a3e0]
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 + 0xb9a3e0]
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 + 0xb9a3e0]
mov edx, dword [esp + 0xe8]
add esp, 0x38
mov eax, dword [ebp + 0x5c]
cmp eax, 4
je 0x662be6
xor esi, esi
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x6625c6
mov eax, dword [esp + 0xa8]
push eax
call fcn.006339b8
mov eax, dword [esp + 0x98]
test eax, eax
je 0x6625d7
push eax
call fcn.006339b8
cmp ebx, 2
jl 0x66264a
mov eax, dword [esp + 0xac]
test eax, eax
je 0x6625ed
push eax
call fcn.006339b8
mov eax, dword [esp + 0x94]
test eax, eax
je 0x6625fe
push eax
call fcn.006339b8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x66260c
push eax
call fcn.006339b8
mov eax, dword [esp + 0x74]
test eax, eax
je 0x66261a
push eax
call fcn.006339b8
cmp ebx, 4
jl 0x66264a
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x662630
push eax
call fcn.006339b8
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x662641
push eax
call fcn.006339b8
cmp ebx, 0x10
je 0x662ba9
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 0x66101d
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 0x661ad3
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 0x6625b9
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 0x66275e
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 0x6625b9
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 0x6626b3
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x66283e
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 0x662807
fld1
fstp dword [ebx + ecx*4]
add eax, 0xffffffff
jmp 0x662814
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 0x6627f0
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 0x66269c
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 0x662896
fld1
fstp dword [edx + ecx*4]
add eax, 0xffffffff
jmp 0x6628a3
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 0x6628c2
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x6628c2
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [esi + ecx*4], eax
jmp 0x6628cc
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 0x66287f
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 0x661ad3
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661b91
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661c59
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x662961
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x662990
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x662948
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662a2f
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 0x662a23
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6629c3
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6629ee
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6629aa
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x662a09
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 0x661d88
mov esi, 0xfffffff7
jmp 0x6625ae
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6629ee
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6625ae
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x662990
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6625ae
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661d29
xor eax, eax
mov dword [esp + 0xbc], eax
xor edi, edi
mov esi, 0xfffffff7
mov dword [esp + 0x68], eax
jmp 0x6625ae
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x661cc4
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 0x6625ae
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x661c59
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 0x6625ae
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x661b91
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x662b55
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
lea eax, [eax + 8]
cmp edx, 4
je 0x662b4c
mov eax, ecx
mov dword [esp + 0xb0], eax
jmp 0x662b62
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 + 0xb9a3a0]
add esp, 0x20
jmp 0x6625ac
mov eax, dword [esp + 0x64]
test eax, eax
je 0x662bb7
push eax
call fcn.006339b8
mov eax, dword [esp + 0x60]
test eax, eax
je 0x662bc5
push eax
call fcn.006339b8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x662bd3
push eax
call fcn.006339b8
test edi, edi
je 0x66264a
push edi
call fcn.006339b8
jmp 0x66264a
cmp ebx, 1
je 0x662dc7
cmp ebx, 2
je 0x662d61
cmp ebx, 4
jne 0x662c79
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 + 0xb9a3fc]
add esp, 0x40
jmp 0x6625ac
cmp ebx, 0x10
jne 0x6625ac
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 + 0xb9a434]
jmp 0x6625ac
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 + 0xb9a3e0]
add esp, 0x38
jmp 0x6625ac
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 + 0xb9a3b0]
add esp, 0x20
jmp 0x6625ac
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 + 0xb9a3b0]
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 + 0xb9a3b0]
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 + 0xb9a3b0]
mov edx, dword [esp + 0x110]
add esp, 0x60
jmp 0x6625a0
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 0x661ad3
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 0x6625b9
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 0x660f76
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 0x660e90
fstp st(0)
jmp 0x660eda
fstp st(0)
fstp st(0)
jmp 0x6618ab