// File: /workspace/github_cpp_makefile_star2_O2/shreyas-gopalakrishna[P]Concurrent-Skip-list/main.cpp
// Function: skiplist_combined_operations()
void skiplist_combined_operations(){

    int start = (rand() % static_cast<int>(numbers_insert.size() + 1));
    int end = start + (rand() % static_cast<int>(numbers_insert.size() - start + 1));
    cout << "Add: " << start << " " << end << endl;
    skiplist_add(start, end);

    start = (rand() % static_cast<int>(numbers_delete.size() + 1));
    end = start + (rand() % static_cast<int>(numbers_delete.size() - start + 1));
    cout << "Remove: " << start << " " << end << endl;
    skiplist_remove(start, end);

    start = (rand() % static_cast<int>(numbers_get.size() + 1));
    end = start + (rand() % static_cast<int>(numbers_get.size() - start + 1));
    cout << "Searching: " << start << " " << end << endl;
    skiplist_search(start, end);

    start = (rand() % static_cast<int>(numbers_insert.size() + 1));
    end = start + (rand() % static_cast<int>(numbers_insert.size() - start + 1));
    cout << "Range: " << start << " " << end << endl;
    skiplist_range(start, end);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
callq 0x2060
movq 0x72d0(%rip), %rcx      # 0xa298
subq 0x72c1(%rip), %rcx      # 0xa290
shrq $0x2, %rcx
incl %ecx
cltd
idivl %ecx
movl %edx, %ebx
callq 0x2060
movq 0x72b2(%rip), %rcx      # 0xa298
subq 0x72a3(%rip), %rcx      # 0xa290
shrq $0x2, %rcx
movslq %ebx, %r15
subl %r15d, %ecx
incl %ecx
cltd
idivl %ecx
movl %edx, %ebp
addl %r15d, %ebp
movq 0x6fc0(%rip), %rbx      # 0x9fc8
leaq 0x350e(%rip), %rsi      # 0x651d
movq %rbx, %rdi
callq 0x21e0
movq %rax, %rdi
movl %r15d, %esi
callq 0x2310
leaq 0x37f4(%rip), %r14      # 0x681d
movq %rax, %rdi
movq %r14, %rsi
callq 0x21e0
movq %rax, %rdi
movl %ebp, %esi
callq 0x2310
movq %rax, %rdi
callq 0x20f0
movslq %ebp, %rsi
movq %r15, %rdi
callq 0x2792
callq 0x2060
movq 0x7253(%rip), %rcx      # 0xa2b0
subq 0x7244(%rip), %rcx      # 0xa2a8
shrq $0x2, %rcx
incl %ecx
cltd
idivl %ecx
movl %edx, %ebp
callq 0x2060
movq 0x7235(%rip), %rcx      # 0xa2b0
subq 0x7226(%rip), %rcx      # 0xa2a8
shrq $0x2, %rcx
movslq %ebp, %r15
subl %r15d, %ecx
incl %ecx
cltd
idivl %ecx
movl %edx, %ebp
addl %r15d, %ebp
leaq 0x3486(%rip), %rsi      # 0x6523
movq %rbx, %rdi
callq 0x21e0
movq %rax, %rdi
movl %r15d, %esi
callq 0x2310
movq %rax, %rdi
movq %r14, %rsi
callq 0x21e0
movq %rax, %rdi
movl %ebp, %esi
callq 0x2310
movq %rax, %rdi
callq 0x20f0
movslq %ebp, %rsi
movq %r15, %rdi
callq 0x284b
callq 0x2060
movq 0x71e4(%rip), %rcx      # 0xa2c8
subq 0x71d5(%rip), %rcx      # 0xa2c0
shrq $0x2, %rcx
incl %ecx
cltd
idivl %ecx
movl %edx, %ebp
callq 0x2060
movq 0x71c6(%rip), %rcx      # 0xa2c8
subq 0x71b7(%rip), %rcx      # 0xa2c0
shrq $0x2, %rcx
movslq %ebp, %r15
subl %r15d, %ecx
incl %ecx
cltd
idivl %ecx
movl %edx, %ebp
addl %r15d, %ebp
leaq 0x3408(%rip), %rsi      # 0x652c
movq %rbx, %rdi
callq 0x21e0
movq %rax, %rdi
movl %r15d, %esi
callq 0x2310
movq %rax, %rdi
movq %r14, %rsi
callq 0x21e0
movq %rax, %rdi
movl %ebp, %esi
callq 0x2310
movq %rax, %rdi
callq 0x20f0
movslq %ebp, %rsi
movq %r15, %rdi
callq 0x28ac
callq 0x2060
movq 0x712d(%rip), %rcx      # 0xa298
subq 0x711e(%rip), %rcx      # 0xa290
shrq $0x2, %rcx
incl %ecx
cltd
idivl %ecx
movl %edx, %r15d
callq 0x2060
movq 0x710e(%rip), %rcx      # 0xa298
subq 0x70ff(%rip), %rcx      # 0xa290
shrq $0x2, %rcx
subl %r15d, %ecx
incl %ecx
cltd
idivl %ecx
leal (%rdx,%r15), %ebp
leaq 0x3390(%rip), %rsi      # 0x6538
movq %rbx, %rdi
callq 0x21e0
movq %rax, %rdi
movl %r15d, %esi
callq 0x2310
movq %rax, %rdi
movq %r14, %rsi
callq 0x21e0
movq %rax, %rdi
movl %ebp, %esi
callq 0x2310
movq %rax, %rdi
callq 0x20f0
movl %r15d, %edi
movl %ebp, %esi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x299e