// File: /workspace/github_cpp_makefile_star2_O2/Infinidat[P]slimfastq/usrs.cpp
// Function: UsrLoad::update()
void UsrLoad::update() {

    rarely_if(m_last.i_long == g_record_count) {
        UCHAR c = '@';
        fputc(c, m_out);
#define PUT_LINE(X) do { c = X->get_chr(); fputc(c, m_out); } while (c != '\n')
        PUT_LINE(x_lrec);
        PUT_LINE(x_lgen);
        PUT_LINE(x_lrec);
        PUT_LINE(x_lqlt);
#undef PUT_LINE
        m_last.i_long += x_lrec->get();
        g_record_count++;
        return update();
    }

    rarely_if(m_last.i_llen == g_record_count) {
        m_llen = x_llen -> get();
        m_qlen = m_llen;
        m_last.i_llen += x_llen->get();
        m_gen[m_llen+1] = '\n';
        m_gen[m_llen+2] = '+';
    }
    rarely_if(m_last.i_qlen == g_record_count) {
        m_qlen = x_qlen -> get();
        m_last.i_qlen += x_qlen->get();
    }
    else if (m_qlen != m_llen)
        m_qlen = m_llen;
    rarely_if(m_solid and
              m_last.i_sgen == g_record_count) {
        m_last.solid_pf_gen = m_gen[0] = x_sgen->get_chr();
        m_last.i_sgen += x_sgen->get();
    }
    rarely_if(m_solid and
              m_last.i_sqlt == g_record_count) {
        m_last.solid_pf_qlt = m_qlt[0] = x_sqlt->get_chr();
        m_last.i_sqlt += x_sqlt->get();
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x20(%rdi), %rax
leaq 0x727f(%rip), %r15      # 0xf1d0
movq (%r15), %rcx
pushq $0x40
popq %rbp
cmpq %rcx, %rax
jne 0x8015
movq 0x30(%rbx), %rsi
movl %ebp, %edi
callq 0x2250
movq 0x240b0(%rbx), %rdi
callq 0x8708
movzbl %al, %r14d
movq 0x30(%rbx), %rsi
movl %r14d, %edi
callq 0x2250
cmpb $0xa, %r14b
jne 0x7f6b
movq 0x240a0(%rbx), %rdi
callq 0x8708
movzbl %al, %r14d
movq 0x30(%rbx), %rsi
movl %r14d, %edi
callq 0x2250
cmpb $0xa, %r14b
jne 0x7f8d
movq 0x240b0(%rbx), %rdi
callq 0x8708
movzbl %al, %r14d
movq 0x30(%rbx), %rsi
movl %r14d, %edi
callq 0x2250
cmpb $0xa, %r14b
jne 0x7faf
movq 0x240a8(%rbx), %rdi
callq 0x8708
movzbl %al, %r14d
movq 0x30(%rbx), %rsi
movl %r14d, %edi
callq 0x2250
cmpb $0xa, %r14b
jne 0x7fd1
movq 0x240b0(%rbx), %rdi
callq 0x87ba
addq 0x20(%rbx), %rax
movq %rax, 0x20(%rbx)
movq (%r15), %rcx
incq %rcx
movq %rcx, (%r15)
jmp 0x7f57
cmpq %rcx, (%rbx)
je 0x80ac
cmpq %rcx, 0x8(%rbx)
je 0x80ef
movq 0x38(%rbx), %rax
cmpq %rax, 0x48(%rbx)
je 0x8036
movq %rax, 0x48(%rbx)
movb 0x51(%rbx), %al
cmpb $0x1, %al
jne 0x8043
cmpq %rcx, 0x10(%rbx)
je 0x8058
testb $0x1, %al
je 0x804d
cmpq %rcx, 0x18(%rbx)
je 0x8085
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x24090(%rbx), %rdi
callq 0x8708
movb %al, 0x14065(%rbx)
movb %al, 0x28(%rbx)
movq 0x24090(%rbx), %rdi
callq 0x87ba
addq %rax, 0x10(%rbx)
movb 0x51(%rbx), %al
movq (%r15), %rcx
jmp 0x8043
movq 0x24098(%rbx), %rdi
callq 0x8708
movb %al, 0x4063(%rbx)
movb %al, 0x29(%rbx)
movq 0x24098(%rbx), %rdi
callq 0x87ba
addq %rax, 0x18(%rbx)
jmp 0x804d
movq 0x24080(%rbx), %rdi
callq 0x87ba
movq %rax, 0x38(%rbx)
movq %rax, 0x48(%rbx)
movq 0x24080(%rbx), %rdi
callq 0x87ba
addq %rax, (%rbx)
movq 0x38(%rbx), %rax
movb $0xa, 0x14066(%rax,%rbx)
movq 0x38(%rbx), %rax
movb $0x2b, 0x14067(%rax,%rbx)
movq (%r15), %rcx
jmp 0x801e
movq 0x24088(%rbx), %rdi
callq 0x87ba
movq %rax, 0x48(%rbx)
movq 0x24088(%rbx), %rdi
callq 0x87ba
addq %rax, 0x8(%rbx)
movq (%r15), %rcx
jmp 0x8036
nop