// File: /workspace/github_c_makefile_star2_O1/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 0x422c
leaq 0xfe3b(%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 0x4615
leaq 0x498(%rsp), %r14
movq %r14, %rdi
callq 0x7534
leaq 0x38(%rsp), %r15
leaq 0x290(%rsp), %rsi
movq %r15, %rdi
callq 0x4f98
leaq 0x28(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xada0
movq %r12, %rdi
callq 0xbba2
leaq 0xfde8(%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 0x466a
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 0x8720
leaq 0x90(%rsp), %rdi
callq 0x33a0
movq 0xf9fa(%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 0xfcaf(%rip), %rsi      # 0x142d8
leaq 0x9a1d(%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 0xf997(%rip), %rsi      # 0x13ff0
movq 0xf950(%rip), %rdx      # 0x13fb0
movq %r12, %rdi
callq 0x3480
jmp 0x46b7
movl $0x10, %edi
callq 0x3150
movq %rax, %r12
leaq 0xfc7a(%rip), %rsi      # 0x142f8
leaq 0x99d5(%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 0xf948(%rip), %rsi      # 0x13ff0
movq 0xf901(%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 0x46e3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x46e3
movq %rdx, %r15
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x474d
movq %r12, %rdi
callq 0x31f0
jmp 0x474d
movq %rdx, %r15
movq %rax, %r14
leaq 0x4a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4724
movq 0x4a8(%rsp), %rsi
incq %rsi
callq 0x3260
jmp 0x4724
movq %rdx, %r15
movq %rax, %r14
movb $0x1, %bpl
testb %bpl, %bpl
je 0x4771
movq %r12, %rdi
callq 0x31f0
jmp 0x4771
jmp 0x4735
movq %rdx, %r15
movq %rax, %r14
jmp 0x475a
jmp 0x473f
movq %rdx, %r15
movq %rax, %r14
jmp 0x477e
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 0x4803
movq %r14, %rdi
callq 0x3110
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
movq 0xf84c(%rip), %rdi      # 0x13fe8
movq %rax, %rsi
callq 0x3240
movq %rax, %rdi
callq 0x3140
movq 0xf835(%rip), %rdi      # 0x13fe8
leaq 0x98b4(%rip), %rsi      # 0xe06e
movl $0x7, %edx
callq 0x32a0
movq (%rbx), %rsi
movq 0xf81a(%rip), %rdi      # 0x13fe8
callq 0x3240
movq %rax, %rbx
leaq 0x9899(%rip), %rsi      # 0xe076
movl $0x15, %edx
movq %rax, %rdi
callq 0x32a0
movq %rbx, %rdi
callq 0x3140
leaq 0xf467(%rip), %rdi      # 0x13c60
callq 0xd581
jmp 0x48ff
cmpl $0x2, %r15d
jne 0x48ac
movq %r14, %rdi
callq 0x3110
movq %rax, %r14
movq (%rbx), %rsi
movq 0xf7c6(%rip), %rdi      # 0x13fe8
callq 0x3240
movq %rax, %rbx
leaq 0x9b91(%rip), %rsi      # 0xe3c2
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq 0xfa93(%rip), %rsi      # 0x142d8
movq 0xfa94(%rip), %rdx      # 0x142e0
movq %rbx, %rdi
callq 0x32a0
movq %rax, %rbx
leaq 0x9928(%rip), %rsi      # 0xe186
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x3490
movq %rax, %rbx
leaq 0x9b41(%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 0x48ff
cmpl $0x1, %r15d
jne 0x492a
movq %r14, %rdi
callq 0x3110
movq %rax, %r14
movq (%rbx), %rsi
movq 0xf721(%rip), %rdi      # 0x13fe8
callq 0x3240
movq %rax, %rbx
leaq 0x9aec(%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 0x4605
movq %rax, %r14
callq 0x3460
jmp 0x492a
movq %rax, %r14
callq 0x3460
jmp 0x492a
movq %rax, %r14
callq 0x3460
movq %r14, %rdi
callq 0x34a0
movq %rax, %rdi
callq 0x4acf