// File: jimmiebergmann[P]fbx-file/miniz.c
// Function: mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive*)
static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip)
{
    mz_zip_internal_state *pState = pZip->m_pState;
    const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets;
    const mz_zip_array *pCentral_dir = &pState->m_central_dir;
    mz_uint32 *pIndices;
    mz_uint32 start, end;
    const mz_uint32 size = pZip->m_total_files;

    if (size <= 1U)
        return;

    pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0);

    start = (size - 2U) >> 1U;
    for (;;)
    {
        mz_uint64 child, root = start;
        for (;;)
        {
            if ((child = (root << 1U) + 1U) >= size)
                break;
            child += (((child + 1U) < size) && (mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1U])));
            if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child]))
                break;
            MZ_SWAP_UINT32(pIndices[root], pIndices[child]);
            root = child;
        }
        if (!start)
            break;
        start--;
    }

    end = size - 1;
    while (end > 0)
    {
        mz_uint64 child, root = 0;
        MZ_SWAP_UINT32(pIndices[end], pIndices[0]);
        for (;;)
        {
            if ((child = (root << 1U) + 1U) >= end)
                break;
            child += (((child + 1U) < end) && mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1U]));
            if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child]))
                break;
            MZ_SWAP_UINT32(pIndices[root], pIndices[child]);
            root = child;
        }
        end--;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x108(%rbp)
movq -0x108(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x118(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x108(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0x134(%rbp)
cmpl $0x1, -0x134(%rbp)
ja 0x1f632
jmp 0x20182
movq -0x110(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, -0x128(%rbp)
movl -0x134(%rbp), %eax
subl $0x2, %eax
shrl %eax
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rax
shlq %rax
addq $0x1, %rax
movq %rax, -0x140(%rbp)
movl -0x134(%rbp), %ecx
cmpq %rcx, %rax
jb 0x1f687
jmp 0x1fb0f
movq -0x140(%rbp), %rcx
addq $0x1, %rcx
movl -0x134(%rbp), %eax
movl %eax, %edx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x169(%rbp)
jae 0x1f8a1
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
movq -0x128(%rbp), %rax
movq -0x140(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x128(%rbp), %rax
movq -0x140(%rbp), %rdi
movl 0x4(%rax,%rdi,4), %eax
movq %rsi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rcx
movl -0x14(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rcx
movl -0x18(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0x34(%rbp)
movq -0x30(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0x38(%rbp)
movb $0x0, -0x39(%rbp)
movb $0x0, -0x3a(%rbp)
movq -0x20(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0x20(%rbp)
movq -0x30(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x178(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x38(%rbp), %eax
jae 0x1f774
movl -0x34(%rbp), %eax
movl %eax, -0x17c(%rbp)
jmp 0x1f77d
movl -0x38(%rbp), %eax
movl %eax, -0x17c(%rbp)
movq -0x178(%rbp), %rax
movl -0x17c(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jae 0x1f85c
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x1f7ce
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x1f7ce
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x180(%rbp)
jmp 0x1f7db
movq -0x20(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x180(%rbp)
movl -0x180(%rbp), %eax
movb %al, -0x39(%rbp)
movzbl %al, %eax
movl %eax, -0x184(%rbp)
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x1f81a
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x1f81a
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x188(%rbp)
jmp 0x1f827
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x188(%rbp)
movl -0x184(%rbp), %eax
movl -0x188(%rbp), %ecx
movb %cl, -0x3a(%rbp)
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x1f83f
jmp 0x1f85c
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x1f793
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
jne 0x1f877
movl -0x34(%rbp), %eax
cmpl -0x38(%rbp), %eax
setb %al
movb %al, -0x189(%rbp)
jmp 0x1f88a
movzbl -0x39(%rbp), %eax
movzbl -0x3a(%rbp), %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x189(%rbp)
movb -0x189(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x169(%rbp)
movb -0x169(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
addq -0x140(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
movq -0x128(%rbp), %rax
movq -0x148(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x128(%rbp), %rax
movq -0x140(%rbp), %rdi
movl (%rax,%rdi,4), %eax
movq %rsi, -0x48(%rbp)
movq %rdx, -0x50(%rbp)
movl %ecx, -0x54(%rbp)
movl %eax, -0x58(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x50(%rbp), %rcx
movq (%rcx), %rcx
movl -0x54(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x50(%rbp), %rcx
movq (%rcx), %rcx
movl -0x58(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x60(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0x74(%rbp)
movq -0x70(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0x78(%rbp)
movb $0x0, -0x79(%rbp)
movb $0x0, -0x7a(%rbp)
movq -0x60(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0x60(%rbp)
movq -0x70(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0x70(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x198(%rbp)
movl -0x74(%rbp), %eax
cmpl -0x78(%rbp), %eax
jae 0x1f982
movl -0x74(%rbp), %eax
movl %eax, -0x19c(%rbp)
jmp 0x1f98b
movl -0x78(%rbp), %eax
movl %eax, -0x19c(%rbp)
movq -0x198(%rbp), %rax
movl -0x19c(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x1fa6a
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x1f9dc
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x1f9dc
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x1a0(%rbp)
jmp 0x1f9e9
movq -0x60(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x1a0(%rbp)
movl -0x1a0(%rbp), %eax
movb %al, -0x79(%rbp)
movzbl %al, %eax
movl %eax, -0x1a4(%rbp)
movq -0x70(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x1fa28
movq -0x70(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x1fa28
movq -0x70(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x1a8(%rbp)
jmp 0x1fa35
movq -0x70(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x1a8(%rbp)
movl -0x1a4(%rbp), %eax
movl -0x1a8(%rbp), %ecx
movb %cl, -0x7a(%rbp)
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x1fa4d
jmp 0x1fa6a
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x1f9a1
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jne 0x1fa85
movl -0x74(%rbp), %eax
cmpl -0x78(%rbp), %eax
setb %al
movb %al, -0x1a9(%rbp)
jmp 0x1fa98
movzbl -0x79(%rbp), %eax
movzbl -0x7a(%rbp), %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x1a9(%rbp)
movb -0x1a9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x1faaa
jmp 0x1fb0f
jmp 0x1faac
movq -0x128(%rbp), %rax
movq -0x148(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x14c(%rbp)
movq -0x128(%rbp), %rax
movq -0x140(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq -0x128(%rbp), %rax
movq -0x148(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x14c(%rbp), %edx
movq -0x128(%rbp), %rax
movq -0x140(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x140(%rbp), %rax
movq %rax, -0x148(%rbp)
jmp 0x1f662
cmpl $0x0, -0x12c(%rbp)
jne 0x1fb1a
jmp 0x1fb2e
movl -0x12c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x12c(%rbp)
jmp 0x1f655
movl -0x134(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x130(%rbp)
cmpl $0x0, -0x130(%rbp)
jbe 0x20182
movq $0x0, -0x160(%rbp)
movq -0x128(%rbp), %rax
movl -0x130(%rbp), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x164(%rbp)
movq -0x128(%rbp), %rax
movl (%rax), %edx
movq -0x128(%rbp), %rax
movl -0x130(%rbp), %ecx
movl %edx, (%rax,%rcx,4)
movl -0x164(%rbp), %ecx
movq -0x128(%rbp), %rax
movl %ecx, (%rax)
jmp 0x1fb95
movq -0x160(%rbp), %rax
shlq %rax
addq $0x1, %rax
movq %rax, -0x158(%rbp)
movl -0x130(%rbp), %ecx
cmpq %rcx, %rax
jb 0x1fbba
jmp 0x2016e
movq -0x158(%rbp), %rcx
addq $0x1, %rcx
movl -0x130(%rbp), %eax
movl %eax, %edx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, -0x1aa(%rbp)
jae 0x1fe6a
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
movq -0x128(%rbp), %rax
movq -0x158(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x128(%rbp), %rax
movq -0x158(%rbp), %rdi
movl 0x4(%rax,%rdi,4), %eax
movq %rsi, -0x88(%rbp)
movq %rdx, -0x90(%rbp)
movl %ecx, -0x94(%rbp)
movl %eax, -0x98(%rbp)
movq -0x88(%rbp), %rax
movq (%rax), %rax
movq -0x90(%rbp), %rcx
movq (%rcx), %rcx
movl -0x94(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
movq -0x88(%rbp), %rax
movq (%rax), %rax
movq -0x90(%rbp), %rcx
movq (%rcx), %rcx
movl -0x98(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0xb4(%rbp)
movq -0xb0(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0xb8(%rbp)
movb $0x0, -0xb9(%rbp)
movb $0x0, -0xba(%rbp)
movq -0xa0(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0xa0(%rbp)
movq -0xb0(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0xb8(%rbp), %eax
jae 0x1fcf5
movl -0xb4(%rbp), %eax
movl %eax, -0x1bc(%rbp)
jmp 0x1fd01
movl -0xb8(%rbp), %eax
movl %eax, -0x1bc(%rbp)
movq -0x1b8(%rbp), %rax
movl -0x1bc(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rax
cmpq -0xa8(%rbp), %rax
jae 0x1fe13
movq -0xa0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x1fd64
movq -0xa0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x1fd64
movq -0xa0(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x1c0(%rbp)
jmp 0x1fd74
movq -0xa0(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x1c0(%rbp)
movl -0x1c0(%rbp), %eax
movb %al, -0xb9(%rbp)
movzbl %al, %eax
movl %eax, -0x1c4(%rbp)
movq -0xb0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x1fdbf
movq -0xb0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x1fdbf
movq -0xb0(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x1c8(%rbp)
jmp 0x1fdcf
movq -0xb0(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x1c8(%rbp)
movl -0x1c4(%rbp), %eax
movl -0x1c8(%rbp), %ecx
movb %cl, -0xba(%rbp)
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x1fdea
jmp 0x1fe13
movq -0xa0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa0(%rbp)
movq -0xb0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb0(%rbp)
jmp 0x1fd1a
movq -0xa0(%rbp), %rax
cmpq -0xa8(%rbp), %rax
jne 0x1fe3a
movl -0xb4(%rbp), %eax
cmpl -0xb8(%rbp), %eax
setb %al
movb %al, -0x1c9(%rbp)
jmp 0x1fe53
movzbl -0xb9(%rbp), %eax
movzbl -0xba(%rbp), %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x1c9(%rbp)
movb -0x1c9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x1aa(%rbp)
movb -0x1aa(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
addq -0x158(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
movq -0x128(%rbp), %rax
movq -0x160(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x128(%rbp), %rax
movq -0x158(%rbp), %rdi
movl (%rax,%rdi,4), %eax
movq %rsi, -0xc8(%rbp)
movq %rdx, -0xd0(%rbp)
movl %ecx, -0xd4(%rbp)
movl %eax, -0xd8(%rbp)
movq -0xc8(%rbp), %rax
movq (%rax), %rax
movq -0xd0(%rbp), %rcx
movq (%rcx), %rcx
movl -0xd4(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0xe0(%rbp)
movq -0xc8(%rbp), %rax
movq (%rax), %rax
movq -0xd0(%rbp), %rcx
movq (%rcx), %rcx
movl -0xd8(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
addq %rcx, %rax
movq %rax, -0xf0(%rbp)
movq -0xe0(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0xf4(%rbp)
movq -0xf0(%rbp), %rax
movzwl 0x1c(%rax), %eax
movl %eax, -0xf8(%rbp)
movb $0x0, -0xf9(%rbp)
movb $0x0, -0xfa(%rbp)
movq -0xe0(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0xe0(%rbp)
movq -0xf0(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0xf0(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movl -0xf4(%rbp), %eax
cmpl -0xf8(%rbp), %eax
jae 0x1ff99
movl -0xf4(%rbp), %eax
movl %eax, -0x1dc(%rbp)
jmp 0x1ffa5
movl -0xf8(%rbp), %eax
movl %eax, -0x1dc(%rbp)
movq -0x1d8(%rbp), %rax
movl -0x1dc(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rax
cmpq -0xe8(%rbp), %rax
jae 0x200b7
movq -0xe0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x20008
movq -0xe0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x20008
movq -0xe0(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x1e0(%rbp)
jmp 0x20018
movq -0xe0(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x1e0(%rbp)
movl -0x1e0(%rbp), %eax
movb %al, -0xf9(%rbp)
movzbl %al, %eax
movl %eax, -0x1e4(%rbp)
movq -0xf0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x41, %eax
jl 0x20063
movq -0xf0(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x5a, %eax
jg 0x20063
movq -0xf0(%rbp), %rax
movzbl (%rax), %eax
subl $0x41, %eax
addl $0x61, %eax
movl %eax, -0x1e8(%rbp)
jmp 0x20073
movq -0xf0(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x1e8(%rbp)
movl -0x1e4(%rbp), %eax
movl -0x1e8(%rbp), %ecx
movb %cl, -0xfa(%rbp)
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x2008e
jmp 0x200b7
movq -0xe0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xe0(%rbp)
movq -0xf0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xf0(%rbp)
jmp 0x1ffbe
movq -0xe0(%rbp), %rax
cmpq -0xe8(%rbp), %rax
jne 0x200de
movl -0xf4(%rbp), %eax
cmpl -0xf8(%rbp), %eax
setb %al
movb %al, -0x1e9(%rbp)
jmp 0x200f7
movzbl -0xf9(%rbp), %eax
movzbl -0xfa(%rbp), %ecx
cmpl %ecx, %eax
setl %al
movb %al, -0x1e9(%rbp)
movb -0x1e9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x20109
jmp 0x2016e
jmp 0x2010b
movq -0x128(%rbp), %rax
movq -0x160(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x168(%rbp)
movq -0x128(%rbp), %rax
movq -0x158(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq -0x128(%rbp), %rax
movq -0x160(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x168(%rbp), %edx
movq -0x128(%rbp), %rax
movq -0x158(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x158(%rbp), %rax
movq %rax, -0x160(%rbp)
jmp 0x1fb95
movl -0x130(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x130(%rbp)
jmp 0x1fb3d
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopl (%rax,%rax)