// File: /workspace/github_cpp_makefile_star2_O1/rfotino[P]consolite-assembler/src/parser.cpp
// Function: Parser::_validateInstruction(std::vector<Token, std::allocator<Token>> const&, unsigned int const&)
bool Parser::_validateInstruction(const std::vector<Token>& tokens,
                                  const unsigned& line) {
  const std::string opcode = tokens[0].getData();
  if ("NOP" == opcode || "TIMERST" == opcode) {
    if (1 < tokens.size()) {
      std::cerr << "Error: Invalid syntax for " << opcode
                << ", must be by itself on line " << line << "." << std::endl;
      return false;
    }
  } else if ("INPUT" == opcode || "LOAD" == opcode || "MOV" == opcode ||
             "ADD" == opcode || "SUB" == opcode || "MUL" == opcode ||
             "DIV" == opcode || "AND" == opcode || "OR" == opcode ||
             "XOR" == opcode || "SHL" == opcode || "SHRA" == opcode ||
             "SHRL" == opcode || "CMP" == opcode || "TST" == opcode ||
             "PIXEL" == opcode || "STOR" == opcode) {
    if (3 != tokens.size() ||
        REGISTER != tokens[1].getType() ||
        REGISTER != tokens[2].getType()) {
      std::cerr << "Error: Invalid syntax for " << opcode
                << ", expected " << opcode << " REG1 REG2 on line "
                << line << "." << std::endl;
      return false;
    }
  } else if ("PUSH" == opcode || "POP" == opcode || "COLOR" == opcode ||
             "JMP" == opcode || "TIME" == opcode || "RND" == opcode) {
    if (2 != tokens.size() ||
        REGISTER != tokens[1].getType()) {
      std::cerr << "Error: Invalid syntax for " << opcode
                << ", expected " << opcode << " REG on line "
                << line << "." << std::endl;
      return false;
    }
  } else if ("CALL" == opcode || "JMPI" == opcode || "JEQ" == opcode ||
             "JNE" == opcode || "JG" == opcode || "JGE" == opcode ||
             "JA" == opcode || "JAE" == opcode || "JL" == opcode ||
             "JLE" == opcode || "JB" == opcode || "JBE" == opcode ||
             "JO" == opcode || "JNO" == opcode || "JS" == opcode ||
             "JNS" == opcode) {
    if (2 != tokens.size() ||
        (DATA != tokens[1].getType() &&
         LABELREF != tokens[1].getType())) {
      std::cerr << "Error: Invalid syntax for " << opcode
                << ", expected " << opcode << " LABEL|DATA on line "
                << line << "." << std::endl;
      return false;
    } else if (DATA == tokens[1].getType() && 2 < tokens[1].getSize()) {
      std::cerr << "Error: Data too large, max of 16 bits on line "
                << line << "." << std::endl;
      return false;
    } else if (LABELREF == tokens[1].getType()) {
      // Save the label reference for later validation against
      // the full list of label declarations.
      _labelRefs.push_back(make_pair(tokens[1].getData(), line));
    }
  } else if ("RET" == opcode) {
    if (2 < tokens.size() ||
        (2 == tokens.size() && DATA != tokens[1].getType())) {
      std::cerr << "Error: Invalid syntax for " << opcode
                << ", expected " << opcode << " [DATA] on line "
                << line << "." << std::endl;
      return false;
    } else if (2 == tokens.size() && 1 < tokens[1].getSize()) {
      std::cerr << "Error: Data too large, max of 8 bits on line "
                << line << "." << std::endl;
      return false;
    }
  } else if ("LOADI" == opcode || "STORI" == opcode || "MOVI" == opcode) {
    if (3 != tokens.size() ||
        REGISTER != tokens[1].getType() ||
        (DATA != tokens[2].getType() &&
         LABELREF != tokens[2].getType())) {
      std::cerr << "Error: Invalid syntax for " << opcode
                << ", expected " << opcode << " REG LABEL|DATA on line "
                << line << "." << std::endl;
      return false;
    } else if (DATA == tokens[2].getType() && 2 < tokens[2].getSize()) {
      std::cerr << "Error: Data too large, max of 16 bits on line "
                << line << "." << std::endl;
      return false;
    } else if (LABELREF == tokens[2].getType()) {
      // Save the label reference for later validation against
      // the full list of label declarations.
      _labelRefs.push_back(make_pair(tokens[2].getData(), line));
    }
  }
  return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq (%rsi), %rax
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq %rsi, %rdx
movq %rsp, %r12
movq %r12, %rdi
callq 0x4caa
leaq 0x2958(%rip), %rsi      # 0x8040
movq %r12, %rdi
callq 0x2080
testl %eax, %eax
je 0x5b68
leaq 0x2993(%rip), %rsi      # 0x8092
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5b68
leaq 0x292e(%rip), %rsi      # 0x8044
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2a18(%rip), %rsi      # 0x8145
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2910(%rip), %rsi      # 0x8054
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2901(%rip), %rsi      # 0x805c
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28ee(%rip), %rsi      # 0x8060
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28db(%rip), %rsi      # 0x8064
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28c8(%rip), %rsi      # 0x8068
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28b5(%rip), %rsi      # 0x806c
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28b5(%rip), %rsi      # 0x8083
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x288b(%rip), %rsi      # 0x8070
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2878(%rip), %rsi      # 0x8074
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2941(%rip), %rsi      # 0x8154
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x292f(%rip), %rsi      # 0x8159
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2837(%rip), %rsi      # 0x8078
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2824(%rip), %rsi      # 0x807c
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x2817(%rip), %rsi      # 0x8086
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28d8(%rip), %rsi      # 0x815e
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5c0c
leaq 0x28b2(%rip), %rsi      # 0x814f
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5d0c
leaq 0x27a4(%rip), %rsi      # 0x8058
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5d0c
leaq 0x27b5(%rip), %rsi      # 0x8080
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5d0c
leaq 0x27bc(%rip), %rsi      # 0x809e
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5d0c
leaq 0x286a(%rip), %rsi      # 0x8163
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5d0c
leaq 0x278a(%rip), %rsi      # 0x809a
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5d0c
leaq 0x2819(%rip), %rsi      # 0x8140
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x282a(%rip), %rsi      # 0x8168
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x274d(%rip), %rsi      # 0x80a2
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x273a(%rip), %rsi      # 0x80a6
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x27ea(%rip), %rsi      # 0x816d
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x2710(%rip), %rsi      # 0x80aa
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x27bf(%rip), %rsi      # 0x8170
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x26e6(%rip), %rsi      # 0x80ae
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x2794(%rip), %rsi      # 0x8173
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x26bc(%rip), %rsi      # 0x80b2
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x2769(%rip), %rsi      # 0x8176
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x2692(%rip), %rsi      # 0x80b6
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x273e(%rip), %rsi      # 0x8179
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x2668(%rip), %rsi      # 0x80ba
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x2713(%rip), %rsi      # 0x817c
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x263e(%rip), %rsi      # 0x80be
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5dbf
leaq 0x25b3(%rip), %rsi      # 0x804a
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x6019
leaq 0x25a0(%rip), %rsi      # 0x804e
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5ae7
leaq 0x25cb(%rip), %rsi      # 0x808c
movq %rsp, %rdi
callq 0x2080
testl %eax, %eax
je 0x5ae7
leaq 0x2676(%rip), %rsi      # 0x814a
movq %rsp, %rdi
callq 0x2080
movb $0x1, %bpl
testl %eax, %eax
jne 0x5ce5
movq (%r15), %rax
movq 0x8(%r15), %rcx
subq %rax, %rcx
cmpq $0x78, %rcx
jne 0x5f87
cmpl $0x1, 0x28(%rax)
jne 0x5f87
movl 0x50(%rax), %ecx
cmpl $0x2, %ecx
je 0x613a
cmpl $0x4, %ecx
jne 0x5f87
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x58(%rax), %rsi
movq 0x60(%rax), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0x4caa
addq $0x38, %r14
leaq 0x50(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x20(%rsp), %rax
cmpq %r15, %rax
je 0x6194
movq %rax, 0x40(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x619d
movq 0x8(%r15), %rax
subq (%r15), %rax
sarq $0x3, %rax
movabsq $-0x3333333333333333, %rcx # imm = 0xCCCCCCCCCCCCCCCD
imulq %rax, %rcx
movb $0x1, %bpl
cmpq $0x2, %rcx
jb 0x5ce5
movq 0x545b(%rip), %rdi      # 0xaff0
leaq 0x25e3(%rip), %rsi      # 0x817f
movl $0x1a, %edx
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x543a(%rip), %rdi      # 0xaff0
callq 0x21f0
movq %rax, %r14
leaq 0x25d5(%rip), %rsi      # 0x819a
movl $0x1c, %edx
movq %rax, %rdi
callq 0x21f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2511(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
jmp 0x5cd0
movq (%r15), %rax
movq 0x8(%r15), %rcx
subq %rax, %rcx
cmpq $0x78, %rcx
jne 0x5c2f
cmpl $0x1, 0x28(%rax)
jne 0x5c2f
movb $0x1, %bpl
cmpl $0x1, 0x50(%rax)
je 0x5ce5
movq 0x53ba(%rip), %rdi      # 0xaff0
leaq 0x2542(%rip), %rsi      # 0x817f
movl $0x1a, %edx
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x5399(%rip), %rdi      # 0xaff0
callq 0x21f0
movq %rax, %r14
leaq 0x2551(%rip), %rsi      # 0x81b7
movl $0xb, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x21f0
movq %rax, %r14
leaq 0x2535(%rip), %rsi      # 0x81c3
movl $0x13, %edx
movq %rax, %rdi
callq 0x21f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2448(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2190
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2110
xorl %ebp, %ebp
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x5cfb
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21b0
movl %ebp, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r15), %rax
movq 0x8(%r15), %rcx
subq %rax, %rcx
cmpq $0x50, %rcx
jne 0x5d25
movb $0x1, %bpl
cmpl $0x1, 0x28(%rax)
je 0x5ce5
movq 0x52c4(%rip), %rdi      # 0xaff0
leaq 0x244c(%rip), %rsi      # 0x817f
movl $0x1a, %edx
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x52a3(%rip), %rdi      # 0xaff0
callq 0x21f0
movq %rax, %r14
leaq 0x245b(%rip), %rsi      # 0x81b7
movl $0xb, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x21f0
movq %rax, %r14
leaq 0x2453(%rip), %rsi      # 0x81d7
movl $0xd, %edx
movq %rax, %rdi
callq 0x21f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2352(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
movq %rbx, %rdi
callq 0x20e0
jmp 0x5ce3
movq (%r15), %rax
movq 0x8(%r15), %rcx
subq %rax, %rcx
cmpq $0x50, %rcx
jne 0x5e2e
movl 0x28(%rax), %ecx
cmpl $0x2, %ecx
je 0x5ec0
cmpl $0x4, %ecx
jne 0x5e2e
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x30(%rax), %rsi
movq 0x38(%rax), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0x4caa
addq $0x38, %r14
leaq 0x50(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x20(%rsp), %rax
cmpq %r15, %rax
je 0x5f1a
movq %rax, 0x40(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x5f23
movq 0x51bb(%rip), %rdi      # 0xaff0
leaq 0x2343(%rip), %rsi      # 0x817f
movl $0x1a, %edx
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x519a(%rip), %rdi      # 0xaff0
callq 0x21f0
movq %rax, %r14
leaq 0x2352(%rip), %rsi      # 0x81b7
movl $0xb, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x21f0
movq %rax, %r14
leaq 0x23ca(%rip), %rsi      # 0x8257
movl $0x14, %edx
movq %rax, %rdi
callq 0x21f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x2249(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
jmp 0x5db2
cmpq $0x3, 0x38(%rax)
jb 0x5f09
movq 0x5122(%rip), %rdi      # 0xaff0
leaq 0x2310(%rip), %rsi      # 0x81e5
movl $0x2e, %edx
callq 0x21f0
movl (%rbx), %esi
movq 0x5108(%rip), %rdi      # 0xaff0
callq 0x2100
movq %rax, %rbx
leaq 0x2200(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
jmp 0x5db2
movb $0x1, %bpl
cmpl $0x4, %ecx
jne 0x5ce5
jmp 0x5de0
movups (%r15), %xmm0
movups %xmm0, (%r12)
movq 0x28(%rsp), %rax
leaq 0x40(%rsp), %rsi
movq %rax, 0x8(%rsi)
movq %r15, 0x20(%rsp)
movq $0x0, 0x28(%rsp)
movb $0x0, 0x30(%rsp)
movl (%rbx), %eax
movl %eax, 0x20(%rsi)
movq %r14, %rdi
callq 0x7250
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x5f68
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x21b0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x5f7f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x21b0
movb $0x1, %bpl
jmp 0x5ce5
movq 0x5062(%rip), %rdi      # 0xaff0
leaq 0x21ea(%rip), %rsi      # 0x817f
movl $0x1a, %edx
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x5041(%rip), %rdi      # 0xaff0
callq 0x21f0
movq %rax, %r14
leaq 0x21f9(%rip), %rsi      # 0x81b7
movl $0xb, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x21f0
movq %rax, %r14
leaq 0x226d(%rip), %rsi      # 0x8253
movl $0x18, %edx
movq %rax, %rdi
callq 0x21f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x20f0(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
jmp 0x5db2
movq (%r15), %rax
movq 0x8(%r15), %rcx
subq %rax, %rcx
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x3333333333333333, %rsi # imm = 0xCCCCCCCCCCCCCCCD
imulq %rdx, %rsi
cmpq $0x2, %rsi
ja 0x60a8
movb $0x1, %bpl
cmpq $0x50, %rcx
jne 0x5ce5
cmpl $0x2, 0x28(%rax)
jne 0x60a8
cmpq $0x50, %rcx
jne 0x5ce5
cmpq $0x2, 0x38(%rax)
jb 0x5ce5
movq 0x4f83(%rip), %rdi      # 0xaff0
leaq 0x21b1(%rip), %rsi      # 0x8225
movl $0x2d, %edx
callq 0x21f0
movl (%rbx), %esi
movq 0x4f69(%rip), %rdi      # 0xaff0
callq 0x2100
movq %rax, %rbx
leaq 0x2061(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
jmp 0x5db2
movq 0x4f41(%rip), %rdi      # 0xaff0
leaq 0x20c9(%rip), %rsi      # 0x817f
movl $0x1a, %edx
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x4f20(%rip), %rdi      # 0xaff0
callq 0x21f0
movq %rax, %r14
leaq 0x20d8(%rip), %rsi      # 0x81b7
movl $0xb, %edx
movq %rax, %rdi
callq 0x21f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x21f0
movq %rax, %r14
leaq 0x210d(%rip), %rsi      # 0x8214
movl $0x10, %edx
movq %rax, %rdi
callq 0x21f0
movl (%rbx), %esi
movq %r14, %rdi
callq 0x2100
movq %rax, %rbx
leaq 0x1fcf(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
jmp 0x5db2
cmpq $0x3, 0x60(%rax)
jb 0x6183
movq 0x4ea8(%rip), %rdi      # 0xaff0
leaq 0x2096(%rip), %rsi      # 0x81e5
movl $0x2e, %edx
callq 0x21f0
movl (%rbx), %esi
movq 0x4e8e(%rip), %rdi      # 0xaff0
callq 0x2100
movq %rax, %rbx
leaq 0x1f86(%rip), %rsi      # 0x80f7
movl $0x1, %edx
movq %rax, %rdi
callq 0x21f0
jmp 0x5db2
movb $0x1, %bpl
cmpl $0x4, %ecx
je 0x5b1a
jmp 0x5ce5
movups (%r15), %xmm0
movups %xmm0, (%r12)
movq 0x28(%rsp), %rax
leaq 0x40(%rsp), %rsi
movq %rax, 0x8(%rsi)
movq %r15, 0x20(%rsp)
movq $0x0, 0x28(%rsp)
movb $0x0, 0x30(%rsp)
movl (%rbx), %eax
movl %eax, 0x20(%rsi)
movq %r14, %rdi
callq 0x7250
jmp 0x5f51
jmp 0x61d4
jmp 0x6209
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r12, %rdi
je 0x61ee
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x21b0
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0x620c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x21b0
jmp 0x620c
jmp 0x6209
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x6222
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21b0
movq %rbx, %rdi
callq 0x2290