// File: /workspace/github_c_makefile_star2_O2/info-telecom-strasbourg[P]code-generator/src/other_flags.cpp
// Function: flag_a(char*)
void flag_a (char *optarg_) {
	string name, ext_c, ext_h, src, include, extension;
	string optarg_str = optarg_;

	parse_extension (optarg_, extension);

	if (extension != optarg_) {
		cout << "\033[1;33mwarning\033[0m: ignoring \""<< extension
 			<< "\". Using the extensions defined in the config file.\n\n";
	}

	name = optarg_str.substr(0, optarg_str.length() - extension.length() - 1);

	GET_CONFIG (

	ext_c = ds->c_extension;
	ext_h = ds->h_extension;
	src = cut_file (ds->source);
	include = cut_file (ds->include);

	)
	
   	create_file (name, ext_c, src, IS_SOURCE);
   	create_file (name, ext_h, include, IS_INCLUDE);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movq %rdi, %rbx
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0xf8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq 0xd8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %cl, (%rax)
movb %cl, (%rdx)
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq 0x98(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %cl, (%rax)
movb %cl, (%rdx)
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
leaq 0x228(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %rbx, %rsi
callq 0x34ea
leaq 0x208(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %rbx, %rsi
callq 0x34ea
leaq 0x248(%rsp), %rdi
leaq 0x208(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x4ec3
leaq 0x248(%rsp), %rdi
callq 0x20c0
leaq 0x208(%rsp), %rdi
callq 0x20c0
leaq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0x4623
testb %al, %al
je 0x3d91
movq 0x525f(%rip), %rdi      # 0x8fc8
leaq 0x289f(%rip), %rsi      # 0x660f
callq 0x21b0
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x2180
leaq 0x28a5(%rip), %rsi      # 0x662e
movq %rax, %rdi
callq 0x21b0
movq 0x50(%rsp), %rcx
notq %rcx
leaq 0x228(%rsp), %rsi
addq 0x8(%rsi), %rcx
leaq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x21f0
leaq 0x68(%rsp), %rdi
leaq 0x28(%rsp), %rbx
movq %rbx, %rsi
callq 0x2250
movq %rbx, %rdi
callq 0x20c0
leaq 0x24e2(%rip), %rdi      # 0x62b4
leaq 0x24ef(%rip), %rsi      # 0x62c8
callq 0x2220
testq %rax, %rax
je 0x41cf
movq %rax, %rbp
movl $0x380, %edi            # imm = 0x380
callq 0x2290
movq %rax, %rbx
pushq $0x1
popq %r14
movl $0x80, %esi
movq %rax, %rdi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x80(%rbx), %r13
movl $0x80, %esi
movq %r13, %rdi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x100(%rbx), %rdi
movl $0x80, %esi
movq %rdi, 0x20(%rsp)
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x180(%rbx), %rdi
movl $0x80, %esi
movq %rdi, 0x18(%rsp)
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x200(%rbx), %rdi
movl $0x80, %esi
movq %rdi, 0x10(%rsp)
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x280(%rbx), %r12
movl $0x80, %esi
movq %r12, %rdi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x300(%rbx), %r15
movl $0x80, %esi
movq %r15, %rdi
movq %r14, %rdx
movq %rbp, %rcx
callq 0x22f0
leaq 0x2433(%rip), %rsi      # 0x62ea
movq %rbx, %rdi
callq 0x22d0
testl %eax, %eax
je 0x41e4
leaq 0x241c(%rip), %rsi      # 0x62ea
movq %r13, %rdi
callq 0x22d0
testl %eax, %eax
je 0x41f7
leaq 0x2405(%rip), %rsi      # 0x62ea
movq 0x20(%rsp), %rdi
callq 0x22d0
testl %eax, %eax
je 0x420c
leaq 0x23ec(%rip), %rsi      # 0x62ea
movq 0x18(%rsp), %rdi
callq 0x22d0
testl %eax, %eax
je 0x421f
leaq 0x23d3(%rip), %rsi      # 0x62ea
movq 0x10(%rsp), %rdi
callq 0x22d0
testl %eax, %eax
je 0x4234
leaq 0x23ba(%rip), %rsi      # 0x62ea
movq %r12, %rdi
callq 0x22d0
testl %eax, %eax
je 0x41a2
cmpb $0x0, (%r12)
je 0x41a2
leaq 0x2398(%rip), %rsi      # 0x62ea
movq %r15, %rdi
callq 0x22d0
testl %eax, %eax
je 0x41ba
cmpb $0x0, (%r15)
je 0x41ba
leaq 0xe8(%rsp), %rdi
movq %r12, %rsi
callq 0x2390
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
callq 0x2390
leaq 0x1e8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %rbx, %rsi
callq 0x34ea
leaq 0x28(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
callq 0x4fab
leaq 0xa8(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x2250
movq %r14, %rdi
callq 0x20c0
leaq 0x1e8(%rsp), %rdi
callq 0x20c0
leaq 0x1c8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %r13, %rsi
callq 0x34ea
leaq 0x28(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x4fab
leaq 0x88(%rsp), %rdi
leaq 0x28(%rsp), %r14
movq %r14, %rsi
callq 0x2250
movq %r14, %rdi
callq 0x20c0
leaq 0x1c8(%rsp), %rdi
callq 0x20c0
movq %rbx, %rdi
callq 0x2230
leaq 0x1a8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x22c0
leaq 0x188(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x22c0
leaq 0x168(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x22c0
leaq 0x1a8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
leaq 0x168(%rsp), %rdx
xorl %ecx, %ecx
callq 0x3969
leaq 0x168(%rsp), %rdi
callq 0x20c0
leaq 0x188(%rsp), %rdi
callq 0x20c0
leaq 0x1a8(%rsp), %rdi
callq 0x20c0
leaq 0x148(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x22c0
leaq 0x128(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x22c0
leaq 0x108(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x22c0
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x108(%rsp), %rdx
pushq $0x1
popq %rcx
callq 0x3969
leaq 0x108(%rsp), %rdi
callq 0x20c0
leaq 0x128(%rsp), %rdi
callq 0x20c0
leaq 0x148(%rsp), %rdi
callq 0x20c0
leaq 0x228(%rsp), %rdi
callq 0x20c0
leaq 0x48(%rsp), %rdi
callq 0x20c0
leaq 0x88(%rsp), %rdi
callq 0x20c0
leaq 0xa8(%rsp), %rdi
callq 0x20c0
leaq 0xc8(%rsp), %rdi
callq 0x20c0
leaq 0xe8(%rsp), %rdi
callq 0x20c0
leaq 0x68(%rsp), %rdi
callq 0x20c0
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x4e27(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x21fe(%rip), %rdi      # 0x63b1
pushq $0x31
jmp 0x4247
movq 0x4e0f(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x2218(%rip), %rdi      # 0x63e3
pushq $0x32
jmp 0x4247
movq 0x4dfa(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x20ea(%rip), %rdi      # 0x62ca
pushq $0x1f
jmp 0x4247
movq 0x4de5(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x20fb(%rip), %rdi      # 0x62f0
jmp 0x4245
movq 0x4dd2(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x210f(%rip), %rdi      # 0x6317
pushq $0x27
jmp 0x4247
movq 0x4dbd(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x2122(%rip), %rdi      # 0x633f
jmp 0x4245
movq 0x4daa(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x2136(%rip), %rdi      # 0x6366
pushq $0x23
jmp 0x4247
movq 0x4d95(%rip), %rax      # 0x8fd0
movq (%rax), %rcx
leaq 0x2145(%rip), %rdi      # 0x638a
pushq $0x26
popq %rsi
pushq $0x1
popq %rdx
callq 0x23a0
pushq $0x1
popq %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x20c0
jmp 0x426d
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x20c0
jmp 0x427f
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
jmp 0x42e5
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
callq 0x20c0
jmp 0x429e
movq %rax, %rbx
leaq 0x188(%rsp), %rdi
callq 0x20c0
jmp 0x42b0
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
jmp 0x42e5
movq %rax, %rbx
leaq 0x1c8(%rsp), %rdi
jmp 0x42e5
jmp 0x42f5
movq %rax, %rbx
leaq 0x1e8(%rsp), %rdi
jmp 0x42e5
jmp 0x42f5
jmp 0x42f5
movq %rax, %rbx
leaq 0x208(%rsp), %rdi
callq 0x20c0
jmp 0x42f8
jmp 0x42f5
movq %rax, %rbx
jmp 0x4305
jmp 0x42f5
movq %rax, %rbx
leaq 0x228(%rsp), %rdi
callq 0x20c0
leaq 0x48(%rsp), %rdi
callq 0x20c0
leaq 0x88(%rsp), %rdi
callq 0x20c0
leaq 0xa8(%rsp), %rdi
callq 0x20c0
leaq 0xc8(%rsp), %rdi
callq 0x20c0
leaq 0xe8(%rsp), %rdi
callq 0x20c0
leaq 0x68(%rsp), %rdi
callq 0x20c0
movq %rbx, %rdi
callq 0x2350