// File: /workspace/github_cpp_makefile_star2_O3/ruankotovich[P]B-Tree/src/iohandler.cpp
// Function: IOHandler::parseNext()
void IOHandler::parseNext()
{
  if (fscanf(this->file, "\"%d\";", &this->idBuffer) == 1) {
    // READ TITLE
    readColumn(this->file, this->readBuffer, ';');

    std::memcpy(this->titleBuffer, this->readBuffer, FIELD_TITLE_MAX_SIZE);
    this->titleBuffer[FIELD_TITLE_MAX_SIZE - 1] = '\0';
    // READ YEAR
    fscanf(this->file, "\"%d\";", &this->yearBuffer);

    // READ AUTHOR
    readColumn(this->file, this->readBuffer, ';');
    std::memcpy(this->authorsBuffer, this->readBuffer, FIELD_AUTHORS_MAX_SIZE);
    this->authorsBuffer[FIELD_AUTHORS_MAX_SIZE - 1] = '\0';
    // READ CITATION
    fscanf(this->file, "\"%d\";", &this->citationsBuffer);

    // READ DATE
    readColumn(this->file, this->readBuffer, ';');
    std::memcpy(this->dateBuffer, this->readBuffer, FIELD_DATE_MAX_SIZE);
    this->dateBuffer[FIELD_DATE_MAX_SIZE - 1] = '\0';
    // READ SNIPPET
    readColumn(this->file, readBuffer, ';');
    std::memcpy(this->snippetBuffer, this->readBuffer, FIELD_SNIPPET_MAX_SIZE);
    this->snippetBuffer[FIELD_SNIPPET_MAX_SIZE - 1] = '\0';
    this->state = IOHANDLER_READY;
  } else {
    this->state = IOHANDLER_END;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rdi
leaq 0xc(%rbx), %rdx
leaq 0x29f2(%rip), %rsi      # 0x4004
xorl %eax, %eax
callq 0x1170
movb $0x2, %bpl
cmpl $0x1, %eax
jne 0x19fc
movq (%rbx), %r15
leaq 0x958(%rbx), %r14
movq %r15, %rdi
callq 0x1130
cmpb $0x4e, %al
jne 0x1675
leaq 0x29cf(%rip), %rsi      # 0x4011
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x29c3(%rip), %rsi      # 0x4016
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x29b8(%rip), %rsi      # 0x401c
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
movl $0x1, %eax
jmp 0x16f1
cmpb $0x3b, %al
setne %r13b
movq %r15, %rdi
callq 0x1130
movl %eax, %ebp
xorl %r12d, %r12d
movq %r15, %rdi
callq 0x1130
testb $0x1, %r13b
je 0x16a0
movslq %r12d, %rcx
incl %r12d
movb %bpl, (%r14,%rcx)
cmpb $0xd, %bpl
je 0x16da
movzbl %bpl, %ecx
cmpl $0x3b, %ecx
je 0x16ca
cmpl $0x22, %ecx
jne 0x16d3
cmpb $0xa, %al
je 0x16ee
movzbl %al, %ecx
cmpl $0x3b, %ecx
je 0x16ee
cmpl $0xff, %ecx
jne 0x16d3
jmp 0x16ee
xorl %r13d, %r13d
movl %eax, %ebp
cmpb $0x22, %al
je 0x1688
movb $0x1, %r13b
movl %eax, %ebp
jmp 0x1688
cmpb $0xa, %al
je 0x16ee
movzbl %al, %ecx
movb $0x1, %r13b
movl %eax, %ebp
cmpl $0xff, %ecx
jne 0x1688
movslq %r12d, %rax
xorl %r12d, %r12d
movb %r12b, 0x957(%rbx,%rax)
leaq 0x10(%rbx), %rdi
movl $0x12c, %edx            # imm = 0x12C
movq %r14, %rsi
callq 0x1090
movb %r12b, 0x13b(%rbx)
movq (%rbx), %rdi
leaq 0x13c(%rbx), %rdx
leaq 0x28df(%rip), %rsi      # 0x4004
xorl %eax, %eax
callq 0x1170
movq (%rbx), %r15
movq %r15, %rdi
callq 0x1130
cmpb $0x4e, %al
jne 0x1775
leaq 0x28cf(%rip), %rsi      # 0x4011
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x28c3(%rip), %rsi      # 0x4016
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x28b8(%rip), %rsi      # 0x401c
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
movl $0x1, %eax
jmp 0x17ee
cmpb $0x3b, %al
setne %r13b
movq %r15, %rdi
callq 0x1130
movl %eax, %ebp
movq %r15, %rdi
callq 0x1130
testb $0x1, %r13b
je 0x179d
movslq %r12d, %rcx
incl %r12d
movb %bpl, (%r14,%rcx)
cmpb $0xd, %bpl
je 0x17d7
movzbl %bpl, %ecx
cmpl $0x3b, %ecx
je 0x17c7
cmpl $0x22, %ecx
jne 0x17d0
cmpb $0xa, %al
je 0x17eb
movzbl %al, %ecx
cmpl $0x3b, %ecx
je 0x17eb
cmpl $0xff, %ecx
jne 0x17d0
jmp 0x17eb
xorl %r13d, %r13d
movl %eax, %ebp
cmpb $0x22, %al
je 0x1785
movb $0x1, %r13b
movl %eax, %ebp
jmp 0x1785
cmpb $0xa, %al
je 0x17eb
movzbl %al, %ecx
movb $0x1, %r13b
movl %eax, %ebp
cmpl $0xff, %ecx
jne 0x1785
movslq %r12d, %rax
xorl %r12d, %r12d
movb %r12b, 0x957(%rbx,%rax)
leaq 0x140(%rbx), %rdi
movl $0x400, %edx            # imm = 0x400
movq %r14, %rsi
callq 0x1090
movb %r12b, 0x53f(%rbx)
movq (%rbx), %rdi
leaq 0x540(%rbx), %rdx
leaq 0x27df(%rip), %rsi      # 0x4004
xorl %eax, %eax
callq 0x1170
movq (%rbx), %r15
movq %r15, %rdi
callq 0x1130
cmpb $0x4e, %al
jne 0x1875
leaq 0x27cf(%rip), %rsi      # 0x4011
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x27c3(%rip), %rsi      # 0x4016
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x27b8(%rip), %rsi      # 0x401c
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
movl $0x1, %eax
jmp 0x18ee
cmpb $0x3b, %al
setne %r13b
movq %r15, %rdi
callq 0x1130
movl %eax, %ebp
movq %r15, %rdi
callq 0x1130
testb $0x1, %r13b
je 0x189d
movslq %r12d, %rcx
incl %r12d
movb %bpl, (%r14,%rcx)
cmpb $0xd, %bpl
je 0x18d7
movzbl %bpl, %ecx
cmpl $0x3b, %ecx
je 0x18c7
cmpl $0x22, %ecx
jne 0x18d0
cmpb $0xa, %al
je 0x18eb
movzbl %al, %ecx
cmpl $0x3b, %ecx
je 0x18eb
cmpl $0xff, %ecx
jne 0x18d0
jmp 0x18eb
xorl %r13d, %r13d
movl %eax, %ebp
cmpb $0x22, %al
je 0x1885
movb $0x1, %r13b
movl %eax, %ebp
jmp 0x1885
cmpb $0xa, %al
je 0x18eb
movzbl %al, %ecx
movb $0x1, %r13b
movl %eax, %ebp
cmpl $0xff, %ecx
jne 0x1885
movslq %r12d, %rax
xorl %r12d, %r12d
movb %r12b, 0x957(%rbx,%rax)
movl 0x10(%r14), %eax
movl %eax, 0x554(%rbx)
movups (%r14), %xmm0
movups %xmm0, 0x544(%rbx)
movb %r12b, 0x557(%rbx)
movq (%rbx), %r15
movq %r15, %rdi
callq 0x1130
cmpb $0x4e, %al
jne 0x195e
leaq 0x26e6(%rip), %rsi      # 0x4011
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x26da(%rip), %rsi      # 0x4016
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
leaq 0x26cf(%rip), %rsi      # 0x401c
movq %r15, %rdi
xorl %eax, %eax
callq 0x1170
movl $0x1, %eax
jmp 0x19d7
cmpb $0x3b, %al
setne %r13b
movq %r15, %rdi
callq 0x1130
movl %eax, %ebp
movq %r15, %rdi
callq 0x1130
testb $0x1, %r13b
je 0x1986
movslq %r12d, %rcx
incl %r12d
movb %bpl, (%r14,%rcx)
cmpb $0xd, %bpl
je 0x19c0
movzbl %bpl, %ecx
cmpl $0x3b, %ecx
je 0x19b0
cmpl $0x22, %ecx
jne 0x19b9
cmpb $0xa, %al
je 0x19d4
movzbl %al, %ecx
cmpl $0x3b, %ecx
je 0x19d4
cmpl $0xff, %ecx
jne 0x19b9
jmp 0x19d4
xorl %r13d, %r13d
movl %eax, %ebp
cmpb $0x22, %al
je 0x196e
movb $0x1, %r13b
movl %eax, %ebp
jmp 0x196e
cmpb $0xa, %al
je 0x19d4
movzbl %al, %ecx
movb $0x1, %r13b
movl %eax, %ebp
cmpl $0xff, %ecx
jne 0x196e
movslq %r12d, %rax
xorl %ebp, %ebp
movb %bpl, 0x957(%rbx,%rax)
leaq 0x558(%rbx), %rdi
movl $0x400, %edx            # imm = 0x400
movq %r14, %rsi
callq 0x1090
movb %bpl, 0x957(%rbx)
movb %bpl, 0x8(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop