// File: /workspace/github_cpp_makefile_star2_O2/meirdev[P]HexViewer/Main.cpp
// Function: main
int main(int argc, char** argv)
{
    CLI::App app("HexViewer");

    std::string fileName;
    app.add_option("filename", fileName, "Filename")->required();

    std::string theme = "hexyl";
    app.add_option("-t,--theme", theme, "Theme");

    int offset = 0;
    app.add_option("-s,--offset", offset, "Offset");

    size_t length = 0;
    app.add_option("-l,--length", length, "Length");

    bool noColor = false;
    app.add_flag("-n,--no-colors", noColor, "No colors");

    CLI11_PARSE(app, argc, argv);

    HexViewer hexViewer;

    hexViewer.setStyle(theme, !noColor);
    hexViewer.setPrinter("default");
    hexViewer.setFile(fileName);

    hexViewer.print(offset, length);

    return 0;
}

// Assembly:
pushq %rbp
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x1387a(%rip), %rsi     # 0x1906b
leaq 0x1f0(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x6844
leaq 0x13f9e(%rip), %rsi     # 0x197a8
leaq 0x1d0(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x6844
leaq 0x210(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
leaq 0x1d0(%rsp), %rdx
callq 0x6b1c
leaq 0x1d0(%rsp), %rdi
callq 0x5180
leaq 0x1f0(%rsp), %rdi
callq 0x5180
leaq 0x80(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x13807(%rip), %rsi     # 0x19075
leaq 0x1b0(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x6844
leaq 0x137f7(%rip), %rsi     # 0x1907e
leaq 0x190(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6844
leaq 0x210(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
leaq 0x70(%rsp), %rdx
leaq 0x190(%rsp), %rcx
callq 0x6c18
movb $0x1, 0x20(%rax)
leaq 0x190(%rsp), %rdi
callq 0x5180
leaq 0x1b0(%rsp), %rdi
callq 0x5180
leaq 0x137a7(%rip), %rsi     # 0x19087
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6844
leaq 0x13797(%rip), %rsi     # 0x1908d
leaq 0x170(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6844
leaq 0x13789(%rip), %rsi     # 0x19098
leaq 0x150(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x6844
leaq 0x210(%rsp), %rdi
leaq 0x170(%rsp), %rsi
leaq 0x50(%rsp), %rdx
leaq 0x150(%rsp), %rcx
callq 0x6c18
leaq 0x150(%rsp), %rdi
callq 0x5180
leaq 0x170(%rsp), %rdi
callq 0x5180
andl $0x0, 0xc(%rsp)
leaq 0x13735(%rip), %rsi     # 0x1909e
leaq 0x130(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6844
leaq 0x13728(%rip), %rsi     # 0x190aa
leaq 0x110(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x6844
leaq 0x210(%rsp), %rdi
leaq 0x130(%rsp), %rsi
leaq 0xc(%rsp), %rdx
leaq 0x110(%rsp), %rcx
callq 0x6d4c
leaq 0x110(%rsp), %rdi
callq 0x5180
leaq 0x130(%rsp), %rdi
callq 0x5180
andq $0x0, 0x28(%rsp)
leaq 0x136d4(%rip), %rsi     # 0x190b1
leaq 0xf0(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6844
leaq 0x136c7(%rip), %rsi     # 0x190bd
leaq 0xd0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x6844
leaq 0x210(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0xd0(%rsp), %rcx
callq 0x6e80
leaq 0xd0(%rsp), %rdi
callq 0x5180
leaq 0xf0(%rsp), %rdi
callq 0x5180
movb $0x0, 0xa(%rsp)
leaq 0x13674(%rip), %rsi     # 0x190c4
leaq 0xb0(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6844
leaq 0x1366a(%rip), %rsi     # 0x190d3
leaq 0x90(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x6844
leaq 0x210(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0xa(%rsp), %rdx
leaq 0x90(%rsp), %rcx
callq 0x6fb4
leaq 0x90(%rsp), %rdi
callq 0x5180
leaq 0xb0(%rsp), %rdi
callq 0x5180
leaq 0x210(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x7138
leaq 0x10(%rsp), %rdi
callq 0x16c20
movzbl 0xa(%rsp), %edx
xorl $0x1, %edx
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x16c60
leaq 0x135ec(%rip), %rsi     # 0x190dd
leaq 0x30(%rsp), %rdi
leaq 0xb(%rsp), %rdx
callq 0x6844
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x16d20
leaq 0x30(%rsp), %rdi
callq 0x5180
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x16d5c
movl 0xc(%rsp), %esi
movq 0x28(%rsp), %rdx
leaq 0x10(%rsp), %rdi
callq 0x16da2
leaq 0x10(%rsp), %rdi
callq 0x16c2c
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
callq 0x5180
leaq 0x70(%rsp), %rdi
callq 0x5180
leaq 0x210(%rsp), %rdi
callq 0x738c
movl %ebx, %eax
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %rbp
retq
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x5180
jmp 0x5cc6
jmp 0x5cc3
jmp 0x5c6f
movq %rax, %rbx
cmpl $0x1, %edx
jne 0x5cd0
movq %rbx, %rdi
callq 0x5140
movq 0x22415(%rip), %rdx     # 0x27fc0
movq 0x22436(%rip), %rcx     # 0x27fe8
leaq 0x210(%rsp), %rdi
movq %rax, %rsi
callq 0x71c4
movl %eax, %ebx
callq 0x54d0
jmp 0x5b47
jmp 0x5c6f
movq %rax, %rbx
callq 0x54d0
jmp 0x5cd0
movq %rax, %rdi
callq 0x7380
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x5180
jmp 0x5bfd
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
jmp 0x5c68
jmp 0x5c6f
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x5180
jmp 0x5c1e
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
jmp 0x5c68
jmp 0x5c6f
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x5180
jmp 0x5c3f
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
jmp 0x5c68
jmp 0x5c6f
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0x5180
jmp 0x5c60
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0x5180
jmp 0x5cd0
movq %rax, %rbx
jmp 0x5cd0
jmp 0x5c95
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0x5180
jmp 0x5c8b
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
jmp 0x5cd5
movq %rax, %rbx
jmp 0x5cda
movq %rax, %rbx
leaq 0x1d0(%rsp), %rdi
callq 0x5180
jmp 0x5caf
movq %rax, %rbx
leaq 0x1f0(%rsp), %rdi
callq 0x5180
jmp 0x5cf1
movq %rax, %rbx
jmp 0x5cf1
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x16c2c
leaq 0x50(%rsp), %rdi
callq 0x5180
leaq 0x70(%rsp), %rdi
callq 0x5180
leaq 0x210(%rsp), %rdi
callq 0x738c
movq %rbx, %rdi
callq 0x5510
nop