// File: /workspace/github_c_makefile_star2_O1/annoroad[P]fqtools_plus/fqtools.c
// Function: report
local void report(struct readclass* readclass){
	readline* read1 = readclass->read1;
	STAT* stat = readclass->stat;
    int i=0;
    int curqual;
    char* seq=(read1->reads)[1];
	char* qual=(read1->reads)[3];
    while (i < g.CUT){
        switch (*(seq + i)){
            case 'A': (*(*(stat->base1+i)+0))++; break;
            case 'a': (*(*(stat->base1+i)+0))++; break;
            case 'T': (*(*(stat->base1+i)+1))++; break;
            case 't': (*(*(stat->base1+i)+1))++; break;
            case 'C': (*(*(stat->base1+i)+2))++; break;
            case 'c': (*(*(stat->base1+i)+2))++; break;
            case 'G': (*(*(stat->base1+i)+3))++; break;
            case 'g': (*(*(stat->base1+i)+3))++; break;
            case 'N': (*(*(stat->base1+i)+4))++; break;
            case 'n': (*(*(stat->base1+i)+4))++; break;
        }
        curqual=(int)*(qual + i) - g.ASCII;
        (*(*(stat->quality1 + i) + curqual))++;
        i++;
    }

    if (g.single_or_pair){
    	readline* read2 = readclass->read2;
    	i = 0;
	    seq=(read2->reads)[1];
	    qual=(read2->reads)[3];
	    while (i < g.CUT){
			switch (*(seq + i)){
				case 'A': (*(*(stat->base2+i)+0))++; break;
				case 'a': (*(*(stat->base2+i)+0))++; break;
				case 'T': (*(*(stat->base2+i)+1))++; break;
				case 't': (*(*(stat->base2+i)+1))++; break;
				case 'C': (*(*(stat->base2+i)+2))++; break;
				case 'c': (*(*(stat->base2+i)+2))++; break;
				case 'G': (*(*(stat->base2+i)+3))++; break;
				case 'g': (*(*(stat->base2+i)+3))++; break;
				case 'N': (*(*(stat->base2+i)+4))++; break;
				case 'n': (*(*(stat->base2+i)+4))++; break;
			}
			curqual=(int)*(qual + i) - g.ASCII;
			(*(*(stat->quality2 + i) + curqual))++;
			i++;
		}
    }
	    
}

// Assembly:
movq 0x10(%rdi), %rax
cmpl $0x0, 0x713d(%rip)      # 0xb1c4
jle 0x417f
movq (%rdi), %rcx
leaq 0x74(%rax), %rdx
leaq 0xa074(%rax), %rsi
xorl %r8d, %r8d
movq %rdx, %r9
movzbl 0x41d(%rcx,%r8), %r10d
cmpl $0x60, %r10d
jg 0x40ca
cmpl $0x46, %r10d
jle 0x40f0
cmpl $0x47, %r10d
je 0x411b
cmpl $0x4e, %r10d
je 0x4129
cmpl $0x54, %r10d
je 0x40e2
jmp 0x4142
cmpl $0x66, %r10d
jle 0x40fe
cmpl $0x67, %r10d
je 0x411b
cmpl $0x6e, %r10d
je 0x4129
cmpl $0x74, %r10d
jne 0x4142
leaq (%r8,%r8,4), %r10
leaq (%rdx,%r10,4), %r11
addq $0x4, %r11
jmp 0x413f
cmpl $0x41, %r10d
je 0x4137
cmpl $0x43, %r10d
je 0x410d
jmp 0x4142
movq %r9, %r11
cmpl $0x61, %r10d
je 0x413f
cmpl $0x63, %r10d
jne 0x4142
leaq (%r8,%r8,4), %r10
leaq (%rdx,%r10,4), %r11
addq $0x8, %r11
jmp 0x413f
leaq (%r8,%r8,4), %r10
leaq (%rdx,%r10,4), %r11
addq $0xc, %r11
jmp 0x413f
leaq (%r8,%r8,4), %r10
leaq (%rdx,%r10,4), %r11
addq $0x10, %r11
jmp 0x413f
leaq (%r8,%r8,4), %r10
leaq (%rdx,%r10,4), %r11
incl (%r11)
movsbq 0xc1d(%rcx,%r8), %r10
movslq 0x70a2(%rip), %r11      # 0xb1f4
shlq $0x2, %r10
shlq $0x2, %r11
subq %r11, %r10
incl (%rsi,%r10)
incq %r8
movslq 0x7059(%rip), %r10      # 0xb1c4
addq $0x14, %r9
addq $0xc8, %rsi
cmpq %r10, %r8
jl 0x40a1
cmpb $0x0, 0x703a(%rip)      # 0xb1c0
je 0x428c
cmpl $0x0, 0x7031(%rip)      # 0xb1c4
jle 0x428c
movq 0x8(%rdi), %rcx
leaq 0x5074(%rax), %rdx
addq $0x3c074, %rax          # imm = 0x3C074
xorl %esi, %esi
movq %rdx, %rdi
movzbl 0x41d(%rcx,%rsi), %r8d
cmpl $0x60, %r8d
jg 0x41d8
cmpl $0x46, %r8d
jle 0x41fe
cmpl $0x47, %r8d
je 0x4229
cmpl $0x4e, %r8d
je 0x4237
cmpl $0x54, %r8d
je 0x41f0
jmp 0x4250
cmpl $0x66, %r8d
jle 0x420c
cmpl $0x67, %r8d
je 0x4229
cmpl $0x6e, %r8d
je 0x4237
cmpl $0x74, %r8d
jne 0x4250
leaq (%rsi,%rsi,4), %r8
leaq (%rdx,%r8,4), %r9
addq $0x4, %r9
jmp 0x424d
cmpl $0x41, %r8d
je 0x4245
cmpl $0x43, %r8d
je 0x421b
jmp 0x4250
movq %rdi, %r9
cmpl $0x61, %r8d
je 0x424d
cmpl $0x63, %r8d
jne 0x4250
leaq (%rsi,%rsi,4), %r8
leaq (%rdx,%r8,4), %r9
addq $0x8, %r9
jmp 0x424d
leaq (%rsi,%rsi,4), %r8
leaq (%rdx,%r8,4), %r9
addq $0xc, %r9
jmp 0x424d
leaq (%rsi,%rsi,4), %r8
leaq (%rdx,%r8,4), %r9
addq $0x10, %r9
jmp 0x424d
leaq (%rsi,%rsi,4), %r8
leaq (%rdx,%r8,4), %r9
incl (%r9)
movsbq 0xc1d(%rcx,%rsi), %r8
movslq 0x6f94(%rip), %r9       # 0xb1f4
shlq $0x2, %r8
shlq $0x2, %r9
subq %r9, %r8
incl (%rax,%r8)
incq %rsi
movslq 0x6f4b(%rip), %r8       # 0xb1c4
addq $0x14, %rdi
addq $0xc8, %rax
cmpq %r8, %rsi
jl 0x41af
retq