// File: /workspace/github_cpp_makefile_star2_O2/luooofan[P]hblzbd_compiler/src/Pass/instruction_combining.cpp
// Function: Instruction_Combining::Run()
void Instruction_Combining::Run() {
  auto m = dynamic_cast<IRModule *>(*m_);

  for (auto func : m->func_list_) {
    for (auto bb : func->bb_list_) {
      for (auto iter = bb->ir_list_.begin(); iter != bb->ir_list_.end() - 1; ++iter) {
        auto ir = *iter;
        auto ir_next = *(iter + 1);

        if (ir::IR::OpKind::ADD == ir->op_) {
          if (ir::IR::OpKind::ADD == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isImm(ir_next->opn2_)) {
                if (isImm(ir->opn1_)) {
                  int opn_num = ir_next->opn2_.imm_num_ + ir->opn1_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::ADD, new_opn, ir->opn2_, ir_next->res_);

                  *(iter + 1) = new_ir;
                  // bb->ir_list_.erase(iter + 1);

                } else if (isImm(ir->opn2_)) {
                  int opn_num = ir_next->opn2_.imm_num_ + ir->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::ADD, new_opn, ir->opn1_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                }
              }
            } else if (isSameOpn(ir->res_, ir_next->opn2_)) {
              if (isImm(ir_next->opn1_)) {
                if (isImm(ir->opn1_)) {
                  int opn_num = ir_next->opn1_.imm_num_ + ir->opn1_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::ADD, new_opn, ir->opn2_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                } else if (isImm(ir->opn2_)) {
                  int opn_num = ir_next->opn1_.imm_num_ + ir->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::ADD, new_opn, ir->opn1_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                }
              }
            }
          } else if (ir::IR::OpKind::SUB == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isSameOpn(ir_next->opn2_, ir->opn1_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn2_, ir_next->res_);

                *(iter + 1) = new_ir;

              } else if (isSameOpn(ir_next->opn2_, ir->opn2_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
            } else if (isSameOpn(ir->res_, ir_next->opn2_)) {
              if (isSameOpn(ir_next->opn2_, ir->opn1_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::NEG, ir->opn2_, ir_next->res_);

                *(iter + 1) = new_ir;

              } else if (isSameOpn(ir_next->opn2_, ir->opn1_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::NEG, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
            }
          }
        } else if (ir::IR::OpKind::SUB == ir->op_) {
          if (ir::IR::OpKind::SUB == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isImm(ir_next->opn2_)) {
                if (isImm(ir->opn1_)) {
                  int opn_num = ir->opn1_.imm_num_ - ir_next->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::SUB, new_opn, ir->opn2_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                } else if (isImm(ir->opn2_)) {
                  int opn_num = ir_next->opn2_.imm_num_ + ir->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::SUB, ir->opn1_, new_opn, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                }
              }
            }
          } else if (ir::IR::OpKind::ADD == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isSameOpn(ir->opn2_, ir_next->opn2_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
            } else if (isSameOpn(ir->res_, ir_next->opn2_)) {
              if (isSameOpn(ir->opn2_, ir_next->opn1_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
            }
          }
        } else if (ir::IR::OpKind::MUL == ir->op_) {
          if (ir::IR::OpKind::MUL == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isImm(ir_next->opn2_)) {
                if (isImm(ir->opn1_)) {
                  int opn_num = ir_next->opn2_.imm_num_ * ir->opn1_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::MUL, new_opn, ir->opn2_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                } else if (isImm(ir->opn2_)) {
                  int opn_num = ir_next->opn2_.imm_num_ * ir->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::MUL, new_opn, ir->opn1_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                }
              }
            } else if (isSameOpn(ir->res_, ir_next->opn2_)) {
              if (isImm(ir_next->opn1_)) {
                if (isImm(ir->opn1_)) {
                  int opn_num = ir_next->opn1_.imm_num_ * ir->opn1_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::MUL, new_opn, ir->opn2_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                } else if (isImm(ir->opn2_)) {
                  int opn_num = ir_next->opn1_.imm_num_ * ir->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::MUL, new_opn, ir->opn1_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                }
              }
            }
          } else if (ir::IR::OpKind::DIV == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isSameOpn(ir_next->opn2_, ir->opn1_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn2_, ir_next->res_);

                *(iter + 1) = new_ir;

              } else if (isSameOpn(ir_next->opn2_, ir->opn2_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
              // }else if(isSameOpn(ir->res_, ir_next->opn2_)){
              //     if(isSameOpn(ir_next->opn2_, ir->opn1_)){
              //         auto new_ir = new ir::IR(ir::IR::OpKind::NEG, ir->opn2_, ir_next->res_);

              //         *(iter + 1) = new_ir;
              //     }else if(isSameOpn(ir_next->opn2_, ir->opn1_)){
              //         auto new_ir = new ir::IR(ir::IR::OpKind::NEG, ir->opn1_, ir_next->res_);

              //         *(iter + 1) = new_ir;
              //     }
            }
          }
        } else if (ir::IR::OpKind::DIV == ir->op_) {
          if (ir::IR::OpKind::DIV == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isImm(ir_next->opn2_)) {
                if (isImm(ir->opn1_)) {
                  int opn_num = ir->opn1_.imm_num_ / ir_next->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::DIV, new_opn, ir->opn2_, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                } else if (isImm(ir->opn2_)) {
                  int opn_num = ir_next->opn2_.imm_num_ * ir->opn2_.imm_num_;
                  auto new_opn = ir::Opn(ir::Opn::Type::Imm, opn_num);
                  auto new_ir = new ir::IR(ir::IR::OpKind::DIV, ir->opn1_, new_opn, ir_next->res_);

                  *(iter + 1) = new_ir;

                  // bb->ir_list_.erase(iter + 1);
                }
              }
            }
          } else if (ir::IR::OpKind::MUL == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              if (isSameOpn(ir->opn2_, ir_next->opn2_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
            } else if (isSameOpn(ir->res_, ir_next->opn2_)) {
              if (isSameOpn(ir->opn2_, ir_next->opn1_)) {
                auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

                *(iter + 1) = new_ir;
              }
            }
          }
        } else if (ir::IR::OpKind::NEG == ir->op_) {
          if (ir::IR::OpKind::NEG == ir_next->op_) {
            if (isSameOpn(ir->res_, ir_next->opn1_)) {
              auto new_ir = new ir::IR(ir::IR::OpKind::ASSIGN, ir->opn1_, ir_next->res_);

              *(iter + 1) = new_ir;
            }
          }
        }
      }
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f78, %rsp           # imm = 0x1F78
movq 0x8(%rdi), %rax
movq (%rax), %rdi
leaq 0x3b4d9(%rip), %rsi     # 0x7f648
leaq 0x3befa(%rip), %rdx     # 0x80070
xorl %ecx, %ecx
callq 0x82c0
movq 0x28(%rax), %rcx
movq 0x30(%rax), %rax
movq %rax, 0x50(%rsp)
movq %rcx, %rax
leaq 0x1570c(%rip), %r14     # 0x598a0
cmpq 0x50(%rsp), %rax
je 0x45c86
movq %rax, 0x58(%rsp)
movq (%rax), %rax
movq 0x30(%rax), %rcx
movq 0x38(%rax), %rax
movq %rax, 0x60(%rsp)
cmpq 0x60(%rsp), %rcx
je 0x45c78
movq %rcx, 0x68(%rsp)
movq (%rcx), %rax
movq %rax, 0x70(%rsp)
movq 0x8(%rax), %rdx
movq 0x70(%rsp), %rcx
movq 0x10(%rcx), %rcx
addq $-0x8, %rcx
cmpq %rcx, %rdx
je 0x45c6a
movq %rdx, %rax
movq (%rdx), %r13
addq $0x8, %rdx
movl (%r13), %ecx
cmpq $0x6, %rcx
ja 0x441d0
movq 0x8(%rax), %rax
movq %rax, (%rsp)
movslq (%r14,%rcx,4), %rax
addq %r14, %rax
jmpq *%rax
movq (%rsp), %rax
movl (%rax), %eax
cmpl $0x1, %eax
je 0x44bb2
testl %eax, %eax
jne 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %r15
leaq 0x1938(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rbp
leaq 0x1f38(%rsp), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %r14, %rdi
movq %rbx, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1f40(%rsp), %rdi
callq 0x8578
leaq 0x1940(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
je 0x44faa
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x18f8(%rsp), %rdi
callq 0x1da22
movl 0x18f8(%rsp), %ebp
leaq 0x1900(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
leaq 0x155e6(%rip), %r14     # 0x598a0
movq %r12, %rdx
jne 0x441d0
leaq 0x8(%r13), %r15
leaq 0x18b8(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0x18b8(%rsp), %ebp
leaq 0x18c0(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
jne 0x45819
movl 0xc(%r13), %edx
movq (%rsp), %rax
addl 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x878(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
addq $0x48, %r13
leaq 0x838(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x1878(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
xorl %esi, %esi
leaq 0x878(%rsp), %rdx
leaq 0x838(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0x1880(%rsp), %rdi
callq 0x8578
leaq 0x840(%rsp), %rdi
callq 0x8578
leaq 0x880(%rsp), %rdi
jmp 0x45117
movq (%rsp), %rax
cmpl $0x6, (%rax)
jne 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %rsi
leaq 0x8f8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rsi
leaq 0x1978(%rsp), %r15
movq %r15, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r15, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1980(%rsp), %rdi
callq 0x8578
leaq 0x900(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
addq $0x8, %r13
leaq 0x78(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x8b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
leaq 0x78(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x8c0(%rsp), %rdi
callq 0x8578
leaq 0x80(%rsp), %rdi
jmp 0x454b4
movq (%rsp), %rax
movl (%rax), %eax
cmpl $0x3, %eax
je 0x44932
cmpl $0x2, %eax
jne 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %rbp
leaq 0x1078(%rsp), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %r15
leaq 0x1bf8(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1c00(%rsp), %rdi
callq 0x8578
leaq 0x1080(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
je 0x44e37
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1038(%rsp), %rdi
callq 0x1da22
movl 0x1038(%rsp), %ebp
leaq 0x1040(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
leaq 0x15375(%rip), %r14     # 0x598a0
movq %r12, %rdx
jne 0x441d0
leaq 0x8(%r13), %r15
leaq 0xff8(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0xff8(%rsp), %ebp
leaq 0x1000(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
jne 0x45665
movl 0xc(%r13), %edx
movq (%rsp), %rax
imull 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x438(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
addq $0x48, %r13
leaq 0x3f8(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0xfb8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0x2
popq %rsi
leaq 0x438(%rsp), %rdx
leaq 0x3f8(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0xfc0(%rsp), %rdi
callq 0x8578
leaq 0x400(%rsp), %rdi
callq 0x8578
leaq 0x440(%rsp), %rdi
jmp 0x45117
movq (%rsp), %rax
movl (%rax), %eax
cmpl $0x2, %eax
je 0x44a77
cmpl $0x3, %eax
jne 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %rsi
leaq 0xbf8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rsi
leaq 0x1ab8(%rsp), %r15
movq %r15, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r15, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1ac0(%rsp), %rdi
callq 0x8578
leaq 0xc00(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0xbb8(%rsp), %rdi
callq 0x1da22
movl 0xbb8(%rsp), %ebp
leaq 0xbc0(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
cmpl $0x1, %ebp
jne 0x441d0
leaq 0x8(%r13), %r15
leaq 0xb78(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0xb78(%rsp), %ebp
leaq 0xb80(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
jne 0x4573f
movl 0xc(%r13), %eax
cltd
movq (%rsp), %rcx
idivl 0x4c(%rcx)
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
movl %eax, %edx
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x1f8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
addq $0x48, %r13
leaq 0x1b8(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0xb38(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0x3
popq %rsi
leaq 0x1f8(%rsp), %rdx
leaq 0x1b8(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0xb40(%rsp), %rdi
callq 0x8578
leaq 0x1c0(%rsp), %rdi
callq 0x8578
leaq 0x200(%rsp), %rdi
jmp 0x45117
movq (%rsp), %rax
movl (%rax), %eax
testl %eax, %eax
je 0x44cfc
cmpl $0x1, %eax
jne 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %rsi
leaq 0x1378(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rsi
leaq 0x1d38(%rsp), %r15
movq %r15, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r15, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1d40(%rsp), %rdi
callq 0x8578
leaq 0x1380(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1338(%rsp), %rdi
callq 0x1da22
movl 0x1338(%rsp), %ebp
leaq 0x1340(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
cmpl $0x1, %ebp
jne 0x441d0
leaq 0x8(%r13), %r15
leaq 0x12f8(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0x12f8(%rsp), %ebp
leaq 0x1300(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
jne 0x458f1
movl 0xc(%r13), %edx
movq (%rsp), %rax
subl 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x5b8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
addq $0x48, %r13
leaq 0x578(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x12b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0x1
popq %rsi
leaq 0x5b8(%rsp), %rdx
leaq 0x578(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0x12c0(%rsp), %rdi
callq 0x8578
leaq 0x580(%rsp), %rdi
callq 0x8578
leaq 0x5c0(%rsp), %rdi
jmp 0x45117
movq %rdx, %r12
leaq 0x88(%r13), %rsi
leaq 0xd78(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rsi
leaq 0x1b78(%rsp), %r15
movq %r15, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r15, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1b80(%rsp), %rdi
callq 0x8578
leaq 0xd80(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
movq (%rsp), %rax
leaq 0x48(%rax), %r15
leaq 0xd38(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x8(%r13), %rbp
leaq 0x1b38(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1b40(%rsp), %rdi
callq 0x8578
leaq 0xd40(%rsp), %rdi
callq 0x8578
addq $0x48, %r13
testb %r14b, %r14b
je 0x454c5
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0xcf8(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1da22
leaq 0xcb8(%rsp), %r14
movq (%rsp), %rsi
addq $0x88, %rsi
movq %r14, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x1aa52
leaq 0xcc0(%rsp), %rdi
callq 0x8578
leaq 0xd00(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
movq %rbp, (%r12)
leaq 0x14e2e(%rip), %r14     # 0x598a0
jmp 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %r15
leaq 0xa78(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rbp
leaq 0x1a78(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1a80(%rsp), %rdi
callq 0x8578
leaq 0xa80(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
je 0x45125
leaq 0x48(%r13), %rsi
leaq 0xa38(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1a38(%rsp), %r14
movq %r14, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1a40(%rsp), %rdi
callq 0x8578
leaq 0xa40(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
leaq 0x14d63(%rip), %r14     # 0x598a0
movq %r12, %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
addq $0x8, %r13
leaq 0xf8(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x9f8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
leaq 0xf8(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0xa00(%rsp), %rdi
callq 0x8578
leaq 0x100(%rsp), %rdi
jmp 0x454b4
movq %rdx, 0x8(%rsp)
leaq 0x1e78(%rsp), %rbx
leaq 0x88(%r13), %r15
leaq 0x1638(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rsi
leaq 0x1eb8(%rsp), %r12
movq %r12, %rdi
callq 0x1da22
movq %rbp, %rdi
movq %r12, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1ec0(%rsp), %rdi
callq 0x8578
leaq 0x1640(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
je 0x45251
movq (%rsp), %rax
leaq 0x48(%rax), %r15
leaq 0x15f8(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x8(%r13), %rbp
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %r14, %rdi
movq %rbx, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1e80(%rsp), %rdi
callq 0x8578
leaq 0x1600(%rsp), %rdi
callq 0x8578
addq $0x48, %r13
testb %r14b, %r14b
je 0x4559a
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x678(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
leaq 0x14bfc(%rip), %r14     # 0x598a0
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x15b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
leaq 0x678(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x15c0(%rsp), %rdi
callq 0x8578
leaq 0x680(%rsp), %rdi
callq 0x8578
movq 0x8(%rsp), %rdx
movq %rbp, (%rdx)
jmp 0x441d0
movq %rdx, %r12
leaq 0x88(%r13), %r15
leaq 0x11f8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x8(%rax), %rbp
leaq 0x1cf8(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1d00(%rsp), %rdi
callq 0x8578
leaq 0x1200(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
je 0x4538d
leaq 0x48(%r13), %rsi
leaq 0x11b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1cb8(%rsp), %r14
movq %r14, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1cc0(%rsp), %rdi
callq 0x8578
leaq 0x11c0(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
leaq 0x14ade(%rip), %r14     # 0x598a0
movq %r12, %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
addq $0x8, %r13
leaq 0x4b8(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x1178(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
leaq 0x4b8(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x1180(%rsp), %rdi
callq 0x8578
leaq 0x4c0(%rsp), %rdi
jmp 0x454b4
leaq 0xef8(%rsp), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1bb8(%rsp), %rbp
movq %rbp, %rdi
callq 0x1da22
leaq 0x14a37(%rip), %r14     # 0x598a0
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1bc0(%rsp), %rdi
callq 0x8578
leaq 0xf00(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
leaq 0xeb8(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0xeb8(%rsp), %ebp
leaq 0xec0(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
cmpl $0x1, %ebp
jne 0x441d0
leaq 0x8(%r13), %r15
leaq 0xe78(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0xe78(%rsp), %ebp
leaq 0xe80(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
jne 0x45aa2
movl 0xc(%r13), %edx
movq (%rsp), %rax
imull 0xc(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x338(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
addq $0x48, %r13
leaq 0x2f8(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0xe38(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0x2
popq %rsi
leaq 0x338(%rsp), %rdx
leaq 0x2f8(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0xe40(%rsp), %rdi
callq 0x8578
leaq 0x300(%rsp), %rdi
callq 0x8578
leaq 0x340(%rsp), %rdi
jmp 0x45117
leaq 0x17b8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1ef8(%rsp), %r14
movq %r14, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1f00(%rsp), %rdi
callq 0x8578
leaq 0x17c0(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
leaq 0x14899(%rip), %r14     # 0x598a0
movq %r12, %rdx
je 0x441d0
leaq 0x1778(%rsp), %rdi
movq %rbp, %rsi
callq 0x1da22
movl 0x1778(%rsp), %ebp
leaq 0x1780(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
cmpl $0x1, %ebp
jne 0x441d0
leaq 0x8(%r13), %r15
leaq 0x1738(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movl 0x1738(%rsp), %ebp
leaq 0x1740(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
jne 0x45b7c
movl 0xc(%r13), %edx
movq (%rsp), %rax
addl 0xc(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
leaq 0x778(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
addq $0x48, %r13
leaq 0x738(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x16f8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
xorl %esi, %esi
leaq 0x778(%rsp), %rdx
leaq 0x738(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0x1700(%rsp), %rdi
callq 0x8578
leaq 0x740(%rsp), %rdi
callq 0x8578
leaq 0x780(%rsp), %rdi
callq 0x8578
movq %rbp, (%r12)
jmp 0x45c58
leaq 0x9b8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x19f8(%rsp), %r14
movq %r14, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1a00(%rsp), %rdi
callq 0x8578
leaq 0x9c0(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
leaq 0x1471e(%rip), %r14     # 0x598a0
movq %r12, %rdx
je 0x441d0
leaq 0x48(%r13), %rsi
leaq 0x978(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
leaq 0x19b8(%rsp), %r15
movq %r15, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r15, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x19c0(%rsp), %rdi
callq 0x8578
leaq 0x980(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
addq $0x8, %r13
leaq 0xb8(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x938(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
leaq 0xb8(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x940(%rsp), %rdi
callq 0x8578
leaq 0xc0(%rsp), %rdi
jmp 0x454b4
leaq 0x14f8(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %r15
leaq 0x1df8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x1da22
movq %rbp, %rdi
movq %r12, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1e00(%rsp), %rdi
callq 0x8578
leaq 0x1500(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq 0x8(%rsp), %rdx
je 0x441d0
leaq 0x14b8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x8(%r13), %rbp
leaq 0x1db8(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1dc0(%rsp), %rdi
callq 0x8578
leaq 0x14c0(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
je 0x459ca
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
addq $0x48, %r13
leaq 0x1478(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1da22
leaq 0x1438(%rsp), %r14
movq (%rsp), %rsi
addq $0x88, %rsi
movq %r14, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0x6
popq %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x1aa52
leaq 0x1440(%rsp), %rdi
callq 0x8578
leaq 0x1480(%rsp), %rdi
callq 0x8578
movq 0x8(%rsp), %rdx
movq %rbp, (%rdx)
leaq 0x14518(%rip), %r14     # 0x598a0
jmp 0x441d0
leaq 0x1138(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rax
leaq 0x48(%rax), %rsi
leaq 0x1c78(%rsp), %r14
movq %r14, %rdi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1c80(%rsp), %rdi
callq 0x8578
leaq 0x1140(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
leaq 0x144b6(%rip), %r14     # 0x598a0
movq %r12, %rdx
je 0x441d0
leaq 0x48(%r13), %rsi
leaq 0x10f8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
leaq 0x1c38(%rsp), %r15
movq %r15, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r15, %rsi
callq 0x462da
movl %eax, %ebp
leaq 0x1c40(%rsp), %rdi
callq 0x8578
leaq 0x1100(%rsp), %rdi
callq 0x8578
testb %bpl, %bpl
movq %r12, %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %rbp
addq $0x8, %r13
leaq 0x478(%rsp), %rdi
movq %r13, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x10b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %rbp, %rdi
pushq $0xc
popq %rsi
leaq 0x478(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x10c0(%rsp), %rdi
callq 0x8578
leaq 0x480(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
movq %rbp, (%r12)
jmp 0x441d0
leaq 0xc78(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x1af8(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1b00(%rsp), %rdi
callq 0x8578
leaq 0xc80(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
leaq 0x14383(%rip), %r14     # 0x598a0
movq %r12, %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x238(%rsp), %rdi
movq %rbp, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0xc38(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0xc
popq %rsi
leaq 0x238(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0xc40(%rsp), %rdi
callq 0x8578
leaq 0x240(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
movq %r13, (%r12)
jmp 0x441d0
leaq 0x1578(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x1e38(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1e40(%rsp), %rdi
callq 0x8578
leaq 0x1580(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
leaq 0x142ae(%rip), %r14     # 0x598a0
movq 0x8(%rsp), %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x638(%rsp), %rdi
movq %rbp, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x1538(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0xc
popq %rsi
leaq 0x638(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x1540(%rsp), %rdi
callq 0x8578
leaq 0x640(%rsp), %rdi
jmp 0x45a90
leaq 0x48(%r13), %rsi
leaq 0xf78(%rsp), %rdi
callq 0x1da22
movl 0xf78(%rsp), %ebp
leaq 0xf80(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
movq %r12, %rdx
jne 0x441d0
movl 0x4c(%r13), %edx
movq (%rsp), %rax
imull 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x3b8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
leaq 0xf38(%rsp), %rbx
leaq 0x378(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0x2
popq %rsi
leaq 0x3b8(%rsp), %rdx
leaq 0x378(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0xf40(%rsp), %rdi
callq 0x8578
leaq 0x380(%rsp), %rdi
callq 0x8578
leaq 0x3c0(%rsp), %rdi
jmp 0x45c4f
leaq 0x48(%r13), %rsi
leaq 0xaf8(%rsp), %rdi
callq 0x1da22
movl 0xaf8(%rsp), %ebp
leaq 0xb00(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
movq %r12, %rdx
jne 0x441d0
movl 0x4c(%r13), %edx
movq (%rsp), %rax
imull 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x178(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0xab8(%rsp), %r15
leaq 0x138(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
movq %r15, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0x3
popq %rsi
leaq 0x178(%rsp), %rdx
leaq 0x138(%rsp), %rcx
movq %r15, %r8
callq 0x1ab2e
leaq 0xac0(%rsp), %rdi
callq 0x8578
leaq 0x140(%rsp), %rdi
callq 0x8578
leaq 0x180(%rsp), %rdi
jmp 0x45c4f
leaq 0x48(%r13), %rsi
leaq 0x1838(%rsp), %rdi
callq 0x1da22
movl 0x1838(%rsp), %ebp
leaq 0x1840(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
movq %r12, %rdx
jne 0x441d0
movl 0x4c(%r13), %edx
movq (%rsp), %rax
addl 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x7f8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
leaq 0x17f8(%rsp), %rbx
leaq 0x7b8(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
xorl %esi, %esi
leaq 0x7f8(%rsp), %rdx
leaq 0x7b8(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0x1800(%rsp), %rdi
callq 0x8578
leaq 0x7c0(%rsp), %rdi
callq 0x8578
leaq 0x800(%rsp), %rdi
jmp 0x45c4f
leaq 0x48(%r13), %rsi
leaq 0x1278(%rsp), %rdi
callq 0x1da22
movl 0x1278(%rsp), %ebp
leaq 0x1280(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
movq %r12, %rdx
jne 0x441d0
movl 0x4c(%r13), %edx
movq (%rsp), %rax
addl 0x4c(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x538(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x1238(%rsp), %r15
leaq 0x4f8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
movq %r15, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0x1
popq %rsi
leaq 0x538(%rsp), %rdx
leaq 0x4f8(%rsp), %rcx
movq %r15, %r8
callq 0x1ab2e
leaq 0x1240(%rsp), %rdi
callq 0x8578
leaq 0x500(%rsp), %rdi
callq 0x8578
leaq 0x540(%rsp), %rdi
jmp 0x45c4f
leaq 0x13f8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1da22
leaq 0x1d78(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1da22
movq %rbx, %rdi
movq %r14, %rsi
callq 0x462da
movl %eax, %r14d
leaq 0x1d80(%rsp), %rdi
callq 0x8578
leaq 0x1400(%rsp), %rdi
callq 0x8578
testb %r14b, %r14b
leaq 0x13e7e(%rip), %r14     # 0x598a0
movq 0x8(%rsp), %rdx
je 0x441d0
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x5f8(%rsp), %rdi
movq %rbp, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
leaq 0x13b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0x6
popq %rsi
leaq 0x5f8(%rsp), %rdx
movq %rbx, %rcx
callq 0x1aa52
leaq 0x13c0(%rsp), %rdi
callq 0x8578
leaq 0x600(%rsp), %rdi
callq 0x8578
movq 0x8(%rsp), %rdx
movq %r13, (%rdx)
jmp 0x441d0
leaq 0x48(%r13), %rsi
leaq 0xdf8(%rsp), %rdi
callq 0x1da22
movl 0xdf8(%rsp), %ebp
leaq 0xe00(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
movq %r12, %rdx
jne 0x441d0
movl 0x4c(%r13), %edx
movq (%rsp), %rax
imull 0xc(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x2b8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
leaq 0xdb8(%rsp), %rbx
leaq 0x278(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
pushq $0x2
popq %rsi
leaq 0x2b8(%rsp), %rdx
leaq 0x278(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0xdc0(%rsp), %rdi
callq 0x8578
leaq 0x280(%rsp), %rdi
callq 0x8578
leaq 0x2c0(%rsp), %rdi
jmp 0x45c4f
leaq 0x48(%r13), %rsi
leaq 0x16b8(%rsp), %rdi
callq 0x1da22
movl 0x16b8(%rsp), %ebp
leaq 0x16c0(%rsp), %rdi
callq 0x8578
cmpl $0x1, %ebp
movq %r12, %rdx
jne 0x441d0
movl 0x4c(%r13), %edx
movq (%rsp), %rax
addl 0xc(%rax), %edx
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
pushq $0x1
popq %rsi
callq 0xf6ba
movl $0xe0, %edi
callq 0x8250
movq %rax, %r13
leaq 0x6f8(%rsp), %rdi
movq %rbx, %rsi
callq 0x1da22
leaq 0x1678(%rsp), %rbx
leaq 0x6b8(%rsp), %rdi
movq %r15, %rsi
callq 0x1da22
movq (%rsp), %rsi
addq $0x88, %rsi
movq %rbx, %rdi
callq 0x1da22
movq %r13, %rdi
xorl %esi, %esi
leaq 0x6f8(%rsp), %rdx
leaq 0x6b8(%rsp), %rcx
movq %rbx, %r8
callq 0x1ab2e
leaq 0x1680(%rsp), %rdi
callq 0x8578
leaq 0x6c0(%rsp), %rdi
callq 0x8578
leaq 0x700(%rsp), %rdi
callq 0x8578
movq %r13, (%r12)
leaq 0x18(%rsp), %rdi
callq 0x8578
movq %r12, %rdx
jmp 0x441d0
movq 0x68(%rsp), %rcx
addq $0x8, %rcx
jmp 0x441b4
movq 0x58(%rsp), %rax
addq $0x8, %rax
jmp 0x44194
addq $0x1f78, %rsp           # imm = 0x1F78
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4609b
jmp 0x45ea7
movq %rax, %rbx
jmp 0x45cc9
movq %rax, %rbx
jmp 0x45cbc
movq %rax, %rbx
leaq 0xdc0(%rsp), %rdi
callq 0x8578
leaq 0x280(%rsp), %rdi
callq 0x8578
leaq 0x2c0(%rsp), %rdi
jmp 0x45ea0
movq %rax, %rbx
leaq 0x1680(%rsp), %rdi
callq 0x8578
jmp 0x45ceb
movq %rax, %rbx
leaq 0x6c0(%rsp), %rdi
callq 0x8578
jmp 0x45cfd
movq %rax, %rbx
leaq 0x700(%rsp), %rdi
jmp 0x45ea0
jmp 0x45ea7
jmp 0x4609b
movq %rax, %rbx
leaq 0xf40(%rsp), %rdi
callq 0x8578
jmp 0x45d33
jmp 0x45ea7
movq %rax, %rbx
jmp 0x45d40
movq %rax, %rbx
leaq 0x380(%rsp), %rdi
callq 0x8578
leaq 0x3c0(%rsp), %rdi
jmp 0x45ea0
movq %rax, %rbx
jmp 0x45d62
movq %rax, %rbx
leaq 0xe40(%rsp), %rdi
callq 0x8578
leaq 0x300(%rsp), %rdi
callq 0x8578
jmp 0x45d79
jmp 0x4609b
movq %rax, %rbx
leaq 0x340(%rsp), %rdi
jmp 0x46077
movq %rax, %rbx
jmp 0x45dd6
movq %rax, %rbx
leaq 0xac0(%rsp), %rdi
callq 0x8578
jmp 0x45db7
movq %rax, %rbx
leaq 0x1800(%rsp), %rdi
callq 0x8578
jmp 0x45dc9
jmp 0x4609b
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
callq 0x8578
jmp 0x45df0
movq %rax, %rbx
leaq 0x7c0(%rsp), %rdi
callq 0x8578
leaq 0x800(%rsp), %rdi
jmp 0x45ea0
jmp 0x4602b
jmp 0x4609b
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
jmp 0x45ea0
movq %rax, %rbx
jmp 0x45e2e
movq %rax, %rbx
leaq 0x1700(%rsp), %rdi
callq 0x8578
jmp 0x45e4d
jmp 0x45ea7
jmp 0x45ea7
movq %rax, %rbx
leaq 0x13c0(%rsp), %rdi
callq 0x8578
leaq 0x600(%rsp), %rdi
jmp 0x46022
jmp 0x4609b
movq %rax, %rbx
jmp 0x45e5a
jmp 0x4602b
movq %rax, %rbx
leaq 0x740(%rsp), %rdi
callq 0x8578
leaq 0x780(%rsp), %rdi
jmp 0x46077
jmp 0x46042
jmp 0x4609b
movq %rax, %rbx
leaq 0x1240(%rsp), %rdi
callq 0x8578
jmp 0x45e86
movq %rax, %rbx
leaq 0x500(%rsp), %rdi
callq 0x8578
jmp 0x45e98
movq %rax, %rbx
leaq 0x540(%rsp), %rdi
callq 0x8578
jmp 0x45eaa
movq %rax, %rbx
movl $0xe0, %esi
movq %r13, %rdi
jmp 0x46084
jmp 0x4609b
movq %rax, %rbx
jmp 0x46062
jmp 0x46248
movq %rax, %rbx
jmp 0x4606f
movq %rax, %rbx
leaq 0x940(%rsp), %rdi
callq 0x8578
jmp 0x45f24
movq %rax, %rbx
leaq 0x1540(%rsp), %rdi
callq 0x8578
jmp 0x45efd
jmp 0x4602b
movq %rax, %rbx
leaq 0x640(%rsp), %rdi
jmp 0x46022
movq %rax, %rbx
leaq 0xfc0(%rsp), %rdi
callq 0x8578
jmp 0x45f4e
jmp 0x46042
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x46241
jmp 0x4609b
movq %rax, %rbx
leaq 0x1400(%rsp), %rdi
jmp 0x462cd
jmp 0x46248
movq %rax, %rbx
leaq 0x400(%rsp), %rdi
callq 0x8578
jmp 0x45f72
movq %rax, %rbx
leaq 0x10c0(%rsp), %rdi
callq 0x8578
jmp 0x45f99
movq %rax, %rbx
leaq 0x440(%rsp), %rdi
jmp 0x46077
jmp 0x4602b
movq %rax, %rbx
leaq 0x1880(%rsp), %rdi
callq 0x8578
jmp 0x45fa9
movq %rax, %rbx
leaq 0x480(%rsp), %rdi
jmp 0x46241
movq %rax, %rbx
leaq 0x840(%rsp), %rdi
callq 0x8578
jmp 0x4600b
jmp 0x4609b
jmp 0x46248
movq %rax, %rbx
leaq 0xb40(%rsp), %rdi
callq 0x8578
jmp 0x45fd7
movq %rax, %rbx
leaq 0x1c0(%rsp), %rdi
callq 0x8578
jmp 0x45fe9
movq %rax, %rbx
leaq 0x200(%rsp), %rdi
jmp 0x46077
movq %rax, %rbx
leaq 0xc40(%rsp), %rdi
callq 0x8578
jmp 0x4601a
movq %rax, %rbx
leaq 0x880(%rsp), %rdi
jmp 0x46077
jmp 0x4602b
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0x8578
jmp 0x46045
jmp 0x4609b
movq %rax, %rbx
jmp 0x4607c
movq %rax, %rbx
leaq 0x1440(%rsp), %rdi
callq 0x8578
jmp 0x4608e
movq %rax, %rbx
movl $0xe0, %esi
movq %r13, %rdi
jmp 0x46253
movq %rax, %rbx
leaq 0x12c0(%rsp), %rdi
callq 0x8578
leaq 0x580(%rsp), %rdi
callq 0x8578
leaq 0x5c0(%rsp), %rdi
callq 0x8578
movl $0xe0, %esi
movq %rbp, %rdi
callq 0x8260
jmp 0x4609e
movq %rax, %rbx
leaq 0x1480(%rsp), %rdi
jmp 0x46241
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
jmp 0x460e2
movq %rax, %rbx
leaq 0x1580(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x14c0(%rsp), %rdi
jmp 0x462cd
jmp 0x46248
movq %rax, %rbx
leaq 0x15c0(%rsp), %rdi
callq 0x8578
leaq 0x680(%rsp), %rdi
jmp 0x46241
jmp 0x46248
movq %rax, %rbx
leaq 0x1100(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
jmp 0x46182
movq %rax, %rbx
leaq 0xcc0(%rsp), %rdi
callq 0x8578
jmp 0x46140
movq %rax, %rbx
leaq 0xa00(%rsp), %rdi
callq 0x8578
jmp 0x46155
movq %rax, %rbx
leaq 0x980(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xd00(%rsp), %rdi
jmp 0x46241
jmp 0x46248
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
jmp 0x46241
movq %rax, %rbx
leaq 0xc80(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1180(%rsp), %rdi
callq 0x8578
leaq 0x4c0(%rsp), %rdi
jmp 0x46241
jmp 0x46248
movq %rax, %rbx
leaq 0x11c0(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1140(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xd40(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1600(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1500(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x17c0(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x9c0(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xf00(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xa40(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x8c0(%rsp), %rdi
callq 0x8578
jmp 0x46239
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x8578
jmp 0x4624b
movq %rax, %rbx
movl $0xe0, %esi
movq %rbp, %rdi
callq 0x8260
jmp 0x462d2
movq %rax, %rbx
leaq 0x1200(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1640(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1940(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xa80(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1380(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xd80(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x1080(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0xc00(%rsp), %rdi
jmp 0x462cd
movq %rax, %rbx
leaq 0x900(%rsp), %rdi
callq 0x8578
movq %rbx, %rdi
callq 0x84d0