// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/sam.c
// Function: tweak_overlap_quality
static int tweak_overlap_quality(bam1_t *a, bam1_t *b)
{
    const uint32_t *a_cigar = bam_get_cigar(a),
        *a_cigar_max = a_cigar + a->core.n_cigar;
    const uint32_t *b_cigar = bam_get_cigar(b),
        *b_cigar_max = b_cigar + b->core.n_cigar;
    hts_pos_t a_icig = 0, a_iseq = 0;
    hts_pos_t b_icig = 0, b_iseq = 0;
    uint8_t *a_qual = bam_get_qual(a), *b_qual = bam_get_qual(b);
    uint8_t *a_seq  = bam_get_seq(a), *b_seq = bam_get_seq(b);

    hts_pos_t iref   = b->core.pos;
    hts_pos_t a_iref = iref - a->core.pos;
    hts_pos_t b_iref = iref - b->core.pos;

    int a_ret = cigar_iref2iseq_set(&a_cigar, a_cigar_max,
                                    &a_icig, &a_iseq, &a_iref);
    if ( a_ret<0 )
        // no overlap or error
        return a_ret<-1 ? -1:0;

    int b_ret = cigar_iref2iseq_set(&b_cigar, b_cigar_max,
                                    &b_icig, &b_iseq, &b_iref);
    if ( b_ret<0 )
        // no overlap or error
        return b_ret<-1 ? -1:0;

    // Determine which seq is the one getting modified qualities.
    uint8_t amul, bmul;
    if (__ac_Wang_hash(__ac_X31_hash_string(bam_get_qname(a))) & 1) {
        amul = 1;
        bmul = 0;
    } else {
        amul = 0;
        bmul = 1;
    }

    // Loop over the overlapping region nulling qualities in either
    // seq a or b.
    int err = 0;
    while ( 1 ) {
        // Step to next matching reference position in a and b
        while ( a_ret >= 0 && a_iref>=0 && a_iref < iref - a->core.pos )
            a_ret = cigar_iref2iseq_next(&a_cigar, a_cigar_max,
                                         &a_icig, &a_iseq, &a_iref);
        if ( a_ret<0 ) { // done
            err = a_ret<-1?-1:0;
            break;
        }

        while ( b_ret >= 0 && b_iref>=0 && b_iref < iref - b->core.pos )
            b_ret = cigar_iref2iseq_next(&b_cigar, b_cigar_max, &b_icig,
                                         &b_iseq, &b_iref);
        if ( b_ret<0 ) { // done
            err = b_ret<-1?-1:0;
            break;
        }

        if ( iref < a_iref + a->core.pos )
            iref = a_iref + a->core.pos;

        if ( iref < b_iref + b->core.pos )
            iref = b_iref + b->core.pos;

        iref++;

        // If A or B has a deletion then we catch up the other to this point.
        // We also amend quality values using the same rules for mismatch.
        if (a_iref+a->core.pos != b_iref+b->core.pos) {
            if (a_iref+a->core.pos < b_iref+b->core.pos
                && b_cigar > bam_get_cigar(b)
                && bam_cigar_op(b_cigar[-1]) == BAM_CDEL) {
                // Del in B means it's moved on further than A
                do {
                    a_qual[a_iseq] = amul
                        ? a_qual[a_iseq]*0.8
                        : 0;
                    a_ret = cigar_iref2iseq_next(&a_cigar, a_cigar_max,
                                                 &a_icig, &a_iseq, &a_iref);
                    if (a_ret < 0)
                        return -(a_ret<-1); // 0 or -1
                } while (a_iref + a->core.pos < b_iref+b->core.pos);
            } else if (a_cigar > bam_get_cigar(a)
                       && bam_cigar_op(a_cigar[-1]) == BAM_CDEL) {
                // Del in A means it's moved on further than B
                do {
                    b_qual[b_iseq] = bmul
                        ? b_qual[b_iseq]*0.8
                        : 0;
                    b_ret = cigar_iref2iseq_next(&b_cigar, b_cigar_max,
                                                 &b_icig, &b_iseq, &b_iref);
                    if (b_ret < 0)
                        return -(b_ret<-1); // 0 or -1
                } while (b_iref + b->core.pos < a_iref+a->core.pos);
            } else {
                // Anything else, eg ref-skip, we don't support here
                continue;
            }
        }

        // fprintf(stderr, "a_cig=%ld,%ld b_cig=%ld,%ld iref=%ld "
        //         "a_iref=%ld b_iref=%ld a_iseq=%ld b_iseq=%ld\n",
        //         a_cigar-bam_get_cigar(a), a_icig,
        //         b_cigar-bam_get_cigar(b), b_icig,
        //         iref, a_iref+a->core.pos+1, b_iref+b->core.pos+1,
        //         a_iseq, b_iseq);

        if (a_iseq > a->core.l_qseq || b_iseq > b->core.l_qseq)
            // Fell off end of sequence, bad CIGAR?
            return -1;

        // We're finally at the same ref base in both a and b.
        // Check if the bases match (confident) or mismatch
        // (not so confident).
        if ( bam_seqi(a_seq,a_iseq) == bam_seqi(b_seq,b_iseq) ) {
            // We are very confident about this base.  Use sum of quals
            int qual = a_qual[a_iseq] + b_qual[b_iseq];
            a_qual[a_iseq] = amul * (qual>200 ? 200 : qual);
            b_qual[b_iseq] = bmul * (qual>200 ? 200 : qual);;
        } else {
            // Not so confident about anymore given the mismatch.
            // Reduce qual for lowest quality base.
            if ( a_qual[a_iseq] > b_qual[b_iseq] ) {
                // A highest qual base; keep
                a_qual[a_iseq] = 0.8 * a_qual[a_iseq];
                b_qual[b_iseq] = 0;
            } else if (a_qual[a_iseq] < b_qual[b_iseq] ) {
                // B highest qual base; keep
                b_qual[b_iseq] = 0.8 * b_qual[b_iseq];
                a_qual[a_iseq] = 0;
            } else {
                // Both equal, so pick randomly
                a_qual[a_iseq] = amul * 0.8 * a_qual[a_iseq];
                b_qual[b_iseq] = bmul * 0.8 * b_qual[b_iseq];
            }
        }
    }

    return err;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x10(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movl 0x14(%rcx), %ecx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x14(%rcx), %ecx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x10(%rbp), %rcx
movl 0x14(%rcx), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movl 0x18(%rcx), %ecx
addl $0x1, %ecx
sarl %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
movl 0x14(%rcx), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq -0x18(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq -0x18(%rbp), %rcx
movl 0x18(%rcx), %ecx
addl $0x1, %ecx
sarl %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x10(%rbp), %rcx
movl 0x14(%rcx), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq -0x10(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
movl 0x14(%rcx), %ecx
shll $0x2, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq -0x18(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq -0x10(%rbp), %rcx
subq (%rcx), %rax
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rax
movq -0x18(%rbp), %rcx
subq (%rcx), %rax
movq %rax, -0x90(%rbp)
movq -0x28(%rbp), %rsi
leaq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %rdx
leaq -0x48(%rbp), %rcx
leaq -0x88(%rbp), %r8
callq 0x48fb0
movl %eax, -0x94(%rbp)
cmpl $0x0, -0x94(%rbp)
jge 0x483b0
movl -0x94(%rbp), %edx
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl $-0x1, %edx
cmovll %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x48a8a
movq -0x38(%rbp), %rsi
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
leaq -0x58(%rbp), %rcx
leaq -0x90(%rbp), %r8
callq 0x48fb0
movl %eax, -0x98(%rbp)
cmpl $0x0, -0x98(%rbp)
jge 0x483f6
movl -0x98(%rbp), %edx
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl $-0x1, %edx
cmovll %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x48a8a
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x49260
movl %eax, %edi
callq 0x49200
andl $0x1, %eax
cmpl $0x0, %eax
je 0x48422
movb $0x1, -0x99(%rbp)
movb $0x0, -0x9a(%rbp)
jmp 0x48430
movb $0x0, -0x99(%rbp)
movb $0x1, -0x9a(%rbp)
movl $0x0, -0xa0(%rbp)
jmp 0x4843c
xorl %eax, %eax
cmpl $0x0, -0x94(%rbp)
movb %al, -0xa5(%rbp)
jl 0x4847d
xorl %eax, %eax
cmpq $0x0, -0x88(%rbp)
movb %al, -0xa5(%rbp)
jl 0x4847d
movq -0x88(%rbp), %rax
movq -0x80(%rbp), %rcx
movq -0x10(%rbp), %rdx
subq (%rdx), %rcx
cmpq %rcx, %rax
setl %al
movb %al, -0xa5(%rbp)
movb -0xa5(%rbp), %al
testb $0x1, %al
jne 0x48489
jmp 0x484ad
movq -0x28(%rbp), %rsi
leaq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %rdx
leaq -0x48(%rbp), %rcx
leaq -0x88(%rbp), %r8
callq 0x492c0
movl %eax, -0x94(%rbp)
jmp 0x4843c
cmpl $0x0, -0x94(%rbp)
jge 0x484d4
movl -0x94(%rbp), %edx
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl $-0x1, %edx
cmovll %ecx, %eax
movl %eax, -0xa0(%rbp)
jmp 0x48a81
jmp 0x484d6
xorl %eax, %eax
cmpl $0x0, -0x98(%rbp)
movb %al, -0xa6(%rbp)
jl 0x48517
xorl %eax, %eax
cmpq $0x0, -0x90(%rbp)
movb %al, -0xa6(%rbp)
jl 0x48517
movq -0x90(%rbp), %rax
movq -0x80(%rbp), %rcx
movq -0x18(%rbp), %rdx
subq (%rdx), %rcx
cmpq %rcx, %rax
setl %al
movb %al, -0xa6(%rbp)
movb -0xa6(%rbp), %al
testb $0x1, %al
jne 0x48523
jmp 0x48547
movq -0x38(%rbp), %rsi
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
leaq -0x58(%rbp), %rcx
leaq -0x90(%rbp), %r8
callq 0x492c0
movl %eax, -0x98(%rbp)
jmp 0x484d6
cmpl $0x0, -0x98(%rbp)
jge 0x4856e
movl -0x98(%rbp), %edx
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl $-0x1, %edx
cmovll %ecx, %eax
movl %eax, -0xa0(%rbp)
jmp 0x48a81
movq -0x80(%rbp), %rax
movq -0x88(%rbp), %rcx
movq -0x10(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
jge 0x48597
movq -0x88(%rbp), %rax
movq -0x10(%rbp), %rcx
addq (%rcx), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq -0x90(%rbp), %rcx
movq -0x18(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
jge 0x485c0
movq -0x90(%rbp), %rax
movq -0x18(%rbp), %rcx
addq (%rcx), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
movq -0x10(%rbp), %rcx
addq (%rcx), %rax
movq -0x90(%rbp), %rcx
movq -0x18(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
je 0x48820
movq -0x88(%rbp), %rax
movq -0x10(%rbp), %rcx
addq (%rcx), %rax
movq -0x90(%rbp), %rcx
movq -0x18(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
jge 0x48718
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
movq 0x38(%rcx), %rcx
movq -0x18(%rbp), %rdx
movzwl 0x12(%rdx), %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x48718
movq -0x30(%rbp), %rax
movl -0x4(%rax), %eax
andl $0xf, %eax
cmpl $0x2, %eax
jne 0x48718
jmp 0x4864e
movzbl -0x99(%rbp), %eax
cmpl $0x0, %eax
je 0x48680
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cvtsi2sd %eax, %xmm0
movsd 0xa94ee(%rip), %xmm1    # 0xf1b60
mulsd %xmm1, %xmm0
movsd %xmm0, -0xb0(%rbp)
jmp 0x4868d
xorps %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
jmp 0x4868d
movsd -0xb0(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x28(%rbp), %rsi
leaq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %rdx
leaq -0x48(%rbp), %rcx
leaq -0x88(%rbp), %r8
callq 0x492c0
movl %eax, -0x94(%rbp)
cmpl $0x0, -0x94(%rbp)
jge 0x486ec
cmpl $-0x1, -0x94(%rbp)
setl %al
andb $0x1, %al
movzbl %al, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x48a8a
jmp 0x486ee
movq -0x88(%rbp), %rax
movq -0x10(%rbp), %rcx
addq (%rcx), %rax
movq -0x90(%rbp), %rcx
movq -0x18(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
jl 0x4864e
jmp 0x4881e
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x38(%rcx), %rcx
movq -0x10(%rbp), %rdx
movzwl 0x12(%rdx), %edx
movslq %edx, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x48817
movq -0x20(%rbp), %rax
movl -0x4(%rax), %eax
andl $0xf, %eax
cmpl $0x2, %eax
jne 0x48817
jmp 0x48750
movzbl -0x9a(%rbp), %eax
cmpl $0x0, %eax
je 0x48782
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cvtsi2sd %eax, %xmm0
movsd 0xa93ec(%rip), %xmm1    # 0xf1b60
mulsd %xmm1, %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0x4878f
xorps %xmm0, %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0x4878f
movsd -0xb8(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x38(%rbp), %rsi
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
leaq -0x58(%rbp), %rcx
leaq -0x90(%rbp), %r8
callq 0x492c0
movl %eax, -0x98(%rbp)
cmpl $0x0, -0x98(%rbp)
jge 0x487ee
cmpl $-0x1, -0x98(%rbp)
setl %al
andb $0x1, %al
movzbl %al, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x48a8a
jmp 0x487f0
movq -0x90(%rbp), %rax
movq -0x18(%rbp), %rcx
addq (%rcx), %rax
movq -0x88(%rbp), %rcx
movq -0x10(%rbp), %rdx
addq (%rdx), %rcx
cmpq %rcx, %rax
jl 0x48750
jmp 0x4881c
jmp 0x4843a
jmp 0x4881e
jmp 0x48820
movq -0x48(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq 0x18(%rcx), %rcx
cmpq %rcx, %rax
jg 0x48842
movq -0x58(%rbp), %rax
movq -0x18(%rbp), %rcx
movslq 0x18(%rcx), %rcx
cmpq %rcx, %rax
jle 0x4884e
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x48a8a
movq -0x70(%rbp), %rax
movq -0x48(%rbp), %rcx
sarq %rcx
movzbl (%rax,%rcx), %eax
movq -0x48(%rbp), %rcx
xorq $-0x1, %rcx
andq $0x1, %rcx
shlq $0x2, %rcx
sarl %cl, %eax
andl $0xf, %eax
movq -0x78(%rbp), %rcx
movq -0x58(%rbp), %rdx
sarq %rdx
movzbl (%rcx,%rdx), %edx
movq -0x58(%rbp), %rcx
xorq $-0x1, %rcx
andq $0x1, %rcx
shlq $0x2, %rcx
sarl %cl, %edx
movl %edx, %ecx
andl $0xf, %ecx
cmpl %ecx, %eax
jne 0x48961
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movq -0x58(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movl %eax, -0xa4(%rbp)
movzbl -0x99(%rbp), %eax
movl %eax, -0xbc(%rbp)
cmpl $0xc8, -0xa4(%rbp)
jle 0x488e6
movl $0xc8, %eax
movl %eax, -0xc0(%rbp)
jmp 0x488f2
movl -0xa4(%rbp), %eax
movl %eax, -0xc0(%rbp)
movl -0xbc(%rbp), %eax
movl -0xc0(%rbp), %ecx
imull %ecx, %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movb %dl, (%rax,%rcx)
movzbl -0x9a(%rbp), %eax
movl %eax, -0xc4(%rbp)
cmpl $0xc8, -0xa4(%rbp)
jle 0x48934
movl $0xc8, %eax
movl %eax, -0xc8(%rbp)
jmp 0x48940
movl -0xa4(%rbp), %eax
movl %eax, -0xc8(%rbp)
movl -0xc4(%rbp), %eax
movl -0xc8(%rbp), %ecx
imull %ecx, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x48a7c
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movq -0x58(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jle 0x489bb
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cvtsi2sd %eax, %xmm0
movsd 0xa91cb(%rip), %xmm1    # 0xf1b60
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movb %al, %dl
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movb $0x0, (%rax,%rcx)
jmp 0x48a7a
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x68(%rbp), %rcx
movq -0x58(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jge 0x48a12
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cvtsi2sd %eax, %xmm0
movsd 0xa9171(%rip), %xmm1    # 0xf1b60
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movb $0x0, (%rax,%rcx)
jmp 0x48a78
movzbl -0x99(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd 0xa913b(%rip), %xmm1    # 0xf1b60
mulsd %xmm1, %xmm0
movq -0x60(%rbp), %rax
movq -0x48(%rbp), %rcx
movzbl (%rax,%rcx), %edx
cvtsi2sd %edx, %xmm2
mulsd %xmm2, %xmm0
cvttsd2si %xmm0, %edx
movb %dl, (%rax,%rcx)
movzbl -0x9a(%rbp), %eax
cvtsi2sd %eax, %xmm0
mulsd %xmm1, %xmm0
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cvtsi2sd %eax, %xmm1
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movb %al, %dl
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x48a7a
jmp 0x48a7c
jmp 0x4843a
movl -0xa0(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xd0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)