// File: SeanChao[P]KV-Store/persistence.cc
// Function: PersistenceTest::prepare(unsigned long)
void prepare(uint64_t max)
	{
		uint64_t i;

		// Clean up
		store.reset();

		// 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));

		// Prepare data for Test Mode
		for (i = 0; i < max; ++i) {
			switch (i & 3) {
			case 0:
				EXPECT(not_found, store.get(i));
				store.put(i, std::string(i+1, 't'));
				break;
			case 1:
				EXPECT(std::string(i+1, 's'), store.get(i));
				store.put(i, std::string(i+1, 't'));
				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();

		/**
		 * Write 10MB data to drain previous data out of memory.
		 */
		for (i = 0; i <= 10240; ++i)
			store.put(max + i, std::string(1024, 'x'));

		std::cout << "Data is ready, please press ctrl-c/ctrl-d to"
			" terminate this program!" << std::endl;
		std::cout.flush();

		while (true) {
			volatile int dummy;
			for (i = 0; i <= 1024; ++i) {
				// The loop slows down the program
				for (i = 0; i <= 1000; ++i)
					dummy = i;

				store.del(max + i);

				for (i = 0; i <= 1000; ++i)
					dummy = i;

				store.put(max + i, std::string(1024, '.'));

				for (i = 0; i <= 1000; ++i)
					dummy = i;

				store.put(max + i, std::string(512, 'x'));
			}
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4c0, %rsp            # imm = 0x4C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x398(%rbp)
addq $0x28, %rdi
callq 0x8840
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x5b24
movq -0x398(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x3b8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x3b0(%rbp)
incq %rax
movq %rax, -0x3a8(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x4540
movq -0x3a8(%rbp), %rsi
movq -0x3a0(%rbp), %rcx
leaq -0x38(%rbp), %rdi
movl $0x73, %edx
callq 0x68e0
jmp 0x5962
movq -0x3b0(%rbp), %rsi
movq -0x3b8(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x7460
jmp 0x597b
leaq -0x38(%rbp), %rdi
callq 0x45d8
leaq -0x39(%rbp), %rdi
callq 0x4340
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x3c8(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x4540
movq -0x3c8(%rbp), %rsi
movq -0x3c0(%rbp), %rcx
leaq -0x70(%rbp), %rdi
movl $0x73, %edx
callq 0x68e0
jmp 0x59c9
movq -0x398(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0x7cb0
jmp 0x59e6
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x4540
movq -0x3d0(%rbp), %rdx
leaq 0x107f8(%rip), %rsi     # 0x161ff
leaq -0xb8(%rbp), %rdi
callq 0x5020
jmp 0x5a15
movq -0x398(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x98(%rbp), %rdx
leaq -0xb8(%rbp), %rcx
movl $0x15, %r8d
callq 0x67e0
jmp 0x5a3b
leaq -0xb8(%rbp), %rdi
callq 0x45d8
leaq -0xb9(%rbp), %rdi
callq 0x4340
leaq -0x98(%rbp), %rdi
callq 0x45d8
leaq -0x70(%rbp), %rdi
callq 0x45d8
leaq -0x71(%rbp), %rdi
callq 0x4340
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x58ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5aa5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x45d8
leaq -0x39(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5b16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5b0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5af5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x45d8
leaq -0xb9(%rbp), %rdi
callq 0x4340
leaq -0x98(%rbp), %rdi
callq 0x45d8
leaq -0x70(%rbp), %rdi
callq 0x45d8
leaq -0x71(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq -0x398(%rbp), %rdi
callq 0x6950
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x5cc1
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x3e0(%rbp)
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x4540
movq -0x3e0(%rbp), %rsi
movq -0x3d8(%rbp), %rcx
leaq -0xe0(%rbp), %rdi
movl $0x73, %edx
callq 0x68e0
jmp 0x5b88
movq -0x398(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x108(%rbp), %rdi
callq 0x7cb0
jmp 0x5ba5
leaq -0x129(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x4540
movq -0x3e8(%rbp), %rdx
leaq 0x10639(%rip), %rsi     # 0x161ff
leaq -0x128(%rbp), %rdi
callq 0x5020
jmp 0x5bd4
movq -0x398(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x108(%rbp), %rdx
leaq -0x128(%rbp), %rcx
movl $0x1b, %r8d
callq 0x67e0
jmp 0x5bfd
leaq -0x128(%rbp), %rdi
callq 0x45d8
leaq -0x129(%rbp), %rdi
callq 0x4340
leaq -0x108(%rbp), %rdi
callq 0x45d8
leaq -0xe0(%rbp), %rdi
callq 0x45d8
leaq -0xe1(%rbp), %rdi
callq 0x4340
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5b38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5cb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5ca4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5c8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x45d8
leaq -0x129(%rbp), %rdi
callq 0x4340
leaq -0x108(%rbp), %rdi
callq 0x45d8
leaq -0xe0(%rbp), %rdi
callq 0x45d8
leaq -0xe1(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq -0x398(%rbp), %rdi
callq 0x6950
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x5dbc
movq -0x398(%rbp), %rdi
movb $0x1, -0x12a(%rbp)
addq $0x28, %rdi
movq -0x18(%rbp), %rsi
callq 0x84f0
movb %al, -0x12b(%rbp)
leaq -0x151(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x4540
movq -0x3f0(%rbp), %rdx
leaq 0x104da(%rip), %rsi     # 0x161ff
leaq -0x150(%rbp), %rdi
callq 0x5020
jmp 0x5d33
movq -0x398(%rbp), %rdi
leaq -0x12a(%rbp), %rsi
leaq -0x12b(%rbp), %rdx
leaq -0x150(%rbp), %rcx
movl $0x20, %r8d
callq 0x6c50
jmp 0x5d5c
leaq -0x150(%rbp), %rdi
callq 0x45d8
leaq -0x151(%rbp), %rdi
callq 0x4340
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x18(%rbp)
jmp 0x5cd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5dab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x45d8
leaq -0x151(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x645b
movq -0x18(%rbp), %rax
andl $0x3, %eax
movq %rax, -0x3f8(%rbp)
subq $0x3, %rax
ja 0x6429
movq -0x3f8(%rbp), %rax
leaq 0x1021c(%rip), %rcx     # 0x16014
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x398(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x178(%rbp), %rdi
callq 0x7cb0
leaq -0x199(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x4540
movq -0x400(%rbp), %rdx
leaq 0x103c2(%rip), %rsi     # 0x161ff
leaq -0x198(%rbp), %rdi
callq 0x5020
jmp 0x5e4b
movq -0x398(%rbp), %rdi
leaq 0x194b7(%rip), %rsi     # 0x1f310
leaq -0x178(%rbp), %rdx
leaq -0x198(%rbp), %rcx
movl $0x26, %r8d
callq 0x67e0
jmp 0x5e74
leaq -0x198(%rbp), %rdi
callq 0x45d8
leaq -0x199(%rbp), %rdi
callq 0x4340
leaq -0x178(%rbp), %rdi
callq 0x45d8
movq -0x398(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x420(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x418(%rbp)
incq %rax
movq %rax, -0x410(%rbp)
leaq -0x1c1(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x4540
movq -0x410(%rbp), %rsi
movq -0x408(%rbp), %rcx
leaq -0x1c0(%rbp), %rdi
movl $0x74, %edx
callq 0x68e0
jmp 0x5ef3
movq -0x418(%rbp), %rsi
movq -0x420(%rbp), %rdi
leaq -0x1c0(%rbp), %rdx
callq 0x7460
jmp 0x5f0f
leaq -0x1c0(%rbp), %rdi
callq 0x45d8
leaq -0x1c1(%rbp), %rdi
callq 0x4340
jmp 0x6448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5f52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x45d8
leaq -0x199(%rbp), %rdi
callq 0x4340
leaq -0x178(%rbp), %rdi
callq 0x45d8
jmp 0x67ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5f95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x45d8
leaq -0x1c1(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x430(%rbp)
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x4540
movq -0x430(%rbp), %rsi
movq -0x428(%rbp), %rcx
leaq -0x1e8(%rbp), %rdi
movl $0x73, %edx
callq 0x68e0
jmp 0x5fe8
movq -0x398(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x210(%rbp), %rdi
callq 0x7cb0
jmp 0x6005
leaq -0x231(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x4540
movq -0x438(%rbp), %rdx
leaq 0x101d9(%rip), %rsi     # 0x161ff
leaq -0x230(%rbp), %rdi
callq 0x5020
jmp 0x6034
movq -0x398(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
leaq -0x210(%rbp), %rdx
leaq -0x230(%rbp), %rcx
movl $0x2a, %r8d
callq 0x67e0
jmp 0x605d
leaq -0x230(%rbp), %rdi
callq 0x45d8
leaq -0x231(%rbp), %rdi
callq 0x4340
leaq -0x210(%rbp), %rdi
callq 0x45d8
leaq -0x1e8(%rbp), %rdi
callq 0x45d8
leaq -0x1e9(%rbp), %rdi
callq 0x4340
movq -0x398(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x458(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x450(%rbp)
incq %rax
movq %rax, -0x448(%rbp)
leaq -0x259(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x4540
movq -0x448(%rbp), %rsi
movq -0x440(%rbp), %rcx
leaq -0x258(%rbp), %rdi
movl $0x74, %edx
callq 0x68e0
jmp 0x60f4
movq -0x450(%rbp), %rsi
movq -0x458(%rbp), %rdi
leaq -0x258(%rbp), %rdx
callq 0x7460
jmp 0x6110
leaq -0x258(%rbp), %rdi
callq 0x45d8
leaq -0x259(%rbp), %rdi
callq 0x4340
jmp 0x6448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6193
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6187
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x616f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x45d8
leaq -0x231(%rbp), %rdi
callq 0x4340
leaq -0x210(%rbp), %rdi
callq 0x45d8
leaq -0x1e8(%rbp), %rdi
callq 0x45d8
leaq -0x1e9(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x45d8
leaq -0x259(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq -0x398(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x280(%rbp), %rdi
callq 0x7cb0
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x4540
movq -0x460(%rbp), %rdx
leaq 0xffe8(%rip), %rsi      # 0x161ff
leaq -0x2a0(%rbp), %rdi
callq 0x5020
jmp 0x6225
movq -0x398(%rbp), %rdi
leaq 0x190dd(%rip), %rsi     # 0x1f310
leaq -0x280(%rbp), %rdx
leaq -0x2a0(%rbp), %rcx
movl $0x2e, %r8d
callq 0x67e0
jmp 0x624e
leaq -0x2a0(%rbp), %rdi
callq 0x45d8
leaq -0x2a1(%rbp), %rdi
callq 0x4340
leaq -0x280(%rbp), %rdi
callq 0x45d8
jmp 0x6448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x629d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x45d8
leaq -0x2a1(%rbp), %rdi
callq 0x4340
leaq -0x280(%rbp), %rdi
callq 0x45d8
jmp 0x67ca
movq -0x18(%rbp), %rax
incq %rax
movq %rax, -0x470(%rbp)
leaq -0x2c9(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x4540
movq -0x470(%rbp), %rsi
movq -0x468(%rbp), %rcx
leaq -0x2c8(%rbp), %rdi
movl $0x73, %edx
callq 0x68e0
jmp 0x62fc
movq -0x398(%rbp), %rsi
addq $0x28, %rsi
movq -0x18(%rbp), %rdx
leaq -0x2f0(%rbp), %rdi
callq 0x7cb0
jmp 0x6319
leaq -0x311(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x4540
movq -0x478(%rbp), %rdx
leaq 0xfec5(%rip), %rsi      # 0x161ff
leaq -0x310(%rbp), %rdi
callq 0x5020
jmp 0x6348
movq -0x398(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
leaq -0x310(%rbp), %rcx
movl $0x31, %r8d
callq 0x67e0
jmp 0x6371
leaq -0x310(%rbp), %rdi
callq 0x45d8
leaq -0x311(%rbp), %rdi
callq 0x4340
leaq -0x2f0(%rbp), %rdi
callq 0x45d8
leaq -0x2c8(%rbp), %rdi
callq 0x45d8
leaq -0x2c9(%rbp), %rdi
callq 0x4340
jmp 0x6448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6418
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x640c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x45d8
leaq -0x311(%rbp), %rdi
callq 0x4340
leaq -0x2f0(%rbp), %rdi
callq 0x45d8
leaq -0x2c8(%rbp), %rdi
callq 0x45d8
leaq -0x2c9(%rbp), %rdi
callq 0x4340
jmp 0x67ca
leaq 0xfdde(%rip), %rdi      # 0x1620e
leaq 0xfdc8(%rip), %rsi      # 0x161ff
movl $0x34, %edx
leaq 0xfe34(%rip), %rcx      # 0x16277
callq 0x41f0
jmp 0x644a
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5dc4
movq -0x398(%rbp), %rdi
callq 0x6950
movq -0x398(%rbp), %rdi
callq 0x6a80
movq $0x0, -0x18(%rbp)
cmpq $0x2800, -0x18(%rbp)    # imm = 0x2800
ja 0x655b
movq -0x398(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x490(%rbp)
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x488(%rbp)
leaq -0x339(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x4540
movq -0x480(%rbp), %rcx
leaq -0x338(%rbp), %rdi
movl $0x400, %esi            # imm = 0x400
movl $0x78, %edx
callq 0x68e0
jmp 0x64df
movq -0x488(%rbp), %rsi
movq -0x490(%rbp), %rdi
leaq -0x338(%rbp), %rdx
callq 0x7460
jmp 0x64fb
leaq -0x338(%rbp), %rdi
callq 0x45d8
leaq -0x339(%rbp), %rdi
callq 0x4340
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x647b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x654a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x45d8
leaq -0x339(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq 0x18a6e(%rip), %rdi     # 0x1efd0
leaq 0xfd36(%rip), %rsi      # 0x1629f
callq 0x42f0
movq %rax, %rdi
movq 0x18a38(%rip), %rsi     # 0x1efb0
callq 0x4320
movq 0x18a4c(%rip), %rdi     # 0x1efd0
callq 0x4210
movq $0x0, -0x18(%rbp)
cmpq $0x400, -0x18(%rbp)     # imm = 0x400
ja 0x67c5
movq $0x0, -0x18(%rbp)
cmpq $0x3e8, -0x18(%rbp)     # imm = 0x3E8
ja 0x65c9
movq -0x18(%rbp), %rax
movl %eax, -0x340(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x65a7
movq -0x398(%rbp), %rdi
addq $0x28, %rdi
movq -0x10(%rbp), %rsi
addq -0x18(%rbp), %rsi
callq 0x84f0
movq $0x0, -0x18(%rbp)
cmpq $0x3e8, -0x18(%rbp)     # imm = 0x3E8
ja 0x660b
movq -0x18(%rbp), %rax
movl %eax, -0x340(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x65e9
movq -0x398(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x4a8(%rbp)
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x4a0(%rbp)
leaq -0x361(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x4540
movq -0x498(%rbp), %rcx
leaq -0x360(%rbp), %rdi
movl $0x400, %esi            # imm = 0x400
movl $0x2e, %edx
callq 0x68e0
jmp 0x6661
movq -0x4a0(%rbp), %rsi
movq -0x4a8(%rbp), %rdi
leaq -0x360(%rbp), %rdx
callq 0x7460
jmp 0x667d
leaq -0x360(%rbp), %rdi
callq 0x45d8
leaq -0x361(%rbp), %rdi
callq 0x4340
movq $0x0, -0x18(%rbp)
cmpq $0x3e8, -0x18(%rbp)     # imm = 0x3E8
ja 0x66f6
movq -0x18(%rbp), %rax
movl %eax, -0x340(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x669d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x66e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x45d8
leaq -0x361(%rbp), %rdi
callq 0x4340
jmp 0x67ca
movq -0x398(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x4c0(%rbp)
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x4b8(%rbp)
leaq -0x389(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x4540
movq -0x4b0(%rbp), %rcx
leaq -0x388(%rbp), %rdi
movl $0x200, %esi            # imm = 0x200
movl $0x78, %edx
callq 0x68e0
jmp 0x674c
movq -0x4b8(%rbp), %rsi
movq -0x4c0(%rbp), %rdi
leaq -0x388(%rbp), %rdx
callq 0x7460
jmp 0x6768
leaq -0x388(%rbp), %rdi
callq 0x45d8
leaq -0x389(%rbp), %rdi
callq 0x4340
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x6591
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x67b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x45d8
leaq -0x389(%rbp), %rdi
callq 0x4340
jmp 0x67ca
jmp 0x6589
movq -0x48(%rbp), %rdi
callq 0x4530
nopw %cs:(%rax,%rax)
nopl (%rax)