// File: /workspace/github_c_makefile_star2_O1/nh13[P]ksw/src/parasail/src/sw_stats_striped_sse2_128_64.c
// Function: parasail_sw_stats_striped_profile_sse2_128_64
parasail_result_t* INAME(
        const parasail_profile_t * const restrict profile,
        const char * const restrict s2, const int s2Len,
        const int open, const int gap)
{
    const char *s1 = profile->s1;
    const parasail_matrix_t *matrix = profile->matrix;

    /* find the end loc first with the faster implementation */
    parasail_result_t *result = parasail_sw_striped_profile_sse2_128_64(profile, s2, s2Len, open, gap);
    if (!parasail_result_is_saturated(result)) {
#if 0
        int s1Len_new = 0;
        int s2Len_new = 0;
        char *s1_new = NULL;
        char *s2_new = NULL;
        parasail_profile_t *profile_new = NULL;
        parasail_result_t *result_new = NULL;
        int s1_begin = 0;
        int s2_begin = 0;
        int s1Len_final = 0;
        int s2Len_final = 0;
        parasail_profile_t *profile_final = NULL;
        parasail_result_t *result_final = NULL;

        /* using the end loc and the non-stats version of the function,
         * reverse the inputs and find the beg loc */
        s1Len_new = result->end_query+1;
        s2Len_new = result->end_ref+1;
        s1_new = parasail_reverse(s1, s1Len_new);
        s2_new = parasail_reverse(s2, s2Len_new);
        profile_new = parasail_profile_create_sse_128_64(
                s1_new, s1Len_new, matrix);
        profile_new->stop = result->score;
        result_new = parasail_sw_striped_profile_sse2_128_64(
                profile_new, s2_new, s2Len_new, open, gap);

        /* using both the beg and end loc, call the original stats func */
        s1_begin = s1Len_new - result_new->end_query - 1;
        s2_begin = s2Len_new - result_new->end_ref - 1;
        s1Len_final = s1Len_new - s1_begin;
        s2Len_final = s2Len_new - s2_begin;
        assert(s1_begin >= 0);
        assert(s2_begin >= 0);
        assert(s1Len_new > s1_begin);
        assert(s2Len_new > s2_begin);
        profile_final = parasail_profile_create_stats_sse_128_64(
                &s1[s1_begin], s1Len_final, matrix);
        result_final = PNAME(
                profile_final, &s2[s2_begin], s2Len_final, open, gap);

        /* clean up all the temporary profiles, sequences, and results */
        free(s1_new);
        free(s2_new);
        parasail_profile_free(profile_new);
        parasail_profile_free(profile_final);
        parasail_result_free(result);
        parasail_result_free(result_new);

        /* correct the end locations before returning */
        result_final->end_query = s1Len_new-1;
        result_final->end_ref = s2Len_new-1;
        return result_final;
#else
        int s1Len_new = 0;
        int s2Len_new = 0;
        parasail_profile_t *profile_final = NULL;
        parasail_result_t *result_final = NULL;

        /* using the end loc, call the original stats function */
        s1Len_new = result->end_query+1;
        s2Len_new = result->end_ref+1;
        profile_final = parasail_profile_create_stats_sse_128_64(
                s1, s1Len_new, matrix);
        result_final = PNAME(
                profile_final, s2, s2Len_new, open, gap);

        /* clean up all the temporary profiles, sequences, and results */
        parasail_profile_free(profile_final);
        parasail_result_free(result);

        /* correct the end locations before returning */
        result_final->end_query = s1Len_new-1;
        result_final->end_ref = s2Len_new-1;
        return result_final;
#endif
    }
    else {
        return result;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movl %r8d, %ebp
movl %ecx, %r13d
movq %rsi, %r12
movq (%rdi), %r14
movq 0x10(%rdi), %rbx
callq 0x2bb2a6
movq %rax, %r15
movq %rax, %rdi
callq 0x20a805
testl %eax, %eax
je 0x2dfd9f
movq %r15, %rax
jmp 0x2e0fe8
movl 0x4(%r15), %eax
movq %r15, 0x128(%rsp)
movl 0x8(%r15), %ecx
movq %rcx, 0xd0(%rsp)
movq %rax, 0x120(%rsp)
leal 0x1(%rax), %esi
movq %r14, %rdi
movq %rbx, %rdx
callq 0x2eb19a
testq %rax, %rax
movq %rax, 0x118(%rsp)
je 0x2e0db4
movq 0x60(%rax), %rcx
movq %rcx, 0x158(%rsp)
testq %rcx, %rcx
je 0x2e0dbb
movq 0x10(%rax), %rcx
movq %rcx, 0xf0(%rsp)
testq %rcx, %rcx
je 0x2e0dc2
movl 0x8(%rax), %ecx
testl %ecx, %ecx
jle 0x2e0dc9
testq %r12, %r12
je 0x2e0dd0
cmpl $0x0, 0xd0(%rsp)
js 0x2e0dd7
testl %r13d, %r13d
js 0x2e0dde
testl %ebp, %ebp
js 0x2e0de5
movq %rcx, 0xc0(%rsp)
movq 0x68(%rax), %rcx
movq %rcx, 0x150(%rsp)
movq 0x70(%rax), %rax
movq %rax, 0x148(%rsp)
movq 0xf0(%rsp), %rax
movslq 0x1c(%rax), %rax
movq %rax, 0xc8(%rsp)
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x209572
testq %rax, %rax
je 0x2e0fb5
movl %r13d, 0xb8(%rsp)
movq %r12, 0x140(%rsp)
movq 0xc0(%rsp), %rcx
leaq 0x1(%rcx), %rbx
movq %rbx, 0x110(%rsp)
shrq %rbx
movq %rax, 0x80(%rsp)
orl $0x2810804, 0xc(%rax)   # imm = 0x2810804
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, %r14
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, %r15
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, %r12
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x40(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, %r13
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x98(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x28(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x38(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x88(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0xb0(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0xa8(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0xa0(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x18(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x30(%rsp)
movl $0x10, %edi
movq %rbx, %rsi
callq 0x2ea474
movq %rax, 0x10(%rsp)
movl $0x10, %edi
movq %rbx, 0x90(%rsp)
movq %rbx, %rsi
callq 0x2ea474
xorl %ebx, %ebx
testq %r14, %r14
je 0x2e0fb5
testq %r15, %r15
je 0x2e0fb5
testq %r12, %r12
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq 0xb0(%rsp), %rdx
movq 0x28(%rsp), %r8
movq 0xa8(%rsp), %rsi
movq 0xa0(%rsp), %r9
je 0x2e0fb5
testq %rdi, %rdi
je 0x2e0fb5
testq %r13, %r13
movq 0x98(%rsp), %rdi
je 0x2e0fb5
testq %rdi, %rdi
je 0x2e0fb5
testq %r8, %r8
je 0x2e0fb5
testq %rcx, %rcx
je 0x2e0fb5
movq 0x88(%rsp), %rcx
testq %rcx, %rcx
je 0x2e0fb5
testq %rdx, %rdx
je 0x2e0fb5
testq %rsi, %rsi
je 0x2e0fb5
testq %r9, %r9
je 0x2e0fb5
cmpq $0x0, 0x18(%rsp)
je 0x2e0fb5
cmpq $0x0, 0x30(%rsp)
je 0x2e0fb5
cmpq $0x0, 0x10(%rsp)
je 0x2e0fb5
testq %rax, %rax
je 0x2e0fb5
movq %r15, %r10
movq %rax, 0x48(%rsp)
movq 0xd0(%rsp), %rax
incl %eax
movl %eax, 0x7c(%rsp)
movabsq $0x7fffffffffffffff, %rdi # imm = 0x7FFFFFFFFFFFFFFF
movl 0xb8(%rsp), %r15d
movd %r15d, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x1b0(%rsp)
movd %ebp, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x1a0(%rsp)
movq 0xc8(%rsp), %rax
notq %rax
addq %rdi, %rax
movq %rax, 0xc8(%rsp)
pxor %xmm0, %xmm0
movdqa %xmm0, 0x50(%rsp)
movq %r14, %rdi
movq 0x90(%rsp), %rbx
movq %rbx, %rsi
movq %r8, %rbp
movq %r10, 0xe0(%rsp)
callq 0x2ea47d
pxor %xmm0, %xmm0
movq %r12, %rdi
movq %rbx, %rsi
callq 0x2ea47d
pxor %xmm0, %xmm0
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2ea47d
pxor %xmm0, %xmm0
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x2ea47d
negl %r15d
movslq %r15d, %rax
movq %rax, 0x160(%rsp)
movq %rax, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x2ea47d
pxor %xmm0, %xmm0
movq 0xb0(%rsp), %rdi
movq %rbx, %rsi
callq 0x2ea47d
pxor %xmm0, %xmm0
movq 0xa8(%rsp), %rdi
movq %rbx, %rsi
callq 0x2ea47d
movdqa 0x315d0d(%rip), %xmm0   # 0x5f5ed0
movq 0xa0(%rsp), %rdi
movq %rbx, %rsi
callq 0x2ea47d
leal -0x1(%rbx), %eax
movl 0x7c(%rsp), %ecx
movq %rcx, 0x130(%rsp)
movq %rbx, %rdi
shlq $0x4, %rdi
shlq $0x4, %rax
movq %rax, 0x138(%rsp)
xorl %ebx, %ebx
movl $0x0, 0x4(%rsp)
movabsq $-0x4000000000000000, %rax # imm = 0xC000000000000000
movq %rax, 0x8(%rsp)
pxor %xmm0, %xmm0
movdqa %xmm0, 0x190(%rsp)
pxor %xmm3, %xmm3
movq %rdi, 0xf8(%rsp)
movq 0x48(%rsp), %r10
movq %r10, %rcx
movq 0x30(%rsp), %r9
movq %r9, %rax
movq 0x38(%rsp), %rsi
movq 0x28(%rsp), %r11
movq %r13, %r15
movq 0x40(%rsp), %rdx
movq 0xf0(%rsp), %rdi
movq 0x10(%rdi), %rdi
movq 0x140(%rsp), %r8
movzbl (%r8,%rbx), %r8d
movl (%rdi,%r8,4), %edi
imull 0x90(%rsp), %edi
movslq %edi, %r8
shlq $0x4, %r8
movq 0x158(%rsp), %rdi
leaq (%rdi,%r8), %rbp
movq 0x150(%rsp), %rdi
addq %r8, %rdi
movq %rdi, 0x170(%rsp)
addq 0x148(%rsp), %r8
movq %r8, 0x178(%rsp)
movq %rbx, 0xd8(%rsp)
leal -0x2(%rbx), %edi
movl %edi, 0xec(%rsp)
cmpl %edi, 0x4(%rsp)
cmoveq %rsi, %r10
movq %r10, 0x48(%rsp)
cmoveq %rdx, %r9
movq %r9, 0x30(%rsp)
movq %r12, %rdi
cmoveq %rcx, %rsi
movq %rsi, 0x28(%rsp)
movq %r14, %r8
movq 0x98(%rsp), %r13
cmoveq 0x10(%rsp), %r13
movq 0x138(%rsp), %rcx
leaq (%r14,%rcx), %rsi
movq %rsi, 0x168(%rsp)
movq %rdx, %r12
cmoveq %rax, %r12
movq 0xe0(%rsp), %r14
cmoveq 0x18(%rsp), %r14
movq %r11, 0x38(%rsp)
movdqa (%r11,%rcx), %xmm9
pslldq $0x8, %xmm9             # xmm9 = zero,zero,zero,zero,zero,zero,zero,zero,xmm9[0,1,2,3,4,5,6,7]
movq %r15, 0x68(%rsp)
movdqa (%r15,%rcx), %xmm12
pslldq $0x8, %xmm12            # xmm12 = zero,zero,zero,zero,zero,zero,zero,zero,xmm12[0,1,2,3,4,5,6,7]
movq %rdi, 0x40(%rsp)
movdqa (%rdi,%rcx), %xmm11
pslldq $0x8, %xmm11            # xmm11 = zero,zero,zero,zero,zero,zero,zero,zero,xmm11[0,1,2,3,4,5,6,7]
movq %r8, 0x20(%rsp)
movdqa (%r8,%rcx), %xmm0
pslldq $0x8, %xmm0             # xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7]
xorl %ecx, %ecx
movdqa 0x315b71(%rip), %xmm6   # 0x5f5ed0
pxor %xmm5, %xmm5
pxor %xmm15, %xmm15
pxor %xmm7, %xmm7
movq 0x88(%rsp), %r15
movq %r13, 0xb8(%rsp)
movq %rbp, 0x70(%rsp)
movdqa %xmm15, 0x1c0(%rsp)
paddq (%rbp,%rcx), %xmm0
movq %xmm0, %rbp
testq %rbp, %rbp
movl $0x0, %eax
cmovleq %rax, %rbp
pshufd $0xee, %xmm0, %xmm0     # xmm0 = xmm0[2,3,2,3]
movq %xmm0, %rbx
testq %rbx, %rbx
cmovleq %rax, %rbx
movq (%r15,%rcx), %rsi
movq 0x8(%r15,%rcx), %rdx
cmpq %rsi, %rbp
cmovgq %rbp, %rsi
cmpq %rdx, %rbx
cmovgq %rbx, %rdx
movq %xmm7, %r13
cmpq %r13, %rsi
movq %r13, %rax
cmovgq %rsi, %rax
pshufd $0xee, %xmm7, %xmm0     # xmm0 = xmm7[2,3,2,3]
movq %xmm0, %rdi
cmpq %rdi, %rdx
movq %rdi, %r8
cmovgq %rdx, %r8
cmpq $0x1, %rax
movl $0x0, %r11d
sbbq %r11, %r11
cmpq $0x1, %r8
movl $0x0, %r10d
sbbq %r10, %r10
xorl %r9d, %r9d
cmpq %rbp, %rax
sete %r9b
negq %r9
xorl %ebp, %ebp
cmpq %rbx, %r8
sete %bpl
negq %rbp
xorl %ebx, %ebx
cmpq %rsi, %r13
movq 0xb8(%rsp), %r13
setge %bl
negq %rbx
xorl %esi, %esi
cmpq %rdx, %rdi
movq %r11, %xmm8
movq %r10, %xmm1
movq %r9, %xmm13
movq 0xb0(%rsp), %r9
movdqa (%r9,%rcx), %xmm0
movdqa %xmm0, 0x100(%rsp)
movq %rax, %xmm2
movq %r8, %xmm4
punpcklqdq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0]
punpcklqdq %xmm1, %xmm8    # xmm8 = xmm8[0],xmm1[0]
movq %rbp, %xmm1
movq 0x70(%rsp), %rbp
punpcklqdq %xmm1, %xmm13   # xmm13 = xmm13[0],xmm1[0]
setge %sil
negq %rsi
movq %rbx, %xmm4
movq %rsi, %xmm1
punpcklqdq %xmm1, %xmm4    # xmm4 = xmm4[0],xmm1[0]
movdqa %xmm4, %xmm1
pandn %xmm0, %xmm1
movdqa %xmm4, %xmm10
pand %xmm15, %xmm10
por %xmm1, %xmm10
movdqa %xmm13, %xmm0
pandn %xmm10, %xmm0
movdqa (%r15,%rcx), %xmm1
movq 0xa8(%rsp), %r10
movdqa (%r10,%rcx), %xmm15
movq 0xa0(%rsp), %r11
movdqa (%r11,%rcx), %xmm14
movdqa %xmm2, (%r14,%rcx)
movq 0x170(%rsp), %rdx
paddq (%rdx,%rcx), %xmm11
pand %xmm13, %xmm11
por %xmm0, %xmm11
movdqa %xmm8, %xmm10
pandn %xmm11, %xmm10
movdqa %xmm4, %xmm0
pandn %xmm15, %xmm0
movdqa %xmm4, %xmm11
pand %xmm5, %xmm11
por %xmm0, %xmm11
movdqa %xmm13, %xmm0
pandn %xmm11, %xmm0
movdqa %xmm10, (%r12,%rcx)
movq 0x178(%rsp), %rdx
paddq (%rdx,%rcx), %xmm12
pand %xmm13, %xmm12
por %xmm0, %xmm12
movdqa %xmm8, %xmm11
pandn %xmm12, %xmm11
movdqa %xmm4, %xmm0
pandn %xmm14, %xmm0
pand %xmm6, %xmm4
por %xmm0, %xmm4
pcmpeqd %xmm12, %xmm12
psubq %xmm12, %xmm9
pand %xmm13, %xmm9
pandn %xmm4, %xmm13
por %xmm13, %xmm9
movdqa %xmm11, (%r13,%rcx)
pandn %xmm9, %xmm8
movq 0x28(%rsp), %rdx
movdqa %xmm8, (%rdx,%rcx)
movdqa 0x50(%rsp), %xmm0
movq %xmm0, %rdx
movq %xmm10, %rsi
cmpq %rsi, %rdx
cmovgq %rdx, %rsi
pshufd $0xee, %xmm0, %xmm0     # xmm0 = xmm0[2,3,2,3]
movq %xmm0, %rdx
pshufd $0xee, %xmm10, %xmm0    # xmm0 = xmm10[2,3,2,3]
movq %xmm0, %rdi
cmpq %rdi, %rdx
cmovgq %rdx, %rdi
movq %xmm11, %rdx
cmpq %rdx, %rsi
cmovleq %rdx, %rsi
pshufd $0xee, %xmm11, %xmm0    # xmm0 = xmm11[2,3,2,3]
movq %xmm0, %rdx
cmpq %rdx, %rdi
cmovleq %rdx, %rdi
movq %xmm8, %rdx
cmpq %rdx, %rsi
cmovleq %rdx, %rsi
pshufd $0xee, %xmm8, %xmm0     # xmm0 = xmm8[2,3,2,3]
movq %xmm0, %rdx
cmpq %rdx, %rdi
cmovleq %rdx, %rdi
movq %rsi, %xmm4
movq %rdi, %xmm0
punpcklqdq %xmm0, %xmm4    # xmm4 = xmm4[0],xmm0[0]
movdqa %xmm4, 0x50(%rsp)
movq %xmm3, %rdx
cmpq %rdx, %rax
cmovleq %rdx, %rax
pshufd $0xee, %xmm3, %xmm0     # xmm0 = xmm3[2,3,2,3]
movq %xmm0, %rdx
cmpq %rdx, %r8
cmovleq %rdx, %r8
movq %rax, %xmm3
movq %r8, %xmm0
punpcklqdq %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0]
psubq 0x1b0(%rsp), %xmm2
movdqa 0x1a0(%rsp), %xmm13
psubq %xmm13, %xmm1
movq %xmm2, %rdx
movq %xmm1, %rdi
xorl %esi, %esi
cmpq %rdi, %rdx
cmovgq %rdx, %rdi
pshufd $0xee, %xmm2, %xmm0     # xmm0 = xmm2[2,3,2,3]
movq %xmm0, %rax
pshufd $0xee, %xmm1, %xmm0     # xmm0 = xmm1[2,3,2,3]
movq %xmm0, %r8
setg %sil
negq %rsi
movq %rdi, %xmm4
xorl %edi, %edi
cmpq %r8, %rax
cmovgq %rax, %r8
movq %r8, %xmm0
punpcklqdq %xmm0, %xmm4    # xmm4 = xmm4[0],xmm0[0]
setg %dil
negq %rdi
movq %rsi, %xmm0
movq %rdi, %xmm1
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movdqa %xmm0, %xmm2
pandn 0x100(%rsp), %xmm2
movdqa %xmm0, %xmm1
pand %xmm10, %xmm1
por %xmm2, %xmm1
movdqa %xmm0, %xmm9
pandn %xmm15, %xmm9
movdqa %xmm0, %xmm2
pand %xmm11, %xmm2
por %xmm9, %xmm2
psubq %xmm12, %xmm14
psubq %xmm12, %xmm8
movdqa %xmm8, %xmm9
pand %xmm0, %xmm9
pandn %xmm14, %xmm0
por %xmm9, %xmm0
movdqa %xmm4, (%r15,%rcx)
psubq %xmm13, %xmm7
movq %xmm7, %rsi
pshufd $0xee, %xmm7, %xmm4     # xmm4 = xmm7[2,3,2,3]
movq %xmm4, %rdi
xorl %r8d, %r8d
cmpq %rsi, %rdx
cmovgq %rdx, %rsi
setg %r8b
negq %r8
xorl %edx, %edx
cmpq %rdi, %rax
cmovgq %rax, %rdi
movdqa %xmm1, (%r9,%rcx)
movq %rsi, %xmm7
movdqa %xmm2, (%r10,%rcx)
movq %rdi, %xmm1
movdqa %xmm0, (%r11,%rcx)
movq %r8, %xmm0
punpcklqdq %xmm1, %xmm7    # xmm7 = xmm7[0],xmm1[0]
setg %dl
negq %rdx
movq %rdx, %xmm1
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movdqa %xmm0, %xmm1
pandn 0x1c0(%rsp), %xmm1
pand %xmm0, %xmm10
movdqa %xmm10, %xmm15
por %xmm1, %xmm15
movdqa %xmm0, %xmm1
pandn %xmm5, %xmm1
pand %xmm0, %xmm11
movdqa %xmm11, %xmm5
por %xmm1, %xmm5
psubq %xmm12, %xmm6
pand %xmm0, %xmm8
pandn %xmm6, %xmm0
movdqa %xmm0, %xmm6
por %xmm8, %xmm6
movq 0x20(%rsp), %rax
movdqa (%rax,%rcx), %xmm0
movq 0x40(%rsp), %rax
movdqa (%rax,%rcx), %xmm11
movq 0x68(%rsp), %rax
movdqa (%rax,%rcx), %xmm12
movq 0x38(%rsp), %rax
movdqa (%rax,%rcx), %xmm9
addq $0x10, %rcx
cmpq %rcx, 0xf8(%rsp)
jne 0x2e0381
movl 0xec(%rsp), %eax
cmpl %eax, 0x4(%rsp)
movq 0x10(%rsp), %rax
cmoveq 0x98(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
cmoveq 0xe0(%rsp), %rax
movq %rax, 0x18(%rsp)
xorl %edx, %edx
movdqa 0x1a0(%rsp), %xmm11
pcmpeqd %xmm12, %xmm12
movq 0x3158cc(%rip), %xmm14  # 0x5f6100
movdqa 0x50(%rsp), %xmm4
movq %r14, 0x188(%rsp)
movq %r12, 0x180(%rsp)
movq %rdx, 0x100(%rsp)
movdqa %xmm14, %xmm0
punpcklqdq %xmm6, %xmm0    # xmm0 = xmm0[0],xmm6[0]
pslldq $0x8, %xmm5             # xmm5 = zero,zero,zero,zero,zero,zero,zero,zero,xmm5[0,1,2,3,4,5,6,7]
pslldq $0x8, %xmm15            # xmm15 = zero,zero,zero,zero,zero,zero,zero,zero,xmm15[0,1,2,3,4,5,6,7]
movq 0x160(%rsp), %xmm2
punpcklqdq %xmm7, %xmm2    # xmm2 = xmm2[0],xmm7[0]
movq 0x168(%rsp), %rax
movdqa (%rax), %xmm1
pslldq $0x8, %xmm1             # xmm1 = zero,zero,zero,zero,zero,zero,zero,zero,xmm1[0,1,2,3,4,5,6,7]
xorl %r8d, %r8d
movdqa %xmm0, %xmm6
movdqa %xmm2, %xmm7
paddq (%rbp,%r8), %xmm1
movq %xmm1, %r11
testq %r11, %r11
movl $0x0, %eax
cmovleq %rax, %r11
pshufd $0xee, %xmm1, %xmm0     # xmm0 = xmm1[2,3,2,3]
movq %xmm0, %rbp
testq %rbp, %rbp
cmovleq %rax, %rbp
movq %xmm7, %rdi
movq (%r14,%r8), %r9
movq 0x8(%r14,%r8), %rdx
cmpq %rdi, %r9
movq %rdi, %rax
cmovgq %r9, %rax
pshufd $0xee, %xmm7, %xmm0     # xmm0 = xmm7[2,3,2,3]
movq %xmm0, %rsi
cmpq %rsi, %rdx
movq %rsi, %rcx
cmovgq %rdx, %rcx
movq %rax, %xmm2
movq %rcx, %xmm0
punpcklqdq %xmm0, %xmm2    # xmm2 = xmm2[0],xmm0[0]
movdqa %xmm2, (%r14,%r8)
xorl %r10d, %r10d
movq %r11, 0x50(%rsp)
cmpq %r11, %rax
sete %r10b
negq %r10
xorl %r11d, %r11d
cmpq %rbp, %rcx
sete %r11b
negq %r11
movq %r10, %xmm8
movq %r11, %xmm0
punpcklqdq %xmm0, %xmm8    # xmm8 = xmm8[0],xmm0[0]
xorl %r10d, %r10d
cmpq %r9, %rdi
setge %r10b
negq %r10
xorl %edi, %edi
cmpq %rdx, %rsi
setge %dil
negq %rdi
movq %r10, %xmm0
movq %rdi, %xmm1
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
pandn %xmm0, %xmm8
movdqa %xmm8, %xmm0
pandn (%r12,%r8), %xmm0
movdqa %xmm8, %xmm9
pand %xmm15, %xmm9
por %xmm0, %xmm9
movdqa %xmm9, (%r12,%r8)
movdqa %xmm8, %xmm0
pandn (%r13,%r8), %xmm0
movdqa %xmm8, %xmm10
pand %xmm5, %xmm10
por %xmm0, %xmm10
movdqa %xmm10, (%r13,%r8)
movdqa %xmm8, %xmm0
movq 0x28(%rsp), %rbx
pandn (%rbx,%r8), %xmm0
pand %xmm6, %xmm8
por %xmm0, %xmm8
movq %xmm4, %rdx
movq %xmm9, %r11
cmpq %r11, %rdx
cmovgq %rdx, %r11
pshufd $0xee, %xmm4, %xmm0     # xmm0 = xmm4[2,3,2,3]
movq %xmm0, %rdx
pshufd $0xee, %xmm9, %xmm0     # xmm0 = xmm9[2,3,2,3]
movq %xmm0, %r10
cmpq %r10, %rdx
cmovgq %rdx, %r10
movq %xmm10, %rdx
cmpq %rdx, %r11
cmovleq %rdx, %r11
pshufd $0xee, %xmm10, %xmm0    # xmm0 = xmm10[2,3,2,3]
movq %xmm0, %rdx
cmpq %rdx, %r10
cmovleq %rdx, %r10
movq %xmm8, %rdx
cmpq %rdx, %r11
cmovleq %rdx, %r11
pshufd $0xee, %xmm8, %xmm0     # xmm0 = xmm8[2,3,2,3]
movq %xmm0, %rdx
cmpq %rdx, %r10
cmovleq %rdx, %r10
movq %xmm3, %rdx
cmpq %rdx, %rax
cmovleq %rdx, %rax
pshufd $0xee, %xmm3, %xmm0     # xmm0 = xmm3[2,3,2,3]
movq %xmm0, %rdx
cmpq %rdx, %rcx
cmovleq %rdx, %rcx
psubq 0x1b0(%rsp), %xmm2
movdqa %xmm7, %xmm3
psubq %xmm11, %xmm3
movq %xmm3, %rdi
movq %xmm2, %r13
pshufd $0xee, %xmm3, %xmm0     # xmm0 = xmm3[2,3,2,3]
movq %xmm0, %rdx
pshufd $0xee, %xmm2, %xmm0     # xmm0 = xmm2[2,3,2,3]
movq %xmm0, %rsi
xorl %r14d, %r14d
xorl %r9d, %r9d
cmpq %rsi, %rdx
setg %r14b
sete %r9b
xorl %r15d, %r15d
xorl %r12d, %r12d
cmpq %r13, %rdi
setg %r15b
sete %r12b
negq %r15
movq %r15, %xmm0
negq %r14
movq %r14, %xmm1
negq %r12
movq %r12, %xmm2
movdqa %xmm8, (%rbx,%r8)
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
negq %r9
movq %r9, %xmm1
punpcklqdq %xmm1, %xmm2    # xmm2 = xmm2[0],xmm1[0]
xorl %r9d, %r9d
testq %rdi, %rdi
setg %r9b
negq %r9
movq %r9, %xmm1
xorl %r9d, %r9d
testq %rdx, %rdx
setg %r9b
negq %r9
movq %r9, %xmm4
punpcklqdq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0]
pand %xmm2, %xmm1
por %xmm0, %xmm1
pmovmskb %xmm1, %r9d
testl %r9d, %r9d
je 0x2e0b76
xorl %ebx, %ebx
cmpq %rdi, %r13
setg %bl
negq %rbx
xorl %edi, %edi
cmpq %rdx, %rsi
setg %dil
negq %rdi
movq %rdi, %xmm0
movq %rbx, %xmm1
punpcklqdq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0]
pand %xmm1, %xmm9
movdqa %xmm1, %xmm0
pand %xmm1, %xmm10
psubq %xmm12, %xmm8
movdqa %xmm1, %xmm2
pand %xmm1, %xmm8
pandn %xmm15, %xmm1
por %xmm1, %xmm9
pandn %xmm5, %xmm0
por %xmm0, %xmm10
psubq %xmm12, %xmm6
pandn %xmm6, %xmm2
por %xmm2, %xmm8
movq 0x20(%rsp), %rdx
movdqa (%rdx,%r8), %xmm1
xorl %edx, %edx
movdqa %xmm3, %xmm7
movdqa %xmm9, %xmm15
movdqa %xmm10, %xmm5
movdqa %xmm8, %xmm6
jmp 0x2e0b8a
movq 0x50(%rsp), %xmm1
movq %rbp, %xmm0
punpcklqdq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0]
movl $0x1e, %edx
movq %r11, %xmm4
movq %r10, %xmm0
punpcklqdq %xmm0, %xmm4    # xmm4 = xmm4[0],xmm0[0]
movq %rax, %xmm3
movq %rcx, %xmm0
punpcklqdq %xmm0, %xmm3    # xmm3 = xmm3[0],xmm0[0]
testw %r9w, %r9w
movq 0x188(%rsp), %r14
movq 0x180(%rsp), %r12
movq 0xb8(%rsp), %r13
movq 0x70(%rsp), %rbp
je 0x2e0bdd
addq $0x10, %r8
cmpq %r8, 0xf8(%rsp)
jne 0x2e088f
xorl %edx, %edx
testl %edx, %edx
jne 0x2e0bf6
movq 0x100(%rsp), %rsi
leal 0x1(%rsi), %edx
testl %esi, %esi
je 0x2e084a
jmp 0x2e0bfb
cmpl $0x1e, %edx
jne 0x2e0c76
movdqa 0x190(%rsp), %xmm0
movq %xmm0, %rdx
xorl %esi, %esi
cmpq %rdx, %rax
setg %sil
negq %rsi
pshufd $0xee, %xmm0, %xmm0     # xmm0 = xmm0[2,3,2,3]
movq %xmm0, %rdx
xorl %edi, %edi
cmpq %rdx, %rcx
setg %dil
negq %rdi
movq %rsi, %xmm0
movq %rdi, %xmm1
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
pmovmskb %xmm0, %esi
movb $0x1, %dl
testl %esi, %esi
je 0x2e0c78
cmpq %rcx, %rax
cmovgq %rax, %rcx
cmpq 0xc8(%rsp), %rcx
movq 0x20(%rsp), %rsi
movq 0xd8(%rsp), %rbx
jle 0x2e0c87
movq 0x80(%rsp), %rax
orb $0x40, 0xc(%rax)
xorl %edx, %edx
movq %rcx, 0x8(%rsp)
jmp 0x2e0ca3
xorl %edx, %edx
movq 0x20(%rsp), %rsi
movq 0xd8(%rsp), %rbx
jmp 0x2e0ca3
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x190(%rsp)
movq %rcx, 0x8(%rsp)
movl %ebx, 0x4(%rsp)
testb %dl, %dl
movq 0x68(%rsp), %rax
je 0x2e0cd9
movdqa %xmm4, 0x50(%rsp)
incq %rbx
movq %rsi, 0xe0(%rsp)
movq %rax, 0x98(%rsp)
cmpq 0x130(%rsp), %rbx
jne 0x2e0227
movl 0x7c(%rsp), %eax
movl %eax, %ebx
movabsq $0x7fffffffffffffff, %rdx # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rdx, 0x8(%rsp)
movq 0x80(%rsp), %rdi
je 0x2e0d26
xorl %eax, %eax
cmpq %rdx, %r11
sete %al
negq %rax
xorl %ecx, %ecx
cmpq %rdx, %r10
sete %cl
negq %rcx
movq %rcx, %xmm0
movq 0x80(%rsp), %rdi
movq %rax, %xmm1
punpcklqdq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0]
pmovmskb %xmm1, %eax
testl %eax, %eax
je 0x2e0d2a
orb $0x40, 0xc(%rdi)
callq 0x20a805
xorl %ecx, %ecx
testl %eax, %eax
je 0x2e0d5f
xorl %eax, %eax
xorl %r11d, %r11d
xorl %esi, %esi
movq 0x48(%rsp), %rdi
movq 0x10(%rsp), %r15
movq 0x30(%rsp), %rbp
movq 0x18(%rsp), %rdx
movq %rdx, 0x70(%rsp)
xorl %edx, %edx
xorl %r10d, %r10d
jmp 0x2e0ef2
leal -0x1(%rbx), %eax
movl 0x4(%rsp), %edx
cmpl %eax, %edx
movq 0x68(%rsp), %rax
movq 0x20(%rsp), %rcx
jne 0x2e0df1
movq 0x28(%rsp), %rdi
movq %r13, %rbx
movq %r12, 0x50(%rsp)
movq %r14, %r15
movq 0x48(%rsp), %rsi
movq %rsi, 0x28(%rsp)
movq 0x10(%rsp), %r13
movq 0x30(%rsp), %r12
movq 0x18(%rsp), %r14
movq 0xc0(%rsp), %r10
movabsq $-0x4000000000000000, %r11 # imm = 0xC000000000000000
jmp 0x2e0e58
callq 0x1a975a
jmp 0x2e0dea
callq 0x1a9734
jmp 0x2e0dea
callq 0x1a970e
jmp 0x2e0dea
callq 0x1a96e8
jmp 0x2e0dea
callq 0x1a96c2
jmp 0x2e0dea
callq 0x1a969c
jmp 0x2e0dea
callq 0x1a9676
jmp 0x2e0dea
callq 0x1a9650
xorl %ebx, %ebx
jmp 0x2e0fb5
addl $-0x2, %ebx
cmpl %ebx, %edx
movq 0xc0(%rsp), %r10
movabsq $-0x4000000000000000, %r11 # imm = 0xC000000000000000
jne 0x2e0e3f
movq 0x38(%rsp), %rdi
movq %rax, %rbx
movq 0x40(%rsp), %rax
movq %rax, 0x50(%rsp)
movq %rcx, %r15
movq 0x48(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x10(%rsp), %rax
movq 0x30(%rsp), %rcx
movq %rcx, 0x40(%rsp)
movq 0x18(%rsp), %rcx
jmp 0x2e0e58
movq 0x48(%rsp), %rdi
movq 0x10(%rsp), %rbx
movq 0x30(%rsp), %rsi
movq %rsi, 0x50(%rsp)
movq 0x18(%rsp), %r15
movq 0x8(%rsp), %rsi
movq %rcx, 0x20(%rsp)
movq %rax, 0x68(%rsp)
testl $0x7ffffffe, 0x110(%rsp) # imm = 0x7FFFFFFE
je 0x2e0ede
movq 0x90(%rsp), %rdx
andl $0x3fffffff, %edx       # imm = 0x3FFFFFFF
addl %edx, %edx
xorl %esi, %esi
movq %r11, %rax
movq %r11, %rcx
movq 0x8(%rsp), %r8
cmpq %r8, (%r15,%rsi,8)
jne 0x2e0ecc
movl %esi, %r9d
shrl %r9d
testb $0x1, %sil
movl $0x0, %r8d
cmovnel 0x90(%rsp), %r8d
addl %r9d, %r8d
cmpl %r10d, %r8d
jge 0x2e0ecc
movq 0x50(%rsp), %rax
movq (%rax,%rsi,8), %r11
movq (%rbx,%rsi,8), %rcx
movq (%rdi,%rsi,8), %rax
movl %r8d, %r10d
incq %rsi
cmpl %esi, %edx
jne 0x2e0e8c
movl 0x4(%rsp), %edx
movq 0x8(%rsp), %rsi
jmp 0x2e0ee5
xorl %ecx, %ecx
xorl %eax, %eax
xorl %r11d, %r11d
movq %r15, 0x70(%rsp)
movq 0x50(%rsp), %rbp
movq %rbx, %r15
movq 0x80(%rsp), %rbx
movl %esi, (%rbx)
movl %r10d, 0x4(%rbx)
movl %edx, 0x8(%rbx)
movq 0x10(%rbx), %rdx
movl %r11d, (%rdx)
movq 0x10(%rbx), %rdx
movl %ecx, 0x4(%rdx)
movq 0x10(%rbx), %rcx
movl %eax, 0x8(%rcx)
callq 0x2094b5
movq %r15, %rdi
callq 0x2094b5
movq %rbp, %rdi
callq 0x2094b5
movq 0x70(%rsp), %rdi
callq 0x2094b5
movq 0xa0(%rsp), %rdi
callq 0x2094b5
movq 0xa8(%rsp), %rdi
callq 0x2094b5
movq 0xb0(%rsp), %rdi
callq 0x2094b5
movq 0x88(%rsp), %rdi
callq 0x2094b5
movq 0x38(%rsp), %rdi
callq 0x2094b5
movq 0x28(%rsp), %rdi
callq 0x2094b5
movq 0x68(%rsp), %rdi
callq 0x2094b5
movq %r13, %rdi
callq 0x2094b5
movq 0x40(%rsp), %rdi
callq 0x2094b5
movq %r12, %rdi
callq 0x2094b5
movq 0x20(%rsp), %rdi
callq 0x2094b5
movq %r14, %rdi
callq 0x2094b5
movq 0x118(%rsp), %rdi
callq 0x20a624
movq 0x128(%rsp), %rdi
callq 0x209999
movq 0x120(%rsp), %rax
movl %eax, 0x4(%rbx)
movq 0xd0(%rsp), %rax
movl %eax, 0x8(%rbx)
movq %rbx, %rax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop