// File: jstaursky[P]hutch/src/Sleigh/slgh_compile.cc
// Function: ConsistencyChecker::sizeRestriction(OpTpl*, Constructor*)
bool ConsistencyChecker::sizeRestriction(OpTpl *op,Constructor *ct)

{ // Make sure op template meets size restrictions
  // Return false and any info about mismatched sizes
  int4 vnout,vn0,vn1;
  AddrSpace *spc;

  switch(op->getOpcode()) {
  case CPUI_COPY:			// Instructions where all inputs and output are same size
  case CPUI_INT_2COMP:
  case CPUI_INT_NEGATE:
  case CPUI_FLOAT_NEG:
  case CPUI_FLOAT_ABS:
  case CPUI_FLOAT_SQRT:
  case CPUI_FLOAT_CEIL:
  case CPUI_FLOAT_FLOOR:
  case CPUI_FLOAT_ROUND:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    if (vnout == vn0) return true;
    if ((vnout==0)||(vn0==0)) return true;
    printOpError(op,ct,-1,0,"Input and output sizes must match");
    return false;
  case CPUI_INT_ADD:
  case CPUI_INT_SUB:
  case CPUI_INT_XOR:
  case CPUI_INT_AND:
  case CPUI_INT_OR:
  case CPUI_INT_MULT:
  case CPUI_INT_DIV:
  case CPUI_INT_SDIV:
  case CPUI_INT_REM:
  case CPUI_INT_SREM:
  case CPUI_FLOAT_ADD:
  case CPUI_FLOAT_DIV:
  case CPUI_FLOAT_MULT:
  case CPUI_FLOAT_SUB:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    vn1 = recoverSize(op->getIn(1)->getSize(),ct);
    if (vn1 == -1) {
      printOpError(op,ct,1,1,"Using subtable with exports in expression");
      return false;
    }
    if ((vnout!=0)&&(vn0!=0)&&(vnout!=vn0)) {
      printOpError(op,ct,-1,0,"The output and all input sizes must match");
      return false;
    }
    if ((vnout!=0)&&(vn1!=0)&&(vnout!=vn1)) {
      printOpError(op,ct,-1,1,"The output and all input sizes must match");
      return false;
    }
    if ((vn0!=0)&&(vn1!=0)&&(vn0!=vn1)) {
      printOpError(op,ct,0,1,"The output and all input sizes must match");
      return false;
    }
    return true;
  case CPUI_FLOAT_NAN:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    if (vnout != 1) {
      printOpError(op,ct,-1,-1,"Output must be a boolean (size 1)");
      return false;
    }
    break;
  case CPUI_INT_EQUAL:		// Instructions with bool output, all inputs equal size
  case CPUI_INT_NOTEQUAL:
  case CPUI_INT_SLESS:
  case CPUI_INT_SLESSEQUAL:
  case CPUI_INT_LESS:
  case CPUI_INT_LESSEQUAL:
  case CPUI_INT_CARRY:
  case CPUI_INT_SCARRY:
  case CPUI_INT_SBORROW:
  case CPUI_FLOAT_EQUAL:
  case CPUI_FLOAT_NOTEQUAL:
  case CPUI_FLOAT_LESS:
  case CPUI_FLOAT_LESSEQUAL:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    if (vnout != 1) {
      printOpError(op,ct,-1,-1,"Output must be a boolean (size 1)");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    vn1 = recoverSize(op->getIn(1)->getSize(),ct);
    if (vn1 == -1) {
      printOpError(op,ct,1,1,"Using subtable with exports in expression");
      return false;
    }
    if ((vn0==0)||(vn1==0)) return true;
    if (vn0 != vn1) {
      printOpError(op,ct,0,1,"Inputs must be the same size");
      return false;
    }
    return true;
  case CPUI_BOOL_XOR:
  case CPUI_BOOL_AND:
  case CPUI_BOOL_OR:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    if (vnout != 1) {
      printOpError(op,ct,-1,-1,"Output must be a boolean (size 1)");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    if (vn0 != 1) {
      printOpError(op,ct,0,0,"Input must be a boolean (size 1)");
      return false;
    }
    return true;
  case CPUI_BOOL_NEGATE:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    if (vnout != 1) {
      printOpError(op,ct,-1,-1,"Output must be a boolean (size 1)");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    if (vn0 != 1) {
      printOpError(op,ct,0,0,"Input must be a boolean (size 1)");
      return false;
    }
    return true;
    // The shift amount does not necessarily have to be the same size
    // But the output and first parameter must be same size
  case CPUI_INT_LEFT:
  case CPUI_INT_RIGHT:
  case CPUI_INT_SRIGHT:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    if ((vnout==0)||(vn0==0)) return true;
    if (vnout != vn0) {
      printOpError(op,ct,-1,0,"Output and first input must be the same size");
      return false;
    }
    return true;
  case CPUI_INT_ZEXT:
  case CPUI_INT_SEXT:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    if ((vnout==0)||(vn0==0)) return true;
    if (vnout == vn0) {
      dealWithUnnecessaryExt(op,ct);
      return true;
    }
    else if (vnout < vn0) {
      printOpError(op,ct,-1,0,"Output size must be strictly bigger than input size");
      return false;
    }
    return true;
  case CPUI_CBRANCH:
    vn1 = recoverSize(op->getIn(1)->getSize(),ct);
    if (vn1 == -1) {
      printOpError(op,ct,1,1,"Using subtable with exports in expression");
      return false;
    }
    if (vn1 != 1) {
      printOpError(op,ct,1,1,"Input must be a boolean (size 1)");
      return false;
    }
    return true;
  case CPUI_LOAD:
  case CPUI_STORE:
    if (op->getIn(0)->getOffset().getType() != ConstTpl::spaceid)
      return true;
    spc = op->getIn(0)->getOffset().getSpace();
    vn1 = recoverSize(op->getIn(1)->getSize(),ct);
    if (vn1 == -1) {
      printOpError(op,ct,1,1,"Using subtable with exports in expression");
      return false;
    }
    if ((vn1!=0)&&(vn1 != spc->getAddrSize())) {
      printOpError(op,ct,1,1,"Pointer size must match size of space");
      return false;
    }
    return true;
  case CPUI_SUBPIECE:
    vnout = recoverSize(op->getOut()->getSize(),ct);
    if (vnout == -1) {
      printOpError(op,ct,-1,-1,"Using subtable with exports in expression");
      return false;
    }
    vn0 = recoverSize(op->getIn(0)->getSize(),ct);
    if (vn0 == -1) {
      printOpError(op,ct,0,0,"Using subtable with exports in expression");
      return false;
    }
    vn1 = op->getIn(1)->getOffset().getReal();
    if ((vnout==0)||(vn0==0)) return true;
    if ((vnout==vn0)&&(vn1==0)) { // No actual truncation is occuring
      dealWithUnnecessaryTrunc(op,ct);
      return true;
    }
    else if (vnout>=vn0) {
      printOpError(op,ct,-1,0,"Output must be strictly smaller than input");
      return false;
    }
    if (vnout>vn0-vn1) {
      printOpError(op,ct,-1,0,"Too much truncation");
      return false;
    }
    return true;
  default:
    break;
  }
  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x9e0, %rsp            # imm = 0x9E0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x648(%rbp)
movq -0x18(%rbp), %rdi
callq 0x3fd40
decl %eax
movl %eax, %ecx
movq %rcx, -0x640(%rbp)
subl $0x3e, %eax
ja 0x5dca3
movq -0x640(%rbp), %rax
leaq 0x7d0ef(%rip), %rcx     # 0xd892c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5b92b
movq -0x18(%rbp), %rax
movq %rax, -0x660(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x658(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x650(%rbp)
callq 0x118c0
movq -0x650(%rbp), %rdx
leaq 0x7d26e(%rip), %rsi     # 0xd8b19
leaq -0x58(%rbp), %rdi
callq 0x14430
jmp 0x5b8b6
movq -0x658(%rbp), %rdx
movq -0x660(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x58(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5b8df
leaq -0x58(%rbp), %rdi
callq 0x11300
leaq -0x59(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5b91d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x11300
leaq -0x59(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5ba24
movq -0x18(%rbp), %rax
movq %rax, -0x678(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x670(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x668(%rbp)
callq 0x118c0
movq -0x668(%rbp), %rdx
leaq 0x7d184(%rip), %rsi     # 0xd8b19
leaq -0x90(%rbp), %rdi
callq 0x14430
jmp 0x5b9a3
movq -0x670(%rbp), %rdx
movq -0x678(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x90(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5b9cc
leaq -0x90(%rbp), %rdi
callq 0x11300
leaq -0x91(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5ba13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x11300
leaq -0x91(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jne 0x5ba35
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
cmpl $0x0, -0x24(%rbp)
je 0x5ba41
cmpl $0x0, -0x28(%rbp)
jne 0x5ba4a
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rax
movq %rax, -0x690(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x688(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x118c0
movq -0x680(%rbp), %rdx
leaq 0x7d0c2(%rip), %rsi     # 0xd8b43
leaq -0xb8(%rbp), %rdi
callq 0x14430
jmp 0x5ba8f
movq -0x688(%rbp), %rdx
movq -0x690(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
leaq -0xb8(%rbp), %r9
callq 0x5dcc0
jmp 0x5baba
leaq -0xb8(%rbp), %rdi
callq 0x11300
leaq -0xb9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5bb01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x11300
leaq -0xb9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5bc0c
movq -0x18(%rbp), %rax
movq %rax, -0x6a8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6a0(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x698(%rbp)
callq 0x118c0
movq -0x698(%rbp), %rdx
leaq 0x7cf9f(%rip), %rsi     # 0xd8b19
leaq -0xe0(%rbp), %rdi
callq 0x14430
jmp 0x5bb88
movq -0x6a0(%rbp), %rdx
movq -0x6a8(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0xe0(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5bbb4
leaq -0xe0(%rbp), %rdi
callq 0x11300
leaq -0xe1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5bbfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x11300
leaq -0xe1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5bd05
movq -0x18(%rbp), %rax
movq %rax, -0x6c0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6b8(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x6b0(%rbp)
callq 0x118c0
movq -0x6b0(%rbp), %rdx
leaq 0x7cea3(%rip), %rsi     # 0xd8b19
leaq -0x108(%rbp), %rdi
callq 0x14430
jmp 0x5bc84
movq -0x6b8(%rbp), %rdx
movq -0x6c0(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x108(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5bcad
leaq -0x108(%rbp), %rdi
callq 0x11300
leaq -0x109(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5bcf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x11300
leaq -0x109(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x2c(%rbp)
cmpl $-0x1, -0x2c(%rbp)
jne 0x5be04
movq -0x18(%rbp), %rax
movq %rax, -0x6d8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6d0(%rbp)
leaq -0x131(%rbp), %rdi
movq %rdi, -0x6c8(%rbp)
callq 0x118c0
movq -0x6c8(%rbp), %rdx
leaq 0x7cda7(%rip), %rsi     # 0xd8b19
leaq -0x130(%rbp), %rdi
callq 0x14430
jmp 0x5bd80
movq -0x6d0(%rbp), %rdx
movq -0x6d8(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0x1, %r8d
leaq -0x130(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5bdac
leaq -0x130(%rbp), %rdi
callq 0x11300
leaq -0x131(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5bdf3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x11300
leaq -0x131(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x24(%rbp)
je 0x5beec
cmpl $0x0, -0x28(%rbp)
je 0x5beec
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
je 0x5beec
movq -0x18(%rbp), %rax
movq %rax, -0x6f0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x6e8(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x6e0(%rbp)
callq 0x118c0
movq -0x6e0(%rbp), %rdx
leaq 0x7cd0a(%rip), %rsi     # 0xd8b65
leaq -0x158(%rbp), %rdi
callq 0x14430
jmp 0x5be69
movq -0x6e8(%rbp), %rdx
movq -0x6f0(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
leaq -0x158(%rbp), %r9
callq 0x5dcc0
jmp 0x5be94
leaq -0x158(%rbp), %rdi
callq 0x11300
leaq -0x159(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5bedb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x11300
leaq -0x159(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x24(%rbp)
je 0x5bfd7
cmpl $0x0, -0x2c(%rbp)
je 0x5bfd7
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
je 0x5bfd7
movq -0x18(%rbp), %rax
movq %rax, -0x708(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x700(%rbp)
leaq -0x181(%rbp), %rdi
movq %rdi, -0x6f8(%rbp)
callq 0x118c0
movq -0x6f8(%rbp), %rdx
leaq 0x7cc22(%rip), %rsi     # 0xd8b65
leaq -0x180(%rbp), %rdi
callq 0x14430
jmp 0x5bf51
movq -0x700(%rbp), %rdx
movq -0x708(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %r8d
leaq -0x180(%rbp), %r9
callq 0x5dcc0
jmp 0x5bf7f
leaq -0x180(%rbp), %rdi
callq 0x11300
leaq -0x181(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5bfc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x11300
leaq -0x181(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x28(%rbp)
je 0x5c0bf
cmpl $0x0, -0x2c(%rbp)
je 0x5c0bf
movl -0x28(%rbp), %eax
cmpl -0x2c(%rbp), %eax
je 0x5c0bf
movq -0x18(%rbp), %rax
movq %rax, -0x720(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x718(%rbp)
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0x118c0
movq -0x710(%rbp), %rdx
leaq 0x7cb37(%rip), %rsi     # 0xd8b65
leaq -0x1a8(%rbp), %rdi
callq 0x14430
jmp 0x5c03c
movq -0x718(%rbp), %rdx
movq -0x720(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %ecx, %ecx
movl $0x1, %r8d
leaq -0x1a8(%rbp), %r9
callq 0x5dcc0
jmp 0x5c067
leaq -0x1a8(%rbp), %rdi
callq 0x11300
leaq -0x1a9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c0ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x11300
leaq -0x1a9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5c1c2
movq -0x18(%rbp), %rax
movq %rax, -0x738(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x730(%rbp)
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0x118c0
movq -0x728(%rbp), %rdx
leaq 0x7c9e9(%rip), %rsi     # 0xd8b19
leaq -0x1d0(%rbp), %rdi
callq 0x14430
jmp 0x5c13e
movq -0x730(%rbp), %rdx
movq -0x738(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x1d0(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c16a
leaq -0x1d0(%rbp), %rdi
callq 0x11300
leaq -0x1d1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c1b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x11300
leaq -0x1d1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x24(%rbp)
je 0x5c295
movq -0x18(%rbp), %rax
movq %rax, -0x750(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x748(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x740(%rbp)
callq 0x118c0
movq -0x740(%rbp), %rdx
leaq 0x7c98c(%rip), %rsi     # 0xd8b8f
leaq -0x1f8(%rbp), %rdi
callq 0x14430
jmp 0x5c211
movq -0x748(%rbp), %rdx
movq -0x750(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x1f8(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c23d
leaq -0x1f8(%rbp), %rdi
callq 0x11300
leaq -0x1f9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c284
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x11300
leaq -0x1f9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
jmp 0x5dca5
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5c394
movq -0x18(%rbp), %rax
movq %rax, -0x768(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x760(%rbp)
leaq -0x221(%rbp), %rdi
movq %rdi, -0x758(%rbp)
callq 0x118c0
movq -0x758(%rbp), %rdx
leaq 0x7c817(%rip), %rsi     # 0xd8b19
leaq -0x220(%rbp), %rdi
callq 0x14430
jmp 0x5c310
movq -0x760(%rbp), %rdx
movq -0x768(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x220(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c33c
leaq -0x220(%rbp), %rdi
callq 0x11300
leaq -0x221(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c383
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x11300
leaq -0x221(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x24(%rbp)
je 0x5c467
movq -0x18(%rbp), %rax
movq %rax, -0x780(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x778(%rbp)
leaq -0x249(%rbp), %rdi
movq %rdi, -0x770(%rbp)
callq 0x118c0
movq -0x770(%rbp), %rdx
leaq 0x7c7ba(%rip), %rsi     # 0xd8b8f
leaq -0x248(%rbp), %rdi
callq 0x14430
jmp 0x5c3e3
movq -0x778(%rbp), %rdx
movq -0x780(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x248(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c40f
leaq -0x248(%rbp), %rdi
callq 0x11300
leaq -0x249(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x11300
leaq -0x249(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5c560
movq -0x18(%rbp), %rax
movq %rax, -0x798(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x790(%rbp)
leaq -0x271(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0x118c0
movq -0x788(%rbp), %rdx
leaq 0x7c648(%rip), %rsi     # 0xd8b19
leaq -0x270(%rbp), %rdi
callq 0x14430
jmp 0x5c4df
movq -0x790(%rbp), %rdx
movq -0x798(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x270(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c508
leaq -0x270(%rbp), %rdi
callq 0x11300
leaq -0x271(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c54f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x11300
leaq -0x271(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x2c(%rbp)
cmpl $-0x1, -0x2c(%rbp)
jne 0x5c65f
movq -0x18(%rbp), %rax
movq %rax, -0x7b0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x7a8(%rbp)
leaq -0x299(%rbp), %rdi
movq %rdi, -0x7a0(%rbp)
callq 0x118c0
movq -0x7a0(%rbp), %rdx
leaq 0x7c54c(%rip), %rsi     # 0xd8b19
leaq -0x298(%rbp), %rdi
callq 0x14430
jmp 0x5c5db
movq -0x7a8(%rbp), %rdx
movq -0x7b0(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0x1, %r8d
leaq -0x298(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c607
leaq -0x298(%rbp), %rdi
callq 0x11300
leaq -0x299(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c64e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x11300
leaq -0x299(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x28(%rbp)
je 0x5c66b
cmpl $0x0, -0x2c(%rbp)
jne 0x5c674
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movl -0x28(%rbp), %eax
cmpl -0x2c(%rbp), %eax
je 0x5c748
movq -0x18(%rbp), %rax
movq %rax, -0x7c8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x7c0(%rbp)
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x7b8(%rbp)
callq 0x118c0
movq -0x7b8(%rbp), %rdx
leaq 0x7c4fa(%rip), %rsi     # 0xd8bb1
leaq -0x2c0(%rbp), %rdi
callq 0x14430
jmp 0x5c6c5
movq -0x7c0(%rbp), %rdx
movq -0x7c8(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %ecx, %ecx
movl $0x1, %r8d
leaq -0x2c0(%rbp), %r9
callq 0x5dcc0
jmp 0x5c6f0
leaq -0x2c0(%rbp), %rdi
callq 0x11300
leaq -0x2c1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c737
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x11300
leaq -0x2c1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5c84b
movq -0x18(%rbp), %rax
movq %rax, -0x7e0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x7d8(%rbp)
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x7d0(%rbp)
callq 0x118c0
movq -0x7d0(%rbp), %rdx
leaq 0x7c360(%rip), %rsi     # 0xd8b19
leaq -0x2e8(%rbp), %rdi
callq 0x14430
jmp 0x5c7c7
movq -0x7d8(%rbp), %rdx
movq -0x7e0(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x2e8(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c7f3
leaq -0x2e8(%rbp), %rdi
callq 0x11300
leaq -0x2e9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c83a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x11300
leaq -0x2e9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x24(%rbp)
je 0x5c91e
movq -0x18(%rbp), %rax
movq %rax, -0x7f8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x7f0(%rbp)
leaq -0x311(%rbp), %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x118c0
movq -0x7e8(%rbp), %rdx
leaq 0x7c303(%rip), %rsi     # 0xd8b8f
leaq -0x310(%rbp), %rdi
callq 0x14430
jmp 0x5c89a
movq -0x7f0(%rbp), %rdx
movq -0x7f8(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x310(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c8c6
leaq -0x310(%rbp), %rdi
callq 0x11300
leaq -0x311(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5c90d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x11300
leaq -0x311(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5ca17
movq -0x18(%rbp), %rax
movq %rax, -0x810(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x808(%rbp)
leaq -0x339(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x118c0
movq -0x800(%rbp), %rdx
leaq 0x7c191(%rip), %rsi     # 0xd8b19
leaq -0x338(%rbp), %rdi
callq 0x14430
jmp 0x5c996
movq -0x808(%rbp), %rdx
movq -0x810(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x338(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5c9bf
leaq -0x338(%rbp), %rdi
callq 0x11300
leaq -0x339(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5ca06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x11300
leaq -0x339(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x28(%rbp)
je 0x5cae7
movq -0x18(%rbp), %rax
movq %rax, -0x828(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x820(%rbp)
leaq -0x361(%rbp), %rdi
movq %rdi, -0x818(%rbp)
callq 0x118c0
movq -0x818(%rbp), %rdx
leaq 0x7c176(%rip), %rsi     # 0xd8bce
leaq -0x360(%rbp), %rdi
callq 0x14430
jmp 0x5ca66
movq -0x820(%rbp), %rdx
movq -0x828(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x360(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5ca8f
leaq -0x360(%rbp), %rdi
callq 0x11300
leaq -0x361(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5cad6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x11300
leaq -0x361(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5cbea
movq -0x18(%rbp), %rax
movq %rax, -0x840(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x838(%rbp)
leaq -0x389(%rbp), %rdi
movq %rdi, -0x830(%rbp)
callq 0x118c0
movq -0x830(%rbp), %rdx
leaq 0x7bfc1(%rip), %rsi     # 0xd8b19
leaq -0x388(%rbp), %rdi
callq 0x14430
jmp 0x5cb66
movq -0x838(%rbp), %rdx
movq -0x840(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x388(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5cb92
leaq -0x388(%rbp), %rdi
callq 0x11300
leaq -0x389(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5cbd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x11300
leaq -0x389(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x24(%rbp)
je 0x5ccbd
movq -0x18(%rbp), %rax
movq %rax, -0x858(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x850(%rbp)
leaq -0x3b1(%rbp), %rdi
movq %rdi, -0x848(%rbp)
callq 0x118c0
movq -0x848(%rbp), %rdx
leaq 0x7bf64(%rip), %rsi     # 0xd8b8f
leaq -0x3b0(%rbp), %rdi
callq 0x14430
jmp 0x5cc39
movq -0x850(%rbp), %rdx
movq -0x858(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x3b0(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5cc65
leaq -0x3b0(%rbp), %rdi
callq 0x11300
leaq -0x3b1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5ccac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x11300
leaq -0x3b1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5cdb6
movq -0x18(%rbp), %rax
movq %rax, -0x870(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x868(%rbp)
leaq -0x3d9(%rbp), %rdi
movq %rdi, -0x860(%rbp)
callq 0x118c0
movq -0x860(%rbp), %rdx
leaq 0x7bdf2(%rip), %rsi     # 0xd8b19
leaq -0x3d8(%rbp), %rdi
callq 0x14430
jmp 0x5cd35
movq -0x868(%rbp), %rdx
movq -0x870(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x3d8(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5cd5e
leaq -0x3d8(%rbp), %rdi
callq 0x11300
leaq -0x3d9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5cda5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x3d8(%rbp), %rdi
callq 0x11300
leaq -0x3d9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x28(%rbp)
je 0x5ce86
movq -0x18(%rbp), %rax
movq %rax, -0x888(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x880(%rbp)
leaq -0x401(%rbp), %rdi
movq %rdi, -0x878(%rbp)
callq 0x118c0
movq -0x878(%rbp), %rdx
leaq 0x7bdd7(%rip), %rsi     # 0xd8bce
leaq -0x400(%rbp), %rdi
callq 0x14430
jmp 0x5ce05
movq -0x880(%rbp), %rdx
movq -0x888(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x400(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5ce2e
leaq -0x400(%rbp), %rdi
callq 0x11300
leaq -0x401(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5ce75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x11300
leaq -0x401(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5cf89
movq -0x18(%rbp), %rax
movq %rax, -0x8a0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x898(%rbp)
leaq -0x429(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x118c0
movq -0x890(%rbp), %rdx
leaq 0x7bc22(%rip), %rsi     # 0xd8b19
leaq -0x428(%rbp), %rdi
callq 0x14430
jmp 0x5cf05
movq -0x898(%rbp), %rdx
movq -0x8a0(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x428(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5cf31
leaq -0x428(%rbp), %rdi
callq 0x11300
leaq -0x429(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5cf78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x11300
leaq -0x429(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5d082
movq -0x18(%rbp), %rax
movq %rax, -0x8b8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8b0(%rbp)
leaq -0x451(%rbp), %rdi
movq %rdi, -0x8a8(%rbp)
callq 0x118c0
movq -0x8a8(%rbp), %rdx
leaq 0x7bb26(%rip), %rsi     # 0xd8b19
leaq -0x450(%rbp), %rdi
callq 0x14430
jmp 0x5d001
movq -0x8b0(%rbp), %rdx
movq -0x8b8(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x450(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d02a
leaq -0x450(%rbp), %rdi
callq 0x11300
leaq -0x451(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d071
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x11300
leaq -0x451(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x24(%rbp)
je 0x5d08e
cmpl $0x0, -0x28(%rbp)
jne 0x5d097
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
je 0x5d16b
movq -0x18(%rbp), %rax
movq %rax, -0x8d0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8c8(%rbp)
leaq -0x479(%rbp), %rdi
movq %rdi, -0x8c0(%rbp)
callq 0x118c0
movq -0x8c0(%rbp), %rdx
leaq 0x7bb15(%rip), %rsi     # 0xd8bef
leaq -0x478(%rbp), %rdi
callq 0x14430
jmp 0x5d0e8
movq -0x8c8(%rbp), %rdx
movq -0x8d0(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
leaq -0x478(%rbp), %r9
callq 0x5dcc0
jmp 0x5d113
leaq -0x478(%rbp), %rdi
callq 0x11300
leaq -0x479(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d15a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x11300
leaq -0x479(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5d26e
movq -0x18(%rbp), %rax
movq %rax, -0x8e8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8e0(%rbp)
leaq -0x4a1(%rbp), %rdi
movq %rdi, -0x8d8(%rbp)
callq 0x118c0
movq -0x8d8(%rbp), %rdx
leaq 0x7b93d(%rip), %rsi     # 0xd8b19
leaq -0x4a0(%rbp), %rdi
callq 0x14430
jmp 0x5d1ea
movq -0x8e0(%rbp), %rdx
movq -0x8e8(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x4a0(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d216
leaq -0x4a0(%rbp), %rdi
callq 0x11300
leaq -0x4a1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d25d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x11300
leaq -0x4a1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5d367
movq -0x18(%rbp), %rax
movq %rax, -0x900(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8f8(%rbp)
leaq -0x4c9(%rbp), %rdi
movq %rdi, -0x8f0(%rbp)
callq 0x118c0
movq -0x8f0(%rbp), %rdx
leaq 0x7b841(%rip), %rsi     # 0xd8b19
leaq -0x4c8(%rbp), %rdi
callq 0x14430
jmp 0x5d2e6
movq -0x8f8(%rbp), %rdx
movq -0x900(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x4c8(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d30f
leaq -0x4c8(%rbp), %rdi
callq 0x11300
leaq -0x4c9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d356
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x11300
leaq -0x4c9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x24(%rbp)
je 0x5d373
cmpl $0x0, -0x28(%rbp)
jne 0x5d37c
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jne 0x5d3a1
movq -0x648(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x5b030
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jge 0x5d475
movq -0x18(%rbp), %rax
movq %rax, -0x918(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x910(%rbp)
leaq -0x4f1(%rbp), %rdi
movq %rdi, -0x908(%rbp)
callq 0x118c0
movq -0x908(%rbp), %rdx
leaq 0x7b838(%rip), %rsi     # 0xd8c1c
leaq -0x4f0(%rbp), %rdi
callq 0x14430
jmp 0x5d3f2
movq -0x910(%rbp), %rdx
movq -0x918(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
leaq -0x4f0(%rbp), %r9
callq 0x5dcc0
jmp 0x5d41d
leaq -0x4f0(%rbp), %rdi
callq 0x11300
leaq -0x4f1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d464
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x11300
leaq -0x4f1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
jmp 0x5d477
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x2c(%rbp)
cmpl $-0x1, -0x2c(%rbp)
jne 0x5d57f
movq -0x18(%rbp), %rax
movq %rax, -0x930(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x928(%rbp)
leaq -0x519(%rbp), %rdi
movq %rdi, -0x920(%rbp)
callq 0x118c0
movq -0x920(%rbp), %rdx
leaq 0x7b62c(%rip), %rsi     # 0xd8b19
leaq -0x518(%rbp), %rdi
callq 0x14430
jmp 0x5d4fb
movq -0x928(%rbp), %rdx
movq -0x930(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0x1, %r8d
leaq -0x518(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d527
leaq -0x518(%rbp), %rdi
callq 0x11300
leaq -0x519(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d56e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x11300
leaq -0x519(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x1, -0x2c(%rbp)
je 0x5d652
movq -0x18(%rbp), %rax
movq %rax, -0x948(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x940(%rbp)
leaq -0x541(%rbp), %rdi
movq %rdi, -0x938(%rbp)
callq 0x118c0
movq -0x938(%rbp), %rdx
leaq 0x7b60e(%rip), %rsi     # 0xd8bce
leaq -0x540(%rbp), %rdi
callq 0x14430
jmp 0x5d5ce
movq -0x940(%rbp), %rdx
movq -0x948(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0x1, %r8d
leaq -0x540(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d5fa
leaq -0x540(%rbp), %rdi
callq 0x11300
leaq -0x541(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x11300
leaq -0x541(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fca0
movq %rax, %rdi
callq 0x3fc10
cmpl $0x6, %eax
je 0x5d684
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fca0
movq %rax, %rdi
callq 0x40230
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x2c(%rbp)
cmpl $-0x1, -0x2c(%rbp)
jne 0x5d7a2
movq -0x18(%rbp), %rax
movq %rax, -0x960(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x958(%rbp)
leaq -0x569(%rbp), %rdi
movq %rdi, -0x950(%rbp)
callq 0x118c0
movq -0x950(%rbp), %rdx
leaq 0x7b409(%rip), %rsi     # 0xd8b19
leaq -0x568(%rbp), %rdi
callq 0x14430
jmp 0x5d71e
movq -0x958(%rbp), %rdx
movq -0x960(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0x1, %r8d
leaq -0x568(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d74a
leaq -0x568(%rbp), %rdi
callq 0x11300
leaq -0x569(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d791
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x11300
leaq -0x569(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
cmpl $0x0, -0x2c(%rbp)
je 0x5d897
movl -0x2c(%rbp), %eax
movl %eax, -0x964(%rbp)
movq -0x38(%rbp), %rdi
callq 0x402d0
movl %eax, %ecx
movl -0x964(%rbp), %eax
cmpl %ecx, %eax
je 0x5d897
movq -0x18(%rbp), %rax
movq %rax, -0x980(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x978(%rbp)
leaq -0x591(%rbp), %rdi
movq %rdi, -0x970(%rbp)
callq 0x118c0
movq -0x970(%rbp), %rdx
leaq 0x7b44b(%rip), %rsi     # 0xd8c50
leaq -0x590(%rbp), %rdi
callq 0x14430
jmp 0x5d813
movq -0x978(%rbp), %rdx
movq -0x980(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0x1, %r8d
leaq -0x590(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d83f
leaq -0x590(%rbp), %rdi
callq 0x11300
leaq -0x591(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d886
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x11300
leaq -0x591(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movq -0x18(%rbp), %rdi
callq 0x3f7a0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x5d99a
movq -0x18(%rbp), %rax
movq %rax, -0x998(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x990(%rbp)
leaq -0x5b9(%rbp), %rdi
movq %rdi, -0x988(%rbp)
callq 0x118c0
movq -0x988(%rbp), %rdx
leaq 0x7b211(%rip), %rsi     # 0xd8b19
leaq -0x5b8(%rbp), %rdi
callq 0x14430
jmp 0x5d916
movq -0x990(%rbp), %rdx
movq -0x998(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq -0x5b8(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5d942
leaq -0x5b8(%rbp), %rdi
callq 0x11300
leaq -0x5b9(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d989
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x11300
leaq -0x5b9(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fbf0
movq -0x648(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x5ac50
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x5da93
movq -0x18(%rbp), %rax
movq %rax, -0x9b0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x9a8(%rbp)
leaq -0x5e1(%rbp), %rdi
movq %rdi, -0x9a0(%rbp)
callq 0x118c0
movq -0x9a0(%rbp), %rdx
leaq 0x7b115(%rip), %rsi     # 0xd8b19
leaq -0x5e0(%rbp), %rdi
callq 0x14430
jmp 0x5da12
movq -0x9a8(%rbp), %rdx
movq -0x9b0(%rbp), %rsi
movq -0x648(%rbp), %rdi
xorl %r8d, %r8d
leaq -0x5e0(%rbp), %r9
movl %r8d, %ecx
callq 0x5dcc0
jmp 0x5da3b
leaq -0x5e0(%rbp), %rdi
callq 0x11300
leaq -0x5e1(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5da82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0x11300
leaq -0x5e1(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x3fce0
movq %rax, %rdi
callq 0x3fca0
movq %rax, %rdi
callq 0x3fc20
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x5dac0
cmpl $0x0, -0x28(%rbp)
jne 0x5dac9
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jne 0x5daf4
cmpl $0x0, -0x2c(%rbp)
jne 0x5daf4
movq -0x648(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x5b670
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jl 0x5dbc8
movq -0x18(%rbp), %rax
movq %rax, -0x9c8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x9c0(%rbp)
leaq -0x609(%rbp), %rdi
movq %rdi, -0x9b8(%rbp)
callq 0x118c0
movq -0x9b8(%rbp), %rdx
leaq 0x7b13f(%rip), %rsi     # 0xd8c76
leaq -0x608(%rbp), %rdi
callq 0x14430
jmp 0x5db45
movq -0x9c0(%rbp), %rdx
movq -0x9c8(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
leaq -0x608(%rbp), %r9
callq 0x5dcc0
jmp 0x5db70
leaq -0x608(%rbp), %rdi
callq 0x11300
leaq -0x609(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5dbb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x608(%rbp), %rdi
callq 0x11300
leaq -0x609(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
jmp 0x5dbca
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl -0x2c(%rbp), %ecx
cmpl %ecx, %eax
jle 0x5dc9d
movq -0x18(%rbp), %rax
movq %rax, -0x9e0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x9d8(%rbp)
leaq -0x631(%rbp), %rdi
movq %rdi, -0x9d0(%rbp)
callq 0x118c0
movq -0x9d0(%rbp), %rdx
leaq 0x7b08f(%rip), %rsi     # 0xd8ca1
leaq -0x630(%rbp), %rdi
callq 0x14430
jmp 0x5dc20
movq -0x9d8(%rbp), %rdx
movq -0x9e0(%rbp), %rsi
movq -0x648(%rbp), %rdi
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorl %r8d, %r8d
leaq -0x630(%rbp), %r9
callq 0x5dcc0
jmp 0x5dc4b
leaq -0x630(%rbp), %rdi
callq 0x11300
leaq -0x631(%rbp), %rdi
callq 0x114d0
movb $0x0, -0x1(%rbp)
jmp 0x5dca9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5dc8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x11300
leaq -0x631(%rbp), %rdi
callq 0x114d0
jmp 0x5dcb7
movb $0x1, -0x1(%rbp)
jmp 0x5dca9
jmp 0x5dca5
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x9e0, %rsp            # imm = 0x9E0
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x118b0