// File: /workspace/github_c_makefile_star2_O0/nh13[P]ksw/src/parasail/src/striped_unwind.c
// Function: parasail_striped_unwind
int* parasail_striped_unwind(
        int lena,
        int lenb,
        parasail_result_t *result,
        void *array)
{
    int *ret = NULL;

    PARASAIL_ASSERT((result->flag & PARASAIL_FLAG_STRIPED)
            || result->flag & PARASAIL_FLAG_SCAN);

    if (result->flag & PARASAIL_FLAG_LANES_1) {
        PARASAIL_ASSERT(0 && "internal error");
    }
    else if (result->flag & PARASAIL_FLAG_LANES_2) {
        if (result->flag & PARASAIL_FLAG_BITS_8) {
            ret = parasail_striped_unwind_8(lena, lenb, 2, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_16) {
            ret = parasail_striped_unwind_16(lena, lenb, 2, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_32) {
            ret = parasail_striped_unwind_32(lena, lenb, 2, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_64) {
            ret = parasail_striped_unwind_64(lena, lenb, 2, array);
        }
        else {
            PARASAIL_ASSERT(0 && "internal error");
        }
    }
    else if (result->flag & PARASAIL_FLAG_LANES_4) {
        if (result->flag & PARASAIL_FLAG_BITS_8) {
            ret = parasail_striped_unwind_8(lena, lenb, 4, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_16) {
            ret = parasail_striped_unwind_16(lena, lenb, 4, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_32) {
            ret = parasail_striped_unwind_32(lena, lenb, 4, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_64) {
            ret = parasail_striped_unwind_64(lena, lenb, 4, array);
        }
        else {
            PARASAIL_ASSERT(0 && "internal error");
        }
    }
    else if (result->flag & PARASAIL_FLAG_LANES_8) {
        if (result->flag & PARASAIL_FLAG_BITS_8) {
            ret = parasail_striped_unwind_8(lena, lenb, 8, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_16) {
            ret = parasail_striped_unwind_16(lena, lenb, 8, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_32) {
            ret = parasail_striped_unwind_32(lena, lenb, 8, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_64) {
            ret = parasail_striped_unwind_64(lena, lenb, 8, array);
        }
        else {
            PARASAIL_ASSERT(0 && "internal error");
        }
    }
    else if (result->flag & PARASAIL_FLAG_LANES_16) {
        if (result->flag & PARASAIL_FLAG_BITS_8) {
            ret = parasail_striped_unwind_8(lena, lenb, 16, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_16) {
            ret = parasail_striped_unwind_16(lena, lenb, 16, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_32) {
            ret = parasail_striped_unwind_32(lena, lenb, 16, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_64) {
            ret = parasail_striped_unwind_64(lena, lenb, 16, array);
        }
        else {
            PARASAIL_ASSERT(0 && "internal error");
        }
    }
    else if (result->flag & PARASAIL_FLAG_LANES_32) {
        if (result->flag & PARASAIL_FLAG_BITS_8) {
            ret = parasail_striped_unwind_8(lena, lenb, 32, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_16) {
            ret = parasail_striped_unwind_16(lena, lenb, 32, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_32) {
            ret = parasail_striped_unwind_32(lena, lenb, 32, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_64) {
            ret = parasail_striped_unwind_64(lena, lenb, 32, array);
        }
        else {
            PARASAIL_ASSERT(0 && "internal error");
        }
    }
    else if (result->flag & PARASAIL_FLAG_LANES_64) {
        if (result->flag & PARASAIL_FLAG_BITS_8) {
            ret = parasail_striped_unwind_8(lena, lenb, 64, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_16) {
            ret = parasail_striped_unwind_16(lena, lenb, 64, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_32) {
            ret = parasail_striped_unwind_32(lena, lenb, 64, array);
        }
        else if (result->flag & PARASAIL_FLAG_BITS_64) {
            ret = parasail_striped_unwind_64(lena, lenb, 64, array);
        }
        else {
            PARASAIL_ASSERT(0 && "internal error");
        }
    }
    else {
        PARASAIL_ASSERT(0 && "internal error");
    }

    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0xc(%rbp)
movl %esi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x2cb823
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
jne 0x2cb823
movq 0xb567e1(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5e065(%rip), %rsi    # 0xd29866
leaq 0xa5e4a2(%rip), %rdx    # 0xd29caa
leaq 0xa5e4b3(%rip), %rcx    # 0xd29cc2
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cb825
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x1000000, %eax        # imm = 0x1000000
cmpl $0x0, %eax
je 0x2cb86b
jmp 0x2cb838
movq 0xb56799(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5e01d(%rip), %rsi    # 0xd29866
leaq 0xa5e45a(%rip), %rdx    # 0xd29caa
leaq 0xa5e4b7(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x2000000, %eax        # imm = 0x2000000
cmpl $0x0, %eax
je 0x2cb972
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x100000, %eax         # imm = 0x100000
cmpl $0x0, %eax
je 0x2cb8ae
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x2, %edx
callq 0x2cbee0
movq %rax, -0x28(%rbp)
jmp 0x2cb96d
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x200000, %eax         # imm = 0x200000
cmpl $0x0, %eax
je 0x2cb8dc
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x2, %edx
callq 0x2cbfc0
movq %rax, -0x28(%rbp)
jmp 0x2cb96b
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400000, %eax         # imm = 0x400000
cmpl $0x0, %eax
je 0x2cb907
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x2, %edx
callq 0x2cc0a0
movq %rax, -0x28(%rbp)
jmp 0x2cb969
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800000, %eax         # imm = 0x800000
cmpl $0x0, %eax
je 0x2cb932
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x2, %edx
callq 0x2cc180
movq %rax, -0x28(%rbp)
jmp 0x2cb967
jmp 0x2cb934
movq 0xb5669d(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5df21(%rip), %rsi    # 0xd29866
leaq 0xa5e35e(%rip), %rdx    # 0xd29caa
leaq 0xa5e3bb(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cb969
jmp 0x2cb96b
jmp 0x2cb96d
jmp 0x2cbecb
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x4000000, %eax        # imm = 0x4000000
cmpl $0x0, %eax
je 0x2cba79
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x100000, %eax         # imm = 0x100000
cmpl $0x0, %eax
je 0x2cb9b5
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x4, %edx
callq 0x2cbee0
movq %rax, -0x28(%rbp)
jmp 0x2cba74
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x200000, %eax         # imm = 0x200000
cmpl $0x0, %eax
je 0x2cb9e3
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x4, %edx
callq 0x2cbfc0
movq %rax, -0x28(%rbp)
jmp 0x2cba72
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400000, %eax         # imm = 0x400000
cmpl $0x0, %eax
je 0x2cba0e
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x4, %edx
callq 0x2cc0a0
movq %rax, -0x28(%rbp)
jmp 0x2cba70
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800000, %eax         # imm = 0x800000
cmpl $0x0, %eax
je 0x2cba39
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x4, %edx
callq 0x2cc180
movq %rax, -0x28(%rbp)
jmp 0x2cba6e
jmp 0x2cba3b
movq 0xb56596(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5de1a(%rip), %rsi    # 0xd29866
leaq 0xa5e257(%rip), %rdx    # 0xd29caa
leaq 0xa5e2b4(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cba70
jmp 0x2cba72
jmp 0x2cba74
jmp 0x2cbec9
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x8000000, %eax        # imm = 0x8000000
cmpl $0x0, %eax
je 0x2cbb80
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x100000, %eax         # imm = 0x100000
cmpl $0x0, %eax
je 0x2cbabc
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x8, %edx
callq 0x2cbee0
movq %rax, -0x28(%rbp)
jmp 0x2cbb7b
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x200000, %eax         # imm = 0x200000
cmpl $0x0, %eax
je 0x2cbaea
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x8, %edx
callq 0x2cbfc0
movq %rax, -0x28(%rbp)
jmp 0x2cbb79
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400000, %eax         # imm = 0x400000
cmpl $0x0, %eax
je 0x2cbb15
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x8, %edx
callq 0x2cc0a0
movq %rax, -0x28(%rbp)
jmp 0x2cbb77
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800000, %eax         # imm = 0x800000
cmpl $0x0, %eax
je 0x2cbb40
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x8, %edx
callq 0x2cc180
movq %rax, -0x28(%rbp)
jmp 0x2cbb75
jmp 0x2cbb42
movq 0xb5648f(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5dd13(%rip), %rsi    # 0xd29866
leaq 0xa5e150(%rip), %rdx    # 0xd29caa
leaq 0xa5e1ad(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cbb77
jmp 0x2cbb79
jmp 0x2cbb7b
jmp 0x2cbec7
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x10000000, %eax       # imm = 0x10000000
cmpl $0x0, %eax
je 0x2cbc87
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x100000, %eax         # imm = 0x100000
cmpl $0x0, %eax
je 0x2cbbc3
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x10, %edx
callq 0x2cbee0
movq %rax, -0x28(%rbp)
jmp 0x2cbc82
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x200000, %eax         # imm = 0x200000
cmpl $0x0, %eax
je 0x2cbbf1
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x10, %edx
callq 0x2cbfc0
movq %rax, -0x28(%rbp)
jmp 0x2cbc80
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400000, %eax         # imm = 0x400000
cmpl $0x0, %eax
je 0x2cbc1c
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x10, %edx
callq 0x2cc0a0
movq %rax, -0x28(%rbp)
jmp 0x2cbc7e
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800000, %eax         # imm = 0x800000
cmpl $0x0, %eax
je 0x2cbc47
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x10, %edx
callq 0x2cc180
movq %rax, -0x28(%rbp)
jmp 0x2cbc7c
jmp 0x2cbc49
movq 0xb56388(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5dc0c(%rip), %rsi    # 0xd29866
leaq 0xa5e049(%rip), %rdx    # 0xd29caa
leaq 0xa5e0a6(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cbc7e
jmp 0x2cbc80
jmp 0x2cbc82
jmp 0x2cbec5
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x20000000, %eax       # imm = 0x20000000
cmpl $0x0, %eax
je 0x2cbd8e
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x100000, %eax         # imm = 0x100000
cmpl $0x0, %eax
je 0x2cbcca
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x20, %edx
callq 0x2cbee0
movq %rax, -0x28(%rbp)
jmp 0x2cbd89
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x200000, %eax         # imm = 0x200000
cmpl $0x0, %eax
je 0x2cbcf8
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x20, %edx
callq 0x2cbfc0
movq %rax, -0x28(%rbp)
jmp 0x2cbd87
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400000, %eax         # imm = 0x400000
cmpl $0x0, %eax
je 0x2cbd23
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x20, %edx
callq 0x2cc0a0
movq %rax, -0x28(%rbp)
jmp 0x2cbd85
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800000, %eax         # imm = 0x800000
cmpl $0x0, %eax
je 0x2cbd4e
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x20, %edx
callq 0x2cc180
movq %rax, -0x28(%rbp)
jmp 0x2cbd83
jmp 0x2cbd50
movq 0xb56281(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5db05(%rip), %rsi    # 0xd29866
leaq 0xa5df42(%rip), %rdx    # 0xd29caa
leaq 0xa5df9f(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cbd85
jmp 0x2cbd87
jmp 0x2cbd89
jmp 0x2cbec3
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x40000000, %eax       # imm = 0x40000000
cmpl $0x0, %eax
je 0x2cbe8f
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x100000, %eax         # imm = 0x100000
cmpl $0x0, %eax
je 0x2cbdd1
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x40, %edx
callq 0x2cbee0
movq %rax, -0x28(%rbp)
jmp 0x2cbe8d
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x200000, %eax         # imm = 0x200000
cmpl $0x0, %eax
je 0x2cbdff
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x40, %edx
callq 0x2cbfc0
movq %rax, -0x28(%rbp)
jmp 0x2cbe8b
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x400000, %eax         # imm = 0x400000
cmpl $0x0, %eax
je 0x2cbe2a
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x40, %edx
callq 0x2cc0a0
movq %rax, -0x28(%rbp)
jmp 0x2cbe89
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
andl $0x800000, %eax         # imm = 0x800000
cmpl $0x0, %eax
je 0x2cbe55
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movq -0x20(%rbp), %rcx
movl $0x40, %edx
callq 0x2cc180
movq %rax, -0x28(%rbp)
jmp 0x2cbe87
jmp 0x2cbe57
movq 0xb5617a(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5d9fe(%rip), %rsi    # 0xd29866
leaq 0xa5de3b(%rip), %rdx    # 0xd29caa
leaq 0xa5de98(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cbe89
jmp 0x2cbe8b
jmp 0x2cbe8d
jmp 0x2cbec1
jmp 0x2cbe91
movq 0xb56140(%rip), %rax    # 0xe21fd8
movq (%rax), %rdi
leaq 0xa5d9c4(%rip), %rsi    # 0xd29866
leaq 0xa5de01(%rip), %rdx    # 0xd29caa
leaq 0xa5de5e(%rip), %rcx    # 0xd29d0e
movb $0x0, %al
callq 0x1f01f0
movq $0x0, -0x8(%rbp)
jmp 0x2cbed5
jmp 0x2cbec3
jmp 0x2cbec5
jmp 0x2cbec7
jmp 0x2cbec9
jmp 0x2cbecb
jmp 0x2cbecd
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop