// File: SeanChao[P]KV-Store/persistence.cc
// Function: PersistenceTest::test(unsigned long)
void test(uint64_t max)
	{
		uint64_t i;
		// Test data
		for (i = 0; i < max; ++i) {
			switch (i & 3) {
			case 0:
				EXPECT(std::string(i+1, 't'), store.get(i));
				break;
			case 1:
				EXPECT(std::string(i+1, 't'), store.get(i));
				break;
			case 2:
				EXPECT(not_found, store.get(i));
				break;
			case 3:
				EXPECT(std::string(i+1, 's'), store.get(i));
				break;
			default:
				assert(0);
			}
		}

		phase();

		report();
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1c8(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x589d
movq -0x18(%rbp), %rax
andl $0x3, %eax
movq %rax, -0x1d0(%rbp)
subq $0x3, %rax
ja 0x586b
movq -0x1d0(%rbp), %rax
leaq 0x10caa(%rip), %rcx     # 0x16004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x1e0(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x4540
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rcx
leaq -0x38(%rbp), %rdi
movl $0x74, %edx
callq 0x68e0
jmp 0x539f
movq -0x1c8(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x70(%rbp), %rdi
callq 0x7cb0
jmp 0x53b9
leaq -0x91(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x4540
movq -0x1e8(%rbp), %rdx
leaq 0x10e25(%rip), %rsi     # 0x161ff
leaq -0x90(%rbp), %rdi
callq 0x5020
jmp 0x53e8
movq -0x1c8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x70(%rbp), %rdx
leaq -0x90(%rbp), %rcx
movl $0x63, %r8d
callq 0x67e0
jmp 0x540b
leaq -0x90(%rbp), %rdi
callq 0x45d8
leaq -0x91(%rbp), %rdi
callq 0x4340
leaq -0x70(%rbp), %rdi
callq 0x45d8
leaq -0x38(%rbp), %rdi
callq 0x45d8
leaq -0x39(%rbp), %rdi
callq 0x4340
jmp 0x588a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x54a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x549a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5485
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x45d8
leaq -0x91(%rbp), %rdi
callq 0x4340
leaq -0x70(%rbp), %rdi
callq 0x45d8
leaq -0x38(%rbp), %rdi
callq 0x45d8
leaq -0x39(%rbp), %rdi
callq 0x4340
jmp 0x58be
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x1f8(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x4540
movq -0x1f8(%rbp), %rsi
movq -0x1f0(%rbp), %rcx
leaq -0xb8(%rbp), %rdi
movl $0x74, %edx
callq 0x68e0
jmp 0x54f3
movq -0x1c8(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0xe0(%rbp), %rdi
callq 0x7cb0
jmp 0x5510
leaq -0x101(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x4540
movq -0x200(%rbp), %rdx
leaq 0x10cce(%rip), %rsi     # 0x161ff
leaq -0x100(%rbp), %rdi
callq 0x5020
jmp 0x553f
movq -0x1c8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
leaq -0x100(%rbp), %rcx
movl $0x66, %r8d
callq 0x67e0
jmp 0x5568
leaq -0x100(%rbp), %rdi
callq 0x45d8
leaq -0x101(%rbp), %rdi
callq 0x4340
leaq -0xe0(%rbp), %rdi
callq 0x45d8
leaq -0xb8(%rbp), %rdi
callq 0x45d8
leaq -0xb9(%rbp), %rdi
callq 0x4340
jmp 0x588a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x560f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5603
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x55eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x45d8
leaq -0x101(%rbp), %rdi
callq 0x4340
leaq -0xe0(%rbp), %rdi
callq 0x45d8
leaq -0xb8(%rbp), %rdi
callq 0x45d8
leaq -0xb9(%rbp), %rdi
callq 0x4340
jmp 0x58be
movq -0x1c8(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x128(%rbp), %rdi
callq 0x7cb0
leaq -0x149(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x4540
movq -0x208(%rbp), %rdx
leaq 0x10ba3(%rip), %rsi     # 0x161ff
leaq -0x148(%rbp), %rdi
callq 0x5020
jmp 0x566a
movq -0x1c8(%rbp), %rdi
leaq 0x19c98(%rip), %rsi     # 0x1f310
leaq -0x128(%rbp), %rdx
leaq -0x148(%rbp), %rcx
movl $0x69, %r8d
callq 0x67e0
jmp 0x5693
leaq -0x148(%rbp), %rdi
callq 0x45d8
leaq -0x149(%rbp), %rdi
callq 0x4340
leaq -0x128(%rbp), %rdi
callq 0x45d8
jmp 0x588a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x56e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x45d8
leaq -0x149(%rbp), %rdi
callq 0x4340
leaq -0x128(%rbp), %rdi
callq 0x45d8
jmp 0x58be
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x218(%rbp)
leaq -0x171(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x4540
movq -0x218(%rbp), %rsi
movq -0x210(%rbp), %rcx
leaq -0x170(%rbp), %rdi
movl $0x73, %edx
callq 0x68e0
jmp 0x5741
movq -0x1c8(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x198(%rbp), %rdi
callq 0x7cb0
jmp 0x575e
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x4540
movq -0x220(%rbp), %rdx
leaq 0x10a80(%rip), %rsi     # 0x161ff
leaq -0x1b8(%rbp), %rdi
callq 0x5020
jmp 0x578d
movq -0x1c8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x198(%rbp), %rdx
leaq -0x1b8(%rbp), %rcx
movl $0x6c, %r8d
callq 0x67e0
jmp 0x57b6
leaq -0x1b8(%rbp), %rdi
callq 0x45d8
leaq -0x1b9(%rbp), %rdi
callq 0x4340
leaq -0x198(%rbp), %rdi
callq 0x45d8
leaq -0x170(%rbp), %rdi
callq 0x45d8
leaq -0x171(%rbp), %rdi
callq 0x4340
jmp 0x588a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x585d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5851
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5839
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x45d8
leaq -0x1b9(%rbp), %rdi
callq 0x4340
leaq -0x198(%rbp), %rdi
callq 0x45d8
leaq -0x170(%rbp), %rdi
callq 0x45d8
leaq -0x171(%rbp), %rdi
callq 0x4340
jmp 0x58be
leaq 0x1099c(%rip), %rdi     # 0x1620e
leaq 0x10986(%rip), %rsi     # 0x161ff
movl $0x6f, %edx
leaq 0x1098b(%rip), %rcx     # 0x16210
callq 0x41f0
jmp 0x588c
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5326
movq -0x1c8(%rbp), %rdi
callq 0x6950
movq -0x1c8(%rbp), %rdi
callq 0x6a80
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x4530
nopw (%rax,%rax)