// File: /workspace/github_cpp_makefile_star2_O2/sundale[P]gcode/rs274ngc/interp_convert.cc
// Function: Interp::convert_axis_offsets(int, block_struct*, setup_struct*)
int Interp::convert_axis_offsets(int g_code,     //!< g_code being executed (must be in G_92 series)
                                block_pointer block,    //!< pointer to a block of RS274/NGC instructions  
                                setup_pointer settings) //!< pointer to machine settings                   
{
  double *pars;                 /* short name for settings->parameters            */

  CHKS((settings->cutter_comp_side != OFF),      /* not "== ON" */
      NCE_CANNOT_CHANGE_AXIS_OFFSETS_WITH_CUTTER_RADIUS_COMP);
  CHKS((block->a_flag && settings->a_axis_wrapped && (block->a_number <= -360.0 || block->a_number >= 360.0)), (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->a_number, 'A');
  CHKS((block->b_flag && settings->b_axis_wrapped && (block->b_number <= -360.0 || block->b_number >= 360.0)), (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->b_number, 'B');
  CHKS((block->c_flag && settings->c_axis_wrapped && (block->c_number <= -360.0 || block->c_number >= 360.0)), (_("Invalid absolute position %5.2f for wrapped rotary axis %c")), block->c_number, 'C');
  pars = settings->parameters;
  if (g_code == G_92) {
    pars[5210] = 1.0;
    if (block->x_flag == ON) {
      settings->axis_offset_x =
        (settings->current_x + settings->axis_offset_x - block->x_number);
      settings->current_x = block->x_number;
    }

    if (block->y_flag == ON) {
      settings->axis_offset_y =
        (settings->current_y + settings->axis_offset_y - block->y_number);
      settings->current_y = block->y_number;
    }

    if (block->z_flag == ON) {
      settings->axis_offset_z =
        (settings->current_z + settings->axis_offset_z - block->z_number);
      settings->current_z = block->z_number;
    }
    if (block->a_flag == ON) {
      settings->AA_axis_offset = (settings->AA_current +
                                  settings->AA_axis_offset - block->a_number);
      settings->AA_current = block->a_number;
    }
    if (block->b_flag == ON) {
      settings->BB_axis_offset = (settings->BB_current +
                                  settings->BB_axis_offset - block->b_number);
      settings->BB_current = block->b_number;
    }
    if (block->c_flag == ON) {
      settings->CC_axis_offset = (settings->CC_current +
                                  settings->CC_axis_offset - block->c_number);
      settings->CC_current = block->c_number;
    }
    if (block->u_flag == ON) {
      settings->u_axis_offset = (settings->u_current +
                                 settings->u_axis_offset - block->u_number);
      settings->u_current = block->u_number;
    }
    if (block->v_flag == ON) {
      settings->v_axis_offset = (settings->v_current +
                                 settings->v_axis_offset - block->v_number);
      settings->v_current = block->v_number;
    }
    if (block->w_flag == ON) {
      settings->w_axis_offset = (settings->w_current +
                                 settings->w_axis_offset - block->w_number);
      settings->w_current = block->w_number;
    }

    SET_ORIGIN_OFFSETS(settings->origin_offset_x + settings->axis_offset_x,
                       settings->origin_offset_y + settings->axis_offset_y,
                       settings->origin_offset_z + settings->axis_offset_z,
                       (settings->AA_origin_offset +
                        settings->AA_axis_offset),
                       (settings->BB_origin_offset +
                        settings->BB_axis_offset),
                       (settings->CC_origin_offset +
                        settings->CC_axis_offset),
                       (settings->u_origin_offset +
                        settings->u_axis_offset),
                       (settings->v_origin_offset +
                        settings->v_axis_offset),
                       (settings->w_origin_offset +
                        settings->w_axis_offset));
    
    pars[5211] = PROGRAM_TO_USER_LEN(settings->axis_offset_x);
    pars[5212] = PROGRAM_TO_USER_LEN(settings->axis_offset_y);
    pars[5213] = PROGRAM_TO_USER_LEN(settings->axis_offset_z);
    pars[5214] = PROGRAM_TO_USER_ANG(settings->AA_axis_offset);
    pars[5215] = PROGRAM_TO_USER_ANG(settings->BB_axis_offset);
    pars[5216] = PROGRAM_TO_USER_ANG(settings->CC_axis_offset);
    pars[5217] = PROGRAM_TO_USER_LEN(settings->u_axis_offset);
    pars[5218] = PROGRAM_TO_USER_LEN(settings->v_axis_offset);
    pars[5219] = PROGRAM_TO_USER_LEN(settings->w_axis_offset);
  } else if ((g_code == G_92_1) || (g_code == G_92_2)) {
    pars[5210] = 0.0;
    settings->current_x = settings->current_x + settings->axis_offset_x;
    settings->current_y = settings->current_y + settings->axis_offset_y;
    settings->current_z = settings->current_z + settings->axis_offset_z;
    settings->AA_current = (settings->AA_current + settings->AA_axis_offset);
    settings->BB_current = (settings->BB_current + settings->BB_axis_offset);
    settings->CC_current = (settings->CC_current + settings->CC_axis_offset);
    settings->u_current = (settings->u_current + settings->u_axis_offset);
    settings->v_current = (settings->v_current + settings->v_axis_offset);
    settings->w_current = (settings->w_current + settings->w_axis_offset);
    SET_ORIGIN_OFFSETS(settings->origin_offset_x,
                       settings->origin_offset_y, settings->origin_offset_z,
                       settings->AA_origin_offset,
                       settings->BB_origin_offset,
                       settings->CC_origin_offset,
                       settings->u_origin_offset,
                       settings->v_origin_offset,
                       settings->w_origin_offset);
    settings->axis_offset_x = 0.0;
    settings->axis_offset_y = 0.0;
    settings->axis_offset_z = 0.0;
    settings->AA_axis_offset = 0.0;
    settings->BB_axis_offset = 0.0;
    settings->CC_axis_offset = 0.0;
    settings->u_axis_offset = 0.0;
    settings->v_axis_offset = 0.0;
    settings->w_axis_offset = 0.0;
    if (g_code == G_92_1) {
      pars[5211] = 0.0;
      pars[5212] = 0.0;
      pars[5213] = 0.0;
      pars[5214] = 0.0;
      pars[5215] = 0.0;
      pars[5216] = 0.0;
      pars[5217] = 0.0;
      pars[5218] = 0.0;
      pars[5219] = 0.0;
    }
  } else if (g_code == G_92_3) {
    pars[5210] = 1.0;
    settings->current_x =
      settings->current_x + settings->axis_offset_x - USER_TO_PROGRAM_LEN(pars[5211]);
    settings->current_y =
      settings->current_y + settings->axis_offset_y - USER_TO_PROGRAM_LEN(pars[5212]);
    settings->current_z =
      settings->current_z + settings->axis_offset_z - USER_TO_PROGRAM_LEN(pars[5213]);
    settings->AA_current =
      settings->AA_current + settings->AA_axis_offset - USER_TO_PROGRAM_ANG(pars[5214]);
    settings->BB_current =
      settings->BB_current + settings->BB_axis_offset - USER_TO_PROGRAM_ANG(pars[5215]);
    settings->CC_current =
      settings->CC_current + settings->CC_axis_offset - USER_TO_PROGRAM_ANG(pars[5216]);
    settings->u_current =
      settings->u_current + settings->u_axis_offset - USER_TO_PROGRAM_LEN(pars[5217]);
    settings->v_current =
      settings->v_current + settings->v_axis_offset - USER_TO_PROGRAM_LEN(pars[5218]);
    settings->w_current =
      settings->w_current + settings->w_axis_offset - USER_TO_PROGRAM_LEN(pars[5219]);

    settings->axis_offset_x = USER_TO_PROGRAM_LEN(pars[5211]);
    settings->axis_offset_y = USER_TO_PROGRAM_LEN(pars[5212]);
    settings->axis_offset_z = USER_TO_PROGRAM_LEN(pars[5213]);
    settings->AA_axis_offset = USER_TO_PROGRAM_ANG(pars[5214]);
    settings->BB_axis_offset = USER_TO_PROGRAM_ANG(pars[5215]);
    settings->CC_axis_offset = USER_TO_PROGRAM_ANG(pars[5216]);
    settings->u_axis_offset = USER_TO_PROGRAM_LEN(pars[5217]);
    settings->v_axis_offset = USER_TO_PROGRAM_LEN(pars[5218]);
    settings->w_axis_offset = USER_TO_PROGRAM_LEN(pars[5219]);
    SET_ORIGIN_OFFSETS(settings->origin_offset_x + settings->axis_offset_x,
                       settings->origin_offset_y + settings->axis_offset_y,
                       settings->origin_offset_z + settings->axis_offset_z,
                       (settings->AA_origin_offset +
                        settings->AA_axis_offset),
                       (settings->BB_origin_offset +
                        settings->BB_axis_offset),
                       (settings->CC_origin_offset +
                        settings->CC_axis_offset),
                       (settings->u_origin_offset +
                        settings->u_axis_offset),
                       (settings->v_origin_offset +
                        settings->v_axis_offset),
                       (settings->w_origin_offset +
                        settings->w_axis_offset));

  } else
    ERS(NCE_BUG_CODE_NOT_IN_G92_SERIES);

  return INTERP_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rdi, %r12
cmpl $0x0, 0x624(%rcx)
je 0xff5d
leaq 0x21466(%rip), %rdi     # 0x31372
callq 0xb220
movq %r12, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0xb8e0
movq 0x2d03b(%rip), %rbx     # 0x3cf60
leaq 0xc6d0(%rbx), %rdi
leaq 0x20300(%rip), %rsi     # 0x30233
pushq $0x50
popq %rdx
callq 0xb940
andw $0x0, 0xc71f(%rbx)
movl $0x1, 0xd670(%rbx)
pushq $0x5
popq %rax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rcx, %rbx
movq %rdx, %r14
movl %esi, %r15d
movb (%rdx), %al
cmpb $0x1, %al
jne 0xff91
cmpl $0x0, 0x1e6cc(%rbx)
je 0xff91
movsd 0x8(%r14), %xmm0
andpd 0x1e09d(%rip), %xmm0    # 0x2e020
ucomisd 0x1ff2d(%rip), %xmm0    # 0x2feb8
jae 0x10319
movb 0x10(%r14), %cl
cmpb $0x1, %cl
jne 0xffbf
cmpl $0x0, 0x1e6d0(%rbx)
je 0xffbf
movsd 0x18(%r14), %xmm0
andpd 0x1e06f(%rip), %xmm0    # 0x2e020
ucomisd 0x1feff(%rip), %xmm0    # 0x2feb8
jae 0x10c0c
movb 0x20(%r14), %dl
cmpb $0x1, %dl
jne 0xffed
cmpl $0x0, 0x1e6d4(%rbx)
je 0xffed
movsd 0x28(%r14), %xmm0
andpd 0x1e041(%rip), %xmm0    # 0x2e020
ucomisd 0x1fed1(%rip), %xmm0    # 0x2feb8
jae 0x10c22
cmpl $0x398, %r15d           # imm = 0x398
jne 0x101a8
movabsq $0x3ff0000000000000, %rsi # imm = 0x3FF0000000000000
movq %rsi, 0xba90(%rbx)
cmpb $0x1, 0x270(%r14)
jne 0x10042
movsd 0x600(%rbx), %xmm0
addsd 0x118(%rbx), %xmm0
movsd 0x278(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rbx)
movsd %xmm1, 0x600(%rbx)
cmpb $0x1, 0x280(%r14)
jne 0x10079
movsd 0x608(%rbx), %xmm0
addsd 0x120(%rbx), %xmm0
movsd 0x288(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x120(%rbx)
movsd %xmm1, 0x608(%rbx)
cmpb $0x1, 0x290(%r14)
jne 0x100b0
movsd 0x610(%rbx), %xmm0
addsd 0x128(%rbx), %xmm0
movsd 0x298(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x128(%rbx)
movsd %xmm1, 0x610(%rbx)
testb %al, %al
je 0x100d0
movsd 0x8(%rbx), %xmm0
addsd (%rbx), %xmm0
movsd 0x8(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, (%rbx)
movsd %xmm1, 0x8(%rbx)
testb %cl, %cl
je 0x100f2
movsd 0x20(%rbx), %xmm0
addsd 0x18(%rbx), %xmm0
movsd 0x18(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x18(%rbx)
movsd %xmm1, 0x20(%rbx)
testb %dl, %dl
je 0x10114
movsd 0x38(%rbx), %xmm0
addsd 0x30(%rbx), %xmm0
movsd 0x28(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rbx)
movsd %xmm1, 0x38(%rbx)
cmpb $0x1, 0x244(%r14)
jne 0x1013f
movsd 0x50(%rbx), %xmm0
addsd 0x48(%rbx), %xmm0
movsd 0x248(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x48(%rbx)
movsd %xmm1, 0x50(%rbx)
cmpb $0x1, 0x250(%r14)
jne 0x1016a
movsd 0x68(%rbx), %xmm0
addsd 0x60(%rbx), %xmm0
movsd 0x258(%r14), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rbx)
movsd %xmm1, 0x68(%rbx)
cmpb $0x0, 0x260(%r14)
je 0x10332
movsd 0x80(%rbx), %xmm8
addsd 0x78(%rbx), %xmm8
movsd 0x268(%r14), %xmm0
subsd %xmm0, %xmm8
movsd %xmm8, 0x78(%rbx)
movsd %xmm0, 0x80(%rbx)
jmp 0x10338
leal -0x399(%r15), %eax
cmpl $0x1, %eax
ja 0x105d7
andq $0x0, 0xba90(%rbx)
movsd 0x600(%rbx), %xmm0
addsd 0x118(%rbx), %xmm0
movsd %xmm0, 0x600(%rbx)
movsd 0x608(%rbx), %xmm0
addsd 0x120(%rbx), %xmm0
movsd %xmm0, 0x608(%rbx)
movsd 0x610(%rbx), %xmm0
addsd 0x128(%rbx), %xmm0
movsd %xmm0, 0x610(%rbx)
movsd 0x8(%rbx), %xmm0
movsd 0x20(%rbx), %xmm1
addsd (%rbx), %xmm0
movsd %xmm0, 0x8(%rbx)
addsd 0x18(%rbx), %xmm1
movsd %xmm1, 0x20(%rbx)
movsd 0x38(%rbx), %xmm0
addsd 0x30(%rbx), %xmm0
movsd %xmm0, 0x38(%rbx)
movsd 0x50(%rbx), %xmm0
addsd 0x48(%rbx), %xmm0
movsd %xmm0, 0x50(%rbx)
movsd 0x68(%rbx), %xmm0
addsd 0x60(%rbx), %xmm0
movsd %xmm0, 0x68(%rbx)
movsd 0x80(%rbx), %xmm0
addsd 0x78(%rbx), %xmm0
movsd %xmm0, 0x80(%rbx)
movsd 0x17a0(%rbx), %xmm0
movsd 0x17a8(%rbx), %xmm1
movsd 0x17b0(%rbx), %xmm2
movsd 0x10(%rbx), %xmm3
movsd 0x28(%rbx), %xmm4
movsd 0x40(%rbx), %xmm5
movsd 0x58(%rbx), %xmm6
movsd 0x70(%rbx), %xmm7
movsd 0x88(%rbx), %xmm8
movsd %xmm8, (%rsp)
callq 0xb550
andq $0x0, (%rbx)
andq $0x0, 0x18(%rbx)
andq $0x0, 0x30(%rbx)
andq $0x0, 0x48(%rbx)
andq $0x0, 0x60(%rbx)
andq $0x0, 0x78(%rbx)
andq $0x0, 0x128(%rbx)
xorl %eax, %eax
xorpd %xmm0, %xmm0
movupd %xmm0, 0x118(%rbx)
cmpl $0x399, %r15d           # imm = 0x399
jne 0xff50
movupd %xmm0, 0xbac8(%rbx)
movupd %xmm0, 0xbab8(%rbx)
movupd %xmm0, 0xbaa8(%rbx)
movupd %xmm0, 0xba98(%rbx)
andq $0x0, 0xbad8(%rbx)
jmp 0xff50
leaq 0x21085(%rip), %rdi     # 0x313a5
callq 0xb220
movsd 0x8(%r14), %xmm0
pushq $0x41
jmp 0x10c36
movsd 0x78(%rbx), %xmm8
movsd 0x17a0(%rbx), %xmm0
addsd 0x118(%rbx), %xmm0
movsd 0x17a8(%rbx), %xmm1
addsd 0x120(%rbx), %xmm1
movsd 0x17b0(%rbx), %xmm2
addsd 0x128(%rbx), %xmm2
movsd 0x10(%rbx), %xmm3
movsd 0x28(%rbx), %xmm4
addsd (%rbx), %xmm3
addsd 0x18(%rbx), %xmm4
movsd 0x40(%rbx), %xmm5
addsd 0x30(%rbx), %xmm5
movsd 0x58(%rbx), %xmm6
addsd 0x48(%rbx), %xmm6
movsd 0x70(%rbx), %xmm7
addsd 0x60(%rbx), %xmm7
addsd 0x88(%rbx), %xmm8
movsd %xmm8, (%rsp)
callq 0xb550
movq 0x2cbac(%rip), %r14     # 0x3cf60
movl 0x1690(%r14), %eax
movsd 0x1fafd(%rip), %xmm0    # 0x2fec0
movsd %xmm0, -0x40(%rbp)
cmpl $0x3, %eax
je 0x103d5
movsd 0x1facb(%rip), %xmm0    # 0x2fea0
movsd 0x1faeb(%rip), %xmm1    # 0x2fec8
movsd %xmm1, -0x38(%rbp)
cmpl $0x1, %eax
je 0x103eb
movapd %xmm0, %xmm1
mulsd 0x118(%rbx), %xmm1
movsd %xmm1, -0x28(%rbp)
callq 0xba40
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xba98(%rbx)
movl 0x1690(%r14), %eax
movsd 0x1faa7(%rip), %xmm0    # 0x2fec0
cmpl $0x3, %eax
je 0x10426
movsd 0x1fa7a(%rip), %xmm0    # 0x2fea0
movsd 0x1fa9a(%rip), %xmm1    # 0x2fec8
cmpl $0x1, %eax
je 0x10437
movapd %xmm0, %xmm1
mulsd 0x120(%rbx), %xmm1
movsd %xmm1, -0x28(%rbp)
callq 0xba40
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbaa0(%rbx)
movl 0x1690(%r14), %eax
movsd 0x1fa5b(%rip), %xmm0    # 0x2fec0
cmpl $0x3, %eax
je 0x10472
movsd 0x1fa2e(%rip), %xmm0    # 0x2fea0
movsd 0x1fa4e(%rip), %xmm1    # 0x2fec8
cmpl $0x1, %eax
je 0x10483
movapd %xmm0, %xmm1
mulsd 0x128(%rbx), %xmm1
movsd %xmm1, -0x28(%rbp)
callq 0xba40
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbaa8(%rbx)
movsd (%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xc090
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbab0(%rbx)
movsd 0x18(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xc090
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbab8(%rbx)
movsd 0x30(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xc090
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbac0(%rbx)
movl 0x1690(%r14), %eax
movsd 0x1f9bc(%rip), %xmm0    # 0x2fec0
cmpl $0x3, %eax
je 0x10511
movsd 0x1f98f(%rip), %xmm0    # 0x2fea0
movsd 0x1f9af(%rip), %xmm1    # 0x2fec8
cmpl $0x1, %eax
je 0x10522
movapd %xmm0, %xmm1
mulsd 0x48(%rbx), %xmm1
movsd %xmm1, -0x28(%rbp)
callq 0xba40
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbac8(%rbx)
movl 0x1690(%r14), %eax
movsd 0x1f973(%rip), %xmm0    # 0x2fec0
cmpl $0x3, %eax
je 0x1055a
movsd 0x1f946(%rip), %xmm0    # 0x2fea0
movsd 0x1f966(%rip), %xmm1    # 0x2fec8
cmpl $0x1, %eax
je 0x1056b
movapd %xmm0, %xmm1
mulsd 0x60(%rbx), %xmm1
movsd %xmm1, -0x28(%rbp)
callq 0xba40
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, 0xbad0(%rbx)
movl 0x1690(%r14), %eax
cmpl $0x3, %eax
je 0x105a0
movsd 0x1f905(%rip), %xmm0    # 0x2fea0
movsd %xmm0, -0x40(%rbp)
cmpl $0x1, %eax
je 0x105af
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
mulsd 0x78(%rbx), %xmm0
movsd %xmm0, -0x38(%rbp)
callq 0xba40
mulsd -0x38(%rbp), %xmm0
movsd %xmm0, 0xbad8(%rbx)
xorl %eax, %eax
jmp 0xff50
cmpl $0x39b, %r15d           # imm = 0x39B
jne 0x10c49
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xba90(%rbx)
movsd 0x600(%rbx), %xmm0
addsd 0x118(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xba98(%rbx), %xmm0
movsd %xmm0, -0x38(%rbp)
callq 0xba40
movq 0x2c93d(%rip), %r14     # 0x3cf60
movl 0x1690(%r14), %eax
movsd 0x1f88e(%rip), %xmm1    # 0x2fec0
movsd %xmm1, -0x40(%rbp)
cmpl $0x3, %eax
je 0x10644
movsd 0x1f85c(%rip), %xmm1    # 0x2fea0
movsd -0x38(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f873(%rip), %xmm0    # 0x2fec8
movsd %xmm0, -0x38(%rbp)
cmpl $0x1, %eax
je 0x10663
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, 0x600(%rbx)
movsd 0x608(%rbx), %xmm0
addsd 0x120(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbaa0(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f812(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x106bb
movsd 0x1f7e5(%rip), %xmm1    # 0x2fea0
movsd -0x30(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f7fc(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x106d5
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, 0x608(%rbx)
movsd 0x610(%rbx), %xmm0
addsd 0x128(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbaa8(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f7a0(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x1072d
movsd 0x1f773(%rip), %xmm1    # 0x2fea0
movsd -0x30(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f78a(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x10747
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, 0x610(%rbx)
movsd 0x8(%rbx), %xmm0
addsd (%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbab0(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xc090
movsd -0x30(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd -0x28(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rbx)
movsd 0x20(%rbx), %xmm0
addsd 0x18(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbab8(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xc090
movsd -0x30(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd -0x28(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rbx)
movsd 0x38(%rbx), %xmm0
addsd 0x30(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbac0(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xc090
movsd -0x30(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd -0x28(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rbx)
movsd 0x50(%rbx), %xmm0
addsd 0x48(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbac8(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f68d(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x10840
movsd 0x1f660(%rip), %xmm1    # 0x2fea0
movsd -0x30(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f677(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x1085a
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, 0x50(%rbx)
movsd 0x68(%rbx), %xmm0
addsd 0x60(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbad0(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f624(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x108a9
movsd 0x1f5f7(%rip), %xmm1    # 0x2fea0
movsd -0x30(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f60e(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x108c3
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, 0x68(%rbx)
movsd 0x80(%rbx), %xmm0
addsd 0x78(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0xbad8(%rbx), %xmm0
movsd %xmm0, -0x30(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f5b8(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x10915
movsd 0x1f58b(%rip), %xmm1    # 0x2fea0
movsd -0x30(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f5a2(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x1092f
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd -0x28(%rbp), %xmm0
subsd %xmm2, %xmm0
movsd %xmm0, 0x80(%rbx)
movsd 0xba98(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f55b(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x10972
movsd 0x1f52e(%rip), %xmm1    # 0x2fea0
movsd -0x28(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f545(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x1098c
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, 0x118(%rbx)
movsd 0xbaa0(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f507(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x109c6
movsd 0x1f4da(%rip), %xmm1    # 0x2fea0
movsd -0x28(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f4f1(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x109e0
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, 0x120(%rbx)
movsd 0xbaa8(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f4b3(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x10a1a
movsd 0x1f486(%rip), %xmm1    # 0x2fea0
movsd -0x28(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f49d(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x10a34
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, 0x128(%rbx)
movsd 0xbab0(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xc090
movsd -0x28(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, (%rbx)
movsd 0xbab8(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xc090
movsd -0x28(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rbx)
movsd 0xbac0(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xc090
movsd -0x28(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x30(%rbx)
movsd 0xbac8(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f400(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x10acd
movsd 0x1f3d3(%rip), %xmm1    # 0x2fea0
movsd -0x28(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f3ea(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x10ae7
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, 0x48(%rbx)
movsd 0xbad0(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
movsd 0x1f3af(%rip), %xmm1    # 0x2fec0
cmpl $0x3, %eax
je 0x10b1e
movsd 0x1f382(%rip), %xmm1    # 0x2fea0
movsd -0x28(%rbp), %xmm2
divsd %xmm0, %xmm2
movsd 0x1f399(%rip), %xmm0    # 0x2fec8
cmpl $0x1, %eax
je 0x10b38
movapd %xmm1, %xmm0
divsd %xmm0, %xmm2
movsd %xmm2, 0x60(%rbx)
movsd 0xbad8(%rbx), %xmm0
movsd %xmm0, -0x28(%rbp)
callq 0xba40
movl 0x1690(%r14), %eax
cmpl $0x3, %eax
je 0x10b6c
movsd 0x1f339(%rip), %xmm1    # 0x2fea0
movsd %xmm1, -0x40(%rbp)
movsd -0x28(%rbp), %xmm8
divsd %xmm0, %xmm8
cmpl $0x1, %eax
je 0x10b86
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
divsd -0x38(%rbp), %xmm8
movsd %xmm8, 0x78(%rbx)
movsd 0x17a0(%rbx), %xmm0
addsd 0x118(%rbx), %xmm0
movsd 0x17a8(%rbx), %xmm1
addsd 0x120(%rbx), %xmm1
movsd 0x17b0(%rbx), %xmm2
addsd 0x128(%rbx), %xmm2
movsd 0x10(%rbx), %xmm3
movsd 0x28(%rbx), %xmm4
addsd (%rbx), %xmm3
addsd 0x18(%rbx), %xmm4
movsd 0x40(%rbx), %xmm5
addsd 0x30(%rbx), %xmm5
movsd 0x58(%rbx), %xmm6
addsd 0x48(%rbx), %xmm6
movsd 0x70(%rbx), %xmm7
addsd 0x60(%rbx), %xmm7
addsd 0x88(%rbx), %xmm8
movsd %xmm8, (%rsp)
callq 0xb550
jmp 0x105d0
leaq 0x20792(%rip), %rdi     # 0x313a5
callq 0xb220
movsd 0x18(%r14), %xmm0
pushq $0x42
jmp 0x10c36
leaq 0x2077c(%rip), %rdi     # 0x313a5
callq 0xb220
movsd 0x28(%r14), %xmm0
pushq $0x43
popq %rdx
movq %r12, %rdi
movq %rax, %rsi
movb $0x1, %al
callq 0xb8e0
jmp 0xff1e
leaq 0x20790(%rip), %rdi     # 0x313e0
jmp 0xff0c
nop