// File: BU-DiSC[P]BF-Shared-Hashing/db.cpp
// Function: db::loadBFAndIndex()
fsec db::loadBFAndIndex(){
	fp_vec = vector<uint64_t> (num_levels, 0);
	n_vec = vector<uint64_t> (num_levels, 0);
	bf_prime = (char****) malloc  ( num_levels * sizeof(char***));
	blk_fp_prime = (char****) malloc  ( num_levels * sizeof(char***));
	blk_size_prime = (int**) malloc (num_levels*sizeof(int*));
	if(fastlocal_bf){
		FastLocalBF bf = FastLocalBF(bpk/num_filter_units);
		filter_size = bf.CalculateSpace(B*P);
        	num_probes = bf.num_probes_;
	}else{
		LegacyBF bf = LegacyBF(bpk/num_filter_units);
		uint32_t dont_care;
		filter_size = bf.CalculateSpace(B*P, &dont_care, &num_lines);
        	num_probes = bf.num_probes_;
	}
	int tmp_filter_size = filter_size;
	auto l_start = high_resolution_clock::now();
	auto l_end = high_resolution_clock::now();
	fsec load_duration = std::chrono::microseconds::zero();
	for(int i = 0; i < num_levels; i++){
		bf_prime[i] = (char***) malloc (num_sstPerLevel[i]*sizeof(char**));
		blk_fp_prime[i] = (char***) malloc (num_sstPerLevel[i]*sizeof(char**));
		blk_size_prime[i] = (int*) malloc (num_sstPerLevel[i]*sizeof(int));

		for(int j = 0; j < num_sstPerLevel[i]; j++){
			string sst_index_filename = index_dir + "level_" + to_string(i) + "-sst_" + to_string(j) + ".txt";
			l_start = high_resolution_clock::now();
			int index_size = read_index_size(sst_index_filename);	
			l_end = high_resolution_clock::now();
			load_duration += duration_cast<microseconds>(l_end - l_start);

			char** index = (char**) malloc((index_size+1)*sizeof(char*));
			for(int k = 0; k <= index_size; k++){
				index[k] = (char*) malloc ((K+1)*sizeof(char));
			}
			l_start = high_resolution_clock::now();
			read_index(sst_index_filename, index_size, index);
			l_end = high_resolution_clock::now();
			load_duration += duration_cast<microseconds>(l_end - l_start);

			blk_fp_prime[i][j] = index;
			blk_size_prime[i][j] = index_size;

			if(i == num_levels - 1 && j == num_sstPerLevel[i] - 1){
				if(fastlocal_bf){
					FastLocalBF bf = FastLocalBF(bpk/num_filter_units);
					last_filter_size = bf.CalculateSpace(last_sst_keys);
					last_num_lines = bf.num_lines_;
				}else{
					LegacyBF bf = LegacyBF(bpk/num_filter_units);
					uint32_t dont_care;
					last_filter_size = bf.CalculateSpace(last_sst_keys, &dont_care, &last_num_lines);
					last_num_lines = bf.num_lines_;

				}
				tmp_filter_size = last_filter_size;
			} 
			
			char** sst_bf = (char**) malloc (num_filter_units*sizeof(char*));

			for(int k = 0; k < num_filter_units; k++){
				string sst_bf_filename = bf_dir + "level_" + to_string(i) + "-sst_" + to_string(j) + "_" + to_string(k) + ".txt";
				char* blo_bf = (char*) malloc (tmp_filter_size*sizeof(char));
				l_start = high_resolution_clock::now();
				read_bf(sst_bf_filename, blo_bf, tmp_filter_size);
				l_end = high_resolution_clock::now();
				load_duration += duration_cast<microseconds>(l_end - l_start);
				sst_bf[k] = blo_bf;
			}
			bf_prime[i][j] = sst_bf;
		}
	}
	return load_duration;
}

// Assembly:
subq $0x588, %rsp            # imm = 0x588
movq %rdi, 0x578(%rsp)
movq 0x578(%rsp), %rax
movq %rax, 0x70(%rsp)
movslq 0xdc(%rax), %rax
movq %rax, 0x78(%rsp)
movq $0x0, 0x558(%rsp)
leaq 0x557(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x11120
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rcx
leaq 0x560(%rsp), %rdi
leaq 0x558(%rsp), %rdx
callq 0x11130
jmp 0xf60d
movq 0x70(%rsp), %rdi
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x560(%rsp), %rsi
movq %rsi, 0x58(%rsp)
callq 0x111b0
movq 0x58(%rsp), %rdi
callq 0x8500
leaq 0x557(%rsp), %rdi
callq 0x88d0
movq 0x70(%rsp), %rax
movslq 0xdc(%rax), %rax
movq %rax, 0x60(%rsp)
movq $0x0, 0x520(%rsp)
leaq 0x51f(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x11120
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
leaq 0x528(%rsp), %rdi
leaq 0x520(%rsp), %rdx
callq 0x11130
jmp 0xf692
movq 0x70(%rsp), %rdi
addq $0x1c8, %rdi            # imm = 0x1C8
leaq 0x528(%rsp), %rsi
callq 0x111b0
leaq 0x528(%rsp), %rdi
callq 0x8500
leaq 0x51f(%rsp), %rdi
callq 0x88d0
movq 0x70(%rsp), %rax
movslq 0xdc(%rax), %rdi
shlq $0x3, %rdi
callq 0x66b0
movq %rax, %rcx
movq 0x70(%rsp), %rax
movq %rcx, 0x158(%rax)
movslq 0xdc(%rax), %rdi
shlq $0x3, %rdi
callq 0x66b0
movq %rax, %rcx
movq 0x70(%rsp), %rax
movq %rcx, 0x160(%rax)
movslq 0xdc(%rax), %rdi
shlq $0x3, %rdi
callq 0x66b0
movq %rax, %rcx
movq 0x70(%rsp), %rax
movq %rcx, 0x168(%rax)
testb $0x1, 0x10c(%rax)
je 0xf820
movq 0x70(%rsp), %rcx
movl 0x104(%rcx), %eax
movl 0x110(%rcx), %ecx
cltd
idivl %ecx
movl %eax, %esi
leaq 0x4a8(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x11790
movq 0x70(%rsp), %rcx
movq 0x48(%rsp), %rdi
movl 0xc4(%rcx), %eax
movl 0xc8(%rcx), %esi
imull %eax, %esi
callq 0x11840
movl %eax, 0x54(%rsp)
jmp 0xf780
movq 0x70(%rsp), %rax
movl 0x54(%rsp), %ecx
movl %ecx, 0x120(%rax)
movl 0x4ac(%rsp), %ecx
movl %ecx, 0x130(%rax)
leaq 0x4a8(%rsp), %rdi
callq 0x118a0
jmp 0xf896
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x557(%rsp), %rdi
callq 0x88d0
jmp 0x105b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x51f(%rsp), %rdi
callq 0x88d0
jmp 0x105b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x4a8(%rsp), %rdi
callq 0x118a0
jmp 0x105b4
movq 0x70(%rsp), %rcx
movl 0x104(%rcx), %eax
cltd
idivl 0x110(%rcx)
movl %eax, %esi
leaq 0x478(%rsp), %rdi
callq 0x118c0
movq 0x70(%rsp), %rcx
movl 0xc8(%rcx), %esi
imull 0xc4(%rcx), %esi
addq $0x128, %rcx            # imm = 0x128
leaq 0x478(%rsp), %rdi
leaq 0x474(%rsp), %rdx
callq 0xab80
movl %eax, %ecx
movq 0x70(%rsp), %rax
movl %ecx, 0x120(%rax)
movl 0x47c(%rsp), %ecx
movl %ecx, 0x130(%rax)
leaq 0x478(%rsp), %rdi
callq 0x11930
movq 0x70(%rsp), %rax
movl 0x120(%rax), %eax
movl %eax, 0x470(%rsp)
callq 0x60b0
movq %rax, 0x468(%rsp)
callq 0x60b0
movq %rax, 0x460(%rsp)
leaq 0x584(%rsp), %rdi
xorl %esi, %esi
movl $0x4, %edx
callq 0x62e0
movl $0x0, 0x45c(%rsp)
movq 0x70(%rsp), %rcx
movl 0x45c(%rsp), %eax
cmpl 0xdc(%rcx), %eax
jge 0x105a3
movq 0x70(%rsp), %rdi
addq $0xe8, %rdi
movslq 0x45c(%rsp), %rsi
callq 0x113c0
movslq (%rax), %rdi
shlq $0x3, %rdi
callq 0x66b0
movq 0x70(%rsp), %rdi
movq %rax, %rdx
movq 0x158(%rdi), %rax
movslq 0x45c(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
addq $0xe8, %rdi
movslq 0x45c(%rsp), %rsi
callq 0x113c0
movslq (%rax), %rdi
shlq $0x3, %rdi
callq 0x66b0
movq 0x70(%rsp), %rdi
movq %rax, %rdx
movq 0x160(%rdi), %rax
movslq 0x45c(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
addq $0xe8, %rdi
movslq 0x45c(%rsp), %rsi
callq 0x113c0
movslq (%rax), %rdi
shlq $0x2, %rdi
callq 0x66b0
movq %rax, %rdx
movq 0x70(%rsp), %rax
movq 0x168(%rax), %rax
movslq 0x45c(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x0, 0x458(%rsp)
movq 0x70(%rsp), %rdi
movl 0x458(%rsp), %eax
movl %eax, 0x44(%rsp)
addq $0xe8, %rdi
movslq 0x45c(%rsp), %rsi
callq 0x113c0
movq %rax, %rcx
movl 0x44(%rsp), %eax
cmpl (%rcx), %eax
jge 0x1058b
movq 0x70(%rsp), %rsi
addq $0x40, %rsi
leaq 0x5497b(%rip), %rdx     # 0x64378
leaq 0x3b8(%rsp), %rdi
callq 0x10f60
movl 0x45c(%rsp), %esi
leaq 0x398(%rsp), %rdi
callq 0x11a60
jmp 0xfa20
leaq 0x3d8(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
leaq 0x398(%rsp), %rdx
callq 0x11970
jmp 0xfa3f
leaq 0x54939(%rip), %rdx     # 0x6437f
leaq 0x3f8(%rsp), %rdi
leaq 0x3d8(%rsp), %rsi
callq 0x11740
jmp 0xfa5d
movl 0x458(%rsp), %esi
leaq 0x378(%rsp), %rdi
callq 0x11a60
jmp 0xfa73
leaq 0x418(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
leaq 0x378(%rsp), %rdx
callq 0x11970
jmp 0xfa92
leaq 0x55298(%rip), %rdx     # 0x64d31
leaq 0x438(%rsp), %rdi
leaq 0x418(%rsp), %rsi
callq 0x11740
jmp 0xfab0
leaq 0x418(%rsp), %rdi
callq 0x6340
leaq 0x378(%rsp), %rdi
callq 0x6340
leaq 0x3f8(%rsp), %rdi
callq 0x6340
leaq 0x3d8(%rsp), %rdi
callq 0x6340
leaq 0x398(%rsp), %rdi
callq 0x6340
leaq 0x3b8(%rsp), %rdi
callq 0x6340
callq 0x60b0
movq %rax, 0x370(%rsp)
movq 0x370(%rsp), %rax
movq %rax, 0x468(%rsp)
leaq 0x348(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x6260
jmp 0xfb32
movq 0x70(%rsp), %rdi
leaq 0x348(%rsp), %rsi
callq 0x12670
movl %eax, 0x40(%rsp)
jmp 0xfb4a
leaq 0x348(%rsp), %rdi
callq 0x6340
movl 0x40(%rsp), %eax
movl %eax, 0x36c(%rsp)
callq 0x60b0
movq %rax, 0x340(%rsp)
movq 0x340(%rsp), %rax
movq %rax, 0x460(%rsp)
leaq 0x460(%rsp), %rdi
leaq 0x468(%rsp), %rsi
callq 0x7a60
movq %rax, 0x38(%rsp)
jmp 0xfb9b
movq 0x38(%rsp), %rax
movq %rax, 0x328(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x7a30
movq %rax, 0x30(%rsp)
jmp 0xfbbc
movq 0x30(%rsp), %rax
movq %rax, 0x330(%rsp)
leaq 0x33c(%rsp), %rdi
leaq 0x330(%rsp), %rsi
callq 0x7ab0
jmp 0xfbe0
leaq 0x584(%rsp), %rdi
leaq 0x33c(%rsp), %rsi
callq 0x7af0
jmp 0xfbf7
movl 0x36c(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x66b0
movq %rax, 0x320(%rsp)
movl $0x0, 0x31c(%rsp)
movl 0x31c(%rsp), %eax
cmpl 0x36c(%rsp), %eax
jg 0xfd92
movq 0x70(%rsp), %rax
movl 0xd0(%rax), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x0, %rdi
callq 0x66b0
movq %rax, %rdx
movq 0x320(%rsp), %rax
movslq 0x31c(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movl 0x31c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x31c(%rsp)
jmp 0xfc20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0xfd41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0xfd34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0xfd27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0xfd1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0xfd0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x418(%rsp), %rdi
callq 0x6340
leaq 0x378(%rsp), %rdi
callq 0x6340
leaq 0x3f8(%rsp), %rdi
callq 0x6340
leaq 0x3d8(%rsp), %rdi
callq 0x6340
leaq 0x398(%rsp), %rdi
callq 0x6340
leaq 0x3b8(%rsp), %rdi
callq 0x6340
jmp 0x105b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x1057c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x348(%rsp), %rdi
callq 0x6340
jmp 0x1057c
callq 0x60b0
movq %rax, 0x310(%rsp)
movq 0x310(%rsp), %rax
movq %rax, 0x468(%rsp)
leaq 0x2f0(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x6260
jmp 0xfdc6
movq 0x70(%rsp), %rdi
movl 0x36c(%rsp), %edx
movq 0x320(%rsp), %rcx
leaq 0x2f0(%rsp), %rsi
callq 0x127c0
jmp 0xfde9
leaq 0x2f0(%rsp), %rdi
callq 0x6340
callq 0x60b0
movq %rax, 0x2e8(%rsp)
movq 0x2e8(%rsp), %rax
movq %rax, 0x460(%rsp)
leaq 0x460(%rsp), %rdi
leaq 0x468(%rsp), %rsi
callq 0x7a60
movq %rax, 0x28(%rsp)
jmp 0xfe2f
movq 0x28(%rsp), %rax
movq %rax, 0x2d0(%rsp)
leaq 0x2d0(%rsp), %rdi
callq 0x7a30
movq %rax, 0x20(%rsp)
jmp 0xfe50
movq 0x20(%rsp), %rax
movq %rax, 0x2d8(%rsp)
leaq 0x2e4(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
callq 0x7ab0
jmp 0xfe74
leaq 0x584(%rsp), %rdi
leaq 0x2e4(%rsp), %rsi
callq 0x7af0
jmp 0xfe8b
movq 0x70(%rsp), %rcx
movq 0x320(%rsp), %rsi
movq 0x160(%rcx), %rax
movslq 0x45c(%rsp), %rdx
movq (%rax,%rdx,8), %rax
movslq 0x458(%rsp), %rdx
movq %rsi, (%rax,%rdx,8)
movl 0x36c(%rsp), %esi
movq 0x168(%rcx), %rax
movslq 0x45c(%rsp), %rdx
movq (%rax,%rdx,8), %rax
movslq 0x458(%rsp), %rdx
movl %esi, (%rax,%rdx,4)
movl 0x45c(%rsp), %eax
movl 0xdc(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x10080
movq 0x70(%rsp), %rdi
movl 0x458(%rsp), %eax
movl %eax, 0x1c(%rsp)
addq $0xe8, %rdi
movslq 0x45c(%rsp), %rsi
callq 0x113c0
movq %rax, %rcx
movl 0x1c(%rsp), %eax
movl (%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x10080
movq 0x70(%rsp), %rax
testb $0x1, 0x10c(%rax)
je 0xfffb
movq 0x70(%rsp), %rcx
movl 0x104(%rcx), %eax
movl 0x110(%rcx), %ecx
cltd
idivl %ecx
movl %eax, %esi
leaq 0x260(%rsp), %rdi
callq 0x11790
jmp 0xff63
movq 0x70(%rsp), %rax
movl 0x100(%rax), %esi
leaq 0x260(%rsp), %rdi
callq 0x11840
movl %eax, 0x18(%rsp)
jmp 0xff81
movq 0x70(%rsp), %rax
movl 0x18(%rsp), %ecx
movl %ecx, 0x124(%rax)
movl 0x268(%rsp), %ecx
movl %ecx, 0x12c(%rax)
leaq 0x260(%rsp), %rdi
callq 0x118a0
jmp 0x1006e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x2f0(%rsp), %rdi
callq 0x6340
jmp 0x1057c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x118a0
jmp 0x1057c
movq 0x70(%rsp), %rcx
movl 0x104(%rcx), %eax
movl 0x110(%rcx), %ecx
cltd
idivl %ecx
movl %eax, %esi
leaq 0x230(%rsp), %rdi
callq 0x118c0
jmp 0x10020
movq 0x70(%rsp), %rcx
movl 0x100(%rcx), %esi
addq $0x12c, %rcx            # imm = 0x12C
leaq 0x230(%rsp), %rdi
leaq 0x22c(%rsp), %rdx
callq 0xab80
movl %eax, %ecx
movq 0x70(%rsp), %rax
movl %ecx, 0x124(%rax)
movl 0x238(%rsp), %ecx
movl %ecx, 0x12c(%rax)
leaq 0x230(%rsp), %rdi
callq 0x11930
movq 0x70(%rsp), %rax
movl 0x124(%rax), %eax
movl %eax, 0x470(%rsp)
movq 0x70(%rsp), %rax
movslq 0x110(%rax), %rdi
shlq $0x3, %rdi
callq 0x66b0
movq %rax, 0x220(%rsp)
movl $0x0, 0x21c(%rsp)
movq 0x70(%rsp), %rcx
movl 0x21c(%rsp), %eax
cmpl 0x110(%rcx), %eax
jge 0x1052d
movq 0x70(%rsp), %rsi
addq $0x20, %rsi
leaq 0x542a8(%rip), %rdx     # 0x64378
leaq 0x138(%rsp), %rdi
callq 0x10f60
jmp 0x100df
movl 0x45c(%rsp), %esi
leaq 0x118(%rsp), %rdi
callq 0x11a60
jmp 0x100f5
leaq 0x158(%rsp), %rdi
leaq 0x138(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0x11970
jmp 0x10114
leaq 0x54264(%rip), %rdx     # 0x6437f
leaq 0x178(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x11740
jmp 0x10132
movl 0x458(%rsp), %esi
leaq 0xf8(%rsp), %rdi
callq 0x11a60
jmp 0x10148
leaq 0x198(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x11970
jmp 0x10167
leaq 0x5420f(%rip), %rdx     # 0x6437d
leaq 0x1b8(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x11740
jmp 0x10185
movl 0x21c(%rsp), %esi
leaq 0xd8(%rsp), %rdi
callq 0x11a60
jmp 0x1019b
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x11970
jmp 0x101ba
leaq 0x54b70(%rip), %rdx     # 0x64d31
leaq 0x1f8(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x11740
jmp 0x101d8
leaq 0x1d8(%rsp), %rdi
callq 0x6340
leaq 0xd8(%rsp), %rdi
callq 0x6340
leaq 0x1b8(%rsp), %rdi
callq 0x6340
leaq 0x198(%rsp), %rdi
callq 0x6340
leaq 0xf8(%rsp), %rdi
callq 0x6340
leaq 0x178(%rsp), %rdi
callq 0x6340
leaq 0x158(%rsp), %rdi
callq 0x6340
leaq 0x118(%rsp), %rdi
callq 0x6340
leaq 0x138(%rsp), %rdi
callq 0x6340
movslq 0x470(%rsp), %rdi
callq 0x66b0
movq %rax, 0xd0(%rsp)
callq 0x60b0
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0x468(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x6260
jmp 0x10296
movq 0x70(%rsp), %rdi
movq 0xd0(%rsp), %rdx
movl 0x470(%rsp), %ecx
leaq 0xa8(%rsp), %rsi
callq 0x12a40
jmp 0x102b9
leaq 0xa8(%rsp), %rdi
callq 0x6340
callq 0x60b0
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x460(%rsp)
leaq 0x460(%rsp), %rdi
leaq 0x468(%rsp), %rsi
callq 0x7a60
movq %rax, 0x10(%rsp)
jmp 0x102ff
movq 0x10(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x7a30
movq %rax, 0x8(%rsp)
jmp 0x10320
movq 0x8(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x9c(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x7ab0
jmp 0x10344
leaq 0x584(%rsp), %rdi
leaq 0x9c(%rsp), %rsi
callq 0x7af0
jmp 0x1035b
movq 0xd0(%rsp), %rdx
movq 0x220(%rsp), %rax
movslq 0x21c(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x1f8(%rsp), %rdi
callq 0x6340
movl 0x21c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x21c(%rsp)
jmp 0x100a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x104d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x104c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x104bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x104ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x104a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x10494
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x10487
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x1047a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0x6340
leaq 0xd8(%rsp), %rdi
callq 0x6340
leaq 0x1b8(%rsp), %rdi
callq 0x6340
leaq 0x198(%rsp), %rdi
callq 0x6340
leaq 0xf8(%rsp), %rdi
callq 0x6340
leaq 0x178(%rsp), %rdi
callq 0x6340
leaq 0x158(%rsp), %rdi
callq 0x6340
leaq 0x118(%rsp), %rdi
callq 0x6340
leaq 0x138(%rsp), %rdi
callq 0x6340
jmp 0x1057c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
jmp 0x1051e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x548(%rsp)
movl %eax, 0x544(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x6340
leaq 0x1f8(%rsp), %rdi
callq 0x6340
jmp 0x1057c
movq 0x70(%rsp), %rax
movq 0x220(%rsp), %rdx
movq 0x158(%rax), %rax
movslq 0x45c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x458(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
leaq 0x438(%rsp), %rdi
callq 0x6340
movl 0x458(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x458(%rsp)
jmp 0xf9ba
leaq 0x438(%rsp), %rdi
callq 0x6340
jmp 0x105b4
jmp 0x1058d
movl 0x45c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x45c(%rsp)
jmp 0xf8e1
movss 0x584(%rsp), %xmm0
addq $0x588, %rsp            # imm = 0x588
retq
movq 0x548(%rsp), %rdi
callq 0x6850
nopw %cs:(%rax,%rax)