// File: /workspace/github_c_makefile_star2_O1/info-telecom-strasbourg[P]code-generator/src/flag_m.cpp
// Function: parse_path[abi:cxx11](char const*, char const*, int)
string parse_path (const char * path, const char * extension,
	int type) {

	vector<string> directories;	 
	string path_str = path;
	string extension_str = extension;
	stringstream ss(path_str);
	string token, dynamic_path = "./";

    while ( getline(ss, token, '/') ) {
		if ( token == "." || token == ".." )
			continue;
        else if ( has_dot (token) ) {
			if (type == IS_SOURCE)
				create_standard_main_file (path, extension_str);
			else if ( type == IS_INCLUDE )
				create_standard_include (token, dynamic_path);
			else {
				cerr << "\n\033[1;31merror\033[0m: ";
				cerr << token << "should be a directory.";
				exit (EXIT_FAILURE);
			}
		}
		else {
			dynamic_path += token + '/';
			create_dir (dynamic_path);
		}
    }

	return dynamic_path;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x308, %rsp            # imm = 0x308
movl %ecx, %ebp
movq %rdx, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x160(%rsp)
movq $0x0, 0x170(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movq %rsi, 0xf8(%rsp)
callq 0x3e6a
leaq 0x120(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movq %r14, %rsi
callq 0x3e6a
leaq 0x180(%rsp), %rdi
leaq 0x140(%rsp), %rsi
movl $0x18, %edx
callq 0x2310
movl %ebp, 0x4c(%rsp)
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x10(%rbx), %rax
movq %rax, 0xf0(%rsp)
movq %rax, (%rbx)
leaq 0x4339(%rip), %rsi      # 0x7230
leaq 0x4334(%rip), %rdx      # 0x7232
movq %rbx, %rdi
callq 0x4100
leaq 0x180(%rsp), %r15
leaq 0x28(%rsp), %r12
leaq 0x4a4b(%rip), %r13      # 0x7965
leaq 0xd0(%rsp), %rbp
movq %r15, %rdi
movq %r12, %rsi
movl $0x2f, %edx
callq 0x2360
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x31dd
movq %r12, %rdi
movq %r13, %rsi
callq 0x2060
testl %eax, %eax
je 0x2f22
movq %r12, %rdi
leaq 0x42d6(%rip), %rsi      # 0x7233
callq 0x2060
testl %eax, %eax
je 0x2f22
leaq 0xe0(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
movq %rbp, %rdi
callq 0x3f04
movq %rbp, %rdi
callq 0x5bcf
movl %eax, %r14d
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x2fbb
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x21d0
testb %r14b, %r14b
je 0x3081
movl 0x4c(%rsp), %eax
cmpl $0x1, %eax
je 0x3132
testl %eax, %eax
jne 0x327e
leaq 0x100(%rsp), %rdi
movq 0xf8(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3e6a
leaq 0xc0(%rsp), %rax
movq %rax, 0xb0(%rsp)
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
addq %rsi, %rdx
leaq 0xb0(%rsp), %r14
movq %r14, %rdi
callq 0x3f04
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0x28f8
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x305b
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x2f22
movq 0x110(%rsp), %rsi
jmp 0x31d0
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x3f04
movq 0x10(%rsp), %rsi
movl $0x1, %ecx
movq %r14, %rdi
xorl %edx, %edx
movl $0x2f, %r8d
callq 0x2370
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x2070
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x30ed
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21d0
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x3f04
leaq 0x50(%rsp), %rdi
callq 0x2dbc
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x2f22
movq 0x60(%rsp), %rsi
jmp 0x31d0
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x3f04
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x90(%rsp), %r14
movq %r14, %rdi
callq 0x3f04
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x2beb
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x31b2
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x2f22
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x2f22
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x31f9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x6da8(%rip), %rsi      # 0x9fa8
leaq 0x180(%rsp), %rdi
callq 0x2110
leaq 0x200(%rsp), %rdi
callq 0x2080
leaq 0x130(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x323b
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x21d0
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x325c
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x21d0
leaq 0x160(%rsp), %rdi
callq 0x3ea8
movq %rbx, %rax
addq $0x308, %rsp            # imm = 0x308
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x6d6b(%rip), %rdi      # 0x9ff0
leaq 0x3faa(%rip), %rsi      # 0x7236
movl $0x13, %edx
callq 0x2210
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x6d49(%rip), %rdi      # 0x9ff0
callq 0x2210
leaq 0x3f97(%rip), %rsi      # 0x724a
movq %rax, %rdi
callq 0x21a0
movl $0x1, %edi
callq 0x2240
movq %rax, %r14
jmp 0x3406
movq %rax, %r14
jmp 0x3443
movq %rax, %r14
jmp 0x3464
movq %rax, %r14
jmp 0x3485
jmp 0x33e8
movq %rax, %r14
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x3369
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x3369
movq %rax, %r14
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x3341
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x3341
movq %rax, %r14
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x33eb
movq 0x80(%rsp), %rsi
jmp 0x33de
jmp 0x33e8
movq %rax, %r14
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x33eb
movq 0x110(%rsp), %rsi
jmp 0x33de
jmp 0x338a
movq %rax, %r14
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x33eb
movq 0x18(%rsp), %rsi
jmp 0x33de
jmp 0x33e8
movq %rax, %r14
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x33eb
movq 0x60(%rsp), %rsi
jmp 0x33de
movq %rax, %r14
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x33eb
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x21d0
jmp 0x33eb
movq %rax, %r14
movq (%rbx), %rdi
movq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x3406
movq (%rax), %rsi
incq %rsi
callq 0x21d0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3422
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21d0
movq 0x6b7f(%rip), %rsi      # 0x9fa8
leaq 0x180(%rsp), %rdi
callq 0x2110
leaq 0x200(%rsp), %rdi
callq 0x2080
leaq 0x130(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3464
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x21d0
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3485
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x21d0
leaq 0x160(%rsp), %rdi
callq 0x3ea8
movq %r14, %rdi
callq 0x2340