// File: /workspace/github_c_makefile_star2_O3/almk277[P]ROSE/rasm/rasm.cpp
// Function: main
int main(int argc, char *argv[])
{
	try {
		parse_opt(argc, argv);

		std::ifstream input(inname);
		if (!input)
			throw error(inname + ": can't open");

		module m;
		scanner scn(input);
		parser p(scn, m);
		p.run();

		std::ofstream output(outname, std::ios::out | std::ios::binary);
		if (!output)
			throw error(outname + ": can't create file");
		output.exceptions(std::ios::badbit | std::ios::failbit);
		output.imbue(std::locale::classic());
		output << m;
		output.close();

	} catch(option_error &opterr) {
		cerr << opterr.what() << endl;
		cerr << "usage: " << argv[0] << " [options] <filename>" << endl;
		cmdopt_print(opts);
		return 1;
	} catch(source_error &re) {
		cerr << argv[0] << ": " << inname << ":" << re.lineno
			<< ": " << re.what() << endl;
		return 1;
	} catch(std::exception &e) {
		cerr << argv[0] << ": " << e.what() << endl;
		return 1;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x880, %rsp            # imm = 0x880
movq %rsi, %rbx
callq 0x421c
leaq 0xfe36(%rip), %rsi      # 0x142d8
leaq 0x290(%rsp), %rdi
movl $0x8, %edx
callq 0x3430
movq 0x290(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x2b0(%rsp,%rax)
jne 0x461a
leaq 0x498(%rsp), %r14
movq %r14, %rdi
callq 0x7480
leaq 0x38(%rsp), %r15
leaq 0x290(%rsp), %rsi
movq %r15, %rdi
callq 0x4fa4
leaq 0x28(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xacea
movq %r12, %rdi
callq 0xba7e
leaq 0xfde3(%rip), %rsi      # 0x142f8
leaq 0x90(%rsp), %rdi
movl $0x14, %edx
callq 0x3510
movq 0x90(%rsp), %rax
movq -0x18(%rax), %rax
movl 0xb0(%rsp,%rax), %esi
testb $0x5, %sil
jne 0x466f
leaq (%rsp,%rax), %rdi
addq $0x90, %rdi
movl $0x5, 0x1c(%rdi)
callq 0x3470
movq 0x90(%rsp), %rax
movq -0x18(%rax), %r14
callq 0x3350
leaq (%rsp,%r14), %rsi
addq $0x90, %rsi
movq %rsp, %rdi
movq %rax, %rdx
callq 0x3080
movq %rsp, %rdi
callq 0x3390
leaq 0x90(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0x86ae
leaq 0x90(%rsp), %rdi
callq 0x33a0
movq 0xf9f5(%rip), %rax      # 0x13fa8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x98(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x90(%rsp,%rcx)
callq 0x3220
leaq 0x188(%rsp), %rdi
callq 0x30b0
leaq 0x38(%rsp), %rdi
callq 0x4a36
leaq 0x498(%rsp), %rdi
callq 0x4a6a
leaq 0x290(%rsp), %rdi
callq 0x3070
xorl %eax, %eax
addq $0x880, %rsp            # imm = 0x880
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x3150
movq %rax, %r12
leaq 0xfcaa(%rip), %rsi      # 0x142d8
leaq 0x9a18(%rip), %rdx      # 0xe04d
leaq 0x498(%rsp), %rdi
callq 0x49df
movb $0x1, %bpl
leaq 0x498(%rsp), %rsi
movq %r12, %rdi
callq 0x3440
xorl %ebp, %ebp
movq 0xf992(%rip), %rsi      # 0x13ff0
movq 0xf94b(%rip), %rdx      # 0x13fb0
movq %r12, %rdi
callq 0x3480
jmp 0x46bc
movl $0x10, %edi
callq 0x3150
movq %rax, %r12
leaq 0xfc75(%rip), %rsi      # 0x142f8
leaq 0x99d0(%rip), %rdx      # 0xe05a
leaq 0x8(%rsp), %rdi
callq 0x49df
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x3440
xorl %ebp, %ebp
movq 0xf943(%rip), %rsi      # 0x13ff0
movq 0xf8fc(%rip), %rdx      # 0x13fb0
movq %r12, %rdi
callq 0x3480
movq %rdx, %r15
movq %rax, %r14
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x46dd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
testb %bpl, %bpl
jne 0x46ea
jmp 0x474c
movq %rdx, %r15
movq %rax, %r14
movq %r12, %rdi
callq 0x31f0
jmp 0x474c
movq %rdx, %r15
movq %rax, %r14
leaq 0x4a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x471b
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x3260
testb %bpl, %bpl
jne 0x4728
jmp 0x4770
movq %rdx, %r15
movq %rax, %r14
movq %r12, %rdi
callq 0x31f0
jmp 0x4770
jmp 0x4734
movq %rdx, %r15
movq %rax, %r14
jmp 0x4759
jmp 0x473e
movq %rdx, %r15
movq %rax, %r14
jmp 0x477d
movq %rdx, %r15
movq %rax, %r14
leaq 0x90(%rsp), %rdi
callq 0x33e0
leaq 0x38(%rsp), %rdi
callq 0x4a36
leaq 0x498(%rsp), %rdi
callq 0x4a6a
leaq 0x290(%rsp), %rdi
callq 0x3070
cmpl $0x3, %r15d
jne 0x4802
movq %r14, %rdi
callq 0x3110
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
movq 0xf84d(%rip), %rdi      # 0x13fe8
movq %rax, %rsi
callq 0x3240
movq %rax, %rdi
callq 0x3140
movq 0xf836(%rip), %rdi      # 0x13fe8
leaq 0x98b5(%rip), %rsi      # 0xe06e
movl $0x7, %edx
callq 0x32a0
movq (%rbx), %rsi
movq 0xf81b(%rip), %rdi      # 0x13fe8
callq 0x3240
movq %rax, %rbx
leaq 0x989a(%rip), %rsi      # 0xe076
movl $0x15, %edx
movq %rax, %rdi
callq 0x32a0
movq %rbx, %rdi
callq 0x3140
leaq 0xf468(%rip), %rdi      # 0x13c60
callq 0xd45d
jmp 0x48fe
cmpl $0x2, %r15d
jne 0x48ab
movq %r14, %rdi
callq 0x3110
movq %rax, %r14
movq (%rbx), %rsi
movq 0xf7c7(%rip), %rdi      # 0x13fe8
callq 0x3240
movq %rax, %rbx
leaq 0x9b92(%rip), %rsi      # 0xe3c2
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq 0xfa94(%rip), %rsi      # 0x142d8
movq 0xfa95(%rip), %rdx      # 0x142e0
movq %rbx, %rdi
callq 0x32a0
movq %rax, %rbx
leaq 0x9929(%rip), %rsi      # 0xe186
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x3490
movq %rax, %rbx
leaq 0x9b42(%rip), %rsi      # 0xe3c2
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3240
movq %rax, %rdi
callq 0x3140
jmp 0x48fe
cmpl $0x1, %r15d
jne 0x4929
movq %r14, %rdi
callq 0x3110
movq %rax, %r14
movq (%rbx), %rsi
movq 0xf722(%rip), %rdi      # 0x13fe8
callq 0x3240
movq %rax, %rbx
leaq 0x9aed(%rip), %rsi      # 0xe3c2
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3240
movq %rax, %rdi
callq 0x3140
callq 0x3460
movl $0x1, %eax
jmp 0x460a
movq %rax, %r14
callq 0x3460
jmp 0x4929
movq %rax, %r14
callq 0x3460
jmp 0x4929
movq %rax, %r14
callq 0x3460
movq %r14, %rdi
callq 0x34a0
movq %rax, %rdi
callq 0x4acf
nop