// File: /workspace/github_cpp_makefile_star2_O1/lvandeve[P]lodepng/pngdetail.cpp
// Function: displayFilterTypes(Data&, Options const&)
void displayFilterTypes(Data& data, const Options& options) {
  std::cout << (options.use_hex ? std::hex: std::dec);
  data.loadFile();
  if(data.error) return;
  const std::vector<unsigned char>& buffer = data.buffer;
  std::vector<std::vector<unsigned char> > types;
  unsigned error = lodepng::getFilterTypesInterlaced(types, buffer);
  if(error) {
    std::cout << "Error getting filter types" << std::endl;
    return;
  }

  if(types.size() == 7) {
    std::cout << "Filter types (Adam7 interlaced):" << std::endl;
    for(int j = 0; j < 7; j++) {
      std::cout << " Pass " << (j + 1) << ": ";
      for(size_t i = 0; i < types[j].size(); i++) {
        std::cout << (int)(types[j][i]);
      }
      std::cout << std::endl;
    }
  } else {
    std::cout << "Filter types: ";
    for(size_t i = 0; i < types[0].size(); i++) {
      std::cout << (int)(types[0][i]);
    }
    std::cout << std::endl;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %r14
leaq 0x65dc(%rip), %rax      # 0x1e2ff
leaq 0x65e5(%rip), %rcx      # 0x1e30f
cmpb $0x0, 0x24(%rsi)
cmovneq %rax, %rcx
movq 0x13297(%rip), %rbx     # 0x2afd0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq *%rcx
leaq 0x20(%r14), %r15
movq 0x20(%r14), %rcx
xorl %eax, %eax
cmpq 0x28(%r14), %rcx
jne 0x17d60
movq %r15, %rdi
movq %r14, %rsi
callq 0xce6c
movl %eax, 0x2d8(%r14)
testl %eax, %eax
jne 0x17dd3
xorps %xmm0, %xmm0
movq %rsp, %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %r15, %rsi
callq 0x115c6
testl %eax, %eax
je 0x17de2
movq 0x13241(%rip), %rdi     # 0x2afd0
leaq 0xbadf(%rip), %rsi      # 0x23875
movl $0x1a, %edx
callq 0x2280
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq 0x13212(%rip), %rdi     # 0x2afd0
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq %rsp, %rdi
callq 0x1509a
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%rsp), %rax
subq (%rsp), %rax
cmpq $0xa8, %rax
jne 0x17ef3
movq 0x131d2(%rip), %rbx     # 0x2afd0
leaq 0xba8b(%rip), %rsi      # 0x23890
movl $0x20, %edx
movq %rbx, %rdi
callq 0x2280
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq 0x131a0(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
xorl %r13d, %r13d
leaq 0xba67(%rip), %r14      # 0x238b1
leaq 0xc4dd(%rip), %r15      # 0x2432e
cmpq $0x7, %r13
je 0x17dcb
movl $0x6, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2280
leaq 0x1(%r13), %r12
movq %rbx, %rdi
movl %r12d, %esi
callq 0x2380
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2280
movq (%rsp), %rcx
leaq (%r13,%r13,2), %r13
movq (%rcx,%r13,8), %rax
cmpq %rax, 0x8(%rcx,%r13,8)
je 0x17ec4
xorl %ebp, %ebp
movzbl (%rax,%rbp), %esi
movq %rbx, %rdi
callq 0x2380
incq %rbp
movq (%rsp), %rcx
movq (%rcx,%r13,8), %rax
movq 0x8(%rcx,%r13,8), %rcx
subq %rax, %rcx
cmpq %rcx, %rbp
jb 0x17ea0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq %r12, %r13
jmp 0x17e51
movq 0x130d6(%rip), %rdi     # 0x2afd0
leaq 0xb9b7(%rip), %rsi      # 0x238b8
movl $0xe, %edx
callq 0x2280
movq (%rsp), %rcx
movq (%rcx), %rax
cmpq %rax, 0x8(%rcx)
je 0x17da0
xorl %r15d, %r15d
movq 0x130aa(%rip), %r14     # 0x2afd0
movzbl (%rax,%r15), %esi
movq %r14, %rdi
callq 0x2380
incq %r15
movq (%rsp), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
subq %rax, %rcx
cmpq %rcx, %r15
jb 0x17f26
jmp 0x17da0
jmp 0x17f54
jmp 0x17f54
jmp 0x17f54
movq %rax, %rbx
movq %rsp, %rdi
callq 0x1509a
movq %rbx, %rdi
callq 0x2390
movq %rax, %rdi
callq 0x14eb9