// File: /workspace/github_cpp_makefile_star2_O2/rfotino[P]consolite-compiler/src/syntax.cpp
// Function: OperatorToken::output(Parser*, Operand const&, Operand const&)
Operand OperatorToken::output(Parser *parser,
                              const Operand& lhs, const Operand& rhs) {
  if (isUnary()) {
    if ("-" == _op) {
      // The negative of a 2's complement number x is ~x + 1.
      operandValueToReg(parser, rhs, "M");
      parser->writeInst("MOVI N 0xffff");
      parser->writeInst("XOR M N");
      parser->writeInst("MOVI N 0x1");
      parser->writeInst("ADD M N");
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    } else if ("*" == _op) {
      // Dereference operator. Do nothing for value operands, because
      // we would just be popping them off and pushing them back onto
      // the stack.
      if (OperandType::VALUE != rhs.type()) {
        operandValueToReg(parser, rhs, "M");
        parser->writeInst("PUSH M");
      }
      return Operand(OperandType::ADDRESS);
    } else if ("&" == _op) {
      // Do nothing, the value should already be on the stack.
      if (OperandType::ADDRESS != rhs.type()) {
        throw "Right hand side must be an address for the address-of operator.";
      }
      return Operand(OperandType::VALUE);
    } else if ("~" == _op) {
      // x ^ 0xffff == ~x
      operandValueToReg(parser, rhs, "M");
      parser->writeInst("MOVI N 0xffff");
      parser->writeInst("XOR M N");
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    } else if ("!" == _op) {
      // x = x != 0 ? 1 : 0
      std::string label1 = parser->getUnusedLabel("label");
      std::string label2 = parser->getUnusedLabel("label");
      operandValueToReg(parser, rhs, "M");
      parser->writeInst("TST M M");
      parser->writeInst("JNE " + label1);
      parser->writeInst("MOVI M 0x1");
      parser->writeInst("JMPI " + label2);
      parser->writeln(label1 + ":");
      parser->writeInst("MOVI M 0x0");
      parser->writeln(label2 + ":");
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    } else if ("+" == _op) {
      // Get the value and push it onto the stack.
      operandValueToReg(parser, rhs, "M");
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    }
  } else if (isBinary()) {
    if ("%" == _op) {
      // a % b == a - (b * (a / b))
      operandValueToReg(parser, rhs, "N");
      operandValueToReg(parser, lhs, "M");
      parser->writeInst("MOV L M");
      parser->writeInst("DIV M N");
      parser->writeInst("MUL M N");
      parser->writeInst("SUB L M");
      parser->writeInst("PUSH L");
      return Operand(OperandType::VALUE);
    } else if ("=" == _op) {
      // Load RHS value into a register.
      operandValueToReg(parser, rhs, "N");
      if (OperandType::ADDRESS == lhs.type()) {
        parser->writeInst("POP M");
        parser->writeInst("STOR N M");
      } else if (OperandType::REGISTER == lhs.type()) {
        parser->writeInst("MOV " + lhs.reg() + " N");
      } else {
        throw "Left hand side of assignment cannot be an rvalue.";
      }
      parser->writeInst("PUSH N");
      return Operand(OperandType::VALUE);
    } else if ("+" == _op || "-" == _op || "*" == _op || "/" == _op ||
               "&" == _op || "|" == _op || "^" == _op ||
               "<<" == _op || ">>" == _op) {
      operandValueToReg(parser, rhs, "N");
      operandValueToReg(parser, lhs, "M");
      std::string inst;
      if ("+" == _op) {
        inst = "ADD";
      } else if ("-" == _op) {
        inst = "SUB";
      } else if ("*" == _op) {
        inst = "MUL";
      } else if ("/" == _op) {
        inst = "DIV";
      } else if ("&" == _op) {
        inst = "AND";
      } else if ("|" == _op) {
        inst = "OR";
      } else if ("^" == _op) {
        inst = "XOR";
      } else if ("<<" == _op) {
        inst = "SHL";
      } else if (">>" == _op) {
        inst = "SHRL";
      }
      parser->writeInst(inst + " M N");
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    } else if ("[" == _op) {
      // For x[a], push &x + (a * DATA_SIZE) onto the stack.
      operandValueToReg(parser, rhs, "N");
      operandValueToReg(parser, lhs, "M");
      // Assume DATA_SIZE is a power of 2, and do a fast
      // multiply by shifting left
      parser->writeInst("MOVI L " + toHexStr(ceil(log2(DATA_SIZE))));
      parser->writeInst("SHL N L");
      parser->writeInst("ADD M N");
      parser->writeInst("PUSH M");
      return Operand(OperandType::ADDRESS);
    } else if ("||" == _op || "&&" == _op) {
      // Make N either 0 or 1.
      std::string label1 = parser->getUnusedLabel("label");
      std::string label2 = parser->getUnusedLabel("label");
      operandValueToReg(parser, rhs, "N");
      parser->writeInst("TST N N");
      parser->writeInst("JEQ " + label1);
      parser->writeInst("MOVI N 0x1");
      parser->writeInst("JMPI " + label2);
      parser->writeln(label1 + ":");
      parser->writeInst("MOVI N 0x0");
      parser->writeln(label2 + ":");
      // Make M either 0 or 1.
      std::string label3 = parser->getUnusedLabel("label");
      std::string label4 = parser->getUnusedLabel("label");
      operandValueToReg(parser, lhs, "M");
      parser->writeInst("TST M M");
      parser->writeInst("JEQ " + label3);
      parser->writeInst("MOVI M 0x1");
      parser->writeInst("JMPI " + label4);
      parser->writeln(label3 + ":");
      parser->writeInst("MOVI M 0x0");
      parser->writeln(label4 + ":");
      // Do the operation.
      if ("||" == _op) {
        parser->writeInst("OR M N");
      } else if ("&&" == _op) {
        parser->writeInst("AND M N");
      }
      // Push the result.
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    } else if ("<" == _op || "<=" == _op || ">" == _op || ">=" == _op ||
               "==" == _op || "!=" == _op) {
      std::string label1 = parser->getUnusedLabel("label");
      std::string label2 = parser->getUnusedLabel("label");
      operandValueToReg(parser, rhs, "N");
      operandValueToReg(parser, lhs, "M");
      parser->writeInst("CMP M N");
      std::string inst;
      if ("<" == _op) {
        inst = "JB";
      } else if ("<=" == _op) {
        inst = "JBE";
      } else if (">" == _op) {
        inst = "JA";
      } else if (">=" == _op) {
        inst = "JAE";
      } else if ("==" == _op) {
        inst = "JEQ";
      } else if ("!=" == _op) {
        inst = "JNE";
      }
      parser->writeInst(inst + " " + label1);
      parser->writeInst("MOVI M 0x0");
      parser->writeInst("JMPI " + label2);
      parser->writeln(label1 + ":");
      parser->writeInst("MOVI M 0x1");
      parser->writeln(label2 + ":");
      parser->writeInst("PUSH M");
      return Operand(OperandType::VALUE);
    }
  }
  // By default return a value type, control should never reach here.
  return Operand(OperandType::VALUE);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb0, %rsp
movq %r8, %r13
movq %rdx, %r14
movq %rdi, %rbx
leaq 0x10(%rsi), %r15
cmpb $0x0, 0x30(%rsi)
je 0xc9d1
movq %rcx, %r12
leaq 0x1cd89(%rip), %rdi     # 0x295da
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xcb28
leaq 0x1cf90(%rip), %rsi     # 0x297f8
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ce88(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cec3(%rip), %rsi     # 0x2978b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ce9e(%rip), %rsi     # 0x29793
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ce79(%rip), %rsi     # 0x2979b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ce54(%rip), %rsi     # 0x297a3
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ce2f(%rip), %rsi     # 0x297ab
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1d726(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1cbfc(%rip), %rdi     # 0x295d4
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xcbde
leaq 0x1cd31(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ccd3(%rip), %rsi     # 0x296f2
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1ccb4(%rip), %rsi     # 0x29700
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cc8f(%rip), %rsi     # 0x29708
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cc6d(%rip), %rsi     # 0x29713
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cc48(%rip), %rsi     # 0x2971b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1d5cf(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1cac3(%rip), %rdi     # 0x295f2
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xcc85
leaq 0x1ccb2(%rip), %rsi     # 0x297f8
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
movl (%r12), %eax
cmpl $0x1, %eax
je 0xcf1a
testl %eax, %eax
jne 0xdf12
leaq 0x1cc27(%rip), %rsi     # 0x297b2
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cc00(%rip), %rsi     # 0x297b8
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
jmp 0xcf7e
leaq 0x1c9f1(%rip), %rdi     # 0x295d6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xcdd0
cmpl $0x2, (%r13)
je 0xcc59
leaq 0x1cb1d(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cae8(%rip), %rsi     # 0x2971b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1d46f(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
andl $0x0, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1c946(%rip), %rdi     # 0x295d2
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c931(%rip), %rdi     # 0x295d4
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c91c(%rip), %rdi     # 0x295d6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c90b(%rip), %rdi     # 0x295d8
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c906(%rip), %rdi     # 0x295e6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c8f0(%rip), %rdi     # 0x295e3
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c8d6(%rip), %rdi     # 0x295dc
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c8dd(%rip), %rdi     # 0x295f6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xcd3c
leaq 0x1c8cd(%rip), %rdi     # 0x295f9
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd488
leaq 0x1cab5(%rip), %rsi     # 0x297f8
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c9ad(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x1c81e(%rip), %rdi     # 0x295d2
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xcfdf
leaq 0x1ca2f(%rip), %rsi     # 0x297fa
jmp 0xd3d2
leaq 0x1c80f(%rip), %rdi     # 0x295e6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xce1d
cmpl $0x0, (%r13)
jne 0xdf01
leaq 0x1d2da(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1c7ba(%rip), %rdi     # 0x295de
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd002
leaq 0x1c8e5(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c887(%rip), %rsi     # 0x296f2
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c868(%rip), %rsi     # 0x29700
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c856(%rip), %rsi     # 0x2971b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1d1dd(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
addq $0x8, %r12
leaq 0x30(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x73e0
leaq 0x1c1f4(%rip), %rsi     # 0x29129
leaq 0x50(%rsp), %rdi
movq %r15, %rdx
callq 0x1832f
leaq 0x1c8ae(%rip), %rdx     # 0x297f7
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9ad4
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c869(%rip), %rsi     # 0x297f3
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1d118(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1c5ee(%rip), %rdi     # 0x295d4
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd263
leaq 0x1c801(%rip), %rsi     # 0x297fe
jmp 0xd3d2
leaq 0x1c5d7(%rip), %rdi     # 0x295e0
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd286
leaq 0x1c742(%rip), %rsi     # 0x29762
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x1c710(%rip), %rsi     # 0x29762
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c699(%rip), %rsi     # 0x29720
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c6ae(%rip), %rsi     # 0x29768
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c686(%rip), %rsi     # 0x29770
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x9980
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c65e(%rip), %rsi     # 0x29775
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1bfce(%rip), %rsi     # 0x29115
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9980
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1e4bc(%rip), %rdx     # 0x2b630
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x99f6
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c5df(%rip), %rsi     # 0x29780
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1e45f(%rip), %rdx     # 0x2b630
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x99f6
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c51d(%rip), %rsi     # 0x2971b
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1cea1(%rip), %rsi     # 0x2a0cf
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x30(%rsp), %rsi
callq 0x73e0
leaq 0x30(%rsp), %rdi
callq 0x75c8
jmp 0xd460
leaq 0x1c36c(%rip), %rdi     # 0x295d6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd329
leaq 0x1c581(%rip), %rsi     # 0x29802
jmp 0xd3d2
leaq 0x1c345(%rip), %rdi     # 0x295d2
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdc64
leaq 0x1c47c(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c447(%rip), %rsi     # 0x2971b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cdce(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1c2a8(%rip), %rdi     # 0x295d8
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd348
leaq 0x1c4c3(%rip), %rsi     # 0x29806
jmp 0xd3d2
leaq 0x1c297(%rip), %rdi     # 0x295e6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd364
leaq 0x1c4a8(%rip), %rsi     # 0x2980a
jmp 0xd3d2
leaq 0x1c278(%rip), %rdi     # 0x295e3
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd380
leaq 0x1bcba(%rip), %rsi     # 0x29038
jmp 0xd3d2
leaq 0x1c255(%rip), %rdi     # 0x295dc
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd39c
leaq 0x1c474(%rip), %rsi     # 0x2980e
jmp 0xd3d2
leaq 0x1c253(%rip), %rdi     # 0x295f6
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd3b8
leaq 0x1c45c(%rip), %rsi     # 0x29812
jmp 0xd3d2
leaq 0x1c23a(%rip), %rdi     # 0x295f9
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd3dc
leaq 0x1c444(%rip), %rsi     # 0x29816
leaq 0x10(%rsp), %rdi
callq 0x7580
leaq 0x1c333(%rip), %rdx     # 0x29716
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x99f6
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x1c30b(%rip), %rsi     # 0x2971b
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x9502
leaq 0x50(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x1cc92(%rip), %rsi     # 0x2a0cf
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x50(%rsp), %rsi
callq 0x73e0
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x10(%rsp), %rdi
callq 0x75c8
movq %rbx, %rax
addq $0xb0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x1c165(%rip), %rdi     # 0x295f4
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xd5fa
leaq 0x1c352(%rip), %rsi     # 0x297f8
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c24a(%rip), %rsi     # 0x29720
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x27c70
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x50(%rsp), %r15
pushq $0x1
popq %rsi
pushq $0x4
popq %rdx
movq %r15, %rdi
callq 0x27ea7
leaq 0x1c302(%rip), %rsi     # 0x2981b
leaq 0x10(%rsp), %rdi
movq %r15, %rdx
callq 0x1832f
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x1c2d5(%rip), %rsi     # 0x29823
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c198(%rip), %rsi     # 0x29713
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1c173(%rip), %rsi     # 0x2971b
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x10(%rsp), %rdi
callq 0x75c8
leaq 0x1cafa(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
andl $0x0, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1bfe1(%rip), %rdi     # 0x295e2
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xd624
leaq 0x1bfd1(%rip), %rdi     # 0x295e5
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdac1
leaq 0x1c137(%rip), %rsi     # 0x29762
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x1c105(%rip), %rsi     # 0x29762
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c166(%rip), %rsi     # 0x297f8
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c166(%rip), %rsi     # 0x2982b
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c13e(%rip), %rsi     # 0x29833
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x9980
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1bfe6(%rip), %rsi     # 0x29708
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1b9c3(%rip), %rsi     # 0x29115
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9980
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1deb1(%rip), %rdx     # 0x2b630
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x99f6
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1c08c(%rip), %rsi     # 0x29838
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1de54(%rip), %rdx     # 0x2b630
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x99f6
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1bf59(%rip), %rsi     # 0x29762
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1bf1e(%rip), %rsi     # 0x29762
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1bea7(%rip), %rsi     # 0x29720
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x27c70
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1bebf(%rip), %rsi     # 0x29768
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1bf5d(%rip), %rsi     # 0x29833
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x9980
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1be72(%rip), %rsi     # 0x29775
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1b7e5(%rip), %rsi     # 0x29115
leaq 0x70(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9980
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1dcd0(%rip), %rdx     # 0x2b630
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x99f6
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1bdf3(%rip), %rsi     # 0x29780
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1dc76(%rip), %rdx     # 0x2b630
leaq 0x70(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x99f6
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1bbf8(%rip), %rdi     # 0x295e2
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xda1b
leaq 0x1bd04(%rip), %rsi     # 0x29701
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
jmp 0xda51
leaq 0x1bbc3(%rip), %rdi     # 0x295e5
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xda5b
leaq 0x1be0e(%rip), %rsi     # 0x29843
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1bcb9(%rip), %rsi     # 0x2971b
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1c640(%rip), %rsi     # 0x2a0cf
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x70(%rsp), %rsi
callq 0x73e0
leaq 0x70(%rsp), %rdi
callq 0x75c8
jmp 0xdeef
leaq 0x1bb2f(%rip), %rdi     # 0x295f7
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xdb37
leaq 0x1bb0d(%rip), %rdi     # 0x295e8
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xdb37
leaq 0x1bb0c(%rip), %rdi     # 0x295fa
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xdb37
leaq 0x1baea(%rip), %rdi     # 0x295eb
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xdb37
leaq 0x1bada(%rip), %rdi     # 0x295ee
movq %r15, %rsi
callq 0x97dd
testb %al, %al
jne 0xdb37
leaq 0x1baca(%rip), %rdi     # 0x295f1
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdc64
leaq 0x1bc24(%rip), %rsi     # 0x29762
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x9502
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x50(%rsp), %rdi
callq 0x75c8
leaq 0x1bbf2(%rip), %rsi     # 0x29762
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %r14, %rsi
callq 0x901a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1bc53(%rip), %rsi     # 0x297f8
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x27c70
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1bb48(%rip), %rsi     # 0x29720
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x27c70
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x1bc40(%rip), %rsi     # 0x2984b
leaq 0x30(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x9502
leaq 0x30(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x30(%rsp), %rdi
callq 0x75c8
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x1b9ab(%rip), %rdi     # 0x295f7
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdc93
leaq 0x1bbf4(%rip), %rsi     # 0x29853
jmp 0xdd1d
leaq 0x1c464(%rip), %rsi     # 0x2a0cf
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x73e0
jmp 0xd46a
leaq 0x1b94e(%rip), %rdi     # 0x295e8
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdcaf
leaq 0x1bba9(%rip), %rsi     # 0x29856
jmp 0xdd1d
leaq 0x1b944(%rip), %rdi     # 0x295fa
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdccb
leaq 0x1bb91(%rip), %rsi     # 0x2985a
jmp 0xdd1d
leaq 0x1b919(%rip), %rdi     # 0x295eb
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdce7
leaq 0x1bb78(%rip), %rsi     # 0x2985d
jmp 0xdd1d
leaq 0x1b900(%rip), %rdi     # 0x295ee
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdd03
leaq 0x1bb60(%rip), %rsi     # 0x29861
jmp 0xdd1d
leaq 0x1b8e7(%rip), %rdi     # 0x295f1
movq %r15, %rsi
callq 0x97dd
testb %al, %al
je 0xdd27
leaq 0x1bb48(%rip), %rsi     # 0x29865
leaq 0x30(%rsp), %rdi
callq 0x7580
leaq 0x1b407(%rip), %rdx     # 0x29135
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x99f6
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x9ab5
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x70(%rsp), %rdi
callq 0x75c8
leaq 0x1b9fe(%rip), %rsi     # 0x29780
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x9502
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1b35d(%rip), %rsi     # 0x29115
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x9980
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1d842(%rip), %rdx     # 0x2b630
leaq 0x90(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x99f6
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1b951(%rip), %rsi     # 0x29775
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x9502
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1d7d6(%rip), %rdx     # 0x2b630
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x99f6
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x93f2
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1b88b(%rip), %rsi     # 0x2971b
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x9502
leaq 0x90(%rsp), %rsi
movq %r14, %rdi
callq 0x914a
leaq 0x90(%rsp), %rdi
callq 0x75c8
leaq 0x1c209(%rip), %rsi     # 0x2a0cf
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x9502
movl $0x2, (%rbx)
leaq 0x8(%rbx), %rdi
leaq 0x90(%rsp), %rsi
callq 0x73e0
leaq 0x90(%rsp), %rdi
callq 0x75c8
jmp 0xd254
pushq $0x8
popq %rdi
callq 0x7180
leaq 0x1b812(%rip), %rcx     # 0x29722
jmp 0xdf21
pushq $0x8
popq %rdi
callq 0x7180
leaq 0x1b8a0(%rip), %rcx     # 0x297c1
movq %rcx, (%rax)
movq 0x3104d(%rip), %rsi     # 0x3ef78
movq %rax, %rdi
xorl %edx, %edx
callq 0x74d0
jmp 0xe003
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
jmp 0xe012
jmp 0xe169
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x75c8
jmp 0xe02a
jmp 0xe027
jmp 0xe169
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe180
jmp 0xe290
jmp 0xe192
jmp 0xe2a1
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
jmp 0xe003
jmp 0xe012
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x75c8
jmp 0xe015
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x75c8
jmp 0xe16c
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
jmp 0xe01d
jmp 0xe169
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0xe171
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe180
jmp 0xe290
jmp 0xe192
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x75c8
jmp 0xe195
jmp 0xe192
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
jmp 0xe169
jmp 0xe231
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x75c8
jmp 0xe234
jmp 0xe231
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0xe239
jmp 0xe290
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
jmp 0xe298
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x75c8
jmp 0xe1f2
jmp 0xe2a1
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x75c8
jmp 0xe20b
jmp 0xe290
jmp 0xe290
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0xe298
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe231
jmp 0xe290
jmp 0xe231
jmp 0xe290
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x75c8
jmp 0xe293
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe2a1
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
jmp 0xe290
jmp 0xe2a1
jmp 0xe2a1
jmp 0xe290
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x75c8
jmp 0xe2a4
jmp 0xe2a1
movq %rax, %rbx
movq %rbx, %rdi
callq 0x7510