// File: jamesliu516[P]amrdg2d/wall4amrdg2013.cpp
// Function: getWallCurvatureRadius(pointxy const*, pointxy&)
double getWallCurvatureRadius(const PXYZ *pt, PXYZ &ndir)
{
    int ils1;
    double rd1=0.0,rd2=0.0, dis1,dis2;
    PXYZ pp1,pp2,pp3, cen1,cen2, ndir1,ndir2;
    int nb;
    ils1=getIndexAtWallPoint(pt,nb);
    if(ils1==NWallPts[nb]-1)
    {
        pp1.x = MultiCircle[nb][0].x;
        pp1.y = MultiCircle[nb][0].y;
        pp2.x = MultiCircle[nb][ils1].x;
        pp2.y = MultiCircle[nb][ils1].y;
        pp3.x = MultiCircle[nb][ils1-1].x;
        pp3.y = MultiCircle[nb][ils1-1].y;

        rd1=getRadius(&pp1,&pp2,&pp3,cen1);
        dis1=sqrt((pt->x-cen1.x)*(pt->x-cen1.x)+(pt->y-cen1.y)*(pt->y-cen1.y));
        ndir.x=(pt->x-cen1.x)/dis1;
        ndir.y=(pt->y-cen1.y)/dis1;		

        return rd1;
    }
    else if(ils1==NWallPts[nb]-2)
    {
        pp1.x = MultiCircle[nb][0].x;
        pp1.y = MultiCircle[nb][0].y;
        pp2.x = MultiCircle[nb][ils1].x;
        pp2.y = MultiCircle[nb][ils1].y;
        pp3.x = MultiCircle[nb][ils1+1].x;
        pp3.y = MultiCircle[nb][ils1+1].y;

        rd1=getRadius(&pp1,&pp2,&pp3,cen1);
        dis1=sqrt((pt->x-cen1.x)*(pt->x-cen1.x)+(pt->y-cen1.y)*(pt->y-cen1.y));
        ndir1.x=(pt->x-cen1.x)/dis1;
        ndir1.y=(pt->y-cen1.y)/dis1;	

        pp1.x = MultiCircle[nb][ils1+1].x;
        pp1.y = MultiCircle[nb][ils1+1].y;
        pp2.x = MultiCircle[nb][ils1].x;
        pp2.y = MultiCircle[nb][ils1].y;
        pp3.x = MultiCircle[nb][ils1-1].x;
        pp3.y = MultiCircle[nb][ils1-1].y;

        rd2=getRadius(&pp1,&pp2,&pp3, cen2);

        dis2=sqrt((pt->x-cen2.x)*(pt->x-cen2.x)+(pt->y-cen2.y)*(pt->y-cen2.y));
        ndir2.x=(pt->x-cen2.x)/dis2;
        ndir2.y=(pt->y-cen2.y)/dis2;

        ndir.x=0.5*(ndir1.x+ndir2.x);
        ndir.y=0.5*(ndir1.y+ndir2.y);			

        return (0.5*(rd1+rd2));
    }
    else if(ils1==0)
    {
        pp1.x = MultiCircle[nb][0].x;
        pp1.y = MultiCircle[nb][0].y;
        pp2.x = MultiCircle[nb][1].x;
        pp2.y = MultiCircle[nb][1].y;
        pp3.x = MultiCircle[nb][2].x;
        pp3.y = MultiCircle[nb][2].y;
        //	rd1=getRadius(&pp1,&pp2,&pp3);
        rd1=getRadius(&pp1,&pp2,&pp3,cen1);
        dis1=sqrt((pt->x-cen1.x)*(pt->x-cen1.x)+(pt->y-cen1.y)*(pt->y-cen1.y));
        ndir.x=(pt->x-cen1.x)/dis1;
        ndir.y=(pt->y-cen1.y)/dis1;	

        return rd1;
    }
    else
    {
        pp1.x = MultiCircle[nb][ils1+2].x;
        pp1.y = MultiCircle[nb][ils1+2].y;
        pp2.x = MultiCircle[nb][ils1].x;
        pp2.y = MultiCircle[nb][ils1].y;
        pp3.x = MultiCircle[nb][ils1+1].x;
        pp3.y = MultiCircle[nb][ils1+1].y;

        rd1=getRadius(&pp1,&pp2,&pp3,cen1);
        dis1=sqrt((pt->x-cen1.x)*(pt->x-cen1.x)+(pt->y-cen1.y)*(pt->y-cen1.y));
        ndir1.x=(pt->x-cen1.x)/dis1;
        ndir1.y=(pt->y-cen1.y)/dis1;

        pp1.x = MultiCircle[nb][ils1+1].x;
        pp1.y = MultiCircle[nb][ils1+1].y;
        pp2.x = MultiCircle[nb][ils1].x;
        pp2.y = MultiCircle[nb][ils1].y;
        pp3.x = MultiCircle[nb][ils1-1].x;
        pp3.y = MultiCircle[nb][ils1-1].y;

        rd2=getRadius(&pp1,&pp2,&pp3, cen2);

        dis2=sqrt((pt->x-cen2.x)*(pt->x-cen2.x)+(pt->y-cen2.y)*(pt->y-cen2.y));
        ndir2.x=(pt->x-cen2.x)/dis2;
        ndir2.y=(pt->y-cen2.y)/dis2;

        ndir.x=0.5*(ndir1.x+ndir2.x);
        ndir.y=0.5*(ndir1.y+ndir2.y);

        return (0.5*(rd1+rd2));
    }
}

// Assembly:
subq $0xb8, %rsp
movq %rdi, 0xa8(%rsp)
movq %rsi, 0xa0(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x90(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x88(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x6310
leaq 0x58(%rsp), %rdi
callq 0x6310
leaq 0x48(%rsp), %rdi
callq 0x6310
leaq 0x38(%rsp), %rdi
callq 0x6310
leaq 0x28(%rsp), %rdi
callq 0x6310
leaq 0x18(%rsp), %rdi
callq 0x6310
leaq 0x8(%rsp), %rdi
callq 0x6310
movq 0xa8(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x27aa0
movl %eax, 0x9c(%rsp)
movl 0x9c(%rsp), %eax
movslq 0x4(%rsp), %rdx
leaq 0x2230f(%rip), %rcx     # 0x4b290
movl (%rcx,%rdx,4), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x29185
movslq 0x4(%rsp), %rcx
leaq 0x22475(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x22455(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x22434(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x22405(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x223d5(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x223a1(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x28890
movsd %xmm0, 0x90(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm2
subsd 0x38(%rsp), %xmm2
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm1
subsd 0x40(%rsp), %xmm1
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm3
subsd 0x40(%rsp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x31c0
movsd %xmm0, 0x80(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm0
subsd 0x40(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x90(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
jmp 0x29bf9
movl 0x9c(%rsp), %eax
movslq 0x4(%rsp), %rdx
leaq 0x220f8(%rip), %rcx     # 0x4b290
movl (%rcx,%rdx,4), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jne 0x295de
movslq 0x4(%rsp), %rcx
leaq 0x2225e(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x2223e(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x2221d(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x221ee(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x221be(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x2218a(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x28890
movsd %xmm0, 0x90(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm2
subsd 0x38(%rsp), %xmm2
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm1
subsd 0x40(%rsp), %xmm1
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm3
subsd 0x40(%rsp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x31c0
movsd %xmm0, 0x80(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm0
subsd 0x40(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x2208c(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x22058(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x22023(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21ff4(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21fc4(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21f90(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x28(%rsp), %rcx
callq 0x28890
movsd %xmm0, 0x88(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x28(%rsp), %xmm0
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm2
subsd 0x28(%rsp), %xmm2
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm1
subsd 0x30(%rsp), %xmm1
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm3
subsd 0x30(%rsp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x31c0
movsd %xmm0, 0x78(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x28(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm0
subsd 0x30(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm1
addsd 0x8(%rsp), %xmm1
movsd 0x15bc3(%rip), %xmm0    # 0x3f140
mulsd %xmm1, %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0x20(%rsp), %xmm1
addsd 0x10(%rsp), %xmm1
movsd 0x15b9f(%rip), %xmm0    # 0x3f140
mulsd %xmm1, %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x90(%rsp), %xmm1
addsd 0x88(%rsp), %xmm1
movsd 0x15b74(%rip), %xmm0    # 0x3f140
mulsd %xmm1, %xmm0
movsd %xmm0, 0xb0(%rsp)
jmp 0x29bf9
cmpl $0x0, 0x9c(%rsp)
jne 0x2979e
movslq 0x4(%rsp), %rcx
leaq 0x21e18(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21df8(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21dd7(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21db6(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21d95(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x20(%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21d74(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movsd 0x28(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x28890
movsd %xmm0, 0x90(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm2
subsd 0x38(%rsp), %xmm2
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm1
subsd 0x40(%rsp), %xmm1
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm3
subsd 0x40(%rsp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x31c0
movsd %xmm0, 0x80(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm0
subsd 0x40(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x90(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
jmp 0x29bf9
movslq 0x4(%rsp), %rcx
leaq 0x21c66(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21c32(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21bfd(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21bce(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21b9e(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21b6a(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x38(%rsp), %rcx
callq 0x28890
movsd %xmm0, 0x90(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm2
subsd 0x38(%rsp), %xmm2
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm1
subsd 0x40(%rsp), %xmm1
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm3
subsd 0x40(%rsp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x31c0
movsd %xmm0, 0x80(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x38(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm0
subsd 0x40(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21a6c(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21a38(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21a03(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x58(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x219d4(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movslq 0x9c(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x219a4(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movslq 0x4(%rsp), %rcx
leaq 0x21970(%rip), %rax     # 0x4b410
imulq $0x1f40, %rcx, %rcx     # imm = 0x1F40
addq %rcx, %rax
movl 0x9c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x48(%rsp), %rdx
leaq 0x28(%rsp), %rcx
callq 0x28890
movsd %xmm0, 0x88(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x28(%rsp), %xmm0
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm2
subsd 0x28(%rsp), %xmm2
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm1
subsd 0x30(%rsp), %xmm1
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm3
subsd 0x30(%rsp), %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x31c0
movsd %xmm0, 0x78(%rsp)
movq 0xa8(%rsp), %rax
movsd (%rax), %xmm0
subsd 0x28(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq 0xa8(%rsp), %rax
movsd 0x8(%rax), %xmm0
subsd 0x30(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x18(%rsp), %xmm1
addsd 0x8(%rsp), %xmm1
movsd 0x155a3(%rip), %xmm0    # 0x3f140
mulsd %xmm1, %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0x20(%rsp), %xmm1
addsd 0x10(%rsp), %xmm1
movsd 0x1557f(%rip), %xmm0    # 0x3f140
mulsd %xmm1, %xmm0
movq 0xa0(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x90(%rsp), %xmm1
addsd 0x88(%rsp), %xmm1
movsd 0x15554(%rip), %xmm0    # 0x3f140
mulsd %xmm1, %xmm0
movsd %xmm0, 0xb0(%rsp)
movsd 0xb0(%rsp), %xmm0
addq $0xb8, %rsp
retq
nopw (%rax,%rax)