// File: /workspace/github_c_makefile_star2_O0/System-Glitch[P]ESGILinter-C/src/parsing_expressions.c
// Function: check_for_arguments
static void check_for_arguments(char *line , int line_index, scope_t *scope, messages_t *messages) {
	char *init      = NULL;
	char *condition = NULL;
	char *end       = NULL;
	int   length    = strlen(line);
	int   index     = 0;
	int   sc_index  = find_semi_colon(line, 0, length); //Semi-colon index
	type_t type;

	if(sc_index != -1) {
		init = strsubstr(line, index, sc_index - index);
		type = parse_expression(init, line_index, scope, messages);
		if(!strcmp(type.name, "NULL")) {
			type = parse_operation(init, line_index, scope, messages);
		}
		free(type.name);
	} else return;


	index = sc_index + 1;
	sc_index = find_semi_colon(line, index, length);

	if(sc_index != -1) {
		condition = strsubstr(line, index, sc_index - index);
		type = parse_expression(condition, line_index, scope, messages);
		if(!strcmp(type.name, "NULL")) {
			type = parse_operation(condition, line_index, scope, messages);
		}
		free(type.name);
	} else return;

	end = strsubstr(line, sc_index + 1, length - sc_index - 1);
	type = parse_expression(end, line_index, scope, messages);
	if(!strcmp(type.name, "NULL")) {
		type = parse_operation(end, line_index, scope, messages);
	}
	free(type.name);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2090
movl %eax, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movl -0x3c(%rbp), %edx
xorl %esi, %esi
callq 0x11740
movl %eax, -0x44(%rbp)
cmpl $-0x1, -0x44(%rbp)
je 0x110ce
movq -0x8(%rbp), %rdi
movl -0x40(%rbp), %esi
movl -0x44(%rbp), %edx
subl -0x40(%rbp), %edx
callq 0xa5e0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x10120
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
leaq 0x3813(%rip), %rsi      # 0x148a0
callq 0x20f0
cmpl $0x0, %eax
jne 0x110c3
movq -0x28(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x8fe0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2030
jmp 0x110d3
jmp 0x11247
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movl -0x40(%rbp), %esi
movl -0x3c(%rbp), %edx
callq 0x11740
movl %eax, -0x44(%rbp)
cmpl $-0x1, -0x44(%rbp)
je 0x11198
movq -0x8(%rbp), %rdi
movl -0x40(%rbp), %esi
movl -0x44(%rbp), %edx
subl -0x40(%rbp), %edx
callq 0xa5e0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x10120
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
leaq 0x3755(%rip), %rsi      # 0x148a0
callq 0x20f0
cmpl $0x0, %eax
jne 0x1118d
movq -0x30(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x8fe0
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2030
jmp 0x1119d
jmp 0x11247
movq -0x8(%rbp), %rdi
movl -0x44(%rbp), %esi
addl $0x1, %esi
movl -0x3c(%rbp), %edx
subl -0x44(%rbp), %edx
subl $0x1, %edx
callq 0xa5e0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x10120
movq %rax, -0xa8(%rbp)
movq %rdx, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
leaq 0x36a4(%rip), %rsi      # 0x148a0
callq 0x20f0
cmpl $0x0, %eax
jne 0x1123e
movq -0x38(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x8fe0
movq %rax, -0xb8(%rbp)
movq %rdx, -0xb0(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2030
addq $0xc0, %rsp
popq %rbp
retq