// File: /workspace/github_cpp_makefile_star2_O1/pdx-cs-tutors[P]pdp/tests/cll/cll_insertion_tests.cpp
// Function: CLLInsertionTests::CLLInsertionTests()
CLLInsertionTests::CLLInsertionTests() {
    test("append", [=] {
        call = "append(rear, 1)";
        initialize({3, 2});
        retval = new int(append(rear, 1));
        expectList({3, 2, 1});
        expectReturn(1);
    });
    test("append", [=] {
        call = "append(rear, 1)";
        retval = new int(append(rear, 1));
        expectList({1});
        expectReturn(1);
    });

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

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

    test("prepend_unique", [=] {
        call = "prepend_unique(rear, 7)";
        initialize({6, 1});
        retval = new int(prepend_unique(rear, 7));
        expectList({7, 6, 1});
        expectReturn(1);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(rear, 7)";
        initialize({8, 7, 5});
        retval = new int(prepend_unique(rear, 7));
        expectList({8, 7, 5});
        expectReturn(0);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(rear, 7)";
        retval = new int(prepend_unique(rear, 7));
        expectList({7});
        expectReturn(1);
    });

    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 3)";
        initialize({1, 4, 5});
        retval = new int(insert_ordered(rear, 3));
        expectList({1, 3, 4, 5});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 1)";
        initialize({3, 4, 5});
        retval = new int(insert_ordered(rear, 1));
        expectList({1, 3, 4, 5});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 5)";
        initialize({1, 3, 4});
        retval = new int(insert_ordered(rear, 5));
        expectList({1, 3, 4, 5});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 1)";
        retval = new int(insert_ordered(rear, 1));
        expectList({1});
        expectReturn(1);
    });
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x388, %rsp            # imm = 0x388
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 0x10938(%rip), %rax     # 0x1cfc8
addq $0x10, %rax
movq %rax, (%rdi)
leaq -0x390(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x9a67(%rip), %rsi      # 0x16110
leaq 0x9a66(%rip), %rdx      # 0x16116
leaq -0x3a0(%rbp), %rdi
callq 0xa230
leaq -0x1e0(%rbp), %rdx
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xa97(%rip), %rax       # 0xd16e
movq %rax, 0x18(%rdx)
leaq 0xb40(%rip), %rax       # 0xd222
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x3a0(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x1d0(%rbp), %rax
testq %rax, %rax
je 0xc713
leaq -0x1e0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x3a0(%rbp), %rdi
cmpq %r15, %rdi
je 0xc724
callq 0xa580
leaq -0x370(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x99da(%rip), %rsi      # 0x16110
leaq 0x99d9(%rip), %rdx      # 0x16116
leaq -0x380(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x1c0(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xae8(%rip), %rax       # 0xd24c
movq %rax, 0x18(%rdx)
leaq 0xb69(%rip), %rax       # 0xd2d8
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x380(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x1b0(%rbp), %rax
testq %rax, %rax
je 0xc7a0
leaq -0x1c0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x380(%rbp), %rdi
cmpq %r15, %rdi
je 0xc7b1
callq 0xa580
leaq -0x350(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x9954(%rip), %rsi      # 0x16117
leaq 0x995a(%rip), %rdx      # 0x16124
leaq -0x360(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x1a0(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xb11(%rip), %rax       # 0xd302
movq %rax, 0x18(%rdx)
leaq 0xbbe(%rip), %rax       # 0xd3ba
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x360(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x190(%rbp), %rax
testq %rax, %rax
je 0xc82d
leaq -0x1a0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x360(%rbp), %rdi
cmpq %r15, %rdi
je 0xc83e
callq 0xa580
leaq -0x330(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x98c7(%rip), %rsi      # 0x16117
leaq 0x98cd(%rip), %rdx      # 0x16124
leaq -0x340(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x180(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xb66(%rip), %rax       # 0xd3e4
movq %rax, 0x18(%rdx)
leaq 0xc11(%rip), %rax       # 0xd49a
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x340(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x170(%rbp), %rax
testq %rax, %rax
je 0xc8ba
leaq -0x180(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x340(%rbp), %rdi
cmpq %r15, %rdi
je 0xc8cb
callq 0xa580
leaq -0x310(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x983a(%rip), %rsi      # 0x16117
leaq 0x9840(%rip), %rdx      # 0x16124
leaq -0x320(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x160(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xbb9(%rip), %rax       # 0xd4c4
movq %rax, 0x18(%rdx)
leaq 0xc3a(%rip), %rax       # 0xd550
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x320(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x150(%rbp), %rax
testq %rax, %rax
je 0xc947
leaq -0x160(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x320(%rbp), %rdi
cmpq %r15, %rdi
je 0xc958
callq 0xa580
leaq -0x2f0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x97bb(%rip), %rsi      # 0x16125
leaq 0x97bb(%rip), %rdx      # 0x1612c
leaq -0x300(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x140(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xbe2(%rip), %rax       # 0xd57a
movq %rax, 0x18(%rdx)
leaq 0xc63(%rip), %rax       # 0xd606
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x300(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x130(%rbp), %rax
testq %rax, %rax
je 0xc9d4
leaq -0x140(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x300(%rbp), %rdi
cmpq %r15, %rdi
je 0xc9e5
callq 0xa580
leaq -0x2d0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x972e(%rip), %rsi      # 0x16125
leaq 0x972e(%rip), %rdx      # 0x1612c
leaq -0x2e0(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x120(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xc0b(%rip), %rax       # 0xd630
movq %rax, 0x18(%rdx)
leaq 0xcb4(%rip), %rax       # 0xd6e4
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x2e0(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x110(%rbp), %rax
testq %rax, %rax
je 0xca61
leaq -0x120(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2e0(%rbp), %rdi
cmpq %r15, %rdi
je 0xca72
callq 0xa580
leaq -0x2b0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x96a9(%rip), %rsi      # 0x1612d
leaq 0x96b0(%rip), %rdx      # 0x1613b
leaq -0x2c0(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x100(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xc5c(%rip), %rax       # 0xd70e
movq %rax, 0x18(%rdx)
leaq 0xd0b(%rip), %rax       # 0xd7c8
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x2c0(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0xf0(%rbp), %rax
testq %rax, %rax
je 0xcaee
leaq -0x100(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2c0(%rbp), %rdi
cmpq %r15, %rdi
je 0xcaff
callq 0xa580
leaq -0x290(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x961c(%rip), %rsi      # 0x1612d
leaq 0x9623(%rip), %rdx      # 0x1613b
leaq -0x2a0(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0xe0(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xcb3(%rip), %rax       # 0xd7f2
movq %rax, 0x18(%rdx)
leaq 0xd60(%rip), %rax       # 0xd8aa
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x2a0(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0xd0(%rbp), %rax
testq %rax, %rax
je 0xcb7b
leaq -0xe0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2a0(%rbp), %rdi
cmpq %r15, %rdi
je 0xcb8c
callq 0xa580
leaq -0x270(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x958f(%rip), %rsi      # 0x1612d
leaq 0x9596(%rip), %rdx      # 0x1613b
leaq -0x280(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0xc0(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xd08(%rip), %rax       # 0xd8d4
movq %rax, 0x18(%rdx)
leaq 0xd89(%rip), %rax       # 0xd960
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x280(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0xcc08
leaq -0xc0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x280(%rbp), %rdi
cmpq %r15, %rdi
je 0xcc19
callq 0xa580
leaq -0x250(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x9511(%rip), %rsi      # 0x1613c
leaq 0x9518(%rip), %rdx      # 0x1614a
leaq -0x260(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0xa0(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xd31(%rip), %rax       # 0xd98a
movq %rax, 0x18(%rdx)
leaq 0xddc(%rip), %rax       # 0xda40
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x260(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x90(%rbp), %rax
testq %rax, %rax
je 0xcc95
leaq -0xa0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x260(%rbp), %rdi
cmpq %r15, %rdi
je 0xcca6
callq 0xa580
leaq -0x230(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x9484(%rip), %rsi      # 0x1613c
leaq 0x948b(%rip), %rdx      # 0x1614a
leaq -0x240(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x80(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xd87(%rip), %rax       # 0xda6a
movq %rax, 0x18(%rdx)
leaq 0xe32(%rip), %rax       # 0xdb20
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x240(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x70(%rbp), %rax
testq %rax, %rax
je 0xcd19
leaq -0x80(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x240(%rbp), %rdi
cmpq %r15, %rdi
je 0xcd2a
callq 0xa580
leaq -0x210(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x9400(%rip), %rsi      # 0x1613c
leaq 0x9407(%rip), %rdx      # 0x1614a
leaq -0x220(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x60(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xde3(%rip), %rax       # 0xdb4a
movq %rax, 0x18(%rdx)
leaq 0xe8e(%rip), %rax       # 0xdc00
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x220(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x50(%rbp), %rax
testq %rax, %rax
je 0xcd9d
leaq -0x60(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x220(%rbp), %rdi
cmpq %r15, %rdi
je 0xcdae
callq 0xa580
leaq -0x1f0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x937c(%rip), %rsi      # 0x1613c
leaq 0x9383(%rip), %rdx      # 0x1614a
leaq -0x200(%rbp), %rdi
callq 0xa230
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movq %rbx, (%rdx)
leaq 0xe3f(%rip), %rax       # 0xdc2a
movq %rax, 0x18(%rdx)
leaq 0xec0(%rip), %rax       # 0xdcb6
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x200(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
movq -0x30(%rbp), %rax
testq %rax, %rax
je 0xce21
leaq -0x40(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0xce32
callq 0xa580
addq $0x388, %rsp            # imm = 0x388
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
jmp 0xd153
movq %rax, %r14
movq -0x30(%rbp), %rax
testq %rax, %rax
je 0xcea0
leaq -0x40(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x200(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x50(%rbp), %rax
testq %rax, %rax
je 0xced0
leaq -0x60(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x220(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x70(%rbp), %rax
testq %rax, %rax
je 0xcf00
leaq -0x80(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x240(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x90(%rbp), %rax
testq %rax, %rax
je 0xcf36
leaq -0xa0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x260(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0xb0(%rbp), %rax
testq %rax, %rax
je 0xcf6c
leaq -0xc0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x280(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0xd0(%rbp), %rax
testq %rax, %rax
je 0xcfa2
leaq -0xe0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2a0(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0xf0(%rbp), %rax
testq %rax, %rax
je 0xcfd8
leaq -0x100(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2c0(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x110(%rbp), %rax
testq %rax, %rax
je 0xd00e
leaq -0x120(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x2e0(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x130(%rbp), %rax
testq %rax, %rax
je 0xd044
leaq -0x140(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x300(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x150(%rbp), %rax
testq %rax, %rax
je 0xd07a
leaq -0x160(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x320(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x170(%rbp), %rax
testq %rax, %rax
je 0xd0b0
leaq -0x180(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x340(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x190(%rbp), %rax
testq %rax, %rax
je 0xd0e6
leaq -0x1a0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x360(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x1b0(%rbp), %rax
testq %rax, %rax
je 0xd113
leaq -0x1c0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x380(%rbp), %rdi
jmp 0xd147
jmp 0xd153
jmp 0xd15b
movq %rax, %r14
movq -0x1d0(%rbp), %rax
testq %rax, %rax
je 0xd140
leaq -0x1e0(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0x3a0(%rbp), %rdi
cmpq %r15, %rdi
je 0xd15e
callq 0xa580
jmp 0xd15e
movq %rax, %rdi
callq 0xbb5e
movq %rax, %r14
movq %rbx, %rdi
callq 0xa460
movq %r14, %rdi
callq 0xa9a0