// File: sundale[P]gcode/rs274ngc/interp_convert.cc
// Function: Interp::convert_threading_cycle(block_struct*, setup_struct*, double, double, double)
int Interp::convert_threading_cycle(block_pointer block, 
				    setup_pointer settings,
				    double end_x, double end_y, double end_z) {


    CHKS((settings->cutter_comp_side != OFF),
         (_("Cannot use G76 threading cycle with cutter radius compensation on")));

    CHKS((block->i_number == 0),
        (_("In G76, I must not be 0")));
    CHKS((block->j_number <= 0),
        (_("In G76, J must be greater than 0")));
    CHKS((block->k_number <= block->j_number),
        (_("In G76, K must be greater than J")));

    double start_x = settings->current_x;
    double start_y = settings->current_y;
    double start_z = settings->current_z;

    double i_number = block->i_number;
    double j_number = block->j_number;
    double k_number = block->k_number;

    if(_setup.lathe_diameter_mode){
      i_number /= 2;
      j_number /= 2;
      k_number /= 2;
    }


    int boring = 0;

    if (i_number > 0.0)
	boring = 1;

    double safe_x = start_x;
    double full_dia_depth = fabs(i_number);
    double start_depth = fabs(i_number) + fabs(j_number);
    double cut_increment = fabs(j_number);
    double full_threadheight = fabs(k_number);
    double end_depth = fabs(k_number) + fabs(i_number);

    double pitch = block->p_number;
    double compound_angle = block->q_number;
    if(compound_angle == -1) compound_angle = 0;
    compound_angle *= M_PIl/180.0;
    if(end_z > start_z) compound_angle = -compound_angle;

    int spring_cuts = block->h_flag == ON ? block->h_number: 0;

    double degression = block->r_number;
    if(degression < 1.0 || !block->r_flag) degression = 1.0;

    double taper_dist = block->e_flag? block->e_number: 0.0;
    if(taper_dist < 0.0) taper_dist = 0.0;
    double taper_pitch = taper_dist > 0.0? 
	pitch * hypot(taper_dist, full_threadheight)/taper_dist: pitch;

    if(end_z > start_z) taper_dist = -taper_dist;

    int taper_flags = block->l_number;
    if(taper_flags < 0) taper_flags = 0;

    int entry_taper = taper_flags & 1;
    int exit_taper = taper_flags & 2;

    double depth, zoff;
    int pass = 1;

    double target_z = end_z + fabs(k_number) * tan(compound_angle);

    depth = start_depth;
    zoff = (depth - full_dia_depth) * tan(compound_angle);
    while (depth < end_depth) {
	threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, 
		       start_z, zoff, taper_dist, entry_taper, exit_taper, 
		       taper_pitch, pitch, full_threadheight, target_z);
        depth = full_dia_depth + cut_increment * pow(++pass, 1.0/degression);
        zoff = (depth - full_dia_depth) * tan(compound_angle);
    } 
    // full specified depth now
    depth = end_depth;
    zoff = (depth - full_dia_depth) * tan(compound_angle);
    // cut at least once -- more if spring cuts.
    for(int i = 0; i<spring_cuts+1; i++) {
	threading_pass(settings, block, boring, safe_x, depth, end_depth, start_y, 
		       start_z, zoff, taper_dist, entry_taper, exit_taper, 
		       taper_pitch, pitch, full_threadheight, target_z);
    } 
    STRAIGHT_TRAVERSE(block->line_number, end_x, end_y, end_z, AABBCC);
    settings->current_x = end_x;
    settings->current_y = end_y;
    settings->current_z = end_z;
#undef AABBC
    return INTERP_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movsd %xmm0, -0x28(%rbp)
movsd %xmm1, -0x30(%rbp)
movsd %xmm2, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x31e6a
jmp 0x31d94
leaq 0x492a5(%rip), %rdi     # 0x7b040
callq 0x10380
movq -0x118(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x551a8(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x55197(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x55189(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x49296(%rip), %rsi     # 0x7b082
movl $0x50, %edx
callq 0x10840
movq 0x55163(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x55155(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5513d(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5512d(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x55120(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x55112(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x328b5
jmp 0x31e6c
jmp 0x31e6e
movq -0x18(%rbp), %rax
movsd 0x1a0(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x31f65
jp 0x31f65
jmp 0x31e8f
leaq 0x49246(%rip), %rdi     # 0x7b0dc
callq 0x10380
movq -0x118(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x550ad(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5509c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5508e(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x4919b(%rip), %rsi     # 0x7b082
movl $0x50, %edx
callq 0x10840
movq 0x55068(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5505a(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x55042(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x55032(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x55025(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x55017(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x328b5
jmp 0x31f67
jmp 0x31f69
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x1b0(%rax), %xmm0
jb 0x32056
jmp 0x31f80
leaq 0x4916d(%rip), %rdi     # 0x7b0f4
callq 0x10380
movq -0x118(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x54fbc(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x54fab(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x54f9d(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x490aa(%rip), %rsi     # 0x7b082
movl $0x50, %edx
callq 0x10840
movq 0x54f77(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x54f69(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x54f51(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x54f41(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x54f34(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x54f26(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x328b5
jmp 0x32058
jmp 0x3205a
movq -0x18(%rbp), %rax
movsd 0x1c0(%rax), %xmm1
movq -0x18(%rbp), %rax
movsd 0x1b0(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x32154
jmp 0x3207e
leaq 0x49090(%rip), %rdi     # 0x7b115
callq 0x10380
movq -0x118(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x54ebe(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x54ead(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x54e9f(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x48fac(%rip), %rsi     # 0x7b082
movl $0x50, %edx
callq 0x10840
movq 0x54e79(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x54e6b(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x54e53(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x54e43(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x54e36(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x54e28(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x328b5
jmp 0x32156
movq -0x20(%rbp), %rax
movsd 0x600(%rax), %xmm0
movsd %xmm0, -0x40(%rbp)
movq -0x20(%rbp), %rax
movsd 0x608(%rax), %xmm0
movsd %xmm0, -0x48(%rbp)
movq -0x20(%rbp), %rax
movsd 0x610(%rax), %xmm0
movsd %xmm0, -0x50(%rbp)
movq -0x18(%rbp), %rax
movsd 0x1a0(%rax), %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x18(%rbp), %rax
movsd 0x1b0(%rax), %xmm0
movsd %xmm0, -0x60(%rbp)
movq -0x18(%rbp), %rax
movsd 0x1c0(%rax), %xmm0
movsd %xmm0, -0x68(%rbp)
movq 0x54d9d(%rip), %rax     # 0x86f60
testb $0x1, 0x1e6d8(%rax)
je 0x3220e
movsd -0x58(%rbp), %xmm0
movsd 0x44e2f(%rip), %xmm1    # 0x77008
divsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x60(%rbp), %xmm0
movsd 0x44e19(%rip), %xmm1    # 0x77008
divsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x68(%rbp), %xmm0
movsd 0x44e03(%rip), %xmm1    # 0x77008
divsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movl $0x0, -0x6c(%rbp)
movsd -0x58(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x3222a
movl $0x1, -0x6c(%rbp)
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x58(%rbp), %xmm0
movaps 0x44de0(%rip), %xmm1    # 0x77020
pand %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x58(%rbp), %xmm0
movaps 0x44dcb(%rip), %xmm1    # 0x77020
pand %xmm1, %xmm0
movsd -0x60(%rbp), %xmm1
movaps 0x44dbb(%rip), %xmm2    # 0x77020
pand %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x60(%rbp), %xmm0
movaps 0x44d9f(%rip), %xmm1    # 0x77020
pand %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x68(%rbp), %xmm0
movaps 0x44d87(%rip), %xmm1    # 0x77020
pand %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x68(%rbp), %xmm0
movaps 0x44d6f(%rip), %xmm1    # 0x77020
pand %xmm1, %xmm0
movsd -0x58(%rbp), %xmm1
movaps 0x44d5f(%rip), %xmm2    # 0x77020
pand %xmm2, %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xb0(%rbp), %xmm0
movsd 0x46557(%rip), %xmm1    # 0x78860
ucomisd %xmm1, %xmm0
jne 0x3231c
jp 0x3231c
xorps %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
fldl -0xb0(%rbp)
fldt 0x46bb8(%rip)           # 0x78ee0
fmulp %st, %st(1)
fstpl -0x110(%rbp)
movsd -0x110(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0x38(%rbp), %xmm0
ucomisd -0x50(%rbp), %xmm0
jbe 0x32373
movsd -0xb0(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x18(%rbp), %rax
movb 0x190(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x32399
movq -0x18(%rbp), %rax
movl 0x194(%rax), %eax
movl %eax, -0x11c(%rbp)
jmp 0x323a3
xorl %eax, %eax
movl %eax, -0x11c(%rbp)
jmp 0x323a3
movl -0x11c(%rbp), %eax
movl %eax, -0xb4(%rbp)
movq -0x18(%rbp), %rax
movsd 0x230(%rax), %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd 0x46a45(%rip), %xmm0    # 0x78e10
ucomisd -0xc0(%rbp), %xmm0
ja 0x323e2
movq -0x18(%rbp), %rax
testb $0x1, 0x229(%rax)
jne 0x323f2
movsd 0x46a26(%rip), %xmm0    # 0x78e10
movsd %xmm0, -0xc0(%rbp)
movq -0x18(%rbp), %rax
testb $0x1, 0x139(%rax)
je 0x32415
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd %xmm0, -0x128(%rbp)
jmp 0x32422
xorps %xmm0, %xmm0
movsd %xmm0, -0x128(%rbp)
jmp 0x32422
movsd -0x128(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
xorps %xmm0, %xmm0
ucomisd -0xc8(%rbp), %xmm0
jbe 0x3244a
xorps %xmm0, %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xc8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x324a1
movsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd -0x98(%rbp), %xmm1
callq 0x10460
movaps %xmm0, %xmm1
movsd -0x138(%rbp), %xmm0
mulsd %xmm1, %xmm0
divsd -0xc8(%rbp), %xmm0
movsd %xmm0, -0x130(%rbp)
jmp 0x324b1
movsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x130(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x38(%rbp), %xmm0
ucomisd -0x50(%rbp), %xmm0
jbe 0x324f4
movsd -0xc8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xc8(%rbp)
movq -0x18(%rbp), %rax
movl 0x1c8(%rax), %eax
movl %eax, -0xd4(%rbp)
cmpl $0x0, -0xd4(%rbp)
jge 0x32517
movl $0x0, -0xd4(%rbp)
movl -0xd4(%rbp), %eax
andl $0x1, %eax
movl %eax, -0xd8(%rbp)
movl -0xd4(%rbp), %eax
andl $0x2, %eax
movl %eax, -0xdc(%rbp)
movl $0x1, -0xf4(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x68(%rbp), %xmm0
movaps 0x44ac8(%rip), %xmm1    # 0x77020
pand %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0xb0(%rbp), %xmm0
callq 0x10900
movsd -0x150(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x148(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0x88(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xe8(%rbp), %xmm0
subsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0xb0(%rbp), %xmm0
callq 0x10900
movaps %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xe8(%rbp), %xmm1
movsd -0xa0(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x3271c
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x6c(%rbp), %edx
movsd -0x78(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm1
movsd -0xa0(%rbp), %xmm2
movsd -0x48(%rbp), %xmm3
movsd -0x50(%rbp), %xmm4
movsd -0xf0(%rbp), %xmm5
movsd -0xc8(%rbp), %xmm6
movl -0xd8(%rbp), %ecx
movl -0xdc(%rbp), %r8d
movsd -0xd0(%rbp), %xmm7
movsd -0xa8(%rbp), %xmm10
movsd -0x98(%rbp), %xmm9
movsd -0x100(%rbp), %xmm8
movsd %xmm10, (%rsp)
movsd %xmm9, 0x8(%rsp)
movsd %xmm8, 0x10(%rsp)
callq 0x328d0
movsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x90(%rbp), %xmm0
movsd %xmm0, -0x160(%rbp)
movl -0xf4(%rbp), %edi
addl $0x1, %edi
movl %edi, -0xf4(%rbp)
movsd 0x46762(%rip), %xmm0    # 0x78e10
divsd -0xc0(%rbp), %xmm0
callq 0x11790
movsd -0x168(%rbp), %xmm1
movaps %xmm0, %xmm2
movsd -0x160(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xe8(%rbp), %xmm0
subsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x158(%rbp)
movsd -0xb0(%rbp), %xmm0
callq 0x10900
movaps %xmm0, %xmm1
movsd -0x158(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
jmp 0x325dd
movsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xe8(%rbp), %xmm0
subsd -0x80(%rbp), %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0xb0(%rbp), %xmm0
callq 0x10900
movaps %xmm0, %xmm1
movsd -0x170(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
movl $0x0, -0x104(%rbp)
movl -0x104(%rbp), %eax
movl -0xb4(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x3281d
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x6c(%rbp), %edx
movsd -0x78(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm1
movsd -0xa0(%rbp), %xmm2
movsd -0x48(%rbp), %xmm3
movsd -0x50(%rbp), %xmm4
movsd -0xf0(%rbp), %xmm5
movsd -0xc8(%rbp), %xmm6
movl -0xd8(%rbp), %ecx
movl -0xdc(%rbp), %r8d
movsd -0xd0(%rbp), %xmm7
movsd -0xa8(%rbp), %xmm10
movsd -0x98(%rbp), %xmm9
movsd -0x100(%rbp), %xmm8
movsd %xmm10, (%rsp)
movsd %xmm9, 0x8(%rsp)
movsd %xmm8, 0x10(%rsp)
callq 0x328d0
movl -0x104(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x104(%rbp)
jmp 0x3276f
movq -0x18(%rbp), %rax
movl 0x1d0(%rax), %edi
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x38(%rbp), %xmm2
movq -0x20(%rbp), %rax
movsd 0x8(%rax), %xmm3
movq -0x20(%rbp), %rax
movsd 0x20(%rax), %xmm4
movq -0x20(%rbp), %rax
movsd 0x38(%rax), %xmm5
movq -0x20(%rbp), %rax
movsd 0x50(%rax), %xmm6
movq -0x20(%rbp), %rax
movsd 0x68(%rax), %xmm7
movq -0x20(%rbp), %rax
movsd 0x80(%rax), %xmm8
movsd %xmm8, (%rsp)
callq 0x10ef0
movsd -0x28(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x600(%rax)
movsd -0x30(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x608(%rax)
movsd -0x38(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x610(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
nopw %cs:(%rax,%rax)