// File: /workspace/github_c_makefile_star2_O1/LemonBoy[P]autobahn/main.c
// Function: main
int main (int argc, char **argv)
{
        xpparam_t param = { 0 };
        xdemitconf_t econf = { 0, 0, 0, NULL, NULL, print_hunk };
        xdemitcb_t ecb = { NULL, NULL, };

        param.flags = XDF_INDENT_HEURISTIC;

        ARGBEGIN {
        case '1':
        case '2':
                param.flags &= ~XDF_DIFF_ALGORITHM_MASK;
                param.flags |= (ARGC() == '1') ? XDF_PATIENCE_DIFF : XDF_HISTOGRAM_DIFF;
                break;
        case 'Z':
                param.flags |= XDF_IGNORE_WHITESPACE_AT_EOL;
                break;
        case 'b':
                param.flags |= XDF_IGNORE_WHITESPACE_CHANGE;
                break;
        case 'w':
                param.flags |= XDF_IGNORE_WHITESPACE;
                break;
        case 'd':
                param.flags |= XDF_NEED_MINIMAL;
                break;
        case 'B':
                param.flags |= XDF_IGNORE_BLANK_LINES;
                break;
        default:
                usage();
        } ARGEND;

        if (argc != 2)
                usage();

        mmfile_t f1, f2;
        read_mmfile(&f1, argv[0]);
        read_mmfile(&f2, argv[1]);

        seen_hunk = 0;
        xdl_diff(&f1, &f2, &param, &econf, &ecb);

        return (seen_hunk ? EXIT_FAILURE : EXIT_SUCCESS);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x78, %rsp
movq %rsi, %rax
movq $0x0, 0x8(%rsp)
movups 0x3281(%rip), %xmm0     # 0x9de0
movaps %xmm0, 0x40(%rsp)
movups 0x3265(%rip), %xmm0     # 0x9dd0
movaps %xmm0, 0x30(%rsp)
movups 0x3249(%rip), %xmm0     # 0x9dc0
movaps %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x100, 0x8(%rsp)       # imm = 0x100
movq (%rsi), %rsi
movq %rsi, 0x3531(%rip)      # 0xa0c8
movl $0x100, %ecx            # imm = 0x100
leaq 0x8(%rax), %r14
leal -0x1(%rdi), %edx
movq 0x8(%rax), %r8
testq %r8, %r8
je 0x6c8e
cmpb $0x2d, (%r8)
jne 0x6c8e
movzbl 0x1(%r8), %r9d
cmpl $0x2d, %r9d
je 0x6bcf
testl %r9d, %r9d
jne 0x6bda
jmp 0x6c8e
cmpb $0x0, 0x2(%r8)
je 0x6c7d
movq (%r14), %rax
incq %rax
movq %rax, (%r14)
movb (%rax), %r8b
movzbl %r8b, %edi
cmpl $0x59, %edi
jle 0x6c08
cmpl $0x63, %edi
jg 0x6c2c
cmpl $0x5a, %edi
je 0x6c4e
cmpl $0x62, %edi
jne 0x6cec
orq $0x8, %rcx
jmp 0x6c58
leal -0x31(%rdi), %r9d
cmpl $0x2, %r9d
jae 0x6c40
andq $-0x61, %rcx
xorl %edi, %edi
cmpb $0x31, %r8b
setne %dil
shll $0x5, %edi
addq %rdi, %rcx
addq $0x20, %rcx
jmp 0x6c58
cmpl $0x64, %edi
je 0x6c54
cmpl $0x77, %edi
jne 0x6cec
orq $0x4, %rcx
jmp 0x6c58
cmpl $0x42, %edi
jne 0x6c62
orq $0x80, %rcx
jmp 0x6c58
orq $0x10, %rcx
jmp 0x6c58
orq $0x2, %rcx
movq %rcx, 0x8(%rsp)
jmp 0x6bdd
testl %edi, %edi
jne 0x6cec
movb $0x1, %r8b
movq %r14, %rax
movl %edx, %edi
testb %r8b, %r8b
jne 0x6b9c
jmp 0x6c8e
addq $0x10, %rax
addl $-0x2, %edi
xorl %r8d, %r8d
movq %rax, %r14
movl %edi, %edx
jmp 0x6c70
cmpl $0x2, %edx
jne 0x6cec
movq (%r14), %rsi
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
callq 0x6a89
movq 0x8(%r14), %rsi
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x6a89
movl $0x0, 0x3402(%rip)      # 0xa0c0
leaq 0x8(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2662
xorl %eax, %eax
cmpl $0x0, 0x33df(%rip)      # 0xa0c0
setne %al
addq $0x78, %rsp
popq %rbx
popq %r14
retq
leaq 0x499(%rip), %rdi       # 0x718c
xorl %eax, %eax
callq 0x68e8