// File: gioannides[P]Language_Processors/src/../include/ast/ast_node.hpp
// Function: TypeSpecifier::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
void render_asm(std::ofstream& file,Context& contxt) {

			if(contxt.functionReturnType && !contxt.sizeof_ && !contxt.typedefs_ && !contxt.Cast){

					contxt.functionReturnTypetemp = *TYPES;


				}



			else if( TYPES != NULL && !contxt.sizeof_ && !contxt.typedefs_ && contxt.Cast){
					std::string types = *TYPES;			

					
					if (types=="char"){
						contxt.CastType = "char"; 
					}
					else if (types=="short"){
						contxt.CastType = "short";	
					}
					else if (types=="int"){
						contxt.CastType = "int";	
					}	
					else if (types=="long"){
						contxt.CastType = "long";	
					}
					else if (types=="float"){
						contxt.CastType = "float";	
					}
					else if (types=="double"){
						contxt.CastType = "double";	
					}	
					else if (types=="signed"){
						contxt.CastType = "signed";	
					}	
					else if (types=="unsigned"){
						contxt.CastType = "unsigned";
					}
				}

			else if( EnumSpecifierPtr != NULL && !contxt.sizeof_ && !contxt.Cast){
				contxt.enum_constant = true;
				EnumSpecifierPtr->render_asm(file,contxt);
				contxt.enum_constant = false;
			}

			
			else if( TYPES != NULL && !contxt.sizeof_ && !contxt.typedefs_  && !contxt.Cast ){
				std::string types = *TYPES;		// Require conversion to be used
				
				if (types=="char"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 1;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "char";
				}
				else if (types=="short"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 2;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "short";
				}
				else if (types=="int"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 4;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "int";
				}	
				else if (types=="long"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 8;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "long";
				}
				else if (types=="float"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 4;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "float";
					contxt.float_ = true;
				}
				else if (types=="double"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 8;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "double";
				}	
				else if (types=="signed"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 4;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "signed";
				}	
				else if (types=="unsigned"){
					if(!contxt.variable.Pointer){
						contxt.variable.word_size = 4;				///it should be size=1, you need lb and sb
					}
					contxt.variable.DataType = "unsigned";
					contxt.is_unsigned = true;
				}
			}
				
				
				
				else if( TYPES != NULL && !contxt.sizeof_ && contxt.typedefs_  && !contxt.Cast){
					std::string types = *TYPES;			

					if (types=="char"){
						contxt.TypeDef.TypeSpec = "char";
					}
					else if (types=="short"){
						contxt.TypeDef.TypeSpec = "short";	
					}
					else if (types=="int"){
						contxt.TypeDef.TypeSpec = "int";	
					}	
					else if (types=="long"){
						contxt.TypeDef.TypeSpec = "long";	
					}
					else if (types=="float"){
						contxt.TypeDef.TypeSpec = "float";	
					}
					else if (types=="double"){
						contxt.TypeDef.TypeSpec = "double";	
					}	
					else if (types=="signed"){
						contxt.TypeDef.TypeSpec = "signed";	
					}	
					else if (types=="unsigned"){
						contxt.TypeDef.TypeSpec = "unsigned";
					}
				}

				// if(contxt.reading) { //this is predicting total stack frame for all paramters/local declarations in function body
				// 	//contxt.variable.offset = contxt.totalStackArea;
				// 	contxt.totalStackArea += contxt.variable.word_size;
				// 	//file << "\nonly golbals get here " << contxt.totalStackArea << "\n";

				// }

				// if(!contxt.reading){ //this is execution

				// 	contxt.StackOffset += contxt.variable.word_size;
				// 	contxt.variable.offset = contxt.StackOffset-contxt.variable.word_size;
				// }

			//}
			else if(contxt.sizeof_ && TYPES != NULL && !contxt.Cast){
					if(*TYPES == "int"){
						contxt.SizeOf = 4;
					}
					else if(*TYPES == "float"){
						contxt.SizeOf = 4;
					}
					else if(*TYPES == "char"){
						contxt.SizeOf = 1;
					}
					else if(*TYPES == "short"){
						contxt.SizeOf = 2;
					}
					else if(*TYPES == "long"){
						contxt.SizeOf = 8;
					}
					else if(*TYPES == "unsigned"){
						contxt.SizeOf = 4;
					}
					else if(*TYPES == "signed"){
						contxt.SizeOf = 4;
					}
					else if(*TYPES == "double"){
						contxt.SizeOf = 8;
					}
					else if(*TYPES == "void"){
						contxt.SizeOf = 1;
					}
					else if ((*TYPES).find("short") != std::string::npos) {
    						contxt.SizeOf = 2;
					}
					else if ((*TYPES).find("long") != std::string::npos) {
    						contxt.SizeOf = 8;
					}
					else if ((*TYPES).find("double") != std::string::npos) {
    						contxt.SizeOf = 8;
					}
					else if ((*TYPES).find("int") != std::string::npos) {
    						contxt.SizeOf = 8;
					}				
				

				}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rax
testb $0x1, 0x360(%rax)
je 0x10026
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x10026
movq -0x18(%rbp), %rax
testb $0x1, 0x1d0(%rax)
jne 0x10026
movq -0x18(%rbp), %rax
testb $0x1, 0x90(%rax)
jne 0x10026
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rdi
addq $0x368, %rdi            # imm = 0x368
callq 0x8060
jmp 0x10c43
movq -0x90(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x102c9
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x102c9
movq -0x18(%rbp), %rax
testb $0x1, 0x1d0(%rax)
jne 0x102c9
movq -0x18(%rbp), %rax
testb $0x1, 0x90(%rax)
je 0x102c9
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x81a0
movq -0xa0(%rbp), %rdi
leaq 0x542cf(%rip), %rsi     # 0x64363
callq 0x9e30
movb %al, -0x91(%rbp)
jmp 0x100a1
movb -0x91(%rbp), %al
testb $0x1, %al
jne 0x100ad
jmp 0x100e5
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x542a4(%rip), %rsi     # 0x64363
callq 0x8590
jmp 0x100c6
jmp 0x102bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x8280
jmp 0x10c4c
leaq 0x54282(%rip), %rsi     # 0x6436e
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa1(%rbp)
jmp 0x100fd
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x10109
jmp 0x10127
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x54253(%rip), %rsi     # 0x6436e
callq 0x8590
jmp 0x10122
jmp 0x102b9
leaq 0x54e1d(%rip), %rsi     # 0x64f4b
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa2(%rbp)
jmp 0x1013f
movb -0xa2(%rbp), %al
testb $0x1, %al
jne 0x1014b
jmp 0x10169
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x54dee(%rip), %rsi     # 0x64f4b
callq 0x8590
jmp 0x10164
jmp 0x102b7
leaq 0x54293(%rip), %rsi     # 0x64403
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa3(%rbp)
jmp 0x10181
movb -0xa3(%rbp), %al
testb $0x1, %al
jne 0x1018d
jmp 0x101ab
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x54264(%rip), %rsi     # 0x64403
callq 0x8590
jmp 0x101a6
jmp 0x102b5
leaq 0x54192(%rip), %rsi     # 0x64344
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa4(%rbp)
jmp 0x101c3
movb -0xa4(%rbp), %al
testb $0x1, %al
jne 0x101cf
jmp 0x101ed
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x54163(%rip), %rsi     # 0x64344
callq 0x8590
jmp 0x101e8
jmp 0x102b3
leaq 0x54214(%rip), %rsi     # 0x64408
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa5(%rbp)
jmp 0x10205
movb -0xa5(%rbp), %al
testb $0x1, %al
jne 0x10211
jmp 0x1022f
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x541e5(%rip), %rsi     # 0x64408
callq 0x8590
jmp 0x1022a
jmp 0x102b1
leaq 0x541db(%rip), %rsi     # 0x64411
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa6(%rbp)
jmp 0x10247
movb -0xa6(%rbp), %al
testb $0x1, %al
jne 0x10253
jmp 0x1026e
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x541ac(%rip), %rsi     # 0x64411
callq 0x8590
jmp 0x1026c
jmp 0x102af
leaq 0x5419a(%rip), %rsi     # 0x6440f
leaq -0x38(%rbp), %rdi
callq 0x9e30
movb %al, -0xa7(%rbp)
jmp 0x10286
movb -0xa7(%rbp), %al
testb $0x1, %al
jne 0x10292
jmp 0x102ad
movq -0x18(%rbp), %rdi
addq $0x98, %rdi
leaq 0x5416b(%rip), %rsi     # 0x6440f
callq 0x8590
jmp 0x102ab
jmp 0x102ad
jmp 0x102af
jmp 0x102b1
jmp 0x102b3
jmp 0x102b5
jmp 0x102b7
jmp 0x102b9
jmp 0x102bb
leaq -0x38(%rbp), %rdi
callq 0x8280
jmp 0x10c41
movq -0x90(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x10324
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x10324
movq -0x18(%rbp), %rax
testb $0x1, 0x90(%rax)
jne 0x10324
movq -0x90(%rbp), %rax
movq -0x18(%rbp), %rcx
movb $0x1, 0x14d(%rcx)
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x115c0
movq -0x18(%rbp), %rax
movb $0x0, 0x14d(%rax)
jmp 0x10c3f
movq -0x90(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x106b5
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x106b5
movq -0x18(%rbp), %rax
testb $0x1, 0x1d0(%rax)
jne 0x106b5
movq -0x18(%rbp), %rax
testb $0x1, 0x90(%rax)
jne 0x106b5
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x68(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x81a0
movq -0xb0(%rbp), %rdi
leaq 0x53fd1(%rip), %rsi     # 0x64363
callq 0x9e30
movb %al, -0xa8(%rbp)
jmp 0x1039f
movb -0xa8(%rbp), %al
testb $0x1, %al
jne 0x103ab
jmp 0x10400
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x103e2
movq -0x18(%rbp), %rax
movl $0x1, 0x258(%rax)
jmp 0x103e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x8280
jmp 0x10c4c
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53f6f(%rip), %rsi     # 0x64363
callq 0x8590
jmp 0x103fb
jmp 0x106a7
leaq 0x53f67(%rip), %rsi     # 0x6436e
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb1(%rbp)
jmp 0x10418
movb -0xb1(%rbp), %al
testb $0x1, %al
jne 0x10424
jmp 0x1045d
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x1043f
movq -0x18(%rbp), %rax
movl $0x2, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53f1d(%rip), %rsi     # 0x6436e
callq 0x8590
jmp 0x10458
jmp 0x106a5
leaq 0x54ae7(%rip), %rsi     # 0x64f4b
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb2(%rbp)
jmp 0x10475
movb -0xb2(%rbp), %al
testb $0x1, %al
jne 0x10481
jmp 0x104ba
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x1049c
movq -0x18(%rbp), %rax
movl $0x4, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x54a9d(%rip), %rsi     # 0x64f4b
callq 0x8590
jmp 0x104b5
jmp 0x106a3
leaq 0x53f42(%rip), %rsi     # 0x64403
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb3(%rbp)
jmp 0x104d2
movb -0xb3(%rbp), %al
testb $0x1, %al
jne 0x104de
jmp 0x10517
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x104f9
movq -0x18(%rbp), %rax
movl $0x8, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53ef8(%rip), %rsi     # 0x64403
callq 0x8590
jmp 0x10512
jmp 0x106a1
leaq 0x53e26(%rip), %rsi     # 0x64344
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb4(%rbp)
jmp 0x1052f
movb -0xb4(%rbp), %al
testb $0x1, %al
jne 0x1053b
jmp 0x1057f
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x10556
movq -0x18(%rbp), %rax
movl $0x4, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53ddc(%rip), %rsi     # 0x64344
callq 0x8590
jmp 0x1056f
movq -0x18(%rbp), %rax
movb $0x1, 0x340(%rax)
jmp 0x1069f
leaq 0x53e82(%rip), %rsi     # 0x64408
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb5(%rbp)
jmp 0x10597
movb -0xb5(%rbp), %al
testb $0x1, %al
jne 0x105a3
jmp 0x105dc
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x105be
movq -0x18(%rbp), %rax
movl $0x8, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53e38(%rip), %rsi     # 0x64408
callq 0x8590
jmp 0x105d7
jmp 0x1069d
leaq 0x53e2e(%rip), %rsi     # 0x64411
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb6(%rbp)
jmp 0x105f4
movb -0xb6(%rbp), %al
testb $0x1, %al
jne 0x10600
jmp 0x10636
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x1061b
movq -0x18(%rbp), %rax
movl $0x4, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53de4(%rip), %rsi     # 0x64411
callq 0x8590
jmp 0x10634
jmp 0x1069b
leaq 0x53dd2(%rip), %rsi     # 0x6440f
leaq -0x68(%rbp), %rdi
callq 0x9e30
movb %al, -0xb7(%rbp)
jmp 0x1064e
movb -0xb7(%rbp), %al
testb $0x1, %al
jne 0x1065a
jmp 0x10699
movq -0x18(%rbp), %rax
testb $0x1, 0x2f4(%rax)
jne 0x10675
movq -0x18(%rbp), %rax
movl $0x4, 0x258(%rax)
movq -0x18(%rbp), %rdi
addq $0x2b0, %rdi            # imm = 0x2B0
leaq 0x53d88(%rip), %rsi     # 0x6440f
callq 0x8590
jmp 0x1068e
movq -0x18(%rbp), %rax
movb $0x1, 0x219(%rax)
jmp 0x1069b
jmp 0x1069d
jmp 0x1069f
jmp 0x106a1
jmp 0x106a3
jmp 0x106a5
jmp 0x106a7
leaq -0x68(%rbp), %rdi
callq 0x8280
jmp 0x10c3d
movq -0x90(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x10976
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
jne 0x10976
movq -0x18(%rbp), %rax
testb $0x1, 0x1d0(%rax)
je 0x10976
movq -0x18(%rbp), %rax
testb $0x1, 0x90(%rax)
jne 0x10976
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x88(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x81a0
movq -0xc0(%rbp), %rdi
leaq 0x53c3d(%rip), %rsi     # 0x64363
callq 0x9e30
movb %al, -0xb8(%rbp)
jmp 0x10733
movb -0xb8(%rbp), %al
testb $0x1, %al
jne 0x1073f
jmp 0x1077a
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53c12(%rip), %rsi     # 0x64363
callq 0x8590
jmp 0x10758
jmp 0x10965
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x8280
jmp 0x10c4c
leaq 0x53bed(%rip), %rsi     # 0x6436e
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc1(%rbp)
jmp 0x10795
movb -0xc1(%rbp), %al
testb $0x1, %al
jne 0x107a1
jmp 0x107bf
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53bbb(%rip), %rsi     # 0x6436e
callq 0x8590
jmp 0x107ba
jmp 0x10963
leaq 0x54785(%rip), %rsi     # 0x64f4b
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc2(%rbp)
jmp 0x107da
movb -0xc2(%rbp), %al
testb $0x1, %al
jne 0x107e6
jmp 0x10804
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x54753(%rip), %rsi     # 0x64f4b
callq 0x8590
jmp 0x107ff
jmp 0x10961
leaq 0x53bf8(%rip), %rsi     # 0x64403
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc3(%rbp)
jmp 0x1081f
movb -0xc3(%rbp), %al
testb $0x1, %al
jne 0x1082b
jmp 0x10849
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53bc6(%rip), %rsi     # 0x64403
callq 0x8590
jmp 0x10844
jmp 0x1095f
leaq 0x53af4(%rip), %rsi     # 0x64344
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc4(%rbp)
jmp 0x10864
movb -0xc4(%rbp), %al
testb $0x1, %al
jne 0x10870
jmp 0x1088e
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53ac2(%rip), %rsi     # 0x64344
callq 0x8590
jmp 0x10889
jmp 0x1095d
leaq 0x53b73(%rip), %rsi     # 0x64408
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc5(%rbp)
jmp 0x108a9
movb -0xc5(%rbp), %al
testb $0x1, %al
jne 0x108b5
jmp 0x108d3
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53b41(%rip), %rsi     # 0x64408
callq 0x8590
jmp 0x108ce
jmp 0x1095b
leaq 0x53b37(%rip), %rsi     # 0x64411
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc6(%rbp)
jmp 0x108ee
movb -0xc6(%rbp), %al
testb $0x1, %al
jne 0x108fa
jmp 0x10915
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53b05(%rip), %rsi     # 0x64411
callq 0x8590
jmp 0x10913
jmp 0x10959
leaq 0x53af3(%rip), %rsi     # 0x6440f
leaq -0x88(%rbp), %rdi
callq 0x9e30
movb %al, -0xc7(%rbp)
jmp 0x10930
movb -0xc7(%rbp), %al
testb $0x1, %al
jne 0x1093c
jmp 0x10957
movq -0x18(%rbp), %rdi
addq $0x190, %rdi            # imm = 0x190
leaq 0x53ac1(%rip), %rsi     # 0x6440f
callq 0x8590
jmp 0x10955
jmp 0x10957
jmp 0x10959
jmp 0x1095b
jmp 0x1095d
jmp 0x1095f
jmp 0x10961
jmp 0x10963
jmp 0x10965
leaq -0x88(%rbp), %rdi
callq 0x8280
jmp 0x10c3b
movq -0x18(%rbp), %rax
testb $0x1, 0x1f8(%rax)
je 0x10c39
movq -0x90(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x10c39
movq -0x18(%rbp), %rax
testb $0x1, 0x90(%rax)
jne 0x10c39
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x5458f(%rip), %rsi     # 0x64f4b
callq 0x9e30
testb $0x1, %al
jne 0x109c7
jmp 0x109da
movq -0x18(%rbp), %rax
movl $0x4, 0x1fc(%rax)
jmp 0x10c37
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53958(%rip), %rsi     # 0x64344
callq 0x9e30
testb $0x1, %al
jne 0x109f7
jmp 0x10a0a
movq -0x18(%rbp), %rax
movl $0x4, 0x1fc(%rax)
jmp 0x10c35
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53947(%rip), %rsi     # 0x64363
callq 0x9e30
testb $0x1, %al
jne 0x10a27
jmp 0x10a3a
movq -0x18(%rbp), %rax
movl $0x1, 0x1fc(%rax)
jmp 0x10c33
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53922(%rip), %rsi     # 0x6436e
callq 0x9e30
testb $0x1, %al
jne 0x10a57
jmp 0x10a6a
movq -0x18(%rbp), %rax
movl $0x2, 0x1fc(%rax)
jmp 0x10c31
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53987(%rip), %rsi     # 0x64403
callq 0x9e30
testb $0x1, %al
jne 0x10a87
jmp 0x10a9a
movq -0x18(%rbp), %rax
movl $0x8, 0x1fc(%rax)
jmp 0x10c2f
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53963(%rip), %rsi     # 0x6440f
callq 0x9e30
testb $0x1, %al
jne 0x10ab7
jmp 0x10aca
movq -0x18(%rbp), %rax
movl $0x4, 0x1fc(%rax)
jmp 0x10c2d
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53935(%rip), %rsi     # 0x64411
callq 0x9e30
testb $0x1, %al
jne 0x10ae7
jmp 0x10afa
movq -0x18(%rbp), %rax
movl $0x4, 0x1fc(%rax)
jmp 0x10c2b
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x538fc(%rip), %rsi     # 0x64408
callq 0x9e30
testb $0x1, %al
jne 0x10b17
jmp 0x10b2a
movq -0x18(%rbp), %rax
movl $0x8, 0x1fc(%rax)
jmp 0x10c29
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x538dc(%rip), %rsi     # 0x64418
callq 0x9e30
testb $0x1, %al
jne 0x10b47
jmp 0x10b5a
movq -0x18(%rbp), %rax
movl $0x1, 0x1fc(%rax)
jmp 0x10c27
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53802(%rip), %rsi     # 0x6436e
xorl %eax, %eax
movl %eax, %edx
callq 0x8850
cmpq $-0x1, %rax
je 0x10b8e
movq -0x18(%rbp), %rax
movl $0x2, 0x1fc(%rax)
jmp 0x10c25
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53863(%rip), %rsi     # 0x64403
xorl %eax, %eax
movl %eax, %edx
callq 0x8850
cmpq $-0x1, %rax
je 0x10bbf
movq -0x18(%rbp), %rax
movl $0x8, 0x1fc(%rax)
jmp 0x10c23
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x53837(%rip), %rsi     # 0x64408
xorl %eax, %eax
movl %eax, %edx
callq 0x8850
cmpq $-0x1, %rax
je 0x10bf0
movq -0x18(%rbp), %rax
movl $0x8, 0x1fc(%rax)
jmp 0x10c21
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x54349(%rip), %rsi     # 0x64f4b
xorl %eax, %eax
movl %eax, %edx
callq 0x8850
cmpq $-0x1, %rax
je 0x10c1f
movq -0x18(%rbp), %rax
movl $0x8, 0x1fc(%rax)
jmp 0x10c21
jmp 0x10c23
jmp 0x10c25
jmp 0x10c27
jmp 0x10c29
jmp 0x10c2b
jmp 0x10c2d
jmp 0x10c2f
jmp 0x10c31
jmp 0x10c33
jmp 0x10c35
jmp 0x10c37
jmp 0x10c39
jmp 0x10c3b
jmp 0x10c3d
jmp 0x10c3f
jmp 0x10c41
jmp 0x10c43
addq $0xd0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x8760
nopw %cs:(%rax,%rax)
nop