// File: /workspace/github_c_makefile_star2_O0/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, -0x8(%rsp)
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rsp)
movq -0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rsp)
movl $0x0, -0x1c(%rsp)
movq -0x10(%rsp), %rax
addq $0x1d, %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x28(%rsp)
movq -0x10(%rsp), %rax
addq $0x1d, %rax
addq $0xc00, %rax            # imm = 0xC00
movq %rax, -0x30(%rsp)
movl -0x1c(%rsp), %eax
cmpl 0x88f2(%rip), %eax      # 0xd1dc
jge 0x4abf
movq -0x28(%rsp), %rax
movslq -0x1c(%rsp), %rcx
movsbl (%rax,%rcx), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, -0x40(%rsp)
subl $0x33, %eax
ja 0x4a6f
movq -0x40(%rsp), %rax
leaq 0x5957(%rip), %rcx      # 0xa274
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
jmp 0x4a6f
movq -0x18(%rsp), %rax
addq $0x74, %rax
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x30(%rsp), %rax
movslq -0x1c(%rsp), %rcx
movsbl (%rax,%rcx), %eax
subl 0x8789(%rip), %eax      # 0xd20c
movl %eax, -0x20(%rsp)
movq -0x18(%rsp), %rax
addq $0xa074, %rax           # imm = 0xA074
movslq -0x1c(%rsp), %rcx
imulq $0xc8, %rcx, %rcx
addq %rcx, %rax
movslq -0x20(%rsp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movl %edx, (%rax,%rcx,4)
movl -0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rsp)
jmp 0x48e0
cmpb $0x0, 0x8712(%rip)      # 0xd1d8
je 0x4d02
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rsp)
movl $0x0, -0x1c(%rsp)
movq -0x38(%rsp), %rax
addq $0x1d, %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x28(%rsp)
movq -0x38(%rsp), %rax
addq $0x1d, %rax
addq $0xc00, %rax            # imm = 0xC00
movq %rax, -0x30(%rsp)
movl -0x1c(%rsp), %eax
cmpl 0x86c8(%rip), %eax      # 0xd1dc
jge 0x4d00
movq -0x28(%rsp), %rax
movslq -0x1c(%rsp), %rcx
movsbl (%rax,%rcx), %eax
addl $-0x41, %eax
movl %eax, %ecx
movq %rcx, -0x48(%rsp)
subl $0x33, %eax
ja 0x4cb0
movq -0x48(%rsp), %rax
leaq 0x565d(%rip), %rcx      # 0xa1a4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
jmp 0x4cb0
movq -0x18(%rsp), %rax
addq $0x5074, %rax           # imm = 0x5074
movslq -0x1c(%rsp), %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x30(%rsp), %rax
movslq -0x1c(%rsp), %rcx
movsbl (%rax,%rcx), %eax
subl 0x8548(%rip), %eax      # 0xd20c
movl %eax, -0x20(%rsp)
movq -0x18(%rsp), %rax
addq $0x3c074, %rax          # imm = 0x3C074
movslq -0x1c(%rsp), %rcx
imulq $0xc8, %rcx, %rcx
addq %rcx, %rax
movslq -0x20(%rsp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movl %edx, (%rax,%rcx,4)
movl -0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rsp)
jmp 0x4b0a
jmp 0x4d02
retq
nopw %cs:(%rax,%rax)