// File: /workspace/github_cpp_makefile_star2_O2/attractivechaos[P]udb2/mlib/test.c
// Function: test_int
uint32_t test_int(uint32_t n, uint32_t x0)
{
	uint32_t i, x, z = 0;
	intmap_t h;
	intmap_init(h);
	for (i = 0, x = x0; i < n; ++i) {
		uint32_t key;
		int *p;
		x = hash32(x);
		key = get_key(n, x);
		p = intmap_get(h, key);
#ifndef UDB2_TEST_DEL
		if (p == 0) {
			intmap_set_at(h, key, 1);
			++z;
		} else z += ++*p;
#else
		if (p == 0) {
			intmap_set_at(h, key, 1);
			++z;
		} else intmap_erase(h, key);
#endif
	}
	fprintf(stderr, "# unique keys: %ld; checksum: %u\n", intmap_size(h), z);
	x = intmap_size(h);
	intmap_clear(h);
	return x;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %esi, %r14d
movl %edi, %ebx
movl $0x80, %edi
callq 0x1080
testq %rax, %rax
je 0x1aa9
movq %rax, %r9
xorl %eax, %eax
cmpq $0x10, %rax
je 0x14c6
orl $-0x1, (%r9,%rax,8)
incq %rax
jmp 0x14b6
pushq $0xf
popq %r10
pushq $0xa
popq %r11
xorl %r12d, %r12d
movq $0x0, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
xorl %ecx, %ecx
xorl %r15d, %r15d
movq %r10, 0x28(%rsp)
movq %r11, %rbp
movq %r9, %r13
cmpl %ebx, %r15d
je 0x1a38
movq %rcx, 0x20(%rsp)
movl %r14d, %edi
callq 0x121c
movl %eax, %r14d
movl %ebx, %edi
movl %eax, %esi
callq 0x1247
cmpq %r12, 0x8(%rsp)
ja 0x1add
cmpq %rbp, %r12
ja 0x1ae6
movl %r14d, 0x14(%rsp)
movl %ebx, %r14d
movq %r12, %rbx
movq 0x28(%rsp), %r10
leaq 0x1(%r10), %r12
testq %r10, %r12
jne 0x1af8
cmpq $0xf, %r12
jbe 0x1aef
movq %rbp, %r11
cmpq %r12, %rbp
ja 0x1b01
cmpl $-0x2, %eax
je 0x1b0a
cmpl $-0x1, %eax
je 0x1b13
movl %eax, %ecx
shll $0xb, %ecx
xorl %eax, %ecx
andl %r10d, %ecx
movq %r13, %r9
movl (%r13,%rcx,8), %edx
cmpl %eax, %edx
jne 0x15b2
leaq (%r9,%rcx,8), %rax
addq $0x4, %rax
movl (%rax), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%rax)
movq 0x20(%rsp), %rbp
addl %ecx, %ebp
incl %ebp
movq %rbp, %rcx
movq %rbx, %r12
movl %r14d, %ebx
movl 0x14(%rsp), %r14d
incl %r15d
jmp 0x14e8
cmpl $-0x1, %edx
jne 0x164d
cmpl $-0x2, %eax
je 0x1ba1
cmpl $-0x1, %eax
je 0x1b98
cmpl $-0x1, %edx
jne 0x167d
movl %eax, (%r9,%rcx,8)
movl $0x1, 0x4(%r9,%rcx,8)
incq %rbx
movq 0x18(%rsp), %rax
incq %rax
cmpq %r11, %rax
jae 0x16d7
movq %rax, 0x18(%rsp)
movq %r10, %rbp
movq %rbx, %r12
movl %r14d, %ebx
movq 0x20(%rsp), %rcx
movl 0x14(%rsp), %r14d
cmpq %r12, 0x8(%rsp)
ja 0x1b8f
cmpq %r11, %r12
ja 0x1b86
leaq 0x1(%rbp), %rax
testq %rbp, %rax
jne 0x1b6b
cmpq $0xf, %rax
jbe 0x1b74
cmpq %rax, %r11
ja 0x1b7d
incl %ecx
movq %rbp, %r10
jmp 0x15aa
movq %rcx, %rsi
pushq $0x1
popq %rdi
addq %rdi, %rsi
andq %r10, %rsi
movl (%r9,%rsi,8), %r8d
cmpl %eax, %r8d
je 0x1758
incq %rdi
cmpq %r10, %rdi
ja 0x1c39
cmpl $-0x1, %r8d
jne 0x1653
jmp 0x15bb
cmpl $-0x2, %edx
pushq $-0x1
popq %rdx
cmoveq %rcx, %rdx
pushq $0x1
popq %rsi
addq %rsi, %rcx
andq %r10, %rcx
movl (%r9,%rcx,8), %edi
cmpl %eax, %edi
je 0x1765
incq %rsi
cmpq %r10, %rsi
ja 0x1c45
cmpq $-0x1, %rdx
movq %rdx, %r8
cmoveq %rcx, %r8
cmpl $-0x2, %edi
cmoveq %r8, %rdx
cmpl $-0x1, %edi
jne 0x168a
xorl %esi, %esi
cmpq $-0x1, %rdx
setne %sil
cmovneq %rdx, %rcx
subq %rsi, 0x18(%rsp)
jmp 0x15d6
movq %r10, %rax
shrq %rax
movq %r12, %r13
cmpq %rax, %rbx
jbe 0x16fc
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rax, %r10
jae 0x1bd5
leaq (%r12,%r12), %r13
leaq -0x1(%r13), %rbp
testq %rbp, %r13
jne 0x1c51
cmpq %r13, %r12
movq %r13, 0x40(%rsp)
jae 0x178b
movq %r13, %rax
shrq $0x3d, %rax
leaq (,%r13,8), %rcx
movq %rcx, 0x8(%rsp)
testq %rax, %rax
jne 0x1c00
movq %r9, %rdi
movq 0x8(%rsp), %rsi
callq 0x1090
movq %rax, %r9
testq %rax, %rax
je 0x1c00
cmpq %r13, %r12
jae 0x1786
orl $-0x1, (%r9,%r12,8)
incq %r12
jmp 0x1749
leaq (%r9,%rsi,8), %rax
addq $0x4, %rax
jmp 0x158c
movl $0x1, 0x4(%r9,%rcx,8)
movq %r10, %rbp
movq %rbx, %r12
movl %r14d, %ebx
movq 0x20(%rsp), %rcx
movl 0x14(%rsp), %r14d
jmp 0x1643
movq 0x28(%rsp), %r10
leaq 0x1(%r10), %rsi
xorl %r13d, %r13d
xorl %eax, %eax
xorl %edi, %edi
xorl %r12d, %r12d
cmpq %r12, %rsi
je 0x18a5
movl (%r9,%r12,8), %ecx
cmpl $-0x3, %ecx
ja 0x17d4
movl %ecx, %edx
shll $0xb, %edx
xorl %ecx, %edx
andl %ebp, %edx
cmpq %rdx, %r12
je 0x17d9
cmpl $-0x2, (%r9,%rdx,8)
jb 0x17de
leaq (%r9,%rdx,8), %rdx
movl %ecx, (%rdx)
movl 0x4(%r9,%r12,8), %ecx
movl %ecx, 0x4(%rdx)
andl $0x0, 0x4(%r9,%r12,8)
orl $-0x1, (%r9,%r12,8)
incq %r12
jmp 0x1799
movq %rsi, 0x38(%rsp)
movq %r9, 0x18(%rsp)
cmpq %rax, %r13
ja 0x1c78
testq %r13, %r13
je 0x17ff
testq %rdi, %rdi
je 0x1c5d
testq %rax, %rax
je 0x180d
testq %rdi, %rdi
je 0x1c66
cmpq %rax, %r13
jae 0x1855
movq %rax, 0x8(%rsp)
testq %rdi, %rdi
je 0x1c6f
leaq 0x1(%r13), %rax
cmpq 0x8(%rsp), %rax
ja 0x1c78
leaq (%rdi,%r13,8), %rdx
movq 0x18(%rsp), %r9
movl (%r9,%r12,8), %ecx
movl %ecx, (%rdx)
movq %rax, %r13
movq 0x8(%rsp), %rax
movq 0x28(%rsp), %r10
movq 0x38(%rsp), %rsi
jmp 0x17c6
leaq (%rax,%rax), %rdx
cmpq $0x8, %rax
pushq $0x10
popq %rcx
cmovbq %rcx, %rdx
leaq (,%rdx,8), %rcx
movq %rcx, 0x30(%rsp)
movq %rdx, 0x8(%rsp)
cmpq %rax, %rdx
jbe 0x1c92
movq 0x8(%rsp), %rax
shrq $0x3d, %rax
jne 0x1c92
movq 0x30(%rsp), %rsi
callq 0x1090
movq %rax, %rdi
testq %rax, %rax
jne 0x1820
jmp 0x1c92
cmpq %rax, %r13
movq %rbx, %r12
pushq $0x1
popq %r8
ja 0x1cbf
subq $0x1, %r13
jb 0x1902
testq %rdi, %rdi
je 0x1c2d
movl (%rdi,%r13,8), %edx
movl %edx, %ecx
shll $0xb, %ecx
xorl %edx, %ecx
andl %ebp, %ecx
cmpl $-0x1, (%r9,%rcx,8)
je 0x18f8
movq %r8, %rdx
leaq 0x1(%rdx), %rsi
cmpq %r10, %rsi
ja 0x1bbb
addq %rdx, %rcx
andq %rbp, %rcx
cmpl $-0x1, (%r9,%rcx,8)
movq %rsi, %rdx
jne 0x18db
movq (%rdi,%r13,8), %rdx
movq %rdx, (%r9,%rcx,8)
jmp 0x18b5
movq %r9, %rbx
testq %rax, %rax
je 0x1913
testq %rdi, %rdi
je 0x1cc8
callq 0x1030
movq 0x40(%rsp), %r8
movq %r8, %xmm0
punpckldq 0x716(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x71e(%rip), %xmm0      # 0x2050
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm1, %xmm0
mulsd 0x6d6(%rip), %xmm0      # 0x2020
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
movsd 0x6ca(%rip), %xmm2      # 0x2028
subsd %xmm2, %xmm0
cvttsd2si %xmm0, %r11
andq %rcx, %r11
orq %rax, %r11
decq %r11
mulsd 0x6b8(%rip), %xmm1      # 0x2030
cvttsd2si %xmm1, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd %xmm2, %xmm1
cvttsd2si %xmm1, %rdx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x8(%rsp)
xorl %eax, %eax
xorl %ecx, %ecx
xorl %edx, %edx
movq %rbx, %r9
movl %r14d, %ebx
movl 0x14(%rsp), %r14d
cmpq %rdx, %r8
je 0x19cf
movl (%r9,%rdx,8), %esi
xorl %edi, %edi
cmpl $-0x1, %esi
sete %dil
addq %rdi, %rax
xorl %edi, %edi
cmpl $-0x2, %esi
sete %dil
addq %rdi, %rcx
incq %rdx
jmp 0x19a9
cmpq $0x11, %r8
movl $0x0, %edx
movq 0x8(%rsp), %rsi
cmovbq %rdx, %rsi
movq %rsi, 0x8(%rsp)
testq %rcx, %rcx
jne 0x1ce2
addq %r12, %rax
cmpq %r8, %rax
movq 0x20(%rsp), %rcx
jne 0x1ceb
cmpq %r12, 0x8(%rsp)
ja 0x1d05
cmpq %r11, %r12
ja 0x1d11
cmpq $0xf, %r8
jbe 0x1d1d
movq %r12, 0x18(%rsp)
cmpq %r8, %r11
jbe 0x160f
leaq 0x95a(%rip), %rdi       # 0x238d
jmp 0x1bc2
movq 0x25b9(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x66c(%rip), %rsi       # 0x20b5
movq %r12, %rdx
xorl %eax, %eax
callq 0x1070
cmpq %r12, 0x8(%rsp)
ja 0x1b30
movq %rbp, %rcx
cmpq %rbp, %r12
movq 0x28(%rsp), %rbp
ja 0x1b39
leaq 0x1(%rbp), %rax
testq %rbp, %rax
jne 0x1b42
cmpq $0xf, %rax
jbe 0x1b4b
cmpq %rax, %rcx
ja 0x1b54
movq %r13, %rdi
callq 0x1030
movl %r12d, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2548(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x61d(%rip), %rsi       # 0x20d7
leaq 0x658(%rip), %rcx       # 0x2119
leaq 0x658(%rip), %r8        # 0x2120
pushq $0xe
popq %r9
movl $0x80, %edx
xorl %eax, %eax
callq 0x1070
callq 0x1040
leaq 0x648(%rip), %rdi       # 0x212c
jmp 0x1b1a
leaq 0x664(%rip), %rdi       # 0x2151
jmp 0x1b1a
leaq 0x6ab(%rip), %rdi       # 0x21a1
jmp 0x1b1a
leaq 0x677(%rip), %rdi       # 0x2176
jmp 0x1b1a
leaq 0x6ae(%rip), %rdi       # 0x21b6
jmp 0x1b1a
leaq 0x727(%rip), %rdi       # 0x2238
jmp 0x1b1a
leaq 0x6fb(%rip), %rdi       # 0x2215
leaq 0x5f8(%rip), %rsi       # 0x2119
leaq 0x6b4(%rip), %rcx       # 0x21dc
pushq $0xe
popq %rdx
callq 0x1060
leaq 0x5f5(%rip), %rdi       # 0x212c
jmp 0x1b5b
leaq 0x611(%rip), %rdi       # 0x2151
jmp 0x1b5b
leaq 0x62d(%rip), %rdi       # 0x2176
jmp 0x1b5b
leaq 0x64f(%rip), %rdi       # 0x21a1
jmp 0x1b5b
leaq 0x65b(%rip), %rdi       # 0x21b6
leaq 0x5b7(%rip), %rsi       # 0x2119
leaq 0x9b4(%rip), %rcx       # 0x251d
jmp 0x1b28
leaq 0x604(%rip), %rdi       # 0x2176
jmp 0x1ba8
leaq 0x626(%rip), %rdi       # 0x21a1
jmp 0x1ba8
leaq 0x632(%rip), %rdi       # 0x21b6
jmp 0x1ba8
leaq 0x5c4(%rip), %rdi       # 0x2151
jmp 0x1ba8
leaq 0x596(%rip), %rdi       # 0x212c
jmp 0x1ba8
leaq 0x676(%rip), %rdi       # 0x2215
jmp 0x1ba8
leaq 0x690(%rip), %rdi       # 0x2238
leaq 0x56a(%rip), %rsi       # 0x2119
leaq 0x6b7(%rip), %rcx       # 0x226d
jmp 0x1b28
leaq 0x76e(%rip), %rdi       # 0x2330
leaq 0x550(%rip), %rsi       # 0x2119
leaq 0x6ec(%rip), %rcx       # 0x22bc
jmp 0x1b28
movq 0x241c(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x4f1(%rip), %rsi       # 0x20d7
leaq 0x52c(%rip), %rcx       # 0x2119
leaq 0x6ba(%rip), %r8        # 0x22ae
pushq $-0x1
popq %rdx
pushq $0xe
popq %r9
jmp 0x1ad1
movq 0x23f1(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x4c6(%rip), %rsi       # 0x20d7
leaq 0x501(%rip), %rcx       # 0x2119
leaq 0x6f9(%rip), %r8        # 0x2318
pushq $0xe
popq %r9
movq 0x8(%rsp), %rdx
jmp 0x1ad1
leaq 0x78d(%rip), %rdi       # 0x23c1
jmp 0x1ccf
leaq 0x61d(%rip), %rdi       # 0x225d
jmp 0x1b1a
leaq 0x611(%rip), %rdi       # 0x225d
jmp 0x1ba8
leaq 0x6a3(%rip), %rdi       # 0x22fb
jmp 0x1bc2
leaq 0x75d(%rip), %rdi       # 0x23c1
jmp 0x1c7f
leaq 0x779(%rip), %rdi       # 0x23e6
jmp 0x1c7f
leaq 0x781(%rip), %rdi       # 0x23f7
jmp 0x1c7f
leaq 0x72e(%rip), %rdi       # 0x23ad
leaq 0x493(%rip), %rsi       # 0x2119
leaq 0x77f(%rip), %rcx       # 0x240c
jmp 0x1b28
movq 0x235f(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x434(%rip), %rsi       # 0x20d7
leaq 0x46f(%rip), %rcx       # 0x2119
leaq 0x7a4(%rip), %r8        # 0x2455
pushq $0xe
popq %r9
movq 0x30(%rsp), %rdx
jmp 0x1ad1
leaq 0x6e7(%rip), %rdi       # 0x23ad
jmp 0x1ccf
leaq 0x717(%rip), %rdi       # 0x23e6
leaq 0x443(%rip), %rsi       # 0x2119
leaq 0x793(%rip), %rcx       # 0x2470
jmp 0x1b28
leaq 0x7c9(%rip), %rdi       # 0x24b2
jmp 0x1cf2
leaq 0x80b(%rip), %rdi       # 0x24fd
leaq 0x420(%rip), %rsi       # 0x2119
leaq 0x7bb(%rip), %rcx       # 0x24bb
jmp 0x1b28
leaq 0x631(%rip), %rdi       # 0x233d
jmp 0x1bc2
leaq 0x644(%rip), %rdi       # 0x235c
jmp 0x1bc2
leaq 0x657(%rip), %rdi       # 0x237b
jmp 0x1bc2