// File: /workspace/github_cpp_makefile_star2_O2/SeanChao[P]KV-Store/correctness.cc
// Function: CorrectnessTest::regular_test(unsigned long)
void regular_test(uint64_t max)
	{
		uint64_t i;

		// Test a single key
		EXPECT(not_found, store.get(1));
		store.put(1, "SE");
		EXPECT("SE", store.get(1));
		EXPECT(true, store.del(1));
		EXPECT(not_found, store.get(1));
		EXPECT(false, store.del(1));

		phase();

		// Test multiple key-value pairs
		for (i = 0; i < max; ++i) {
			store.put(i, std::string(i+1, 's'));
			EXPECT(std::string(i+1, 's'), store.get(i));
		}
		phase();

		// Test after all insertions
		for (i = 0; i < max; ++i)
			EXPECT(std::string(i+1, 's'), store.get(i));
		phase();

		// Test deletions
		for (i = 0; i < max; i+=2)
			EXPECT(true, store.del(i));

		for (i = 0; i < max; ++i)
			EXPECT((i & 1) ? std::string(i+1, 's') : not_found,
			       store.get(i));

		for (i = 1; i < max; ++i)
			EXPECT(i & 1, store.del(i));

		phase();

		report();
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, 0x58(%rsp)
movq %rdi, %r15
leaq 0x28(%rdi), %rsi
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
movq %rsi, 0x8(%rsp)
callq 0x494e
leaq 0x5819(%rip), %rsi      # 0x90a3
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x36fe
leaq 0xa998(%rip), %rsi      # 0xe238
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %rcx
pushq $0x11
popq %r8
movq %r15, %rdi
callq 0x3dfc
leaq 0x38(%rsp), %rdi
callq 0x3428
leaq 0x10(%rsp), %rdi
callq 0x3428
leaq 0x57e1(%rip), %rsi      # 0x90b2
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x36fe
pushq $0x1
popq %rsi
leaq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rdi
callq 0x446e
leaq 0x10(%rsp), %rdi
callq 0x3428
leaq 0x57af(%rip), %rsi      # 0x90b2
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x36fe
leaq 0x38(%rsp), %rdi
pushq $0x1
popq %rdx
movq 0x8(%rsp), %rsi
callq 0x494e
leaq 0x5778(%rip), %rsi      # 0x90a3
leaq 0x68(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0x36fe
leaq 0x10(%rsp), %rsi
leaq 0x38(%rsp), %rdx
leaq 0x68(%rsp), %rcx
pushq $0x13
popq %r8
movq %r15, %rdi
callq 0x3dfc
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
callq 0x3428
leaq 0x38(%rsp), %r14
movq %r14, %rdi
callq 0x3428
leaq 0x10(%rsp), %rdi
callq 0x3428
movb $0x1, (%r14)
pushq $0x1
popq %rsi
movq 0x8(%rsp), %rdi
callq 0x4de0
movb %al, (%rbx)
leaq 0x5710(%rip), %rsi      # 0x90a3
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x36fe
leaq 0x38(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0x10(%rsp), %rcx
pushq $0x14
popq %r8
movq %r15, %rdi
callq 0x3ec0
leaq 0x10(%rsp), %rdi
callq 0x3428
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
movq 0x8(%rsp), %rsi
callq 0x494e
leaq 0x56c3(%rip), %rsi      # 0x90a3
leaq 0x38(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x36fe
leaq 0xa842(%rip), %rsi      # 0xe238
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %rcx
pushq $0x15
popq %r8
movq %r15, %rdi
callq 0x3dfc
leaq 0x38(%rsp), %rbx
movq %rbx, %rdi
callq 0x3428
leaq 0x10(%rsp), %rdi
callq 0x3428
movb $0x0, (%rbx)
pushq $0x1
popq %rsi
movq 0x8(%rsp), %rdi
callq 0x4de0
movb %al, 0x68(%rsp)
leaq 0x5665(%rip), %rsi      # 0x90a3
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x36fe
leaq 0x38(%rsp), %rsi
leaq 0x68(%rsp), %rdx
leaq 0x10(%rsp), %rcx
pushq $0x16
popq %r8
movq %r15, %rdi
callq 0x3ec0
leaq 0x10(%rsp), %r13
movq %r13, %rdi
callq 0x3428
movq %r15, 0x60(%rsp)
movq %r15, %rdi
callq 0x3f70
xorl %r15d, %r15d
leaq 0x38(%rsp), %r14
leaq 0x68(%rsp), %rbx
movq 0x58(%rsp), %r12
subq $0x1, %r12
jb 0x3b45
leaq 0x1(%r15), %rbp
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
pushq $0x73
popq %rdx
callq 0x32a0
movq 0x8(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x446e
movq %r13, %rdi
callq 0x3428
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
pushq $0x73
popq %rdx
callq 0x32a0
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %rdx
callq 0x494e
movq %rbx, %rdi
leaq 0x559f(%rip), %rsi      # 0x90a3
leaq 0x7(%rsp), %rdx
callq 0x36fe
movq 0x60(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
movq %rbx, %rcx
pushq $0x1d
popq %r8
callq 0x3dfc
movq %rbx, %rdi
callq 0x3428
movq %r14, %rdi
callq 0x3428
movq %r13, %rdi
callq 0x3428
movq %rbp, %r15
jmp 0x3a94
movq 0x60(%rsp), %rdi
callq 0x3f70
xorl %r13d, %r13d
leaq 0x10(%rsp), %rbx
leaq 0x38(%rsp), %r14
leaq 0x68(%rsp), %rbp
movq 0x58(%rsp), %r12
subq $0x1, %r12
jb 0x3be0
leaq 0x1(%r13), %r15
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
pushq $0x73
popq %rdx
callq 0x32a0
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movq %r13, %rdx
callq 0x494e
movq %rbp, %rdi
leaq 0x5501(%rip), %rsi      # 0x90a3
leaq 0x7(%rsp), %rdx
callq 0x36fe
movq 0x60(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
movq %rbp, %rcx
pushq $0x23
popq %r8
callq 0x3dfc
movq %rbp, %rdi
callq 0x3428
movq %r14, %rdi
callq 0x3428
movq %rbx, %rdi
callq 0x3428
movq %r15, %r13
jmp 0x3b66
movq 0x60(%rsp), %r12
movq %r12, %rdi
callq 0x3f70
xorl %ebx, %ebx
leaq 0x10(%rsp), %r15
leaq 0x38(%rsp), %rbp
leaq 0x68(%rsp), %r14
pushq $0x28
popq %r13
cmpq 0x58(%rsp), %rbx
jae 0x3c55
movb $0x1, 0x38(%rsp)
movq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x4de0
movb %al, 0x68(%rsp)
movq %r15, %rdi
leaq 0x547a(%rip), %rsi      # 0x90a3
leaq 0x7(%rsp), %rdx
callq 0x36fe
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %r15, %rcx
movl %r13d, %r8d
callq 0x3ec0
movq %r15, %rdi
callq 0x3428
addq $0x2, %rbx
jmp 0x3c02
xorl %ebx, %ebx
leaq 0xa5da(%rip), %r15      # 0xe238
leaq 0x10(%rsp), %r13
leaq 0x38(%rsp), %rbp
leaq 0x68(%rsp), %r14
cmpq %rbx, 0x58(%rsp)
je 0x3cfc
testb $0x1, %bl
jne 0x3c8a
movq %r13, %rdi
movq %r15, %rsi
callq 0x3330
jmp 0x3ca3
leaq 0x1(%rbx), %rsi
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %r13, %rdi
pushq $0x73
popq %rdx
callq 0x32a0
movq %rbp, %rdi
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
callq 0x494e
movq %r14, %rdi
leaq 0x53e6(%rip), %rsi      # 0x90a3
leaq 0x7(%rsp), %rdx
callq 0x36fe
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %r14, %rcx
pushq $0x2c
popq %r8
callq 0x3dfc
movq %r14, %rdi
callq 0x3428
movq %rbp, %rdi
callq 0x3428
movq %r13, %rdi
callq 0x3428
incq %rbx
jmp 0x3c6d
leaq 0x10(%rsp), %r14
leaq 0x38(%rsp), %r13
leaq 0x68(%rsp), %rbp
pushq $0x2f
popq %rbx
pushq $0x1
popq %rsi
cmpq 0x58(%rsp), %rsi
jae 0x3d69
movl %esi, %eax
andb $0x1, %al
movb %al, 0x38(%rsp)
movq 0x8(%rsp), %rdi
movq %rsi, %r15
callq 0x4de0
movb %al, 0x68(%rsp)
movq %r14, %rdi
leaq 0x5368(%rip), %rsi      # 0x90a3
leaq 0x7(%rsp), %rdx
callq 0x36fe
movq %r12, %rdi
movq %r13, %rsi
movq %rbp, %rdx
movq %r14, %rcx
movl %ebx, %r8d
callq 0x3ec0
movq %r14, %rdi
callq 0x3428
movq %r15, %rsi
incq %rsi
jmp 0x3d11
movq %r12, %rdi
callq 0x3f70
movq %r12, %rdi
callq 0x4036
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3de6
jmp 0x3de1
jmp 0x3dc3
jmp 0x3de6
jmp 0x3de6
jmp 0x3de1
jmp 0x3dc8
jmp 0x3dc3
jmp 0x3de6
jmp 0x3de1
jmp 0x3de6
jmp 0x3de1
jmp 0x3dc3
jmp 0x3de6
jmp 0x3de6
jmp 0x3de1
jmp 0x3de1
jmp 0x3de6
jmp 0x3dc3
jmp 0x3dc8
jmp 0x3de6
jmp 0x3de1
jmp 0x3de1
jmp 0x3de6
jmp 0x3dc3
jmp 0x3dc8
jmp 0x3de1
jmp 0x3de6
movq %rax, %rbx
jmp 0x3dd5
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x3428
leaq 0x38(%rsp), %rdi
callq 0x3428
jmp 0x3de9
movq %rax, %rbx
jmp 0x3df3
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x3428
movq %rbx, %rdi
callq 0x33d0
nop