Function at 0x663b00
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 0x665e33
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x665e33
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x665e1f
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x665e1f
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jl 0x665e1f
mov eax, dword [ebp + 0x1c]
test eax, eax
jl 0x665e1f
mov eax, dword [ebp + 0x20]
test eax, eax
jle 0x665e1f
mov eax, dword [ebp + 0x24]
test eax, eax
jle 0x665e1f
mov eax, dword [ebp + 0xc]
cmp eax, ecx
jle 0x665503
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x1c]
cmp eax, edi
jle 0x665503
mov eax, dword [ebp + 0x30]
test eax, eax
jle 0x665e1f
mov eax, dword [ebp + 0x34]
test eax, eax
jle 0x665e1f
fldz
fcom st(1)
fnstsw ax
sahf
jae 0x6654ed
fld qword [ebp + 0x40]
fcomp st(1)
fnstsw ax
sahf
jp 0x663bbf
jbe 0x6654ed
cmp ebx, 1
je 0x663be9
cmp ebx, 2
je 0x663be9
cmp ebx, 4
je 0x663be9
cmp ebx, 0x10
je 0x663be9
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 0x663bf9
mov eax, dword [ebp + 0x10]
cmp eax, 8
jge 0x663c32
mov eax, dword [ebp + 0xc]
cmp ebx, 0x10
jne 0x663c06
mov ebx, 4
cmp eax, 4
jl 0x663c13
mov eax, dword [ebp + 0x10]
cmp eax, 4
jge 0x663c32
mov eax, dword [ebp + 0xc]
cmp ebx, 4
jne 0x663c20
mov ebx, 2
cmp eax, 2
jl 0x663c2d
mov eax, dword [ebp + 0x10]
cmp eax, 2
jge 0x663c32
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 0x663c53
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 0x663c7d
mov edi, esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xbc], edi
test eax, eax
je 0x663ddf
fld qword [0xb49e90]
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 0x663d18
test eax, eax
jg 0x665e47
fld qword [0xb49e98]
fcomp st(3)
fnstsw ax
fxch st(2)
fstp st(0)
sahf
ja 0x663cfe
mov eax, 1
mov dword [esp + 0x90], eax
jmp 0x663d24
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 0x663d62
test eax, eax
jg 0x665e4e
fld qword [0xb49e98]
fcompp
fnstsw ax
sahf
ja 0x663cfe
mov eax, 1
mov dword [esp + 0xa4], eax
jmp 0x663d6e
fstp st(0)
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
cmp ebx, 1
je 0x665517
fstp st(3)
fld1
fcom st(3)
fnstsw ax
sahf
jae 0x663d9e
jp 0x663d9e
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 0x663da2
fstp st(3)
fld st(1)
fxch st(1)
fcom st(3)
fnstsw ax
sahf
jbe 0x663dcf
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 0x663ea9
fstp st(3)
fstp st(2)
fst qword [esp + 0x80]
jmp 0x663ea9
cmp ebx, 1
je 0x665dfe
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 [0xb49e90]
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 0x663e4d
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x663e3a
mov edi, eax
cmp edi, 1
jg 0x663e44
mov edi, 1
mov dword [esp + 0x90], edi
jmp 0x663e57
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 0x663e90
mov edi, eax
lea eax, [edi + 1]
cmp ebx, 1
je 0x663e7d
mov edi, eax
cmp edi, 1
jg 0x663e87
mov edi, 1
mov dword [esp + 0xa4], edi
jmp 0x663e9a
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xa4], eax
fld qword [ebp + 0x40]
fstp qword [esp + 0x80]
cmp ebx, 1
je 0x663eaf
fst qword [esp + 0x78]
jmp 0x663ec6
fstp st(0)
fld st(0)
fld qword [0xb49e98]
fmul st(1), st(0)
fmul qword [esp + 0x80]
fstp qword [esp + 0x78]
mov eax, dword [ebp + 0x64]
test eax, eax
jne 0x663f12
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x663edc
mov edi, 2
jmp 0x663eee
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov edi, 4
je 0x663eee
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 0x663f4e
mov eax, dword [ebp + 0x60]
cmp eax, 1
jne 0x663f21
mov eax, 2
jmp 0x663f33
mov eax, dword [ebp + 0x60]
cmp eax, 2
mov eax, 4
je 0x663f33
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 0x663f5c
sar edx, 1
sar esi, 1
jmp 0x663f6a
mov eax, dword [ebp + 0x60]
cmp eax, 2
jne 0x663f6a
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 0x663fe8
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 0x66546b
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 0x665dbc
cmp ebx, 1
je 0x664885
cmp ebx, 2
jne 0x6642c3
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x66557b
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 0x6640bd
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 0x66544d
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 0x665547
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x6641bc
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 0x664177
add esi, 0xffffffff
mov eax, 0x4000
mov word [ebx + ecx*2], ax
jmp 0x664192
mov dword [esp + 0x60], esi
fild dword [esp + 0x60]
fsubr st(3)
fmul qword [0xb49ea0]
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 0x664156
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 0x665530
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 0x664224
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 0x664254
mov dword [esp + 0x60], ebx
fild dword [esp + 0x60]
fsubr st(2)
fmul qword [0xb49ea0]
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 0x664273
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x664273
imul ebx, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [eax + esi], ebx
jmp 0x66427d
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 0x6641fb
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 0x664967
cmp ebx, 4
jne 0x664572
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 0x664343
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 0x66544d
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 0x665547
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x66446a
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 0x6643fc
mov ebx, dword [esp + 0xac]
add eax, 0xfffffffe
mov edx, ecx
shl edx, 2
mov dword [ebx + edx], 0x40000000
jmp 0x66442d
test edx, edx
jne 0x664405
add eax, 1
jmp 0x664414
mov ebx, dword [ebp + 0x10]
lea esi, [ebx - 2]
lea ebx, [eax - 1]
cmp edx, esi
jne 0x664414
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 0x6643d0
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 0x665530
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 0x6644ca
mov esi, dword [esp + 0x94]
add eax, 0xfffffffe
mov ebx, edi
shl ebx, 2
mov dword [esi + ebx], 0x40000000
jmp 0x664503
test ebx, ebx
jne 0x6644d3
add eax, 1
jmp 0x6644ea
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0xc]
lea esi, [ecx - 2]
lea ecx, [eax - 1]
cmp ebx, esi
jne 0x6644e6
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 0x664522
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x664522
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [ebx + esi], eax
jmp 0x66452c
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 0x6644a2
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 0x664967
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 0x6645e9
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 0x66544d
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 0x665547
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x6646a7
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 0x66466e
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 0x665e55
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 0x664714
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x664714
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [ebx + ecx*4], eax
jmp 0x664717
mov dword [ebx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x6646e4
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 0x664793
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 0x665442
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 0x6647e5
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 0x665442
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.0070ece0
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.0070ece0
mov edx, dword [esp + 0xd0]
add esp, 0x20
mov eax, dword [ebp + 0x6c]
test eax, eax
je 0x664867
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 0x664967
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 0x664967
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x6648d5
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 0x6648b4
fstp st(0)
fstp st(1)
fstp st(0)
fadd qword [ebp + 0x48]
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x665d97
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 0x664927
mov edi, dword [ebp + 0x5c]
cmp edi, 1
je 0x664927
mov edi, dword [ebp + 0x58]
imul eax, edi
mov dword [edx + ecx*4], eax
jmp 0x66492a
mov dword [edx + ecx*4], eax
fxch st(1)
fadd st(2)
add ecx, 1
cmp ecx, esi
fxch st(1)
jl 0x664904
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 0x664bfe
cmp ebx, 0x10
je 0x66497a
cmp ebx, 4
jne 0x6649ce
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x66499d
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664a25
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x664981
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x66579b
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664a25
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x66497a
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6649f6
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x664a25
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6649dd
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x6659a8
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 0x665982
cmp ebx, 0x10
je 0x664a42
cmp ebx, 4
jne 0x664a96
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x664a65
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664aed
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x664a49
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x6657b8
mov eax, dword [esp + 0x90]
lea ecx, [eax*4 + 0x10]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664aed
mov eax, dword [ebp + 0x60]
cmp eax, 2
je 0x664a42
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x664abe
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x664aed
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x664aa5
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x665965
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 0x665945
cmp ebx, 4
jl 0x664be6
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x664b29
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664b58
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x664b10
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x665928
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 0x66590f
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x664b8e
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664bbd
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x664b75
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x6658f2
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 0x6658e0
cmp ebx, 0x10
je 0x6657d5
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
jmp 0x664c1c
xor eax, eax
mov dword [esp + 0xb8], eax
xor edi, edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], edi
jmp 0x664c1c
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 0x664e3f
cmp ebx, 1
je 0x6659c5
cmp ebx, 2
je 0x664dc5
cmp ebx, 4
jne 0x664cd2
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 0x664c5d
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 + 0xb9a4b0]
add esp, 0x40
jmp 0x665440
cmp ebx, 0x10
jne 0x665440
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 0x664d0e
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 + 0xb9a4e8]
jmp 0x665440
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 0x664de0
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 + 0xb9a490]
add esp, 0x38
jmp 0x665440
cmp ebx, 1
je 0x665ca4
cmp ebx, 2
je 0x6652c8
cmp ebx, 4
jne 0x665004
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 + 0xb9a4bc]
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 + 0xb9a4bc]
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 + 0xb9a4bc]
mov edx, dword [esp + 0xf0]
add esp, 0x40
jmp 0x665434
cmp ebx, 0x10
jne 0x665434
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 + 0xb9a4f4]
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 + 0xb9a4f4]
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 + 0xb9a4f4]
mov edx, dword [esp + 0xb0]
jmp 0x665434
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 + 0xb9a4a0]
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 + 0xb9a4a0]
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 + 0xb9a4a0]
mov edx, dword [esp + 0xe8]
add esp, 0x38
mov eax, dword [ebp + 0x5c]
cmp eax, 4
je 0x665a7a
xor esi, esi
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x66545a
mov eax, dword [esp + 0xa8]
push eax
call fcn.006339b8
mov eax, dword [esp + 0x98]
test eax, eax
je 0x66546b
push eax
call fcn.006339b8
cmp ebx, 2
jl 0x6654de
mov eax, dword [esp + 0xac]
test eax, eax
je 0x665481
push eax
call fcn.006339b8
mov eax, dword [esp + 0x94]
test eax, eax
je 0x665492
push eax
call fcn.006339b8
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x6654a0
push eax
call fcn.006339b8
mov eax, dword [esp + 0x74]
test eax, eax
je 0x6654ae
push eax
call fcn.006339b8
cmp ebx, 4
jl 0x6654de
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x6654c4
push eax
call fcn.006339b8
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x6654d5
push eax
call fcn.006339b8
cmp ebx, 0x10
je 0x665a3d
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 0x663eb1
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 0x664967
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 0x66544d
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 0x6655f2
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 0x66544d
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 0x665547
fld qword [esp + 0x78]
fadd qword [ebp + 0x50]
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x78]
test eax, eax
jle 0x6656d2
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 0x66569b
fld1
fstp dword [ebx + ecx*4]
add eax, 0xffffffff
jmp 0x6656a8
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 0x665684
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 0x665530
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 0x66572a
fld1
fstp dword [edx + ecx*4]
add eax, 0xffffffff
jmp 0x665737
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 0x665756
mov esi, dword [ebp + 0x5c]
cmp esi, 1
je 0x665756
imul eax, dword [ebp + 0x58]
mov esi, dword [esp + 0x98]
mov dword [esi + ecx*4], eax
jmp 0x665760
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 0x665713
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 0x664967
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664a25
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664aed
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x6657f5
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x665824
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6657dc
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x6658c3
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 0x6658b7
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x665857
mov eax, dword [esp + 0x90]
lea ecx, [eax + 4]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x665882
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x66583e
mov eax, dword [ebp + 0x5c]
cmp eax, 3
je 0x66589d
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 0x664c1c
mov esi, 0xfffffff7
jmp 0x665442
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x665882
xor edi, edi
mov esi, 0xfffffff7
jmp 0x665442
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x665824
xor eax, eax
mov dword [esp + 0x68], eax
xor edi, edi
mov esi, 0xfffffff7
jmp 0x665442
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664bbd
xor eax, eax
mov dword [esp + 0xbc], eax
xor edi, edi
mov esi, 0xfffffff7
mov dword [esp + 0x68], eax
jmp 0x665442
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c7470
jmp 0x664b58
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 0x665442
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x664aed
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 0x665442
mov eax, dword [esp + 0x90]
lea ecx, [eax + eax*2 + 0xc]
push ecx
mov dword [esp + 0xb4], edx
call fcn.006c748c
jmp 0x664a25
mov eax, dword [ebp + 0x5c]
cmp eax, 1
je 0x6659e9
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x60]
lea eax, [eax + 8]
cmp edx, 4
je 0x6659e0
mov eax, ecx
mov dword [esp + 0xb0], eax
jmp 0x6659f6
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 + 0xb9a460]
add esp, 0x20
jmp 0x665440
mov eax, dword [esp + 0x64]
test eax, eax
je 0x665a4b
push eax
call fcn.006339b8
mov eax, dword [esp + 0x60]
test eax, eax
je 0x665a59
push eax
call fcn.006339b8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x665a67
push eax
call fcn.006339b8
test edi, edi
je 0x6654de
push edi
call fcn.006339b8
jmp 0x6654de
cmp ebx, 1
je 0x665c5b
cmp ebx, 2
je 0x665bf5
cmp ebx, 4
jne 0x665b0d
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 + 0xb9a4bc]
add esp, 0x40
jmp 0x665440
cmp ebx, 0x10
jne 0x665440
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 + 0xb9a4f4]
jmp 0x665440
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 + 0xb9a4a0]
add esp, 0x38
jmp 0x665440
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 + 0xb9a470]
add esp, 0x20
jmp 0x665440
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 + 0xb9a470]
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 + 0xb9a470]
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 + 0xb9a470]
mov edx, dword [esp + 0x110]
add esp, 0x60
jmp 0x665434
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 0x664967
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 0x66544d
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 0x663e0a
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 0x663d24
fstp st(0)
jmp 0x663d6e
fstp st(0)
fstp st(0)
jmp 0x66473f