// File: /workspace/github_c_makefile_star2_O2/azhai[P]mlite/mlite.c
// Function: main
int main(int argc, char **argv) {
	int	run_script;
	char	*argv0;

	if (argc > 1 && !strcmp(argv[1], "-i")) {
		if (argc < 2) {
			usage(1);
			bye(1);
		}
		argv += 2;
	}
	init();
	signal(SIGQUIT, keyboard_quit);
	signal(SIGTERM, terminated);
	load_library(argv[0]);
	argv0 = *argv++;
	init_extensions();
	while (*argv != NULL) {
		if (**argv != '-')
			break;
		(*argv)++;
		while (**argv) {
			switch (**argv)  {
			case '-':
				Command_line = ++argv;
				break;
			case 'd':
				if (argv[1] == NULL)
					usage(1);
				dump_image(argv[1]);
				bye(Error_flag? 1: 0);
				break;
			case 'f':
			case 'l':
				if (argv[1] == NULL)
					usage(1);
				run_script = **argv == 'f';
				if (run_script) {
					Quiet_mode = 1;
					Command_line = &argv[2];
				}
				if (load(argv[1]))
					error("program file not found",
						make_string(argv[1],
							(int)strlen(argv[1])));
				if (Error_flag)
					bye(1);
				if (run_script)
					bye(0);
				argv++;
				*argv = &(*argv)[strlen(*argv)];
				break;
			case 'g':
				Verbose_GC++;
				(*argv)++;
				break;
			case 'm':
				if (argv[1] == NULL)
					usage(1);
				Memory_limit_kn = get_size_k(argv[1]);
				argv++;
				*argv += strlen(*argv);
				break;
			case 'q':
				Quiet_mode = 1;
				(*argv)++;
				break;
			case 't':
				if (argv[1] == NULL)
					usage(1);
				Proc_max = atoi(argv[1]);
				if (Proc_max > MAX_CALL_TRACE)
					Proc_max = MAX_CALL_TRACE;
				argv++;
				*argv += strlen(*argv);
				break;
			case 'v':
				version_info(argv0);
				bye(0);
				break;
			case 'h':
			case '?':
				long_usage();
				bye(0);
				break;
			default:
				usage(1);
				break;
			}
			if (Command_line)
				break;
		}
		if (Command_line)
			break;
		argv++;
	}
	if (!Command_line && argv[0] != NULL)
		usage(1);
	if (!Quiet_mode)
		pr("mLite\n");
	repl();
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
cmpl $0x2, %edi
jl 0x13a26
movq 0x8(%rbx), %rcx
cmpb $0x2d, (%rcx)
jne 0x13a21
cmpb $0x69, 0x1(%rcx)
jne 0x13a21
xorl %eax, %eax
cmpb $0x0, 0x2(%rcx)
sete %al
shll $0x4, %eax
jmp 0x13a23
xorl %eax, %eax
addq %rax, %rbx
callq 0x1304e
leaq -0x14be(%rip), %rsi     # 0x12574
pushq $0x3
popq %rdi
callq 0x3120
leaq -0x14bd(%rip), %rsi     # 0x12584
pushq $0xf
popq %rdi
callq 0x3120
movq (%rbx), %rdi
callq 0x12afc
movq (%rbx), %rax
movq %rax, -0x30(%rbp)
callq 0x134cd
pushq $0x1
popq %r15
leaq 0x6e4(%rip), %r14       # 0x1414c
movq 0x8(%rbx), %rax
testq %rax, %rax
je 0x13bf7
cmpb $0x2d, (%rax)
jne 0x13be5
addq $0x8, %rbx
incq %rax
movq %rax, (%rbx)
movq (%rbx), %rax
movb (%rax), %r12b
movzbl %r12b, %ecx
leal -0x64(%rcx), %edx
cmpl $0x12, %edx
ja 0x13bb0
movslq (%r14,%rdx,4), %rcx
addq %r14, %rcx
jmpq *%rcx
cmpq $0x0, 0x8(%rbx)
jne 0x13abc
movl %r15d, %edi
callq 0x135da
movq (%rbx), %rax
movb (%rax), %r12b
cmpb $0x66, %r12b
jne 0x13ad7
movl $0x1, 0x8aec(%rip)      # 0x1c5b8
leaq 0x10(%rbx), %rax
movq %rax, 0x9101(%rip)      # 0x1cbd8
addq $0x8, %rbx
movq (%rbx), %rdi
callq 0x100cf
testl %eax, %eax
je 0x13b0b
movq (%rbx), %r13
movq %r13, %rdi
callq 0x30a0
movq %r13, %rdi
movl %eax, %esi
callq 0x729e
leaq 0x1db8(%rip), %rdi      # 0x158bb
movq %rax, %rsi
callq 0x33e4
cmpl $0x0, 0x8aa2(%rip)      # 0x1c5b4
jne 0x13c22
cmpb $0x66, %r12b
jne 0x13b4f
jmp 0x13c3a
incl 0x85c7(%rip)            # 0x1c0f0
jmp 0x13b5e
movq 0x8(%rbx), %rdi
addq $0x8, %rbx
testq %rdi, %rdi
jne 0x13b43
movl %r15d, %edi
callq 0x135da
movq (%rbx), %rdi
callq 0x1399a
movq %rax, 0x8b21(%rip)      # 0x1c670
movq (%rbx), %r13
jmp 0x13b92
movl $0x1, 0x8a5a(%rip)      # 0x1c5b8
incq %rax
jmp 0x13b9d
movq 0x8(%rbx), %r13
addq $0x8, %rbx
testq %r13, %r13
jne 0x13b7b
movl %r15d, %edi
callq 0x135da
movq (%rbx), %r13
movq %r13, %rdi
callq 0x31e0
cmpl $0x64, %eax
pushq $0x64
popq %rcx
cmovgel %ecx, %eax
movl %eax, 0x86fa(%rip)      # 0x1c28c
movq %r13, %rdi
callq 0x30a0
addq %r13, %rax
movq %rax, (%rbx)
cmpq $0x0, 0x9030(%rip)      # 0x1cbd8
je 0x13a88
jmp 0x13bf7
testl %ecx, %ecx
je 0x13bc8
cmpl $0x2d, %ecx
je 0x13bd8
cmpl $0x3f, %ecx
je 0x13c2a
movl %r15d, %edi
callq 0x135da
jmp 0x13ba0
cmpq $0x0, 0x9008(%rip)      # 0x1cbd8
je 0x13a68
jmp 0x13bf7
addq $0x8, %rbx
movq %rbx, 0x8ff5(%rip)      # 0x1cbd8
jmp 0x13bf7
cmpq $0x0, 0x8feb(%rip)      # 0x1cbd8
jne 0x13bf7
pushq $0x1
popq %rdi
callq 0x135da
cmpl $0x0, 0x89ba(%rip)      # 0x1c5b8
jne 0x13c0c
leaq 0x1ccb(%rip), %rdi      # 0x158d2
callq 0x3873
callq 0x12596
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x1
popq %rdi
callq 0x3200
callq 0x1362f
jmp 0x13c3a
movq -0x30(%rbp), %rdi
callq 0x13751
xorl %edi, %edi
callq 0x3200
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
jne 0x13c56
pushq $0x1
popq %rdi
callq 0x135da
movq 0x8(%rbx), %rdi
callq 0x10684
xorl %edi, %edi
cmpl $0x0, 0x8950(%rip)      # 0x1c5b4
setne %dil
callq 0x3200