// File: pfnet-research[P]pml/src/logic.cpp
// Function: logic::to_debug_string[abi:cxx11](logic::formula_t const&)
std::string to_debug_string(formula_t const& formula) {
    switch (formula.kind()) {
    case formula_kind_t::Var:
        return cast<var_formula_t>(formula).name;
    case formula_kind_t::Bot:
        return "Bot";
    case formula_kind_t::Top:
        return "Top";
    case formula_kind_t::Neg:
        return "Not(" + to_debug_string(*cast<neg_formula_t>(formula).inner) + ")";
    case formula_kind_t::And:
        return "And(" +
           to_debug_string(*cast<and_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<and_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Or:
        return "Or(" +
           to_debug_string(*cast<or_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<or_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Impl:
        return "Impl(" +
           to_debug_string(*cast<impl_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<impl_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Eq:
        return "Eq(" +
           to_debug_string(*cast<eq_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<eq_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Lt:
        return "Lt(" +
           to_debug_string(*cast<less_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<less_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Leq:
        return "Leq(" +
           to_debug_string(*cast<leq_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<leq_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Geq:
        return "Geq(" +
           to_debug_string(*cast<geq_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<geq_formula_t>(formula).rhs) + ")";
    case formula_kind_t::Gt:
        return "Gt(" +
           to_debug_string(*cast<greater_formula_t>(formula).lhs) + ", " +
           to_debug_string(*cast<greater_formula_t>(formula).rhs) + ")";
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x620, %rsp            # imm = 0x620
movq %rdi, -0x580(%rbp)
movq %rdi, %rax
movq %rax, -0x578(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
movl %eax, %ecx
movq %rcx, -0x570(%rbp)
subl $0xb, %eax
ja 0x22201
movq -0x570(%rbp), %rax
leaq 0x7a710(%rip), %rcx     # 0x9bb00
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
callq 0x22260
movq -0x580(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0xa190
jmp 0x22203
leaq -0x11(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0xa660
movq -0x580(%rbp), %rdi
movq -0x588(%rbp), %rdx
leaq 0x7a7a3(%rip), %rsi     # 0x9bbe2
callq 0x1dd10
jmp 0x21446
leaq -0x11(%rbp), %rdi
callq 0xa420
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x11(%rbp), %rdi
callq 0xa420
jmp 0x22213
leaq -0x25(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0xa660
movq -0x580(%rbp), %rdi
movq -0x590(%rbp), %rdx
leaq 0x7a753(%rip), %rsi     # 0x9bbe6
callq 0x1dd10
jmp 0x2149a
leaq -0x25(%rbp), %rdi
callq 0xa420
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x25(%rbp), %rdi
callq 0xa420
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x222a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0x68(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x213a0
movq -0x598(%rbp), %rdx
leaq 0x7a6f2(%rip), %rsi     # 0x9bbea
leaq -0x48(%rbp), %rdi
callq 0x12fb0
jmp 0x21503
movq -0x580(%rbp), %rdi
leaq 0x77ea1(%rip), %rdx     # 0x993b2
leaq -0x48(%rbp), %rsi
callq 0x1ddc0
jmp 0x2151c
leaq -0x48(%rbp), %rdi
callq 0xa240
leaq -0x68(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21556
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xa240
leaq -0x68(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x222e0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x213a0
movq -0x5a0(%rbp), %rdx
leaq 0x7a652(%rip), %rsi     # 0x9bbef
leaq -0xc8(%rbp), %rdi
callq 0x12fb0
jmp 0x215ab
leaq 0x7a321(%rip), %rdx     # 0x9b8d3
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x1ddc0
jmp 0x215c7
movq -0x10(%rbp), %rdi
callq 0x222e0
movq %rax, -0x5a8(%rbp)
jmp 0x215d9
movq -0x5a8(%rbp), %rdi
addq $0x18, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0x108(%rbp), %rdi
callq 0x213a0
jmp 0x215fa
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0x108(%rbp), %rdx
callq 0x1de10
jmp 0x21616
movq -0x580(%rbp), %rdi
leaq 0x77d8e(%rip), %rdx     # 0x993b2
leaq -0x88(%rbp), %rsi
callq 0x1ddc0
jmp 0x21632
leaq -0x88(%rbp), %rdi
callq 0xa240
leaq -0x108(%rbp), %rdi
callq 0xa240
leaq -0xa8(%rbp), %rdi
callq 0xa240
leaq -0xc8(%rbp), %rdi
callq 0xa240
leaq -0xe8(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x216e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x216db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x216cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x216c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xa240
leaq -0x108(%rbp), %rdi
callq 0xa240
leaq -0xa8(%rbp), %rdi
callq 0xa240
leaq -0xc8(%rbp), %rdi
callq 0xa240
leaq -0xe8(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x22320
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0x188(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x213a0
movq -0x5b0(%rbp), %rdx
leaq 0x7a4c3(%rip), %rsi     # 0x9bbf4
leaq -0x168(%rbp), %rdi
callq 0x12fb0
jmp 0x2173f
leaq 0x7a18d(%rip), %rdx     # 0x9b8d3
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x1ddc0
jmp 0x2175b
movq -0x10(%rbp), %rdi
callq 0x22320
movq %rax, -0x5b8(%rbp)
jmp 0x2176d
movq -0x5b8(%rbp), %rdi
addq $0x18, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x213a0
jmp 0x2178e
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
callq 0x1de10
jmp 0x217aa
movq -0x580(%rbp), %rdi
leaq 0x77bfa(%rip), %rdx     # 0x993b2
leaq -0x128(%rbp), %rsi
callq 0x1ddc0
jmp 0x217c6
leaq -0x128(%rbp), %rdi
callq 0xa240
leaq -0x1a8(%rbp), %rdi
callq 0xa240
leaq -0x148(%rbp), %rdi
callq 0xa240
leaq -0x168(%rbp), %rdi
callq 0xa240
leaq -0x188(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2187b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2186f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x128(%rbp), %rdi
callq 0xa240
leaq -0x1a8(%rbp), %rdi
callq 0xa240
leaq -0x148(%rbp), %rdi
callq 0xa240
leaq -0x168(%rbp), %rdi
callq 0xa240
leaq -0x188(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x22360
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movq %rdi, -0x5c0(%rbp)
callq 0x213a0
movq -0x5c0(%rbp), %rdx
leaq 0x7a333(%rip), %rsi     # 0x9bbf8
leaq -0x208(%rbp), %rdi
callq 0x12fb0
jmp 0x218d3
leaq 0x79ff9(%rip), %rdx     # 0x9b8d3
leaq -0x1e8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x1ddc0
jmp 0x218ef
movq -0x10(%rbp), %rdi
callq 0x22360
movq %rax, -0x5c8(%rbp)
jmp 0x21901
movq -0x5c8(%rbp), %rdi
addq $0x18, %rdi
callq 0x115e0
movq %rax, %rsi
leaq -0x248(%rbp), %rdi
callq 0x213a0
jmp 0x21922
leaq -0x1c8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
leaq -0x248(%rbp), %rdx
callq 0x1de10
jmp 0x2193e
movq -0x580(%rbp), %rdi
leaq 0x77a66(%rip), %rdx     # 0x993b2
leaq -0x1c8(%rbp), %rsi
callq 0x1ddc0
jmp 0x2195a
leaq -0x1c8(%rbp), %rdi
callq 0xa240
leaq -0x248(%rbp), %rdi
callq 0xa240
leaq -0x1e8(%rbp), %rdi
callq 0xa240
leaq -0x208(%rbp), %rdi
callq 0xa240
leaq -0x228(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21a0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21a03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x219f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x219eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0xa240
leaq -0x248(%rbp), %rdi
callq 0xa240
leaq -0x1e8(%rbp), %rdi
callq 0xa240
leaq -0x208(%rbp), %rdi
callq 0xa240
leaq -0x228(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x223a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x2c8(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x20a00
movq -0x5d0(%rbp), %rdx
leaq 0x7a1a5(%rip), %rsi     # 0x9bbfe
leaq -0x2a8(%rbp), %rdi
callq 0x12fb0
jmp 0x21a67
leaq 0x79e65(%rip), %rdx     # 0x9b8d3
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x1ddc0
jmp 0x21a83
movq -0x10(%rbp), %rdi
callq 0x223a0
movq %rax, -0x5d8(%rbp)
jmp 0x21a95
movq -0x5d8(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x2e8(%rbp), %rdi
callq 0x20a00
jmp 0x21ab6
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
leaq -0x2e8(%rbp), %rdx
callq 0x1de10
jmp 0x21ad2
movq -0x580(%rbp), %rdi
leaq 0x778d2(%rip), %rdx     # 0x993b2
leaq -0x268(%rbp), %rsi
callq 0x1ddc0
jmp 0x21aee
leaq -0x268(%rbp), %rdi
callq 0xa240
leaq -0x2e8(%rbp), %rdi
callq 0xa240
leaq -0x288(%rbp), %rdi
callq 0xa240
leaq -0x2a8(%rbp), %rdi
callq 0xa240
leaq -0x2c8(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21ba3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21b97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21b8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21b7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x268(%rbp), %rdi
callq 0xa240
leaq -0x2e8(%rbp), %rdi
callq 0xa240
leaq -0x288(%rbp), %rdi
callq 0xa240
leaq -0x2a8(%rbp), %rdi
callq 0xa240
leaq -0x2c8(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x223e0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x368(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x20a00
movq -0x5e0(%rbp), %rdx
leaq 0x7a015(%rip), %rsi     # 0x9bc02
leaq -0x348(%rbp), %rdi
callq 0x12fb0
jmp 0x21bfb
leaq 0x79cd1(%rip), %rdx     # 0x9b8d3
leaq -0x328(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x1ddc0
jmp 0x21c17
movq -0x10(%rbp), %rdi
callq 0x223e0
movq %rax, -0x5e8(%rbp)
jmp 0x21c29
movq -0x5e8(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x388(%rbp), %rdi
callq 0x20a00
jmp 0x21c4a
leaq -0x308(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x388(%rbp), %rdx
callq 0x1de10
jmp 0x21c66
movq -0x580(%rbp), %rdi
leaq 0x7773e(%rip), %rdx     # 0x993b2
leaq -0x308(%rbp), %rsi
callq 0x1ddc0
jmp 0x21c82
leaq -0x308(%rbp), %rdi
callq 0xa240
leaq -0x388(%rbp), %rdi
callq 0xa240
leaq -0x328(%rbp), %rdi
callq 0xa240
leaq -0x348(%rbp), %rdi
callq 0xa240
leaq -0x368(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21d37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21d2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21d1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21d13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x308(%rbp), %rdi
callq 0xa240
leaq -0x388(%rbp), %rdi
callq 0xa240
leaq -0x328(%rbp), %rdi
callq 0xa240
leaq -0x348(%rbp), %rdi
callq 0xa240
leaq -0x368(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x22420
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x408(%rbp), %rdi
movq %rdi, -0x5f0(%rbp)
callq 0x20a00
movq -0x5f0(%rbp), %rdx
leaq 0x79e85(%rip), %rsi     # 0x9bc06
leaq -0x3e8(%rbp), %rdi
callq 0x12fb0
jmp 0x21d8f
leaq 0x79b3d(%rip), %rdx     # 0x9b8d3
leaq -0x3c8(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x1ddc0
jmp 0x21dab
movq -0x10(%rbp), %rdi
callq 0x22420
movq %rax, -0x5f8(%rbp)
jmp 0x21dbd
movq -0x5f8(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x428(%rbp), %rdi
callq 0x20a00
jmp 0x21dde
leaq -0x3a8(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
leaq -0x428(%rbp), %rdx
callq 0x1de10
jmp 0x21dfa
movq -0x580(%rbp), %rdi
leaq 0x775aa(%rip), %rdx     # 0x993b2
leaq -0x3a8(%rbp), %rsi
callq 0x1ddc0
jmp 0x21e16
leaq -0x3a8(%rbp), %rdi
callq 0xa240
leaq -0x428(%rbp), %rdi
callq 0xa240
leaq -0x3c8(%rbp), %rdi
callq 0xa240
leaq -0x3e8(%rbp), %rdi
callq 0xa240
leaq -0x408(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21ecb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21ebf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21eb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x21ea7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0xa240
leaq -0x428(%rbp), %rdi
callq 0xa240
leaq -0x3c8(%rbp), %rdi
callq 0xa240
leaq -0x3e8(%rbp), %rdi
callq 0xa240
leaq -0x408(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x22460
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x4a8(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x20a00
movq -0x600(%rbp), %rdx
leaq 0x79cf6(%rip), %rsi     # 0x9bc0b
leaq -0x488(%rbp), %rdi
callq 0x12fb0
jmp 0x21f23
leaq 0x799a9(%rip), %rdx     # 0x9b8d3
leaq -0x468(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x1ddc0
jmp 0x21f3f
movq -0x10(%rbp), %rdi
callq 0x22460
movq %rax, -0x608(%rbp)
jmp 0x21f51
movq -0x608(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x4c8(%rbp), %rdi
callq 0x20a00
jmp 0x21f72
leaq -0x448(%rbp), %rdi
leaq -0x468(%rbp), %rsi
leaq -0x4c8(%rbp), %rdx
callq 0x1de10
jmp 0x21f8e
movq -0x580(%rbp), %rdi
leaq 0x77416(%rip), %rdx     # 0x993b2
leaq -0x448(%rbp), %rsi
callq 0x1ddc0
jmp 0x21faa
leaq -0x448(%rbp), %rdi
callq 0xa240
leaq -0x4c8(%rbp), %rdi
callq 0xa240
leaq -0x468(%rbp), %rdi
callq 0xa240
leaq -0x488(%rbp), %rdi
callq 0xa240
leaq -0x4a8(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2205f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x22053
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x22047
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2203b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x448(%rbp), %rdi
callq 0xa240
leaq -0x4c8(%rbp), %rdi
callq 0xa240
leaq -0x468(%rbp), %rdi
callq 0xa240
leaq -0x488(%rbp), %rdi
callq 0xa240
leaq -0x4a8(%rbp), %rdi
callq 0xa240
jmp 0x22213
movq -0x10(%rbp), %rdi
callq 0x224a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x548(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x20a00
movq -0x610(%rbp), %rdx
leaq 0x79b67(%rip), %rsi     # 0x9bc10
leaq -0x528(%rbp), %rdi
callq 0x12fb0
jmp 0x220b7
leaq 0x79815(%rip), %rdx     # 0x9b8d3
leaq -0x508(%rbp), %rdi
leaq -0x528(%rbp), %rsi
callq 0x1ddc0
jmp 0x220d3
movq -0x10(%rbp), %rdi
callq 0x224a0
movq %rax, -0x618(%rbp)
jmp 0x220e5
movq -0x618(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
leaq -0x568(%rbp), %rdi
callq 0x20a00
jmp 0x22106
leaq -0x4e8(%rbp), %rdi
leaq -0x508(%rbp), %rsi
leaq -0x568(%rbp), %rdx
callq 0x1de10
jmp 0x22122
movq -0x580(%rbp), %rdi
leaq 0x77282(%rip), %rdx     # 0x993b2
leaq -0x4e8(%rbp), %rsi
callq 0x1ddc0
jmp 0x2213e
leaq -0x4e8(%rbp), %rdi
callq 0xa240
leaq -0x568(%rbp), %rdi
callq 0xa240
leaq -0x508(%rbp), %rdi
callq 0xa240
leaq -0x528(%rbp), %rdi
callq 0xa240
leaq -0x548(%rbp), %rdi
callq 0xa240
jmp 0x22203
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x221f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x221e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x221db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x221cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0xa240
leaq -0x568(%rbp), %rdi
callq 0xa240
leaq -0x508(%rbp), %rdi
callq 0xa240
leaq -0x528(%rbp), %rdi
callq 0xa240
leaq -0x548(%rbp), %rdi
callq 0xa240
jmp 0x22213
ud2
movq -0x578(%rbp), %rax
addq $0x620, %rsp            # imm = 0x620
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0xa650
nopl (%rax)