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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x620, %rsp            # imm = 0x620
movq %rdi, -0x580(%rbp)
movb %cl, %al
movq %rdi, %rcx
movq %rcx, -0x578(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
andb $0x1, %al
movb %al, -0x15(%rbp)
movq -0x10(%rbp), %rdi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
movl %eax, %ecx
movq %rcx, -0x570(%rbp)
subl $0xb, %eax
ja 0x24319
movq -0x570(%rbp), %rax
leaq 0x78702(%rip), %rcx     # 0x9bb4c
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 0x2431b
leaq -0x16(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0xa660
movq -0x580(%rbp), %rdi
movq -0x588(%rbp), %rdx
leaq 0x787bd(%rip), %rsi     # 0x9bc56
callq 0x1dd10
jmp 0x234a0
leaq -0x16(%rbp), %rdi
callq 0xa420
jmp 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x16(%rbp), %rdi
callq 0xa420
jmp 0x2432b
leaq -0x25(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0xa660
movq -0x580(%rbp), %rdi
movq -0x590(%rbp), %rdx
leaq 0x7876f(%rip), %rsi     # 0x9bc5c
callq 0x1dd10
jmp 0x234f4
leaq -0x25(%rbp), %rdi
callq 0xa420
jmp 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x25(%rbp), %rdi
callq 0xa420
jmp 0x2432b
movq -0x10(%rbp), %rdi
callq 0x222a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x68(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x233f0
movq -0x598(%rbp), %rdx
leaq 0x78706(%rip), %rsi     # 0x9bc62
leaq -0x48(%rbp), %rdi
callq 0x12fb0
jmp 0x23567
movq -0x580(%rbp), %rdi
leaq 0x75e3d(%rip), %rdx     # 0x993b2
leaq -0x48(%rbp), %rsi
callq 0x1ddc0
jmp 0x23580
leaq -0x48(%rbp), %rdi
callq 0xa240
leaq -0x68(%rbp), %rdi
callq 0xa240
jmp 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x235ba
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x222e0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x233f0
movq -0x5a0(%rbp), %rdx
leaq 0x78658(%rip), %rsi     # 0x9bc63
leaq -0xc8(%rbp), %rdi
callq 0x12fb0
jmp 0x23619
leaq 0x78645(%rip), %rdx     # 0x9bc65
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x1ddc0
jmp 0x23635
movq -0x10(%rbp), %rdi
callq 0x222e0
movq %rax, -0x5a8(%rbp)
jmp 0x23647
movq -0x5a8(%rbp), %rdi
addq $0x18, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x108(%rbp), %rdi
callq 0x233f0
jmp 0x23672
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
leaq -0x108(%rbp), %rdx
callq 0x1de10
jmp 0x2368e
movq -0x580(%rbp), %rdi
leaq 0x75d16(%rip), %rdx     # 0x993b2
leaq -0x88(%rbp), %rsi
callq 0x1ddc0
jmp 0x236aa
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2375f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23753
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23747
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2373b
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x22320
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x188(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x233f0
movq -0x5b0(%rbp), %rdx
leaq 0x784b0(%rip), %rsi     # 0x9bc63
leaq -0x168(%rbp), %rdi
callq 0x12fb0
jmp 0x237c1
leaq 0x7849f(%rip), %rdx     # 0x9bc67
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x1ddc0
jmp 0x237dd
movq -0x10(%rbp), %rdi
callq 0x22320
movq %rax, -0x5b8(%rbp)
jmp 0x237ef
movq -0x5b8(%rbp), %rdi
addq $0x18, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x1a8(%rbp), %rdi
callq 0x233f0
jmp 0x2381a
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
callq 0x1de10
jmp 0x23836
movq -0x580(%rbp), %rdi
leaq 0x75b6e(%rip), %rdx     # 0x993b2
leaq -0x128(%rbp), %rsi
callq 0x1ddc0
jmp 0x23852
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23907
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x238fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x238ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x238e3
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x22360
movq %rax, %rdi
addq $0x8, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movb -0x15(%rbp), %al
notb %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq -0x228(%rbp), %rdi
movq %rdi, -0x5c0(%rbp)
callq 0x233f0
movq -0x5c0(%rbp), %rdx
leaq 0x78304(%rip), %rsi     # 0x9bc63
leaq -0x208(%rbp), %rdi
callq 0x12fb0
jmp 0x2396d
leaq 0x78c98(%rip), %rdx     # 0x9c60c
leaq -0x1e8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x1ddc0
jmp 0x23989
movq -0x10(%rbp), %rdi
callq 0x22360
movq %rax, -0x5c8(%rbp)
jmp 0x2399b
movq -0x5c8(%rbp), %rdi
addq $0x18, %rdi
callq 0x115e0
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x248(%rbp), %rdi
callq 0x233f0
jmp 0x239c6
leaq -0x1c8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
leaq -0x248(%rbp), %rdx
callq 0x1de10
jmp 0x239e2
movq -0x580(%rbp), %rdi
leaq 0x759c2(%rip), %rdx     # 0x993b2
leaq -0x1c8(%rbp), %rsi
callq 0x1ddc0
jmp 0x239fe
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23ab3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23aa7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23a9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23a8f
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x223a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x2c8(%rbp), %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x22720
movq -0x5d0(%rbp), %rdx
leaq 0x7815c(%rip), %rsi     # 0x9bc63
leaq -0x2a8(%rbp), %rdi
callq 0x12fb0
jmp 0x23b15
leaq 0x78aed(%rip), %rdx     # 0x9c609
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x1ddc0
jmp 0x23b31
movq -0x10(%rbp), %rdi
callq 0x223a0
movq %rax, -0x5d8(%rbp)
jmp 0x23b43
movq -0x5d8(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x2e8(%rbp), %rdi
callq 0x22720
jmp 0x23b6e
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
leaq -0x2e8(%rbp), %rdx
callq 0x1de10
jmp 0x23b8a
movq -0x580(%rbp), %rdi
leaq 0x7581a(%rip), %rdx     # 0x993b2
leaq -0x268(%rbp), %rsi
callq 0x1ddc0
jmp 0x23ba6
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23c5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23c4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23c43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23c37
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x223e0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movb -0x15(%rbp), %al
notb %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq -0x368(%rbp), %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x22720
movq -0x5e0(%rbp), %rdx
leaq 0x77fb0(%rip), %rsi     # 0x9bc63
leaq -0x348(%rbp), %rdi
callq 0x12fb0
jmp 0x23cc1
leaq 0x77fa1(%rip), %rdx     # 0x9bc69
leaq -0x328(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x1ddc0
jmp 0x23cdd
movq -0x10(%rbp), %rdi
callq 0x223e0
movq %rax, -0x5e8(%rbp)
jmp 0x23cef
movq -0x5e8(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x388(%rbp), %rdi
callq 0x22720
jmp 0x23d1a
leaq -0x308(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x388(%rbp), %rdx
callq 0x1de10
jmp 0x23d36
movq -0x580(%rbp), %rdi
leaq 0x7566e(%rip), %rdx     # 0x993b2
leaq -0x308(%rbp), %rsi
callq 0x1ddc0
jmp 0x23d52
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23e07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23dfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23def
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23de3
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x22420
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movb -0x15(%rbp), %al
notb %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq -0x408(%rbp), %rdi
movq %rdi, -0x5f0(%rbp)
callq 0x22720
movq -0x5f0(%rbp), %rdx
leaq 0x77e04(%rip), %rsi     # 0x9bc63
leaq -0x3e8(%rbp), %rdi
callq 0x12fb0
jmp 0x23e6d
leaq 0x77df7(%rip), %rdx     # 0x9bc6b
leaq -0x3c8(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x1ddc0
jmp 0x23e89
movq -0x10(%rbp), %rdi
callq 0x22420
movq %rax, -0x5f8(%rbp)
jmp 0x23e9b
movq -0x5f8(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x428(%rbp), %rdi
callq 0x22720
jmp 0x23ec6
leaq -0x3a8(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
leaq -0x428(%rbp), %rdx
callq 0x1de10
jmp 0x23ee2
movq -0x580(%rbp), %rdi
leaq 0x754c2(%rip), %rdx     # 0x993b2
leaq -0x3a8(%rbp), %rsi
callq 0x1ddc0
jmp 0x23efe
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23fb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23fa7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23f9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x23f8f
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x22460
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x4a8(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x22720
movq -0x600(%rbp), %rdx
leaq 0x77c5c(%rip), %rsi     # 0x9bc63
leaq -0x488(%rbp), %rdi
callq 0x12fb0
jmp 0x24015
leaq 0x77c52(%rip), %rdx     # 0x9bc6e
leaq -0x468(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x1ddc0
jmp 0x24031
movq -0x10(%rbp), %rdi
callq 0x22460
movq %rax, -0x608(%rbp)
jmp 0x24043
movq -0x608(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movb -0x15(%rbp), %al
notb %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq -0x4c8(%rbp), %rdi
callq 0x22720
jmp 0x24072
leaq -0x448(%rbp), %rdi
leaq -0x468(%rbp), %rsi
leaq -0x4c8(%rbp), %rdx
callq 0x1de10
jmp 0x2408e
movq -0x580(%rbp), %rdi
leaq 0x75316(%rip), %rdx     # 0x993b2
leaq -0x448(%rbp), %rsi
callq 0x1ddc0
jmp 0x240aa
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2415f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x24153
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x24147
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2413b
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 0x2432b
movq -0x10(%rbp), %rdi
callq 0x224a0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movzbl -0x15(%rbp), %ecx
andl $0x1, %ecx
leaq -0x548(%rbp), %rdi
movq %rdi, -0x610(%rbp)
callq 0x22720
movq -0x610(%rbp), %rdx
leaq 0x77ab0(%rip), %rsi     # 0x9bc63
leaq -0x528(%rbp), %rdi
callq 0x12fb0
jmp 0x241c1
leaq 0x78853(%rip), %rdx     # 0x9ca1b
leaq -0x508(%rbp), %rdi
leaq -0x528(%rbp), %rsi
callq 0x1ddc0
jmp 0x241dd
movq -0x10(%rbp), %rdi
callq 0x224a0
movq %rax, -0x618(%rbp)
jmp 0x241ef
movq -0x618(%rbp), %rdi
addq $0x18, %rdi
callq 0x24f80
movq %rax, %rsi
movl -0x14(%rbp), %edx
movb -0x15(%rbp), %al
notb %al
movzbl %al, %ecx
andl $0x1, %ecx
leaq -0x568(%rbp), %rdi
callq 0x22720
jmp 0x2421e
leaq -0x4e8(%rbp), %rdi
leaq -0x508(%rbp), %rsi
leaq -0x568(%rbp), %rdx
callq 0x1de10
jmp 0x2423a
movq -0x580(%rbp), %rdi
leaq 0x7516a(%rip), %rdx     # 0x993b2
leaq -0x4e8(%rbp), %rsi
callq 0x1ddc0
jmp 0x24256
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 0x2431b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2430b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x242ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x242f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x242e7
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 0x2432b
ud2
movq -0x578(%rbp), %rax
addq $0x620, %rsp            # imm = 0x620
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0xa650
nopw %cs:(%rax,%rax)