// File: /workspace/github_cpp_makefile_star2_O3/gioannides[P]Language_Processors/src/../include/ast/ast_node.hpp
// Function: TranslationUnit::render_asm(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>) const
virtual void render_asm(std::string file_name) const {

			
			std::ofstream file;
			file.open(file_name.c_str());

			std::string new_file_name = "";

			for(int i(0); i < file_name.size(); ++i) {
				if(file_name[i] != '.') {
					new_file_name += file_name[i];
					break;
				}
			}
			file << "\t.file 1 " << "\"" << new_file_name << ".c\"" << std::endl;
			file << "\t.section .mdebug.abi32" << std::endl;
			file << "\t.previous" <<std::endl;
			file << "\t.nan legacy" << std::endl;
			file << "\t.module fp=32" << std::endl;
			file << "\t.module nooddspreg" << std::endl;
			file << "\t.abicalls" << std::endl;
			if(TranslationUnitPtr != NULL){
				TranslationUnitPtr->render_asm(file,contxt);
			}
			if( ExternalDecl != NULL){
				ExternalDecl->render_asm(file,contxt);
			}
			
			// for (int i=0; i<contxt.functions_declared.size(); i++)
			// {
			// 	std::cout << contxt.functions_declared[i].name << " - " << contxt.functions_declared[i].paramters_size; 
			// }
			 // print_scopes(contxt,file);
			  //print_variables(contxt,file);
			//print_declared(contxt, file);
		}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x220, %rsp            # imm = 0x220
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0x75a0
movq (%r14), %rsi
movq %r15, %rdi
movl $0x10, %edx
callq 0x7070
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2c1b4(%rip), %rdx     # 0x376fd
movq %rsp, %rdi
movq %rdx, %rsi
callq 0x89e2
movq 0x8(%r14), %rax
testq %rax, %rax
je 0xb582
movq (%r14), %rcx
xorl %edx, %edx
movb (%rcx,%rdx), %sil
cmpb $0x2e, %sil
jne 0xb576
incq %rdx
cmpq %rdx, %rax
jne 0xb562
jmp 0xb582
movsbl %sil, %esi
movq %rsp, %rdi
callq 0x72b0
leaq 0x2beea(%rip), %rsi     # 0x37473
leaq 0x20(%rsp), %rdi
movl $0x9, %edx
callq 0x73a0
leaq 0x2be2a(%rip), %rsi     # 0x373c9
leaq 0x20(%rsp), %rdi
movl $0x1, %edx
callq 0x73a0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x20(%rsp), %rdi
callq 0x73a0
movq %rax, %r14
leaq 0x2beb2(%rip), %rsi     # 0x3747d
movl $0x3, %edx
movq %rax, %rdi
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x2be7b(%rip), %rsi     # 0x37481
leaq 0x20(%rsp), %r14
movl $0x17, %edx
movq %r14, %rdi
callq 0x73a0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x2be4f(%rip), %rsi     # 0x37499
leaq 0x20(%rsp), %r14
movl $0xa, %edx
movq %r14, %rdi
callq 0x73a0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x2be16(%rip), %rsi     # 0x374a4
leaq 0x20(%rsp), %r14
movl $0xc, %edx
movq %r14, %rdi
callq 0x73a0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x2bddf(%rip), %rsi     # 0x374b1
leaq 0x20(%rsp), %r14
movl $0xe, %edx
movq %r14, %rdi
callq 0x73a0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x2bdaa(%rip), %rsi     # 0x374c0
leaq 0x20(%rsp), %r14
movl $0x13, %edx
movq %r14, %rdi
callq 0x73a0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
leaq 0x2bd7a(%rip), %rsi     # 0x374d4
leaq 0x20(%rsp), %r14
movl $0xa, %edx
movq %r14, %rdi
callq 0x73a0
movq 0x20(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x7300
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7220
movq 0x10(%rbx), %rdi
testq %rdi, %rdi
je 0xb7b1
leaq 0x4eeb9(%rip), %rdx     # 0x5a660
leaq 0x20(%rsp), %rsi
callq 0xd59c
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0xb7cb
leaq 0x4ee9f(%rip), %rdx     # 0x5a660
leaq 0x20(%rsp), %rsi
callq 0xd5de
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xb7d9
callq 0x72e0
movq 0x3a7a8(%rip), %rax     # 0x45f88
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x28(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x20(%rsp,%rcx)
callq 0x72a0
leaq 0x118(%rsp), %rdi
callq 0x7100
addq $0x220, %rsp            # imm = 0x220
popq %rbx
popq %r14
popq %r15
retq
jmp 0xb821
jmp 0xb81c
movq %rax, %rbx
jmp 0xb832
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xb832
callq 0x72e0
leaq 0x20(%rsp), %rdi
callq 0x74e0
movq %rbx, %rdi
callq 0x75f0