// File: sundale[P]gcode/rs274ngc/interp_convert.cc
// Function: Interp::convert_m(block_struct*, setup_struct*)
int Interp::convert_m(block_pointer block,       //!< pointer to a block of RS274/NGC instructions
                     setup_pointer settings)    //!< pointer to machine settings                 
{
  int type;
  double timeout;               // timeout for M66
  double *pars;                 /* short name for settings->parameters            */

  pars = settings->parameters;

  /* The M62-65 commands are used for DIO */
  /* M62 sets a DIO synched with motion
     M63 clears a DIO synched with motion
     M64 sets a DIO imediately
     M65 clears a DIO imediately 
     M66 waits for an input
     M67 reads a digital input
     M68 reads an analog input*/

  if (block->m_modes[5] == 62) {
      CHKS((settings->cutter_comp_side != OFF),
           (_("Cannot set motion output with cutter radius compensation on")));  // XXX
      CHKS((block->p_flag == OFF), _("No valid P word with M62"));
      SET_MOTION_OUTPUT_BIT(round_to_int(block->p_number));
  } else if (block->m_modes[5] == 63) {
      CHKS((settings->cutter_comp_side != OFF),
           (_("Cannot set motion digital output with cutter radius compensation on")));  // XXX
      CHKS((block->p_flag == OFF), _("No valid P word with M63"));
      CLEAR_MOTION_OUTPUT_BIT(round_to_int(block->p_number));
  } else if (block->m_modes[5] == 64) {
      CHKS((settings->cutter_comp_side != OFF),
           (_("Cannot set auxiliary digital output with cutter radius compensation on")));  // XXX
      CHKS((block->p_flag == OFF), _("No valid P word with M64"));
      SET_AUX_OUTPUT_BIT(round_to_int(block->p_number));
  } else if (block->m_modes[5] == 65) {
      CHKS((settings->cutter_comp_side != OFF),
           (_("Cannot set auxiliary digital output with cutter radius compensation on")));  // XXX
      CHKS((block->p_flag == OFF), _("No valid P word with M65"));
      CLEAR_AUX_OUTPUT_BIT(round_to_int(block->p_number));
  } else if (block->m_modes[5] == 66) {
    //P-word = digital channel
    //E-word = analog channel
    //L-word = wait type (immediate, rise, fall, high, low)
    //Q-word = timeout
    // it is an error if:

    // P and E word are specified together
    CHKS(((block->p_flag == ON) && (block->e_flag == ON)),
	NCE_BOTH_DIGITAL_AND_ANALOG_INPUT_SELECTED);

    // L-word not 0, and timeout <= 0 
    CHKS(((block->q_number <= 0) && (block->l_flag == ON) && (round_to_int(block->l_number) > 0)),
	NCE_ZERO_TIMEOUT_WITH_WAIT_NOT_IMMEDIATE);
	
    // E-word specified (analog input) and wait type not immediate
    CHKS(((block->e_flag == ON) && (block->l_flag == ON) && (round_to_int(block->l_number) != 0)),
	NCE_ANALOG_INPUT_WITH_WAIT_NOT_IMMEDIATE);

    // missing P or E (or invalid = negative)
    CHKS( ((block->p_flag == ON) && (round_to_int(block->p_number) < 0)) || 
         ((block->e_flag == ON) && (round_to_int(block->e_number) < 0)) ||
	 ((block->p_flag == OFF) && (block->e_flag == OFF)) ,
	NCE_INVALID_OR_MISSING_P_AND_E_WORDS_FOR_WAIT_INPUT);

    if (block->p_flag == ON) { // got a digital input
	if (round_to_int(block->p_number) < 0) // safety check for negative words
	    ERS("invalid P-word with M66");
	    
	if (block->l_flag == ON) {
	    type = round_to_int(block->l_number);
	} else {
	    type = WAIT_MODE_IMMEDIATE;
        }
	    
	if (block->q_number > 0) {
	    timeout = block->q_number;
	} else {
	    timeout = 0;
        }

        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot wait for digital input with cutter radius compensation on")));

	int ret = WAIT(round_to_int(block->p_number), DIGITAL_INPUT, type, timeout);
	//WAIT returns 0 on success, -1 for out of bounds
	CHKS((ret == -1), NCE_DIGITAL_INPUT_INVALID_ON_M66);
	if (ret == 0) {
	    settings->input_flag = ON;
	    settings->input_index = round_to_int(block->p_number);
	    settings->input_digital = ON;
	}
    } else if (round_to_int(block->e_number) >= 0) { // got an analog input
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot wait for analog input with cutter radius compensation on")));

	int ret = WAIT(round_to_int(block->e_number), ANALOG_INPUT, 0, 0); //WAIT returns 0 on success, -1 for out of bounds
	CHKS((ret == -1), NCE_ANALOG_INPUT_INVALID_ON_M66);
	if (ret == 0) {
	    settings->input_flag = ON;
	    settings->input_index = round_to_int(block->e_number);
	    settings->input_digital = OFF;
	}
    } 
  } else if (block->m_modes[5] == 67) {
    //E-word = analog channel
    //Q-word = analog value
      CHKS((settings->cutter_comp_side != OFF),
           (_("Cannot set motion analog output with cutter radius compensation on")));  // XXX
      CHKS((block->e_flag == OFF) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M67")));
      SET_MOTION_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number);
  } else if (block->m_modes[5] == 68) {
    //E-word = analog channel
    //Q-word = analog value
      CHKS((settings->cutter_comp_side != OFF),
           (_("Cannot set auxiliary analog output with cutter radius compensation on")));  // XXX
      CHKS((block->e_flag == OFF) || (round_to_int(block->e_number) < 0), (_("Invalid analog index with M68")));
      SET_AUX_OUTPUT_VALUE(round_to_int(block->e_number), block->q_number);
  }    
  
  if (block->m_modes[6] != -1) {
    // when we have M6 do the actual toolchange
    if (block->m_modes[6] == 6)
	CHP(convert_tool_change(settings));
	
    // when we have M61 we only change the number of the loaded tool (for example on startup)
    if (block->m_modes[6] == 61) {
	CHKS((round_to_int(block->q_number) < 0), (_("Need positive Q-word to specify tool number with M61")));
	settings->current_pocket = round_to_int(block->q_number);
	CHANGE_TOOL_NUMBER(round_to_int(block->q_number));
    }    
#ifdef DEBATABLE
    // I would like this, but it's a big change.  It changes the
    // operation of legal ngc programs, but it could be argued that
    // those programs are buggy or likely to be not what the author
    // intended.

    // It would allow you to turn on G43 after loading the first tool,
    // and then not worry about it through the program.  When you
    // finally unload the last tool, G43 mode is canceled.

    if(settings->active_g_codes[9] == G_43) {
        if(settings->selected_tool_slot > 0) {
            struct block_struct g43;
            init_block(&g43);
            block->g_modes[_gees[G_43]] = G_43;
            CHP(convert_tool_length_offset(G_43, &g43, settings));
        } else {
            struct block_struct g49;
            init_block(&g49);
            block->g_modes[_gees[G_49]] = G_49;
            CHP(convert_tool_length_offset(G_49, &g49, settings));
        }
    }
#endif
  }

  if (block->m_modes[7] == 3) {
      enqueue_START_SPINDLE_CLOCKWISE();
      settings->spindle_turning = CANON_CLOCKWISE;
  } else if (block->m_modes[7] == 4) {
      enqueue_START_SPINDLE_COUNTERCLOCKWISE();
      settings->spindle_turning = CANON_COUNTERCLOCKWISE;
  } else if (block->m_modes[7] == 5) {
      enqueue_STOP_SPINDLE_TURNING();
      settings->spindle_turning = CANON_STOPPED;
  }

  if (block->m_modes[8] == 7) {
      enqueue_MIST_ON();
      settings->mist = ON;
  } else if (block->m_modes[8] == 8) {
      enqueue_FLOOD_ON();
      settings->flood = ON;
  } else if (block->m_modes[8] == 9) {
      enqueue_MIST_OFF();
      settings->mist = OFF;
      enqueue_FLOOD_OFF();
      settings->flood = OFF;
  }

/* No axis clamps in this version
  if (block->m_modes[2] == 26)
    {
#ifdef DEBUG_EMC
      COMMENT("interpreter: automatic A-axis clamping turned on");
#endif
      settings->a_axis_clamping = ON;
    }
  else if (block->m_modes[2] == 27)
    {
#ifdef DEBUG_EMC
      COMMENT("interpreter: automatic A-axis clamping turned off");
#endif
      settings->a_axis_clamping = OFF;
    }
*/

  if (block->m_modes[9] == 48) {
    CHKS((settings->cutter_comp_side != OFF),
         (_("Cannot enable overrides with cutter radius compensation on")));  // XXX
    ENABLE_FEED_OVERRIDE();
    ENABLE_SPEED_OVERRIDE();
    settings->feed_override = ON;
    settings->speed_override = ON;
  } else if (block->m_modes[9] == 49) {
    CHKS((settings->cutter_comp_side != OFF),
         (_("Cannot disable overrides with cutter radius compensation on")));  // XXX
    DISABLE_FEED_OVERRIDE();
    DISABLE_SPEED_OVERRIDE();
    settings->feed_override = OFF;
    settings->speed_override = OFF;
  }

  if (block->m_modes[9] == 50) {
    if (block->p_number != 0) {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot enable overrides with cutter radius compensation on")));  // XXX
	ENABLE_FEED_OVERRIDE();
	settings->feed_override = ON;
    } else {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot disable overrides with cutter radius compensation on")));  // XXX
        DISABLE_FEED_OVERRIDE();
	settings->feed_override = OFF;
    }
  }

  if (block->m_modes[9] == 51) {
    if (block->p_number != 0) {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot enable overrides with cutter radius compensation on")));  // XXX
	ENABLE_SPEED_OVERRIDE();
	settings->speed_override = ON;
    } else {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot disable overrides with cutter radius compensation on")));  // XXX
	DISABLE_SPEED_OVERRIDE();
	settings->speed_override = OFF;
    }
  }
  
  if (block->m_modes[9] == 52) {
    if (block->p_number != 0) {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot enable overrides with cutter radius compensation on")));  // XXX
	ENABLE_ADAPTIVE_FEED();
	settings->adaptive_feed = ON;
    } else {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot disable overrides with cutter radius compensation on")));  // XXX
	DISABLE_ADAPTIVE_FEED();
	settings->adaptive_feed = OFF;
    }
  }
  
  if (block->m_modes[9] == 53) {
    if (block->p_number != 0) {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot enable overrides with cutter radius compensation on")));  // XXX
	ENABLE_FEED_HOLD();
	settings->feed_hold = ON;
    } else {
        CHKS((settings->cutter_comp_side != OFF),
             (_("Cannot disable overrides with cutter radius compensation on")));  // XXX
	DISABLE_FEED_HOLD();
	settings->feed_hold = OFF;
    }
  }

  /* user-defined M codes */
  if (block->m_modes[10] != -1) {
    int index = block->m_modes[10];
    if (USER_DEFINED_FUNCTION[index - 100] == 0) {
      CHKS(1, NCE_UNKNOWN_M_CODE_USED);
    }
    enqueue_M_USER_COMMAND(index,block->p_number,block->q_number);
  }
  return INTERP_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rax
addq $0x17c0, %rax           # imm = 0x17C0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x3e, 0x1f4(%rax)
jne 0x26f25
jmp 0x26cf0
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x26dd6
jmp 0x26d03
leaq 0x537ff(%rip), %rdi     # 0x7a509
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x6023c(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x6022b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x6021d(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x537ed(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x601f7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x601e9(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x601d1(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x601c1(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x601b4(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x601a6(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x26dd8
jmp 0x26dda
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x26ec7
jmp 0x26df4
leaq 0x5377e(%rip), %rdi     # 0x7a579
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x6014b(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x6013a(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x6012c(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x536fc(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x60106(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x600f8(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x600e0(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x600d0(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x600c3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x600b5(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x26ec9
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x26ef9
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x51f72(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
jmp 0x26f12
movq -0x18(%rbp), %rax
movsd 0x51f5b(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x58(%rbp), %xmm0
cvttsd2si %xmm0, %edi
callq 0x120f0
jmp 0x28942
movq -0x18(%rbp), %rax
cmpl $0x3f, 0x1f4(%rax)
jne 0x2716d
jmp 0x26f38
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x2701e
jmp 0x26f4b
leaq 0x53640(%rip), %rdi     # 0x7a592
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5fff4(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5ffe3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5ffd5(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x535a5(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5ffaf(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ffa1(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5ff89(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5ff79(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5ff6c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ff5e(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27020
jmp 0x27022
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2710f
jmp 0x2703c
leaq 0x53593(%rip), %rdi     # 0x7a5d6
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5ff03(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5fef2(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5fee4(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x534b4(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5febe(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5feb0(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5fe98(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5fe88(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5fe7b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fe6d(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27111
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x27141
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x51d2a(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
jmp 0x2715a
movq -0x18(%rbp), %rax
movsd 0x51d13(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
cvttsd2si %xmm0, %edi
callq 0x10960
jmp 0x28940
movq -0x18(%rbp), %rax
cmpl $0x40, 0x1f4(%rax)
jne 0x273b5
jmp 0x27180
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x27266
jmp 0x27193
leaq 0x53455(%rip), %rdi     # 0x7a5ef
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5fdac(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5fd9b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5fd8d(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5335d(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5fd67(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fd59(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5fd41(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5fd31(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5fd24(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fd16(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27268
jmp 0x2726a
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x27357
jmp 0x27284
leaq 0x533ab(%rip), %rdi     # 0x7a636
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5fcbb(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5fcaa(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5fc9c(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5326c(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5fc76(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fc68(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5fc50(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5fc40(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5fc33(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fc25(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27359
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x27389
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x51ae2(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
jmp 0x273a2
movq -0x18(%rbp), %rax
movsd 0x51acb(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x68(%rbp), %xmm0
cvttsd2si %xmm0, %edi
callq 0x11ad0
jmp 0x2893e
movq -0x18(%rbp), %rax
cmpl $0x41, 0x1f4(%rax)
jne 0x275fd
jmp 0x273c8
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x274ae
jmp 0x273db
leaq 0x5320d(%rip), %rdi     # 0x7a5ef
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5fb64(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5fb53(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5fb45(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x53115(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5fb1f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fb11(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5faf9(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5fae9(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5fadc(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5face(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x274b0
jmp 0x274b2
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2759f
jmp 0x274cc
leaq 0x5317c(%rip), %rdi     # 0x7a64f
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5fa73(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5fa62(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5fa54(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x53024(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5fa2e(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5fa20(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5fa08(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f9f8(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f9eb(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f9dd(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x275a1
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x275d1
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x5189a(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
jmp 0x275ea
movq -0x18(%rbp), %rax
movsd 0x51883(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0x70(%rbp)
movsd -0x70(%rbp), %xmm0
cvttsd2si %xmm0, %edi
callq 0x11210
jmp 0x2893c
movq -0x18(%rbp), %rax
cmpl $0x42, 0x1f4(%rax)
jne 0x283c1
jmp 0x27610
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x27715
movq -0x18(%rbp), %rax
movb 0x139(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x27715
jmp 0x27642
leaq 0x5301f(%rip), %rdi     # 0x7a668
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5f8fd(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5f8ec(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5f8de(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x52eae(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5f8b8(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f8aa(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5f892(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f882(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f875(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f867(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27717
jmp 0x27719
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x220(%rax), %xmm0
jb 0x2787e
movq -0x18(%rbp), %rax
movb 0x1cc(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x2787e
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x2777a
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm0
movsd 0x516f1(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
jmp 0x27797
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm0
movsd 0x516d2(%rip), %xmm1    # 0x78e60
addsd %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x78(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jle 0x2787e
jmp 0x277ab
leaq 0x52ef4(%rip), %rdi     # 0x7a6a6
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5f794(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5f783(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5f775(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x52d45(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5f74f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f741(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5f729(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f719(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f70c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f6fe(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27880
jmp 0x27882
movq -0x18(%rbp), %rax
movb 0x139(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x279ea
movq -0x18(%rbp), %rax
movb 0x1cc(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x279ea
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x278e6
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm0
movsd 0x51585(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
jmp 0x27903
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm0
movsd 0x51566(%rip), %xmm1    # 0x78e60
addsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x80(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
je 0x279ea
jmp 0x27917
leaq 0x52db8(%rip), %rdi     # 0x7a6d6
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5f628(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5f617(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5f609(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x52bd9(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5f5e3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f5d5(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5f5bd(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f5ad(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f5a0(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f592(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x279ec
jmp 0x279ee
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x27a66
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x27a35
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x51439(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x88(%rbp)
jmp 0x27a51
movq -0x18(%rbp), %rax
movsd 0x5141f(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x88(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jl 0x27b0a
movq -0x18(%rbp), %rax
movb 0x139(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x27ada
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x27aad
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x513c1(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x90(%rbp)
jmp 0x27ac9
movq -0x18(%rbp), %rax
movsd 0x513a7(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0x90(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jl 0x27b0a
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x27bdf
movq -0x18(%rbp), %rax
movb 0x139(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x27bdf
jmp 0x27b0c
leaq 0x52c00(%rip), %rdi     # 0x7a713
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5f433(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5f422(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5f414(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x529e4(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5f3ee(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f3e0(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5f3c8(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f3b8(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f3ab(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f39d(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27be1
movq -0x18(%rbp), %rax
movb 0x218(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x2809e
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x27c2c
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x51242(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x98(%rbp)
jmp 0x27c48
movq -0x18(%rbp), %rax
movsd 0x51228(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x98(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jge 0x27d2a
jmp 0x27c5f
movq -0x50(%rbp), %rdi
leaq 0x52ae2(%rip), %rsi     # 0x7a74c
movb $0x0, %al
callq 0x10df0
movq 0x5f2e8(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5f2d7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5f2c9(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x52899(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5f2a3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f295(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5f27d(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f26d(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f260(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f252(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
movq -0x18(%rbp), %rax
movb 0x1cc(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x27da6
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x27d75
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm0
movsd 0x510f9(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
jmp 0x27d95
movq -0x18(%rbp), %rax
cvtsi2sdl 0x1c8(%rax), %xmm0
movsd 0x510d7(%rip), %xmm1    # 0x78e60
addsd %xmm1, %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xa0(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x24(%rbp)
jmp 0x27dad
movl $0x0, -0x24(%rbp)
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x27dd5
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
movsd %xmm0, -0x30(%rbp)
jmp 0x27ddd
xorps %xmm0, %xmm0
movsd %xmm0, -0x30(%rbp)
jmp 0x27ddf
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x27ec5
jmp 0x27df2
leaq 0x5296b(%rip), %rdi     # 0x7a764
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5f14d(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5f13c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5f12e(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x526fe(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5f108(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f0fa(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5f0e2(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5f0d2(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5f0c5(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5f0b7(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x27ec7
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x27efa
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x50f74(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
jmp 0x27f16
movq -0x18(%rbp), %rax
movsd 0x50f5a(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0xa8(%rbp), %xmm0
cvttsd2si %xmm0, %edi
movl -0x24(%rbp), %edx
movsd -0x30(%rbp), %xmm0
movl $0x1, %esi
callq 0x10a60
movl %eax, -0x3c(%rbp)
cmpl $-0x1, -0x3c(%rbp)
jne 0x28016
jmp 0x27f43
leaq 0x5285b(%rip), %rdi     # 0x7a7a5
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5effc(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5efeb(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5efdd(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x525ad(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5efb7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5efa9(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5ef91(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5ef81(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5ef74(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ef66(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x28018
cmpl $0x0, -0x3c(%rbp)
jne 0x28099
movq -0x20(%rbp), %rax
movb $0x1, 0xc681(%rax)
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x210(%rax), %xmm0
jbe 0x2805c
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movsd 0x50e12(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
jmp 0x28078
movq -0x18(%rbp), %rax
movsd 0x50df8(%rip), %xmm0    # 0x78e60
addsd 0x210(%rax), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xb0(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0xc684(%rax)
movq -0x20(%rbp), %rax
movb $0x1, 0xc688(%rax)
jmp 0x283bc
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x280d1
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x50d9d(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0x280ed
movq -0x18(%rbp), %rax
movsd 0x50d83(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0xb8(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jl 0x283ba
jmp 0x28104
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x281ea
jmp 0x28117
leaq 0x526ac(%rip), %rdi     # 0x7a7ca
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5ee28(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5ee17(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5ee09(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x523d9(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5ede3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5edd5(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5edbd(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5edad(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5eda0(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ed92(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x281ec
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x2821f
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x50c4f(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xc0(%rbp)
jmp 0x2823b
movq -0x18(%rbp), %rax
movsd 0x50c35(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0xc0(%rbp), %xmm0
cvttsd2si %xmm0, %edi
xorl %edx, %edx
xorps %xmm0, %xmm0
movl %edx, %esi
callq 0x10a60
movl %eax, -0x40(%rbp)
cmpl $-0x1, -0x40(%rbp)
jne 0x28335
jmp 0x28262
leaq 0x525a1(%rip), %rdi     # 0x7a80a
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5ecdd(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5eccc(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5ecbe(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5228e(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5ec98(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ec8a(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5ec72(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5ec62(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5ec55(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ec47(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x28337
cmpl $0x0, -0x40(%rbp)
jne 0x283b8
movq -0x20(%rbp), %rax
movb $0x1, 0xc681(%rax)
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x2837b
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x50af3(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xc8(%rbp)
jmp 0x28397
movq -0x18(%rbp), %rax
movsd 0x50ad9(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xc8(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0xc684(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0xc688(%rax)
jmp 0x283ba
jmp 0x283bc
jmp 0x2893a
movq -0x18(%rbp), %rax
cmpl $0x43, 0x1f4(%rax)
jne 0x2867e
jmp 0x283d4
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x284ba
jmp 0x283e7
leaq 0x52440(%rip), %rdi     # 0x7a82e
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5eb58(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5eb47(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5eb39(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x52109(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5eb13(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5eb05(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5eaed(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5eadd(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5ead0(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5eac2(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x284bc
jmp 0x284be
movq -0x18(%rbp), %rax
movb 0x139(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x28536
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x28505
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x50969(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xd0(%rbp)
jmp 0x28521
movq -0x18(%rbp), %rax
movsd 0x5094f(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0xd0(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jge 0x2860b
jmp 0x28538
leaq 0x52332(%rip), %rdi     # 0x7a871
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5ea07(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5e9f6(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e9e8(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51fb8(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e9c2(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e9b4(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e99c(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e98c(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e97f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e971(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x2860d
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x28640
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x5082e(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xd8(%rbp)
jmp 0x2865c
movq -0x18(%rbp), %rax
movsd 0x50814(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0xd8(%rbp), %xmm0
cvttsd2si %xmm0, %edi
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
callq 0x113b0
jmp 0x28938
movq -0x18(%rbp), %rax
cmpl $0x44, 0x1f4(%rax)
jne 0x28936
jmp 0x28691
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x28777
jmp 0x286a4
leaq 0x521e4(%rip), %rdi     # 0x7a88f
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5e89b(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5e88a(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e87c(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51e4c(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e856(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e848(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e830(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e820(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e813(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e805(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x28779
jmp 0x2877b
movq -0x18(%rbp), %rax
movb 0x139(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x287f3
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x287c2
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x506ac(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xe0(%rbp)
jmp 0x287de
movq -0x18(%rbp), %rax
movsd 0x50692(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0xe0(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jge 0x288c8
jmp 0x287f5
leaq 0x520d9(%rip), %rdi     # 0x7a8d5
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5e74a(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5e739(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e72b(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51cfb(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e705(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e6f7(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e6df(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e6cf(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e6c2(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e6b4(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x288ca
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x140(%rax), %xmm0
jbe 0x288fd
movq -0x18(%rbp), %rax
movsd 0x140(%rax), %xmm0
movsd 0x50571(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
jmp 0x28919
movq -0x18(%rbp), %rax
movsd 0x50557(%rip), %xmm0    # 0x78e60
addsd 0x140(%rax), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xe8(%rbp), %xmm0
cvttsd2si %xmm0, %edi
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
callq 0x11df0
jmp 0x28938
jmp 0x2893a
jmp 0x2893c
jmp 0x2893e
jmp 0x28940
jmp 0x28942
movq -0x18(%rbp), %rax
cmpl $-0x1, 0x1f8(%rax)
je 0x28c56
movq -0x18(%rbp), %rax
cmpl $0x6, 0x1f8(%rax)
jne 0x28a41
jmp 0x28966
movq -0x50(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x11de0
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
je 0x28a3d
jmp 0x28982
movq 0x5e5d7(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x28a32
movq 0x5e5c3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e5b5(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51b85(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e58f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e581(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e569(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e559(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e54c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e53e(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x44(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x2993e
jmp 0x28a3f
jmp 0x28a41
movq -0x18(%rbp), %rax
cmpl $0x3d, 0x1f8(%rax)
jne 0x28c54
jmp 0x28a54
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x220(%rax), %xmm0
jbe 0x28a87
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
movsd 0x503e7(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
jmp 0x28aa3
movq -0x18(%rbp), %rax
movsd 0x503cd(%rip), %xmm0    # 0x78e60
addsd 0x220(%rax), %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xf0(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cmpl $0x0, %eax
jge 0x28b8d
jmp 0x28aba
leaq 0x51e32(%rip), %rdi     # 0x7a8f3
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5e485(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5e474(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e466(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51a36(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e440(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e432(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e41a(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e40a(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e3fd(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e3ef(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x28b8f
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x220(%rax), %xmm0
jbe 0x28bc2
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
movsd 0x502ac(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
jmp 0x28bde
movq -0x18(%rbp), %rax
movsd 0x50292(%rip), %xmm0    # 0x78e60
addsd 0x220(%rax), %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xf8(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x5fc(%rax)
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x220(%rax), %xmm0
jbe 0x28c27
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm0
movsd 0x50247(%rip), %xmm1    # 0x78e60
subsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
jmp 0x28c43
movq -0x18(%rbp), %rax
movsd 0x5022d(%rip), %xmm0    # 0x78e60
addsd 0x220(%rax), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0x100(%rbp), %xmm0
cvttsd2si %xmm0, %edi
callq 0x11ed0
jmp 0x28c56
movq -0x18(%rbp), %rax
cmpl $0x3, 0x1fc(%rax)
jne 0x28c78
callq 0x11e30
movq -0x20(%rbp), %rax
movl $0x2, 0xc6cc(%rax)
jmp 0x28cbe
movq -0x18(%rbp), %rax
cmpl $0x4, 0x1fc(%rax)
jne 0x28c9a
callq 0x122f0
movq -0x20(%rbp), %rax
movl $0x3, 0xc6cc(%rax)
jmp 0x28cbc
movq -0x18(%rbp), %rax
cmpl $0x5, 0x1fc(%rax)
jne 0x28cba
callq 0x12220
movq -0x20(%rbp), %rax
movl $0x1, 0xc6cc(%rax)
jmp 0x28cbc
jmp 0x28cbe
movq -0x18(%rbp), %rax
cmpl $0x7, 0x200(%rax)
jne 0x28cdd
callq 0x105f0
movq -0x20(%rbp), %rax
movb $0x1, 0x1797(%rax)
jmp 0x28d2d
movq -0x18(%rbp), %rax
cmpl $0x8, 0x200(%rax)
jne 0x28cfc
callq 0x12060
movq -0x20(%rbp), %rax
movb $0x1, 0x1688(%rax)
jmp 0x28d2b
movq -0x18(%rbp), %rax
cmpl $0x9, 0x200(%rax)
jne 0x28d29
callq 0x12170
movq -0x20(%rbp), %rax
movb $0x0, 0x1797(%rax)
callq 0x11750
movq -0x20(%rbp), %rax
movb $0x0, 0x1688(%rax)
jmp 0x28d2b
jmp 0x28d2d
movq -0x18(%rbp), %rax
cmpl $0x30, 0x204(%rax)
jne 0x28e4d
jmp 0x28d40
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x28e26
jmp 0x28d53
leaq 0x51bce(%rip), %rdi     # 0x7a928
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5e1ec(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5e1db(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e1cd(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5179d(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e1a7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e199(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e181(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e171(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e164(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e156(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x28e28
callq 0x108b0
callq 0x12370
movq -0x20(%rbp), %rax
movb $0x1, 0x674(%rax)
movq -0x20(%rbp), %rax
movb $0x1, 0xc6c8(%rax)
jmp 0x28f6a
movq -0x18(%rbp), %rax
cmpl $0x31, 0x204(%rax)
jne 0x28f68
jmp 0x28e60
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x28f46
jmp 0x28e73
leaq 0x51ae9(%rip), %rdi     # 0x7a963
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5e0cc(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5e0bb(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5e0ad(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5167d(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5e087(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e079(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5e061(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5e051(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5e044(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5e036(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x28f48
callq 0x10520
callq 0x11a50
movq -0x20(%rbp), %rax
movb $0x0, 0x674(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0xc6c8(%rax)
jmp 0x28f6a
movq -0x18(%rbp), %rax
cmpl $0x32, 0x204(%rax)
jne 0x29192
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x28f97
jp 0x28f97
jmp 0x29096
jmp 0x28f99
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x2907f
jmp 0x28fac
leaq 0x51975(%rip), %rdi     # 0x7a928
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5df93(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5df82(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5df74(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51544(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5df4e(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5df40(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5df28(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5df18(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5df0b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5defd(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x29081
callq 0x108b0
movq -0x20(%rbp), %rax
movb $0x1, 0x674(%rax)
jmp 0x29190
jmp 0x29098
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x2917e
jmp 0x290ab
leaq 0x518b1(%rip), %rdi     # 0x7a963
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5de94(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5de83(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5de75(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x51445(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5de4f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5de41(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5de29(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5de19(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5de0c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5ddfe(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x29180
callq 0x10520
movq -0x20(%rbp), %rax
movb $0x0, 0x674(%rax)
jmp 0x29192
movq -0x18(%rbp), %rax
cmpl $0x33, 0x204(%rax)
jne 0x293ba
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x291bf
jp 0x291bf
jmp 0x292be
jmp 0x291c1
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x292a7
jmp 0x291d4
leaq 0x5174d(%rip), %rdi     # 0x7a928
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5dd6b(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5dd5a(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5dd4c(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5131c(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5dd26(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5dd18(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5dd00(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5dcf0(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5dce3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5dcd5(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x292a9
callq 0x12370
movq -0x20(%rbp), %rax
movb $0x1, 0xc6c8(%rax)
jmp 0x293b8
jmp 0x292c0
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x293a6
jmp 0x292d3
leaq 0x51689(%rip), %rdi     # 0x7a963
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5dc6c(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5dc5b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5dc4d(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x5121d(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5dc27(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5dc19(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5dc01(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5dbf1(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5dbe4(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5dbd6(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x293a8
callq 0x11a50
movq -0x20(%rbp), %rax
movb $0x0, 0xc6c8(%rax)
jmp 0x293ba
movq -0x18(%rbp), %rax
cmpl $0x34, 0x204(%rax)
jne 0x295e2
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x293e7
jp 0x293e7
jmp 0x294e6
jmp 0x293e9
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x294cf
jmp 0x293fc
leaq 0x51525(%rip), %rdi     # 0x7a928
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5db43(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5db32(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5db24(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x510f4(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5dafe(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5daf0(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5dad8(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5dac8(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5dabb(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5daad(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x294d1
callq 0x11ea0
movq -0x20(%rbp), %rax
movb $0x1, 0x1b6b0(%rax)
jmp 0x295e0
jmp 0x294e8
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x295ce
jmp 0x294fb
leaq 0x51461(%rip), %rdi     # 0x7a963
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5da44(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5da33(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5da25(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x50ff5(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5d9ff(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d9f1(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5d9d9(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5d9c9(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5d9bc(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d9ae(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x295d0
callq 0x11f40
movq -0x20(%rbp), %rax
movb $0x0, 0x1b6b0(%rax)
jmp 0x295e2
movq -0x18(%rbp), %rax
cmpl $0x35, 0x204(%rax)
jne 0x2980a
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2960f
jp 0x2960f
jmp 0x2970e
jmp 0x29611
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x296f7
jmp 0x29624
leaq 0x512fd(%rip), %rdi     # 0x7a928
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5d91b(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5d90a(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5d8fc(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x50ecc(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5d8d6(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d8c8(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5d8b0(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5d8a0(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5d893(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d885(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x296f9
callq 0x12130
movq -0x20(%rbp), %rax
movb $0x1, 0x1b6b1(%rax)
jmp 0x29808
jmp 0x29710
movq -0x20(%rbp), %rax
cmpl $0x0, 0x624(%rax)
je 0x297f6
jmp 0x29723
leaq 0x51239(%rip), %rdi     # 0x7a963
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5d81c(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5d80b(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5d7fd(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x50dcd(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5d7d7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d7c9(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5d7b1(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5d7a1(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5d794(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d786(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
jmp 0x297f8
callq 0x11d30
movq -0x20(%rbp), %rax
movb $0x0, 0x1b6b1(%rax)
jmp 0x2980a
movq -0x18(%rbp), %rax
cmpl $-0x1, 0x208(%rax)
je 0x29937
movq -0x18(%rbp), %rax
movl 0x208(%rax), %eax
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
subl $0x64, %eax
movslq %eax, %rcx
movq 0x5d7a0(%rip), %rax     # 0x86fd8
cmpq $0x0, (%rax,%rcx,8)
jne 0x29917
jmp 0x29845
jmp 0x29847
leaq 0x51151(%rip), %rdi     # 0x7a99f
callq 0x10380
movq -0x50(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x5d6f8(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x5d6e7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x5d6d9(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x50ca9(%rip), %rsi     # 0x7a545
movl $0x50, %edx
callq 0x10840
movq 0x5d6b3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d6a5(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x5d68d(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x5d67d(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x5d670(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x5d662(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0x4(%rbp)
jmp 0x2993e
movl -0x48(%rbp), %edi
movq -0x18(%rbp), %rax
movsd 0x210(%rax), %xmm0
movq -0x18(%rbp), %rax
movsd 0x220(%rax), %xmm1
callq 0x110e0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopw (%rax,%rax)