// File: /workspace/github_c_makefile_star2_O2/yangtau[P]hedgehog/src/test/hashset_test.c
// Function: test_hashset
void test_hashset() {
    struct hg_hashset set;
    hg_hashset_init(&set, 2, hash_int, eq_int);

    const size_t N = 192 * 1024;

    // put and contains
    duration_t start = now();
    for (size_t i = 0; i < N; i++) {
        hg_hashset_put(&set, (void*)(uint64_t)i);
    }
    duration_t elapsed = since(start);
    test_println("hashset put: %zu items in %s", N, duration2str(elapsed, MACROSEC));
    test_println("hashset put %zu ns/op", (elapsed / MACROSEC * 1000) / N);
    test_println("hashset load factor: %f", (float)set.len / set.capacity);
    test_println("hashset cap: %zu", set.capacity);

    test_assert(hg_hashset_len(&set) == N);

    // get
    start = now();
    for (size_t i = 0; i < N; i++) {
        test_assert(hg_hashset_get(&set, (void*)(uint64_t)i) == (void*)(uint64_t)i);
    }
    elapsed = since(start);
    test_println("hashset get %zu ns/op", (elapsed / MACROSEC * 1000) / N);

    // contains
    start = now();
    for (size_t i = 0; i < N; i++) {
        test_assert(hg_hashset_contains(&set, (void*)(uint64_t)i));
    }
    elapsed = since(start);
    test_println("hashset contains %zu ns/op", (elapsed / MACROSEC * 1000) / N);

    // remove
    start = now();
    for (size_t i = 0; i < N; i++) {
        test_assert(hg_hashset_remove(&set, (void*)(uint64_t)i) == (void*)(uint64_t)i);
    }
    elapsed = since(start);
    test_println("hashset remove %zu ns/op", (elapsed / MACROSEC * 1000) / N);

    test_assert(hg_hashset_len(&set) == 0);

    // put again
    for (size_t i = 0; i < N; i++) {
        test_assert(!hg_hashset_contains(&set, (void*)(uint64_t)i));
        hg_hashset_put(&set, (void*)(uint64_t)i);
        test_assert(hg_hashset_contains(&set, (void*)(uint64_t)i));
    }
    test_assert(hg_hashset_len(&set) == N);

    // remove even numbers
    for (size_t i = 0; i < N; i += 2) {
        test_assert(hg_hashset_remove(&set, (void*)(uint64_t)i) == (void*)(uint64_t)i);
        test_assert(!hg_hashset_contains(&set, (void*)(uint64_t)i));
    }
    test_assert(hg_hashset_len(&set) == N / 2);

    // remove odd numbers
    for (size_t i = 1; i < N; i += 2) {
        test_assert(hg_hashset_remove(&set, (void*)(uint64_t)i) == (void*)(uint64_t)i);
        test_assert(!hg_hashset_contains(&set, (void*)(uint64_t)i));
    }
    test_assert(hg_hashset_len(&set) == 0);

    // clear
    hg_hashset_clear(&set);
    test_assert(hg_hashset_len(&set) == 0);

    // get again (expect NULL)
    for (size_t i = 0; i < N; i++) {
        test_assert(hg_hashset_get(&set, (void*)(uint64_t)i) == NULL);
    }
    test_assert(hg_hashset_len(&set) == 0);

    // destroy & init again
    hg_hashset_destroy(&set);
    hg_hashset_init(&set, 16, hash_int, eq_int);

    // put 0 ~ N-1
    for (size_t i = 0; i < N; i++) {
        hg_hashset_put(&set, (void*)(uint64_t)i);
    }
    test_assert(hg_hashset_len(&set) == N);

    // put N~2N-1, remove 0~N-1
    for (size_t i = 0; i < N; i++) {
        uint64_t x = i + N;
        test_assert(hg_hashset_remove(&set, (void*)(uint64_t)i) == (void*)(uint64_t)i);
        hg_hashset_put(&set, (void*)x);

        test_assert(hg_hashset_contains(&set, (void*)x));
        test_assert(!hg_hashset_contains(&set, (void*)(uint64_t)i));
    }
    test_assert(hg_hashset_len(&set) == N);

    // put 0~N-1, remove N~2N-1
    for (size_t i = 0; i < N; i++) {
        uint64_t x = i + N;
        hg_hashset_put(&set, (void*)(uint64_t)i);
        test_assert(hg_hashset_remove(&set, (void*)x) == (void*)x);

        test_assert(hg_hashset_contains(&set, (void*)(uint64_t)i));
        test_assert(!hg_hashset_contains(&set, (void*)x));
    }
    test_assert(hg_hashset_len(&set) == N);

    // put N~2N-1
    for (size_t i = 0; i < N; i++) {
        uint64_t x = i + N;
        hg_hashset_put(&set, (void*)x);
        test_assert(hg_hashset_contains(&set, (void*)x));
    }
    test_assert(hg_hashset_len(&set) == 2 * N);

    hg_hashset_destroy(&set);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
leaq -0x45(%rip), %rdx       # 0x14b8
leaq -0x3e(%rip), %rcx       # 0x14c6
leaq 0x8(%rsp), %rbx
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0x11dc
xorl %r15d, %r15d
callq 0x1060
movq %rax, %r14
cmpq $0x30000, %r15          # imm = 0x30000
je 0x1538
movq %rbx, %rdi
movq %r15, %rsi
callq 0x123a
incq %r15
jmp 0x151f
callq 0x1060
movq %rax, %rbx
subq %r14, %rbx
movq %fs:0x0, %rax
leaq -0x400(%rax), %r14
leaq 0x1ec0(%rip), %rsi      # 0x341a
leaq 0x1eac(%rip), %rcx      # 0x340d
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10c0
leaq 0x1adf(%rip), %rdi      # 0x3054
movl $0x30000, %r15d         # imm = 0x30000
movl $0x30000, %esi          # imm = 0x30000
movq %r14, %rdx
xorl %eax, %eax
callq 0x1080
imulq $0x3e8, %rbx, %rax      # imm = 0x3E8
xorl %edx, %edx
divq %r15
leaq 0x1ae3(%rip), %rdi      # 0x3080
movq %rax, %rsi
xorl %eax, %eax
callq 0x1080
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
testq %rcx, %rcx
js 0x15bd
cvtsi2ss %rcx, %xmm0
jmp 0x15d2
movq %rcx, %rdx
shrq %rdx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
testq %rax, %rax
js 0x15de
cvtsi2ss %rax, %xmm1
jmp 0x15f3
movq %rax, %rcx
shrq %rcx
andl $0x1, %eax
orq %rcx, %rax
cvtsi2ss %rax, %xmm1
addss %xmm1, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1aa3(%rip), %rdi      # 0x30a5
movb $0x1, %al
callq 0x1080
movq 0x8(%rsp), %rsi
leaq 0x1ab7(%rip), %rdi      # 0x30cc
xorl %eax, %eax
callq 0x1080
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq %r15, %rax
jne 0x1d97
callq 0x1060
movq %rax, %rbx
leaq 0x8(%rsp), %r14
leaq 0x1ae4(%rip), %r13      # 0x3127
leaq 0x1b04(%rip), %rbp      # 0x314e
pushq $0x2b
popq %r15
xorl %r12d, %r12d
cmpq $0x30000, %r12          # imm = 0x30000
je 0x1699
movq %r14, %rdi
movq %r12, %rsi
callq 0x140a
cmpq %r12, %rax
jne 0x166f
incq %r12
jmp 0x1651
movq 0x3982(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1a6c(%rip), %rsi      # 0x30ec
leaq 0x1a91(%rip), %rdx      # 0x3118
movl %r15d, %ecx
movq %r13, %r8
movq %rbp, %r9
xorl %eax, %eax
callq 0x10b0
jmp 0x166a
callq 0x1060
subq %rbx, %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movl $0x30000, %ecx          # imm = 0x30000
xorl %edx, %edx
divq %rcx
leaq 0x1ad4(%rip), %rdi      # 0x318d
movq %rax, %rsi
xorl %eax, %eax
callq 0x1080
callq 0x1060
movq %rax, %rbx
leaq 0x8(%rsp), %r14
leaq 0x1a50(%rip), %r13      # 0x3127
leaq 0x1b83(%rip), %rbp      # 0x3261
pushq $0x33
popq %r15
xorl %r12d, %r12d
cmpq $0x30000, %r12          # imm = 0x30000
je 0x172c
movq %r14, %rdi
movq %r12, %rsi
callq 0x141f
testb %al, %al
je 0x1702
incq %r12
jmp 0x16e5
movq 0x38ef(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x19d9(%rip), %rsi      # 0x30ec
leaq 0x19fe(%rip), %rdx      # 0x3118
movl %r15d, %ecx
movq %r13, %r8
movq %rbp, %r9
xorl %eax, %eax
callq 0x10b0
jmp 0x16fd
callq 0x1060
subq %rbx, %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movl $0x30000, %ecx          # imm = 0x30000
xorl %edx, %edx
divq %rcx
leaq 0x1a66(%rip), %rdi      # 0x31b2
movq %rax, %rsi
xorl %eax, %eax
callq 0x1080
callq 0x1060
movq %rax, %rbx
leaq 0x8(%rsp), %r14
leaq 0x19bd(%rip), %r13      # 0x3127
leaq 0x1a6b(%rip), %rbp      # 0x31dc
pushq $0x3b
popq %r15
xorl %r12d, %r12d
cmpq $0x30000, %r12          # imm = 0x30000
je 0x17c0
movq %r14, %rdi
movq %r12, %rsi
callq 0x142e
cmpq %r12, %rax
jne 0x1796
incq %r12
jmp 0x1778
movq 0x385b(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1945(%rip), %rsi      # 0x30ec
leaq 0x196a(%rip), %rdx      # 0x3118
movl %r15d, %ecx
movq %r13, %r8
movq %rbp, %r9
xorl %eax, %eax
callq 0x10b0
jmp 0x1791
callq 0x1060
subq %rbx, %rax
imulq $0x3e8, %rax, %rax      # imm = 0x3E8
movl $0x30000, %ecx          # imm = 0x30000
xorl %edx, %edx
divq %rcx
leaq 0x1a3e(%rip), %rdi      # 0x321e
movq %rax, %rsi
xorl %eax, %eax
callq 0x1080
movq 0x10(%rsp), %rax
cmpq 0x18(%rsp), %rax
jne 0x1dcc
leaq 0x8(%rsp), %rbx
leaq 0x18e6(%rip), %r14      # 0x30ec
leaq 0x190b(%rip), %r15      # 0x3118
leaq 0x1913(%rip), %r12      # 0x3127
pushq $0x46
popq %rbp
xorl %r13d, %r13d
cmpq $0x30000, %r13          # imm = 0x30000
je 0x189c
movq %rbx, %rdi
movq %r13, %rsi
callq 0x141f
testb %al, %al
jne 0x1851
movq %rbx, %rdi
movq %r13, %rsi
callq 0x123a
movq %rbx, %rdi
movq %r13, %rsi
callq 0x141f
testb %al, %al
je 0x1877
incq %r13
jmp 0x181a
movq 0x37a0(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
movq %r14, %rsi
movq %r15, %rdx
pushq $0x44
popq %rcx
movq %r12, %r8
leaq 0x19f2(%rip), %r9       # 0x3260
xorl %eax, %eax
callq 0x10b0
jmp 0x1832
movq 0x377a(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
movq %r14, %rsi
movq %r15, %rdx
movl %ebp, %ecx
movq %r12, %r8
leaq 0x19ce(%rip), %r9       # 0x3261
xorl %eax, %eax
callq 0x10b0
jmp 0x184c
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq $0x30000, %rax          # imm = 0x30000
jne 0x1e01
leaq 0x8(%rsp), %rbx
leaq 0x182e(%rip), %r14      # 0x30ec
leaq 0x1853(%rip), %r15      # 0x3118
leaq 0x185b(%rip), %r12      # 0x3127
pushq $0x4c
popq %rbp
xorl %r13d, %r13d
cmpq $0x30000, %r13          # imm = 0x30000
jae 0x194b
movq %rbx, %rdi
movq %r13, %rsi
callq 0x142e
cmpq %r13, %rax
jne 0x1900
movq %rbx, %rdi
movq %r13, %rsi
callq 0x141f
testb %al, %al
jne 0x1925
addq $0x2, %r13
jmp 0x18d2
movq 0x36f1(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
movq %r14, %rsi
movq %r15, %rdx
movl %ebp, %ecx
movq %r12, %r8
leaq 0x18c0(%rip), %r9       # 0x31dc
xorl %eax, %eax
callq 0x10b0
jmp 0x18eb
movq 0x36cc(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
movq %r14, %rsi
movq %r15, %rdx
pushq $0x4d
popq %rcx
movq %r12, %r8
leaq 0x191e(%rip), %r9       # 0x3260
xorl %eax, %eax
callq 0x10b0
jmp 0x18fa
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq $0x18000, %rax          # imm = 0x18000
jne 0x1e36
pushq $0x1
popq %rbx
leaq 0x8(%rsp), %r14
leaq 0x177c(%rip), %r15      # 0x30ec
leaq 0x17a1(%rip), %r12      # 0x3118
leaq 0x17a9(%rip), %r13      # 0x3127
pushq $0x53
popq %rbp
cmpq $0x30000, %rbx          # imm = 0x30000
jae 0x19fa
movq %r14, %rdi
movq %rbx, %rsi
callq 0x142e
cmpq %rbx, %rax
jne 0x19af
movq %r14, %rdi
movq %rbx, %rsi
callq 0x141f
testb %al, %al
jne 0x19d4
addq $0x2, %rbx
jmp 0x1981
movq 0x3642(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
movq %r15, %rsi
movq %r12, %rdx
movl %ebp, %ecx
movq %r13, %r8
leaq 0x1811(%rip), %r9       # 0x31dc
xorl %eax, %eax
callq 0x10b0
jmp 0x199a
movq 0x361d(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
movq %r15, %rsi
movq %r12, %rdx
pushq $0x54
popq %rcx
movq %r13, %r8
leaq 0x186f(%rip), %r9       # 0x3260
xorl %eax, %eax
callq 0x10b0
jmp 0x19a9
movq 0x10(%rsp), %rax
cmpq 0x18(%rsp), %rax
jne 0x1e6b
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x1451
movq 0x8(%rbx), %rax
cmpq 0x10(%rbx), %rax
jne 0x1ea0
leaq 0x8(%rsp), %rbx
leaq 0x16e7(%rip), %r15      # 0x3118
leaq 0x16ef(%rip), %r12      # 0x3127
leaq 0x186e(%rip), %r13      # 0x32ad
pushq $0x5e
popq %rbp
xorl %r14d, %r14d
cmpq $0x30000, %r14          # imm = 0x30000
je 0x1a88
movq %rbx, %rdi
movq %r14, %rsi
callq 0x140a
testq %rax, %rax
jne 0x1a63
incq %r14
jmp 0x1a45
movq 0x358e(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1678(%rip), %rsi      # 0x30ec
movq %r15, %rdx
movl %ebp, %ecx
movq %r12, %r8
movq %r13, %r9
xorl %eax, %eax
callq 0x10b0
jmp 0x1a5e
movq 0x10(%rsp), %rax
cmpq 0x18(%rsp), %rax
jne 0x1ed5
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x120f
leaq -0x5f4(%rip), %rdx      # 0x14b8
leaq -0x5ed(%rip), %rcx      # 0x14c6
pushq $0x10
popq %rsi
movq %rbx, %rdi
callq 0x11dc
xorl %r14d, %r14d
cmpq $0x30000, %r14          # imm = 0x30000
je 0x1ada
movq %rbx, %rdi
movq %r14, %rsi
callq 0x123a
incq %r14
jmp 0x1ac1
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq $0x30000, %rax          # imm = 0x30000
jne 0x1f0a
movl $0x30000, %r14d         # imm = 0x30000
leaq 0x8(%rsp), %rbx
leaq 0x1616(%rip), %r15      # 0x3118
leaq 0x161e(%rip), %r12      # 0x3127
xorl %r13d, %r13d
subq $0x1, %r14
jb 0x1bdc
movq %rbx, %rdi
movq %r13, %rsi
callq 0x142e
cmpq %r13, %rax
jne 0x1b5b
leaq 0x30000(%r13), %rbp
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x123a
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x141f
testb %al, %al
je 0x1b85
movq %rbx, %rdi
movq %r13, %rsi
callq 0x141f
testb %al, %al
jne 0x1baf
incq %r13
jmp 0x1b0c
movq 0x3496(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1580(%rip), %rsi      # 0x30ec
movq %r15, %rdx
pushq $0x6f
popq %rcx
movq %r12, %r8
leaq 0x1660(%rip), %r9       # 0x31dc
xorl %eax, %eax
callq 0x10b0
jmp 0x1b26
movq 0x346c(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1556(%rip), %rsi      # 0x30ec
movq %r15, %rdx
pushq $0x72
popq %rcx
movq %r12, %r8
leaq 0x1767(%rip), %r9       # 0x330d
xorl %eax, %eax
callq 0x10b0
jmp 0x1b47
movq 0x3442(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x152c(%rip), %rsi      # 0x30ec
movq %r15, %rdx
pushq $0x73
popq %rcx
movq %r12, %r8
leaq 0x1690(%rip), %r9       # 0x3260
xorl %eax, %eax
callq 0x10b0
jmp 0x1b56
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq $0x30000, %rax          # imm = 0x30000
jne 0x1f3f
movl $0x30000, %r14d         # imm = 0x30000
leaq 0x8(%rsp), %rbx
leaq 0x1514(%rip), %r15      # 0x3118
leaq 0x151c(%rip), %r12      # 0x3127
xorl %r13d, %r13d
subq $0x1, %r14
jb 0x1cde
leaq 0x30000(%r13), %rbp
movq %rbx, %rdi
movq %r13, %rsi
callq 0x123a
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x142e
cmpq %rbp, %rax
jne 0x1c5d
movq %rbx, %rdi
movq %r13, %rsi
callq 0x141f
testb %al, %al
je 0x1c87
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x141f
testb %al, %al
jne 0x1cb1
incq %r13
jmp 0x1c0e
movq 0x3394(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x147e(%rip), %rsi      # 0x30ec
movq %r15, %rdx
pushq $0x7b
popq %rcx
movq %r12, %r8
leaq 0x1660(%rip), %r9       # 0x32de
xorl %eax, %eax
callq 0x10b0
jmp 0x1c3a
movq 0x336a(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1454(%rip), %rsi      # 0x30ec
movq %r15, %rdx
pushq $0x7d
popq %rcx
movq %r12, %r8
leaq 0x15b9(%rip), %r9       # 0x3261
xorl %eax, %eax
callq 0x10b0
jmp 0x1c49
movq 0x3340(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x142a(%rip), %rsi      # 0x30ec
movq %r15, %rdx
pushq $0x7e
popq %rcx
movq %r12, %r8
leaq 0x163a(%rip), %r9       # 0x330c
xorl %eax, %eax
callq 0x10b0
jmp 0x1c58
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq $0x30000, %rax          # imm = 0x30000
jne 0x1f74
movl $0x30000, %r14d         # imm = 0x30000
leaq 0x8(%rsp), %rbx
leaq 0x1421(%rip), %r12      # 0x3127
leaq 0x1600(%rip), %r13      # 0x330d
xorl %r15d, %r15d
subq $0x1, %r14
jb 0x1d68
leaq 0x30000(%r15), %rbp
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x123a
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x141f
testb %al, %al
je 0x1d3c
incq %r15
jmp 0x1d10
movq 0x32b5(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x139f(%rip), %rsi      # 0x30ec
leaq 0x13c4(%rip), %rdx      # 0x3118
movl $0x86, %ecx
movq %r12, %r8
movq %r13, %r9
xorl %eax, %eax
callq 0x10b0
jmp 0x1d37
movq 0x10(%rsp), %rax
subq 0x18(%rsp), %rax
cmpq $0x60000, %rax          # imm = 0x60000
jne 0x1fab
leaq 0x8(%rsp), %rdi
callq 0x120f
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x325a(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1344(%rip), %rsi      # 0x30ec
leaq 0x1369(%rip), %rdx      # 0x3118
leaq 0x1371(%rip), %r8       # 0x3127
leaq 0x1377(%rip), %r9       # 0x3134
pushq $0x26
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x162f
movq 0x3225(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x130f(%rip), %rsi      # 0x30ec
leaq 0x1334(%rip), %rdx      # 0x3118
leaq 0x133c(%rip), %r8       # 0x3127
leaq 0x1454(%rip), %r9       # 0x3246
pushq $0x40
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x17fa
movq 0x31f0(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x12da(%rip), %rsi      # 0x30ec
leaq 0x12ff(%rip), %rdx      # 0x3118
leaq 0x1307(%rip), %r8       # 0x3127
leaq 0x130d(%rip), %r9       # 0x3134
pushq $0x48
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x18b2
movq 0x31bb(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x12a5(%rip), %rsi      # 0x30ec
leaq 0x12ca(%rip), %rdx      # 0x3118
leaq 0x12d2(%rip), %r8       # 0x3127
leaq 0x1433(%rip), %r9       # 0x328f
pushq $0x4f
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x1961
movq 0x3186(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1270(%rip), %rsi      # 0x30ec
leaq 0x1295(%rip), %rdx      # 0x3118
leaq 0x129d(%rip), %r8       # 0x3127
leaq 0x13b5(%rip), %r9       # 0x3246
pushq $0x56
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x1a0a
movq 0x3151(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x123b(%rip), %rsi      # 0x30ec
leaq 0x1260(%rip), %rdx      # 0x3118
leaq 0x1268(%rip), %r8       # 0x3127
leaq 0x1380(%rip), %r9       # 0x3246
pushq $0x5a
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x1a25
movq 0x311c(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1206(%rip), %rsi      # 0x30ec
leaq 0x122b(%rip), %rdx      # 0x3118
leaq 0x1233(%rip), %r8       # 0x3127
leaq 0x134b(%rip), %r9       # 0x3246
pushq $0x60
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x1a98
movq 0x30e7(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x11d1(%rip), %rsi      # 0x30ec
leaq 0x11f6(%rip), %rdx      # 0x3118
leaq 0x11fe(%rip), %r8       # 0x3127
leaq 0x1204(%rip), %r9       # 0x3134
pushq $0x6a
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x1af0
movq 0x30b2(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x119c(%rip), %rsi      # 0x30ec
leaq 0x11c1(%rip), %rdx      # 0x3118
leaq 0x11c9(%rip), %r8       # 0x3127
leaq 0x11cf(%rip), %r9       # 0x3134
pushq $0x75
popq %rcx
xorl %eax, %eax
callq 0x10b0
jmp 0x1bf2
movq 0x307d(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1167(%rip), %rsi      # 0x30ec
leaq 0x118c(%rip), %rdx      # 0x3118
leaq 0x1194(%rip), %r8       # 0x3127
leaq 0x119a(%rip), %r9       # 0x3134
movl $0x80, %ecx
xorl %eax, %eax
callq 0x10b0
jmp 0x1cf4
movq 0x3046(%rip), %rax      # 0x4ff8
movq (%rax), %rdi
leaq 0x1130(%rip), %rsi      # 0x30ec
leaq 0x1155(%rip), %rdx      # 0x3118
leaq 0x115d(%rip), %r8       # 0x3127
leaq 0x1360(%rip), %r9       # 0x3331
movl $0x88, %ecx
xorl %eax, %eax
callq 0x10b0
jmp 0x1d7e