// File: Infinidat[P]slimfastq/recs.cpp
// Function: RecBase::map_space(unsigned char const*, bool)
void RecBase::map_space(const UCHAR* p, bool flip) {
    smap[flip].len = 0;
    smap[flip].off[0] = 0;
    for (int i = 0; ; i++) {
        if (not isword(p[i])) {
            smap[flip].wln [smap[flip].len  ] = i - smap[flip].off[smap[flip].len];
            smap[flip].str[smap[flip].len++] = p[i];
            smap[flip].off[smap[flip].len  ] = i + 1;

            rarely_if (p[i] == 0 or p[i] == '\n')
                break;

            rarely_if(smap[flip].len > 64)
                croak("ERROR: irregulal record (over 64 non alpha non digit). Is it a valid fastq file?");
        }
    }
}

// Assembly:
subq $0x28, %rsp
movb %dl, %al
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rax, %rcx
addq $0xc7d30, %rcx          # imm = 0xC7D30
movb 0x17(%rsp), %dl
andb $0x1, %dl
movzbl %dl, %edx
imulq $0x24c, %rdx, %rdx      # imm = 0x24C
addq %rdx, %rcx
movb $0x0, 0x249(%rcx)
addq $0xc7d30, %rax          # imm = 0xC7D30
movb 0x17(%rsp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
imulq $0x24c, %rcx, %rcx      # imm = 0x24C
addq %rcx, %rax
movl $0x0, (%rax)
movl $0x0, 0x10(%rsp)
movq 0x18(%rsp), %rax
movslq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %edi
callq 0xae20
testb $0x1, %al
jne 0xae04
movq 0x8(%rsp), %rcx
movl 0x10(%rsp), %esi
movq %rcx, %rax
addq $0xc7d30, %rax          # imm = 0xC7D30
movb 0x17(%rsp), %dl
andb $0x1, %dl
movzbl %dl, %edx
imulq $0x24c, %rdx, %rdx      # imm = 0x24C
addq %rdx, %rax
movq %rcx, %rdx
addq $0xc7d30, %rdx          # imm = 0xC7D30
movb 0x17(%rsp), %dil
andb $0x1, %dil
movzbl %dil, %edi
imulq $0x24c, %rdi, %rdi      # imm = 0x24C
addq %rdi, %rdx
movzbl 0x249(%rdx), %edx
subl (%rax,%rdx,4), %esi
movq %rcx, %rax
addq $0xc7d30, %rax          # imm = 0xC7D30
movb 0x17(%rsp), %dl
andb $0x1, %dl
movzbl %dl, %edx
imulq $0x24c, %rdx, %rdx      # imm = 0x24C
addq %rdx, %rax
movq %rcx, %rdx
addq $0xc7d30, %rdx          # imm = 0xC7D30
movb 0x17(%rsp), %dil
andb $0x1, %dil
movzbl %dil, %edi
imulq $0x24c, %rdi, %rdi      # imm = 0x24C
addq %rdi, %rdx
movzbl 0x249(%rdx), %edx
movl %esi, 0x104(%rax,%rdx,4)
movq 0x18(%rsp), %rax
movslq 0x10(%rsp), %rdx
movb (%rax,%rdx), %sil
movq %rcx, %rax
addq $0xc7d30, %rax          # imm = 0xC7D30
movb 0x17(%rsp), %dl
andb $0x1, %dl
movzbl %dl, %edx
imulq $0x24c, %rdx, %rdx      # imm = 0x24C
addq %rdx, %rax
movq %rcx, %rdi
addq $0xc7d30, %rdi          # imm = 0xC7D30
movb 0x17(%rsp), %dl
andb $0x1, %dl
movzbl %dl, %edx
imulq $0x24c, %rdx, %rdx      # imm = 0x24C
addq %rdx, %rdi
movb 0x249(%rdi), %dl
movb %dl, %r8b
addb $0x1, %r8b
movb %r8b, 0x249(%rdi)
movzbl %dl, %edx
movb %sil, 0x208(%rax,%rdx)
movl 0x10(%rsp), %edx
addl $0x1, %edx
movq %rcx, %rax
addq $0xc7d30, %rax          # imm = 0xC7D30
movb 0x17(%rsp), %sil
andb $0x1, %sil
movzbl %sil, %esi
imulq $0x24c, %rsi, %rsi      # imm = 0x24C
addq %rsi, %rax
addq $0xc7d30, %rcx          # imm = 0xC7D30
movb 0x17(%rsp), %sil
andb $0x1, %sil
movzbl %sil, %esi
imulq $0x24c, %rsi, %rsi      # imm = 0x24C
addq %rsi, %rcx
movzbl 0x249(%rcx), %ecx
movl %edx, (%rax,%rcx,4)
movq 0x18(%rsp), %rax
movslq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x7(%rsp)
je 0xadbd
movq 0x18(%rsp), %rax
movslq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0xa, %eax
sete %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0xadc7
jmp 0xadc9
jmp 0xae16
movq 0x8(%rsp), %rax
addq $0xc7d30, %rax          # imm = 0xC7D30
movb 0x17(%rsp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
imulq $0x24c, %rcx, %rcx      # imm = 0x24C
addq %rcx, %rax
movzbl 0x249(%rax), %eax
cmpl $0x40, %eax
jle 0xae02
leaq 0x62b0(%rip), %rdi      # 0x110ab
movb $0x0, %al
callq 0x3450
jmp 0xae04
jmp 0xae06
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0xac1d
addq $0x28, %rsp
retq
nopl (%rax,%rax)