// File: /workspace/github_cpp_makefile_star2_O3/pdx-cs-tutors[P]pdp/tests/lll/lll_insertion_tests.cpp
// Function: LLLInsertionTests::LLLInsertionTests()
LLLInsertionTests::LLLInsertionTests() {
    test("append", [=] {
        call = "append(head, 1)";
        initialize({3, 2});
        append(head, 1);
        expectList({3, 2, 1});
    });
    test("append", [=] {
        call = "append(head, 1)";
        retval = new int(append(head, 1));
        expectList({1});
        expectReturn(1);
    });

    test("append_unique", [=] {
        call = "append_unique(1)";
        retval = new int(append_unique(head, 1));
        expectList({1});
        expectReturn(1);
    });
    test("append_unique", [=] {
        call = "append_unique(1)";
        initialize({4, 1, 8});
        retval = new int(append_unique(head, 1));
        expectList({4, 1, 8});
        expectReturn(0);
    });
    test("append_unique", [=] {
        call = "append_unique(5)";
        initialize({3, 2, 2});
        retval = new int(append_unique(head, 5));
        expectList({3, 2, 2, 5});
        expectReturn(1);
    });

    test("prepend", [=] {
        call = "prepend(head, 3)";
        initialize({2, 9, 0});
        retval = new int(prepend(head, 3));
        expectList({3, 2, 9, 0});
        expectReturn(1);
    });
    test("prepend", [=] {
        call = "prepend(head, 3)";
        retval = new int(prepend(head, 3));
        expectList({3});
        expectReturn(1);
    });

    test("prepend_unique", [=] {
        call = "prepend_unique(head, 2)";
        retval = new int(prepend_unique(head, 2));
        expectList({2});
        expectReturn(1);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(head, 2)";
        initialize({2});
        retval = new int(prepend_unique(head, 2));
        expectList({2});
        expectReturn(0);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(head, 2)";
        initialize({3, 4, 1});
        retval = new int(prepend_unique(head, 2));
        expectList({2, 3, 4, 1});
        expectReturn(1);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(head, 2)";
        initialize({9, 7, 2});
        retval = new int(prepend_unique(head, 2));
        expectList({9, 7, 2});
        expectReturn(0);
    });

    test("insert_ordered", [=] {
        call = "insert_ordered(head, 9)";
        initialize({1, 2, 4});
        retval = new int(insert_ordered(head, 9));
        expectList({1, 2, 4, 9});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(head, 9)";
        initialize({2, 9, 10});
        retval = new int(insert_ordered(head, 9));
        expectList({2, 9, 9, 10});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(head, 9)";
        initialize({10, 11});
        retval = new int(insert_ordered(head, 9));
        expectList({9, 10, 11});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(head, 9)";
        retval = new int(insert_ordered(head, 9));
        expectList({9});
        expectReturn(1);
    });
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x3c8, %rsp            # imm = 0x3C8
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movl $0x0, 0x10(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rax, 0x28(%rdi)
leaq 0x68(%rdi), %rax
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x40(%rdi)
movq %rax, 0x58(%rdi)
movq %rcx, 0x60(%rdi)
movb $0x0, 0x68(%rdi)
movups %xmm0, 0x80(%rdi)
movq %rcx, 0x90(%rdi)
movq 0xca2c(%rip), %rax      # 0x1cfc0
addq $0x10, %rax
movq %rax, (%rdi)
leaq -0x3c8(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5b63(%rip), %rsi      # 0x16110
leaq 0x5b62(%rip), %rdx      # 0x16116
leaq -0x3d8(%rbp), %rdi
callq 0xa220
leaq -0x3b8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xb43(%rip), %rax       # 0x1111c
movq %rax, 0x18(%rdx)
leaq 0xbbc(%rip), %rax       # 0x111a0
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x3d8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x3a8(%rbp), %rax
testq %rax, %rax
je 0x10615
leaq -0x3b8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x3d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x10626
callq 0xa570
leaq -0x388(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5ad8(%rip), %rsi      # 0x16110
leaq 0x5ad7(%rip), %rdx      # 0x16116
leaq -0x398(%rbp), %rdi
callq 0xa220
leaq -0x378(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xb66(%rip), %rax       # 0x111ca
movq %rax, 0x18(%rdx)
leaq 0xbe7(%rip), %rax       # 0x11256
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x398(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x368(%rbp), %rax
testq %rax, %rax
je 0x106a0
leaq -0x378(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x398(%rbp), %rdi
cmpq %r15, %rdi
je 0x106b1
callq 0xa570
leaq -0x348(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5a54(%rip), %rsi      # 0x16117
leaq 0x5a5a(%rip), %rdx      # 0x16124
leaq -0x358(%rbp), %rdi
callq 0xa220
leaq -0x338(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xb91(%rip), %rax       # 0x11280
movq %rax, 0x18(%rdx)
leaq 0xc12(%rip), %rax       # 0x1130c
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x358(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x328(%rbp), %rax
testq %rax, %rax
je 0x1072b
leaq -0x338(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x358(%rbp), %rdi
cmpq %r15, %rdi
je 0x1073c
callq 0xa570
leaq -0x308(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x59c9(%rip), %rsi      # 0x16117
leaq 0x59cf(%rip), %rdx      # 0x16124
leaq -0x318(%rbp), %rdi
callq 0xa220
leaq -0x2f8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xbbc(%rip), %rax       # 0x11336
movq %rax, 0x18(%rdx)
leaq 0xc69(%rip), %rax       # 0x113ee
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x318(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x2e8(%rbp), %rax
testq %rax, %rax
je 0x107b6
leaq -0x2f8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x318(%rbp), %rdi
cmpq %r15, %rdi
je 0x107c7
callq 0xa570
leaq -0x2c8(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x593e(%rip), %rsi      # 0x16117
leaq 0x5944(%rip), %rdx      # 0x16124
leaq -0x2d8(%rbp), %rdi
callq 0xa220
leaq -0x2b8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xc13(%rip), %rax       # 0x11418
movq %rax, 0x18(%rdx)
leaq 0xcbe(%rip), %rax       # 0x114ce
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x2d8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x2a8(%rbp), %rax
testq %rax, %rax
je 0x10841
leaq -0x2b8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x10852
callq 0xa570
leaq -0x288(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x58c1(%rip), %rsi      # 0x16125
leaq 0x58c1(%rip), %rdx      # 0x1612c
leaq -0x298(%rbp), %rdi
callq 0xa220
leaq -0x278(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xc68(%rip), %rax       # 0x114f8
movq %rax, 0x18(%rdx)
leaq 0xd13(%rip), %rax       # 0x115ae
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x298(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x268(%rbp), %rax
testq %rax, %rax
je 0x108cc
leaq -0x278(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x108dd
callq 0xa570
leaq -0x248(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5836(%rip), %rsi      # 0x16125
leaq 0x5836(%rip), %rdx      # 0x1612c
leaq -0x258(%rbp), %rdi
callq 0xa220
leaq -0x238(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xcbd(%rip), %rax       # 0x115d8
movq %rax, 0x18(%rdx)
leaq 0xd3e(%rip), %rax       # 0x11664
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x258(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x228(%rbp), %rax
testq %rax, %rax
je 0x10957
leaq -0x238(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x10968
callq 0xa570
leaq -0x208(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x57b3(%rip), %rsi      # 0x1612d
leaq 0x57ba(%rip), %rdx      # 0x1613b
leaq -0x218(%rbp), %rdi
callq 0xa220
leaq -0x1f8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xce8(%rip), %rax       # 0x1168e
movq %rax, 0x18(%rdx)
leaq 0xd69(%rip), %rax       # 0x1171a
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x218(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x1e8(%rbp), %rax
testq %rax, %rax
je 0x109e2
leaq -0x1f8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x218(%rbp), %rdi
cmpq %r15, %rdi
je 0x109f3
callq 0xa570
leaq -0x1c8(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5728(%rip), %rsi      # 0x1612d
leaq 0x572f(%rip), %rdx      # 0x1613b
leaq -0x1d8(%rbp), %rdi
callq 0xa220
leaq -0x1b8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xd13(%rip), %rax       # 0x11744
movq %rax, 0x18(%rdx)
leaq 0xdaa(%rip), %rax       # 0x117e6
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x1d8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x1a8(%rbp), %rax
testq %rax, %rax
je 0x10a6d
leaq -0x1b8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x1d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x10a7e
callq 0xa570
leaq -0x188(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x569d(%rip), %rsi      # 0x1612d
leaq 0x56a4(%rip), %rdx      # 0x1613b
leaq -0x198(%rbp), %rdi
callq 0xa220
leaq -0x178(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xd54(%rip), %rax       # 0x11810
movq %rax, 0x18(%rdx)
leaq 0xdff(%rip), %rax       # 0x118c6
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x198(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x168(%rbp), %rax
testq %rax, %rax
je 0x10af8
leaq -0x178(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x198(%rbp), %rdi
cmpq %r15, %rdi
je 0x10b09
callq 0xa570
leaq -0x148(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5612(%rip), %rsi      # 0x1612d
leaq 0x5619(%rip), %rdx      # 0x1613b
leaq -0x158(%rbp), %rdi
callq 0xa220
leaq -0x138(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xda9(%rip), %rax       # 0x118f0
movq %rax, 0x18(%rdx)
leaq 0xe56(%rip), %rax       # 0x119a8
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x158(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x128(%rbp), %rax
testq %rax, %rax
je 0x10b83
leaq -0x138(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x158(%rbp), %rdi
cmpq %r15, %rdi
je 0x10b94
callq 0xa570
leaq -0x108(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5596(%rip), %rsi      # 0x1613c
leaq 0x559d(%rip), %rdx      # 0x1614a
leaq -0x118(%rbp), %rdi
callq 0xa220
leaq -0xf8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xe00(%rip), %rax       # 0x119d2
movq %rax, 0x18(%rdx)
leaq 0xeab(%rip), %rax       # 0x11a88
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x118(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0xe8(%rbp), %rax
testq %rax, %rax
je 0x10c0e
leaq -0xf8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x118(%rbp), %rdi
cmpq %r15, %rdi
je 0x10c1f
callq 0xa570
leaq -0xc8(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x550b(%rip), %rsi      # 0x1613c
leaq 0x5512(%rip), %rdx      # 0x1614a
leaq -0xd8(%rbp), %rdi
callq 0xa220
leaq -0xb8(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xe55(%rip), %rax       # 0x11ab2
movq %rax, 0x18(%rdx)
leaq 0xf00(%rip), %rax       # 0x11b68
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0xd8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0xa8(%rbp), %rax
testq %rax, %rax
je 0x10c99
leaq -0xb8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0x10caa
callq 0xa570
leaq -0x88(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5480(%rip), %rsi      # 0x1613c
leaq 0x5487(%rip), %rdx      # 0x1614a
leaq -0x98(%rbp), %rdi
callq 0xa220
leaq -0x78(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xead(%rip), %rax       # 0x11b92
movq %rax, 0x18(%rdx)
leaq 0xf5c(%rip), %rax       # 0x11c4c
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x98(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x68(%rbp), %rax
testq %rax, %rax
je 0x10d1b
leaq -0x78(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x98(%rbp), %rdi
cmpq %r15, %rdi
je 0x10d2c
callq 0xa570
leaq -0x48(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x5401(%rip), %rsi      # 0x1613c
leaq 0x5408(%rip), %rdx      # 0x1614a
leaq -0x58(%rbp), %rdi
callq 0xa220
leaq -0x38(%rbp), %rdx
movq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xf15(%rip), %rax       # 0x11c76
movq %rax, 0x18(%rdx)
leaq 0xf96(%rip), %rax       # 0x11d02
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x58(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x28(%rbp), %rax
testq %rax, %rax
je 0x10d94
leaq -0x38(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x58(%rbp), %rdi
cmpq %r15, %rdi
je 0x10da2
callq 0xa570
addq $0x3c8, %rsp            # imm = 0x3C8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
jmp 0x11101
movq %rax, %r14
movq -0x28(%rbp), %rax
testq %rax, %rax
je 0x10e15
leaq -0x38(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x58(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x68(%rbp), %rax
testq %rax, %rax
je 0x10e42
leaq -0x78(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x98(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0xa8(%rbp), %rax
testq %rax, %rax
je 0x10e78
leaq -0xb8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0xd8(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0xe8(%rbp), %rax
testq %rax, %rax
je 0x10eae
leaq -0xf8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x118(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x128(%rbp), %rax
testq %rax, %rax
je 0x10ee4
leaq -0x138(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x158(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x168(%rbp), %rax
testq %rax, %rax
je 0x10f1a
leaq -0x178(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x198(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x1a8(%rbp), %rax
testq %rax, %rax
je 0x10f50
leaq -0x1b8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x1d8(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x1e8(%rbp), %rax
testq %rax, %rax
je 0x10f86
leaq -0x1f8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x218(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x228(%rbp), %rax
testq %rax, %rax
je 0x10fbc
leaq -0x238(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x258(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x268(%rbp), %rax
testq %rax, %rax
je 0x10ff2
leaq -0x278(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x298(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x2a8(%rbp), %rax
testq %rax, %rax
je 0x11028
leaq -0x2b8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2d8(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x2e8(%rbp), %rax
testq %rax, %rax
je 0x1105e
leaq -0x2f8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x318(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x328(%rbp), %rax
testq %rax, %rax
je 0x11094
leaq -0x338(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x358(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x368(%rbp), %rax
testq %rax, %rax
je 0x110c1
leaq -0x378(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x398(%rbp), %rdi
jmp 0x110f5
jmp 0x11101
jmp 0x11109
movq %rax, %r14
movq -0x3a8(%rbp), %rax
testq %rax, %rax
je 0x110ee
leaq -0x3b8(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x3d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x1110c
callq 0xa570
jmp 0x1110c
movq %rax, %rdi
callq 0xbb4c
movq %rax, %r14
movq %rbx, %rdi
callq 0xa8c0
movq %r14, %rdi
callq 0xa990