// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x3a0, %rsp            # imm = 0x3A0
movq %rdi, -0x350(%rbp)
movq %rdi, %rax
movq %rax, -0x348(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4f60
movq -0x10(%rbp), %rax
movq %rax, -0x340(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x338(%rbp)
callq 0x34a0
movq -0x340(%rbp), %rsi
movq -0x338(%rbp), %rdx
leaq -0x58(%rbp), %rdi
callq 0x4f80
jmp 0x3e88
leaq -0x59(%rbp), %rdi
callq 0x32c0
movq -0x18(%rbp), %rax
movq %rax, -0x360(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x34a0
movq -0x360(%rbp), %rsi
movq -0x358(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x4f80
jmp 0x3ecb
leaq -0x91(%rbp), %rdi
callq 0x32c0
movl $0x10, %edi
movl $0x8, %esi
callq 0x5030
movl %eax, -0x364(%rbp)
jmp 0x3eee
movl -0x364(%rbp), %edx
leaq -0x220(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x3440
jmp 0x3f06
leaq -0x240(%rbp), %rdi
callq 0x33c0
movb $0x0, -0x241(%rbp)
leaq -0x242(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x34a0
movq -0x350(%rbp), %rdi
movq -0x370(%rbp), %rdx
leaq 0x62ef(%rip), %rsi      # 0xa230
callq 0x4f80
jmp 0x3f48
leaq -0x242(%rbp), %rdi
callq 0x32c0
leaq -0x220(%rbp), %rdi
leaq -0x240(%rbp), %rsi
movl $0x2f, %edx
callq 0x34c0
movq %rax, -0x378(%rbp)
jmp 0x3f75
movq -0x378(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3350
movb %al, -0x379(%rbp)
jmp 0x3f93
movb -0x379(%rbp), %al
testb $0x1, %al
jne 0x3fa2
jmp 0x4352
leaq 0x699b(%rip), %rsi      # 0xa944
leaq -0x240(%rbp), %rdi
callq 0x4de0
movb %al, -0x37a(%rbp)
jmp 0x3fbd
movb -0x37a(%rbp), %al
testb $0x1, %al
jne 0x3ff0
jmp 0x3fc9
leaq 0x6263(%rip), %rsi      # 0xa233
leaq -0x240(%rbp), %rdi
callq 0x4de0
movb %al, -0x37b(%rbp)
jmp 0x3fe4
movb -0x37b(%rbp), %al
testb $0x1, %al
jne 0x3ff0
jmp 0x406b
jmp 0x3f54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x59(%rbp), %rdi
callq 0x32c0
jmp 0x43ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x32c0
jmp 0x43e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x43d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x242(%rbp), %rdi
callq 0x32c0
jmp 0x43c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x43b4
leaq -0x268(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x30d0
jmp 0x4080
leaq -0x268(%rbp), %rdi
callq 0x8290
movb %al, -0x37c(%rbp)
jmp 0x4094
leaq -0x268(%rbp), %rdi
callq 0x3140
movb -0x37c(%rbp), %al
testb $0x1, %al
jne 0x40af
jmp 0x42a8
cmpl $0x0, -0x1c(%rbp)
jne 0x41b4
movq -0x10(%rbp), %rax
movq %rax, -0x390(%rbp)
leaq -0x289(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x34a0
movq -0x390(%rbp), %rsi
movq -0x388(%rbp), %rdx
leaq -0x288(%rbp), %rdi
callq 0x4f80
jmp 0x40f3
leaq -0x2b0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x30d0
jmp 0x4108
leaq -0x288(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x37d0
jmp 0x411d
leaq -0x2b0(%rbp), %rdi
callq 0x3140
leaq -0x288(%rbp), %rdi
callq 0x3140
leaq -0x289(%rbp), %rdi
callq 0x32c0
jmp 0x42a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x3140
jmp 0x43b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x41a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x4197
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x3140
leaq -0x288(%rbp), %rdi
callq 0x3140
leaq -0x289(%rbp), %rdi
callq 0x32c0
jmp 0x43b4
cmpl $0x1, -0x1c(%rbp)
jne 0x4251
leaq -0x2d0(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x30d0
jmp 0x41d3
movq -0x350(%rbp), %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x30d0
jmp 0x41e8
leaq -0x2d0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x3b80
jmp 0x41fd
leaq -0x2f0(%rbp), %rdi
callq 0x3140
leaq -0x2d0(%rbp), %rdi
callq 0x3140
jmp 0x42a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x4240
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x3140
leaq -0x2d0(%rbp), %rdi
callq 0x3140
jmp 0x43b4
movq 0x9d98(%rip), %rdi      # 0xdff0
leaq 0x5fd7(%rip), %rsi      # 0xa236
callq 0x3230
jmp 0x4266
movq 0x9d83(%rip), %rdi      # 0xdff0
leaq -0x240(%rbp), %rsi
callq 0x3200
movq %rax, -0x398(%rbp)
jmp 0x4282
movq -0x398(%rbp), %rdi
leaq 0x5fba(%rip), %rsi      # 0xa24a
callq 0x3230
jmp 0x4297
movl $0x1, %edi
callq 0x3310
jmp 0x42a3
jmp 0x434b
leaq -0x310(%rbp), %rdi
leaq -0x240(%rbp), %rsi
movl $0x2f, %edx
callq 0x5050
jmp 0x42c2
movq -0x350(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x3360
jmp 0x42d7
leaq -0x310(%rbp), %rdi
callq 0x3140
movq -0x350(%rbp), %rsi
leaq -0x330(%rbp), %rdi
callq 0x30d0
jmp 0x42f8
leaq -0x330(%rbp), %rdi
callq 0x3d90
jmp 0x4306
leaq -0x330(%rbp), %rdi
callq 0x3140
jmp 0x434b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x3140
jmp 0x43b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x3140
jmp 0x43b4
jmp 0x434d
jmp 0x3f54
movb $0x1, -0x241(%rbp)
testb $0x1, -0x241(%rbp)
jne 0x436e
movq -0x350(%rbp), %rdi
callq 0x3140
leaq -0x240(%rbp), %rdi
callq 0x3140
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x90(%rbp), %rdi
callq 0x3140
leaq -0x58(%rbp), %rdi
callq 0x3140
leaq -0x38(%rbp), %rdi
callq 0x50d0
movq -0x348(%rbp), %rax
addq $0x3a0, %rsp            # imm = 0x3A0
popq %rbp
retq
movq -0x350(%rbp), %rdi
callq 0x3140
leaq -0x240(%rbp), %rdi
callq 0x3140
leaq -0x220(%rbp), %rdi
callq 0x3180
leaq -0x90(%rbp), %rdi
callq 0x3140
leaq -0x58(%rbp), %rdi
callq 0x3140
leaq -0x38(%rbp), %rdi
callq 0x50d0
movq -0x68(%rbp), %rdi
callq 0x3490
nop