// File: /workspace/github_cpp_makefile_star2_O1/Cicko[P]Ram-Machine/RamMachine.cpp
// Function: RamMachine::runProgram(bool)
void RamMachine::runProgram (bool trace) {
  pc_ = 0;
  error_ = false;
  outTape_->reset ();
  memory_->reset ();
  inTape_->reset();
  bool halt = false;

  while (!halt && !error_)
  {

    bool salto = false;
    Instruction * actual = program_->getInstruction (pc_);

    if (actual->getOp () == "read") {               // READ
      int inTapeData = inTape_->read ();
      switch (actual->getType ()) {
        case INDIRECT:   // Indirect
          memory_->write (inTapeData,memory_->read (stoi (actual->getOperand ())));
          break;
        case DIRECT:   // Direct
          memory_->write (inTapeData,stoi (actual->getOperand ()));
          break;
        case IMMEDIATE:   // Immediate
          cout << "El modo inmediato no tiene sentido en la operacion READ. Saliendo al menu..." << endl;
          error_ = true;
          break;
        default:
          cout << "No se reconoce este tipo de READ. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp () == "write") {         // WRITE
      switch (actual->getType ()) {
        case INDIRECT:
          outTape_->write (memory_->read (memory_->read (stoi (actual->getOperand ()))));
          break;
        case DIRECT:
          outTape_->write (memory_->read (stoi (actual->getOperand ())));
          break;
        case IMMEDIATE:
          outTape_->write (stoi (actual->getOperand()));
          break;
        default:
          cout << "No se reconoce este tipo de WRITE. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp () == "load") {          // LOAD
      switch (actual->getType ()) {
        case INDIRECT:
          memory_->write (memory_->read (memory_->read (stoi (actual->getOperand ()))),ACCUM);
          break;
        case DIRECT:
          memory_->write (memory_->read (stoi (actual->getOperand ())),ACCUM);
          break;
        case IMMEDIATE:
          memory_->write (stoi (actual->getOperand ()),ACCUM);
          break;
        default:
          cout << "No se reconoce este tipo de LOAD. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp() == "store") {
      switch (actual->getType()) {
        case INDIRECT:
          memory_->write (memory_->read (ACCUM), memory_->read (stoi (actual->getOperand())));
          break;
        case DIRECT:
          memory_->write (memory_->read (ACCUM),stoi (actual->getOperand()));
          break;
        case IMMEDIATE:
          cout << "No esta permitido el modo inmediato en la operacion STORE. Saliendo al menu.." << endl;
          error_ = true;
          break;
        default:
          cout << "No se reconoce este tipo de STORE. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp() == "add") {
      switch (actual->getType()) {
        case INDIRECT:
          memory_->write(memory_->read (ACCUM) + memory_->read (memory_->read (stoi (actual->getOperand()))),ACCUM);
          break;
        case DIRECT:
          memory_->write (memory_->read (ACCUM) + memory_->read (stoi (actual->getOperand ())),ACCUM);
          break;
        case IMMEDIATE:
          memory_->write (memory_->read (ACCUM) + stoi (actual->getOperand ()),ACCUM);
          break;
        default:
          cout << "No se reconoce este tipo de SUB. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp() == "sub") {
      switch (actual->getType()) {
        case INDIRECT:
          memory_->write(memory_->read (ACCUM) - memory_->read (memory_->read (stoi (actual->getOperand()))),ACCUM);
          break;
        case DIRECT:
          memory_->write (memory_->read (ACCUM) - memory_->read (stoi (actual->getOperand ())),ACCUM);
          break;
        case IMMEDIATE:
          memory_->write (memory_->read (ACCUM) - stoi (actual->getOperand ()),ACCUM);
          break;
        default:
          cout << "No se reconoce este tipo de SUB. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp() == "mul") {
      switch (actual->getType()) {
        case INDIRECT:
          memory_->write(memory_->read (ACCUM) * memory_->read (memory_->read (stoi (actual->getOperand()))),ACCUM);
          break;
        case DIRECT:
          memory_->write (memory_->read (ACCUM) * memory_->read (stoi (actual->getOperand ())),ACCUM);
          break;
        case IMMEDIATE:
          memory_->write (memory_->read (ACCUM) * stoi (actual->getOperand ()),ACCUM);
          break;
        default:
          cout << "No se reconoce este tipo de MUL. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp() == "div") {
      switch (actual->getType()) {
        case INDIRECT:
          memory_->write(memory_->read (ACCUM) / memory_->read (memory_->read (stoi (actual->getOperand()))),ACCUM);
          break;
        case DIRECT:
          memory_->write (memory_->read (ACCUM) / memory_->read (stoi (actual->getOperand ())),ACCUM);
          break;
        case IMMEDIATE:
          memory_->write (memory_->read (ACCUM) / stoi (actual->getOperand ()),ACCUM);
          break;
        default:
          cout << "No se reconoce este tipo de DIV. Saliendo al menu..." << endl;
          error_ = true;
      }
    }
    else if (actual->getOp () == "jump") {
      salto = true;
      jumpManager (actual);
    }
    else if (actual->getOp () == "jzero") {
      if (memory_->read (ACCUM) == 0) {
        salto = true;
        jumpManager (actual);
      }
    }
    else if (actual->getOp() == "jgtz") {
      if (memory_->read (ACCUM) > 0) {
        salto = true;
        jumpManager (actual);
      }
    }
    else if (actual->getOp() == "halt") {
      cout << "Se ha alcanzado HALT en la linea " << pc_ << ". Ahora se procedera a guardar el contenido en el fichero de salida." << endl;
      halt = true;
    }
    if (trace) {
      showActualState (actual);
    }
    if(error_) {
      cout << "We get error at line " << pc_ << endl;
      break;
    }
    if(!salto)
      pc_++;
  }
  saveToOutputTape ();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, 0x3c(%rsp)
movq %rdi, %r15
movl $0x0, 0x20(%rdi)
movb $0x0, 0x24(%rdi)
movq 0x8(%rdi), %rdi
callq 0x17af4
movq 0x10(%r15), %rdi
callq 0x17d2a
movq (%r15), %rdi
callq 0x17816
leaq 0x10(%rsp), %rbx
movq $0x0, 0x40(%rsp)
movq %r15, 0x20(%rsp)
testb $0x1, 0x40(%rsp)
jne 0x16d0a
cmpb $0x0, 0x24(%r15)
jne 0x16d0a
movq 0x18(%r15), %rdi
movl 0x20(%r15), %esi
callq 0x7d22
movq %rax, %r12
movq %rbx, (%rsp)
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3a9b(%rip), %rsi      # 0x19378
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x158f2
callq 0x5330
testl %ebp, %ebp
je 0x15c31
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3a5d(%rip), %rsi      # 0x1937d
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15935
callq 0x5330
testl %ebp, %ebp
je 0x15d00
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3a0a(%rip), %rsi      # 0x1936d
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15978
callq 0x5330
testl %ebp, %ebp
je 0x15dca
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x39cc(%rip), %rsi      # 0x19372
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x159bb
callq 0x5330
testl %ebp, %ebp
je 0x15f5c
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3974(%rip), %rsi      # 0x1935d
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x159fe
callq 0x5330
testl %ebp, %ebp
je 0x16177
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3935(%rip), %rsi      # 0x19361
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15a41
callq 0x5330
testl %ebp, %ebp
je 0x1639c
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x38f6(%rip), %rsi      # 0x19365
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15a84
callq 0x5330
testl %ebp, %ebp
je 0x1659d
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x38b7(%rip), %rsi      # 0x19369
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15ac7
callq 0x5330
testl %ebp, %ebp
je 0x167ce
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x388e(%rip), %rsi      # 0x19383
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15b0a
callq 0x5330
testl %ebp, %ebp
je 0x169b3
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3855(%rip), %rsi      # 0x1938d
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15b4d
callq 0x5330
testl %ebp, %ebp
je 0x16bce
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x380d(%rip), %rsi      # 0x19388
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15b90
callq 0x5330
testl %ebp, %ebp
je 0x16cdd
movq %rbx, (%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r14
movq %r14, %rdi
callq 0x63d2
movq %r14, %rdi
leaq 0x3826(%rip), %rsi      # 0x193e4
callq 0x50f0
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x15bd3
callq 0x5330
testl %ebp, %ebp
jne 0x16b21
movl $0x21, %edx
movq 0xd3c9(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x4894(%rip), %rsi      # 0x1a485
callq 0x53d0
movq 0x20(%rsp), %rax
movl 0x20(%rax), %esi
movq %rbx, %rdi
callq 0x5260
movq %rax, %r14
movl $0x44, %edx
movq %rax, %rdi
leaq 0x488f(%rip), %rsi      # 0x1a4a7
callq 0x53d0
movq %r14, %rdi
callq 0x51a0
movb $0x1, %al
movq %rax, 0x40(%rsp)
jmp 0x16b21
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x17774
movl %eax, %r15d
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x15ead
cmpl $0x3d, %eax
je 0x15e92
cmpl $0x2a, %eax
jne 0x15f41
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rbp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16d39
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d2d
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16d2d
testl %ecx, %ecx
jne 0x15ce4
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d12
movq %rbp, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x17d08
jmp 0x16b0e
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x160bd
cmpl $0x3d, %eax
je 0x1602e
cmpl $0x2a, %eax
jne 0x1615c
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r15
movq 0x10(%rax), %rbp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16d5d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d51
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16d51
testl %ecx, %ecx
jne 0x15da7
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d12
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d12
movq %r15, %rdi
movl %eax, %esi
callq 0x179a4
jmp 0x16b0e
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x162e4
cmpl $0x3d, %eax
je 0x16253
cmpl $0x2a, %eax
jne 0x16381
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r15
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16da5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d99
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16d99
testl %ecx, %ecx
jne 0x15e6d
movl %ebx, (%r13)
movq %r15, %rdi
movl %eax, %esi
callq 0x17d12
movq %r15, %rdi
movl %eax, %esi
callq 0x17d12
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movl $0x4c, %edx
movq 0xd112(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x43c9(%rip), %rsi      # 0x1a271
jmp 0x16563
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rbp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16d21
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d45
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16d45
testl %ecx, %ecx
jne 0x15f2f
movl %ebx, (%r13)
movq %rbp, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x17d08
jmp 0x16b0e
movl $0x35, %edx
movq 0xd063(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x4367(%rip), %rsi      # 0x1a2be
jmp 0x16563
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x164ae
cmpl $0x3d, %eax
je 0x16493
cmpl $0x2a, %eax
jne 0x1654d
movq 0x20(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, 0x30(%rsp)
movq 0x10(%r14), %r14
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %rbp
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %rbp, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %rbp, 0x28(%rsp)
je 0x16ded
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16de1
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16de1
testl %ecx, %ecx
jne 0x16011
movl %ebx, (%r13)
movq %r14, %rdi
movl %eax, %esi
callq 0x17d12
movq %r15, %rdi
movl 0x30(%rsp), %esi
movl %eax, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r13
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r15
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16d75
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d69
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x16d69
testl %ecx, %ecx
jne 0x160ae
movl %ebx, (%r15)
movq %r13, %rdi
movl %eax, %esi
callq 0x179a4
jmp 0x16b0e
movq 0x20(%rsp), %rax
movq 0x8(%rax), %r15
movq 0x10(%rax), %rbp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16d8d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d81
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16d81
testl %ecx, %ecx
jne 0x16143
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d12
movq %r15, %rdi
movl %eax, %esi
callq 0x179a4
jmp 0x16b0e
movl $0x36, %edx
movq 0xce48(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x4182(%rip), %rsi      # 0x1a2f4
jmp 0x16563
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x1671b
cmpl $0x3d, %eax
je 0x1667a
cmpl $0x2a, %eax
jne 0x16478
movq 0x20(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, 0x30(%rsp)
movq 0x10(%r14), %r13
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16e1d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e11
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x16e11
testl %ecx, %ecx
jne 0x1622a
movl %ebx, (%rbp)
movq %r13, %rdi
movl %eax, %esi
callq 0x17d12
movq %r13, %rdi
movl %eax, %esi
callq 0x17d12
addl 0x30(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r13
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r15
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16dbd
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16db1
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x16db1
testl %ecx, %ecx
jne 0x162d3
movl %ebx, (%r15)
movq %r13, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r15
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16dd5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16dc9
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16dc9
testl %ecx, %ecx
jne 0x16366
movl %ebx, (%r13)
movq %r15, %rdi
movl %eax, %esi
callq 0x17d12
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movl $0x35, %edx
movq 0xcc23(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x3f94(%rip), %rsi      # 0x1a32b
jmp 0x16563
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16900
cmpl $0x3d, %eax
je 0x1685f
cmpl $0x2a, %eax
jne 0x16478
movq 0x20(%rsp), %r14
movq 0x10(%r14), %rdi
movq %rdi, 0x30(%rsp)
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq 0x10(%r14), %r13
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r15
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16e65
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e59
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x16e59
testl %ecx, %ecx
jne 0x1644f
movl %ebx, (%r15)
movq %r13, %rdi
movl %eax, %esi
callq 0x17d12
movq %r13, %rdi
movl %eax, %esi
callq 0x17d12
subl %eax, %ebp
movq 0x30(%rsp), %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movl $0x34, %edx
movq 0xcb2c(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x3f58(%rip), %rsi      # 0x1a3e6
jmp 0x16563
movl $0x4d, %edx
movq 0xcb11(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x3eb8(%rip), %rsi      # 0x1a361
jmp 0x16563
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16e05
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16df9
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16df9
testl %ecx, %ecx
jne 0x1653c
movl %ebx, (%r13)
movq %r15, %rdi
movl %ebp, %esi
movl %eax, %edx
callq 0x17d08
jmp 0x16b0e
movl $0x36, %edx
movq 0xca57(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x3e4c(%rip), %rsi      # 0x1a3af
callq 0x53d0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x5340
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5270
movq 0x20(%rsp), %rax
movb $0x1, 0x24(%rax)
jmp 0x16b21
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16a5f
cmpl $0x3d, %eax
je 0x169bd
cmpl $0x2a, %eax
jne 0x16bb3
movq 0x20(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, 0x30(%rsp)
movq 0x10(%r14), %r13
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16ead
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16ea1
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x16ea1
testl %ecx, %ecx
jne 0x16650
movl %ebx, (%rbp)
movq %r13, %rdi
movl %eax, %esi
callq 0x17d12
movq %r13, %rdi
movl %eax, %esi
callq 0x17d12
imull 0x30(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16e35
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e29
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e29
testl %ecx, %ecx
jne 0x16708
movl %ebx, (%r13)
addl %eax, %ebp
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, 0x30(%rsp)
movq 0x10(%r14), %r14
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %rbp
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %rbp, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %rbp, 0x28(%rsp)
je 0x16e4d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e41
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e41
testl %ecx, %ecx
jne 0x167af
movl %ebx, (%r13)
movq %r14, %rdi
movl %eax, %esi
callq 0x17d12
addl 0x30(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16c42
cmpl $0x3d, %eax
je 0x16bed
cmpl $0x2a, %eax
jne 0x16cb5
movq 0x20(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq 0x10(%r14), %r14
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r13
movq %r13, %rdi
callq 0x63d2
movq %r13, %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x17526
movq %r14, %rdi
movl %eax, %esi
callq 0x17d12
movq %r14, %rdi
movl %eax, %esi
callq 0x17d12
movl %eax, %ecx
movl %ebp, %eax
cltd
idivl %ecx
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16ca3
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16e7d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e71
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e71
testl %ecx, %ecx
jne 0x168ed
movl %ebx, (%r13)
subl %eax, %ebp
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %r14
movq 0x10(%r14), %rdi
movq %rdi, 0x30(%rsp)
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq 0x10(%r14), %r14
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r15
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r15, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r15, 0x28(%rsp)
je 0x16e95
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e89
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e89
testl %ecx, %ecx
jne 0x16994
movl %ebx, (%r13)
movq %r14, %rdi
movl %eax, %esi
callq 0x17d12
subl %eax, %ebp
movq 0x30(%rsp), %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %rdi
jmp 0x16cfa
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x28(%rsp)
je 0x16ec5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16eb9
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16eb9
testl %ecx, %ecx
jne 0x16a4b
movl %ebx, (%r13)
imull %eax, %ebp
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16b0e
movq 0x20(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, 0x30(%rsp)
movq 0x10(%r14), %r14
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0x63d2
movq (%rsp), %rbp
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %rbp, %rdi
leaq 0x28(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %rbp, 0x28(%rsp)
je 0x16edd
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16ed1
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16ed1
testl %ecx, %ecx
jne 0x16af3
movl %ebx, (%r13)
movq %r14, %rdi
movl %eax, %esi
callq 0x17d12
imull 0x30(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x16b21
callq 0x5330
xorl %ebp, %ebp
cmpb $0x0, 0x3c(%rsp)
je 0x16b37
movq 0x20(%rsp), %rdi
movq %r12, %rsi
callq 0x170bc
movq 0x20(%rsp), %r15
movb 0x24(%r15), %bl
cmpb $0x1, %bl
jne 0x16b98
movl $0x15, %edx
movq 0xc45f(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x3991(%rip), %rsi      # 0x1a4ec
callq 0x53d0
movl 0x20(%r15), %esi
movq %r14, %rdi
callq 0x5260
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5340
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5270
jmp 0x16ba1
testb %bpl, %bpl
jne 0x16ba1
incl 0x20(%r15)
testb %bl, %bl
leaq 0x10(%rsp), %rbx
je 0x15893
jmp 0x16d0a
movl $0x34, %edx
movq 0xc3f1(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x3852(%rip), %rsi      # 0x1a41b
jmp 0x16563
movq 0x20(%rsp), %rbx
movq 0x10(%rbx), %rdi
xorl %ebp, %ebp
xorl %esi, %esi
callq 0x17d12
testl %eax, %eax
jne 0x16b23
jmp 0x16cf7
movq 0x20(%rsp), %rax
movq 0x10(%rax), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r15
movq %r15, %rdi
callq 0x63d2
movq %r15, %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x17526
movl %eax, %ecx
movl %ebp, %eax
cltd
idivl %ecx
movq %r14, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
jmp 0x16ca3
movq 0x20(%rsp), %r15
movq 0x10(%r15), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x17d12
movl %eax, %ebp
movq 0x10(%r15), %r15
movq %rbx, (%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %r13
movq %r13, %rdi
callq 0x63d2
movq %r13, %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x17526
movq %r15, %rdi
movl %eax, %esi
callq 0x17d12
movl %eax, %ecx
movl %ebp, %eax
cltd
idivl %ecx
movq %r14, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d08
movq (%rsp), %rdi
cmpq %rbx, %rdi
jne 0x16b1c
jmp 0x16b21
movl $0x34, %edx
movq 0xc2ef(%rip), %rbx      # 0x22fb0
movq %rbx, %rdi
leaq 0x3785(%rip), %rsi      # 0x1a450
callq 0x53d0
movq %rbx, %rdi
callq 0x51a0
jmp 0x1658f
movq 0x20(%rsp), %rbx
movq 0x10(%rbx), %rdi
xorl %ebp, %ebp
xorl %esi, %esi
callq 0x17d12
testl %eax, %eax
jle 0x16b23
movq %rbx, %rdi
movq %r12, %rsi
callq 0x16f8c
movb $0x1, %bpl
jmp 0x16b23
movq %r15, %rdi
callq 0x171e0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3863(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3857(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x384b(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x383f(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3833(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3827(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x381b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x380f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3803(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37f7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37eb(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37df(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37d3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37c7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37bb(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37af(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37a3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3797(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x378b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x377f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3773(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3767(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x375b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x374f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3743(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3737(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x372b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x371f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3713(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3707(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36fb(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36ef(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36e3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36d7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36cb(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36bf(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36b3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36a7(%rip), %rdi      # 0x1a58b
callq 0x5200
jmp 0x16f6e
jmp 0x16efc
jmp 0x16f6e
jmp 0x16efc
jmp 0x16f5e
jmp 0x16f5e
jmp 0x16f20
jmp 0x16f6e
movq %rax, %r14
movq (%rsp), %rdi
cmpq %rbx, %rdi
jne 0x16f7f
jmp 0x16f84
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f5e
jmp 0x16f5e
jmp 0x16f4a
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f5e
jmp 0x16f5e
movq %rax, %r14
cmpl $0x0, (%rbp)
jne 0x16f71
movl %ebx, (%rbp)
jmp 0x16f71
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f5e
jmp 0x16f5e
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f5e
jmp 0x16f4a
jmp 0x16f5e
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f6e
jmp 0x16f5e
movq %rax, %r14
cmpl $0x0, (%r15)
jne 0x16f71
movl %ebx, (%r15)
jmp 0x16f71
jmp 0x16f5e
jmp 0x16f6e
jmp 0x16f5e
movq %rax, %r14
cmpl $0x0, (%r13)
jne 0x16f71
movl %ebx, (%r13)
jmp 0x16f71
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x16f84
callq 0x5330
movq %r14, %rdi
callq 0x55c0