// File: sundale[P]gcode/rs274ngc/interp_read.cc
// Function: Interp::read_o(char*, int*, block_struct*, double*)
int Interp::read_o(    /* ARGUMENTS                                     */
 char * line,         /* string: line of RS274/NGC code being processed */
 int * counter,       /* pointer to a counter for position on the line  */
 block_pointer block, /* pointer to a block being filled from the line  */
 double * parameters) /* array of system parameters                     */
{
  static char name[] = "read_o";
  double value;
  int param_cnt;
  char oNameBuf[LINELEN+1];
  char *subName;
  char fullNameBuf[2*LINELEN+1];
  int oNumber;

  CHKS((line[*counter] != 'o'), NCE_BUG_FUNCTION_SHOULD_NOT_HAVE_BEEN_CALLED);

  // changed spec so we now read an expression
  // so... we can have a parameter contain a function pointer!
  *counter += 1;

  block->o_number = 0;

  logDebug("In: %s line:%d |%s|", name, block->line_number, line);

  if(line[*counter] == '<')
  {
      read_name(line, counter, oNameBuf);
  }
  else
  {
     CHP(read_integer_value(line, counter, &oNumber,
                            parameters));
     sprintf(oNameBuf, "%d", oNumber);
     block->o_number = oNumber; //!!!KL keeps this for now
  }

  // We stash the text the offset part of setup
  // And then store the index into block->o_number
  // Just to be clean, we do not use index zero.

#define CMP(txt) (strncmp(line+*counter, txt, strlen(txt)) == 0)
  // characterize the type of o-word

  if(CMP("sub"))
    block->o_type = O_sub;
  else if(CMP("endsub"))
    block->o_type = O_endsub;
  else if(CMP("call"))
    block->o_type = O_call;
  else if(CMP("do"))
    block->o_type = O_do;
  else if(CMP("while"))
    block->o_type = O_while;
  else if(CMP("repeat"))
    block->o_type = O_repeat;
  else if(CMP("if"))
    block->o_type = O_if;
  else if(CMP("elseif"))
    block->o_type = O_elseif;
  else if(CMP("else"))
    block->o_type = O_else;
  else if(CMP("endif"))
    block->o_type = O_endif;
  else if(CMP("break"))
    block->o_type = O_break;
  else if(CMP("continue"))
    block->o_type = O_continue;
  else if(CMP("endwhile"))
    block->o_type = O_endwhile;
  else if(CMP("endrepeat"))
    block->o_type = O_endrepeat;
  else if(CMP("return"))
    block->o_type = O_return;
  else
    block->o_type = O_none;

  // we now have it characterized
  // now create the text of the oword

  switch(block->o_type)
    {
      // the global cases first
    case O_sub:
    case O_endsub:
    case O_call:
    case O_return:
      block->o_name = strdup(oNameBuf);
      logDebug("global case:|%s|", block->o_name);
      break;

      // the remainder are local cases
    default:
      if(_setup.call_level)
	{
	  subName = _setup.sub_context[_setup.call_level].subName;
	  logDebug("inside a call[%d]:|%s|", _setup.call_level, subName);
	}
      else if(_setup.defining_sub)
	{
	  subName = _setup.sub_name;
	  logDebug("defining_sub:|%s|", subName);
	}
      else
	{
	  subName = "";
	  logDebug("not defining_sub:|%s|", subName);
	}
      sprintf(fullNameBuf, "%s#%s", subName, oNameBuf);
      block->o_name = strdup(fullNameBuf);
      logDebug("local case:|%s|", block->o_name);
    }

  logDebug("o_type:%d o_name:|%s| line:%d |%s|", block->o_type, block->o_name,
	   block->line_number, line);

  if(block->o_type == O_sub)
    {
      block->o_type = O_sub;
    }
  else if(block->o_type == O_endsub)
    {
      block->o_type = O_endsub;
    }
  else if(_setup.defining_sub == 1)
    {
      // we can not evaluate expressions -- so just skip on out
      block->o_type = O_none;
    }
  else if(block->o_type == O_call)
    {
      // we need to NOT evaluate parameters if skipping
      // skipping never ends on a "call"
      if(_setup.skipping_o != 0)
      {
          block->o_type = O_none;
          return INTERP_OK;
      }

      *counter += strlen("call");
      block->o_type = O_call;

      for(param_cnt=0;(line[*counter] == '[') || (line[*counter] == '(');)
	{
	  if(line[*counter] == '(')
	    {
	      CHP(read_comment(line, counter, block, parameters));
	      continue;
	    }
	  logDebug("counter[%d] rest of line:|%s|", *counter,
		   line+*counter);
	  CHKS((param_cnt >= INTERP_SUB_PARAMS),
	      NCE_TOO_MANY_SUBROUTINE_PARAMETERS);
	  CHP(read_real_expression(line, counter, &value, parameters));
	  block->params[param_cnt] = value;
	  param_cnt++;
	}
      logDebug("set arg params:%d", param_cnt);

      // zero the remaining params
      for(;param_cnt < INTERP_SUB_PARAMS; param_cnt++)
	{
	  block->params[param_cnt] = 0.0;
	}
    }
  else if(block->o_type == O_do)
    {
      block->o_type = O_do;
    }
  else if(block->o_type == O_while)
    {
      // TESTME !!!KL -- should not eval expressions if skipping ???
      if((_setup.skipping_o != 0) &&
	 (0 != strcmp(_setup.skipping_o, block->o_name)))
      {
	    return INTERP_OK;
      }

      *counter += strlen("while");
      block->o_type = O_while;
      CHKS((line[*counter] != '['),
	    "Left bracket missing after 'while'");
      CHP(read_real_expression(line, counter, &value, parameters));
      _setup.test_value = value;
    }
  else if(block->o_type == O_repeat)
      {
          // TESTME !!!KL -- should not eval expressions if skipping ???
          if((_setup.skipping_o != 0) &&
	     (0 != strcmp(_setup.skipping_o, block->o_name)))
          {
	    return INTERP_OK;
          }

          *counter += strlen("repeat");
          block->o_type = O_repeat;
          CHKS((line[*counter] != '['),
               "Left bracket missing after 'repeat'");
          CHP(read_real_expression(line, counter, &value, parameters));
          _setup.test_value = value;
      }
  else if(block->o_type == O_if)
    {
      // TESTME !!!KL -- should not eval expressions if skipping ???
      if((_setup.skipping_o != 0) &&
	 (0 != strcmp(_setup.skipping_o, block->o_name)))
      {
	    return INTERP_OK;
      }

      *counter += strlen("if");
      block->o_type = O_if;
      CHKS((line[*counter] != '['),
	    "Left bracket missing after 'if'");
      CHP(read_real_expression(line, counter, &value, parameters));
      _setup.test_value = value;
    }
  else if(block->o_type == O_elseif)
    {
      // TESTME !!!KL -- should not eval expressions if skipping ???
      if((_setup.skipping_o != 0) &&
	 (0 != strcmp(_setup.skipping_o, block->o_name)))
      {
	    return INTERP_OK;
      }

      *counter += strlen("elseif");
      block->o_type = O_elseif;
      CHKS((line[*counter] != '['),
	    "Left bracket missing after 'elseif'");
      CHP(read_real_expression(line, counter, &value, parameters));
      _setup.test_value = value;
    }
  else if(block->o_type == O_else)
    {
      block->o_type = O_else;
    }
  else if(block->o_type == O_endif)
    {
      block->o_type = O_endif;
    }
  else if(block->o_type == O_break)
    {
      block->o_type = O_break;
    }
  else if(block->o_type == O_continue)
    {
      block->o_type = O_continue;
    }
  else if(block->o_type == O_endwhile)
    {
      block->o_type = O_endwhile;
    }
  else if(block->o_type == O_endrepeat)
      {
          block->o_type = O_endrepeat;
      }
  else if(block->o_type == O_return)
    {
      block->o_type = O_return;
    }
  else
    {
      // not legal
      block->o_type = O_none;
      ERS(NCE_UNKNOWN_COMMAND_IN_O_LINE);
    }

  return INTERP_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x3a8, %rsp            # imm = 0x3A8
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x6f, %eax
je 0x6068b
jmp 0x605b5
leaq 0x1be29(%rip), %rdi     # 0x7c3e5
callq 0x10380
movq -0x388(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x26987(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x26976(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x26968(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1d75a(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x26942(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x26934(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2691c(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2690c(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x268ff(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x268f1(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x6068d
movq -0x28(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
movl $0x0, 0x2cc(%rax)
xorl %eax, %eax
movq 0x268b1(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60706
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl 0x1d0(%rax), %r10d
movq -0x20(%rbp), %rax
leaq 0x1d6c7(%rip), %rsi     # 0x7dda2
xorl %edx, %edx
leaq 0x1d6e5(%rip), %r8      # 0x7ddc9
movl $0x5a2, %r9d            # imm = 0x5A2
leaq 0x27b0f(%rip), %r11     # 0x88200
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60708
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x3c, %eax
jne 0x6073c
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq -0x150(%rbp), %rcx
callq 0x11040
jmp 0x6085d
jmp 0x6073e
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %r8
leaq -0x364(%rbp), %rcx
callq 0x11250
movl %eax, -0x368(%rbp)
cmpl $0x0, -0x368(%rbp)
je 0x60830
jmp 0x60772
movq 0x267e7(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x60822
movq 0x267d3(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x267c5(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1d5b7(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x2679f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x26791(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x26779(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x26769(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2675c(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2674e(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x368(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x60832
leaq -0x150(%rbp), %rdi
movl -0x364(%rbp), %edx
leaq 0x1e0a3(%rip), %rsi     # 0x7e8e9
movb $0x0, %al
callq 0x10280
movl -0x364(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, 0x2cc(%rax)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d569(%rip), %rsi     # 0x7dddb
movl $0x3, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60894
movq -0x30(%rbp), %rax
movl $0x1, 0x2c8(%rax)
jmp 0x60bb7
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d52f(%rip), %rsi     # 0x7ddd8
movl $0x6, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x608cb
movq -0x30(%rbp), %rax
movl $0x2, 0x2c8(%rax)
jmp 0x60bb5
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d4ff(%rip), %rsi     # 0x7dddf
movl $0x4, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60902
movq -0x30(%rbp), %rax
movl $0x3, 0x2c8(%rax)
jmp 0x60bb3
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d4cd(%rip), %rsi     # 0x7dde4
movl $0x2, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60939
movq -0x30(%rbp), %rax
movl $0x4, 0x2c8(%rax)
jmp 0x60bb1
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d4bd(%rip), %rsi     # 0x7de0b
movl $0x5, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60970
movq -0x30(%rbp), %rax
movl $0x5, 0x2c8(%rax)
jmp 0x60baf
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d48f(%rip), %rsi     # 0x7de14
movl $0x6, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x609a7
movq -0x30(%rbp), %rax
movl $0xe, 0x2c8(%rax)
jmp 0x60bad
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d43a(%rip), %rsi     # 0x7ddf6
movl $0x2, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x609de
movq -0x30(%rbp), %rax
movl $0x6, 0x2c8(%rax)
jmp 0x60bab
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d3f4(%rip), %rsi     # 0x7dde7
movl $0x6, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60a15
movq -0x30(%rbp), %rax
movl $0x7, 0x2c8(%rax)
jmp 0x60ba9
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d3c4(%rip), %rsi     # 0x7ddee
movl $0x4, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60a4c
movq -0x30(%rbp), %rax
movl $0x8, 0x2c8(%rax)
jmp 0x60ba7
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d392(%rip), %rsi     # 0x7ddf3
movl $0x5, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60a83
movq -0x30(%rbp), %rax
movl $0x9, 0x2c8(%rax)
jmp 0x60ba5
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d361(%rip), %rsi     # 0x7ddf9
movl $0x5, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60aba
movq -0x30(%rbp), %rax
movl $0xa, 0x2c8(%rax)
jmp 0x60ba3
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d330(%rip), %rsi     # 0x7ddff
movl $0x8, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60af1
movq -0x30(%rbp), %rax
movl $0xb, 0x2c8(%rax)
jmp 0x60ba1
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d302(%rip), %rsi     # 0x7de08
movl $0x8, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60b25
movq -0x30(%rbp), %rax
movl $0xc, 0x2c8(%rax)
jmp 0x60b9f
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x1d2d7(%rip), %rsi     # 0x7de11
movl $0x9, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60b59
movq -0x30(%rbp), %rax
movl $0xf, 0x2c8(%rax)
jmp 0x60b9d
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movslq (%rax), %rax
addq %rax, %rdi
leaq 0x19b61(%rip), %rsi     # 0x7a6cf
movl $0x6, %edx
callq 0x10780
cmpl $0x0, %eax
jne 0x60b8d
movq -0x30(%rbp), %rax
movl $0xd, 0x2c8(%rax)
jmp 0x60b9b
movq -0x30(%rbp), %rax
movl $0x0, 0x2c8(%rax)
jmp 0x60b9d
jmp 0x60b9f
jmp 0x60ba1
jmp 0x60ba3
jmp 0x60ba5
jmp 0x60ba7
jmp 0x60ba9
jmp 0x60bab
jmp 0x60bad
jmp 0x60baf
jmp 0x60bb1
jmp 0x60bb3
jmp 0x60bb5
jmp 0x60bb7
movq -0x30(%rbp), %rax
movl 0x2c8(%rax), %eax
movl %eax, -0x38c(%rbp)
decl %eax
subl $0x3, %eax
jb 0x60bdd
jmp 0x60bd0
movl -0x38c(%rbp), %eax
subl $0xd, %eax
jne 0x60c49
jmp 0x60bdd
leaq -0x150(%rbp), %rdi
callq 0x120d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x2d0(%rax)
xorl %eax, %eax
movq 0x26360(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60c42
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %rax
leaq 0x1d1f3(%rip), %rsi     # 0x7de1b
xorl %edx, %edx
leaq 0x1d198(%rip), %r8      # 0x7ddc9
movl $0x5e3, %r9d            # imm = 0x5E3
movq %rax, (%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60c44
jmp 0x60e45
movq 0x26310(%rip), %rax     # 0x86f60
cmpl $0x0, 0xef90(%rax)
je 0x60cee
movq 0x262fc(%rip), %rax     # 0x86f60
movslq 0xef90(%rax), %rcx
movq 0x262ee(%rip), %rax     # 0x86f60
addq $0xef98, %rax           # imm = 0xEF98
imulq $0x128, %rcx, %rcx      # imm = 0x128
addq %rcx, %rax
movq 0x18(%rax), %rax
movq %rax, -0x158(%rbp)
xorl %eax, %eax
movq 0x262ca(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60ce7
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq 0x262ad(%rip), %rax     # 0x86f60
movl 0xef90(%rax), %r10d
movq -0x158(%rbp), %rax
leaq 0x1d177(%rip), %rsi     # 0x7de3f
xorl %edx, %edx
leaq 0x1d0f8(%rip), %r8      # 0x7ddc9
movl $0x5eb, %r9d            # imm = 0x5EB
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60ce9
jmp 0x60db9
movq 0x2626b(%rip), %rax     # 0x86f60
cmpl $0x0, 0xef50(%rax)
je 0x60d5e
movq 0x2625b(%rip), %rax     # 0x86f60
movq 0xef58(%rax), %rax
movq %rax, -0x158(%rbp)
xorl %eax, %eax
movq 0x26244(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60d5a
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x158(%rbp), %rax
leaq 0x1d129(%rip), %rsi     # 0x7de69
xorl %edx, %edx
leaq 0x1d080(%rip), %r8      # 0x7ddc9
movl $0x5f0, %r9d            # imm = 0x5F0
movq %rax, (%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60d5c
jmp 0x60db7
leaq 0x1eea5(%rip), %rax     # 0x7fc0a
movq %rax, -0x158(%rbp)
xorl %eax, %eax
movq 0x261eb(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60db3
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x158(%rbp), %rax
leaq 0x1d0f5(%rip), %rsi     # 0x7de8e
xorl %edx, %edx
leaq 0x1d027(%rip), %r8      # 0x7ddc9
movl $0x5f5, %r9d            # imm = 0x5F5
movq %rax, (%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60db5
jmp 0x60db7
jmp 0x60db9
leaq -0x360(%rbp), %rdi
movq -0x158(%rbp), %rdx
leaq -0x150(%rbp), %rcx
leaq 0x1d0e2(%rip), %rsi     # 0x7deb7
movb $0x0, %al
callq 0x10280
leaq -0x360(%rbp), %rdi
callq 0x120d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x2d0(%rax)
xorl %eax, %eax
movq 0x26161(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60e41
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %rax
leaq 0x1d096(%rip), %rsi     # 0x7debd
xorl %edx, %edx
leaq 0x1cf99(%rip), %r8      # 0x7ddc9
movl $0x5f9, %r9d            # imm = 0x5F9
movq %rax, (%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60e43
jmp 0x60e45
jmp 0x60e47
xorl %eax, %eax
movq 0x26110(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x60eb9
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x30(%rbp), %rax
movl 0x2c8(%rax), %ebx
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %r11
movq -0x30(%rbp), %rax
movl 0x1d0(%rax), %r10d
movq -0x20(%rbp), %rax
leaq 0x1d04f(%rip), %rsi     # 0x7dee0
xorl %edx, %edx
leaq 0x1cf2f(%rip), %r8      # 0x7ddc9
movl $0x5fd, %r9d            # imm = 0x5FD
movl %ebx, (%rsp)
movq %r11, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x60ebb
movq -0x30(%rbp), %rax
cmpl $0x1, 0x2c8(%rax)
jne 0x60edb
movq -0x30(%rbp), %rax
movl $0x1, 0x2c8(%rax)
jmp 0x61f32
movq -0x30(%rbp), %rax
cmpl $0x2, 0x2c8(%rax)
jne 0x60efb
movq -0x30(%rbp), %rax
movl $0x2, 0x2c8(%rax)
jmp 0x61f30
movq 0x2605e(%rip), %rax     # 0x86f60
cmpl $0x1, 0xef50(%rax)
jne 0x60f1e
movq -0x30(%rbp), %rax
movl $0x0, 0x2c8(%rax)
jmp 0x61f2e
movq -0x30(%rbp), %rax
cmpl $0x3, 0x2c8(%rax)
jne 0x6139f
movq 0x2602a(%rip), %rax     # 0x86f60
cmpq $0x0, 0xef70(%rax)
je 0x60f5a
movq -0x30(%rbp), %rax
movl $0x0, 0x2c8(%rax)
movl $0x0, -0xc(%rbp)
jmp 0x61f39
movq -0x28(%rbp), %rax
movslq (%rax), %rcx
addq $0x4, %rcx
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
movl $0x3, 0x2c8(%rax)
movl $0x0, -0x44(%rbp)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x5b, %ecx
movb %al, -0x38d(%rbp)
je 0x60fb3
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
sete %al
movb %al, -0x38d(%rbp)
movb -0x38d(%rbp), %al
testb $0x1, %al
jne 0x60fc2
jmp 0x6132d
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x610d2
jmp 0x60fdc
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
callq 0x11860
movl %eax, -0x36c(%rbp)
cmpl $0x0, -0x36c(%rbp)
je 0x610cb
jmp 0x6100d
movq 0x25f4c(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x610bd
movq 0x25f38(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25f2a(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1cd1c(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25f04(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25ef6(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25ede(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25ece(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25ec1(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25eb3(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x36c(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x610cd
jmp 0x60f7c
jmp 0x610d4
xorl %eax, %eax
movq 0x25e83(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x6112e
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movq -0x28(%rbp), %rax
movl (%rax), %r10d
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rdx
movslq (%rdx), %rdx
addq %rdx, %rax
leaq 0x1ce07(%rip), %rsi     # 0x7df16
xorl %edx, %edx
leaq 0x1ccb1(%rip), %r8      # 0x7ddc9
movl $0x621, %r9d            # imm = 0x621
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x61130
jmp 0x61132
cmpl $0x1e, -0x44(%rbp)
jl 0x61214
jmp 0x6113e
leaq 0x1ce02(%rip), %rdi     # 0x7df47
callq 0x10380
movq -0x388(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x25dfe(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x25ded(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25ddf(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1cbd1(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25db9(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25dab(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25d93(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25d83(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25d76(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25d68(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x61216
jmp 0x61218
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %r8
leaq -0x40(%rbp), %rcx
callq 0x119e0
movl %eax, -0x370(%rbp)
cmpl $0x0, -0x370(%rbp)
je 0x61307
jmp 0x61249
movq 0x25d10(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x612f9
movq 0x25cfc(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25cee(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1cae0(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25cc8(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25cba(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25ca2(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25c92(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25c85(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25c77(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x370(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x61309
movsd -0x40(%rbp), %xmm0
movq -0x30(%rbp), %rax
movslq -0x44(%rbp), %rcx
movsd %xmm0, 0x2d8(%rax,%rcx,8)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x60f7c
jmp 0x6132f
xorl %eax, %eax
movq 0x25c28(%rip), %rcx     # 0x86f60
cmpl 0x1b6b4(%rcx), %eax
jge 0x61371
callq 0x11950
movq -0x388(%rbp), %rdi
movl %eax, %ecx
movl -0x44(%rbp), %eax
leaq 0x1cc0e(%rip), %rsi     # 0x7df66
xorl %edx, %edx
leaq 0x1ca68(%rip), %r8      # 0x7ddc9
movl $0x628, %r9d            # imm = 0x628
movl %eax, (%rsp)
movb $0x0, %al
callq 0x12050
jmp 0x61373
jmp 0x61375
cmpl $0x1e, -0x44(%rbp)
jge 0x6139a
movq -0x30(%rbp), %rax
movslq -0x44(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, 0x2d8(%rax,%rcx,8)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x61375
jmp 0x61f2c
movq -0x30(%rbp), %rax
cmpl $0x4, 0x2c8(%rax)
jne 0x613bf
movq -0x30(%rbp), %rax
movl $0x4, 0x2c8(%rax)
jmp 0x61f2a
movq -0x30(%rbp), %rax
cmpl $0x5, 0x2c8(%rax)
jne 0x61624
movq 0x25b89(%rip), %rax     # 0x86f60
cmpq $0x0, 0xef70(%rax)
je 0x61413
movq 0x25b78(%rip), %rax     # 0x86f60
movq 0xef70(%rax), %rdi
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %rsi
callq 0x11820
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x61413
movl $0x0, -0xc(%rbp)
jmp 0x61f39
movq -0x28(%rbp), %rax
movslq (%rax), %rcx
addq $0x5, %rcx
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
movl $0x5, 0x2c8(%rax)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x5b, %eax
je 0x61516
jmp 0x61448
movq -0x388(%rbp), %rdi
leaq 0x1cb35(%rip), %rsi     # 0x7df8b
movb $0x0, %al
callq 0x10df0
movq 0x25afc(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x25aeb(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25add(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c8cf(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25ab7(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25aa9(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25a91(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25a81(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25a74(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25a66(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x61518
jmp 0x6151a
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %r8
leaq -0x40(%rbp), %rcx
callq 0x119e0
movl %eax, -0x374(%rbp)
cmpl $0x0, -0x374(%rbp)
je 0x61609
jmp 0x6154b
movq 0x25a0e(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x615fb
movq 0x259fa(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x259ec(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c7de(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x259c6(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x259b8(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x259a0(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25990(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25983(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25975(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x374(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x6160b
movsd -0x40(%rbp), %xmm0
movq 0x25949(%rip), %rax     # 0x86f60
movsd %xmm0, 0xef88(%rax)
jmp 0x61f28
movq -0x30(%rbp), %rax
cmpl $0xe, 0x2c8(%rax)
jne 0x61889
movq 0x25924(%rip), %rax     # 0x86f60
cmpq $0x0, 0xef70(%rax)
je 0x61678
movq 0x25913(%rip), %rax     # 0x86f60
movq 0xef70(%rax), %rdi
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %rsi
callq 0x11820
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x61678
movl $0x0, -0xc(%rbp)
jmp 0x61f39
movq -0x28(%rbp), %rax
movslq (%rax), %rcx
addq $0x6, %rcx
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
movl $0xe, 0x2c8(%rax)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x5b, %eax
je 0x6177b
jmp 0x616ad
movq -0x388(%rbp), %rdi
leaq 0x1c8f3(%rip), %rsi     # 0x7dfae
movb $0x0, %al
callq 0x10df0
movq 0x25897(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x25886(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25878(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c66a(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25852(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25844(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2582c(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2581c(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2580f(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25801(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x6177d
jmp 0x6177f
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %r8
leaq -0x40(%rbp), %rcx
callq 0x119e0
movl %eax, -0x378(%rbp)
cmpl $0x0, -0x378(%rbp)
je 0x6186e
jmp 0x617b0
movq 0x257a9(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x61860
movq 0x25795(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25787(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c579(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25761(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25753(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x2573b(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x2572b(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x2571e(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25710(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x378(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x61870
movsd -0x40(%rbp), %xmm0
movq 0x256e4(%rip), %rax     # 0x86f60
movsd %xmm0, 0xef88(%rax)
jmp 0x61f26
movq -0x30(%rbp), %rax
cmpl $0x6, 0x2c8(%rax)
jne 0x61aee
movq 0x256bf(%rip), %rax     # 0x86f60
cmpq $0x0, 0xef70(%rax)
je 0x618dd
movq 0x256ae(%rip), %rax     # 0x86f60
movq 0xef70(%rax), %rdi
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %rsi
callq 0x11820
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x618dd
movl $0x0, -0xc(%rbp)
jmp 0x61f39
movq -0x28(%rbp), %rax
movslq (%rax), %rcx
addq $0x2, %rcx
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
movl $0x6, 0x2c8(%rax)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x5b, %eax
je 0x619e0
jmp 0x61912
movq -0x388(%rbp), %rdi
leaq 0x1c6b2(%rip), %rsi     # 0x7dfd2
movb $0x0, %al
callq 0x10df0
movq 0x25632(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x25621(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25613(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c405(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x255ed(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x255df(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x255c7(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x255b7(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x255aa(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2559c(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x619e2
jmp 0x619e4
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %r8
leaq -0x40(%rbp), %rcx
callq 0x119e0
movl %eax, -0x37c(%rbp)
cmpl $0x0, -0x37c(%rbp)
je 0x61ad3
jmp 0x61a15
movq 0x25544(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x61ac5
movq 0x25530(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x25522(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c314(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x254fc(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x254ee(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x254d6(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x254c6(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x254b9(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x254ab(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x37c(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x61ad5
movsd -0x40(%rbp), %xmm0
movq 0x2547f(%rip), %rax     # 0x86f60
movsd %xmm0, 0xef88(%rax)
jmp 0x61f24
movq -0x30(%rbp), %rax
cmpl $0x7, 0x2c8(%rax)
jne 0x61d53
movq 0x2545a(%rip), %rax     # 0x86f60
cmpq $0x0, 0xef70(%rax)
je 0x61b42
movq 0x25449(%rip), %rax     # 0x86f60
movq 0xef70(%rax), %rdi
movq -0x30(%rbp), %rax
movq 0x2d0(%rax), %rsi
callq 0x11820
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x61b42
movl $0x0, -0xc(%rbp)
jmp 0x61f39
movq -0x28(%rbp), %rax
movslq (%rax), %rcx
addq $0x6, %rcx
movl %ecx, (%rax)
movq -0x30(%rbp), %rax
movl $0x7, 0x2c8(%rax)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
movslq (%rcx), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x5b, %eax
je 0x61c45
jmp 0x61b77
movq -0x388(%rbp), %rdi
leaq 0x1c46d(%rip), %rsi     # 0x7dff2
movb $0x0, %al
callq 0x10df0
movq 0x253cd(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x253bc(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x253ae(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c1a0(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25388(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x2537a(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25362(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25352(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25345(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25337(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x61c47
jmp 0x61c49
movq -0x388(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %r8
leaq -0x40(%rbp), %rcx
callq 0x119e0
movl %eax, -0x380(%rbp)
cmpl $0x0, -0x380(%rbp)
je 0x61d38
jmp 0x61c7a
movq 0x252df(%rip), %rax     # 0x86f60
cmpl $0x31, 0xd670(%rax)
jge 0x61d2a
movq 0x252cb(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x252bd(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1c0af(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x25297(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25289(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25271(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25261(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25254(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25246(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl -0x380(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x61f39
jmp 0x61d3a
movsd -0x40(%rbp), %xmm0
movq 0x2521a(%rip), %rax     # 0x86f60
movsd %xmm0, 0xef88(%rax)
jmp 0x61f22
movq -0x30(%rbp), %rax
cmpl $0x8, 0x2c8(%rax)
jne 0x61d73
movq -0x30(%rbp), %rax
movl $0x8, 0x2c8(%rax)
jmp 0x61f20
movq -0x30(%rbp), %rax
cmpl $0x9, 0x2c8(%rax)
jne 0x61d93
movq -0x30(%rbp), %rax
movl $0x9, 0x2c8(%rax)
jmp 0x61f1e
movq -0x30(%rbp), %rax
cmpl $0xa, 0x2c8(%rax)
jne 0x61db3
movq -0x30(%rbp), %rax
movl $0xa, 0x2c8(%rax)
jmp 0x61f1c
movq -0x30(%rbp), %rax
cmpl $0xb, 0x2c8(%rax)
jne 0x61dd3
movq -0x30(%rbp), %rax
movl $0xb, 0x2c8(%rax)
jmp 0x61f1a
movq -0x30(%rbp), %rax
cmpl $0xc, 0x2c8(%rax)
jne 0x61df3
movq -0x30(%rbp), %rax
movl $0xc, 0x2c8(%rax)
jmp 0x61f18
movq -0x30(%rbp), %rax
cmpl $0xf, 0x2c8(%rax)
jne 0x61e13
movq -0x30(%rbp), %rax
movl $0xf, 0x2c8(%rax)
jmp 0x61f16
movq -0x30(%rbp), %rax
cmpl $0xd, 0x2c8(%rax)
jne 0x61e33
movq -0x30(%rbp), %rax
movl $0xd, 0x2c8(%rax)
jmp 0x61f14
movq -0x30(%rbp), %rax
movl $0x0, 0x2c8(%rax)
leaq 0x1c1ce(%rip), %rdi     # 0x7e016
callq 0x10380
movq -0x388(%rbp), %rdi
movq %rax, %rsi
movb $0x0, %al
callq 0x10df0
movq 0x250fb(%rip), %rax     # 0x86f60
movl $0x0, 0xd670(%rax)
movq 0x250ea(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rax
movq 0x250dc(%rip), %rdi     # 0x86f60
addq $0xc6d0, %rdi           # imm = 0xC6D0
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq 0x1bece(%rip), %rsi     # 0x7dd67
movl $0x50, %edx
callq 0x10840
movq 0x250b6(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x250a8(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x4f(%rax)
movq 0x25090(%rip), %rax     # 0x86f60
movl 0xd670(%rax), %ecx
addl $0x1, %ecx
movq 0x25080(%rip), %rax     # 0x86f60
movl %ecx, 0xd670(%rax)
movq 0x25073(%rip), %rax     # 0x86f60
movslq 0xd670(%rax), %rcx
movq 0x25065(%rip), %rax     # 0x86f60
addq $0xc6d0, %rax           # imm = 0xC6D0
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movl $0x5, -0xc(%rbp)
jmp 0x61f39
jmp 0x61f16
jmp 0x61f18
jmp 0x61f1a
jmp 0x61f1c
jmp 0x61f1e
jmp 0x61f20
jmp 0x61f22
jmp 0x61f24
jmp 0x61f26
jmp 0x61f28
jmp 0x61f2a
jmp 0x61f2c
jmp 0x61f2e
jmp 0x61f30
jmp 0x61f32
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x3a8, %rsp            # imm = 0x3A8
popq %rbx
popq %rbp
retq
nopw %cs:(%rax,%rax)