// File: /workspace/github_c_makefile_star2_O0/mikeakohn[P]print_pe/build/../src/minidump.c
// Function: print_minidump_module_list
void print_minidump_module_list(FILE *in)
{
  struct minidump_location_desc_t minidump_location_desc;
  uint32_t n;
  uint32_t num_modules = read_uint32(in);

  printf("  - num_modules: %d\n", num_modules);

  for (n = 0; n < num_modules; n++)
  {
    printf("  -- Module %d --\n", n);
    printf("    base_of_image: 0x%" PRIx64 "\n", read_uint64(in));
    printf("    size_of_image: %u\n", read_uint32(in));
    printf("         checksum: %u\n", read_uint32(in));
    printf("  time_date_stamp: %u\n", read_uint32(in));

    uint32_t module_name_rva = read_uint32(in);
    printf("      module_name: offset=%u", module_name_rva);
    print_minidump_string(in, module_name_rva);

    print_minidump_vs_fixed_file_info(in);

    read_minidump_location_desc(&minidump_location_desc, in);

    printf("        cv_record:\n");
    printf("              [ len_data: %u, ofs_data: %u ]\n",
       minidump_location_desc.len_data,
       minidump_location_desc.ofs_data);

    read_minidump_location_desc(&minidump_location_desc, in);

    printf("      misc_record:\n");
    printf("              [ len_data: %u, ofs_data: %u ]\n",
       minidump_location_desc.len_data,
       minidump_location_desc.ofs_data);

    printf("        reserved0: %" PRId64 "\n", read_uint64(in));
    printf("        reserved1: %" PRId64 "\n", read_uint64(in));
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %esi
leaq 0x2257(%rip), %rdi      # 0x44d9
movb $0x0, %al
callq 0x1050
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jae 0x23e4
movl -0x14(%rbp), %esi
leaq 0x2248(%rip), %rdi      # 0x44ee
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x2241(%rip), %rdi      # 0x4501
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, %esi
leaq 0x2242(%rip), %rdi      # 0x451b
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, %esi
leaq 0x2240(%rip), %rdi      # 0x4532
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, %esi
leaq 0x223e(%rip), %rdi      # 0x4549
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1a00
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %esi
leaq 0x2238(%rip), %rdi      # 0x4560
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x23f0
movq -0x8(%rbp), %rdi
callq 0x24b0
movq -0x8(%rbp), %rsi
leaq -0x10(%rbp), %rdi
callq 0x1ec0
leaq 0x2225(%rip), %rdi      # 0x457d
movb $0x0, %al
callq 0x1050
movl -0x10(%rbp), %esi
movl -0xc(%rbp), %edx
leaq 0x2225(%rip), %rdi      # 0x4591
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rsi
leaq -0x10(%rbp), %rdi
callq 0x1ec0
leaq 0x2238(%rip), %rdi      # 0x45bf
movb $0x0, %al
callq 0x1050
movl -0x10(%rbp), %esi
movl -0xc(%rbp), %edx
leaq 0x21f6(%rip), %rdi      # 0x4591
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x221e(%rip), %rdi      # 0x45d3
movb $0x0, %al
callq 0x1050
movq -0x8(%rbp), %rdi
callq 0x1930
movq %rax, %rsi
leaq 0x221c(%rip), %rdi      # 0x45eb
movb $0x0, %al
callq 0x1050
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x2290
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)