// File: /workspace/github_c_makefile_star2_O2/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 (%rdi), %rcx
movq 0x10(%rdi), %rax
leaq 0x74(%rax), %rdx
leaq 0xa074(%rax), %rsi
xorl %r8d, %r8d
movq %rdx, %r9
movslq 0x668d(%rip), %r10      # 0xa1cc
cmpq %r10, %r8
jge 0x3c04
movzbl 0x41d(%rcx,%r8), %r10d
cmpl $0x74, %r10d
je 0x3bc3
cmpl $0x43, %r10d
je 0x3b99
cmpl $0x47, %r10d
je 0x3bb5
cmpl $0x4e, %r10d
je 0x3ba7
cmpl $0x54, %r10d
je 0x3bc3
movq %r9, %r11
cmpl $0x61, %r10d
je 0x3bcf
cmpl $0x63, %r10d
je 0x3b99
cmpl $0x67, %r10d
je 0x3bb5
cmpl $0x6e, %r10d
je 0x3ba7
cmpl $0x41, %r10d
jne 0x3bd2
imulq $0x14, %r8, %r11
addq %rdx, %r11
jmp 0x3bcf
imulq $0x14, %r8, %r10
leaq (%rdx,%r10), %r11
addq $0x8, %r11
jmp 0x3bcf
imulq $0x14, %r8, %r10
leaq (%rdx,%r10), %r11
addq $0x10, %r11
jmp 0x3bcf
imulq $0x14, %r8, %r10
leaq (%rdx,%r10), %r11
addq $0xc, %r11
jmp 0x3bcf
imulq $0x14, %r8, %r10
leaq (%rdx,%r10), %r11
addq $0x4, %r11
incl (%r11)
movsbq 0xc1d(%rcx,%r8), %r10
movslq 0x661a(%rip), %r11      # 0xa1fc
shlq $0x2, %r10
shlq $0x2, %r11
subq %r11, %r10
incl (%rsi,%r10)
incq %r8
addq $0x14, %r9
addq $0xc8, %rsi
jmp 0x3b38
cmpb $0x0, 0x65bd(%rip)      # 0xa1c8
je 0x3cf5
movq 0x8(%rdi), %rcx
leaq 0x5074(%rax), %rdx
addq $0x3c074, %rax          # imm = 0x3C074
xorl %esi, %esi
movq %rdx, %rdi
movslq %r10d, %r8
cmpq %r8, %rsi
jge 0x3cf5
movzbl 0x41d(%rcx,%rsi), %r8d
cmpl $0x74, %r8d
je 0x3cae
cmpl $0x43, %r8d
je 0x3c84
cmpl $0x47, %r8d
je 0x3ca0
cmpl $0x4e, %r8d
je 0x3c92
cmpl $0x54, %r8d
je 0x3cae
movq %rdi, %r9
cmpl $0x61, %r8d
je 0x3cba
cmpl $0x63, %r8d
je 0x3c84
cmpl $0x67, %r8d
je 0x3ca0
cmpl $0x6e, %r8d
je 0x3c92
cmpl $0x41, %r8d
jne 0x3cbd
imulq $0x14, %rsi, %r9
addq %rdx, %r9
jmp 0x3cba
imulq $0x14, %rsi, %r8
leaq (%rdx,%r8), %r9
addq $0x8, %r9
jmp 0x3cba
imulq $0x14, %rsi, %r8
leaq (%rdx,%r8), %r9
addq $0x10, %r9
jmp 0x3cba
imulq $0x14, %rsi, %r8
leaq (%rdx,%r8), %r9
addq $0xc, %r9
jmp 0x3cba
imulq $0x14, %rsi, %r8
leaq (%rdx,%r8), %r9
addq $0x4, %r9
incl (%r9)
movsbq 0xc1d(%rcx,%rsi), %r8
movslq 0x652f(%rip), %r9       # 0xa1fc
shlq $0x2, %r8
shlq $0x2, %r9
subq %r9, %r8
incl (%rax,%r8)
incq %rsi
movl 0x64e6(%rip), %r10d     # 0xa1cc
addq $0x14, %rdi
addq $0xc8, %rax
jmp 0x3c27
retq