// File: /workspace/github_cpp_makefile_star2_O1/gioannides[P]Language_Processors/src/../include/ast/class_forward_declarations.hpp
// Function: CastToType(std::basic_ofstream<char, std::char_traits<char>>&, Context&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
inline void CastToType(std::ofstream& file, Context& contxt, std::string IDENTIFIER) {
	int i,j;
	for(i=contxt.Variables.size()-1; i>=0; i--) {
				for (j=contxt.Scopes.size()-1; j>=0; j--)
				{
					if(contxt.Variables[i].scope == contxt.Scopes[j] && IDENTIFIER == contxt.Variables[i].id) 
					{
						
					if(contxt.Variables[i].DataType == contxt.CastType){
						//do nothing
					}
					else if(contxt.Variables[i].DataType == "float" && contxt.CastType == "short" ){
						
						file << std::endl << "\t.set macro\t";
						file << std::endl << "\ttrunc.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1 << ",$" << contxt.Regs+1;
						file << std::endl << "\t.set nomacro\t";
						file << std::endl << "\tmfc1\t$" << contxt.Regs+1 << "," << "$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						file << std::endl << "\tsll\t$" << contxt.Regs+1 << "," << "$" << contxt.Regs+1 << ",16";
						file << std::endl << "\tsra\t$" << contxt.Regs+1 << "," << "$" << contxt.Regs+1 << ",16";
						file << std::endl << "\tmtc1\t$" << contxt.Regs+1 << "," << "$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						file << std::endl << "\tcvt.s.w\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						contxt.regType[contxt.Regs+1]='f';
						
					}
					else if(contxt.Variables[i].DataType == "float" && contxt.CastType == "char" ){
						
						file << std::endl << "\t.set macro\t";
						file << std::endl << "\ttrunc.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1 << ",$" << contxt.Regs+1;
						file << std::endl << "\t.set nomacro\t";
						file << std::endl << "\tmfc1\t$" << contxt.Regs+1 << "," << "$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						file << std::endl << "\tsll\t$" << contxt.Regs+1 << "," << "$" << contxt.Regs+1 << ",24";
						file << std::endl << "\tsra\t$" << contxt.Regs+1 << "," << "$" << contxt.Regs+1 << ",24";
						file << std::endl << "\tmtc1\t$" << contxt.Regs+1 << "," << "$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						file << std::endl << "\tcvt.s.w\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						contxt.regType[contxt.Regs+1]='f';
						
					}
					else if(contxt.Variables[i].DataType == "float" && (contxt.CastType == "int" || contxt.CastType == "unsigned" || contxt.CastType == "signed") ){
						
						file << std::endl << "\tcvt.w.s\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						contxt.regType[contxt.Regs+1]='f';
						
					}
					else if( (contxt.Variables[i].DataType == "short" || contxt.Variables[i].DataType == "int" || contxt.Variables[i].DataType == "unsigned" ||contxt.Variables[i].DataType == "char" || contxt.Variables[i].DataType == "signed") && contxt.CastType == "float" ){
						
						file << std::endl << "\tmtc1\t$" << contxt.Regs+1 << "," << "$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						file << std::endl << "\tcvt.s.w\t$f" << contxt.Regs+1 << ",$f" << contxt.Regs+1;
						file << std::endl << "\tnop" << std::endl;
						contxt.regType[contxt.Regs+1]='f';
						
					}

					else if(contxt.Variables[i].DataType == "int" && contxt.CastType == "short" ){
						
						file << std::endl << "\tsll\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",16";
						file << std::endl << "\tsra\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",16";
						contxt.regType[contxt.Regs+1]='i';
						
					}
					else if(contxt.Variables[i].DataType == "int" && contxt.CastType == "char" ){
						
						file << std::endl << "\tsll\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",24";
						file << std::endl << "\tsra\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",24";
						contxt.regType[contxt.Regs+1]='c';
						
					}
					else if(contxt.Variables[i].DataType == "short" && contxt.CastType == "char" ){
						
						file << std::endl << "\tsll\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",24";
						file << std::endl << "\tsra\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",24";
						file << std::endl << "\tsll\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",16";
						file << std::endl << "\tsra\t$" << contxt.Regs+1 << ",$" << contxt.Regs+1 << ",16";
						contxt.regType[contxt.Regs+1]='c';
						
					}
						i = -1;
						j = -1;
			}									
		}
	  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, 0x10(%rsp)
movq 0x248(%rsi), %rax
subq 0x240(%rsi), %rax
shrq $0x4, %rax
imull $0xba2e8ba3, %eax, %r12d # imm = 0xBA2E8BA3
decl %r12d
js 0x1fe4f
movq %rsi, %r14
movq %rdi, %r15
leaq 0x98(%rsi), %rax
movq %rax, 0x8(%rsp)
movq 0x468(%r14), %rbx
subq 0x460(%r14), %rbx
shrq $0x5, %rbx
decl %ebx
js 0x1fe46
movslq %r12d, %rax
movq 0x240(%r14), %rbp
imulq $0xb0, %rax, %r13
movl %ebx, %eax
movq 0x460(%r14), %rcx
shlq $0x5, %rax
movq 0x38(%rbp,%r13), %rdx
cmpq 0x8(%rcx,%rax), %rdx
jne 0x1ee75
addq %r13, %rbp
testq %rdx, %rdx
je 0x1eec2
addq %rax, %rcx
movq (%rcx), %rsi
movq 0x30(%rbp), %rdi
callq 0x7350
testl %eax, %eax
jne 0x1ee75
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdx
cmpq 0x10(%rbp), %rdx
jne 0x1ee75
testq %rdx, %rdx
je 0x1eeeb
movq 0x8(%rbp), %rsi
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x7350
testl %eax, %eax
jne 0x1ee75
movq 0x60(%rbp), %rdx
addq $0x58, %rbp
cmpq 0xa0(%r14), %rdx
jne 0x1ef29
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
testq %rdx, %rdx
je 0x1fc06
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq (%rbp), %rdi
callq 0x7350
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %eax, %eax
je 0x1ee75
movq %rbp, %rdi
leaq 0x18652(%rip), %rbx     # 0x37585
movq %rbx, %rsi
callq 0x70c0
testl %eax, %eax
jne 0x1ef58
movq 0x8(%rsp), %rdi
leaq 0x18664(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1f442
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
movq %rbx, %rsi
callq 0x70c0
testl %eax, %eax
jne 0x1ef8c
movq 0x8(%rsp), %rdi
leaq 0x18625(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1f6e9
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
movq %rbx, %rsi
callq 0x70c0
testl %eax, %eax
leaq 0x191e0(%rip), %r12     # 0x3818c
je 0x1f2e8
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x185e7(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1f049
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
movq %r12, %rsi
callq 0x70c0
testl %eax, %eax
je 0x1f049
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1864e(%rip), %rsi     # 0x37650
callq 0x70c0
testl %eax, %eax
je 0x1f049
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x18583(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1f049
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x18612(%rip), %rsi     # 0x37652
callq 0x70c0
testl %eax, %eax
jne 0x1f05e
movq 0x8(%rsp), %rdi
movq %rbx, %rsi
callq 0x70c0
testl %eax, %eax
je 0x1f3dc
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
movq %r12, %rsi
callq 0x70c0
testl %eax, %eax
jne 0x1f092
movq 0x8(%rsp), %rdi
leaq 0x1852a(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1fc10
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
movq %r12, %rsi
callq 0x70c0
testl %eax, %eax
jne 0x1f0c6
movq 0x8(%rsp), %rdi
leaq 0x184eb(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1fd2b
movq 0x240(%r14), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x184d3(%rip), %rsi     # 0x375af
callq 0x70c0
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x1fc06
movq 0x8(%rsp), %rdi
leaq 0x184a9(%rip), %rsi     # 0x375a4
callq 0x70c0
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x1ee75
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x18a2d(%rip), %rsi     # 0x37b73
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x185c3(%rip), %rbx     # 0x37731
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
leaq 0x189ef(%rip), %r12     # 0x37b85
movq %r12, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x189a7(%rip), %r13     # 0x37b7e
movq %r13, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x18916(%rip), %rsi     # 0x37b73
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
leaq 0x188d4(%rip), %r12     # 0x37b7a
movq %r12, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
movq %r13, %rsi
jmp 0x1fdf5
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x70c0
testl %eax, %eax
je 0x1f327
movq 0x8(%rsp), %rdi
leaq 0x1834b(%rip), %rsi     # 0x37650
callq 0x70c0
testl %eax, %eax
je 0x1f327
movq 0x8(%rsp), %rdi
leaq 0x18338(%rip), %rsi     # 0x37652
callq 0x70c0
testl %eax, %eax
jne 0x1efb2
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0xb, %edx
movq %rax, %rdi
leaq 0x1838b(%rip), %rsi     # 0x376eb
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x183ed(%rip), %rsi     # 0x37775
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x4, %edx
movq %rax, %rdi
leaq 0x1821b(%rip), %rsi     # 0x375f2
jmp 0x1fbc2
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x7, %edx
movq %rax, %rdi
leaq 0x186ad(%rip), %rsi     # 0x37ac2
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x18241(%rip), %rsi     # 0x3767e
jmp 0x1fa83
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movl $0xc, %edx
movq %rax, %rdi
leaq 0x186df(%rip), %rsi     # 0x37b57
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0xd, %edx
movq %rax, %rdi
leaq 0x1864d(%rip), %rsi     # 0x37b03
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x18297(%rip), %rsi     # 0x37775
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x1822b(%rip), %rsi     # 0x37731
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movl $0xe, %edx
movq %rax, %rdi
leaq 0x18612(%rip), %rsi     # 0x37b64
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x7, %edx
movq %rax, %rdi
leaq 0x18581(%rip), %rsi     # 0x37b11
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x180c6(%rip), %r12     # 0x3767e
movq %r12, %rsi
callq 0x73a0
movl $0x2, %edx
movq %rbp, %rdi
leaq 0x18585(%rip), %rsi     # 0x37b54
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x4, %edx
movq %rax, %rdi
leaq 0x17fd4(%rip), %rsi     # 0x375f2
callq 0x73a0
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbp, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x184ef(%rip), %rsi     # 0x37b73
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl $0x1, %edx
movq %rbp, %rdi
leaq 0x1845b(%rip), %rbx     # 0x37b17
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
leaq 0x18496(%rip), %r13     # 0x37b7a
jmp 0x1f98b
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movl $0xc, %edx
movq %rax, %rdi
leaq 0x18438(%rip), %rsi     # 0x37b57
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0xd, %edx
movq %rax, %rdi
leaq 0x183a6(%rip), %rsi     # 0x37b03
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x17ff0(%rip), %rsi     # 0x37775
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x17f84(%rip), %rsi     # 0x37731
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movl $0xe, %edx
movq %rax, %rdi
leaq 0x1836b(%rip), %rsi     # 0x37b64
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x7, %edx
movq %rax, %rdi
leaq 0x182da(%rip), %rsi     # 0x37b11
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
leaq 0x17e1f(%rip), %r12     # 0x3767e
movq %r12, %rsi
callq 0x73a0
movl $0x2, %edx
movq %rbp, %rdi
leaq 0x182de(%rip), %rsi     # 0x37b54
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x4, %edx
movq %rax, %rdi
leaq 0x17d2d(%rip), %rsi     # 0x375f2
callq 0x73a0
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbp, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x18248(%rip), %rsi     # 0x37b73
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl $0x1, %edx
movq %rbp, %rdi
leaq 0x181b4(%rip), %rbx     # 0x37b17
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
leaq 0x181fa(%rip), %r13     # 0x37b85
movq %r13, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x181b2(%rip), %rsi     # 0x37b7e
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl $0x1, %edx
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x7, %edx
movq %rax, %rdi
leaq 0x18063(%rip), %rsi     # 0x37ac2
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movl $0x2, %edx
movq %rbp, %rdi
leaq 0x180bd(%rip), %rsi     # 0x37b54
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x4, %edx
movq %rax, %rdi
leaq 0x17b0c(%rip), %rbx     # 0x375f2
movq %rbx, %rsi
callq 0x73a0
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbp, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0xb, %edx
movq %rax, %rdi
leaq 0x17fd0(%rip), %rsi     # 0x37b1f
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x17bfe(%rip), %rsi     # 0x37775
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x4, %edx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x73a0
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %rbp, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movb $0x66, %al
movslq 0x310(%r14), %rcx
movb %al, 0x342(%r14,%rcx)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0x1ee75
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x17f2a(%rip), %rsi     # 0x37b73
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x17ac0(%rip), %rbx     # 0x37731
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
leaq 0x17ee1(%rip), %r12     # 0x37b7a
movq %r12, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x17ea4(%rip), %rsi     # 0x37b7e
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movb $0x69, %al
jmp 0x1fbf1
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x17e0f(%rip), %rsi     # 0x37b73
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
leaq 0x179a5(%rip), %rbx     # 0x37731
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
leaq 0x17dd1(%rip), %r12     # 0x37b85
movq %r12, %rsi
callq 0x73a0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq %rax, %rbp
movl $0x6, %edx
movq %rax, %rdi
leaq 0x17d89(%rip), %rsi     # 0x37b7e
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movq %rax, %rbp
movl $0x2, %edx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x73a0
movl 0x310(%r14), %esi
incl %esi
movq %rbp, %rdi
callq 0x75c0
movl $0x3, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x73a0
movb $0x63, %al
jmp 0x1fbf1
decl %r12d
jns 0x1ee63
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq