// File: /workspace/github_c_makefile_star2_O0/vidarr[P]ringbuffer/test/test_helper.c
// Function: test_pop
void test_pop() {

    int a = 1;
    int b = 2;
    int c = 3;

    Ringbuffer* buffer = 0;

    buffer = create(1, free_item, free_item_additional_arg);

    assert(buffer->add(buffer, &a));
    assert(&a == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    assert(buffer->add(buffer, &a));
    assert(buffer->add(buffer, &b));
    assert(&b == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    assert(buffer->add(buffer, &a));
    assert(buffer->add(buffer, &b));
    assert(buffer->add(buffer, &c));
    assert(&c == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    buffer = buffer->free(buffer);


    buffer = create(2, free_item, free_item_additional_arg);

    assert(buffer->add(buffer, &a));
    assert(&a == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    assert(buffer->add(buffer, &a));
    assert(buffer->add(buffer, &b));
    assert(&a == buffer->pop(buffer));
    assert(&b == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    assert(buffer->add(buffer, &a));
    assert(buffer->add(buffer, &b));
    assert(buffer->add(buffer, &c));
    assert(&b == buffer->pop(buffer));
    assert(&c == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    assert(buffer->add(buffer, &a));
    assert(buffer->add(buffer, &b));
    assert(&a == buffer->pop(buffer));
    assert(buffer->add(buffer, &c));
    assert(&b == buffer->pop(buffer));
    assert(buffer->add(buffer, &a));
    assert(&c == buffer->pop(buffer));
    assert(&a == buffer->pop(buffer));
    assert(0 == buffer->pop(buffer));

    buffer = buffer->free(buffer);

    fprintf(stdout, "pop() OK\n");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x1, -0x4(%rbp)
movl $0x2, -0x8(%rbp)
movl $0x3, -0xc(%rbp)
movq $0x0, -0x18(%rbp)
movq 0x3e8c(%rip), %rax      # 0x6058
movq 0x3e95(%rip), %rsi      # 0x6068
movq 0x3e96(%rip), %rdx      # 0x6070
movl $0x1, %edi
callq *%rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x21fd
jmp 0x21ff
jmp 0x221e
leaq 0x21c1(%rip), %rdi      # 0x43c7
leaq 0x214a(%rip), %rsi      # 0x4357
movl $0x7a, %edx
leaq 0x2210(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x4(%rbp), %rax
cmpq %rcx, %rax
jne 0x223a
jmp 0x2259
leaq 0x21f8(%rip), %rdi      # 0x4439
leaq 0x210f(%rip), %rsi      # 0x4357
movl $0x7b, %edx
leaq 0x21d5(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x2273
jmp 0x2292
leaq 0x21d9(%rip), %rdi      # 0x4453
leaq 0x20d6(%rip), %rsi      # 0x4357
movl $0x7c, %edx
leaq 0x219c(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x22ac
jmp 0x22cb
leaq 0x21a0(%rip), %rdi      # 0x4453
leaq 0x209d(%rip), %rsi      # 0x4357
movl $0x7d, %edx
leaq 0x2163(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x22e5
jmp 0x2304
leaq 0x2167(%rip), %rdi      # 0x4453
leaq 0x2064(%rip), %rsi      # 0x4357
movl $0x7e, %edx
leaq 0x212a(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x231c
jmp 0x231e
jmp 0x233d
leaq 0x20a2(%rip), %rdi      # 0x43c7
leaq 0x202b(%rip), %rsi      # 0x4357
movl $0x80, %edx
leaq 0x20f1(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2355
jmp 0x2357
jmp 0x2376
leaq 0x2091(%rip), %rdi      # 0x43ef
leaq 0x1ff2(%rip), %rsi      # 0x4357
movl $0x81, %edx
leaq 0x20b8(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x8(%rbp), %rax
cmpq %rcx, %rax
jne 0x2392
jmp 0x23b1
leaq 0x20d3(%rip), %rdi      # 0x446c
leaq 0x1fb7(%rip), %rsi      # 0x4357
movl $0x82, %edx
leaq 0x207d(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x23cb
jmp 0x23ea
leaq 0x2081(%rip), %rdi      # 0x4453
leaq 0x1f7e(%rip), %rsi      # 0x4357
movl $0x83, %edx
leaq 0x2044(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2402
jmp 0x2404
jmp 0x2423
leaq 0x1fbc(%rip), %rdi      # 0x43c7
leaq 0x1f45(%rip), %rsi      # 0x4357
movl $0x85, %edx
leaq 0x200b(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x243b
jmp 0x243d
jmp 0x245c
leaq 0x1fab(%rip), %rdi      # 0x43ef
leaq 0x1f0c(%rip), %rsi      # 0x4357
movl $0x86, %edx
leaq 0x1fd2(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2474
jmp 0x2476
jmp 0x2495
leaq 0x1f8a(%rip), %rdi      # 0x4407
leaq 0x1ed3(%rip), %rsi      # 0x4357
movl $0x87, %edx
leaq 0x1f99(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0xc(%rbp), %rax
cmpq %rcx, %rax
jne 0x24b1
jmp 0x24d0
leaq 0x1fce(%rip), %rdi      # 0x4486
leaq 0x1e98(%rip), %rsi      # 0x4357
movl $0x88, %edx
leaq 0x1f5e(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x24ea
jmp 0x2509
leaq 0x1f62(%rip), %rdi      # 0x4453
leaq 0x1e5f(%rip), %rsi      # 0x4357
movl $0x89, %edx
leaq 0x1f25(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x2523
jmp 0x2542
leaq 0x1f29(%rip), %rdi      # 0x4453
leaq 0x1e26(%rip), %rsi      # 0x4357
movl $0x8a, %edx
leaq 0x1eec(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x255c
jmp 0x257b
leaq 0x1ef0(%rip), %rdi      # 0x4453
leaq 0x1ded(%rip), %rsi      # 0x4357
movl $0x8b, %edx
leaq 0x1eb3(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, -0x18(%rbp)
movq 0x3ac4(%rip), %rax      # 0x6058
movq 0x3acd(%rip), %rsi      # 0x6068
movq 0x3ace(%rip), %rdx      # 0x6070
movl $0x2, %edi
callq *%rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x25c5
jmp 0x25c7
jmp 0x25e6
leaq 0x1df9(%rip), %rdi      # 0x43c7
leaq 0x1d82(%rip), %rsi      # 0x4357
movl $0x92, %edx
leaq 0x1e48(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x4(%rbp), %rax
cmpq %rcx, %rax
jne 0x2602
jmp 0x2621
leaq 0x1e30(%rip), %rdi      # 0x4439
leaq 0x1d47(%rip), %rsi      # 0x4357
movl $0x93, %edx
leaq 0x1e0d(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x263b
jmp 0x265a
leaq 0x1e11(%rip), %rdi      # 0x4453
leaq 0x1d0e(%rip), %rsi      # 0x4357
movl $0x94, %edx
leaq 0x1dd4(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x2674
jmp 0x2693
leaq 0x1dd8(%rip), %rdi      # 0x4453
leaq 0x1cd5(%rip), %rsi      # 0x4357
movl $0x95, %edx
leaq 0x1d9b(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x26ad
jmp 0x26cc
leaq 0x1d9f(%rip), %rdi      # 0x4453
leaq 0x1c9c(%rip), %rsi      # 0x4357
movl $0x96, %edx
leaq 0x1d62(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x26e4
jmp 0x26e6
jmp 0x2705
leaq 0x1cda(%rip), %rdi      # 0x43c7
leaq 0x1c63(%rip), %rsi      # 0x4357
movl $0x98, %edx
leaq 0x1d29(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x271d
jmp 0x271f
jmp 0x273e
leaq 0x1cc9(%rip), %rdi      # 0x43ef
leaq 0x1c2a(%rip), %rsi      # 0x4357
movl $0x99, %edx
leaq 0x1cf0(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x4(%rbp), %rax
cmpq %rcx, %rax
jne 0x275a
jmp 0x2779
leaq 0x1cd8(%rip), %rdi      # 0x4439
leaq 0x1bef(%rip), %rsi      # 0x4357
movl $0x9a, %edx
leaq 0x1cb5(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x8(%rbp), %rax
cmpq %rcx, %rax
jne 0x2795
jmp 0x27b4
leaq 0x1cd0(%rip), %rdi      # 0x446c
leaq 0x1bb4(%rip), %rsi      # 0x4357
movl $0x9b, %edx
leaq 0x1c7a(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x27ce
jmp 0x27ed
leaq 0x1c7e(%rip), %rdi      # 0x4453
leaq 0x1b7b(%rip), %rsi      # 0x4357
movl $0x9c, %edx
leaq 0x1c41(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2805
jmp 0x2807
jmp 0x2826
leaq 0x1bb9(%rip), %rdi      # 0x43c7
leaq 0x1b42(%rip), %rsi      # 0x4357
movl $0x9e, %edx
leaq 0x1c08(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x283e
jmp 0x2840
jmp 0x285f
leaq 0x1ba8(%rip), %rdi      # 0x43ef
leaq 0x1b09(%rip), %rsi      # 0x4357
movl $0x9f, %edx
leaq 0x1bcf(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2877
jmp 0x2879
jmp 0x2898
leaq 0x1b87(%rip), %rdi      # 0x4407
leaq 0x1ad0(%rip), %rsi      # 0x4357
movl $0xa0, %edx
leaq 0x1b96(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x8(%rbp), %rax
cmpq %rcx, %rax
jne 0x28b4
jmp 0x28d3
leaq 0x1bb1(%rip), %rdi      # 0x446c
leaq 0x1a95(%rip), %rsi      # 0x4357
movl $0xa1, %edx
leaq 0x1b5b(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0xc(%rbp), %rax
cmpq %rcx, %rax
jne 0x28ef
jmp 0x290e
leaq 0x1b90(%rip), %rdi      # 0x4486
leaq 0x1a5a(%rip), %rsi      # 0x4357
movl $0xa2, %edx
leaq 0x1b20(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x2928
jmp 0x2947
leaq 0x1b24(%rip), %rdi      # 0x4453
leaq 0x1a21(%rip), %rsi      # 0x4357
movl $0xa3, %edx
leaq 0x1ae7(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x2961
jmp 0x2980
leaq 0x1aeb(%rip), %rdi      # 0x4453
leaq 0x19e8(%rip), %rsi      # 0x4357
movl $0xa4, %edx
leaq 0x1aae(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x299a
jmp 0x29b9
leaq 0x1ab2(%rip), %rdi      # 0x4453
leaq 0x19af(%rip), %rsi      # 0x4357
movl $0xa5, %edx
leaq 0x1a75(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x29d3
jmp 0x29f2
leaq 0x1a79(%rip), %rdi      # 0x4453
leaq 0x1976(%rip), %rsi      # 0x4357
movl $0xa6, %edx
leaq 0x1a3c(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2a0a
jmp 0x2a0c
jmp 0x2a2b
leaq 0x19b4(%rip), %rdi      # 0x43c7
leaq 0x193d(%rip), %rsi      # 0x4357
movl $0xa8, %edx
leaq 0x1a03(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2a43
jmp 0x2a45
jmp 0x2a64
leaq 0x19a3(%rip), %rdi      # 0x43ef
leaq 0x1904(%rip), %rsi      # 0x4357
movl $0xa9, %edx
leaq 0x19ca(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x4(%rbp), %rax
cmpq %rcx, %rax
jne 0x2a80
jmp 0x2a9f
leaq 0x19b2(%rip), %rdi      # 0x4439
leaq 0x18c9(%rip), %rsi      # 0x4357
movl $0xaa, %edx
leaq 0x198f(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2ab7
jmp 0x2ab9
jmp 0x2ad8
leaq 0x1947(%rip), %rdi      # 0x4407
leaq 0x1890(%rip), %rsi      # 0x4357
movl $0xab, %edx
leaq 0x1956(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x8(%rbp), %rax
cmpq %rcx, %rax
jne 0x2af4
jmp 0x2b13
leaq 0x1971(%rip), %rdi      # 0x446c
leaq 0x1855(%rip), %rsi      # 0x4357
movl $0xac, %edx
leaq 0x191b(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x18(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq *%rax
testb $0x1, %al
jne 0x2b2b
jmp 0x2b2d
jmp 0x2b4c
leaq 0x1893(%rip), %rdi      # 0x43c7
leaq 0x181c(%rip), %rsi      # 0x4357
movl $0xad, %edx
leaq 0x18e2(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0xc(%rbp), %rax
cmpq %rcx, %rax
jne 0x2b68
jmp 0x2b87
leaq 0x1917(%rip), %rdi      # 0x4486
leaq 0x17e1(%rip), %rsi      # 0x4357
movl $0xae, %edx
leaq 0x18a7(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
leaq -0x4(%rbp), %rax
cmpq %rcx, %rax
jne 0x2ba3
jmp 0x2bc2
leaq 0x188f(%rip), %rdi      # 0x4439
leaq 0x17a6(%rip), %rsi      # 0x4357
movl $0xaf, %edx
leaq 0x186c(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x2bdc
jmp 0x2bfb
leaq 0x1870(%rip), %rdi      # 0x4453
leaq 0x176d(%rip), %rsi      # 0x4357
movl $0xb0, %edx
leaq 0x1833(%rip), %rcx      # 0x4429
callq 0x1040
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x18(%rbp), %rdi
callq *%rax
movq %rax, -0x18(%rbp)
movq 0x33c4(%rip), %rax      # 0x5fd8
movq (%rax), %rdi
leaq 0x1882(%rip), %rsi      # 0x44a0
movb $0x0, %al
callq 0x1070
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)