// File: /workspace/github_cpp_makefile_star2_O3/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 0x52d6
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x763b(%rip), %rsi      # 0xb0a3
leaq 0x7642(%rip), %rdx      # 0xb0b1
leaq 0x28(%rsp), %rdi
callq 0x46d4
leaq 0xb7a8(%rip), %rsi      # 0xf228
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %rbx, %rdi
movl $0x11, %r8d
callq 0x429c
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3ab4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3acf
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x75cf(%rip), %rsi      # 0xb0b2
leaq 0x75ca(%rip), %rdx      # 0xb0b4
callq 0x46d4
leaq 0x8(%rsp), %rdx
movl $0x1, %esi
movq 0x48(%rsp), %rdi
callq 0x4bf0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3b1f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x757f(%rip), %rsi      # 0xb0b2
leaq 0x757a(%rip), %rdx      # 0xb0b4
callq 0x46d4
leaq 0x28(%rsp), %rdi
movl $0x1, %edx
movq 0x48(%rsp), %rsi
callq 0x52d6
leaq 0x60(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x7540(%rip), %rsi      # 0xb0a3
leaq 0x7547(%rip), %rdx      # 0xb0b1
leaq 0x50(%rsp), %rdi
callq 0x46d4
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x50(%rsp), %rcx
movq %rbx, %rdi
movl $0x13, %r8d
callq 0x429c
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x3bad
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3bc9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3be5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movb $0x1, 0x28(%rsp)
movl $0x1, %esi
movq 0x48(%rsp), %rdi
callq 0x59ac
movb %al, 0x50(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x7492(%rip), %rsi      # 0xb0a3
leaq 0x7499(%rip), %rdx      # 0xb0b1
callq 0x46d4
leaq 0x28(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl $0x14, %r8d
callq 0x43be
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3c56
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
leaq 0x8(%rsp), %rdi
movl $0x1, %edx
movq 0x48(%rsp), %rsi
callq 0x52d6
leaq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
movq %rax, (%rdi)
leaq 0x7425(%rip), %rsi      # 0xb0a3
leaq 0x742c(%rip), %rdx      # 0xb0b1
callq 0x46d4
leaq 0xb597(%rip), %rsi      # 0xf228
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %rbx, %rdi
movl $0x15, %r8d
callq 0x429c
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3cc5
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3ce1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movb $0x0, 0x28(%rsp)
movl $0x1, %esi
movq 0x48(%rsp), %rdi
callq 0x59ac
movb %al, 0x50(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x7396(%rip), %rsi      # 0xb0a3
leaq 0x739d(%rip), %rdx      # 0xb0b1
callq 0x46d4
leaq 0x28(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
movl $0x16, %r8d
callq 0x43be
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3d52
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x44ae
cmpq $0x0, 0x70(%rsp)
je 0x4198
movq %rbx, %r15
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 0x4bf0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3dc5
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 0x52d6
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %rbp, %rdi
leaq 0x72a0(%rip), %rsi      # 0xb0a3
leaq 0x72a7(%rip), %rdx      # 0xb0b1
callq 0x46d4
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movl $0x1d, %r8d
callq 0x429c
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x3e42
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3e5e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3e7a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %r14
cmpq %rbx, 0x70(%rsp)
jne 0x3d7b
movq %r15, %rdi
callq 0x44ae
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 0x52d6
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %r13, %rdi
leaq 0x71c0(%rip), %rsi      # 0xb0a3
leaq 0x71c7(%rip), %rdx      # 0xb0b1
callq 0x46d4
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %r13, %rcx
movl $0x23, %r8d
callq 0x429c
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x3f22
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3f3e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3f5a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbp, %rbx
cmpq %rbp, 0x70(%rsp)
jne 0x3ea1
movq %r15, %rdi
callq 0x44ae
xorl %ebx, %ebx
leaq 0x7138(%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 0x59ac
movb %al, 0x50(%rsp)
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdi
leaq 0x70f1(%rip), %rsi      # 0xb0a3
movq %r12, %rdx
callq 0x46d4
movq %r15, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %r13, %rcx
movl $0x28, %r8d
callq 0x43be
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3fed
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
addq $0x2, %rbx
cmpq 0x70(%rsp), %rbx
jb 0x3f88
xorl %r12d, %r12d
leaq 0x8(%rsp), %r14
leaq 0x28(%rsp), %r13
leaq 0x7097(%rip), %rbx      # 0xb0a3
leaq 0x50(%rsp), %rbp
testb $0x1, %r12b
jne 0x403c
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xb200(%rip), %rsi      # 0xf228
movq 0xb201(%rip), %rdx      # 0xf230
addq %rsi, %rdx
movq %r14, %rdi
callq 0x463e
jmp 0x4058
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 0x52d6
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %rbp, %rdi
movq %rbx, %rsi
leaq 0x7032(%rip), %rdx      # 0xb0b1
callq 0x46d4
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbp, %rcx
movl $0x2c, %r8d
callq 0x429c
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x40b7
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x40d3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x40ef
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
incq %r12
cmpq %r12, 0x70(%rsp)
jne 0x4011
cmpq $0x1, 0x70(%rsp)
je 0x41ab
movl $0x1, %ebx
leaq 0x6f9c(%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 0x59ac
movb %al, 0x50(%rsp)
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdi
leaq 0x6f52(%rip), %rsi      # 0xb0a3
movq %r12, %rdx
callq 0x46d4
movq %r15, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %r13, %rcx
movl $0x2f, %r8d
callq 0x43be
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x418c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
incq %rbx
cmpq %rbx, 0x70(%rsp)
jne 0x4124
jmp 0x41ab
movq %rbx, %rdi
callq 0x44ae
movq %rbx, %r15
movq %rbx, %rdi
callq 0x44ae
movq %r15, %rdi
callq 0x44ae
movq %r15, %rdi
callq 0x45b0
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4232
jmp 0x422d
jmp 0x4237
jmp 0x4232
jmp 0x4232
jmp 0x422d
jmp 0x423c
jmp 0x4237
jmp 0x4232
jmp 0x422d
jmp 0x4232
jmp 0x422d
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4206
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4206
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x4281
jmp 0x422d
jmp 0x4232
jmp 0x422d
jmp 0x4232
jmp 0x4237
jmp 0x423c
jmp 0x422d
jmp 0x4232
jmp 0x422d
jmp 0x4232
jmp 0x4237
jmp 0x423c
jmp 0x422d
jmp 0x4232
movq %rax, %rbx
jmp 0x4293
movq %rax, %rbx
jmp 0x4277
movq %rax, %rbx
jmp 0x425b
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x425b
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4277
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x3260
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4293
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
movq %rbx, %rdi
callq 0x33c0
nop