// File: /workspace/github_cpp_makefile_star2_O3/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, 0x44(%rsp)
movq %rdi, %r15
movl $0x0, 0x20(%rdi)
movb $0x0, 0x24(%rdi)
movq 0x8(%rdi), %rdi
callq 0x17b18
movq 0x10(%r15), %rdi
callq 0x17d4e
movq (%r15), %rdi
callq 0x1783a
leaq 0x20(%rsp), %rbx
movb 0x24(%r15), %al
leaq 0x10(%rsp), %r14
movq %r15, 0x8(%rsp)
testb $0x1, %al
jne 0x16d2a
movq 0x18(%r15), %rdi
movl 0x20(%r15), %esi
callq 0x7ce8
movq %rax, %r12
movq %rbx, 0x10(%rsp)
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x3aaf(%rip), %rsi      # 0x19378
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x158df
callq 0x5330
testl %ebp, %ebp
je 0x15c11
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x3a72(%rip), %rsi      # 0x1937d
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15921
callq 0x5330
testl %ebp, %ebp
je 0x15ce0
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x3a20(%rip), %rsi      # 0x1936d
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15963
callq 0x5330
testl %ebp, %ebp
je 0x15daa
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x39e3(%rip), %rsi      # 0x19372
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x159a5
callq 0x5330
testl %ebp, %ebp
je 0x15f40
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x398c(%rip), %rsi      # 0x1935d
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x159e7
callq 0x5330
testl %ebp, %ebp
je 0x16161
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x394e(%rip), %rsi      # 0x19361
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15a29
callq 0x5330
testl %ebp, %ebp
je 0x16390
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x3910(%rip), %rsi      # 0x19365
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15a6b
callq 0x5330
testl %ebp, %ebp
je 0x1659a
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x38d2(%rip), %rsi      # 0x19369
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15aad
callq 0x5330
testl %ebp, %ebp
je 0x167d9
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x38aa(%rip), %rsi      # 0x19383
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15aef
callq 0x5330
testl %ebp, %ebp
je 0x16bb4
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x3872(%rip), %rsi      # 0x1938d
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15b31
callq 0x5330
testl %ebp, %ebp
je 0x16b98
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x382b(%rip), %rsi      # 0x19388
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15b73
callq 0x5330
testl %ebp, %ebp
je 0x16cb7
movq %rbx, 0x10(%rsp)
movq 0x28(%r12), %rsi
movq 0x30(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
leaq 0x3845(%rip), %rsi      # 0x193e4
callq 0x50f0
movl %eax, %ebp
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15bb5
callq 0x5330
testl %ebp, %ebp
jne 0x16b37
movl $0x21, %edx
movq 0xd3e7(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x48b2(%rip), %rsi      # 0x1a485
callq 0x53d0
movq 0x8(%rsp), %rax
movl 0x20(%rax), %esi
movq %r14, %rdi
callq 0x5260
movq %rax, %r14
movl $0x44, %edx
movq %rax, %rdi
leaq 0x48ad(%rip), %rsi      # 0x1a4a7
callq 0x53d0
movq %r14, %rdi
callq 0x51a0
movb $0x1, %r14b
xorl %ebp, %ebp
jmp 0x16b3c
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x17798
movl %eax, %r15d
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x15e8f
cmpl $0x3d, %eax
je 0x15e74
cmpl $0x2a, %eax
jne 0x15f25
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16d65
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d59
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x16d59
testl %ecx, %ecx
jne 0x15cc4
movl %ebx, (%rbp)
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movq %r13, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x17d2c
jmp 0x16b23
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x160a5
cmpl $0x3d, %eax
je 0x16014
cmpl $0x2a, %eax
jne 0x16146
movq 0x8(%rsp), %rax
movq 0x8(%rax), %r15
movq 0x10(%rax), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16d7d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d71
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x16d71
testl %ecx, %ecx
jne 0x15d87
movl %ebx, (%rbp)
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movq %r15, %rdi
movl %eax, %esi
callq 0x179c8
jmp 0x16b23
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x162d6
cmpl $0x3d, %eax
je 0x16243
cmpl $0x2a, %eax
jne 0x16375
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16dc5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16db9
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16db9
testl %ecx, %ecx
jne 0x15e4f
movl %ebx, (%r13)
movq %r15, %rdi
movl %eax, %esi
callq 0x17d36
movq %r15, %rdi
movl %eax, %esi
callq 0x17d36
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movl $0x4c, %edx
movq 0xd130(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x43e7(%rip), %rsi      # 0x1a271
jmp 0x16560
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16d4d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d41
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16d41
testl %ecx, %ecx
jne 0x15f13
movl %ebx, (%r13)
movq %rbp, %rdi
movl %r15d, %esi
movl %eax, %edx
callq 0x17d2c
jmp 0x16b23
movl $0x35, %edx
movq 0xd07f(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x4383(%rip), %rsi      # 0x1a2be
jmp 0x16560
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x164a9
cmpl $0x3d, %eax
je 0x1648e
cmpl $0x2a, %eax
jne 0x1654a
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, 0x38(%rsp)
movq 0x10(%r14), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e0d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e01
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x16e01
testl %ecx, %ecx
jne 0x15ff7
movl %ebx, (%rbp)
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movq %r15, %rdi
movl 0x38(%rsp), %esi
movl %eax, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %rax
movq 0x8(%rax), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r15
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16d95
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16d89
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x16d89
testl %ecx, %ecx
jne 0x16096
movl %ebx, (%r15)
movq %r13, %rdi
movl %eax, %esi
callq 0x179c8
jmp 0x16b23
movq 0x8(%rsp), %rax
movq 0x8(%rax), %r15
movq 0x10(%rax), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16dad
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16da1
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16da1
testl %ecx, %ecx
jne 0x1612d
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
movq %r15, %rdi
movl %eax, %esi
callq 0x179c8
jmp 0x16b23
movl $0x36, %edx
movq 0xce5e(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x4198(%rip), %rsi      # 0x1a2f4
jmp 0x16560
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16722
cmpl $0x3d, %eax
je 0x1667d
cmpl $0x2a, %eax
jne 0x16473
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, 0x38(%rsp)
movq 0x10(%r14), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e3d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e31
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e31
testl %ecx, %ecx
jne 0x1621a
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
addl 0x38(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r15
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16ddd
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16dd1
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x16dd1
testl %ecx, %ecx
jne 0x162c5
movl %ebx, (%r15)
movq %r13, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16df5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16de9
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16de9
testl %ecx, %ecx
jne 0x1635a
movl %ebx, (%r13)
movq %r15, %rdi
movl %eax, %esi
callq 0x17d36
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movl $0x35, %edx
movq 0xcc2f(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x3fa0(%rip), %rsi      # 0x1a32b
jmp 0x16560
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16912
cmpl $0x3d, %eax
je 0x1686d
cmpl $0x2a, %eax
jne 0x16473
movq 0x8(%rsp), %r14
movq 0x10(%r14), %rdi
movq %rdi, 0x38(%rsp)
xorl %esi, %esi
callq 0x17d36
movl %eax, %r13d
movq 0x10(%r14), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r15
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e85
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e79
movl (%r15), %ecx
cmpl $0x22, %ecx
je 0x16e79
testl %ecx, %ecx
jne 0x16448
movl %ebx, (%r15)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
subl %eax, %r13d
movq 0x38(%rsp), %rdi
movl %r13d, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movl $0x34, %edx
movq 0xcb31(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x3f5d(%rip), %rsi      # 0x1a3e6
jmp 0x16560
movl $0x4d, %edx
movq 0xcb16(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x3ebd(%rip), %rsi      # 0x1a361
jmp 0x16560
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e25
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e19
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e19
testl %ecx, %ecx
jne 0x16539
movl %ebx, (%r13)
movq %r15, %rdi
movl %ebp, %esi
movl %eax, %edx
callq 0x17d2c
jmp 0x16b23
movl $0x36, %edx
movq 0xca5a(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x3e4f(%rip), %rsi      # 0x1a3af
callq 0x53d0
movq (%r14), %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
movq 0x8(%rsp), %rax
movb $0x1, 0x24(%rax)
jmp 0x16b37
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16a70
cmpl $0x3d, %eax
je 0x169ca
cmpl $0x2a, %eax
jne 0x16b7d
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, 0x38(%rsp)
movq 0x10(%r14), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16ecd
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16ec1
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16ec1
testl %ecx, %ecx
jne 0x16653
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
imull 0x38(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e55
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e49
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e49
testl %ecx, %ecx
jne 0x1670f
movl %ebx, (%r13)
addl %eax, %ebp
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, 0x38(%rsp)
movq 0x10(%r14), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e6d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e61
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e61
testl %ecx, %ecx
jne 0x167ba
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
addl 0x38(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movzbl 0x48(%r12), %eax
cmpl $0x64, %eax
je 0x16c21
cmpl $0x3d, %eax
je 0x16bc9
cmpl $0x2a, %eax
jne 0x16c8f
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq 0x10(%r14), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1754a
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movl %eax, %ecx
movl %ebp, %eax
cltd
idivl %ecx
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16c85
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16e9d
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16e91
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16e91
testl %ecx, %ecx
jne 0x168ff
movl %ebx, (%r13)
subl %eax, %ebp
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %r14
movq 0x10(%r14), %rdi
movq %rdi, 0x38(%rsp)
xorl %esi, %esi
callq 0x17d36
movl %eax, %r13d
movq 0x10(%r14), %r15
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16eb5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16ea9
movl (%rbp), %ecx
cmpl $0x22, %ecx
je 0x16ea9
testl %ecx, %ecx
jne 0x169a9
movl %ebx, (%rbp)
movq %r15, %rdi
movl %eax, %esi
callq 0x17d36
subl %eax, %r13d
movq 0x38(%rsp), %rdi
movl %r13d, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16ee5
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16ed9
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16ed9
testl %ecx, %ecx
jne 0x16a5c
movl %ebx, (%r13)
imull %eax, %ebp
movq %r15, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16b23
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, 0x38(%rsp)
movq 0x10(%r14), %rbp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x63c2
movq 0x10(%rsp), %r14
callq 0x5060
movq %rax, %r13
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r14, %rdi
leaq 0x30(%rsp), %rsi
movl $0xa, %edx
callq 0x5480
cmpq %r14, 0x30(%rsp)
je 0x16efd
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x16ef1
movl (%r13), %ecx
cmpl $0x22, %ecx
je 0x16ef1
testl %ecx, %ecx
jne 0x16b08
movl %ebx, (%r13)
movq %rbp, %rdi
movl %eax, %esi
callq 0x17d36
imull 0x38(%rsp), %eax
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rbx
cmpq %rbx, %rdi
je 0x16b37
callq 0x5330
xorl %ebp, %ebp
xorl %r14d, %r14d
cmpb $0x0, 0x44(%rsp)
je 0x16b50
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x170e0
movq 0x8(%rsp), %r15
movb 0x24(%r15), %al
cmpb $0x1, %al
je 0x16cd9
testb %bpl, %bpl
jne 0x16b6a
incl 0x20(%r15)
testb %r14b, %r14b
leaq 0x10(%rsp), %r14
je 0x1588f
jmp 0x16d2a
movl $0x34, %edx
movq 0xc427(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x3888(%rip), %rsi      # 0x1a41b
jmp 0x16560
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
xorl %ebp, %ebp
xorl %esi, %esi
callq 0x17d36
movl $0x0, %r14d
testl %eax, %eax
jne 0x16b3c
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x16fae
movb $0x1, %bpl
jmp 0x16b39
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1754a
movl %eax, %ecx
movl %ebp, %eax
cltd
idivl %ecx
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
jmp 0x16c85
movq 0x8(%rsp), %r14
movq 0x10(%r14), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x17d36
movl %eax, %ebp
movq 0x10(%r14), %r13
movq %rbx, 0x10(%rsp)
movq 0x50(%r12), %rsi
movq 0x58(%r12), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x63c2
movq %r14, %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1754a
movq %r13, %rdi
movl %eax, %esi
callq 0x17d36
movl %eax, %ecx
movl %ebp, %eax
cltd
idivl %ecx
movq %r15, %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x17d2c
movq 0x10(%rsp), %rdi
jmp 0x16b2d
movl $0x34, %edx
movq 0xc315(%rip), %r14      # 0x22fb0
movq %r14, %rdi
leaq 0x37ab(%rip), %rsi      # 0x1a450
callq 0x53d0
movq %r14, %rdi
callq 0x51a0
jmp 0x1658c
movq 0x8(%rsp), %r14
movq 0x10(%r14), %rdi
xorl %ebp, %ebp
xorl %esi, %esi
callq 0x17d36
testl %eax, %eax
jle 0x16b39
movq %r14, %rdi
jmp 0x16bb9
movq 0xc2d0(%rip), %r14      # 0x22fb0
leaq 0x3805(%rip), %rsi      # 0x1a4ec
movl $0x15, %edx
movq %r14, %rdi
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
movq %r15, %rdi
callq 0x17204
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3843(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3837(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x382b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x381f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3813(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3807(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37fb(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37ef(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37e3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37d7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37cb(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37bf(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x37b3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x37a7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x379b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x378f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3783(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3777(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x376b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x375f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3753(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3747(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x373b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x372f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3723(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3717(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x370b(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36ff(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36f3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36e7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36db(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36cf(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36c3(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x36b7(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x36ab(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x369f(%rip), %rdi      # 0x1a58b
callq 0x5200
leaq 0x3693(%rip), %rdi      # 0x1a58b
callq 0x54c0
leaq 0x3687(%rip), %rdi      # 0x1a58b
callq 0x5200
jmp 0x16f8f
jmp 0x16f1c
jmp 0x16f8f
jmp 0x16f1c
jmp 0x16f7f
jmp 0x16f8f
jmp 0x16f7f
jmp 0x16f7f
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
jne 0x16fa1
jmp 0x16fa6
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f71
jmp 0x16f7f
jmp 0x16f5f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f7f
jmp 0x16f7f
jmp 0x16f7f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f7f
jmp 0x16f71
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f7f
jmp 0x16f5f
jmp 0x16f7f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f8f
jmp 0x16f7f
movq %rax, %r14
cmpl $0x0, (%r15)
jne 0x16f92
movl %ebx, (%r15)
jmp 0x16f92
jmp 0x16f71
jmp 0x16f8f
movq %rax, %r14
cmpl $0x0, (%rbp)
jne 0x16f92
movl %ebx, (%rbp)
jmp 0x16f92
movq %rax, %r14
cmpl $0x0, (%r13)
jne 0x16f92
movl %ebx, (%r13)
jmp 0x16f92
movq %rax, %r14
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x16fa6
callq 0x5330
movq %r14, %rdi
callq 0x55c0