// File: /workspace/github_c_makefile_star2_O0/gmcvicker[P]check_fastq/split_fastq.c
// Function: read_fastq_lines
static int read_fastq_lines(ReadSeq *read, gzFile f) {
  /* read the four lines that make up fastq record */
  if(gzgets(f, read->line1, MAX_LINE) == NULL) {
    /* end of file */
    read->status = FASTQ_END;
    read->line1[0] = '\0';
    read->line2[0] = '\0';
    read->line3[0] = '\0';
    read->line4[0] = '\0';
    return FASTQ_END;
  }

  /* check that this line was a header starting with '@' */
  if(read->line1[0] != '@') {
    my_warn("%s:%d: fastq header line does not start with '@'",
	    __FILE__, __LINE__);
    read->status = FASTQ_ERR;
    read->line2[0] = '\0';
    read->line3[0] = '\0';
    read->line4[0] = '\0';
    /* move ahead in file to next line that starts with '@' */
    seek_next_header(f);
    return read->status;
  }

  check_line_len(read, read->line1, f);
  util_str_rstrip(read->line1);

  /* read second line */
  if(gzgets(f, read->line2, MAX_LINE) == NULL) {
    /* end of file */
    my_warn("%s:%d: fastq file ended mid-record\n",
	    __FILE__, __LINE__);
    read->status = FASTQ_ERR;
    read->line2[0] = '\0';
    read->line3[0] = '\0';
    read->line4[0] = '\0';
    return FASTQ_ERR;
  }
  check_line_len(read, read->line2, f);
  util_str_rstrip(read->line2);

  /* read third line */
  if(gzgets(f, read->line3, MAX_LINE) == NULL) {
    /* end of file */
    my_warn("%s:%d: fastq file ended mid-record\n",
	    __FILE__, __LINE__);
    read->status = FASTQ_ERR;
    read->line3[0] = '\0';
    read->line4[0] = '\0';
    return FASTQ_ERR;
  }
  check_line_len(read, read->line3, f);
  util_str_rstrip(read->line3);

  /* read fourth line */
  if(gzgets(f, read->line4, MAX_LINE) == NULL) {
    /* end of file */
    my_warn("%s:%d: fastq file ended mid-record\n", __FILE__, __LINE__);
    read->status = FASTQ_ERR;
    read->line4[0] = '\0';
    return FASTQ_ERR;
  }
  check_line_len(read, read->line4, f);
  util_str_rstrip(read->line4);

  return read->status;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x41e, %rsi            # imm = 0x41E
movl $0x400, %edx            # imm = 0x400
callq 0x10c0
cmpq $0x0, %rax
jne 0x1cf5
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x1420(%rax) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movb $0x0, 0x41e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x81e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0xc1e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x101e(%rax)
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1f4e
movq -0x10(%rbp), %rax
movsbl 0x41e(%rax), %eax
cmpl $0x40, %eax
je 0x1d69
leaq 0x34c1(%rip), %rdi      # 0x51cd
leaq 0x3353(%rip), %rsi      # 0x5066
movl $0x8d, %edx
movb $0x0, %al
callq 0x3fd0
movq -0x10(%rbp), %rax
movl $0x1, 0x1420(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x81e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0xc1e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x101e(%rax)
movq -0x18(%rbp), %rdi
callq 0x21b0
movq -0x10(%rbp), %rax
movl 0x1420(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1f4e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x41e, %rsi            # imm = 0x41E
movq -0x18(%rbp), %rdx
callq 0x2300
movq -0x10(%rbp), %rdi
addq $0x41e, %rdi            # imm = 0x41E
callq 0x3760
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x81e, %rsi            # imm = 0x81E
movl $0x400, %edx            # imm = 0x400
callq 0x10c0
cmpq $0x0, %rax
jne 0x1e05
leaq 0x3447(%rip), %rdi      # 0x51fe
leaq 0x32a8(%rip), %rsi      # 0x5066
movl $0x9e, %edx
movb $0x0, %al
callq 0x3fd0
movq -0x10(%rbp), %rax
movl $0x1, 0x1420(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x81e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0xc1e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x101e(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x1f4e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x81e, %rsi            # imm = 0x81E
movq -0x18(%rbp), %rdx
callq 0x2300
movq -0x10(%rbp), %rdi
addq $0x81e, %rdi            # imm = 0x81E
callq 0x3760
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0xc1e, %rsi            # imm = 0xC1E
movl $0x400, %edx            # imm = 0x400
callq 0x10c0
cmpq $0x0, %rax
jne 0x1e96
leaq 0x33ab(%rip), %rdi      # 0x51fe
leaq 0x320c(%rip), %rsi      # 0x5066
movl $0xac, %edx
movb $0x0, %al
callq 0x3fd0
movq -0x10(%rbp), %rax
movl $0x1, 0x1420(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0xc1e(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x101e(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x1f4e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0xc1e, %rsi            # imm = 0xC1E
movq -0x18(%rbp), %rdx
callq 0x2300
movq -0x10(%rbp), %rdi
addq $0xc1e, %rdi            # imm = 0xC1E
callq 0x3760
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x101e, %rsi           # imm = 0x101E
movl $0x400, %edx            # imm = 0x400
callq 0x10c0
cmpq $0x0, %rax
jne 0x1f19
leaq 0x331a(%rip), %rdi      # 0x51fe
leaq 0x317b(%rip), %rsi      # 0x5066
movl $0xb8, %edx
movb $0x0, %al
callq 0x3fd0
movq -0x10(%rbp), %rax
movl $0x1, 0x1420(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x101e(%rax)
movl $0x1, -0x4(%rbp)
jmp 0x1f4e
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0x101e, %rsi           # imm = 0x101E
movq -0x18(%rbp), %rdx
callq 0x2300
movq -0x10(%rbp), %rdi
addq $0x101e, %rdi           # imm = 0x101E
callq 0x3760
movq -0x10(%rbp), %rax
movl 0x1420(%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)