// File: /workspace/github_c_makefile_star2_O0/info-telecom-strasbourg[P]code-generator/src/other_flags.cpp
// Function: create_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
void create_file (string name, string ext, string dir, int type) {
	int exit_code;
	vector<char*> cmd;
	
	string new_file = type == IS_SOURCE 
		? dir + "/" + name + "." + ext
		: name + "." + ext;

	LOAD_CMD ("bash");	
	
	if (type == IS_SOURCE) {
		LOAD_CMD (CPY_FILES_SCRIPT_PATH);

		if ( ext == "c" )
			LOAD_CMD (STANDARD_C_FILE);
		if ( ext == "cpp" )
			LOAD_CMD (STANDARD_CPP_FILE);
		if ( ext == "cc" )
			LOAD_CMD (STANDARD_CC_FILE);

		LOAD_CMD (new_file.c_str());

	}

	if (type == IS_INCLUDE) {
		LOAD_CMD (ADD_HEADER_SCRIPT_PATH);
		LOAD_CMD ("0");
		LOAD_CMD (new_file.c_str());
		LOAD_CMD (dir.c_str());
	}

	execute (exit_code, BASH_PATH, cmd);
	if ( !exit_code )
		cout << "\033[1;32minfo\033[0m: created a new standard file at \"" 
			<< new_file << "\".\n"; 
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x190(%rbp)
movq %rsi, -0x188(%rbp)
movq %rdx, -0x180(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4d90
movl -0x1c(%rbp), %eax
movb $0x0, -0xc5(%rbp)
movb $0x0, -0xc6(%rbp)
movb $0x0, -0xc7(%rbp)
movb $0x0, -0xe9(%rbp)
cmpl $0x0, %eax
jne 0x683a
movq -0x180(%rbp), %rsi
leaq 0x3a67(%rip), %rdx      # 0xa231
leaq -0xb8(%rbp), %rdi
callq 0x7a60
jmp 0x67d8
movq -0x190(%rbp), %rdx
movb $0x1, -0xc5(%rbp)
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x79c0
jmp 0x67fb
movb $0x1, -0xc6(%rbp)
leaq 0x413b(%rip), %rdx      # 0xa944
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x7a10
jmp 0x681b
movq -0x188(%rbp), %rdx
movb $0x1, -0xc7(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x79c0
jmp 0x6838
jmp 0x6878
movq -0x190(%rbp), %rsi
leaq 0x40fc(%rip), %rdx      # 0xa944
leaq -0xe8(%rbp), %rdi
callq 0x7a60
jmp 0x6856
movq -0x188(%rbp), %rdx
movb $0x1, -0xe9(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x79c0
jmp 0x6876
jmp 0x6878
testb $0x1, -0xe9(%rbp)
jne 0x6883
jmp 0x688f
leaq -0xe8(%rbp), %rdi
callq 0x3140
testb $0x1, -0xc7(%rbp)
jne 0x689a
jmp 0x68a3
leaq -0x78(%rbp), %rdi
callq 0x3140
testb $0x1, -0xc6(%rbp)
jne 0x68ae
jmp 0x68ba
leaq -0x98(%rbp), %rdi
callq 0x3140
testb $0x1, -0xc5(%rbp)
jne 0x68c5
jmp 0x68d1
leaq -0xb8(%rbp), %rdi
callq 0x3140
jmp 0x68d3
leaq 0x381f(%rip), %rax      # 0xa0f9
movq %rax, -0xf8(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x4db0
jmp 0x68f3
jmp 0x68f5
jmp 0x68f7
cmpl $0x0, -0x1c(%rbp)
jne 0x6b27
jmp 0x6903
leaq 0x36fa(%rip), %rax      # 0xa004
movq %rax, -0x100(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x4db0
jmp 0x6923
jmp 0x6925
jmp 0x6927
movq -0x188(%rbp), %rdi
leaq 0x3728(%rip), %rsi      # 0xa05d
callq 0x4de0
movb %al, -0x191(%rbp)
jmp 0x6942
movb -0x191(%rbp), %al
testb $0x1, %al
jne 0x6951
jmp 0x6a5f
jmp 0x6953
leaq 0x3bf3(%rip), %rax      # 0xa54d
movq %rax, -0x108(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x4db0
jmp 0x6973
jmp 0x6975
jmp 0x6977
jmp 0x6a5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6cb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6a2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6a13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x69fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
testb $0x1, -0xe9(%rbp)
jne 0x69ef
jmp 0x69fb
leaq -0xe8(%rbp), %rdi
callq 0x3140
jmp 0x69fd
testb $0x1, -0xc7(%rbp)
jne 0x6a08
jmp 0x6a11
leaq -0x78(%rbp), %rdi
callq 0x3140
jmp 0x6a13
testb $0x1, -0xc6(%rbp)
jne 0x6a1e
jmp 0x6a2a
leaq -0x98(%rbp), %rdi
callq 0x3140
jmp 0x6a2c
testb $0x1, -0xc5(%rbp)
jne 0x6a37
jmp 0x6a43
leaq -0xb8(%rbp), %rdi
callq 0x3140
jmp 0x6cb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x6ca9
movq -0x188(%rbp), %rdi
leaq 0x3620(%rip), %rsi      # 0xa08d
callq 0x4de0
movb %al, -0x192(%rbp)
jmp 0x6a7a
movb -0x192(%rbp), %al
testb $0x1, %al
jne 0x6a86
jmp 0x6aae
jmp 0x6a88
leaq 0x3aed(%rip), %rax      # 0xa57c
movq %rax, -0x110(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x4db0
jmp 0x6aa8
jmp 0x6aaa
jmp 0x6aac
jmp 0x6aae
movq -0x188(%rbp), %rdi
leaq 0x3603(%rip), %rsi      # 0xa0bf
callq 0x4de0
movb %al, -0x193(%rbp)
jmp 0x6ac9
movb -0x193(%rbp), %al
testb $0x1, %al
jne 0x6ad5
jmp 0x6afd
jmp 0x6ad7
leaq 0x3acf(%rip), %rax      # 0xa5ad
movq %rax, -0x118(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x4db0
jmp 0x6af7
jmp 0x6af9
jmp 0x6afb
jmp 0x6afd
jmp 0x6aff
leaq -0x58(%rbp), %rdi
callq 0x30c0
movq %rax, -0x120(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x4db0
jmp 0x6b21
jmp 0x6b23
jmp 0x6b25
jmp 0x6b27
cmpl $0x1, -0x1c(%rbp)
jne 0x6bd2
jmp 0x6b33
leaq 0x362e(%rip), %rax      # 0xa168
movq %rax, -0x128(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x4db0
jmp 0x6b53
jmp 0x6b55
jmp 0x6b57
jmp 0x6b59
leaq 0x3634(%rip), %rax      # 0xa194
movq %rax, -0x130(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x4db0
jmp 0x6b79
jmp 0x6b7b
jmp 0x6b7d
jmp 0x6b7f
leaq -0x58(%rbp), %rdi
callq 0x30c0
movq %rax, -0x138(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x4db0
jmp 0x6ba1
jmp 0x6ba3
jmp 0x6ba5
jmp 0x6ba7
movq -0x180(%rbp), %rdi
callq 0x30c0
movq %rax, -0x140(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x4db0
jmp 0x6bcc
jmp 0x6bce
jmp 0x6bd0
jmp 0x6bd2
leaq -0x178(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x4e10
jmp 0x6be4
leaq 0x3505(%rip), %rdx      # 0xa0f0
leaq -0x160(%rbp), %rdi
leaq -0x20(%rbp), %rsi
leaq -0x178(%rbp), %rcx
callq 0x8780
jmp 0x6c04
leaq -0x160(%rbp), %rdi
callq 0x3140
leaq -0x178(%rbp), %rdi
callq 0x4f00
cmpl $0x0, -0x20(%rbp)
jne 0x6c8e
movq 0x739f(%rip), %rdi      # 0xdfc8
leaq 0x39ad(%rip), %rsi      # 0xa5dd
callq 0x3230
movq %rax, -0x1a0(%rbp)
jmp 0x6c3e
movq -0x1a0(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x3200
movq %rax, -0x1a8(%rbp)
jmp 0x6c57
movq -0x1a8(%rbp), %rdi
leaq 0x35c7(%rip), %rsi      # 0xa22c
callq 0x3230
jmp 0x6c6c
jmp 0x6c8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x4f00
jmp 0x6ca9
leaq -0x58(%rbp), %rdi
callq 0x3140
leaq -0x38(%rbp), %rdi
callq 0x4f00
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
leaq -0x58(%rbp), %rdi
callq 0x3140
leaq -0x38(%rbp), %rdi
callq 0x4f00
movq -0xc0(%rbp), %rdi
callq 0x3490
nopw (%rax,%rax)