// File: readmapping[P]alfalfa/src/main.cpp
// Function: map_paired(void*, int, int)
static void map_paired(void * pairedData, int i, int threadid)
{
    paired_data * data = (paired_data*) pairedData;
    read_t & mate1 = data->mates1->at(i);
    read_t & mate2 = data->mates2->at(i);
    if (mate1.qname.length() > 2 && mate1.qname[mate1.qname.length() - 2] == '/')
        mate1.qname.erase(mate1.qname.length() - 2);
    if (mate2.qname.length() > 2 && mate2.qname[mate2.qname.length() - 2] == '/')
        mate2.qname.erase(mate2.qname.length() - 2);
    mate1.init(data->opt->nucleotidesOnly);
    mate2.init(data->opt->nucleotidesOnly);
    if (data->opt->alnOptions.print >= 3) cerr << "match " << mate1.qname << " with lengths " << mate1.sequence.length() << " and " << mate2.sequence.length() << endl;
    if (data->opt->alnOptions.print >= 2) cerr << "#READ" << endl;
    pairedMatch(*data->ssa, mate1, mate2, data->opt->alnOptions, data->opt->pairedOpt);
    mate1.postprocess(*data->ssa, data->opt->alnOptions, true);
    mate2.postprocess(*data->ssa, data->opt->alnOptions, true);
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movl %esi, 0x4c(%rsp)
movl %edx, 0x48(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rdi
movslq 0x4c(%rsp), %rsi
callq 0xded0
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rdi
movslq 0x4c(%rsp), %rsi
callq 0xded0
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
callq 0x8630
cmpq $0x2, %rax
jbe 0xa034
movq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x38(%rsp), %rdi
callq 0x8630
movq 0x28(%rsp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x8830
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0xa034
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
callq 0x8630
movq 0x20(%rsp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
movq $-0x1, %rdx
callq 0x80f0
movq 0x30(%rsp), %rdi
callq 0x8630
cmpq $0x2, %rax
jbe 0xa09d
movq 0x30(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rdi
callq 0x8630
movq 0x18(%rsp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
callq 0x8830
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0xa09d
movq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
callq 0x8630
movq 0x10(%rsp), %rdi
movq %rax, %rsi
subq $0x2, %rsi
movq $-0x1, %rdx
callq 0x80f0
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rax
movq (%rax), %rax
movb 0xf8(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0xdf10
movq 0x30(%rsp), %rdi
movq 0x40(%rsp), %rax
movq (%rax), %rax
movb 0xf8(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0xdf10
movq 0x40(%rsp), %rax
movq (%rax), %rax
cmpl $0x3, 0x178(%rax)
jl 0xa177
movq 0x8cefd(%rip), %rdi     # 0x96ff0
leaq 0x6f2f5(%rip), %rsi     # 0x793ef
callq 0x8360
movq %rax, %rdi
movq 0x38(%rsp), %rsi
callq 0x8330
movq %rax, %rdi
leaq 0x6f3a4(%rip), %rsi     # 0x794ba
callq 0x8360
movq %rax, (%rsp)
movq 0x38(%rsp), %rdi
addq $0x20, %rdi
callq 0x8630
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x8100
movq %rax, %rdi
leaq 0x73f0d(%rip), %rsi     # 0x7e050
callq 0x8360
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
addq $0x20, %rdi
callq 0x8630
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x8100
movq %rax, %rdi
movq 0x8ce3e(%rip), %rsi     # 0x96fb0
callq 0x83b0
movq 0x40(%rsp), %rax
movq (%rax), %rax
cmpl $0x2, 0x178(%rax)
jl 0xa1aa
movq 0x8ce61(%rip), %rdi     # 0x96ff0
leaq 0x6f26e(%rip), %rsi     # 0x79404
callq 0x8360
movq %rax, %rdi
movq 0x8ce0b(%rip), %rsi     # 0x96fb0
callq 0x83b0
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x40(%rsp), %rax
movq (%rax), %rcx
addq $0x100, %rcx            # imm = 0x100
movq 0x40(%rsp), %rax
movq (%rax), %r8
addq $0x198, %r8             # imm = 0x198
callq 0x4a830
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x40(%rsp), %rax
movq (%rax), %rdx
addq $0x100, %rdx            # imm = 0x100
movl $0x1, %ecx
callq 0x3c830
movq 0x30(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x40(%rsp), %rax
movq (%rax), %rdx
addq $0x100, %rdx            # imm = 0x100
movl $0x1, %ecx
callq 0x3c830
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)