// File: /workspace/github_cpp_makefile_star2_O1/gioannides[P]Language_Processors/src/../include/ast/class_forward_declarations.hpp
// Function: findSize(Context&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
inline void findSize(Context& contxt,std::string IDENTIFIER){
			int i,j;
			bool found = false;
			
			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) 
					{
						found = true;
						if(contxt.lhs_of_assignment){
							contxt.SizeOf = contxt.Variables[i].word_size;
						}
						else if(contxt.Variables[i].DataType == "int"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "float"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "char"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}
						else if(contxt.Variables[i].DataType == "short"){
							if( contxt.SizeOf < 2)
								contxt.SizeOf = 2;
						}
						else if(contxt.Variables[i].DataType == "long"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "unsigned"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "signed"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "double"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "void"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}				
						i = -1;
						j = -1;
					}									
				}
			  }
			  if(!found){
				for(i=contxt.Variables.size()-1; i>=0; i--) {
					if(contxt.Variables[i].scope == "global" && IDENTIFIER == contxt.Variables[i].id) 
					{

						if(contxt.lhs_of_assignment){
							contxt.SizeOf = contxt.Variables[i].word_size;
						}
						else if(contxt.Variables[i].DataType == "int"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "float"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "char"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}
						else if(contxt.Variables[i].DataType == "short"){
							if( contxt.SizeOf < 2)
								contxt.SizeOf = 2;
						}
						else if(contxt.Variables[i].DataType == "long"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "unsigned"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "signed"){
							if( contxt.SizeOf < 4)
								contxt.SizeOf = 4;
						}
						else if(contxt.Variables[i].DataType == "double"){
							if( contxt.SizeOf < 8)
								contxt.SizeOf = 8;
						}
						else if(contxt.Variables[i].DataType == "void"){
							if( contxt.SizeOf < 1)
								contxt.SizeOf = 1;
						}				
						i = -1;
						j = -1;
						}									
					}
			}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x248(%rdi), %rax
subq 0x240(%rdi), %rax
movq %rsi, %r14
shrq $0x4, %rax
imull $0xba2e8ba3, %eax, %r12d # imm = 0xBA2E8BA3
decl %r12d
js 0x1b97c
movl $0x0, 0x4(%rsp)
movq 0x468(%rbx), %r15
subq 0x460(%rbx), %r15
shrq $0x5, %r15
decl %r15d
js 0x1b968
movslq %r12d, %rax
movq 0x240(%rbx), %rbp
imulq $0xb0, %rax, %r13
movl %r15d, %eax
movq 0x460(%rbx), %rcx
shlq $0x5, %rax
movq 0x38(%rbp,%r13), %rdx
cmpq 0x8(%rcx,%rax), %rdx
jne 0x1b712
addq %r13, %rbp
testq %rdx, %rdx
je 0x1b761
addq %rax, %rcx
movq (%rcx), %rsi
movq 0x30(%rbp), %rdi
callq 0x7350
testl %eax, %eax
jne 0x1b712
movq 0x8(%r14), %rdx
cmpq 0x10(%rbp), %rdx
jne 0x1b712
testq %rdx, %rdx
je 0x1b780
movq 0x8(%rbp), %rsi
movq (%r14), %rdi
callq 0x7350
testl %eax, %eax
jne 0x1b712
cmpb $0x1, 0x1d2(%rbx)
jne 0x1b7a3
movl (%rbp), %eax
movl %eax, 0x1fc(%rbx)
movb $0x1, %al
movl %eax, 0x4(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
jmp 0x1b95d
addq $0x58, %rbp
movq %rbp, %rdi
leaq 0x1c9db(%rip), %rsi     # 0x3818c
callq 0x70c0
testl %eax, %eax
je 0x1b8db
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bdb1(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1b8db
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bdad(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1b8fc
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bd95(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1b91d
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1be07(%rip), %rsi     # 0x37644
callq 0x70c0
testl %eax, %eax
je 0x1b93e
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bdf0(%rip), %rsi     # 0x37650
callq 0x70c0
testl %eax, %eax
je 0x1b8db
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bdd3(%rip), %rsi     # 0x37652
callq 0x70c0
testl %eax, %eax
je 0x1b8db
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bdab(%rip), %rsi     # 0x37649
callq 0x70c0
testl %eax, %eax
je 0x1b93e
movq 0x240(%rbx), %rax
leaq (%rax,%r13), %rdi
addq $0x58, %rdi
leaq 0x1bd98(%rip), %rsi     # 0x37659
callq 0x70c0
movb $0x1, %cl
movl %ecx, 0x4(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
testl %eax, %eax
je 0x1b908
jmp 0x1b95d
movb $0x1, %al
movl %eax, 0x4(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
cmpl $0x3, 0x1fc(%rbx)
jg 0x1b95d
movl $0x4, 0x1fc(%rbx)
jmp 0x1b95d
movb $0x1, %al
movl %eax, 0x4(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
cmpl $0x0, 0x1fc(%rbx)
jg 0x1b95d
movl $0x1, 0x1fc(%rbx)
jmp 0x1b95d
movb $0x1, %al
movl %eax, 0x4(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
cmpl $0x1, 0x1fc(%rbx)
jg 0x1b95d
movl $0x2, 0x1fc(%rbx)
jmp 0x1b95d
movb $0x1, %al
movl %eax, 0x4(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
cmpl $0x7, 0x1fc(%rbx)
jg 0x1b95d
movl $0x8, 0x1fc(%rbx)
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x1b712
decl %r12d
jns 0x1b700
testb $0x1, 0x4(%rsp)
jne 0x1bbbb
movq 0x248(%rbx), %rax
subq 0x240(%rbx), %rax
shrq $0x4, %rax
imull $0xba2e8ba3, %eax, %r13d # imm = 0xBA2E8BA3
decl %r13d
js 0x1bbbb
leaq 0x1bcb9(%rip), %r15     # 0x3765e
movl %r13d, %eax
movq 0x240(%rbx), %rcx
imulq $0xb0, %rax, %r12
leaq (%rcx,%r12), %rdi
addq $0x30, %rdi
movq %r15, %rsi
callq 0x70c0
testl %eax, %eax
jne 0x1bbb2
movq 0x240(%rbx), %rbp
movq 0x8(%r14), %rdx
cmpq 0x10(%rbp,%r12), %rdx
jne 0x1bbb2
addq %r12, %rbp
testq %rdx, %rdx
je 0x1ba00
movq 0x8(%rbp), %rsi
movq (%r14), %rdi
callq 0x7350
testl %eax, %eax
jne 0x1bbb2
cmpb $0x1, 0x1d2(%rbx)
jne 0x1ba1d
movl (%rbp), %eax
movl %eax, 0x1fc(%rbx)
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
jmp 0x1bbb2
addq $0x58, %rbp
movq %rbp, %rdi
leaq 0x1c761(%rip), %rsi     # 0x3818c
callq 0x70c0
testl %eax, %eax
je 0x1bb48
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb37(%rip), %rsi     # 0x37585
callq 0x70c0
testl %eax, %eax
je 0x1bb48
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb33(%rip), %rsi     # 0x375a4
callq 0x70c0
testl %eax, %eax
je 0x1bb63
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb1b(%rip), %rsi     # 0x375af
callq 0x70c0
testl %eax, %eax
je 0x1bb7e
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb8d(%rip), %rsi     # 0x37644
callq 0x70c0
testl %eax, %eax
je 0x1bb99
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb76(%rip), %rsi     # 0x37650
callq 0x70c0
testl %eax, %eax
je 0x1bb48
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb59(%rip), %rsi     # 0x37652
callq 0x70c0
testl %eax, %eax
je 0x1bb48
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb31(%rip), %rsi     # 0x37649
callq 0x70c0
testl %eax, %eax
je 0x1bb99
movq 0x240(%rbx), %rax
leaq (%rax,%r12), %rdi
addq $0x58, %rdi
leaq 0x1bb22(%rip), %rsi     # 0x37659
callq 0x70c0
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
testl %eax, %eax
je 0x1bb69
jmp 0x1bbb2
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x3, 0x1fc(%rbx)
jg 0x1bbb2
movl $0x4, 0x1fc(%rbx)
jmp 0x1bbb2
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x0, 0x1fc(%rbx)
jg 0x1bbb2
movl $0x1, 0x1fc(%rbx)
jmp 0x1bbb2
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x1, 0x1fc(%rbx)
jg 0x1bbb2
movl $0x2, 0x1fc(%rbx)
jmp 0x1bbb2
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
cmpl $0x7, 0x1fc(%rbx)
jg 0x1bbb2
movl $0x8, 0x1fc(%rbx)
decl %r13d
jns 0x1b9a5
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq