// File: /workspace/github_cpp_makefile_star2_O2/CoinXu[P]reviser-compiler/src/main.cpp
// Function: main
int main(int args, char** argv, char** envp) {
  signal(SIGSEGV, handler);

  CommandLineInterface cli;
  cli.SetVersionInfo(REVISER_COMPILER_VERSION);

  reviser::javascript::JavaScriptGenerator js_generator;
  cli.RegisterGenerator("--js-out", &js_generator,
    "Generate JavaScript source file", "js");

  reviser::typescript::TypeScriptGenerator ts_generator;
  cli.RegisterGenerator("--ts-out", &ts_generator,
    "Generate TypeScript source file", "ts");

  return cli.Run(args, argv);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x230, %rsp            # imm = 0x230
movq %rsi, %rbx
movl %edi, %r14d
leaq -0x6c(%rip), %rsi       # 0x3a0a8
pushq $0xb
popq %rdi
callq 0x353d0
leaq -0x238(%rbp), %rdi
callq 0x380bc
leaq 0x1d26b(%rip), %rsi     # 0x5739a
leaq -0x178(%rbp), %rdi
leaq -0xf8(%rbp), %rdx
callq 0x35130
leaq -0x238(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x381cc
leaq -0x178(%rbp), %rdi
callq 0x35180
leaq -0x178(%rbp), %rdi
callq 0x4ff90
leaq 0x1d22c(%rip), %rsi     # 0x573a0
leaq -0xf8(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x35130
leaq 0x1d21e(%rip), %rsi     # 0x573a9
leaq -0x58(%rbp), %rdi
leaq -0x12(%rbp), %rdx
callq 0x35130
leaq 0x1d22a(%rip), %rsi     # 0x573c9
leaq -0x38(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x35130
leaq -0x238(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0x178(%rbp), %rdx
leaq -0x58(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x381da
leaq -0x38(%rbp), %rdi
callq 0x35180
leaq -0x58(%rbp), %rdi
callq 0x35180
leaq -0xf8(%rbp), %rdi
callq 0x35180
leaq -0xf8(%rbp), %rdi
callq 0x546a0
leaq 0x1d1cd(%rip), %rsi     # 0x573cc
leaq -0x58(%rbp), %rdi
leaq -0x12(%rbp), %rdx
callq 0x35130
leaq 0x1d1c2(%rip), %rsi     # 0x573d5
leaq -0x38(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x35130
leaq 0x1d1ce(%rip), %rsi     # 0x573f5
leaq -0x78(%rbp), %rdi
leaq -0x13(%rbp), %rdx
callq 0x35130
leaq -0x238(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
leaq -0x38(%rbp), %rcx
leaq -0x78(%rbp), %r8
callq 0x381da
leaq -0x78(%rbp), %rdi
callq 0x35180
leaq -0x38(%rbp), %rdi
callq 0x35180
leaq -0x58(%rbp), %rdi
callq 0x35180
leaq -0x238(%rbp), %rdi
movl %r14d, %esi
movq %rbx, %rdx
callq 0x3826e
movl %eax, %ebx
leaq -0xf8(%rbp), %rdi
callq 0x54712
leaq -0x178(%rbp), %rdi
callq 0x50002
leaq -0x238(%rbp), %rdi
callq 0x38182
movl %ebx, %eax
addq $0x230, %rsp            # imm = 0x230
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x3a2e0
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x35180
jmp 0x3a2c7
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0x35180
jmp 0x3a2d5
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x35180
jmp 0x3a2e3
movq %rax, %rbx
leaq -0xf8(%rbp), %rdi
callq 0x54712
jmp 0x3a323
jmp 0x3a320
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0x35180
jmp 0x3a304
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x35180
jmp 0x3a312
movq %rax, %rbx
leaq -0xf8(%rbp), %rdi
callq 0x35180
jmp 0x3a323
movq %rax, %rbx
leaq -0x178(%rbp), %rdi
callq 0x50002
leaq -0x238(%rbp), %rdi
callq 0x38182
movq %rbx, %rdi
callq 0x355f0
jmp 0x3a356
movq %rax, %rbx
leaq -0x178(%rbp), %rdi
callq 0x35180
jmp 0x3a32f
movq %rax, %rbx
jmp 0x3a32f
nop