// File: /workspace/github_cpp_makefile_star2_O2/rofl0r[P]ascc/main.cpp
// Function: usage(char*)
static int usage(char *argv0) {
	fprintf(stderr, "usage: %s [OPTIONS] FILE.asc\n"
	"compiles FILE.asc to FILE.o\n"
	"OPTIONS:\n"
	"-A API version : specify API version. this affects which functions\n"
	"   and data items are made available by global header agsdefns.sh.\n"
	"   supported values are:\n  ",
	argv0);
	for(unsigned i=0;apiv[i];++i) fprintf(stderr, " %s", apiv[i]);
	fprintf(stderr, "\n   default: 350\n"
	"-a ABI version: same as above, but restricts the emitted bytecode\n"
	"-f option=value: set a compiler option. recognized options:\n"
	);
	for(unsigned i=0; i < SCOPT_NUMOPTS; ++i)
		fprintf(stderr, "   %s (1/0) - %s\n",
			ccOptionNameString(1<<i),
			ccOptionHelpString(1<<i));
	for(unsigned i=0; cust_f_opts[i].name; ++i)
		fprintf(stderr, "   %s (---) - %s\n",
			cust_f_opts[i].name, cust_f_opts[i].help);
	fprintf(stderr,
	"-i systemheaderdir : provide path to system headers\n"
	"   this is the path containing implicitly included headers (atm only agsdefns.sh).\n"
	"-H 1.ash[:2.ash...] : colon-separated list of headers to include.\n"
	"   order matters. AGS editor automatically includes all headers\n"
	"   it finds in the game dir, but here you need to specify them.\n"
	"-o filename : explicitily specify output file name\n"
	"-P preprocessor : use `preprocessor` on files before running the built-in\n"
	"   one on them. example: -P \"cpp -P\". note that you if you use a\n"
	"   standard C preprocessor, linenumber directives need to be supressed\n"
	"   as in the example cpp command.\n"
	"-D macro[=val] : define preprocessor macro\n"
	"-E : run preprocessor only (create file with .i extension)\n"
	"-W : warn about non-fatal errors parsing system headers\n"
	"-g : turn on debug info\n"
	"-S : write textual assembly instead of binary (requires agsdisas)\n"
	);
	return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rdx
movq 0x20c94(%rip), %r13     # 0x24fc0
movq (%r13), %rdi
leaq 0x13f7e(%rip), %rsi     # 0x182b5
xorl %eax, %eax
callq 0x3480
leaq 0x2077b(%rip), %r14     # 0x24ac0
leaq 0x163c7(%rip), %rbx     # 0x1a713
xorl %r15d, %r15d
cmpq $0x40, %r15
je 0x436d
movq (%r15,%r14), %rdx
movq (%r13), %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3480
addq $0x8, %r15
jmp 0x434f
movq (%r13), %rcx
leaq 0x14021(%rip), %rdi     # 0x18399
pushq $0x1
popq %rdx
movl $0x8f, %esi
callq 0x35b0
leaq 0x1409d(%rip), %rbx     # 0x18429
xorl %ebp, %ebp
cmpl $0xc, %ebp
je 0x43ca
movq (%r13), %r14
pushq $0x1
popq %r15
movl %ebp, %ecx
shll %cl, %r15d
movl %r15d, %edi
callq 0x1279f
movq %rax, %r12
movl %r15d, %edi
callq 0x12779
movq %r14, %rdi
movq %rbx, %rsi
movq %r12, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x3480
incl %ebp
jmp 0x438e
leaq 0x2073f(%rip), %r14     # 0x24b10
leaq 0x14063(%rip), %rbx     # 0x1843b
xorl %r15d, %r15d
cmpl $0x20, %r15d
je 0x43fe
movq (%r13), %rdi
movq (%r15,%r14), %rdx
movq 0x8(%r15,%r14), %rcx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x3480
addq $0x20, %r15
jmp 0x43db
movq (%r13), %rcx
leaq 0x14044(%rip), %rdi     # 0x1844d
pushq $0x1
popq %rdx
movl $0x368, %esi            # imm = 0x368
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x35b0