// File: DoubleString[P]RtConverter/src/Rtklib/rtkcmn.cpp
// Function: bamboo::eci2ecef(bamboo::gtime_t, double const*, double*, double*)
extern void eci2ecef(gtime_t tutc, const double *erpv, double *U, double *gmst)
{
    const double ep2000[]={2000,1,1,12,0,0};
    static gtime_t tutc_;
    static double U_[9],gmst_;
    gtime_t tgps;
    double eps,ze,th,z,t,t2,t3,dpsi,deps,gast,f[5];
    double R1[9],R2[9],R3[9],R[9],W[9],N[9],P[9],NP[9];
    int i;
    
    trace(4,"eci2ecef: tutc=%s\n",time_str(tutc,3));
    
    if (fabs(timediff(tutc,tutc_))<0.01) { /* read cache */
        for (i=0;i<9;i++) U[i]=U_[i];
        if (gmst) *gmst=gmst_; 
        return;
    }
    tutc_=tutc;
    
    /* terrestrial time */
    tgps=utc2gpst(tutc_);
    t=(timediff(tgps,epoch2time(ep2000))+19.0+32.184)/86400.0/36525.0;
    t2=t*t; t3=t2*t;
    
    /* astronomical arguments */
    ast_args(t,f);
    
    /* iau 1976 precession */
    ze=(2306.2181*t+0.30188*t2+0.017998*t3)*AS2R;
    th=(2004.3109*t-0.42665*t2-0.041833*t3)*AS2R;
    z =(2306.2181*t+1.09468*t2+0.018203*t3)*AS2R;
    eps=(84381.448-46.8150*t-0.00059*t2+0.001813*t3)*AS2R;
    Rz(-z,R1); Ry(th,R2); Rz(-ze,R3);
    matmul("NN",3,3,3,1.0,R1,R2,0.0,R);
    matmul("NN",3,3,3,1.0,R, R3,0.0,P); /* P=Rz(-z)*Ry(th)*Rz(-ze) */
    
    /* iau 1980 nutation */
    nut_iau1980(t,f,&dpsi,&deps);
    Rx(-eps-deps,R1); Rz(-dpsi,R2); Rx(eps,R3);
    matmul("NN",3,3,3,1.0,R1,R2,0.0,R);
    matmul("NN",3,3,3,1.0,R ,R3,0.0,N); /* N=Rx(-eps)*Rz(-dspi)*Rx(eps) */
    
    /* greenwich aparent sidereal time (rad) */
    gmst_=utc2gmst(tutc_,erpv[2]);
    gast=gmst_+dpsi*cos(eps);
    gast+=(0.00264*sin(f[4])+0.000063*sin(2.0*f[4]))*AS2R;
    
    /* eci to ecef transformation matrix */
    Ry(-erpv[0],R1); Rx(-erpv[1],R2); Rz(gast,R3);
    matmul("NN",3,3,3,1.0,R1,R2,0.0,W );
    matmul("NN",3,3,3,1.0,W ,R3,0.0,R ); /* W=Ry(-xp)*Rx(-yp) */
    matmul("NN",3,3,3,1.0,N ,P ,0.0,NP);
    matmul("NN",3,3,3,1.0,R ,NP,0.0,U_); /* U=W*Rz(gast)*N*P */
    
    for (i=0;i<9;i++) U[i]=U_[i];
    if (gmst) *gmst=gmst_; 
    
    trace(5,"gmst=%.12f gast=%.12f\n",gmst_,gast);
    trace(5,"P=\n"); tracemat(5,P,3,3,15,12);
    trace(5,"N=\n"); tracemat(5,N,3,3,15,12);
    trace(5,"W=\n"); tracemat(5,W,3,3,15,12);
    trace(5,"U=\n"); tracemat(5,U,3,3,15,12);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x10(%rbp)
movsd %xmm0, -0x8(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
leaq -0x60(%rbp), %rdi
xorl %esi, %esi
movl $0x30, %edx
callq 0x93d0
movsd 0x37160(%rip), %xmm0    # 0xc73c8
movsd %xmm0, -0x60(%rbp)
movsd 0x2bbeb(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x58(%rbp)
movsd 0x2bbde(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x50(%rbp)
movsd 0x2d4e9(%rip), %xmm0    # 0xbd778
movsd %xmm0, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x380(%rbp)
movq -0x388(%rbp), %rdi
movsd -0x380(%rbp), %xmm0
movl $0x3, %esi
callq 0x8f6d0
movq %rax, %rdx
movl $0x4, %edi
leaq 0x376ee(%rip), %rsi     # 0xc79c0
movb $0x0, %al
callq 0x8b980
movq -0x10(%rbp), %rax
movq %rax, -0x398(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x390(%rbp)
movq 0x6b90a(%rip), %rax     # 0xfbc00
movq %rax, -0x3a8(%rbp)
movq 0x6b904(%rip), %rax     # 0xfbc08
movq %rax, -0x3a0(%rbp)
movq -0x398(%rbp), %rdi
movsd -0x390(%rbp), %xmm0
movq -0x3a8(%rbp), %rsi
movsd -0x3a0(%rbp), %xmm1
callq 0x8e8e0
movaps %xmm0, %xmm1
movaps 0x2cee8(%rip), %xmm0    # 0xbd220
pand %xmm0, %xmm1
movsd 0x2d444(%rip), %xmm0    # 0xbd788
ucomisd %xmm1, %xmm0
jbe 0x903ad
movl $0x0, -0x374(%rbp)
cmpl $0x9, -0x374(%rbp)
jge 0x90391
movslq -0x374(%rbp), %rcx
leaq 0x6b8a5(%rip), %rax     # 0xfbc10
movsd (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movslq -0x374(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x374(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x374(%rbp)
jmp 0x90354
cmpq $0x0, -0x28(%rbp)
je 0x903a8
movsd 0x6b8b8(%rip), %xmm0    # 0xfbc58
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
jmp 0x910f6
movq -0x10(%rbp), %rax
movq %rax, 0x6b848(%rip)     # 0xfbc00
movq -0x8(%rbp), %rax
movq %rax, 0x6b845(%rip)     # 0xfbc08
movq 0x6b836(%rip), %rax     # 0xfbc00
movq %rax, -0x3c8(%rbp)
movq 0x6b830(%rip), %rax     # 0xfbc08
movq %rax, -0x3c0(%rbp)
movq -0x3c8(%rbp), %rdi
movsd -0x3c0(%rbp), %xmm0
callq 0x8f0a0
movq %rax, -0x3b8(%rbp)
movsd %xmm0, -0x3b0(%rbp)
movq -0x3b8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x3b0(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x3d8(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x3d0(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x8e180
movq %rax, -0x3e8(%rbp)
movsd %xmm0, -0x3e0(%rbp)
movq -0x3d8(%rbp), %rdi
movsd -0x3d0(%rbp), %xmm0
movq -0x3e8(%rbp), %rsi
movsd -0x3e0(%rbp), %xmm1
callq 0x8e8e0
movsd 0x2c997(%rip), %xmm1    # 0xbce08
addsd %xmm1, %xmm0
movsd 0x37023(%rip), %xmm1    # 0xc74a0
addsd %xmm1, %xmm0
movsd 0x2c997(%rip), %xmm1    # 0xbce20
divsd %xmm1, %xmm0
movsd 0x36f8b(%rip), %xmm1    # 0xc7420
divsd %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x98(%rbp), %xmm0
mulsd -0x98(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xa0(%rbp), %xmm0
mulsd -0x98(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0x98(%rbp), %xmm0
leaq -0xf0(%rbp), %rdi
callq 0x91100
movsd -0x98(%rbp), %xmm1
movsd 0x36fa3(%rip), %xmm0    # 0xc7498
mulsd -0xa0(%rbp), %xmm0
movsd 0x36f63(%rip), %xmm2    # 0xc7468
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xa8(%rbp), %xmm0
movsd 0x36f73(%rip), %xmm2    # 0xc7490
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x36f0b(%rip), %xmm1    # 0xc7438
mulsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x98(%rbp), %xmm1
movsd 0x36f42(%rip), %xmm0    # 0xc7488
mulsd -0xa0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x36f13(%rip), %xmm2    # 0xc7480
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xa8(%rbp), %xmm0
movsd 0x36ef3(%rip), %xmm2    # 0xc7478
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x36ea3(%rip), %xmm1    # 0xc7438
mulsd %xmm1, %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x98(%rbp), %xmm1
movsd 0x36ebf(%rip), %xmm0    # 0xc7470
mulsd -0xa0(%rbp), %xmm0
movsd 0x36ea7(%rip), %xmm2    # 0xc7468
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xa8(%rbp), %xmm0
movsd 0x36e87(%rip), %xmm2    # 0xc7460
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x36e4f(%rip), %xmm1    # 0xc7438
mulsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x98(%rbp), %xmm0
movsd 0x36e4b(%rip), %xmm1    # 0xc7450
mulsd %xmm1, %xmm0
movsd 0x36e47(%rip), %xmm1    # 0xc7458
addsd %xmm1, %xmm0
movsd -0xa0(%rbp), %xmm1
movsd 0x36e23(%rip), %xmm2    # 0xc7448
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xa8(%rbp), %xmm0
movsd 0x36e03(%rip), %xmm2    # 0xc7440
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x36deb(%rip), %xmm1    # 0xc7438
mulsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x2b802(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x100(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x108(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x110(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x118(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x90(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x9e00
movsd %xmm0, -0x120(%rbp)
movsd %xmm0, -0x140(%rbp)
movsd -0x90(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x91a0
movsd %xmm0, -0x128(%rbp)
movsd -0x128(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x138(%rbp)
jmp 0x9071b
movsd 0x2b73d(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x170(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x158(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x168(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x178(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x88(%rbp), %xmm0
callq 0x9e00
movsd %xmm0, -0x150(%rbp)
movsd %xmm0, -0x190(%rbp)
movsd -0x88(%rbp), %xmm0
callq 0x91a0
movsd %xmm0, -0x180(%rbp)
movsd -0x180(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x160(%rbp)
jmp 0x907b2
movsd 0x2b6a6(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x1a0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1a8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d0(%rbp)
movsd -0x80(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x9e00
movsd %xmm0, -0x1c0(%rbp)
movsd %xmm0, -0x1e0(%rbp)
movsd -0x80(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x91a0
movsd %xmm0, -0x1c8(%rbp)
movsd -0x1c8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x1d8(%rbp)
leaq -0x140(%rbp), %r8
leaq -0x190(%rbp), %r9
leaq -0x230(%rbp), %rax
leaq 0x37101(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2b5c8(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
leaq -0x230(%rbp), %r8
leaq -0x1e0(%rbp), %r9
leaq -0x320(%rbp), %rax
leaq 0x370c8(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2b58f(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
movsd -0x98(%rbp), %xmm0
leaq -0xf0(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
callq 0x91230
movsd 0x2b555(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x140(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x110(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x128(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x130(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x78(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
subsd -0xb8(%rbp), %xmm0
callq 0x9e00
movsd %xmm0, -0x100(%rbp)
movsd %xmm0, -0x120(%rbp)
movsd -0x78(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
subsd -0xb8(%rbp), %xmm0
callq 0x91a0
movsd %xmm0, -0x108(%rbp)
movsd -0x108(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x118(%rbp)
jmp 0x909d2
movsd 0x2b486(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x150(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x158(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x160(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x168(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0xb0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x9e00
movsd %xmm0, -0x170(%rbp)
movsd %xmm0, -0x190(%rbp)
movsd -0xb0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x91a0
movsd %xmm0, -0x178(%rbp)
movsd -0x178(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x188(%rbp)
jmp 0x90a97
movsd 0x2b3c1(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x1e0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1c8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d8(%rbp)
movsd -0x78(%rbp), %xmm0
callq 0x9e00
movsd %xmm0, -0x1a0(%rbp)
movsd %xmm0, -0x1c0(%rbp)
movsd -0x78(%rbp), %xmm0
callq 0x91a0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x1a8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x1b8(%rbp)
leaq -0x140(%rbp), %r8
leaq -0x190(%rbp), %r9
leaq -0x230(%rbp), %rax
leaq 0x36e4a(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2b311(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
leaq -0x230(%rbp), %r8
leaq -0x1e0(%rbp), %r9
leaq -0x2d0(%rbp), %rax
leaq 0x36e11(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2b2d8(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
movq 0x6b061(%rip), %rax     # 0xfbc00
movq %rax, -0x3f8(%rbp)
movq 0x6b05b(%rip), %rax     # 0xfbc08
movq %rax, -0x3f0(%rbp)
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm1
movq -0x3f8(%rbp), %rdi
movsd -0x3f0(%rbp), %xmm0
callq 0x8f260
movsd %xmm0, 0x6b07f(%rip)    # 0xfbc58
movsd 0x6b077(%rip), %xmm0    # 0xfbc58
movsd %xmm0, -0x410(%rbp)
movsd -0xb0(%rbp), %xmm0
movsd %xmm0, -0x408(%rbp)
movsd -0x78(%rbp), %xmm0
callq 0x9e00
movsd -0x410(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x408(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xd0(%rbp), %xmm0
callq 0x91a0
movsd %xmm0, -0x400(%rbp)
movsd 0x2cb0d(%rip), %xmm0    # 0xbd750
mulsd -0xd0(%rbp), %xmm0
callq 0x91a0
movaps %xmm0, %xmm2
movsd -0x400(%rbp), %xmm0
movsd 0x3684d(%rip), %xmm1    # 0xc74b0
mulsd %xmm2, %xmm1
movsd 0x36839(%rip), %xmm2    # 0xc74a8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd -0xc0(%rbp), %xmm1
movsd 0x367b1(%rip), %xmm2    # 0xc7438
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd 0x2b1c1(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x120(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x108(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x118(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x128(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x138(%rbp)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x9e00
movsd %xmm0, -0x100(%rbp)
movsd %xmm0, -0x140(%rbp)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x91a0
movsd %xmm0, -0x130(%rbp)
movsd -0x130(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x110(%rbp)
jmp 0x90d5c
movsd 0x2b0fc(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x190(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x160(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x178(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x180(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x188(%rbp)
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x9e00
movsd %xmm0, -0x150(%rbp)
movsd %xmm0, -0x170(%rbp)
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x91a0
movsd %xmm0, -0x158(%rbp)
movsd -0x158(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x168(%rbp)
jmp 0x90e23
movsd 0x2b035(%rip), %xmm0    # 0xbbe60
movsd %xmm0, -0x1a0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1a8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d0(%rbp)
movsd -0xc0(%rbp), %xmm0
callq 0x9e00
movsd %xmm0, -0x1c0(%rbp)
movsd %xmm0, -0x1e0(%rbp)
movsd -0xc0(%rbp), %xmm0
callq 0x91a0
movsd %xmm0, -0x1c8(%rbp)
movsd -0x1c8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x1d8(%rbp)
leaq -0x140(%rbp), %r8
leaq -0x190(%rbp), %r9
leaq -0x280(%rbp), %rax
leaq 0x36ab8(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2af7f(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
leaq -0x280(%rbp), %r8
leaq -0x1e0(%rbp), %r9
leaq -0x230(%rbp), %rax
leaq 0x36a7f(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2af46(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
leaq -0x2d0(%rbp), %r8
leaq -0x320(%rbp), %r9
leaq -0x370(%rbp), %rax
leaq 0x36a46(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2af0d(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
leaq -0x230(%rbp), %r8
leaq -0x370(%rbp), %r9
leaq 0x36a14(%rip), %rdi     # 0xc798c
movl $0x3, %ecx
movsd 0x2aedb(%rip), %xmm0    # 0xbbe60
xorps %xmm1, %xmm1
leaq 0x6ac81(%rip), %rax     # 0xfbc10
movl %ecx, %esi
movl %ecx, %edx
movq %rax, (%rsp)
callq 0x8ca20
movl $0x0, -0x374(%rbp)
cmpl $0x9, -0x374(%rbp)
jge 0x90fe3
movslq -0x374(%rbp), %rcx
leaq 0x6ac53(%rip), %rax     # 0xfbc10
movsd (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movslq -0x374(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x374(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x374(%rbp)
jmp 0x90fa6
cmpq $0x0, -0x28(%rbp)
je 0x90ffa
movsd 0x6ac66(%rip), %xmm0    # 0xfbc58
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movsd 0x6ac56(%rip), %xmm0    # 0xfbc58
movsd -0xc0(%rbp), %xmm1
movl $0x5, %edi
leaq 0x369bd(%rip), %rsi     # 0xc79d3
movb $0x2, %al
callq 0x8b980
movl $0x5, %edi
leaq 0x369c1(%rip), %rsi     # 0xc79ea
movb $0x0, %al
callq 0x8b980
leaq -0x320(%rbp), %rsi
movl $0x5, %edi
movl $0x3, %ecx
movl $0xf, %r8d
movl $0xc, %r9d
movl %ecx, %edx
callq 0x913e0
movl $0x5, %edi
leaq 0x3698e(%rip), %rsi     # 0xc79ee
movb $0x0, %al
callq 0x8b980
leaq -0x2d0(%rbp), %rsi
movl $0x5, %edi
movl $0x3, %ecx
movl $0xf, %r8d
movl $0xc, %r9d
movl %ecx, %edx
callq 0x913e0
movl $0x5, %edi
leaq 0x3695b(%rip), %rsi     # 0xc79f2
movb $0x0, %al
callq 0x8b980
leaq -0x280(%rbp), %rsi
movl $0x5, %edi
movl $0x3, %ecx
movl $0xf, %r8d
movl $0xc, %r9d
movl %ecx, %edx
callq 0x913e0
movl $0x5, %edi
leaq 0x36928(%rip), %rsi     # 0xc79f6
movb $0x0, %al
callq 0x8b980
movq -0x20(%rbp), %rsi
movl $0x5, %edi
movl $0x3, %ecx
movl $0xf, %r8d
movl $0xc, %r9d
movl %ecx, %edx
callq 0x913e0
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
nop