// File: /workspace/github_cpp_makefile_star2_O2/chuckwolber[P]Cube/test/test_algorithm.cpp
// Function: test_hidden_triples()
void test_hidden_triples() {
    std::cout << "Testing hidden triples... ";
    
    Algorithm alg_1;
    alg_1.addTurn({Layer::B, false});
    alg_1.addTurn({Layer::F, true});
    alg_1.addTurn({Layer::B, true});
    alg_1.addTurn({Layer::B, true});
    assert(!alg_1.hasHiddenTriple());

    Algorithm alg_2;
    alg_2.addTurn({Layer::B, true});
    alg_2.addTurn({Layer::F, true});
    alg_2.addTurn({Layer::B, true});
    alg_2.addTurn({Layer::B, true});
    assert(alg_2.hasHiddenTriple());

    Algorithm alg_3;
    alg_3.addTurn({Layer::B, true});
    alg_3.addTurn({Layer::F, true});
    alg_3.addTurn({Layer::F, true});
    alg_3.addTurn({Layer::B, true});
    alg_3.addTurn({Layer::B, true});
    assert(alg_3.hasHiddenTriple());

    Algorithm alg_4;
    alg_4.addTurn({Layer::B, true});
    alg_4.addTurn({Layer::F, true});
    alg_4.addTurn({Layer::B, true});
    alg_4.addTurn({Layer::F, true});
    alg_4.addTurn({Layer::B, true});
    assert(alg_4.hasHiddenTriple());

    /* 0:1 - X X (Y | Y') X */
    Algorithm alg_5;
    alg_5.addTurn({Layer::U, true});
    alg_5.addTurn({Layer::L, true});
    alg_5.addTurn({Layer::L, true});
    alg_5.addTurn({Layer::R, false});
    alg_5.addTurn({Layer::L, true});
    assert(alg_5.hasHiddenTriple());

    Algorithm alg_6;
    alg_6.addTurn({Layer::U, true});
    alg_6.addTurn({Layer::L, true});
    alg_6.addTurn({Layer::R, true});
    alg_6.addTurn({Layer::R, false});
    alg_6.addTurn({Layer::L, true});
    assert(!alg_6.hasHiddenTriple());

    /* 1:0 - X (Y | Y') X X */
    Algorithm alg_7;
    alg_7.addTurn({Layer::U, true});
    alg_7.addTurn({Layer::R, true});
    alg_7.addTurn({Layer::L, true});
    alg_7.addTurn({Layer::R, true});
    alg_7.addTurn({Layer::R, true});
    assert(alg_7.hasHiddenTriple());

    Algorithm alg_8;
    alg_8.addTurn({Layer::U, true});
    alg_8.addTurn({Layer::R, true});
    alg_8.addTurn({Layer::L, true});
    alg_8.addTurn({Layer::R, false});
    alg_8.addTurn({Layer::R, true});
    assert(!alg_8.hasHiddenTriple());

    /* 0:2 - X X (Y | Y') (Y | Y') X */
    Algorithm alg_9;
    alg_9.addTurn({Layer::U, true});
    alg_9.addTurn({Layer::R, true});
    alg_9.addTurn({Layer::R, true});
    alg_9.addTurn({Layer::L, true});
    alg_9.addTurn({Layer::L, false});
    alg_9.addTurn({Layer::R, true});
    assert(alg_9.hasHiddenTriple());

    Algorithm alg_10;
    alg_10.addTurn({Layer::U, true});
    alg_10.addTurn({Layer::R, true});
    alg_10.addTurn({Layer::R, true});
    alg_10.addTurn({Layer::L, true});
    alg_10.addTurn({Layer::L, false});
    alg_10.addTurn({Layer::R, false});
    assert(!alg_10.hasHiddenTriple());

    /* 1:1 - X (Y | Y') X (Y | Y') X */
    Algorithm alg_11;
    alg_11.addTurn({Layer::U, true});
    alg_11.addTurn({Layer::R, true});
    alg_11.addTurn({Layer::L, true});
    alg_11.addTurn({Layer::R, true});
    alg_11.addTurn({Layer::L, false});
    alg_11.addTurn({Layer::R, true});
    assert(alg_11.hasHiddenTriple());

    Algorithm alg_12;
    alg_12.addTurn({Layer::U, true});
    alg_12.addTurn({Layer::R, true});
    alg_12.addTurn({Layer::L, true});
    alg_12.addTurn({Layer::R, true});
    alg_12.addTurn({Layer::L, false});
    alg_12.addTurn({Layer::R, false});
    assert(!alg_12.hasHiddenTriple());

    /* 2:0 - X (Y | Y') (Y | Y') X X */
    Algorithm alg_13;
    alg_13.addTurn({Layer::U, true});
    alg_13.addTurn({Layer::R, false});
    alg_13.addTurn({Layer::L, false});
    alg_13.addTurn({Layer::L, true});
    alg_13.addTurn({Layer::R, false});
    alg_13.addTurn({Layer::R, false});
    assert(alg_13.hasHiddenTriple());

    Algorithm alg_14;
    alg_14.addTurn({Layer::U, true});
    alg_14.addTurn({Layer::R, true});
    alg_14.addTurn({Layer::L, true});
    alg_14.addTurn({Layer::L, true});
    alg_14.addTurn({Layer::R, false});
    alg_14.addTurn({Layer::R, false});
    assert(!alg_14.hasHiddenTriple());

    /* 1:2 - X (Y | Y') X (Y | Y') (Y | Y') X */
    Algorithm alg_15;
    alg_15.addTurn({Layer::F, true});
    alg_15.addTurn({Layer::D, false});
    alg_15.addTurn({Layer::U, false});
    alg_15.addTurn({Layer::D, false});
    alg_15.addTurn({Layer::U, false});
    alg_15.addTurn({Layer::U, true});
    alg_15.addTurn({Layer::D, false});
    assert(alg_15.hasHiddenTriple());

    Algorithm alg_16;
    alg_16.addTurn({Layer::F, true});
    alg_16.addTurn({Layer::D, true});
    alg_16.addTurn({Layer::U, true});
    alg_16.addTurn({Layer::D, true});
    alg_16.addTurn({Layer::R, false});
    alg_16.addTurn({Layer::U, false});
    alg_16.addTurn({Layer::D, true});
    assert(!alg_16.hasHiddenTriple());

    /* 2:1 - X (Y | Y') (Y | Y') X (Y | Y') X */
    Algorithm alg_17;
    alg_17.addTurn({Layer::F, true});
    alg_17.addTurn({Layer::D, false});
    alg_17.addTurn({Layer::U, false});
    alg_17.addTurn({Layer::U, false});
    alg_17.addTurn({Layer::D, false});
    alg_17.addTurn({Layer::U, true});
    alg_17.addTurn({Layer::D, false});
    assert(alg_17.hasHiddenTriple());

    Algorithm alg_18;
    alg_18.addTurn({Layer::L, true});
    alg_18.addTurn({Layer::D, true});
    alg_18.addTurn({Layer::U, true});
    alg_18.addTurn({Layer::U, true});
    alg_18.addTurn({Layer::D, true});
    alg_18.addTurn({Layer::L, false});
    alg_18.addTurn({Layer::D, true});
    assert(!alg_18.hasHiddenTriple());

    /* 2:2 - X (Y | Y') (Y | Y') X (Y | Y') (Y | Y') X */
    Algorithm alg_19;
    alg_19.addTurn({Layer::U, true});
    alg_19.addTurn({Layer::F, false});
    alg_19.addTurn({Layer::B, false});
    alg_19.addTurn({Layer::B, true});
    alg_19.addTurn({Layer::F, false});
    alg_19.addTurn({Layer::B, true});
    alg_19.addTurn({Layer::B, false});
    alg_19.addTurn({Layer::F, false});
    assert(alg_19.hasHiddenTriple());

    Algorithm alg_20;
    alg_20.addTurn({Layer::R, true});
    alg_20.addTurn({Layer::F, true});
    alg_20.addTurn({Layer::B, false});
    alg_20.addTurn({Layer::B, false});
    alg_20.addTurn({Layer::F, true});
    alg_20.addTurn({Layer::L, false});
    alg_20.addTurn({Layer::B, true});
    alg_20.addTurn({Layer::F, true});
    assert(!alg_20.hasHiddenTriple());

    std::cout << "Passed" << std::endl;
}

// Assembly:
pushq %rbx
subq $0x320, %rsp            # imm = 0x320
movq 0x7709(%rip), %rdi      # 0xdfd8
leaq 0x2d87(%rip), %rsi      # 0x965d
callq 0x2140
leaq 0x2f8(%rsp), %rbx
movq %rbx, %rdi
callq 0x231c
pushq $0x7
popq %rsi
movq %rbx, %rdi
callq 0x235c
leaq 0x2f8(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x2f8(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2f8(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2f8(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x75ac
leaq 0x2d0(%rsp), %rdi
callq 0x231c
leaq 0x2d0(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2d0(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x2d0(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2d0(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2d0(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x75cb
leaq 0x2a8(%rsp), %rdi
callq 0x231c
leaq 0x2a8(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2a8(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x2a8(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x2a8(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2a8(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x2a8(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x75ea
leaq 0x280(%rsp), %rdi
callq 0x231c
leaq 0x280(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x280(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x280(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x280(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x280(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x280(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x7609
leaq 0x258(%rsp), %rdi
callq 0x231c
leaq 0x258(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x258(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x258(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x258(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x258(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x258(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x7628
leaq 0x230(%rsp), %rdi
callq 0x231c
leaq 0x230(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x230(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x230(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x230(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x230(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x230(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x7647
leaq 0x208(%rsp), %rdi
callq 0x231c
leaq 0x208(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x208(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x208(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x208(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x208(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x208(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x7666
leaq 0x1e0(%rsp), %rdi
callq 0x231c
leaq 0x1e0(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x1e0(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x1e0(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x1e0(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x1e0(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x1e0(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x7685
leaq 0x1b8(%rsp), %rdi
callq 0x231c
leaq 0x1b8(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x1b8(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x1b8(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x1b8(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x1b8(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x235c
leaq 0x1b8(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x1b8(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x76a4
leaq 0x190(%rsp), %rdi
callq 0x231c
leaq 0x190(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x190(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x190(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x190(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x190(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x235c
leaq 0x190(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x190(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x76c3
leaq 0x168(%rsp), %rdi
callq 0x231c
leaq 0x168(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x168(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x168(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x168(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x168(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x235c
leaq 0x168(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x168(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x76e2
leaq 0x140(%rsp), %rdi
callq 0x231c
leaq 0x140(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x140(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x140(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x140(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0x140(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x235c
leaq 0x140(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x140(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x7701
leaq 0x118(%rsp), %rdi
callq 0x231c
leaq 0x118(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x118(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x118(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x235c
leaq 0x118(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x118(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x118(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0x118(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x7720
leaq 0xf0(%rsp), %rdi
callq 0x231c
leaq 0xf0(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0xf0(%rsp), %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
leaq 0xf0(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0xf0(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0xf0(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0xf0(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0xf0(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x773f
leaq 0xc8(%rsp), %rdi
callq 0x231c
leaq 0xc8(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0xc8(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x235c
leaq 0xc8(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x235c
leaq 0xc8(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x235c
leaq 0xc8(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x235c
leaq 0xc8(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0xc8(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x235c
leaq 0xc8(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x775e
leaq 0xa0(%rsp), %rdi
callq 0x231c
leaq 0xa0(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0xa0(%rsp), %rdi
movabsq $0x100000009, %rsi      # imm = 0x100000009
callq 0x235c
leaq 0xa0(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0xa0(%rsp), %rdi
movabsq $0x100000009, %rsi      # imm = 0x100000009
callq 0x235c
leaq 0xa0(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x235c
leaq 0xa0(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x235c
leaq 0xa0(%rsp), %rdi
movabsq $0x100000009, %rsi      # imm = 0x100000009
callq 0x235c
leaq 0xa0(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x777d
leaq 0x78(%rsp), %rdi
callq 0x231c
leaq 0x78(%rsp), %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
leaq 0x78(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x235c
leaq 0x78(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x235c
leaq 0x78(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x235c
leaq 0x78(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x235c
leaq 0x78(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x78(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x235c
leaq 0x78(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x779c
leaq 0x50(%rsp), %rdi
callq 0x231c
leaq 0x50(%rsp), %rdi
movabsq $0x100000004, %rsi      # imm = 0x100000004
callq 0x235c
leaq 0x50(%rsp), %rdi
movabsq $0x100000009, %rsi      # imm = 0x100000009
callq 0x235c
leaq 0x50(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x50(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x50(%rsp), %rdi
movabsq $0x100000009, %rsi      # imm = 0x100000009
callq 0x235c
leaq 0x50(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x235c
leaq 0x50(%rsp), %rdi
movabsq $0x100000009, %rsi      # imm = 0x100000009
callq 0x235c
leaq 0x50(%rsp), %rdi
callq 0x2e4e
testb %al, %al
jne 0x77bb
leaq 0x28(%rsp), %rdi
callq 0x231c
leaq 0x28(%rsp), %rdi
movabsq $0x100000001, %rsi      # imm = 0x100000001
callq 0x235c
leaq 0x28(%rsp), %rdi
pushq $0x5
popq %rsi
callq 0x235c
leaq 0x28(%rsp), %rdi
pushq $0x7
popq %rsi
callq 0x235c
leaq 0x28(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x28(%rsp), %rdi
pushq $0x5
popq %rsi
callq 0x235c
leaq 0x28(%rsp), %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
leaq 0x28(%rsp), %rdi
pushq $0x7
popq %rsi
callq 0x235c
leaq 0x28(%rsp), %rdi
pushq $0x5
popq %rsi
callq 0x235c
leaq 0x28(%rsp), %rdi
callq 0x2e4e
testb %al, %al
je 0x77da
movq %rsp, %rdi
callq 0x231c
movq %rsp, %rdi
movabsq $0x100000006, %rsi      # imm = 0x100000006
callq 0x235c
movq %rsp, %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
movq %rsp, %rdi
pushq $0x7
popq %rsi
callq 0x235c
movq %rsp, %rdi
pushq $0x7
popq %rsi
callq 0x235c
movq %rsp, %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
movq %rsp, %rdi
pushq $0x4
popq %rsi
callq 0x235c
movq %rsp, %rdi
movabsq $0x100000007, %rsi      # imm = 0x100000007
callq 0x235c
movq %rsp, %rdi
movabsq $0x100000005, %rsi      # imm = 0x100000005
callq 0x235c
movq %rsp, %rdi
callq 0x2e4e
testb %al, %al
jne 0x77f9
movq 0x6b3f(%rip), %rdi      # 0xdfd8
leaq 0x1eca(%rip), %rsi      # 0x936a
callq 0x2140
movq %rax, %rdi
callq 0x20b0
movq %rsp, %rdi
callq 0x3558
leaq 0x28(%rsp), %rdi
callq 0x3558
leaq 0x50(%rsp), %rdi
callq 0x3558
leaq 0x78(%rsp), %rdi
callq 0x3558
leaq 0xa0(%rsp), %rdi
callq 0x3558
leaq 0xc8(%rsp), %rdi
callq 0x3558
leaq 0xf0(%rsp), %rdi
callq 0x3558
leaq 0x118(%rsp), %rdi
callq 0x3558
leaq 0x140(%rsp), %rdi
callq 0x3558
leaq 0x168(%rsp), %rdi
callq 0x3558
leaq 0x190(%rsp), %rdi
callq 0x3558
leaq 0x1b8(%rsp), %rdi
callq 0x3558
leaq 0x1e0(%rsp), %rdi
callq 0x3558
leaq 0x208(%rsp), %rdi
callq 0x3558
leaq 0x230(%rsp), %rdi
callq 0x3558
leaq 0x258(%rsp), %rdi
callq 0x3558
leaq 0x280(%rsp), %rdi
callq 0x3558
leaq 0x2a8(%rsp), %rdi
callq 0x3558
leaq 0x2d0(%rsp), %rdi
callq 0x3558
leaq 0x2f8(%rsp), %rdi
callq 0x3558
addq $0x320, %rsp            # imm = 0x320
popq %rbx
retq
leaq 0x20c5(%rip), %rdi      # 0x9678
leaq 0x1cd3(%rip), %rsi      # 0x928d
leaq 0x20d0(%rip), %rcx      # 0x9691
movl $0x188, %edx            # imm = 0x188
callq 0x20e0
leaq 0x20da(%rip), %rdi      # 0x96ac
leaq 0x1cb4(%rip), %rsi      # 0x928d
leaq 0x20b1(%rip), %rcx      # 0x9691
movl $0x18f, %edx            # imm = 0x18F
callq 0x20e0
leaq 0x20d3(%rip), %rdi      # 0x96c4
leaq 0x1c95(%rip), %rsi      # 0x928d
leaq 0x2092(%rip), %rcx      # 0x9691
movl $0x197, %edx            # imm = 0x197
callq 0x20e0
leaq 0x20cc(%rip), %rdi      # 0x96dc
leaq 0x1c76(%rip), %rsi      # 0x928d
leaq 0x2073(%rip), %rcx      # 0x9691
movl $0x19f, %edx            # imm = 0x19F
callq 0x20e0
leaq 0x20c5(%rip), %rdi      # 0x96f4
leaq 0x1c57(%rip), %rsi      # 0x928d
leaq 0x2054(%rip), %rcx      # 0x9691
movl $0x1a8, %edx            # imm = 0x1A8
callq 0x20e0
leaq 0x20be(%rip), %rdi      # 0x970c
leaq 0x1c38(%rip), %rsi      # 0x928d
leaq 0x2035(%rip), %rcx      # 0x9691
movl $0x1b0, %edx            # imm = 0x1B0
callq 0x20e0
leaq 0x20b8(%rip), %rdi      # 0x9725
leaq 0x1c19(%rip), %rsi      # 0x928d
leaq 0x2016(%rip), %rcx      # 0x9691
movl $0x1b9, %edx            # imm = 0x1B9
callq 0x20e0
leaq 0x20b1(%rip), %rdi      # 0x973d
leaq 0x1bfa(%rip), %rsi      # 0x928d
leaq 0x1ff7(%rip), %rcx      # 0x9691
movl $0x1c1, %edx            # imm = 0x1C1
callq 0x20e0
leaq 0x20ab(%rip), %rdi      # 0x9756
leaq 0x1bdb(%rip), %rsi      # 0x928d
leaq 0x1fd8(%rip), %rcx      # 0x9691
movl $0x1cb, %edx            # imm = 0x1CB
callq 0x20e0
leaq 0x20a4(%rip), %rdi      # 0x976e
leaq 0x1bbc(%rip), %rsi      # 0x928d
leaq 0x1fb9(%rip), %rcx      # 0x9691
movl $0x1d4, %edx            # imm = 0x1D4
callq 0x20e0
leaq 0x209f(%rip), %rdi      # 0x9788
leaq 0x1b9d(%rip), %rsi      # 0x928d
leaq 0x1f9a(%rip), %rcx      # 0x9691
movl $0x1de, %edx            # imm = 0x1DE
callq 0x20e0
leaq 0x2099(%rip), %rdi      # 0x97a1
leaq 0x1b7e(%rip), %rsi      # 0x928d
leaq 0x1f7b(%rip), %rcx      # 0x9691
movl $0x1e7, %edx            # imm = 0x1E7
callq 0x20e0
leaq 0x2094(%rip), %rdi      # 0x97bb
leaq 0x1b5f(%rip), %rsi      # 0x928d
leaq 0x1f5c(%rip), %rcx      # 0x9691
movl $0x1f1, %edx            # imm = 0x1F1
callq 0x20e0
leaq 0x208e(%rip), %rdi      # 0x97d4
leaq 0x1b40(%rip), %rsi      # 0x928d
leaq 0x1f3d(%rip), %rcx      # 0x9691
movl $0x1fa, %edx            # imm = 0x1FA
callq 0x20e0
leaq 0x2089(%rip), %rdi      # 0x97ee
leaq 0x1b21(%rip), %rsi      # 0x928d
leaq 0x1f1e(%rip), %rcx      # 0x9691
movl $0x205, %edx            # imm = 0x205
callq 0x20e0
leaq 0x2083(%rip), %rdi      # 0x9807
leaq 0x1b02(%rip), %rsi      # 0x928d
leaq 0x1eff(%rip), %rcx      # 0x9691
movl $0x20f, %edx            # imm = 0x20F
callq 0x20e0
leaq 0x207e(%rip), %rdi      # 0x9821
leaq 0x1ae3(%rip), %rsi      # 0x928d
leaq 0x1ee0(%rip), %rcx      # 0x9691
movl $0x21a, %edx            # imm = 0x21A
callq 0x20e0
leaq 0x2078(%rip), %rdi      # 0x983a
leaq 0x1ac4(%rip), %rsi      # 0x928d
leaq 0x1ec1(%rip), %rcx      # 0x9691
movl $0x224, %edx            # imm = 0x224
callq 0x20e0
leaq 0x2073(%rip), %rdi      # 0x9854
leaq 0x1aa5(%rip), %rsi      # 0x928d
leaq 0x1ea2(%rip), %rcx      # 0x9691
movl $0x230, %edx            # imm = 0x230
callq 0x20e0
leaq 0x206d(%rip), %rdi      # 0x986d
leaq 0x1a86(%rip), %rsi      # 0x928d
leaq 0x1e83(%rip), %rcx      # 0x9691
movl $0x23b, %edx            # imm = 0x23B
callq 0x20e0
jmp 0x78d1
jmp 0x78bd
jmp 0x78c2
jmp 0x78c7
jmp 0x78cc
jmp 0x788d
jmp 0x7895
jmp 0x789d
jmp 0x78a5
jmp 0x78ad
jmp 0x78b5
jmp 0x785d
jmp 0x7865
jmp 0x786d
jmp 0x7875
jmp 0x787d
jmp 0x7885
jmp 0x784d
jmp 0x7855
movq %rax, %rbx
jmp 0x79b5
movq %rax, %rbx
jmp 0x79c2
movq %rax, %rbx
jmp 0x7967
movq %rax, %rbx
jmp 0x7974
movq %rax, %rbx
jmp 0x7981
movq %rax, %rbx
jmp 0x798e
movq %rax, %rbx
jmp 0x799b
movq %rax, %rbx
jmp 0x79a8
movq %rax, %rbx
jmp 0x7919
movq %rax, %rbx
jmp 0x7926
movq %rax, %rbx
jmp 0x7933
movq %rax, %rbx
jmp 0x7940
movq %rax, %rbx
jmp 0x794d
movq %rax, %rbx
jmp 0x795a
movq %rax, %rbx
jmp 0x78eb
movq %rax, %rbx
jmp 0x78f5
movq %rax, %rbx
jmp 0x78ff
movq %rax, %rbx
jmp 0x790c
movq %rax, %rbx
jmp 0x78e1
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3558
leaq 0x28(%rsp), %rdi
callq 0x3558
leaq 0x50(%rsp), %rdi
callq 0x3558
leaq 0x78(%rsp), %rdi
callq 0x3558
leaq 0xa0(%rsp), %rdi
callq 0x3558
leaq 0xc8(%rsp), %rdi
callq 0x3558
leaq 0xf0(%rsp), %rdi
callq 0x3558
leaq 0x118(%rsp), %rdi
callq 0x3558
leaq 0x140(%rsp), %rdi
callq 0x3558
leaq 0x168(%rsp), %rdi
callq 0x3558
leaq 0x190(%rsp), %rdi
callq 0x3558
leaq 0x1b8(%rsp), %rdi
callq 0x3558
leaq 0x1e0(%rsp), %rdi
callq 0x3558
leaq 0x208(%rsp), %rdi
callq 0x3558
leaq 0x230(%rsp), %rdi
callq 0x3558
leaq 0x258(%rsp), %rdi
callq 0x3558
leaq 0x280(%rsp), %rdi
callq 0x3558
leaq 0x2a8(%rsp), %rdi
callq 0x3558
leaq 0x2d0(%rsp), %rdi
callq 0x3558
leaq 0x2f8(%rsp), %rdi
callq 0x3558
movq %rbx, %rdi
callq 0x21c0