// File: /workspace/github_cpp_makefile_star2_O3/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 0x66eb(%rip), %rax      # 0x1e1e9
leaq 0x66f4(%rip), %rcx      # 0x1e1f9
cmpb $0x0, 0x24(%rsi)
cmovneq %rax, %rcx
movq 0x134bc(%rip), %rbx     # 0x2afd0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
callq *%rcx
leaq 0x20(%r14), %r15
movq 0x20(%r14), %rax
cmpq 0x28(%r14), %rax
je 0x17ba3
movl $0x0, 0x2d8(%r14)
xorps %xmm0, %xmm0
movq %rsp, %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %r15, %rsi
callq 0x11242
testl %eax, %eax
je 0x17bc8
movq 0x13473(%rip), %rdi     # 0x2afd0
leaq 0xbf31(%rip), %rsi      # 0x23a95
movl $0x1a, %edx
callq 0x2290
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq 0x13444(%rip), %rdi     # 0x2afd0
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq %rsp, %rdi
callq 0x14e88
jmp 0x17bb9
movq %r15, %rdi
movq %r14, %rsi
callq 0xd09e
movl %eax, 0x2d8(%r14)
testl %eax, %eax
je 0x17b39
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 0x17cd9
movq 0x133ec(%rip), %rbx     # 0x2afd0
leaq 0xbec5(%rip), %rsi      # 0x23ab0
movl $0x20, %edx
movq %rbx, %rdi
callq 0x2290
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq 0x133ba(%rip), %rbx     # 0x2afd0
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
xorl %r13d, %r13d
leaq 0xbea1(%rip), %r14      # 0x23ad1
leaq 0xc8e1(%rip), %r15      # 0x24518
cmpq $0x7, %r13
je 0x17b99
movl $0x6, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2290
leaq 0x1(%r13), %r12
movq %rbx, %rdi
movl %r12d, %esi
callq 0x2390
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2290
movq (%rsp), %rcx
leaq (%r13,%r13,2), %r13
movq (%rcx,%r13,8), %rax
cmpq %rax, 0x8(%rcx,%r13,8)
je 0x17caa
xorl %ebp, %ebp
movzbl (%rax,%rbp), %esi
movq %rbx, %rdi
callq 0x2390
incq %rbp
movq (%rsp), %rcx
movq (%rcx,%r13,8), %rax
movq 0x8(%rcx,%r13,8), %rcx
subq %rax, %rcx
cmpq %rcx, %rbp
jb 0x17c86
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq %r12, %r13
jmp 0x17c37
movq 0x132f0(%rip), %rdi     # 0x2afd0
leaq 0xbdf1(%rip), %rsi      # 0x23ad8
movl $0xe, %edx
callq 0x2290
movq (%rsp), %rcx
movq (%rcx), %rax
cmpq %rax, 0x8(%rcx)
je 0x17b6e
xorl %r15d, %r15d
movq 0x132c4(%rip), %r14     # 0x2afd0
movzbl (%rax,%r15), %esi
movq %r14, %rdi
callq 0x2390
incq %r15
movq (%rsp), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
subq %rax, %rcx
cmpq %rcx, %r15
jb 0x17d0c
jmp 0x17b6e
jmp 0x17d3a
jmp 0x17d3a
jmp 0x17d3a
movq %rax, %rbx
movq %rsp, %rdi
callq 0x14e88
movq %rbx, %rdi
callq 0x23a0
movq %rax, %rdi
callq 0x14c96