// File: /workspace/github_c_makefile_star2_O3/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
movups 0x3542(%rip), %xmm0     # 0x9de0
movaps %xmm0, 0x40(%rsp)
movups 0x3526(%rip), %xmm0     # 0x9dd0
movaps %xmm0, 0x30(%rsp)
movups 0x350a(%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, 0x37fa(%rip)      # 0xa0d0
leaq 0x8(%rax), %r14
leal -0x1(%rdi), %r9d
movq 0x8(%rax), %r10
testq %r10, %r10
je 0x69de
movl $0x100, %ecx            # imm = 0x100
movq %r14, %rdx
movl %r9d, %r8d
cmpb $0x2d, (%r10)
jne 0x69c9
leaq 0x1(%r10), %r9
movzbl 0x1(%r10), %r11d
cmpl $0x2d, %r11d
je 0x6919
testl %r11d, %r11d
jne 0x6940
jmp 0x69c9
cmpb $0x0, 0x2(%r10)
jne 0x6940
jmp 0x69d1
orq $0x80, %rcx
jmp 0x6938
orq $0x10, %rcx
jmp 0x6938
orq $0x2, %rcx
movq %rcx, 0x8(%rsp)
incq %r9
movq %r9, (%rdx)
movb (%r9), %dil
movzbl %dil, %eax
cmpl $0x59, %eax
jle 0x6968
cmpl $0x63, %eax
jg 0x698b
cmpl $0x5a, %eax
je 0x692e
cmpl $0x62, %eax
jne 0x6a3d
orq $0x8, %rcx
jmp 0x6938
leal -0x31(%rax), %r10d
cmpl $0x2, %r10d
jae 0x699f
andq $-0x61, %rcx
xorl %eax, %eax
cmpb $0x31, %dil
setne %al
shll $0x5, %eax
addq %rax, %rcx
addq $0x20, %rcx
jmp 0x6938
cmpl $0x64, %eax
je 0x6934
cmpl $0x77, %eax
jne 0x6a3d
orq $0x4, %rcx
jmp 0x6938
cmpl $0x42, %eax
je 0x6925
testl %eax, %eax
jne 0x6a3d
leaq 0x8(%rdx), %r14
leal -0x1(%r8), %r9d
movq 0x8(%rdx), %r10
movl %r8d, %edi
movq %rdx, %rax
testq %r10, %r10
jne 0x68f0
jmp 0x69de
movq %rdx, %r14
movl %r8d, %r9d
jmp 0x69de
addq $0x10, %rax
addl $-0x2, %edi
movq %rax, %r14
movl %edi, %r9d
cmpl $0x2, %r9d
jne 0x6a3d
movq (%r14), %rsi
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
callq 0x67d1
movq 0x8(%r14), %rsi
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x67d1
movl $0x0, 0x36b9(%rip)      # 0xa0c8
leaq 0x8(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x10(%rsp), %r8
movq %rbx, %rdi
movq %r14, %rsi
callq 0x25fe
xorl %eax, %eax
cmpl $0x0, 0x3696(%rip)      # 0xa0c8
setne %al
addq $0x78, %rsp
popq %rbx
popq %r14
retq
leaq 0x748(%rip), %rdi       # 0x718c
xorl %eax, %eax
callq 0x6630