// File: evincarofautumn[P]protodata/main.cpp
// Function: main
int main(int argc, char** argv) try {
  using namespace std;
  auto parsed_arguments = parse_arguments(argc, argv);
  const auto inputs = move(get<0>(parsed_arguments));
  const auto output = move(get<1>(parsed_arguments));
  vector<Term> terms;
  Interpreter interpreter(*output);
  for (const auto& input : inputs) try {
    parse(*input.stream, interpreter);
  } catch (...) {
    ::throw_with_nested(runtime_error(join("In input ", input.name, ":")));
  }
} catch (const std::exception& exception) {
  report(exception);
  return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x30(%rbp), %rdi
callq 0xcba0
jmp 0xfc5b
leaq -0x30(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x10090
movq %rax, %rsi
leaq -0x58(%rbp), %rdi
callq 0xe860
movq -0x158(%rbp), %rdi
callq 0x100b0
movq %rax, %rsi
leaq -0x60(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0xe6a0
leaq -0x78(%rbp), %rdi
callq 0x100d0
movq -0x150(%rbp), %rdi
callq 0x100f0
movq %rax, -0x148(%rbp)
jmp 0xfcb4
movq -0x148(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
callq 0x5990
jmp 0xfcc9
leaq -0x58(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rdi
callq 0xfb20
movq %rax, -0xf8(%rbp)
movq -0xf0(%rbp), %rdi
callq 0xfb50
movq %rax, -0x100(%rbp)
leaq -0xf8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x10120
testb $0x1, %al
jne 0xfd16
jmp 0xfe66
leaq -0xf8(%rbp), %rdi
callq 0x10160
movq %rax, -0x108(%rbp)
movq -0x108(%rbp), %rdi
addq $0x8, %rdi
callq 0x10180
movq %rax, -0x160(%rbp)
jmp 0xfd42
movq -0x160(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x10c30
jmp 0xfd57
jmp 0xfdfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xfec8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xfea4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movq -0x38(%rbp), %rdi
callq 0x4110
movq -0x108(%rbp), %rdx
leaq 0xa89f(%rip), %rsi      # 0x1a640
leaq 0xa8a2(%rip), %rcx      # 0x1a64a
leaq -0x138(%rbp), %rdi
callq 0x10210
jmp 0xfdb6
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x4470
jmp 0xfdcb
leaq -0x118(%rbp), %rdi
callq 0x101b0
jmp 0xfdd9
leaq -0x118(%rbp), %rdi
callq 0x4568
leaq -0x138(%rbp), %rdi
callq 0x41a0
callq 0x4490
jmp 0xfdf8
jmp 0xfdfa
jmp 0xfdfc
leaq -0xf8(%rbp), %rdi
callq 0x102c0
jmp 0xfcfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xfe5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xfe41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x4568
leaq -0x138(%rbp), %rdi
callq 0x41a0
jmp 0xfe5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0xfe98
callq 0x4490
jmp 0xfe64
jmp 0xfe98
leaq -0xe8(%rbp), %rdi
callq 0x102e0
leaq -0x78(%rbp), %rdi
callq 0x10310
leaq -0x60(%rbp), %rdi
callq 0xdc30
leaq -0x58(%rbp), %rdi
callq 0xdc90
leaq -0x30(%rbp), %rdi
callq 0x10370
jmp 0xff17
leaq -0xe8(%rbp), %rdi
callq 0x102e0
leaq -0x78(%rbp), %rdi
callq 0x10310
leaq -0x60(%rbp), %rdi
callq 0xdc30
leaq -0x58(%rbp), %rdi
callq 0xdc90
leaq -0x30(%rbp), %rdi
callq 0x10370
movl -0x3c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xff23
movq -0x38(%rbp), %rdi
callq 0x4110
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rdi
xorl %esi, %esi
callq 0xff40
jmp 0xfef4
movl $0x1, -0x4(%rbp)
callq 0x4490
jmp 0xff17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
callq 0x4490
jmp 0xff15
jmp 0xff23
movl -0x4(%rbp), %eax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x44d0
movq %rax, %rdi
callq 0x6f20
nopw %cs:(%rax,%rax)