// File: xx01cyx[P]LSM-Tree/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();

		vector<uint64_t> testKeys;
		for (i = 0; i < max; ++i)
            testKeys.push_back(i);

		// Test multiple key-value pairs

        std::shuffle(testKeys.begin(), testKeys.end(), std::mt19937(std::random_device()()));
        for (i = 0; i < max; ++i) {
		    uint64_t key = testKeys[i];
			store.put(key, std::string(key+1, 's'));
			EXPECT(std::string(key + 1, 's'), store.get(key));
		}
		phase();

		// Test after all insertions

        std::shuffle(testKeys.begin(), testKeys.end(), std::mt19937(std::random_device()()));
        for (i = 0; i < max; ++i) {
		    uint64_t key = testKeys[i];
            EXPECT(std::string(key + 1, 's'), store.get(key));
        }
		phase();

		// Test deletions

        vector<uint64_t> evenKeys;
        for (i = 0; i < max; i += 2)
            evenKeys.push_back(i);

        vector<uint64_t> oddKeys;
        for (i = 1; i < max; i += 2)
            oddKeys.push_back(i);

        std::shuffle(testKeys.begin(), testKeys.end(), std::mt19937(std::random_device()()));
        std::shuffle(evenKeys.begin(), evenKeys.end(), std::mt19937(std::random_device()()));
        std::shuffle(oddKeys.begin(), oddKeys.end(), std::mt19937(std::random_device()()));

        uint64_t evenNumber = evenKeys.size();
        uint64_t oddNumber = oddKeys.size();

        for (i = 0; i < evenNumber; ++i) {
            uint64_t key = evenKeys[i];
            EXPECT(true, store.del(key));
        }

		for (i = 0; i < max; ++i) {
            uint64_t key = testKeys[i];
            EXPECT((key & 1) ? std::string(key + 1, 's') : not_found,
                   store.get(key));
        }

		for (i = 1; i < oddNumber; ++i) {
            uint64_t key = oddKeys[i];
            EXPECT(key & 1, store.del(key));
        }

		phase();

		report();
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc8b0, %rsp           # imm = 0xC8B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0xc7a8(%rbp)
addq $0x28, %rsi
leaq -0x38(%rbp), %rdi
movl $0x1, %edx
callq 0x10b60
leaq -0x59(%rbp), %rdi
movq %rdi, -0xc7a0(%rbp)
callq 0x4570
movq -0xc7a0(%rbp), %rdx
leaq 0x1e255(%rip), %rsi     # 0x230a3
leaq -0x58(%rbp), %rdi
callq 0x4b40
jmp 0x4e59
movq -0xc7a8(%rbp), %rdi
leaq 0x2d4c1(%rip), %rsi     # 0x32328
leaq -0x38(%rbp), %rdx
leaq -0x58(%rbp), %rcx
movl $0x11, %r8d
callq 0x60d0
jmp 0x4e7c
leaq -0x58(%rbp), %rdi
callq 0x4608
leaq -0x59(%rbp), %rdi
callq 0x4320
leaq -0x38(%rbp), %rdi
callq 0x4608
movq -0xc7a8(%rbp), %rax
addq $0x28, %rax
movq %rax, -0xc7b8(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0xc7b0(%rbp)
callq 0x4570
movq -0xc7b0(%rbp), %rdx
leaq 0x1e1e8(%rip), %rsi     # 0x230b2
leaq -0x90(%rbp), %rdi
callq 0x4b40
jmp 0x4ed8
movq -0xc7b8(%rbp), %rdi
movl $0x1, %esi
leaq -0x90(%rbp), %rdx
callq 0x10a70
jmp 0x4ef2
leaq -0x90(%rbp), %rdi
callq 0x4608
leaq -0x91(%rbp), %rdi
callq 0x4320
leaq -0xb9(%rbp), %rdi
movq %rdi, -0xc7c0(%rbp)
callq 0x4570
movq -0xc7c0(%rbp), %rdx
leaq 0x1e187(%rip), %rsi     # 0x230b2
leaq -0xb8(%rbp), %rdi
callq 0x4b40
jmp 0x4f39
movq -0xc7a8(%rbp), %rsi
addq $0x28, %rsi
leaq -0xe0(%rbp), %rdi
movl $0x1, %edx
callq 0x10b60
jmp 0x4f57
leaq -0x101(%rbp), %rdi
movq %rdi, -0xc7c8(%rbp)
callq 0x4570
movq -0xc7c8(%rbp), %rdx
leaq 0x1e12b(%rip), %rsi     # 0x230a3
leaq -0x100(%rbp), %rdi
callq 0x4b40
jmp 0x4f86
movq -0xc7a8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
leaq -0x100(%rbp), %rcx
movl $0x13, %r8d
callq 0x60d0
jmp 0x4faf
leaq -0x100(%rbp), %rdi
callq 0x4608
leaq -0x101(%rbp), %rdi
callq 0x4320
leaq -0xe0(%rbp), %rdi
callq 0x4608
leaq -0xb8(%rbp), %rdi
callq 0x4608
leaq -0xb9(%rbp), %rdi
callq 0x4320
movq -0xc7a8(%rbp), %rdi
movb $0x1, -0x102(%rbp)
addq $0x28, %rdi
movl $0x1, %esi
callq 0x111f0
movb %al, -0x103(%rbp)
leaq -0x129(%rbp), %rdi
movq %rdi, -0xc7d0(%rbp)
callq 0x4570
movq -0xc7d0(%rbp), %rdx
leaq 0x1e075(%rip), %rsi     # 0x230a3
leaq -0x128(%rbp), %rdi
callq 0x4b40
jmp 0x503c
movq -0xc7a8(%rbp), %rdi
leaq -0x102(%rbp), %rsi
leaq -0x103(%rbp), %rdx
leaq -0x128(%rbp), %rcx
movl $0x14, %r8d
callq 0x61d0
jmp 0x5065
leaq -0x128(%rbp), %rdi
callq 0x4608
leaq -0x129(%rbp), %rdi
callq 0x4320
movq -0xc7a8(%rbp), %rsi
addq $0x28, %rsi
leaq -0x150(%rbp), %rdi
movl $0x1, %edx
callq 0x10b60
leaq -0x171(%rbp), %rdi
movq %rdi, -0xc7d8(%rbp)
callq 0x4570
movq -0xc7d8(%rbp), %rdx
leaq 0x1dfe9(%rip), %rsi     # 0x230a3
leaq -0x170(%rbp), %rdi
callq 0x4b40
jmp 0x50c8
movq -0xc7a8(%rbp), %rdi
leaq 0x2d252(%rip), %rsi     # 0x32328
leaq -0x150(%rbp), %rdx
leaq -0x170(%rbp), %rcx
movl $0x15, %r8d
callq 0x60d0
jmp 0x50f1
leaq -0x170(%rbp), %rdi
callq 0x4608
leaq -0x171(%rbp), %rdi
callq 0x4320
leaq -0x150(%rbp), %rdi
callq 0x4608
movq -0xc7a8(%rbp), %rdi
movb $0x0, -0x172(%rbp)
addq $0x28, %rdi
movl $0x1, %esi
callq 0x111f0
movb %al, -0x173(%rbp)
leaq -0x199(%rbp), %rdi
movq %rdi, -0xc7e0(%rbp)
callq 0x4570
movq -0xc7e0(%rbp), %rdx
leaq 0x1df4b(%rip), %rsi     # 0x230a3
leaq -0x198(%rbp), %rdi
callq 0x4b40
jmp 0x5166
movq -0xc7a8(%rbp), %rdi
leaq -0x172(%rbp), %rsi
leaq -0x173(%rbp), %rdx
leaq -0x198(%rbp), %rcx
movl $0x16, %r8d
callq 0x61d0
jmp 0x518f
leaq -0x198(%rbp), %rdi
callq 0x4608
leaq -0x199(%rbp), %rdi
callq 0x4320
movq -0xc7a8(%rbp), %rdi
callq 0x62e0
leaq -0x1b8(%rbp), %rdi
callq 0x6410
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x53a1
leaq -0x1b8(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x6430
jmp 0x51e7
jmp 0x51e9
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x51c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x521a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x4608
leaq -0x59(%rbp), %rdi
callq 0x4320
leaq -0x38(%rbp), %rdi
callq 0x4608
jmp 0x60bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5257
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x4608
leaq -0x91(%rbp), %rdi
callq 0x4320
jmp 0x60bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x52ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x52c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x52aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x4608
leaq -0x101(%rbp), %rdi
callq 0x4320
leaq -0xe0(%rbp), %rdi
callq 0x4608
leaq -0xb8(%rbp), %rdi
callq 0x4608
leaq -0xb9(%rbp), %rdi
callq 0x4320
jmp 0x60bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5305
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x4608
leaq -0x129(%rbp), %rdi
callq 0x4320
jmp 0x60bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x533c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x4608
leaq -0x171(%rbp), %rdi
callq 0x4320
leaq -0x150(%rbp), %rdi
callq 0x4608
jmp 0x60bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x537f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x4608
leaq -0x199(%rbp), %rdi
callq 0x4320
jmp 0x60bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x60b3
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0xc7e8(%rbp)
callq 0x6710
movq -0xc7e8(%rbp), %rdi
movq %rax, -0x1c0(%rbp)
callq 0x6740
movq %rax, -0x1c8(%rbp)
leaq -0x28d8(%rbp), %rdi
callq 0x6770
jmp 0x53dc
leaq -0x28d8(%rbp), %rdi
callq 0x6810
movl %eax, -0xc7ec(%rbp)
jmp 0x53f0
movl -0xc7ec(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x1550(%rbp), %rdi
callq 0x6830
jmp 0x5408
movq -0x1c0(%rbp), %rdi
movq -0x1c8(%rbp), %rsi
leaq -0x1550(%rbp), %rdx
callq 0x64a0
jmp 0x5424
leaq -0x28d8(%rbp), %rdi
callq 0x6860
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x56ca
movq -0x18(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x6890
movq %rax, %rcx
movq -0xc7a8(%rbp), %rax
movq (%rcx), %rcx
movq %rcx, -0x28e0(%rbp)
addq $0x28, %rax
movq %rax, -0xc810(%rbp)
movq -0x28e0(%rbp), %rax
movq %rax, -0xc808(%rbp)
incq %rax
movq %rax, -0xc800(%rbp)
leaq -0x2901(%rbp), %rdi
movq %rdi, -0xc7f8(%rbp)
callq 0x4570
movq -0xc800(%rbp), %rsi
movq -0xc7f8(%rbp), %rcx
leaq -0x2900(%rbp), %rdi
movl $0x73, %edx
callq 0x68b0
jmp 0x54c1
movq -0xc808(%rbp), %rsi
movq -0xc810(%rbp), %rdi
leaq -0x2900(%rbp), %rdx
callq 0x10a70
jmp 0x54dd
leaq -0x2900(%rbp), %rdi
callq 0x4608
leaq -0x2901(%rbp), %rdi
callq 0x4320
movq -0x28e0(%rbp), %rax
incq %rax
movq %rax, -0xc820(%rbp)
leaq -0x2929(%rbp), %rdi
movq %rdi, -0xc818(%rbp)
callq 0x4570
movq -0xc820(%rbp), %rsi
movq -0xc818(%rbp), %rcx
leaq -0x2928(%rbp), %rdi
movl $0x73, %edx
callq 0x68b0
jmp 0x553a
movq -0xc7a8(%rbp), %rsi
addq $0x28, %rsi
movq -0x28e0(%rbp), %rdx
leaq -0x2950(%rbp), %rdi
callq 0x10b60
jmp 0x555a
leaq -0x2971(%rbp), %rdi
movq %rdi, -0xc828(%rbp)
callq 0x4570
movq -0xc828(%rbp), %rdx
leaq 0x1db28(%rip), %rsi     # 0x230a3
leaq -0x2970(%rbp), %rdi
callq 0x4b40
jmp 0x5589
movq -0xc7a8(%rbp), %rdi
leaq -0x2928(%rbp), %rsi
leaq -0x2950(%rbp), %rdx
leaq -0x2970(%rbp), %rcx
movl $0x24, %r8d
callq 0x60d0
jmp 0x55b2
leaq -0x2970(%rbp), %rdi
callq 0x4608
leaq -0x2971(%rbp), %rdi
callq 0x4320
leaq -0x2950(%rbp), %rdi
callq 0x4608
leaq -0x2928(%rbp), %rdi
callq 0x4608
leaq -0x2929(%rbp), %rdi
callq 0x4320
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5438
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x28d8(%rbp), %rdi
callq 0x6860
jmp 0x60b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5642
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2900(%rbp), %rdi
callq 0x4608
leaq -0x2901(%rbp), %rdi
callq 0x4320
jmp 0x60b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x56b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x56ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5695
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2970(%rbp), %rdi
callq 0x4608
leaq -0x2971(%rbp), %rdi
callq 0x4320
leaq -0x2950(%rbp), %rdi
callq 0x4608
leaq -0x2928(%rbp), %rdi
callq 0x4608
leaq -0x2929(%rbp), %rdi
callq 0x4320
jmp 0x60b3
movq -0xc7a8(%rbp), %rdi
callq 0x62e0
jmp 0x56d8
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0xc830(%rbp)
callq 0x6710
movq -0xc830(%rbp), %rdi
movq %rax, -0x2980(%rbp)
callq 0x6740
movq %rax, -0x2988(%rbp)
leaq -0x5098(%rbp), %rdi
callq 0x6770
jmp 0x5713
leaq -0x5098(%rbp), %rdi
callq 0x6810
movl %eax, -0xc834(%rbp)
jmp 0x5727
movl -0xc834(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x3d10(%rbp), %rdi
callq 0x6830
jmp 0x573f
movq -0x2980(%rbp), %rdi
movq -0x2988(%rbp), %rsi
leaq -0x3d10(%rbp), %rdx
callq 0x64a0
jmp 0x575b
leaq -0x5098(%rbp), %rdi
callq 0x6860
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x5935
movq -0x18(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x6890
movq (%rax), %rax
movq %rax, -0x50a0(%rbp)
movq -0x50a0(%rbp), %rax
incq %rax
movq %rax, -0xc848(%rbp)
leaq -0x50c1(%rbp), %rdi
movq %rdi, -0xc840(%rbp)
callq 0x4570
movq -0xc848(%rbp), %rsi
movq -0xc840(%rbp), %rcx
leaq -0x50c0(%rbp), %rdi
movl $0x73, %edx
callq 0x68b0
jmp 0x57dc
movq -0xc7a8(%rbp), %rsi
addq $0x28, %rsi
movq -0x50a0(%rbp), %rdx
leaq -0x50e8(%rbp), %rdi
callq 0x10b60
jmp 0x57fc
leaq -0x5109(%rbp), %rdi
movq %rdi, -0xc850(%rbp)
callq 0x4570
movq -0xc850(%rbp), %rdx
leaq 0x1d886(%rip), %rsi     # 0x230a3
leaq -0x5108(%rbp), %rdi
callq 0x4b40
jmp 0x582b
movq -0xc7a8(%rbp), %rdi
leaq -0x50c0(%rbp), %rsi
leaq -0x50e8(%rbp), %rdx
leaq -0x5108(%rbp), %rcx
movl $0x2d, %r8d
callq 0x60d0
jmp 0x5854
leaq -0x5108(%rbp), %rdi
callq 0x4608
leaq -0x5109(%rbp), %rdi
callq 0x4320
leaq -0x50e8(%rbp), %rdi
callq 0x4608
leaq -0x50c0(%rbp), %rdi
callq 0x4608
leaq -0x50c1(%rbp), %rdi
callq 0x4320
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x576f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x5098(%rbp), %rdi
callq 0x6860
jmp 0x60b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5924
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5918
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5900
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x5108(%rbp), %rdi
callq 0x4608
leaq -0x5109(%rbp), %rdi
callq 0x4320
leaq -0x50e8(%rbp), %rdi
callq 0x4608
leaq -0x50c0(%rbp), %rdi
callq 0x4608
leaq -0x50c1(%rbp), %rdi
callq 0x4320
jmp 0x60b3
movq -0xc7a8(%rbp), %rdi
callq 0x62e0
jmp 0x5943
leaq -0x5128(%rbp), %rdi
callq 0x6410
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x5994
leaq -0x5128(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x6430
jmp 0x5973
jmp 0x5975
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x18(%rbp)
jmp 0x5957
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x60a7
leaq -0x5140(%rbp), %rdi
callq 0x6410
movq $0x1, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x59e5
leaq -0x5140(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x6430
jmp 0x59c4
jmp 0x59c6
movq -0x18(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x18(%rbp)
jmp 0x59a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x609b
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0xc858(%rbp)
callq 0x6710
movq -0xc858(%rbp), %rdi
movq %rax, -0x5148(%rbp)
callq 0x6740
movq %rax, -0x5150(%rbp)
leaq -0x7860(%rbp), %rdi
callq 0x6770
jmp 0x5a20
leaq -0x7860(%rbp), %rdi
callq 0x6810
movl %eax, -0xc85c(%rbp)
jmp 0x5a34
movl -0xc85c(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x64d8(%rbp), %rdi
callq 0x6830
jmp 0x5a4c
movq -0x5148(%rbp), %rdi
movq -0x5150(%rbp), %rsi
leaq -0x64d8(%rbp), %rdx
callq 0x64a0
jmp 0x5a68
leaq -0x7860(%rbp), %rdi
callq 0x6860
leaq -0x5128(%rbp), %rdi
movq %rdi, -0xc868(%rbp)
callq 0x6710
movq -0xc868(%rbp), %rdi
movq %rax, -0x7868(%rbp)
callq 0x6740
movq %rax, -0x7870(%rbp)
leaq -0x9f80(%rbp), %rdi
callq 0x6770
jmp 0x5aaf
leaq -0x9f80(%rbp), %rdi
callq 0x6810
movl %eax, -0xc86c(%rbp)
jmp 0x5ac3
movl -0xc86c(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x8bf8(%rbp), %rdi
callq 0x6830
jmp 0x5adb
movq -0x7868(%rbp), %rdi
movq -0x7870(%rbp), %rsi
leaq -0x8bf8(%rbp), %rdx
callq 0x64a0
jmp 0x5af7
leaq -0x9f80(%rbp), %rdi
callq 0x6860
leaq -0x5140(%rbp), %rdi
movq %rdi, -0xc878(%rbp)
callq 0x6710
movq -0xc878(%rbp), %rdi
movq %rax, -0x9f88(%rbp)
callq 0x6740
movq %rax, -0x9f90(%rbp)
leaq -0xc6a0(%rbp), %rdi
callq 0x6770
jmp 0x5b3e
leaq -0xc6a0(%rbp), %rdi
callq 0x6810
movl %eax, -0xc87c(%rbp)
jmp 0x5b52
movl -0xc87c(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0xb318(%rbp), %rdi
callq 0x6830
jmp 0x5b6a
movq -0x9f88(%rbp), %rdi
movq -0x9f90(%rbp), %rsi
leaq -0xb318(%rbp), %rdx
callq 0x64a0
jmp 0x5b86
leaq -0xc6a0(%rbp), %rdi
callq 0x6860
leaq -0x5128(%rbp), %rdi
callq 0x6920
movq %rax, -0xc6a8(%rbp)
leaq -0x5140(%rbp), %rdi
callq 0x6920
movq %rax, -0xc6b0(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0xc6a8(%rbp), %rax
jae 0x5d2e
movq -0x18(%rbp), %rsi
leaq -0x5128(%rbp), %rdi
callq 0x6890
movq -0xc7a8(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0xc6b8(%rbp)
movb $0x1, -0xc6b9(%rbp)
addq $0x28, %rdi
movq -0xc6b8(%rbp), %rsi
callq 0x111f0
movb %al, -0xc87d(%rbp)
jmp 0x5c11
movb -0xc87d(%rbp), %al
andb $0x1, %al
movb %al, -0xc6ba(%rbp)
leaq -0xc6e1(%rbp), %rdi
movq %rdi, -0xc888(%rbp)
callq 0x4570
movq -0xc888(%rbp), %rdx
leaq 0x1d463(%rip), %rsi     # 0x230a3
leaq -0xc6e0(%rbp), %rdi
callq 0x4b40
jmp 0x5c4e
movq -0xc7a8(%rbp), %rdi
leaq -0xc6b9(%rbp), %rsi
leaq -0xc6ba(%rbp), %rdx
leaq -0xc6e0(%rbp), %rcx
movl $0x44, %r8d
callq 0x61d0
jmp 0x5c77
leaq -0xc6e0(%rbp), %rdi
callq 0x4608
leaq -0xc6e1(%rbp), %rdi
callq 0x4320
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5bc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x7860(%rbp), %rdi
callq 0x6860
jmp 0x609b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x9f80(%rbp), %rdi
callq 0x6860
jmp 0x609b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xc6a0(%rbp), %rdi
callq 0x6860
jmp 0x609b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5d1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xc6e0(%rbp), %rdi
callq 0x4608
leaq -0xc6e1(%rbp), %rdi
callq 0x4320
jmp 0x609b
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jae 0x5f2f
movq -0x18(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x6890
movq (%rax), %rax
movq %rax, -0xc6f0(%rbp)
movq -0xc6f0(%rbp), %rax
andq $0x1, %rax
movb $0x0, -0xc712(%rbp)
cmpq $0x0, %rax
je 0x5dc4
movq -0xc6f0(%rbp), %rax
incq %rax
movq %rax, -0xc898(%rbp)
leaq -0xc711(%rbp), %rdi
movq %rdi, -0xc890(%rbp)
callq 0x4570
movq -0xc898(%rbp), %rsi
movq -0xc890(%rbp), %rcx
movb $0x1, -0xc712(%rbp)
leaq -0xc710(%rbp), %rdi
movl $0x73, %edx
callq 0x68b0
jmp 0x5dc2
jmp 0x5ddb
leaq 0x2c55d(%rip), %rsi     # 0x32328
leaq -0xc710(%rbp), %rdi
callq 0x4120
jmp 0x5dd9
jmp 0x5ddb
movq -0xc7a8(%rbp), %rsi
addq $0x28, %rsi
movq -0xc6f0(%rbp), %rdx
leaq -0xc738(%rbp), %rdi
callq 0x10b60
jmp 0x5dfb
leaq -0xc759(%rbp), %rdi
movq %rdi, -0xc8a0(%rbp)
callq 0x4570
movq -0xc8a0(%rbp), %rdx
leaq 0x1d287(%rip), %rsi     # 0x230a3
leaq -0xc758(%rbp), %rdi
callq 0x4b40
jmp 0x5e2a
movq -0xc7a8(%rbp), %rdi
leaq -0xc710(%rbp), %rsi
leaq -0xc738(%rbp), %rdx
leaq -0xc758(%rbp), %rcx
movl $0x4a, %r8d
callq 0x60d0
jmp 0x5e53
leaq -0xc758(%rbp), %rdi
callq 0x4608
leaq -0xc759(%rbp), %rdi
callq 0x4320
leaq -0xc738(%rbp), %rdi
callq 0x4608
leaq -0xc710(%rbp), %rdi
callq 0x4608
testb $0x1, -0xc712(%rbp)
jne 0x5e8e
jmp 0x5e9a
leaq -0xc711(%rbp), %rdi
callq 0x4320
jmp 0x5e9c
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5d36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5f13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5f07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x5eef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xc758(%rbp), %rdi
callq 0x4608
leaq -0xc759(%rbp), %rdi
callq 0x4320
leaq -0xc738(%rbp), %rdi
callq 0x4608
leaq -0xc710(%rbp), %rdi
callq 0x4608
testb $0x1, -0xc712(%rbp)
jne 0x5f1e
jmp 0x5f2a
leaq -0xc711(%rbp), %rdi
callq 0x4320
jmp 0x609b
movq $0x1, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0xc6b0(%rbp), %rax
jae 0x6052
movq -0x18(%rbp), %rsi
leaq -0x5140(%rbp), %rdi
callq 0x6890
movq -0xc7a8(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0xc768(%rbp)
movb -0xc768(%rbp), %al
andb $0x1, %al
movb %al, -0xc769(%rbp)
addq $0x28, %rdi
movq -0xc768(%rbp), %rsi
callq 0x111f0
movb %al, -0xc8a1(%rbp)
jmp 0x5f8f
movb -0xc8a1(%rbp), %al
andb $0x1, %al
movb %al, -0xc76a(%rbp)
leaq -0xc791(%rbp), %rdi
movq %rdi, -0xc8b0(%rbp)
callq 0x4570
movq -0xc8b0(%rbp), %rdx
leaq 0x1d0e5(%rip), %rsi     # 0x230a3
leaq -0xc790(%rbp), %rdi
callq 0x4b40
jmp 0x5fcc
movq -0xc7a8(%rbp), %rdi
leaq -0xc769(%rbp), %rsi
leaq -0xc76a(%rbp), %rdx
leaq -0xc790(%rbp), %rcx
movl $0x4f, %r8d
callq 0x61d0
jmp 0x5ff5
leaq -0xc790(%rbp), %rdi
callq 0x4608
leaq -0xc791(%rbp), %rdi
callq 0x4320
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x5f37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6044
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xc790(%rbp), %rdi
callq 0x4608
leaq -0xc791(%rbp), %rdi
callq 0x4320
jmp 0x609b
movq -0xc7a8(%rbp), %rdi
callq 0x62e0
jmp 0x6060
movq -0xc7a8(%rbp), %rdi
callq 0x6940
jmp 0x606e
leaq -0x5140(%rbp), %rdi
callq 0x69d0
leaq -0x5128(%rbp), %rdi
callq 0x69d0
leaq -0x1b8(%rbp), %rdi
callq 0x69d0
addq $0xc8b0, %rsp           # imm = 0xC8B0
popq %rbp
retq
leaq -0x5140(%rbp), %rdi
callq 0x69d0
leaq -0x5128(%rbp), %rdi
callq 0x69d0
leaq -0x1b8(%rbp), %rdi
callq 0x69d0
movq -0x68(%rbp), %rdi
callq 0x4560
nopl (%rax,%rax)