Function at 0x666994
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 0x668cbd
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x668cbd
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x668ca9
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x668ca9
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jl 0x668ca9
mov eax, dword [ebp + 0x1c]
test eax, eax
jl 0x668ca9
mov eax, dword [ebp + 0x20]
test eax, eax
jle 0x668ca9
mov eax, dword [ebp + 0x24]
test eax, eax
jle 0x668ca9
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jle 0x66838d
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x1c]
cmp eax, edi
jle 0x66838d
mov eax, dword [ebp + 0x30]
test eax, eax
jle 0x668ca9
mov eax, dword [ebp + 0x34]
test eax, eax
jle 0x668ca9
fldz
fcom st(1)
fnstsw ax
sahf
jae 0x668377
fld qword [ebp + 0x40]
fcomp st(1)
fnstsw ax
sahf
jp 0x666a53
jbe 0x668377
cmp ebx, 1
je 0x666a7d
cmp ebx, 2
je 0x666a7d
cmp ebx, 4
je 0x666a7d
cmp ebx, 0x10
je 0x666a7d
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 0x666a8d
mov eax, dword [ebp + 0x10]
cmp eax, 8
jge 0x666ac6
mov eax, dword [ebp + 0xc]
cmp ebx, 0x10
jne 0x666a9a
mov ebx, 4
cmp eax, 4
jl 0x666aa7
mov eax, dword [ebp + 0x10]
cmp eax, 4
jge 0x666ac6
mov eax, dword [ebp + 0xc]
cmp ebx, 4
jne 0x666ab4
mov ebx, 2
cmp eax, 2
jl 0x666ac1
mov eax, dword [ebp + 0x10]
cmp eax, 2
jge 0x666ac6
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 0x666ae7
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 0x666b11
mov edi, esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xbc], edi
test eax, eax
je 0x666c73
fld qword [0xb49ec0]
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 0x666bac
test eax, eax
jg 0x668cd1
fld qword [0xb49ec8]
fcomp st(3)
fnstsw ax
fxch st(2)
fstp st(0)
sahf
ja 0x666b92
mov eax, 1
mov dword [esp + 0x90], eax
jmp 0x666bb8
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 0x666bf6
test eax, eax
jg 0x668cd8
fld qword [0xb49ec8]
fcompp
fnstsw ax
sahf
ja 0x666b92
mov eax, 1
mov dword [esp + 0xa4], eax
jmp 0x666c02
fstp st(0)
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
cmp ebx, 1
je 0x6683a1
fstp st(3)
fld1
fcom st(3)
fnstsw ax
sahf
jae 0x666c32
jp 0x666c32
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 0x666c36
fstp st(3)
fld st(1)
fxch st(1)
fcom st(3)
fnstsw ax
sahf
jbe 0x666c63
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 0x666d3d
fstp st(3)
fstp st(2)
fst qword [esp + 0x80]
jmp 0x666d3d
cmp ebx, 1
je 0x668c88
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 [0xb49ec0]
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 0x666ce1
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x666cce
mov edi, eax
cmp edi, 1
jg 0x666cd8
mov edi, 1
mov dword [esp + 0x90], edi
jmp 0x666ceb
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 0x666d24
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x666d11
mov edi, eax
cmp edi, 1
jg 0x666d1b
mov edi, 1
mov dword [esp + 0xa4], edi
jmp 0x666d2e
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
fld qword [ebp + 0x40]
fstp qword [esp + 0x80]
cmp ebx, 1
je 0x666d43
fst qword [esp + 0x78]
jmp 0x666d5a
fstp st(0)
fld st(0)
fld qword [0xb49ec8]
fmul st(1), st(0)
fmul qword [esp + 0x80]
fstp qword [esp + 0x78]
mov eax, dword [ebp + 0x64]
test eax, eax
jne 0x666da6
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x666d70
mov edi, 2
jmp 0x666d82
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov edi, 4
je 0x666d82
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 0x666de2
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x666db5
mov eax, 2
jmp 0x666dc7
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov eax, 4
je 0x666dc7
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 0x666df0
sar edx, 1
sar esi, 1
jmp 0x666dfe
mov eax, dword [ebp + 0x60]
cmp eax, 2
jne 0x666dfe
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 0x666e7c
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 0x6682f5
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 0x668c46
cmp ebx, 1
je 0x66770f
cmp ebx, 2
jne 0x667157
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x668405
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 0x666f51
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 0x6682d7
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 0x6683d1
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x667050
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 0x66700b
add esi, 0xffffffff
mov eax, 0x4000
mov word [ebx + ecx*2], ax
jmp 0x667026
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
fsubr st(3)
fmul qword [0xb49ed0]
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 0x666fea
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 0x6683ba
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 0x6670b8
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 0x6670e8
mov dword [esp + 0x60], ebx
fild dword [esp + 0x60]
fsubr st(2)
fmul qword [0xb49ed0]
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 0x667107
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x667107
imul ebx, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [eax + esi], ebx
jmp 0x667111
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 0x66708f
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 0x6677f1
cmp ebx, 4
jne 0x667406
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 0x6671d7
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 0x6682d7
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 0x6683d1
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x6672fe
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 0x667290
mov ebx, dword [esp + 0xac]
add eax, 0xfffffffe
mov edx, ecx
shl edx, 2
mov dword [ebx + edx], 0x40000000
jmp 0x6672c1
test edx, edx
jne 0x667299
add eax, 1
jmp 0x6672a8
mov ebx, dword [ebp + 0x10]
lea esi, [ebx - 2]
lea ebx, [eax - 1]
cmp edx, esi
jne 0x6672a8
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 0x667264
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 0x6683ba
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 0x66735e
mov esi, dword [esp + 0x94]
add eax, 0xfffffffe
mov ebx, edi
shl ebx, 2
mov dword [esi + ebx], 0x40000000
jmp 0x667397
test ebx, ebx
jne 0x667367
add eax, 1
jmp 0x66737e
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0xc]
lea esi, [ecx - 2]
lea ecx, [eax - 1]
cmp ebx, esi
jne 0x66737a
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 0x6673b6
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x6673b6
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [ebx + esi], eax
jmp 0x6673c0
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 0x667336
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 0x6677f1
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 0x66747d
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 0x6682d7
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 0x6683d1
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x66753b
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 0x667502
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 0x668cdf
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 0x6675a8
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x6675a8
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [ebx + ecx*4], eax
jmp 0x6675ab
mov dword [ebx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x667578
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 0x667627
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 0x6682cc
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 0x667679
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 0x6682cc
mov eax, dword [esp + 0x60]
push eax
mov ecx, dword [esp + 0x94]
push ecx
mov edi, dword [esp + 0x9c]
push edi
mov dword [esp + 0xbc], edx
call fcn.0071e438
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x70]
push eax
mov ecx, dword [esp + 0xb4]
push ecx
mov edi, dword [esp + 0xc0]
push edi
mov dword [esp + 0xc8], edx
call fcn.0071e438
mov edx, dword [esp + 0xc8]
add esp, 0x18
mov eax, dword [ebp + 0x6c]
test eax, eax
je 0x6676f1
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 0x6677f1
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 0x6677f1
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x66775f
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 0x66773e
fstp st(0)
fstp st(1)
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x668c21
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 0x6677b1
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x6677b1
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [edx + ecx*4], eax
jmp 0x6677b4
mov dword [edx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x66778e
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 0x667a88
cmp ebx, 0x10
je 0x667804
cmp ebx, 4
jne 0x667858
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x667827
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6678af
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x66780b
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x668625
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6678af
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x667804
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x667880
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x6678af
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x667867
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x668832
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 0x66880c
cmp ebx, 0x10
je 0x6678cc
cmp ebx, 4
jne 0x667920
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6678ef
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x667977
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6678d3
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x668642
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x667977
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x6678cc
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x667948
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x667977
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x66792f
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x6687ef
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 0x6687cf
cmp ebx, 4
jl 0x667a70
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6679b3
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6679e2
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x66799a
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x6687b2
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 0x668799
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x667a18
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x667a47
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6679ff
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x66877c
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 0x66876a
cmp ebx, 0x10
je 0x66865f
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
jmp 0x667aa6
xor eax, eax
mov dword [esp + 0xb8], eax
xor edi, edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], edi
jmp 0x667aa6
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 0x667cc9
cmp ebx, 1
je 0x66884f
cmp ebx, 2
je 0x667c4f
cmp ebx, 4
jne 0x667b5c
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 0x667ae7
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 + 0xb9a270]
add esp, 0x40
jmp 0x6682ca
cmp ebx, 0x10
jne 0x6682ca
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 0x667b98
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 + 0xb9a2a8]
jmp 0x6682ca
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 0x667c6a
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 + 0xb9a250]
add esp, 0x38
jmp 0x6682ca
cmp ebx, 1
je 0x668b2e
cmp ebx, 2
je 0x668152
cmp ebx, 4
jne 0x667e8e
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 + 0xb9a27c]
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 + 0xb9a27c]
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 + 0xb9a27c]
mov edx, dword [esp + 0xf0]
add esp, 0x40
jmp 0x6682be
cmp ebx, 0x10
jne 0x6682be
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 + 0xb9a2b4]
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 + 0xb9a2b4]
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 + 0xb9a2b4]
mov edx, dword [esp + 0xb0]
jmp 0x6682be
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 + 0xb9a260]
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 + 0xb9a260]
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 + 0xb9a260]
mov edx, dword [esp + 0xe8]
add esp, 0x38
mov eax, dword [ebp + 0x5c]
cmp eax, 4
je 0x668904
xor esi, esi
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x6682e4
mov eax, dword [esp + 0xa8]
push eax
call fcn.006339b8
mov eax, dword [esp + 0x98]
test eax, eax
je 0x6682f5
push eax
call fcn.006339b8
cmp ebx, 2
jl 0x668368
mov eax, dword [esp + 0xac]
test eax, eax
je 0x66830b
push eax
call fcn.006339b8
mov eax, dword [esp + 0x94]
test eax, eax
je 0x66831c
push eax
call fcn.006339b8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x66832a
push eax
call fcn.006339b8
mov eax, dword [esp + 0x74]
test eax, eax
je 0x668338
push eax
call fcn.006339b8
cmp ebx, 4
jl 0x668368
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x66834e
push eax
call fcn.006339b8
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x66835f
push eax
call fcn.006339b8
cmp ebx, 0x10
je 0x6688c7
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 0x666d45
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 0x6677f1
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 0x6682d7
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 0x66847c
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 0x6682d7
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 0x6683d1
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x66855c
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 0x668525
fld1
fstp dword [ebx + ecx*4]
add eax, 0xffffffff
jmp 0x668532
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 0x66850e
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 0x6683ba
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 0x6685b4
fld1
fstp dword [edx + ecx*4]
add eax, 0xffffffff
jmp 0x6685c1
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 0x6685e0
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x6685e0
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [esi + ecx*4], eax
jmp 0x6685ea
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 0x66859d
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 0x6677f1
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6678af
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x667977
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x66867f
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6686ae
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x668666
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x66874d
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 0x668741
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6686e1
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x66870c
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6686c8
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x668727
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 0x667aa6
mov esi, 0xfffffff7
jmp 0x6682cc
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x66870c
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6682cc
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6686ae
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
mov esi, 0xfffffff7
jmp 0x6682cc
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x667a47
xor eax, eax
mov dword [esp + 0xbc], eax
xor edi, edi
mov esi, 0xfffffff7
mov dword [esp + 0x68], eax
jmp 0x6682cc
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x6679e2
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 0x6682cc
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x667977
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 0x6682cc
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x6678af
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x668873
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
lea eax, [eax + 8]
cmp edx, 4
je 0x66886a
mov eax, ecx
mov dword [esp + 0xb0], eax
jmp 0x668880
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 + 0xb9a220]
add esp, 0x20
jmp 0x6682ca
mov eax, dword [esp + 0x64]
test eax, eax
je 0x6688d5
push eax
call fcn.006339b8
mov eax, dword [esp + 0x60]
test eax, eax
je 0x6688e3
push eax
call fcn.006339b8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x6688f1
push eax
call fcn.006339b8
test edi, edi
je 0x668368
push edi
call fcn.006339b8
jmp 0x668368
cmp ebx, 1
je 0x668ae5
cmp ebx, 2
je 0x668a7f
cmp ebx, 4
jne 0x668997
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 + 0xb9a27c]
add esp, 0x40
jmp 0x6682ca
cmp ebx, 0x10
jne 0x6682ca
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 + 0xb9a2b4]
jmp 0x6682ca
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 + 0xb9a260]
add esp, 0x38
jmp 0x6682ca
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 + 0xb9a230]
add esp, 0x20
jmp 0x6682ca
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 + 0xb9a230]
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 + 0xb9a230]
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 + 0xb9a230]
mov edx, dword [esp + 0x110]
add esp, 0x60
jmp 0x6682be
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 0x6677f1
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 0x6682d7
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 0x666c9e
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 0x666bb8
fstp st(0)
jmp 0x666c02
fstp st(0)
fstp st(0)
jmp 0x6675d3