// File: lemire[P]fastscancount/benchmark/maropuparser.h
// Function: bool MaropuGapReader::loadIntegers<std::vector<unsigned int, std::allocator<unsigned int>>>(std::vector<unsigned int, std::allocator<unsigned int>>&)
bool loadIntegers(container &buffer) {
    uint32_t qty = 0;
    if (!ReadQty(qty))
      return false; // EOF
    buffer.resize(qty);
    errno = 0;
    size_t result = fread(buffer.data(), sizeof(uint32_t), buffer.size(), fd);
    if (result != buffer.size()) {
      if (!errno) {
        // If we can't read, the file maybe truncated, i.e., corrupt
        throw std::runtime_error("The file appears to be truncated/corrupt!");
      }
      std::stringstream err;
      err << "Error reading from file, IO status: " << strerror(errno);
      throw std::runtime_error(err.str());
    }
    return true;
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
movl $0x0, -0x1c(%rbp)
leaq -0x1c(%rbp), %rsi
callq 0x13920
testb $0x1, %al
jne 0x8c8b
movb $0x0, -0x1(%rbp)
jmp 0x8e76
movq -0x18(%rbp), %rdi
movl -0x1c(%rbp), %eax
movl %eax, %esi
callq 0x78a0
callq 0x3050
movl $0x0, (%rax)
movq -0x18(%rbp), %rdi
callq 0x7930
movq %rax, -0x200(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7a40
movq -0x200(%rbp), %rdi
movq %rax, %rdx
movq -0x1f0(%rbp), %rax
movq 0x20(%rax), %rcx
movl $0x4, %esi
callq 0x33b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7a40
movq %rax, %rcx
movq -0x1f8(%rbp), %rax
cmpq %rcx, %rax
je 0x8e72
callq 0x3050
cmpl $0x0, (%rax)
jne 0x8d6d
movl $0x10, %edi
callq 0x3160
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x208(%rbp)
leaq 0xb64c(%rip), %rsi      # 0x1437b
callq 0x3100
jmp 0x8d36
movq -0x208(%rbp), %rdi
movq 0x152ac(%rip), %rsi     # 0x1dff0
movq 0x1526d(%rip), %rdx     # 0x1dfb8
callq 0x3450
movq -0x208(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x3200
jmp 0x8e84
leaq -0x1c0(%rbp), %rdi
callq 0x31e0
leaq -0x1b0(%rbp), %rdi
leaq 0xb61e(%rip), %rsi      # 0x143a5
callq 0x3280
movq %rax, -0x210(%rbp)
jmp 0x8d95
callq 0x3050
movl (%rax), %edi
callq 0x30d0
movq -0x210(%rbp), %rdi
movq %rax, %rsi
callq 0x3280
jmp 0x8db2
movb $0x1, -0x1e1(%rbp)
movl $0x10, %edi
callq 0x3160
movq %rax, -0x218(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x3270
jmp 0x8ddf
movq -0x218(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x3410
jmp 0x8df4
movq -0x218(%rbp), %rdi
movb $0x0, -0x1e1(%rbp)
movq 0x151e7(%rip), %rsi     # 0x1dff0
movq 0x151a8(%rip), %rdx     # 0x1dfb8
callq 0x3450
jmp 0x8e8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x8e64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x8e4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x31b0
testb $0x1, -0x1e1(%rbp)
jne 0x8e56
jmp 0x8e62
movq -0x218(%rbp), %rdi
callq 0x3200
jmp 0x8e64
leaq -0x1c0(%rbp), %rdi
callq 0x3210
jmp 0x8e84
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x3470
nopl (%rax)