// File: MPSLab-ASU[P]DiRAC/./src/baseAccelSim.cc
// Function: baseAccelSim::read_file_config_trigger_PEs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void baseAccelSim::read_file_config_trigger_PEs(string configTriggerPEsFileName)
{
	trigger_exec_pass_PEs_exec				= new bool*[SPM_passes + WB_delay_SPM_pass];
	trigger_exec_pass_zero_init				= new bool*[SPM_passes + WB_delay_SPM_pass];
	trigger_exec_pass_writeback				= new bool*[SPM_passes + WB_delay_SPM_pass];
	trigger_exec_pass_spatial_reduce	= new bool*[SPM_passes + WB_delay_SPM_pass];

	trigger_exec_pass_update_buf_num_Op1	= new bool*[SPM_passes + WB_delay_SPM_pass];
	trigger_exec_pass_update_buf_num_Op2	= new bool*[SPM_passes + WB_delay_SPM_pass];
	trigger_exec_pass_update_buf_num_Op3	= new bool*[SPM_passes + WB_delay_SPM_pass];

	for(uint8_t it=0; it < RF_passes + WB_delay_RF_pass; it++)
	{
		trigger_exec_pass_PEs_exec[it]				= new bool[RF_passes + WB_delay_RF_pass]();
		trigger_exec_pass_zero_init[it]				= new bool[RF_passes + WB_delay_RF_pass]();
		trigger_exec_pass_writeback[it]				= new bool[RF_passes + WB_delay_RF_pass]();
		trigger_exec_pass_spatial_reduce[it]	= new bool[RF_passes + WB_delay_RF_pass]();
		trigger_exec_pass_update_buf_num_Op1[it]	= new bool[RF_passes + WB_delay_RF_pass]();
		trigger_exec_pass_update_buf_num_Op2[it]	= new bool[RF_passes + WB_delay_RF_pass]();
		trigger_exec_pass_update_buf_num_Op3[it]	= new bool[RF_passes + WB_delay_RF_pass]();
	}

	uint16_t RF_pass_number, SPM_pass_number;
	bool PEs_exec, zero_init, write_back, spatial_reduce;
	bool update_buf_num_Op1, update_buf_num_Op2, update_buf_num_Op3;
	uint16_t it=0;
	ifstream inFile(configTriggerPEsFileName.c_str());

	if(!inFile)
	{
		cout << "Cannot open and read file: " << configTriggerPEsFileName.c_str() << endl;
		exit (EXIT_FAILURE);
	}

	string line;
 	while (getline(inFile, line)) {
		// skip reading first two lines of the file
		if(it < 2) {
			it++; continue;
		}
		istringstream tokenStream(line);
		string token1, token2, token3, token4, token5, token6, token7, token8, token9;
		tokenStream >> token1 >> token2 >> token3 >> token4 >> token5 >> token6
			>> token7 >> token8 >> token9;

		SPM_pass_number = stoul(token1);
		RF_pass_number	= stoul(token2);
		PEs_exec				= stoul(token3);
		zero_init 			= stoul(token4);
		write_back 			= stoul(token5);
		spatial_reduce	= stoul(token6);
		update_buf_num_Op1 = stoul(token7);
		update_buf_num_Op2 = stoul(token8);
		update_buf_num_Op3 = stoul(token9);

		assert((SPM_pass_number >= 1 && SPM_pass_number < (SPM_passes+1)) && "invalid number for an SPM pass!");
		assert((RF_pass_number >= 1 && RF_pass_number <= (RF_passes+1)) && "invalid number for an RF pass!");

		trigger_exec_pass_PEs_exec[SPM_pass_number][RF_pass_number] = PEs_exec;
		trigger_exec_pass_zero_init[SPM_pass_number][RF_pass_number] = zero_init;
		trigger_exec_pass_writeback[SPM_pass_number][RF_pass_number] 	= write_back;
		trigger_exec_pass_spatial_reduce[SPM_pass_number][RF_pass_number] = spatial_reduce;
		trigger_exec_pass_update_buf_num_Op1[SPM_pass_number][RF_pass_number] = update_buf_num_Op1;
		trigger_exec_pass_update_buf_num_Op2[SPM_pass_number][RF_pass_number] = update_buf_num_Op2;
		trigger_exec_pass_update_buf_num_Op3[SPM_pass_number][RF_pass_number] = update_buf_num_Op3;
		it++;
	}
	inFile.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x630, %rsp            # imm = 0x630
movq %rsi, -0x500(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movzwl 0x211c83(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211de2(%rip)    # 0x61e6e0
movzwl 0x211c4f(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211db6(%rip)    # 0x61e6e8
movzwl 0x211c1b(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211d8a(%rip)    # 0x61e6f0
movzwl 0x211be7(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211d5e(%rip)    # 0x61e6f8
movzwl 0x211bb3(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211d32(%rip)    # 0x61e700
movzwl 0x211b7f(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211d06(%rip)    # 0x61e708
movzwl 0x211b4b(%rip), %eax    # 0x61e554
addl $0x2, %eax
cltq
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x425dd0
movq %rax, 0x211cda(%rip)    # 0x61e710
movb $0x0, -0x11(%rbp)
movzbl -0x11(%rbp), %eax
movzwl 0x211b0d(%rip), %ecx    # 0x61e552
addl $0x2, %ecx
cmpl %ecx, %eax
jge 0x40cc4e
movzwl 0x211afb(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x570(%rbp)
callq 0x425dd0
movq -0x570(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x568(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x568(%rbp), %rdx
movq 0x211c51(%rip), %rax    # 0x61e6e0
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movzwl 0x211ab4(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x560(%rbp)
callq 0x425dd0
movq -0x560(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x558(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x558(%rbp), %rdx
movq 0x211c12(%rip), %rax    # 0x61e6e8
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movzwl 0x211a6d(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x550(%rbp)
callq 0x425dd0
movq -0x550(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x548(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x548(%rbp), %rdx
movq 0x211bd3(%rip), %rax    # 0x61e6f0
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movzwl 0x211a26(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x540(%rbp)
callq 0x425dd0
movq -0x540(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x538(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x538(%rbp), %rdx
movq 0x211b94(%rip), %rax    # 0x61e6f8
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movzwl 0x2119df(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x530(%rbp)
callq 0x425dd0
movq -0x530(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x528(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x528(%rbp), %rdx
movq 0x211b55(%rip), %rax    # 0x61e700
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movzwl 0x211998(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x520(%rbp)
callq 0x425dd0
movq -0x520(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x518(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x518(%rbp), %rdx
movq 0x211b16(%rip), %rax    # 0x61e708
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movzwl 0x211951(%rip), %eax    # 0x61e552
addl $0x2, %eax
movslq %eax, %rdi
movq %rdi, -0x510(%rbp)
callq 0x425dd0
movq -0x510(%rbp), %rdx
movq %rax, %rdi
movq %rdi, -0x508(%rbp)
xorl %esi, %esi
callq 0x401080
movq -0x508(%rbp), %rdx
movq 0x211ad7(%rip), %rax    # 0x61e710
movzbl -0x11(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movb -0x11(%rbp), %al
addb $0x1, %al
movb %al, -0x11(%rbp)
jmp 0x40ca3a
movq -0x500(%rbp), %rdi
movw $0x0, -0x20(%rbp)
callq 0x4a4170
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movl $0x8, %edx
callq 0x46e8c0
movq -0x228(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x228(%rbp,%rax), %rdi
callq 0x472d80
movb %al, -0x571(%rbp)
jmp 0x40cc94
movb -0x571(%rbp), %al
testb $0x1, %al
jne 0x40cca0
jmp 0x40cd16
movq $0x61f900, %rdi         # imm = 0x61F900
leaq 0x194362(%rip), %rsi    # 0x5a1010
callq 0x492450
movq %rax, -0x580(%rbp)
jmp 0x40ccbc
movq -0x500(%rbp), %rdi
callq 0x4a4170
movq -0x580(%rbp), %rdi
movq %rax, %rsi
callq 0x492450
movq %rax, -0x588(%rbp)
jmp 0x40cce0
movq -0x588(%rbp), %rdi
movq $0x491d30, %rsi         # imm = 0x491D30
callq 0x490f40
jmp 0x40ccf5
movl $0x1, %edi
callq 0x4ec1e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0x40d384
leaq -0x258(%rbp), %rdi
callq 0x4a2620
leaq -0x228(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x4a5170
movq %rax, -0x590(%rbp)
jmp 0x40cd3e
movq -0x590(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x472d70
movb %al, -0x591(%rbp)
jmp 0x40cd5c
movb -0x591(%rbp), %al
testb $0x1, %al
jne 0x40cd6b
jmp 0x40d349
movzwl -0x20(%rbp), %eax
cmpl $0x2, %eax
jge 0x40cd99
movw -0x20(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x20(%rbp)
jmp 0x40cd22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0x40d378
leaq -0x3d8(%rbp), %rdi
leaq -0x258(%rbp), %rsi
movl $0x8, %edx
callq 0x49a120
jmp 0x40cdb3
leaq -0x3f8(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x4a2620
leaq -0x418(%rbp), %rdi
callq 0x4a2620
leaq -0x438(%rbp), %rdi
callq 0x4a2620
leaq -0x458(%rbp), %rdi
callq 0x4a2620
leaq -0x478(%rbp), %rdi
callq 0x4a2620
leaq -0x498(%rbp), %rdi
callq 0x4a2620
leaq -0x4b8(%rbp), %rdi
callq 0x4a2620
leaq -0x4d8(%rbp), %rdi
callq 0x4a2620
leaq -0x4f8(%rbp), %rdi
callq 0x4a2620
movq -0x5a8(%rbp), %rsi
leaq -0x3d8(%rbp), %rdi
callq 0x4277f0
movq %rax, -0x5a0(%rbp)
jmp 0x40ce42
movq -0x5a0(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5b0(%rbp)
jmp 0x40ce5e
movq -0x5b0(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5b8(%rbp)
jmp 0x40ce7a
movq -0x5b8(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5c0(%rbp)
jmp 0x40ce96
movq -0x5c0(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5c8(%rbp)
jmp 0x40ceb2
movq -0x5c8(%rbp), %rdi
leaq -0x498(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5d0(%rbp)
jmp 0x40cece
movq -0x5d0(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5d8(%rbp)
jmp 0x40ceea
movq -0x5d8(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
callq 0x4277f0
movq %rax, -0x5e0(%rbp)
jmp 0x40cf06
movq -0x5e0(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x4277f0
jmp 0x40cf1b
xorl %eax, %eax
movl %eax, %esi
leaq -0x3f8(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x5e8(%rbp)
jmp 0x40cf39
movq -0x5e8(%rbp), %rax
movw %ax, -0x16(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x418(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x5f0(%rbp)
jmp 0x40cf62
movq -0x5f0(%rbp), %rax
movw %ax, -0x14(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x438(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x5f8(%rbp)
jmp 0x40cf8b
movq -0x5f8(%rbp), %rax
testq %rax, %rax
setne -0x17(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x458(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x600(%rbp)
jmp 0x40cfb7
movq -0x600(%rbp), %rax
testq %rax, %rax
setne -0x18(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x478(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x608(%rbp)
jmp 0x40cfe3
movq -0x608(%rbp), %rax
testq %rax, %rax
setne -0x19(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x498(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x610(%rbp)
jmp 0x40d00f
movq -0x610(%rbp), %rax
testq %rax, %rax
setne -0x1a(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x4b8(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x618(%rbp)
jmp 0x40d03b
movq -0x618(%rbp), %rax
testq %rax, %rax
setne -0x1b(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x4d8(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x620(%rbp)
jmp 0x40d067
movq -0x620(%rbp), %rax
testq %rax, %rax
setne -0x1c(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x4f8(%rbp), %rdi
movl $0xa, %edx
callq 0x40f200
movq %rax, -0x628(%rbp)
jmp 0x40d093
movq -0x628(%rbp), %rax
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movb %al, -0x1d(%rbp)
movzwl -0x16(%rbp), %ecx
xorl %eax, %eax
cmpl $0x1, %ecx
movb %al, -0x629(%rbp)
jl 0x40d0db
movzwl -0x16(%rbp), %ecx
movzwl 0x211492(%rip), %edx    # 0x61e554
addl $0x1, %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x629(%rbp)
jge 0x40d0db
movb $0x1, %al
movb %al, -0x629(%rbp)
jmp 0x40d0db
movb -0x629(%rbp), %al
testb $0x1, %al
jne 0x40d0e7
jmp 0x40d0ec
jmp 0x40d19a
leaq 0x196361(%rip), %rdi    # 0x5a3454
leaq 0x193f94(%rip), %rsi    # 0x5a108e
movl $0x33f, %edx            # imm = 0x33F
leaq 0x1963ae(%rip), %rcx    # 0x5a34b4
callq 0x4e53d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x4a2730
leaq -0x4d8(%rbp), %rdi
callq 0x4a2730
leaq -0x4b8(%rbp), %rdi
callq 0x4a2730
leaq -0x498(%rbp), %rdi
callq 0x4a2730
leaq -0x478(%rbp), %rdi
callq 0x4a2730
leaq -0x458(%rbp), %rdi
callq 0x4a2730
leaq -0x438(%rbp), %rdi
callq 0x4a2730
leaq -0x418(%rbp), %rdi
callq 0x4a2730
leaq -0x3f8(%rbp), %rdi
callq 0x4a2730
leaq -0x3d8(%rbp), %rdi
callq 0x497a10
jmp 0x40d378
movzwl -0x14(%rbp), %ecx
xorl %eax, %eax
cmpl $0x1, %ecx
movb %al, -0x62a(%rbp)
jl 0x40d1cf
movzwl -0x14(%rbp), %ecx
movzwl 0x21139c(%rip), %edx    # 0x61e552
addl $0x1, %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x62a(%rbp)
jg 0x40d1cf
movb $0x1, %al
movb %al, -0x62a(%rbp)
jmp 0x40d1cf
movb -0x62a(%rbp), %al
testb $0x1, %al
jne 0x40d1db
jmp 0x40d1dd
jmp 0x40d1fc
leaq 0x196308(%rip), %rdi    # 0x5a34ec
leaq 0x193ea3(%rip), %rsi    # 0x5a108e
movl $0x340, %edx            # imm = 0x340
leaq 0x1962bd(%rip), %rcx    # 0x5a34b4
callq 0x4e53d0
movb -0x17(%rbp), %dl
movq 0x2114da(%rip), %rax    # 0x61e6e0
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movb -0x18(%rbp), %dl
movq 0x2114c6(%rip), %rax    # 0x61e6e8
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movb -0x19(%rbp), %dl
movq 0x2114b2(%rip), %rax    # 0x61e6f0
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movb -0x1a(%rbp), %dl
movq 0x21149e(%rip), %rax    # 0x61e6f8
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movb -0x1b(%rbp), %dl
movq 0x21148a(%rip), %rax    # 0x61e700
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movb -0x1c(%rbp), %dl
movq 0x211476(%rip), %rax    # 0x61e708
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movb -0x1d(%rbp), %dl
movq 0x211462(%rip), %rax    # 0x61e710
movzwl -0x16(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movzwl -0x14(%rbp), %ecx
andb $0x1, %dl
movb %dl, (%rax,%rcx)
movw -0x20(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x20(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x4a2730
leaq -0x4d8(%rbp), %rdi
callq 0x4a2730
leaq -0x4b8(%rbp), %rdi
callq 0x4a2730
leaq -0x498(%rbp), %rdi
callq 0x4a2730
leaq -0x478(%rbp), %rdi
callq 0x4a2730
leaq -0x458(%rbp), %rdi
callq 0x4a2730
leaq -0x438(%rbp), %rdi
callq 0x4a2730
leaq -0x418(%rbp), %rdi
callq 0x4a2730
leaq -0x3f8(%rbp), %rdi
callq 0x4a2730
leaq -0x3d8(%rbp), %rdi
callq 0x497a10
jmp 0x40cd22
leaq -0x228(%rbp), %rdi
callq 0x46ee70
jmp 0x40d357
leaq -0x258(%rbp), %rdi
callq 0x4a2730
leaq -0x228(%rbp), %rdi
callq 0x46f220
addq $0x630, %rsp            # imm = 0x630
popq %rbp
retq
leaq -0x258(%rbp), %rdi
callq 0x4a2730
leaq -0x228(%rbp), %rdi
callq 0x46f220
movq -0x230(%rbp), %rdi
callq 0x4d0770
nopl (%rax)