// File: /workspace/github_cpp_makefile_star2_O1/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 $0x78, %rsp
movq %rsi, 0x70(%rsp)
movq %rdi, %rbx
leaq 0x28(%rdi), %rsi
leaq 0x8(%rsp), %rdi
movl $0x1, %edx
movq %rsi, 0x48(%rsp)
callq 0x52ec
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x7623(%rip), %rsi      # 0xb0a3
leaq 0x762a(%rip), %rdx      # 0xb0b1
leaq 0x28(%rsp), %rdi
callq 0x46e8
leaq 0xb790(%rip), %rsi      # 0xf228
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %rbx, %rdi
movl $0x11, %r8d
callq 0x42b6
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3acc
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3ae7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x75b7(%rip), %rsi      # 0xb0b2
leaq 0x75b2(%rip), %rdx      # 0xb0b4
callq 0x46e8
leaq 0x8(%rsp), %rdx
movl $0x1, %esi
movq 0x48(%rsp), %rdi
callq 0x4c10
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3b37
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x7567(%rip), %rsi      # 0xb0b2
leaq 0x7562(%rip), %rdx      # 0xb0b4
callq 0x46e8
leaq 0x28(%rsp), %rdi
movl $0x1, %edx
movq 0x48(%rsp), %rsi
callq 0x52ec
leaq 0x60(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x7528(%rip), %rsi      # 0xb0a3
leaq 0x752f(%rip), %rdx      # 0xb0b1
leaq 0x50(%rsp), %rdi
callq 0x46e8
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x50(%rsp), %rcx
movq %rbx, %rdi
movl $0x13, %r8d
callq 0x42b6
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x3bc5
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3be1
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3bfd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movb $0x1, 0x28(%rsp)
movl $0x1, %esi
movq 0x48(%rsp), %rdi
callq 0x59cc
movb %al, 0x50(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x747a(%rip), %rsi      # 0xb0a3
leaq 0x7481(%rip), %rdx      # 0xb0b1
callq 0x46e8
leaq 0x28(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl $0x14, %r8d
callq 0x43d8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3c6e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x8(%rsp), %rdi
movl $0x1, %edx
movq 0x48(%rsp), %rsi
callq 0x52ec
leaq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
movq %rax, (%rdi)
leaq 0x740d(%rip), %rsi      # 0xb0a3
leaq 0x7414(%rip), %rdx      # 0xb0b1
callq 0x46e8
leaq 0xb57f(%rip), %rsi      # 0xf228
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %rbx, %rdi
movl $0x15, %r8d
callq 0x42b6
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3cdd
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3cf9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movb $0x0, 0x28(%rsp)
movl $0x1, %esi
movq 0x48(%rsp), %rdi
callq 0x59cc
movb %al, 0x50(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x737e(%rip), %rsi      # 0xb0a3
leaq 0x7385(%rip), %rdx      # 0xb0b1
callq 0x46e8
leaq 0x28(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl $0x16, %r8d
callq 0x43d8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3d6a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %r15
movq %rbx, %rdi
callq 0x44c8
cmpq $0x0, 0x70(%rsp)
je 0x3ea0
xorl %r14d, %r14d
leaq 0x8(%rsp), %r12
leaq 0x28(%rsp), %r13
leaq 0x50(%rsp), %rbp
leaq 0x1(%r14), %rbx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r12, %rdi
movq %rbx, %rsi
movl $0x73, %edx
callq 0x32a0
movq 0x48(%rsp), %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x4c10
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3ddd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r12, %rdi
movq %rbx, %rsi
movl $0x73, %edx
callq 0x32a0
movq %r13, %rdi
movq 0x48(%rsp), %rsi
movq %r14, %rdx
callq 0x52ec
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %rbp, %rdi
leaq 0x7288(%rip), %rsi      # 0xb0a3
leaq 0x728f(%rip), %rdx      # 0xb0b1
callq 0x46e8
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movl $0x1d, %r8d
callq 0x42b6
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x3e5a
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3e76
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3e92
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %r14
cmpq %rbx, 0x70(%rsp)
jne 0x3d93
movq %r15, %rdi
callq 0x44c8
cmpq $0x0, 0x70(%rsp)
je 0x3f8c
xorl %ebx, %ebx
leaq 0x8(%rsp), %r14
leaq 0x28(%rsp), %r12
leaq 0x50(%rsp), %r13
leaq 0x1(%rbx), %rbp
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r14, %rdi
movq %rbp, %rsi
movl $0x73, %edx
callq 0x32a0
movq %r12, %rdi
movq 0x48(%rsp), %rsi
movq %rbx, %rdx
callq 0x52ec
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %r13, %rdi
leaq 0x719c(%rip), %rsi      # 0xb0a3
leaq 0x71a3(%rip), %rdx      # 0xb0b1
callq 0x46e8
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %r13, %rcx
movl $0x23, %r8d
callq 0x42b6
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x3f46
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3f62
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3f7e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbp, %rbx
cmpq %rbp, 0x70(%rsp)
jne 0x3ec5
movq %r15, %rdi
callq 0x44c8
cmpq $0x0, 0x70(%rsp)
je 0x412d
xorl %ebx, %ebx
leaq 0x7108(%rip), %r12      # 0xb0b1
leaq 0x8(%rsp), %r13
leaq 0x28(%rsp), %rbp
leaq 0x50(%rsp), %r14
movb $0x1, 0x28(%rsp)
movq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0x59cc
movb %al, 0x50(%rsp)
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdi
leaq 0x70c1(%rip), %rsi      # 0xb0a3
movq %r12, %rdx
callq 0x46e8
movq %r15, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %r13, %rcx
movl $0x28, %r8d
callq 0x43d8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x401d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
addq $0x2, %rbx
cmpq 0x70(%rsp), %rbx
jb 0x3fb8
xorl %r12d, %r12d
leaq 0x8(%rsp), %r14
leaq 0x28(%rsp), %r13
leaq 0x7067(%rip), %rbx      # 0xb0a3
leaq 0x50(%rsp), %rbp
testb $0x1, %r12b
jne 0x406c
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xb1d0(%rip), %rsi      # 0xf228
movq 0xb1d1(%rip), %rdx      # 0xf230
addq %rsi, %rdx
movq %r14, %rdi
callq 0x4658
jmp 0x4088
leaq 0x1(%r12), %rsi
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r14, %rdi
movl $0x73, %edx
callq 0x32a0
movq %r13, %rdi
movq 0x48(%rsp), %rsi
movq %r12, %rdx
callq 0x52ec
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %rbp, %rdi
movq %rbx, %rsi
leaq 0x7002(%rip), %rdx      # 0xb0b1
callq 0x46e8
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movl $0x2c, %r8d
callq 0x42b6
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x40e7
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4103
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x411f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
incq %r12
cmpq %r12, 0x70(%rsp)
jne 0x4041
cmpq $0x2, 0x70(%rsp)
jb 0x41c6
movl $0x1, %ebx
leaq 0x6f6c(%rip), %r12      # 0xb0b1
leaq 0x8(%rsp), %r13
leaq 0x28(%rsp), %rbp
leaq 0x50(%rsp), %r14
movl %ebx, %eax
andb $0x1, %al
movb %al, 0x28(%rsp)
movq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0x59cc
movb %al, 0x50(%rsp)
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdi
leaq 0x6f22(%rip), %rsi      # 0xb0a3
movq %r12, %rdx
callq 0x46e8
movq %r15, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %r13, %rcx
movl $0x2f, %r8d
callq 0x43d8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x41bc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
incq %rbx
cmpq %rbx, 0x70(%rsp)
jne 0x4154
movq %r15, %rdi
callq 0x44c8
movq %r15, %rdi
callq 0x45ca
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x424d
jmp 0x4248
jmp 0x4252
jmp 0x424d
jmp 0x424d
jmp 0x4248
jmp 0x4257
jmp 0x4252
jmp 0x424d
jmp 0x4248
jmp 0x424d
jmp 0x4248
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4221
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4221
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x429c
jmp 0x4248
jmp 0x424d
jmp 0x4248
jmp 0x424d
jmp 0x4252
jmp 0x4257
jmp 0x4248
jmp 0x424d
jmp 0x4248
jmp 0x424d
jmp 0x4252
jmp 0x4257
jmp 0x4248
jmp 0x424d
movq %rax, %rbx
jmp 0x42ae
movq %rax, %rbx
jmp 0x4292
movq %rax, %rbx
jmp 0x4276
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x4276
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4292
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x42ae
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x33c0