// File: /workspace/github_cpp_makefile_star2_O2/ys1998[P]spsim/src/instruction.cpp
// Function: Instruction::Instruction(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Instruction::Instruction(int _PC, std::string instr){
	ID = -1;
	PC = _PC;
	_rd = -1; rd_ = -1;
	rs = rt = rd = -1;
	IF = DE = RF1 = EXEC = RF2= MEM= WB = -1;
	shamt = 0;
	text = instr;
	predicted = jumpAddressPred = 55;

	std::istringstream iss(instr);
	std::string op;
	int cnt = 0, extra;
	while(iss){
		switch(cnt){
			case 0:
			op = ""; iss >> op;
			if(!OPCODE.count(op) || !FUNCT.count(op)){
				error_msg("parser", "Invalid operation \"" + op + "\", line " + std::to_string(_PC));
			}else{	
				opcode = OPCODE[op];
				funct = FUNCT[op];
			}
			break;
			case 1:
			if(opcode == 0 || opcode == OPCODE["lw"])
			{
				iss >> rd;
				if(rd < 0 || rd >= NUM_LOG_REGS){
					error_msg("parser", "Invalid register rd = " + std::to_string(rd) + ", line " + std::to_string(_PC));
				}
			}
			else{
				iss >> rs;
				if(rs < 0 || rs >= NUM_LOG_REGS){
					error_msg("parser", "Invalid register rd = " + std::to_string(rs) + ", line " + std::to_string(_PC));
				}
			}
			break;
			case 2:
			if(opcode == OPCODE["lw"] || opcode == OPCODE["sw"]){
				iss >> immediate;
				if(immediate>std::pow(2,15)||immediate<-std::pow(2,15))
				error_msg("parser", "Invalid immediate immediate = " + std::to_string(immediate) + ", line " + std::to_string(_PC));
				 	
			}else if(opcode == 0)
			{
				iss >> rs;
				if(rs < 0 || rs >= NUM_LOG_REGS){
					error_msg("parser", "Invalid register rs = " + std::to_string(rs) + ", line " + std::to_string(_PC));
				}
			}
			else
			{
				iss >> rt;
				if(rt < 0 || rt >= NUM_LOG_REGS){
					error_msg("parser", "Invalid register rt = " + std::to_string(rt) + ", line " + std::to_string(_PC));
				}
			}
			break;
			
			case 3:
			if(opcode == 0)
			{
				iss >> rt;
				if(rt < 0 || rt >= NUM_LOG_REGS){
					error_msg("parser", "Invalid register rt = " + std::to_string(rt) + ", line " + std::to_string(_PC));
				}
			}
			else if( opcode == OPCODE["beq"] || opcode == OPCODE["bne"])
			{
				iss >> immediate;
				if (immediate < -32768 || immediate >= 32768)
				{
					error_msg("parser", "Invalid immediate = " + std::to_string(immediate) + ", line " + std::to_string(_PC));
				}
			}
			else{
				iss >> rt;
				if(rt < 0 || rt >= NUM_LOG_REGS){
					error_msg("parser", "Invalid register rt = " + std::to_string(rt) + ", line " + std::to_string(_PC));
				}
			}
			if(opcode == OPCODE["lw"])
				rs=rt;
			break;
			default:
			iss >> extra;
			break;
		}
		cnt++;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4a8, %rsp            # imm = 0x4A8
movq %rdi, %r14
leaq 0x60(%rdi), %rax
movq %rax, 0x50(%rdi)
andq $0x0, 0x58(%rdi)
movb $0x0, 0x60(%rdi)
orl $-0x1, (%rdi)
movl %esi, 0x1c(%rsp)
movl %esi, 0x4(%rdi)
orq $-0x1, 0x1c(%rdi)
orl $-0x1, 0x10(%rdi)
orq $-0x1, 0x8(%rdi)
movq %rdx, %rbx
leaq 0x50(%rdi), %r15
pcmpeqd %xmm0, %xmm0
movdqu %xmm0, 0x34(%rdi)
movdqu %xmm0, 0x40(%rdi)
andl $0x0, 0x2c(%rdi)
movq %r15, %rdi
movq %rdx, %rsi
callq 0x3140
movq %r15, 0x10(%rsp)
movabsq $0x3700000037, %rax     # imm = 0x3700000037
movq %rax, 0x70(%r14)
leaq 0x328(%rsp), %rdi
pushq $0x8
popq %rdx
movq %rbx, %rsi
callq 0x3300
leaq 0x10(%r14), %rax
movq %rax, 0x98(%rsp)
leaq 0xc(%r14), %rax
movq %rax, 0x20(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq 0x8(%r14), %rcx
movq %rcx, 0x48(%rsp)
movb $0x0, (%rax)
leaq 0x30(%r14), %rax
movq %rax, 0x70(%rsp)
xorl %r12d, %r12d
leaq 0x328(%rsp), %rbp
leaq 0xa0(%rsp), %r15
movq 0x328(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x348(%rsp,%rax)
jne 0x7805
cmpl $0x3, %r12d
ja 0x7109
movl %r12d, %eax
leaq 0x91c9(%rip), %rcx      # 0x100b4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0xc0(%rsp), %rdi
leaq 0x93db(%rip), %rsi      # 0x102de
callq 0x3360
movq %rbp, %rdi
leaq 0xc0(%rsp), %rsi
callq 0x3250
leaq 0x102e9(%rip), %rdi     # 0x17208
leaq 0xc0(%rsp), %rsi
callq 0x7c8e
testq %rax, %rax
je 0x711e
leaq 0x102fc(%rip), %rdi     # 0x17238
leaq 0xc0(%rsp), %rsi
callq 0x7c8e
testq %rax, %rax
je 0x711e
leaq 0x102af(%rip), %rdi     # 0x17208
leaq 0xc0(%rsp), %rsi
callq 0x7dfe
movl (%rax), %eax
movl %eax, 0x24(%r14)
leaq 0x102c5(%rip), %rdi     # 0x17238
leaq 0xc0(%rsp), %rsi
callq 0x7dfe
movl (%rax), %eax
movl %eax, 0x28(%r14)
jmp 0x77fd
movl 0x24(%r14), %ebx
movq %r15, %rdi
leaq 0x90d4(%rip), %rsi      # 0x1006d
leaq 0x50(%rsp), %rdx
callq 0x4860
leaq 0x1025e(%rip), %rdi     # 0x17208
movq %r15, %rsi
callq 0x47fa
cmpl (%rax), %ebx
jne 0x71c3
movq %r15, %rdi
callq 0x3100
jmp 0x7211
movl 0x24(%r14), %ebx
testl %ebx, %ebx
je 0x72cc
movq %r15, %rdi
leaq 0x902f(%rip), %rsi      # 0x1000c
leaq 0x50(%rsp), %rdx
callq 0x4860
leaq 0x1021a(%rip), %rdi     # 0x17208
movq %r15, %rsi
callq 0x47fa
cmpl (%rax), %ebx
jne 0x737c
movq %r15, %rdi
callq 0x3100
jmp 0x73ca
movl 0x24(%r14), %ebx
testl %ebx, %ebx
je 0x7050
movq %r15, %rdi
leaq 0x9050(%rip), %rsi      # 0x1006d
leaq 0x28(%rsp), %rdx
callq 0x4860
leaq 0x101da(%rip), %rdi     # 0x17208
movq %r15, %rsi
callq 0x47fa
movl (%rax), %ebp
movq %r15, %rdi
callq 0x3100
cmpl %ebp, %ebx
leaq 0x328(%rsp), %rbp
jne 0x747e
movq %rbp, %rdi
movq 0x98(%rsp), %rsi
callq 0x3160
movq 0x98(%rsp), %rax
cmpl $0x20, (%rax)
jb 0x77fd
leaq 0x1c8(%rsp), %rdi
leaq 0x9044(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x98(%rsp), %rax
movl (%rax), %esi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x7da4
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x9038(%rip), %rsi      # 0x100e8
movq %rbx, %rdx
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x901b(%rip), %rdx      # 0x100e0
callq 0x7d0f
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x2e8(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x1c8(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9f00
jmp 0x77c7
movq %rbp, %rdi
leaq 0xe4(%rsp), %rsi
callq 0x3160
jmp 0x77fd
leaq 0x1e8(%rsp), %rdi
leaq 0x8f97(%rip), %rsi      # 0x100c4
leaq 0x78(%rsp), %rdx
callq 0x4860
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
leaq 0x8f85(%rip), %rsi      # 0x100cb
leaq 0xc0(%rsp), %rdx
callq 0x7d2e
movq %r15, %rdi
movq %rbx, %rsi
leaq 0x8f7f(%rip), %rdx      # 0x100df
callq 0x7d0f
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x308(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x1e8(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9f00
movq %r13, %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
movq %r15, %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
jmp 0x77f0
movl 0x24(%r14), %ebx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8e47(%rip), %rsi      # 0x1001d
leaq 0x78(%rsp), %rdx
callq 0x4860
leaq 0x10021(%rip), %rdi     # 0x17208
movq %r13, %rsi
callq 0x47fa
movl (%rax), %ebp
movq %r13, %rdi
callq 0x3100
movq %r15, %rdi
callq 0x3100
cmpl %ebp, %ebx
leaq 0x328(%rsp), %rbp
jne 0x752e
movq %rbp, %rdi
movq 0x70(%rsp), %rsi
callq 0x3160
movq 0x70(%rsp), %rax
movl (%rax), %eax
movl $0xffff7fff, %ecx       # imm = 0xFFFF7FFF
addl %ecx, %eax
cmpl $0xfffefffe, %eax       # imm = 0xFFFEFFFE
ja 0x77fd
leaq 0x188(%rsp), %rdi
leaq 0x8e7e(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x70(%rsp), %rax
movl (%rax), %esi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x7da4
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8e8c(%rip), %rsi      # 0x100ff
movq %rbx, %rdx
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8e58(%rip), %rdx      # 0x100e0
callq 0x7d0f
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x2a8(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x188(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9f00
jmp 0x77c7
movq %rbp, %rdi
movq 0x20(%rsp), %rsi
callq 0x3160
movq 0x20(%rsp), %rax
cmpl $0x20, (%rax)
leaq 0x78(%rsp), %rbx
leaq 0x50(%rsp), %rbp
jb 0x76c8
leaq 0x128(%rsp), %rdi
leaq 0x8dc4(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x20(%rsp), %rax
movl (%rax), %esi
movq %rbp, %rdi
callq 0x7da4
movq %rbp, %rdx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8e0a(%rip), %rsi      # 0x10135
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8da3(%rip), %rdx      # 0x100e0
callq 0x7d0f
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x248(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x128(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9f00
jmp 0x7694
movl 0x24(%r14), %ebx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8c81(%rip), %rsi      # 0x10010
leaq 0x78(%rsp), %rdx
callq 0x4860
leaq 0xfe68(%rip), %rdi      # 0x17208
movq %r13, %rsi
callq 0x47fa
movl (%rax), %ebp
movq %r13, %rdi
callq 0x3100
movq %r15, %rdi
callq 0x3100
cmpl %ebp, %ebx
leaq 0x328(%rsp), %rbp
jne 0x75e9
movq %rbp, %rdi
movq 0x70(%rsp), %rsi
callq 0x3160
movq 0x70(%rsp), %rax
movl (%rax), %eax
movswl %ax, %ecx
cmpl %eax, %ecx
leaq 0x78(%rsp), %rbx
leaq 0x50(%rsp), %rbp
je 0x76c8
leaq 0x108(%rsp), %rdi
leaq 0x8cc2(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x70(%rsp), %rax
movl (%rax), %esi
movq %rbp, %rdi
callq 0x7da4
movq %rbp, %rdx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8d1f(%rip), %rsi      # 0x1014c
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8ca1(%rip), %rdx      # 0x100e0
callq 0x7d0f
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x228(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x108(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9f00
jmp 0x7694
movq %rbp, %rdi
movq 0x48(%rsp), %rsi
callq 0x3160
movq 0x48(%rsp), %rax
cmpl $0x20, (%rax)
jb 0x77fd
leaq 0x1a8(%rsp), %rdi
leaq 0x8c1c(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x48(%rsp), %rax
movl (%rax), %esi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x7da4
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8c13(%rip), %rsi      # 0x100e8
movq %rbx, %rdx
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8bf6(%rip), %rdx      # 0x100e0
callq 0x7d0f
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x2c8(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x1a8(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9f00
jmp 0x77c7
cmpl $0x0, 0x24(%r14)
je 0x771c
movq %rbp, %rdi
movq 0x20(%rsp), %rsi
callq 0x3160
movq 0x20(%rsp), %rax
cmpl $0x20, (%rax)
jb 0x77fd
leaq 0x148(%rsp), %rdi
leaq 0x8b61(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x20(%rsp), %rax
movl (%rax), %esi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x7da4
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8ba5(%rip), %rsi      # 0x10135
movq %rbx, %rdx
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8b3b(%rip), %rdx      # 0x100e0
callq 0x7d0f
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x268(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x148(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9f00
jmp 0x77c7
movq %rbp, %rdi
movq 0x20(%rsp), %rsi
callq 0x3160
movq 0x20(%rsp), %rax
cmpl $0x20, (%rax)
leaq 0x78(%rsp), %rbx
leaq 0x50(%rsp), %rbp
jb 0x76c8
leaq 0xe8(%rsp), %rdi
leaq 0x8aa7(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x20(%rsp), %rax
movl (%rax), %esi
movq %rbp, %rdi
callq 0x7da4
movq %rbp, %rdx
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x8aed(%rip), %rsi      # 0x10135
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8a86(%rip), %rdx      # 0x100e0
callq 0x7d0f
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x208(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0xe8(%rsp), %r13
movq %r13, %rdi
movq %rbp, %rsi
callq 0x9f00
movq %rbp, %rdi
callq 0x3100
movq %rbx, %rdi
callq 0x3100
movq %r15, %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
movq %r13, %rdi
callq 0x3100
movl 0x24(%r14), %ebx
movq %r15, %rdi
leaq 0x8997(%rip), %rsi      # 0x1006d
leaq 0x28(%rsp), %rdx
callq 0x4860
leaq 0xfb21(%rip), %rdi      # 0x17208
movq %r15, %rsi
callq 0x47fa
movl (%rax), %ebp
movq %r15, %rdi
callq 0x3100
cmpl %ebp, %ebx
leaq 0x328(%rsp), %rbp
jne 0x77fd
movq 0x20(%rsp), %rax
movl (%rax), %eax
movq 0x48(%rsp), %rcx
movl %eax, (%rcx)
jmp 0x77fd
movq %rbp, %rdi
movq 0x48(%rsp), %rsi
callq 0x3160
movq 0x48(%rsp), %rax
cmpl $0x20, (%rax)
jb 0x77fd
leaq 0x168(%rsp), %rdi
leaq 0x897e(%rip), %rsi      # 0x100c4
leaq 0xf(%rsp), %rdx
callq 0x4860
movq 0x48(%rsp), %rax
movl (%rax), %esi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x7da4
leaq 0x28(%rsp), %r13
movq %r13, %rdi
leaq 0x89ab(%rip), %rsi      # 0x1011e
movq %rbx, %rdx
callq 0x7e64
movq %r15, %rdi
movq %r13, %rsi
leaq 0x8958(%rip), %rdx      # 0x100e0
callq 0x7d0f
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
movl 0x1c(%rsp), %esi
callq 0x7da4
leaq 0x288(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7ca8
leaq 0x168(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x9f00
movq %r13, %rdi
callq 0x3100
leaq 0x78(%rsp), %rdi
callq 0x3100
movq %r15, %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
movq %rbx, %rdi
callq 0x3100
incl %r12d
jmp 0x6ebd
leaq 0xc0(%rsp), %rdi
callq 0x3100
leaq 0x328(%rsp), %rdi
callq 0x3110
addq $0x4a8, %rsp            # imm = 0x4A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x7880
movq %rax, %rbx
jmp 0x7876
movq %rax, %rbx
leaq 0x288(%rsp), %rdi
callq 0x3100
jmp 0x785f
jmp 0x7c08
movq %rax, %rbx
jmp 0x7869
movq %rax, %rbx
jmp 0x788a
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x168(%rsp), %rdi
jmp 0x7bfd
jmp 0x7c08
movq %rax, %rbx
jmp 0x795a
movq %rax, %rbx
jmp 0x7946
movq %rax, %rbx
jmp 0x7950
movq %rax, %rbx
jmp 0x792f
movq %rax, %rbx
jmp 0x7912
movq %rax, %rbx
jmp 0x7939
movq %rax, %rbx
jmp 0x7908
movq %rax, %rbx
jmp 0x78fe
movq %rax, %rbx
jmp 0x78f1
movq %rax, %rbx
jmp 0x78e7
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0x3100
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x148(%rsp), %rdi
jmp 0x7bfd
movq %rax, %rbx
leaq 0x208(%rsp), %rdi
callq 0x3100
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0xe8(%rsp), %rdi
jmp 0x7bfd
jmp 0x7c08
movq %rax, %rbx
jmp 0x799f
movq %rax, %rbx
jmp 0x79c0
movq %rax, %rbx
jmp 0x7995
movq %rax, %rbx
jmp 0x79ac
movq %rax, %rbx
jmp 0x79b6
movq %rax, %rbx
leaq 0x2c8(%rsp), %rdi
callq 0x3100
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x1a8(%rsp), %rdi
jmp 0x7bfd
jmp 0x7c08
movq %rax, %rbx
movq 0x10(%rsp), %r15
jmp 0x7c2a
movq %rax, %rbx
jmp 0x7c2a
movq %rax, %rbx
jmp 0x7a40
movq %rax, %rbx
jmp 0x7a1f
jmp 0x7c08
movq %rax, %rbx
jmp 0x7a2c
movq %rax, %rbx
jmp 0x7a36
movq %rax, %rbx
jmp 0x7a15
movq %rax, %rbx
leaq 0x248(%rsp), %rdi
callq 0x3100
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x128(%rsp), %rdi
jmp 0x7bfd
movq %rax, %rbx
jmp 0x7a9c
jmp 0x7c08
movq %rax, %rbx
leaq 0x228(%rsp), %rdi
callq 0x3100
jmp 0x7a76
movq %rax, %rbx
jmp 0x7a80
movq %rax, %rbx
jmp 0x7aa6
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
jmp 0x7a92
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x108(%rsp), %rdi
jmp 0x7bfd
jmp 0x7b86
jmp 0x7bf2
movq %rax, %rbx
jmp 0x7afd
jmp 0x7c08
movq %rax, %rbx
jmp 0x7af0
movq %rax, %rbx
jmp 0x7b07
movq %rax, %rbx
leaq 0x2e8(%rsp), %rdi
callq 0x3100
jmp 0x7ae6
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x3100
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x1c8(%rsp), %rdi
jmp 0x7bfd
movq %rax, %rbx
jmp 0x7b11
movq %rax, %rbx
jmp 0x7b38
movq %rax, %rbx
leaq 0x2a8(%rsp), %rdi
callq 0x3100
leaq 0x78(%rsp), %rdi
callq 0x3100
jmp 0x7b5b
movq %rax, %rbx
jmp 0x7b72
jmp 0x7c08
movq %rax, %rbx
jmp 0x7b68
movq %rax, %rbx
jmp 0x7b7c
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x50(%rsp), %rdi
callq 0x3100
leaq 0x188(%rsp), %rdi
jmp 0x7bfd
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3100
jmp 0x7bf5
jmp 0x7bf2
movq %rax, %rbx
leaq 0x308(%rsp), %rdi
callq 0x3100
jmp 0x7bac
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x3100
jmp 0x7bc2
movq %rax, %rbx
jmp 0x7bcf
jmp 0x7c08
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
jmp 0x7bde
movq %rax, %rbx
leaq 0x1e8(%rsp), %rdi
jmp 0x7bfd
jmp 0x7c08
jmp 0x7bf2
jmp 0x7c08
jmp 0x7bf2
jmp 0x7bf2
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x3100
jmp 0x7c0b
jmp 0x7c08
jmp 0x7c08
movq %rax, %rbx
movq 0x10(%rsp), %r15
leaq 0xc0(%rsp), %rdi
callq 0x3100
leaq 0x328(%rsp), %rdi
callq 0x3110
movq %r15, %rdi
callq 0x3100
movq %rbx, %rdi
callq 0x3320