// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x9c0, %rsp            # imm = 0x9C0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x56e0
jmp 0x5a27
leaq 0x2f9ba(%rip), %rsi     # 0x353e8
leaq -0x228(%rbp), %rdi
movl $0x8, %edx
callq 0x45e0
jmp 0x5a41
movq -0x228(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x228(%rbp,%rax), %rdi
callq 0x41c0
movb %al, -0x8e9(%rbp)
jmp 0x5a61
movb -0x8e9(%rbp), %al
testb $0x1, %al
jne 0x5a70
jmp 0x5b43
movb $0x1, -0x249(%rbp)
movl $0x10, %edi
callq 0x41e0
movq %rax, -0x8f8(%rbp)
leaq 0x2f959(%rip), %rsi     # 0x353e8
leaq 0x1d5b7(%rip), %rdx     # 0x2304d
leaq -0x248(%rbp), %rdi
callq 0x6300
jmp 0x5aa4
movq -0x8f8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x45f0
jmp 0x5ab9
movq -0x8f8(%rbp), %rdi
movb $0x0, -0x249(%rbp)
movq 0x2f51a(%rip), %rsi     # 0x34fe8
movq 0x2f4cb(%rip), %rdx     # 0x34fa0
callq 0x4640
jmp 0x60f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5df0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5de4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5b27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x4748
testb $0x1, -0x249(%rbp)
jne 0x5b32
jmp 0x5b3e
movq -0x8f8(%rbp), %rdi
callq 0x42c0
jmp 0x5de4
leaq -0x638(%rbp), %rdi
movq %rdi, -0x908(%rbp)
callq 0xf280
leaq -0x690(%rbp), %rdi
movq %rdi, -0x910(%rbp)
leaq -0x228(%rbp), %rsi
callq 0x8660
movq -0x910(%rbp), %rsi
movq -0x908(%rbp), %rdx
leaq -0x6a0(%rbp), %rdi
movq %rdi, -0x900(%rbp)
callq 0x1b3f0
movq -0x900(%rbp), %rdi
callq 0x1c7e0
jmp 0x5b9f
movl $0x10, %edi
movl $0x4, %esi
callq 0x6380
movl %eax, -0x914(%rbp)
jmp 0x5bb6
movl -0x914(%rbp), %edx
leaq 0x2f845(%rip), %rsi     # 0x35408
leaq -0x8a0(%rbp), %rdi
callq 0x4700
jmp 0x5bd1
movq -0x8a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x8a0(%rbp,%rax), %rdi
callq 0x41c0
movb %al, -0x915(%rbp)
jmp 0x5bf1
movb -0x915(%rbp), %al
testb $0x1, %al
jne 0x5c00
jmp 0x5cd3
movb $0x1, -0x8c1(%rbp)
movl $0x10, %edi
callq 0x41e0
movq %rax, -0x920(%rbp)
leaq 0x2f7e9(%rip), %rsi     # 0x35408
leaq 0x1d434(%rip), %rdx     # 0x2305a
leaq -0x8c0(%rbp), %rdi
callq 0x6300
jmp 0x5c34
movq -0x920(%rbp), %rdi
leaq -0x8c0(%rbp), %rsi
callq 0x45f0
jmp 0x5c49
movq -0x920(%rbp), %rdi
movb $0x0, -0x8c1(%rbp)
movq 0x2f38a(%rip), %rsi     # 0x34fe8
movq 0x2f33b(%rip), %rdx     # 0x34fa0
callq 0x4640
jmp 0x60f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5dcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5dc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5cb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x8c0(%rbp), %rdi
callq 0x4748
testb $0x1, -0x8c1(%rbp)
jne 0x5cc2
jmp 0x5cce
movq -0x920(%rbp), %rdi
callq 0x42c0
jmp 0x5dc0
movq -0x8a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x8a0(%rbp,%rax), %rax
movq %rax, -0x930(%rbp)
movl $0x1, %edi
movl $0x4, %esi
callq 0x63a0
movl %eax, -0x924(%rbp)
jmp 0x5d04
movl -0x924(%rbp), %esi
movq -0x930(%rbp), %rdi
callq 0x40e0
jmp 0x5d18
movq -0x8a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x8a0(%rbp,%rax), %rax
movq %rax, -0x940(%rbp)
callq 0x44d0
movq %rax, -0x938(%rbp)
jmp 0x5d40
movq -0x938(%rbp), %rdx
movq -0x940(%rbp), %rsi
leaq -0x8d0(%rbp), %rdi
callq 0x40c0
jmp 0x5d5c
leaq -0x8d0(%rbp), %rdi
callq 0x4520
leaq -0x8a0(%rbp), %rdi
leaq -0x638(%rbp), %rsi
callq 0x10950
jmp 0x5d7d
leaq -0x8a0(%rbp), %rdi
callq 0x4530
jmp 0x5d8b
leaq -0x8a0(%rbp), %rdi
callq 0x4580
leaq -0x690(%rbp), %rdi
callq 0x63c0
leaq -0x638(%rbp), %rdi
callq 0x63f0
leaq -0x228(%rbp), %rdi
callq 0x40b0
jmp 0x60dc
leaq -0x8a0(%rbp), %rdi
callq 0x4580
leaq -0x690(%rbp), %rdi
callq 0x63c0
leaq -0x638(%rbp), %rdi
callq 0x63f0
leaq -0x228(%rbp), %rdi
callq 0x40b0
movl -0x1c(%rbp), %eax
movl %eax, -0x944(%rbp)
movl $0x3, %ecx
cmpl %ecx, %eax
jne 0x5edb
movq -0x18(%rbp), %rdi
callq 0x4150
movq %rax, -0x8e8(%rbp)
movq -0x8e8(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rsi
movq 0x2f1b0(%rip), %rdi     # 0x34fe0
callq 0x4340
movq %rax, -0x950(%rbp)
jmp 0x5e3e
movq -0x950(%rbp), %rdi
movq 0x2f13c(%rip), %rsi     # 0x34f88
callq 0x4380
jmp 0x5e53
movq 0x2f186(%rip), %rdi     # 0x34fe0
leaq 0x1d20d(%rip), %rsi     # 0x2306e
callq 0x4340
movq %rax, -0x958(%rbp)
jmp 0x5e6f
movq -0x958(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x4340
movq %rax, -0x960(%rbp)
jmp 0x5e8b
movq -0x960(%rbp), %rdi
leaq 0x1d1dd(%rip), %rsi     # 0x23076
callq 0x4340
movq %rax, -0x968(%rbp)
jmp 0x5ea7
movq -0x968(%rbp), %rdi
movq 0x2f0d3(%rip), %rsi     # 0x34f88
callq 0x4380
jmp 0x5ebc
leaq 0x2ed8d(%rip), %rdi     # 0x34c50
callq 0x22930
jmp 0x5eca
movl $0x1, -0x4(%rbp)
callq 0x4610
jmp 0x60dc
movl -0x944(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x5ff7
movq -0x18(%rbp), %rdi
callq 0x4150
movq %rax, -0x8e0(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq 0x2f0d4(%rip), %rdi     # 0x34fe0
callq 0x4340
movq %rax, -0x970(%rbp)
jmp 0x5f1a
movq -0x970(%rbp), %rdi
leaq 0x1d483(%rip), %rsi     # 0x233ab
callq 0x4340
movq %rax, -0x978(%rbp)
jmp 0x5f36
movq -0x978(%rbp), %rdi
leaq 0x2f4a4(%rip), %rsi     # 0x353e8
callq 0x4310
movq %rax, -0x980(%rbp)
jmp 0x5f52
movq -0x980(%rbp), %rdi
leaq 0x1d225(%rip), %rsi     # 0x23185
callq 0x4340
movq %rax, -0x988(%rbp)
jmp 0x5f6e
movq -0x988(%rbp), %rdi
movq -0x8e0(%rbp), %rax
movl 0x10(%rax), %esi
callq 0x4660
movq %rax, -0x990(%rbp)
jmp 0x5f8d
movq -0x990(%rbp), %rdi
leaq 0x1d410(%rip), %rsi     # 0x233ab
callq 0x4340
movq %rax, -0x998(%rbp)
jmp 0x5fa9
movq -0x8e0(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0x998(%rbp), %rdi
movq %rax, %rsi
callq 0x4340
movq %rax, -0x9a0(%rbp)
jmp 0x5fd1
movq -0x9a0(%rbp), %rdi
movq 0x2efa9(%rip), %rsi     # 0x34f88
callq 0x4380
jmp 0x5fe6
movl $0x1, -0x4(%rbp)
callq 0x4610
jmp 0x60dc
movl -0x944(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x60e8
movq -0x18(%rbp), %rdi
callq 0x4150
movq %rax, -0x8d8(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq 0x2efb8(%rip), %rdi     # 0x34fe0
callq 0x4340
movq %rax, -0x9a8(%rbp)
jmp 0x6036
movq -0x9a8(%rbp), %rdi
leaq 0x1d367(%rip), %rsi     # 0x233ab
callq 0x4340
movq %rax, -0x9b0(%rbp)
jmp 0x6052
movq -0x8d8(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0x9b0(%rbp), %rdi
movq %rax, %rsi
callq 0x4340
movq %rax, -0x9b8(%rbp)
jmp 0x607a
movq -0x9b8(%rbp), %rdi
movq 0x2ef00(%rip), %rsi     # 0x34f88
callq 0x4380
jmp 0x608f
movl $0x1, -0x4(%rbp)
callq 0x4610
jmp 0x60dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x4610
jmp 0x60b0
jmp 0x60e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x4610
jmp 0x60c5
jmp 0x60e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x4610
jmp 0x60da
jmp 0x60e8
movl -0x4(%rbp), %eax
addq $0x9c0, %rsp            # imm = 0x9C0
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x4670
movq %rax, %rdi
callq 0x6490
nopl (%rax)