// File: /workspace/github_c_makefile_star2_O2/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 0x40cc
leaq 0x1104b(%rip), %rsi     # 0x152d8
leaq 0x290(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x3430
movq 0x290(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x2b0(%rsp,%rax)
jne 0x43cf
leaq 0x498(%rsp), %r14
movq %r14, %rdi
callq 0x6eac
leaq 0x38(%rsp), %r15
leaq 0x290(%rsp), %rsi
movq %r15, %rdi
callq 0x4d2c
leaq 0x28(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xa040
movq %r12, %rdi
callq 0xab40
leaq 0x10ffa(%rip), %rsi     # 0x152f8
leaq 0x90(%rsp), %rdi
pushq $0x14
popq %rdx
callq 0x3500
movq 0x90(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0xb0(%rsp,%rax)
jne 0x4422
leaq (%rsp,%rax), %rdi
addq $0x90, %rdi
pushq $0x5
popq %rsi
callq 0x30b0
movq 0x90(%rsp), %rax
movq -0x18(%rax), %r14
callq 0x3350
leaq (%rsp,%r14), %rsi
addq $0x90, %rsi
movq %rsp, %rdi
movq %rax, %rdx
callq 0x3090
movq %rsp, %rdi
callq 0x3390
leaq 0x90(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0x7b0c
leaq 0x90(%rsp), %rdi
callq 0x33a0
leaq 0x90(%rsp), %rdi
callq 0x33e0
leaq 0x38(%rsp), %rdi
callq 0x475a
leaq 0x498(%rsp), %rdi
callq 0x4774
leaq 0x290(%rsp), %rdi
callq 0x3080
xorl %eax, %eax
addq $0x880, %rsp            # imm = 0x880
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x3170
movq %rax, %r12
leaq 0x10ef7(%rip), %rsi     # 0x152d8
leaq 0x8c65(%rip), %rdx      # 0xd04d
leaq 0x498(%rsp), %rdi
callq 0x4721
movb $0x1, %bpl
leaq 0x498(%rsp), %rsi
movq %r12, %rdi
callq 0x3440
xorl %ebp, %ebp
movq 0x10bd7(%rip), %rsi     # 0x14fe8
movq 0x10b80(%rip), %rdx     # 0x14f98
movq %r12, %rdi
callq 0x3470
jmp 0x446d
pushq $0x10
popq %rdi
callq 0x3170
movq %rax, %r12
leaq 0x10ec4(%rip), %rsi     # 0x152f8
leaq 0x8c1f(%rip), %rdx      # 0xd05a
leaq 0x8(%rsp), %rdi
callq 0x4721
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x3440
xorl %ebp, %ebp
movq 0x10b8a(%rip), %rsi     # 0x14fe8
movq 0x10b33(%rip), %rdx     # 0x14f98
movq %r12, %rdi
callq 0x3470
movq %rdx, %r15
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x3528
testb %bpl, %bpl
jne 0x448a
jmp 0x44d8
movq %rdx, %r15
movq %rax, %r14
movq %r12, %rdi
callq 0x3210
jmp 0x44d8
movq %rdx, %r15
movq %rax, %r14
leaq 0x498(%rsp), %rdi
callq 0x3528
testb %bpl, %bpl
jne 0x44b4
jmp 0x44fc
movq %rdx, %r15
movq %rax, %r14
movq %r12, %rdi
callq 0x3210
jmp 0x44fc
jmp 0x44c0
movq %rdx, %r15
movq %rax, %r14
jmp 0x44e5
jmp 0x44ca
movq %rdx, %r15
movq %rax, %r14
jmp 0x4509
movq %rdx, %r15
movq %rax, %r14
leaq 0x90(%rsp), %rdi
callq 0x33e0
leaq 0x38(%rsp), %rdi
callq 0x475a
leaq 0x498(%rsp), %rdi
callq 0x4774
leaq 0x290(%rsp), %rdi
callq 0x3080
cmpl $0x3, %r15d
jne 0x457d
movq %r14, %rdi
callq 0x3110
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
movq 0x10ab9(%rip), %rdi     # 0x14fe0
movq %rax, %rsi
callq 0x3260
movq %rax, %rdi
callq 0x3160
movq 0x10aa2(%rip), %rdi     # 0x14fe0
leaq 0x8b29(%rip), %rsi      # 0xd06e
callq 0x3260
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x3260
leaq 0x8b1a(%rip), %rsi      # 0xd076
movq %rax, %rdi
callq 0x3260
movq %rax, %rdi
callq 0x3160
leaq 0x106dd(%rip), %rdi     # 0x14c50
callq 0xc0f3
jmp 0x4658
cmpl $0x2, %r15d
jne 0x460a
movq %r14, %rdi
callq 0x3110
movq %rax, %r14
movq (%rbx), %rsi
movq 0x10a44(%rip), %rdi     # 0x14fe0
callq 0x3260
leaq 0x8e03(%rip), %rsi      # 0xd3ab
movq %rax, %rdi
callq 0x3260
leaq 0x10d21(%rip), %rsi     # 0x152d8
movq %rax, %rdi
callq 0x3250
leaq 0x8bbb(%rip), %rsi      # 0xd181
movq %rax, %rdi
callq 0x3260
movl 0x10(%r14), %esi
movq %rax, %rdi
callq 0x3480
leaq 0x8dca(%rip), %rsi      # 0xd3ab
movq %rax, %rdi
callq 0x3260
movq %rax, %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3260
movq %rax, %rdi
callq 0x3160
jmp 0x4658
cmpl $0x1, %r15d
jne 0x4681
movq %r14, %rdi
callq 0x3110
movq %rax, %r14
movq (%rbx), %rsi
movq 0x109bb(%rip), %rdi     # 0x14fe0
callq 0x3260
leaq 0x8d7a(%rip), %rsi      # 0xd3ab
movq %rax, %rdi
callq 0x3260
movq %rax, %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3260
movq %rax, %rdi
callq 0x3160
callq 0x3460
pushq $0x1
popq %rax
jmp 0x43bf
movq %rax, %r14
callq 0x3460
jmp 0x4681
movq %rax, %r14
callq 0x3460
jmp 0x4681
movq %rax, %r14
callq 0x3460
movq %r14, %rdi
callq 0x3490
movq %rax, %rdi
callq 0x47d9
nop