// File: /workspace/github_c_makefile_star2_O3/nh13[P]ksw/src/parasail/src/nw_scan_sse2_128_8.c
// Function: parasail_nw_rowcol_scan_profile_sse2_128_8
parasail_result_t* PNAME(
        const parasail_profile_t * const restrict profile,
        const char * const restrict s2, const int s2Len,
        const int open, const int gap)
{
    /* declare local variables */
    int32_t i = 0;
    int32_t j = 0;
    int32_t k = 0;
    int32_t s1Len = 0;
    int32_t end_query = 0;
    int32_t end_ref = 0;
    const parasail_matrix_t *matrix = NULL;
    int32_t segWidth = 0;
    int32_t segLen = 0;
    int32_t offset = 0;
    int32_t position = 0;
    __m128i* restrict pvP = NULL;
    __m128i* restrict pvE = NULL;
    int8_t* restrict boundary = NULL;
    __m128i* restrict pvHt = NULL;
    __m128i* restrict pvH = NULL;
    __m128i* restrict pvGapper = NULL;
    __m128i vGapO;
    __m128i vGapE;
    int8_t NEG_LIMIT = 0;
    int8_t POS_LIMIT = 0;
    __m128i vZero;
    int8_t score = 0;
    __m128i vNegLimit;
    __m128i vPosLimit;
    __m128i vSaturationCheckMin;
    __m128i vSaturationCheckMax;
    __m128i vNegInfFront;
    __m128i vSegLenXgap;
    parasail_result_t *result = NULL;

    /* validate inputs */
    PARASAIL_CHECK_NULL(profile);
    PARASAIL_CHECK_NULL(profile->profile8.score);
    PARASAIL_CHECK_NULL(profile->matrix);
    PARASAIL_CHECK_GT0(profile->s1Len);
    PARASAIL_CHECK_NULL(s2);
    PARASAIL_CHECK_GT0(s2Len);
    PARASAIL_CHECK_GE0(open);
    PARASAIL_CHECK_GE0(gap);

    /* initialize stack variables */
    i = 0;
    j = 0;
    k = 0;
    s1Len = profile->s1Len;
    end_query = s1Len-1;
    end_ref = s2Len-1;
    matrix = profile->matrix;
    segWidth = 16; /* number of values in vector unit */
    segLen = (s1Len + segWidth - 1) / segWidth;
    offset = (s1Len - 1) % segLen;
    position = (segWidth - 1) - (s1Len - 1) / segLen;
    pvP = (__m128i*)profile->profile8.score;
    vGapO = _mm_set1_epi8(open);
    vGapE = _mm_set1_epi8(gap);
    NEG_LIMIT = (-open < matrix->min ? INT8_MIN + open : INT8_MIN - matrix->min) + 1;
    POS_LIMIT = INT8_MAX - matrix->max - 1;
    vZero = _mm_setzero_si128();
    score = NEG_LIMIT;
    vNegLimit = _mm_set1_epi8(NEG_LIMIT);
    vPosLimit = _mm_set1_epi8(POS_LIMIT);
    vSaturationCheckMin = vPosLimit;
    vSaturationCheckMax = vNegLimit;
    vNegInfFront = vZero;
    vNegInfFront = _mm_insert_epi8_rpl(vNegInfFront, NEG_LIMIT, 0);
    vSegLenXgap = _mm_adds_epi8(vNegInfFront,
            _mm_slli_si128(_mm_set1_epi8(-segLen*gap), 1));

    /* initialize result */
#ifdef PARASAIL_TABLE
    result = parasail_result_new_table1(segLen*segWidth, s2Len);
#else
#ifdef PARASAIL_ROWCOL
    result = parasail_result_new_rowcol1(segLen*segWidth, s2Len);
#else
    result = parasail_result_new();
#endif
#endif
    if (!result) return NULL;

    /* set known flags */
    result->flag |= PARASAIL_FLAG_NW | PARASAIL_FLAG_SCAN
        | PARASAIL_FLAG_BITS_8 | PARASAIL_FLAG_LANES_16;
#ifdef PARASAIL_TABLE
    result->flag |= PARASAIL_FLAG_TABLE;
#endif
#ifdef PARASAIL_ROWCOL
    result->flag |= PARASAIL_FLAG_ROWCOL;
#endif

    /* initialize heap variables */
    pvE = parasail_memalign___m128i(16, segLen);
    boundary = parasail_memalign_int8_t(16, s2Len+1);
    pvHt= parasail_memalign___m128i(16, segLen);
    pvH = parasail_memalign___m128i(16, segLen);
    pvGapper = parasail_memalign___m128i(16, segLen);

    /* validate heap variables */
    if (!pvE) return NULL;
    if (!boundary) return NULL;
    if (!pvHt) return NULL;
    if (!pvH) return NULL;
    if (!pvGapper) return NULL;

    /* initialize H and E */
    {
        int32_t index = 0;
        for (i=0; i<segLen; ++i) {
            int32_t segNum = 0;
            __m128i_8_t h;
            __m128i_8_t e;
            for (segNum=0; segNum<segWidth; ++segNum) {
                int64_t tmp = -open-gap*(segNum*segLen+i);
                h.v[segNum] = tmp < INT8_MIN ? INT8_MIN : tmp;
                tmp = tmp - open;
                e.v[segNum] = tmp < INT8_MIN ? INT8_MIN : tmp;
            }
            _mm_store_si128(&pvH[index], h.m);
            _mm_store_si128(&pvE[index], e.m);
            ++index;
        }
    }

    /* initialize uppder boundary */
    {
        boundary[0] = 0;
        for (i=1; i<=s2Len; ++i) {
            int64_t tmp = -open-gap*(i-1);
            boundary[i] = tmp < INT8_MIN ? INT8_MIN : tmp;
        }
    }

    {
        __m128i vGapper = _mm_subs_epi8(vZero,vGapO);
        for (i=segLen-1; i>=0; --i) {
            _mm_store_si128(pvGapper+i, vGapper);
            vGapper = _mm_subs_epi8(vGapper, vGapE);
        }
    }

    /* outer loop over database sequence */
    for (j=0; j<s2Len; ++j) {
        __m128i vE;
        __m128i vHt;
        __m128i vF;
        __m128i vH;
        __m128i vHp;
        __m128i *pvW;
        __m128i vW;

        /* calculate E */
        /* calculate Ht */
        /* calculate F and H first pass */
        vHp = _mm_load_si128(pvH+(segLen-1));
        vHp = _mm_slli_si128(vHp, 1);
        vHp = _mm_insert_epi8_rpl(vHp, boundary[j], 0);
        pvW = pvP + matrix->mapper[(unsigned char)s2[j]]*segLen;
        vHt = _mm_subs_epi8(vNegLimit, pvGapper[0]);
        vF = vNegLimit;
        for (i=0; i<segLen; ++i) {
            vH = _mm_load_si128(pvH+i);
            vE = _mm_load_si128(pvE+i);
            vW = _mm_load_si128(pvW+i);
            vE = _mm_max_epi8_rpl(
                    _mm_subs_epi8(vE, vGapE),
                    _mm_subs_epi8(vH, vGapO));
            vHp = _mm_adds_epi8(vHp, vW);
            vF = _mm_max_epi8_rpl(vF, _mm_adds_epi8(vHt, pvGapper[i]));
            vHt = _mm_max_epi8_rpl(vE, vHp);
            _mm_store_si128(pvE+i, vE);
            _mm_store_si128(pvHt+i, vHt);
            vHp = vH;
        }

        /* pseudo prefix scan on F and H */
        vHt = _mm_slli_si128(vHt, 1);
        vHt = _mm_insert_epi8_rpl(vHt, boundary[j+1], 0);
        vF = _mm_max_epi8_rpl(vF, _mm_adds_epi8(vHt, pvGapper[0]));
        for (i=0; i<segWidth-2; ++i) {
            __m128i vFt = _mm_slli_si128(vF, 1);
            vFt = _mm_adds_epi8(vFt, vSegLenXgap);
            vF = _mm_max_epi8_rpl(vF, vFt);
        }

        /* calculate final H */
        vF = _mm_slli_si128(vF, 1);
        vF = _mm_adds_epi8(vF, vNegInfFront);
        vH = _mm_max_epi8_rpl(vHt, vF);
        for (i=0; i<segLen; ++i) {
            vHt = _mm_load_si128(pvHt+i);
            vF = _mm_max_epi8_rpl(
                    _mm_subs_epi8(vF, vGapE),
                    _mm_subs_epi8(vH, vGapO));
            vH = _mm_max_epi8_rpl(vHt, vF);
            _mm_store_si128(pvH+i, vH);
            vSaturationCheckMin = _mm_min_epi8_rpl(vSaturationCheckMin, vH);
            vSaturationCheckMax = _mm_max_epi8_rpl(vSaturationCheckMax, vH);
#ifdef PARASAIL_TABLE
            arr_store_si128(result->tables->score_table, vH, i, segLen, j, s2Len);
#endif
        } 


#ifdef PARASAIL_ROWCOL
        /* extract last value from the column */
        {
            vH = _mm_load_si128(pvH + offset);
            for (k=0; k<position; ++k) {
                vH = _mm_slli_si128(vH, 1);
            }
            result->rowcols->score_row[j] = (int8_t) _mm_extract_epi8_rpl (vH, 15);
        }
#endif
    }

#ifdef PARASAIL_ROWCOL
    for (i=0; i<segLen; ++i) {
        __m128i vH = _mm_load_si128(pvH+i);
        arr_store_col(result->rowcols->score_col, vH, i, segLen);
    }
#endif

    /* extract last value from the last column */
    {
        __m128i vH = _mm_load_si128(pvH + offset);
        for (k=0; k<position; ++k) {
            vH = _mm_slli_si128(vH, 1);
        }
        score = (int8_t) _mm_extract_epi8_rpl (vH, 15);
    }

    if (_mm_movemask_epi8(_mm_or_si128(
            _mm_cmplt_epi8(vSaturationCheckMin, vNegLimit),
            _mm_cmpgt_epi8(vSaturationCheckMax, vPosLimit)))) {
        result->flag |= PARASAIL_FLAG_SATURATED;
        score = 0;
        end_query = 0;
        end_ref = 0;
    }

    result->score = score;
    result->end_query = end_query;
    result->end_ref = end_ref;

    parasail_free(pvGapper);
    parasail_free(pvH);
    parasail_free(pvHt);
    parasail_free(boundary);
    parasail_free(pvE);

    return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rsi, 0x28(%rsp)
testq %rdi, %rdi
je 0x354968
movq 0x18(%rdi), %rax
movq %rax, 0x60(%rsp)
testq %rax, %rax
je 0x35496f
movq 0x10(%rdi), %rax
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x354976
movl 0x8(%rdi), %edi
testl %edi, %edi
jle 0x35497d
cmpq $0x0, 0x28(%rsp)
je 0x354984
movl %edx, %r13d
testl %edx, %edx
jle 0x35498b
testl %ecx, %ecx
js 0x354992
movl %r8d, %r12d
testl %r8d, %r8d
js 0x354999
leal -0x1(%rdi), %eax
addq $0xf, %rdi
movq %rdi, %r15
shrq $0x4, %r15
movl %eax, 0x1c(%rsp)
xorl %edx, %edx
divl %r15d
movl %eax, 0x18(%rsp)
movl %edx, %ebp
xorl %r14d, %r14d
movl %ecx, %esi
negl %esi
movq 0x20(%rsp), %rdx
movl 0x20(%rdx), %eax
movl %eax, %r8d
negb %r8b
movl %esi, 0x40(%rsp)
cmpl %esi, %eax
movzbl %r8b, %ebx
movl %ecx, 0x80(%rsp)
cmovgl %ecx, %ebx
movb $0x7e, %al
subb 0x1c(%rdx), %al
movb %al, 0x90(%rsp)
andl $0x7ffffff0, %edi       # imm = 0x7FFFFFF0
movl %r13d, %esi
callq 0x20ac53
testq %rax, %rax
je 0x3549a1
movl %ebp, 0x6c(%rsp)
movq %r12, 0x58(%rsp)
movq %rax, 0x30(%rsp)
orl $0x10140401, 0xc(%rax)  # imm = 0x10140401
movl $0x10, %edi
movq %r15, %rsi
callq 0x2f600c
movq %r15, %r12
movq %rax, %r15
movq %r13, 0x70(%rsp)
leal 0x1(%r13), %esi
movl $0x10, %edi
callq 0x20a620
movq %rax, %r14
movl $0x10, %edi
movq %r12, %rsi
callq 0x2f600c
movq %rax, %r13
movl $0x10, %edi
movq %r12, %rsi
callq 0x2f600c
movq %rax, %rbp
movl $0x10, %edi
movq %r12, 0x10(%rsp)
movq %r12, %rsi
callq 0x2f600c
movq %r15, %xmm0
movq %r14, 0x38(%rsp)
movq %r14, %xmm1
punpcklqdq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0]
movq %r13, %xmm1
movq %rbp, %xmm2
punpcklqdq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0]
pxor %xmm2, %xmm2
pcmpeqd %xmm2, %xmm0
pcmpeqd %xmm2, %xmm1
movdqa %xmm0, %xmm2
shufps $0xdd, %xmm1, %xmm2     # xmm2 = xmm2[1,3],xmm1[1,3]
shufps $0x88, %xmm1, %xmm0     # xmm0 = xmm0[0,2],xmm1[0,2]
andps %xmm2, %xmm0
movmskps %xmm0, %ecx
xorl %r14d, %r14d
testl %ecx, %ecx
jne 0x3549a1
testq %rax, %rax
je 0x3549a1
movq 0x70(%rsp), %rcx
decl %ecx
movl %ecx, 0x68(%rsp)
movl $0xf, %edx
subl 0x18(%rsp), %edx
movl 0x80(%rsp), %esi
movd %esi, %xmm0
movdqa %xmm0, 0xa0(%rsp)
punpcklbw %xmm0, %xmm0    # xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
pshuflw $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0,4,5,6,7]
pshufd $0x0, %xmm0, %xmm2      # xmm2 = xmm0[0,0,0,0]
movq 0x58(%rsp), %r12
movd %r12d, %xmm4
movdqa %xmm4, %xmm0
punpcklbw %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3],xmm0[4],xmm4[4],xmm0[5],xmm4[5],xmm0[6],xmm4[6],xmm0[7],xmm4[7]
pshuflw $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0,4,5,6,7]
pshufd $0x0, %xmm0, %xmm3      # xmm3 = xmm0[0,0,0,0]
addb $-0x7f, %bl
movzbl %bl, %ecx
movd %ecx, %xmm7
movdqa %xmm7, %xmm0
punpcklbw %xmm7, %xmm0    # xmm0 = xmm0[0],xmm7[0],xmm0[1],xmm7[1],xmm0[2],xmm7[2],xmm0[3],xmm7[3],xmm0[4],xmm7[4],xmm0[5],xmm7[5],xmm0[6],xmm7[6],xmm0[7],xmm7[7]
pshuflw $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0,4,5,6,7]
pshufd $0x0, %xmm0, %xmm1      # xmm1 = xmm0[0,0,0,0]
movzbl 0x90(%rsp), %ecx
movd %ecx, %xmm0
punpcklbw %xmm0, %xmm0    # xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
pshuflw $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0,4,5,6,7]
pshufd $0x0, %xmm0, %xmm6      # xmm6 = xmm0[0,0,0,0]
movq 0x10(%rsp), %r8
movl %r8d, %ecx
imull %r12d, %ecx
negb %cl
movzbl %cl, %ecx
movd %ecx, %xmm0
punpcklbw %xmm0, %xmm0    # xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
pshuflw $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0,4,5,6,7]
pshufd $0x0, %xmm0, %xmm5      # xmm5 = xmm0[0,0,0,0]
pslldq $0x1, %xmm5             # xmm5 = zero,xmm5[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
movdqa %xmm7, 0x90(%rsp)
paddsb %xmm7, %xmm5
movl %esi, %ecx
movl %r12d, %esi
movslq 0x40(%rsp), %rdi
negq %rcx
imulq %rsi, %r8
xorl %r9d, %r9d
movq $-0x80, %r10
movq %rdi, %r11
xorl %ebx, %ebx
cmpq $-0x7f, %r11
movq $-0x80, %r14
cmovgeq %r11, %r14
movb %r14b, 0xf0(%rsp,%rbx)
leaq (%rcx,%r11), %r14
cmpq $-0x7f, %r14
cmovlq %r10, %r14
movb %r14b, 0xe0(%rsp,%rbx)
incq %rbx
subq %r8, %r11
cmpq $0x10, %rbx
jne 0x353cc0
movq %r9, %r11
shlq $0x4, %r11
movaps 0xf0(%rsp), %xmm0
movaps %xmm0, (%rbp,%r11)
movdqa 0xe0(%rsp), %xmm0
movdqa %xmm0, (%r15,%r11)
incq %r9
subq %rsi, %rdi
cmpq 0x10(%rsp), %r9
jne 0x353cbb
movdqa %xmm6, 0xc0(%rsp)
movdqa %xmm1, 0xd0(%rsp)
movq 0x38(%rsp), %r14
movb $0x0, (%r14)
movq 0x70(%rsp), %rsi
movl %esi, %ecx
addl $0xf, %esi
andl $-0x10, %esi
movq %rcx, 0xb8(%rsp)
decq %rcx
movq %rcx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, 0x80(%rsp)
movd 0x40(%rsp), %xmm0
movdqa %xmm0, 0x70(%rsp)
pshufd $0x0, %xmm0, %xmm12     # xmm12 = xmm0[0,0,0,0]
pshufd $0x0, %xmm4, %xmm13     # xmm13 = xmm4[0,0,0,0]
movl %r12d, %edi
negl %edi
movl %r12d, %r8d
shll $0x4, %r8d
leal (%r12,%r12,2), %r9d
addl %r12d, %r12d
xorl %r10d, %r10d
movdqa 0x2d50fb(%rip), %xmm14  # 0x628ea0
pcmpeqd %xmm10, %xmm10
xorl %r11d, %r11d
movq %r11, %xmm0
pshufd $0x44, %xmm0, %xmm15    # xmm15 = xmm0[0,1,0,1]
movdqa %xmm15, %xmm0
por 0x2d50cb(%rip), %xmm0   # 0x628e90
movdqa 0x80(%rsp), %xmm7
pxor %xmm14, %xmm7
pxor %xmm14, %xmm0
movdqa %xmm0, %xmm1
pcmpgtd %xmm7, %xmm1
pshufd $0xa0, %xmm1, %xmm11    # xmm11 = xmm1[0,0,2,2]
pshuflw $0xe8, %xmm11, %xmm4    # xmm4 = xmm11[0,2,2,3,4,5,6,7]
pcmpeqd %xmm7, %xmm0
pshufd $0xf5, %xmm0, %xmm6     # xmm6 = xmm0[1,1,3,3]
pshuflw $0xe8, %xmm6, %xmm0     # xmm0 = xmm6[0,2,2,3,4,5,6,7]
pand %xmm4, %xmm0
pshufd $0xf5, %xmm1, %xmm1     # xmm1 = xmm1[1,1,3,3]
pshuflw $0xe8, %xmm1, %xmm8     # xmm8 = xmm1[0,2,2,3,4,5,6,7]
por %xmm0, %xmm8
pxor %xmm10, %xmm8
packssdw %xmm8, %xmm8
leal (%r12,%r10), %ecx
leal (%r9,%r10), %ebx
movd %edi, %xmm0
punpcklqdq 0x70(%rsp), %xmm0 # xmm0 = xmm0[0],mem[0]
pshufd $0xa2, %xmm0, %xmm0     # xmm0 = xmm0[2,0,2,2]
movd %ebx, %xmm4
movd %ecx, %xmm9
punpckldq %xmm4, %xmm9    # xmm9 = xmm9[0],xmm4[0],xmm9[1],xmm4[1]
movd %r10d, %xmm4
punpckldq 0xa0(%rsp), %xmm4 # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1]
punpcklqdq %xmm9, %xmm4    # xmm4 = xmm4[0],xmm9[0]
psubd %xmm4, %xmm0
movdqa %xmm0, %xmm4
movdqa 0x2d5daf(%rip), %xmm9   # 0x629c10
pcmpgtd %xmm9, %xmm4
pand %xmm4, %xmm0
pandn %xmm9, %xmm4
por %xmm0, %xmm4
movd %xmm8, %ecx
testb $0x1, %cl
je 0x353e86
movd %xmm4, %ecx
movb %cl, 0x1(%r14,%r11)
pand %xmm11, %xmm6
por %xmm1, %xmm6
packssdw %xmm6, %xmm6
pxor %xmm10, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
movd %xmm6, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x353eb6
pextrw $0x2, %xmm4, %ecx
movb %cl, 0x2(%r14,%r11)
movdqa %xmm15, %xmm0
por 0x2d4fbd(%rip), %xmm0   # 0x628e80
pxor %xmm14, %xmm0
movdqa %xmm0, %xmm8
pcmpgtd %xmm7, %xmm8
pshufd $0xa0, %xmm8, %xmm1     # xmm1 = xmm8[0,0,2,2]
pcmpeqd %xmm7, %xmm0
pshufd $0xf5, %xmm0, %xmm6     # xmm6 = xmm0[1,1,3,3]
movdqa %xmm6, %xmm0
pand %xmm1, %xmm0
pshufd $0xf5, %xmm8, %xmm8     # xmm8 = xmm8[1,1,3,3]
por %xmm8, %xmm0
packssdw %xmm0, %xmm0
pxor %xmm10, %xmm0
packssdw %xmm0, %xmm0
packsswb %xmm0, %xmm0
movd %xmm0, %ecx
shrl $0x10, %ecx
testb $0x1, %cl
je 0x353f1b
pextrw $0x4, %xmm4, %ecx
movb %cl, 0x3(%r14,%r11)
pshufhw $0x84, %xmm1, %xmm0     # xmm0 = xmm1[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm6, %xmm1     # xmm1 = xmm6[0,1,2,3,4,5,4,6]
pand %xmm0, %xmm1
pshufhw $0x84, %xmm8, %xmm0     # xmm0 = xmm8[0,1,2,3,4,5,4,6]
por %xmm1, %xmm0
pxor %xmm10, %xmm0
packssdw %xmm0, %xmm0
packsswb %xmm0, %xmm0
movd %xmm0, %ecx
shrl $0x18, %ecx
testb $0x1, %cl
je 0x353f56
pextrw $0x6, %xmm4, %ecx
movb %cl, 0x4(%r14,%r11)
movdqa %xmm15, %xmm1
por 0x2d4f6d(%rip), %xmm1   # 0x628ed0
movd %r11d, %xmm0
pshufd $0x0, %xmm0, %xmm11     # xmm11 = xmm0[0,0,0,0]
movdqa %xmm11, %xmm0
por 0x2d5b85(%rip), %xmm0   # 0x629b00
pshufd $0xf5, %xmm0, %xmm6     # xmm6 = xmm0[1,1,3,3]
pmuludq %xmm13, %xmm0
pshufd $0xe8, %xmm0, %xmm0     # xmm0 = xmm0[0,2,2,3]
pshufd $0xf5, %xmm13, %xmm4    # xmm4 = xmm13[1,1,3,3]
movdqa %xmm4, 0x40(%rsp)
pmuludq %xmm4, %xmm6
pshufd $0xe8, %xmm6, %xmm6     # xmm6 = xmm6[0,2,2,3]
punpckldq %xmm6, %xmm0    # xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
movdqa %xmm12, %xmm8
psubd %xmm0, %xmm8
movdqa %xmm8, %xmm6
movdqa 0x2d5c56(%rip), %xmm0   # 0x629c10
pcmpgtd %xmm0, %xmm6
pand %xmm6, %xmm8
pandn %xmm0, %xmm6
por %xmm8, %xmm6
pxor %xmm14, %xmm1
movdqa %xmm1, %xmm0
pcmpgtd %xmm7, %xmm0
pshufd $0xa0, %xmm0, %xmm8     # xmm8 = xmm0[0,0,2,2]
pshuflw $0xe8, %xmm8, %xmm9     # xmm9 = xmm8[0,2,2,3,4,5,6,7]
pcmpeqd %xmm7, %xmm1
pshufd $0xf5, %xmm1, %xmm1     # xmm1 = xmm1[1,1,3,3]
pshuflw $0xe8, %xmm1, %xmm10    # xmm10 = xmm1[0,2,2,3,4,5,6,7]
pand %xmm9, %xmm10
pshufd $0xf5, %xmm0, %xmm0     # xmm0 = xmm0[1,1,3,3]
pshuflw $0xe8, %xmm0, %xmm9     # xmm9 = xmm0[0,2,2,3,4,5,6,7]
por %xmm10, %xmm9
pcmpeqd %xmm4, %xmm4
pxor %xmm4, %xmm9
packssdw %xmm9, %xmm9
packsswb %xmm9, %xmm9
pextrw $0x2, %xmm9, %ecx
testb $0x1, %cl
je 0x354030
movd %xmm6, %ecx
movb %cl, 0x5(%r14,%r11)
pand %xmm8, %xmm1
por %xmm0, %xmm1
packssdw %xmm1, %xmm1
pxor %xmm4, %xmm1
packssdw %xmm1, %xmm0
packsswb %xmm0, %xmm0
pextrw $0x2, %xmm0, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x354060
pextrw $0x2, %xmm6, %ecx
movb %cl, 0x6(%r14,%r11)
movdqa %xmm15, %xmm0
por 0x2d4e53(%rip), %xmm0   # 0x628ec0
pxor %xmm14, %xmm0
movdqa %xmm0, %xmm9
pcmpgtd %xmm7, %xmm9
pshufd $0xa0, %xmm9, %xmm1     # xmm1 = xmm9[0,0,2,2]
pcmpeqd %xmm7, %xmm0
pshufd $0xf5, %xmm0, %xmm8     # xmm8 = xmm0[1,1,3,3]
movdqa %xmm8, %xmm10
pand %xmm1, %xmm10
pshufd $0xf5, %xmm9, %xmm0     # xmm0 = xmm9[1,1,3,3]
por %xmm0, %xmm10
packssdw %xmm10, %xmm9
pxor %xmm4, %xmm9
packssdw %xmm9, %xmm9
packsswb %xmm9, %xmm9
pextrw $0x3, %xmm9, %ecx
testb $0x1, %cl
je 0x3540ca
pextrw $0x4, %xmm6, %ecx
movb %cl, 0x7(%r14,%r11)
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm8, %xmm8     # xmm8 = xmm8[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm8
pshufhw $0x84, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,3,4,5,4,6]
por %xmm8, %xmm0
pxor %xmm4, %xmm0
packssdw %xmm0, %xmm0
packsswb %xmm0, %xmm0
pextrw $0x3, %xmm0, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x354107
pextrw $0x6, %xmm6, %ecx
movb %cl, 0x8(%r14,%r11)
movdqa %xmm15, %xmm0
por 0x2d5acc(%rip), %xmm0   # 0x629be0
movdqa %xmm11, %xmm1
por 0x2d5acf(%rip), %xmm1   # 0x629bf0
pshufd $0xf5, %xmm1, %xmm6     # xmm6 = xmm1[1,1,3,3]
movdqa %xmm13, %xmm4
pmuludq %xmm13, %xmm1
pshufd $0xe8, %xmm1, %xmm1     # xmm1 = xmm1[0,2,2,3]
pmuludq 0x40(%rsp), %xmm6
pshufd $0xe8, %xmm6, %xmm6     # xmm6 = xmm6[0,2,2,3]
punpckldq %xmm6, %xmm1    # xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]
movdqa %xmm12, %xmm13
movdqa %xmm12, %xmm8
psubd %xmm1, %xmm8
movdqa %xmm8, %xmm6
movdqa 0x2d5ab0(%rip), %xmm1   # 0x629c10
pcmpgtd %xmm1, %xmm6
pand %xmm6, %xmm8
pandn %xmm1, %xmm6
por %xmm8, %xmm6
pxor %xmm14, %xmm0
movdqa %xmm0, %xmm9
pcmpgtd %xmm7, %xmm9
pshufd $0xa0, %xmm9, %xmm8     # xmm8 = xmm9[0,0,2,2]
pshuflw $0xe8, %xmm8, %xmm10    # xmm10 = xmm8[0,2,2,3,4,5,6,7]
pcmpeqd %xmm7, %xmm0
pshufd $0xf5, %xmm0, %xmm1     # xmm1 = xmm0[1,1,3,3]
pshuflw $0xe8, %xmm1, %xmm12    # xmm12 = xmm1[0,2,2,3,4,5,6,7]
pand %xmm10, %xmm12
pshufd $0xf5, %xmm9, %xmm0     # xmm0 = xmm9[1,1,3,3]
pshuflw $0xe8, %xmm0, %xmm9     # xmm9 = xmm0[0,2,2,3,4,5,6,7]
por %xmm12, %xmm9
pcmpeqd %xmm10, %xmm10
pxor %xmm10, %xmm9
packssdw %xmm9, %xmm9
packsswb %xmm9, %xmm9
pextrw $0x4, %xmm9, %ecx
testb $0x1, %cl
je 0x3541da
movd %xmm6, %ecx
movb %cl, 0x9(%r14,%r11)
pand %xmm8, %xmm1
por %xmm0, %xmm1
packssdw %xmm1, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm0
pextrw $0x4, %xmm0, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x35420b
pextrw $0x2, %xmm6, %ecx
movb %cl, 0xa(%r14,%r11)
movdqa %xmm15, %xmm0
por 0x2d59b8(%rip), %xmm0   # 0x629bd0
pxor %xmm14, %xmm0
movdqa %xmm0, %xmm8
pcmpgtd %xmm7, %xmm8
pshufd $0xa0, %xmm8, %xmm1     # xmm1 = xmm8[0,0,2,2]
pcmpeqd %xmm7, %xmm0
pshufd $0xf5, %xmm0, %xmm0     # xmm0 = xmm0[1,1,3,3]
movdqa %xmm0, %xmm9
pand %xmm1, %xmm9
pshufd $0xf5, %xmm8, %xmm8     # xmm8 = xmm8[1,1,3,3]
por %xmm8, %xmm9
packssdw %xmm9, %xmm9
pxor %xmm10, %xmm9
packssdw %xmm9, %xmm9
packsswb %xmm9, %xmm9
pextrw $0x5, %xmm9, %ecx
testb $0x1, %cl
movdqa %xmm13, %xmm12
je 0x354279
pextrw $0x4, %xmm6, %ecx
movb %cl, 0xb(%r14,%r11)
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm0
pshufhw $0x84, %xmm8, %xmm1     # xmm1 = xmm8[0,1,2,3,4,5,4,6]
por %xmm0, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm1
packsswb %xmm1, %xmm0
pextrw $0x5, %xmm0, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
movdqa %xmm4, %xmm13
je 0x3542ba
pextrw $0x6, %xmm6, %ecx
movb %cl, 0xc(%r14,%r11)
movdqa %xmm15, %xmm0
por 0x2d58f9(%rip), %xmm0   # 0x629bc0
por 0x2d5930(%rip), %xmm11  # 0x629c00
pshufd $0xf5, %xmm11, %xmm1    # xmm1 = xmm11[1,1,3,3]
pmuludq %xmm13, %xmm11
pshufd $0xe8, %xmm11, %xmm6    # xmm6 = xmm11[0,2,2,3]
pmuludq 0x40(%rsp), %xmm1
pshufd $0xe8, %xmm1, %xmm1     # xmm1 = xmm1[0,2,2,3]
punpckldq %xmm1, %xmm6    # xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]
movdqa %xmm12, %xmm1
psubd %xmm6, %xmm1
movdqa %xmm1, %xmm4
movdqa 0x2d590b(%rip), %xmm6   # 0x629c10
pcmpgtd %xmm6, %xmm4
pand %xmm4, %xmm1
pandn %xmm6, %xmm4
por %xmm1, %xmm4
pxor %xmm14, %xmm0
movdqa %xmm0, %xmm8
pcmpgtd %xmm7, %xmm8
pshufd $0xa0, %xmm8, %xmm6     # xmm6 = xmm8[0,0,2,2]
pshuflw $0xe8, %xmm6, %xmm9     # xmm9 = xmm6[0,2,2,3,4,5,6,7]
pcmpeqd %xmm7, %xmm0
pshufd $0xf5, %xmm0, %xmm1     # xmm1 = xmm0[1,1,3,3]
pshuflw $0xe8, %xmm1, %xmm10    # xmm10 = xmm1[0,2,2,3,4,5,6,7]
pand %xmm9, %xmm10
pshufd $0xf5, %xmm8, %xmm0     # xmm0 = xmm8[1,1,3,3]
pshuflw $0xe8, %xmm0, %xmm8     # xmm8 = xmm0[0,2,2,3,4,5,6,7]
por %xmm10, %xmm8
pcmpeqd %xmm10, %xmm10
pxor %xmm10, %xmm8
packssdw %xmm8, %xmm8
packsswb %xmm8, %xmm8
pextrw $0x6, %xmm8, %ecx
testb $0x1, %cl
je 0x35437d
movd %xmm4, %ecx
movb %cl, 0xd(%r14,%r11)
pand %xmm6, %xmm1
por %xmm0, %xmm1
packssdw %xmm1, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm0
packsswb %xmm0, %xmm0
pextrw $0x6, %xmm0, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x3543ad
pextrw $0x2, %xmm4, %ecx
movb %cl, 0xe(%r14,%r11)
por 0x2d57fa(%rip), %xmm15  # 0x629bb0
pxor %xmm14, %xmm15
movdqa %xmm15, %xmm6
pcmpgtd %xmm7, %xmm6
pshufd $0xa0, %xmm6, %xmm1     # xmm1 = xmm6[0,0,2,2]
pcmpeqd %xmm7, %xmm15
pshufd $0xf5, %xmm15, %xmm0    # xmm0 = xmm15[1,1,3,3]
movdqa %xmm0, %xmm7
pand %xmm1, %xmm7
pshufd $0xf5, %xmm6, %xmm6     # xmm6 = xmm6[1,1,3,3]
por %xmm6, %xmm7
packssdw %xmm7, %xmm7
pxor %xmm10, %xmm7
packssdw %xmm7, %xmm7
packsswb %xmm7, %xmm7
pextrw $0x7, %xmm7, %ecx
testb $0x1, %cl
je 0x35440a
pextrw $0x4, %xmm4, %ecx
movb %cl, 0xf(%r14,%r11)
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm0, %xmm0     # xmm0 = xmm0[0,1,2,3,4,5,4,6]
pand %xmm1, %xmm0
pshufhw $0x84, %xmm6, %xmm1     # xmm1 = xmm6[0,1,2,3,4,5,4,6]
por %xmm0, %xmm1
pxor %xmm10, %xmm1
packssdw %xmm1, %xmm0
packsswb %xmm0, %xmm0
pextrw $0x7, %xmm0, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x354445
pextrw $0x6, %xmm4, %ecx
movb %cl, 0x10(%r14,%r11)
addq $0x10, %r11
subl %r8d, %edi
addl %r8d, %r10d
cmpq %r11, %rsi
jne 0x353dad
pxor %xmm1, %xmm1
psubsb %xmm2, %xmm1
movq 0x10(%rsp), %rdi
leal -0x1(%rdi), %r9d
shlq $0x4, %r9
movq %rax, %rcx
addq %r9, %rcx
movdqa %xmm1, (%rcx)
psubsb %xmm3, %xmm1
addq $-0x10, %rcx
decl %edi
jg 0x354473
addq %rbp, %r9
movl 0x6c(%rsp), %r11d
movq %r11, 0x58(%rsp)
shlq $0x4, %r11
addq %rbp, %r11
movl 0x10(%rsp), %r8d
movq %r8, %r10
shlq $0x4, %r8
xorl %r14d, %r14d
movdqa 0x2d5772(%rip), %xmm4   # 0x629c20
movdqa 0xd0(%rsp), %xmm13
movdqa %xmm13, %xmm1
movdqa 0xc0(%rsp), %xmm14
movdqa %xmm14, %xmm6
movl 0x18(%rsp), %r12d
movq 0xb8(%rsp), %rsi
movq %r14, %rbx
movdqa (%r9), %xmm0
pslldq $0x1, %xmm0             # xmm0 = zero,xmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
movq 0x38(%rsp), %rcx
movzbl (%rcx,%r14), %ecx
movd %ecx, %xmm8
movdqa %xmm4, %xmm7
pandn %xmm8, %xmm7
por %xmm0, %xmm7
movq 0x20(%rsp), %rcx
movq 0x10(%rcx), %rcx
movq 0x28(%rsp), %rdi
movzbl (%rdi,%r14), %edi
movslq (%rcx,%rdi,4), %rdi
movq %r10, %rcx
imulq %rdi, %rcx
shlq $0x4, %rcx
addq 0x60(%rsp), %rcx
movdqa %xmm13, %xmm9
psubsb (%rax), %xmm9
xorl %edi, %edi
movdqa %xmm13, %xmm8
movdqa (%rbp,%rdi), %xmm10
movdqa (%r15,%rdi), %xmm0
psubsb %xmm3, %xmm0
movdqa %xmm10, %xmm11
psubsb %xmm2, %xmm11
movdqa %xmm0, %xmm12
pcmpgtb %xmm11, %xmm12
pand %xmm12, %xmm0
pandn %xmm11, %xmm12
por %xmm0, %xmm12
paddsb (%rcx,%rdi), %xmm7
paddsb (%rax,%rdi), %xmm9
movdqa %xmm8, %xmm0
pcmpgtb %xmm9, %xmm8
pand %xmm8, %xmm0
pandn %xmm9, %xmm8
por %xmm0, %xmm8
movdqa %xmm12, %xmm9
pcmpgtb %xmm7, %xmm9
movdqa %xmm12, (%r15,%rdi)
pand %xmm9, %xmm12
pandn %xmm7, %xmm9
por %xmm12, %xmm9
movdqa %xmm9, (%r13,%rdi)
addq $0x10, %rdi
movdqa %xmm10, %xmm7
cmpq %rdi, %r8
jne 0x35453a
pslldq $0x1, %xmm9             # xmm9 = zero,xmm9[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
leaq 0x1(%rbx), %r14
movq 0x38(%rsp), %rcx
movzbl 0x1(%rcx,%rbx), %ecx
movd %ecx, %xmm0
movdqa %xmm4, %xmm10
pandn %xmm0, %xmm10
por %xmm9, %xmm10
movdqa (%rax), %xmm0
paddsb %xmm10, %xmm0
movdqa %xmm8, %xmm7
pcmpgtb %xmm0, %xmm7
pand %xmm7, %xmm8
pandn %xmm0, %xmm7
por %xmm8, %xmm7
movl $0xe, %ecx
movdqa %xmm7, %xmm0
movdqa %xmm7, %xmm8
pslldq $0x1, %xmm7             # xmm7 = zero,xmm7[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
paddsb %xmm5, %xmm7
pcmpgtb %xmm7, %xmm0
pand %xmm0, %xmm8
pandn %xmm7, %xmm0
movdqa %xmm0, %xmm7
por %xmm8, %xmm7
decl %ecx
jne 0x354616
pslldq $0x1, %xmm7             # xmm7 = zero,xmm7[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
paddsb 0x90(%rsp), %xmm7
movdqa %xmm10, %xmm8
pcmpgtb %xmm7, %xmm8
pand %xmm8, %xmm10
pandn %xmm7, %xmm8
por %xmm10, %xmm8
xorl %ecx, %ecx
movdqa (%r13,%rcx), %xmm0
psubsb %xmm3, %xmm7
psubsb %xmm2, %xmm8
movdqa %xmm7, %xmm9
pcmpgtb %xmm8, %xmm9
pand %xmm9, %xmm7
pandn %xmm8, %xmm9
por %xmm9, %xmm7
movdqa %xmm0, %xmm8
pcmpgtb %xmm7, %xmm8
pand %xmm8, %xmm0
pandn %xmm7, %xmm8
por %xmm0, %xmm8
movdqa %xmm8, (%rbp,%rcx)
movdqa %xmm6, %xmm0
pcmpgtb %xmm8, %xmm0
movdqa %xmm8, %xmm9
pand %xmm0, %xmm9
pandn %xmm6, %xmm0
movdqa %xmm0, %xmm6
por %xmm9, %xmm6
movdqa %xmm1, %xmm0
pcmpgtb %xmm8, %xmm1
pand %xmm1, %xmm0
pandn %xmm8, %xmm1
por %xmm0, %xmm1
addq $0x10, %rcx
cmpq %rcx, %r8
jne 0x35466b
movdqa (%r11), %xmm7
cmpl $0xe, %r12d
jg 0x35470f
xorl %ecx, %ecx
pslldq $0x1, %xmm7             # xmm7 = zero,xmm7[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
incl %ecx
cmpl %edx, %ecx
jl 0x354704
pextrw $0x7, %xmm7, %ecx
shrl $0x8, %ecx
movsbl %cl, %ecx
movq 0x30(%rsp), %rdi
movq 0x10(%rdi), %rdi
movq (%rdi), %rdi
movl %ecx, (%rdi,%rbx,4)
cmpq %rsi, %r14
jne 0x3544d9
movq 0x10(%rsp), %rcx
leal (,%rcx,4), %esi
leal (,%rcx,8), %ecx
movq %rcx, 0x40(%rsp)
leaq (%rsi,%rsi,2), %rcx
movq %rcx, 0x28(%rsp)
movq %r10, %r14
imulq $0x3c, %r10, %rcx
movq %rcx, 0x20(%rsp)
imulq $0x38, %r10, %rcx
movq %rcx, 0x10(%rsp)
imulq $0x34, %r10, %rcx
movq %rcx, 0x60(%rsp)
leaq (%r8,%r8,2), %rcx
movq %rcx, 0x90(%rsp)
imulq $0x2c, %r10, %rcx
movq %rcx, 0xa0(%rsp)
leal (,%r10,8), %ecx
leaq (%rcx,%rcx,4), %rdi
movq %rdi, 0x80(%rsp)
leal (,%r10,4), %edi
leaq (%rdi,%rdi,8), %r9
movq %r9, 0x70(%rsp)
movq %r10, %r11
shlq $0x5, %r11
leaq (%r10,%r10,8), %r10
leaq (%r10,%r10,2), %rbx
addq %r14, %rbx
leaq (%rcx,%rcx,2), %r14
leaq (%rdi,%rdi,4), %rcx
xorl %edi, %edi
movdqa (%rbp,%rdi,4), %xmm0
movq 0x30(%rsp), %r9
movq 0x10(%r9), %r10
movq 0x8(%r10), %r10
movdqa %xmm0, (%rsp)
movsbl (%rsp), %r12d
movl %r12d, (%r10,%rdi)
addq %rdi, %r10
movsbl 0x1(%rsp), %r12d
movl %r12d, (%rsi,%r10)
movsbl 0x2(%rsp), %r12d
movq 0x40(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0x3(%rsp), %r12d
movq 0x28(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0x4(%rsp), %r12d
movl %r12d, (%r8,%r10)
movsbl 0x5(%rsp), %r12d
movl %r12d, (%rcx,%r10)
movsbl 0x6(%rsp), %r12d
movl %r12d, (%r14,%r10)
movsbl 0x7(%rsp), %r12d
movl %r12d, (%rbx,%r10)
movsbl 0x8(%rsp), %r12d
movl %r12d, (%r11,%r10)
movsbl 0x9(%rsp), %r12d
movq 0x70(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0xa(%rsp), %r12d
movq 0x80(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0xb(%rsp), %r12d
movq 0xa0(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0xc(%rsp), %r12d
movq 0x90(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0xd(%rsp), %r12d
movq 0x60(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0xe(%rsp), %r12d
movq 0x10(%rsp), %r9
movl %r12d, (%r9,%r10)
movsbl 0xf(%rsp), %r12d
movq 0x20(%rsp), %r9
movl %r12d, (%r9,%r10)
addq $0x4, %rdi
cmpq %rdi, %rsi
jne 0x3547ca
movq 0x58(%rsp), %rcx
shlq $0x4, %rcx
movdqa (%rbp,%rcx), %xmm2
cmpl $0xe, 0x18(%rsp)
jg 0x3548f5
xorl %ecx, %ecx
movl 0x1c(%rsp), %esi
movq 0x30(%rsp), %r14
pslldq $0x1, %xmm2             # xmm2 = zero,xmm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]
incl %ecx
cmpl %edx, %ecx
jl 0x3548e8
jmp 0x3548fe
movl 0x1c(%rsp), %esi
movq 0x30(%rsp), %r14
pcmpgtb %xmm6, %xmm13
pcmpgtb %xmm14, %xmm1
por %xmm13, %xmm1
pmovmskb %xmm1, %ecx
testl %ecx, %ecx
je 0x354922
orb $0x40, 0xc(%r14)
xorl %ecx, %ecx
xorl %edx, %edx
xorl %esi, %esi
jmp 0x35492e
pextrw $0x7, %xmm2, %ecx
shrl $0x8, %ecx
movl 0x68(%rsp), %edx
movsbl %cl, %ecx
movl %ecx, (%r14)
movl %esi, 0x4(%r14)
movl %edx, 0x8(%r14)
movq %rax, %rdi
callq 0x20a60d
movq %rbp, %rdi
callq 0x20a60d
movq %r13, %rdi
callq 0x20a60d
movq 0x38(%rsp), %rdi
callq 0x20a60d
movq %r15, %rdi
callq 0x20a60d
jmp 0x3549a1
callq 0x1b4d3f
jmp 0x35499e
callq 0x1b4d19
jmp 0x35499e
callq 0x1b4cf3
jmp 0x35499e
callq 0x1b4ccd
jmp 0x35499e
callq 0x1b4ca7
jmp 0x35499e
callq 0x1b4c81
jmp 0x35499e
callq 0x1b4c5b
jmp 0x35499e
callq 0x1b4c35
xorl %r14d, %r14d
movq %r14, %rax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop