// File: /workspace/github_cpp_makefile_star2_O3/shreyas-gopalakrishna[P]Concurrent-Skip-list/main.cpp
// Function: generate_input(int)
void generate_input(int max_number){
    // generating insert data
    for(int i = 1; i <= max_number; i++){
        numbers_insert.push_back(i);
    }

    // generating delete data
    for(size_t i = 0; i < numbers_insert.size(); i++){
        if( rand() % 4 == 0 ){
            numbers_delete.push_back(numbers_insert[i]);
        }
    }

    // generating search data
    for(size_t i = 0; i < numbers_insert.size(); i++){
        if( rand() % 4 == 0 ){
            numbers_get.push_back(numbers_insert[i]);
        }
    }

    // generating range data
    for(size_t i = 0; i < num_threads; i++){
        int a = (rand() % static_cast<int>(max_number + 1));
        int b = a + (rand() % static_cast<int>(max_number - a + 1));
        numbers_range.push_back(make_pair(a,b));
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movl %edi, %ebx
movl $0x1, 0x4(%rsp)
movq 0x8bc7(%rip), %rsi      # 0xb2a8
testl %edi, %edi
jle 0x2739
movl $0x1, %ecx
movq 0x8bbf(%rip), %rax      # 0xb2b0
leaq 0x8ba8(%rip), %r14      # 0xb2a0
leaq 0x4(%rsp), %r15
cmpq %rax, %rsi
je 0x2711
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8b99(%rip)      # 0xb2a8
jmp 0x272a
movq %r14, %rdi
movq %r15, %rdx
callq 0x427c
movq 0x8b85(%rip), %rsi      # 0xb2a8
movq 0x8b86(%rip), %rax      # 0xb2b0
movl 0x4(%rsp), %edx
leal 0x1(%rdx), %ecx
movl %ecx, 0x4(%rsp)
cmpl %ebx, %edx
jl 0x26fd
cmpq 0x8b60(%rip), %rsi      # 0xb2a0
je 0x2824
xorl %r15d, %r15d
leaq 0x8b68(%rip), %r14      # 0xb2b8
xorl %r12d, %r12d
callq 0x2070
movq 0x8b41(%rip), %rcx      # 0xb2a0
testb $0x3, %al
jne 0x2797
leaq (%rcx,%r15), %rdx
movq 0x8b52(%rip), %rsi      # 0xb2c0
cmpq 0x8b53(%rip), %rsi      # 0xb2c8
je 0x2788
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8b3a(%rip)      # 0xb2c0
jmp 0x2797
movq %r14, %rdi
callq 0x427c
movq 0x8b09(%rip), %rcx      # 0xb2a0
incq %r12
movq 0x8b07(%rip), %rax      # 0xb2a8
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x2, %rdx
addq $0x4, %r15
cmpq %rdx, %r12
jb 0x2753
cmpq %rcx, %rax
je 0x2824
xorl %r15d, %r15d
leaq 0x8b0d(%rip), %r14      # 0xb2d0
xorl %r12d, %r12d
callq 0x2070
movq 0x8ace(%rip), %rcx      # 0xb2a0
testb $0x3, %al
jne 0x280a
leaq (%rcx,%r15), %rdx
movq 0x8af7(%rip), %rsi      # 0xb2d8
cmpq 0x8af8(%rip), %rsi      # 0xb2e0
je 0x27fb
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8adf(%rip)      # 0xb2d8
jmp 0x280a
movq %r14, %rdi
callq 0x427c
movq 0x8a96(%rip), %rcx      # 0xb2a0
incq %r12
movq 0x8a94(%rip), %rax      # 0xb2a8
subq %rcx, %rax
sarq $0x2, %rax
addq $0x4, %r15
cmpq %rax, %r12
jb 0x27c6
cmpq $0x0, 0x89b4(%rip)      # 0xb1e0
je 0x287d
incl %ebx
xorl %r13d, %r13d
leaq 0x8aae(%rip), %r14      # 0xb2e8
leaq 0x8(%rsp), %r15
callq 0x2070
cltd
idivl %ebx
movl %edx, %r12d
callq 0x2070
movl %ebx, %ecx
subl %r12d, %ecx
cltd
idivl %ecx
addl %r12d, %edx
shlq $0x20, %rdx
orq %rdx, %r12
movq %r12, 0x8(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x43b8
incq %r13
cmpq 0x8965(%rip), %r13      # 0xb1e0
jb 0x283f
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq