// File: /workspace/github_c_makefile_star2_O0/negge[P]xlink/src/xlink.c
// Function: xlink_binary_print_map
void xlink_binary_print_map(xlink_binary *bin, FILE *out) {
  int i, j;
  fprintf(out, "Segment layout:\n");
  for (i = 1; i <= bin->nsegments; i++) {
    xlink_segment *seg;
    seg = xlink_binary_get_segment(bin, i);
    fprintf(out, " %5x %8s segment %s %s %s %6s %08x bytes%s\n",
     seg->start, xlink_segment_get_name(seg),
     OMF_SEGDEF_ALIGN[seg->attrib.align], OMF_SEGDEF_USE[seg->attrib.proc],
     OMF_SEGDEF_COMBINE[seg->attrib.combine], xlink_segment_get_class_name(seg),
     seg->length, seg->attrib.big ? ", big" : "");
    for (j = 1; j <= seg->npublics; j++) {
      xlink_public *pub;
      int size;
      pub = xlink_segment_get_public(seg, j);
      size = seg->length - pub->offset;
      if (j < seg->npublics) {
        size = xlink_segment_get_public(seg, j + 1)->offset - pub->offset;
      }
      fprintf(out, " %12x (%08x bytes) %8s\n", pub->offset, size, pub->name);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x80, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0xa2df(%rip), %rsi      # 0xeab0
movb $0x0, %al
callq 0x20e0
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jg 0x4990
movq -0x18(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x44b0
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x30(%rbp), %rax
movl 0x7c(%rax), %eax
movl %eax, -0x5c(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2760
movq %rax, -0x58(%rbp)
movq -0x30(%rbp), %rax
movb 0x10(%rax), %al
shrb $0x5, %al
movzbl %al, %eax
movl %eax, %ecx
leaq 0x127dc(%rip), %rax     # 0x17010
movq (%rax,%rcx,8), %rax
movq %rax, -0x50(%rbp)
movq -0x30(%rbp), %rax
movb 0x10(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, %ecx
leaq 0x127ff(%rip), %rax     # 0x17050
movq (%rax,%rcx,8), %rax
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movb 0x10(%rax), %al
shrb $0x2, %al
andb $0x7, %al
movzbl %al, %eax
movl %eax, %ecx
leaq 0x127ef(%rip), %rax     # 0x17060
movq (%rax,%rcx,8), %rbx
movq -0x30(%rbp), %rdi
callq 0x27a0
movq -0x68(%rbp), %rdi
movl -0x5c(%rbp), %edx
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r8
movq -0x48(%rbp), %r9
movq %rax, %r11
movq -0x30(%rbp), %rax
movl 0x1c(%rax), %r10d
movq -0x30(%rbp), %rax
movb 0x10(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %r14d
leaq 0xafac(%rip), %rax      # 0xf85e
leaq 0xa234(%rip), %rsi      # 0xeaed
cmpl $0x0, %r14d
cmovneq %rsi, %rax
leaq 0xa1f9(%rip), %rsi      # 0xeac1
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x20e0
movl $0x1, -0x28(%rbp)
movl -0x28(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x58(%rcx), %eax
jg 0x4980
movq -0x30(%rbp), %rdi
movl -0x28(%rbp), %esi
callq 0x23d0
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movl 0x1c(%rax), %eax
movq -0x38(%rbp), %rcx
subl 0x124(%rcx), %eax
movl %eax, -0x3c(%rbp)
movl -0x28(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x58(%rcx), %eax
jge 0x494b
movq -0x30(%rbp), %rdi
movl -0x28(%rbp), %esi
addl $0x1, %esi
callq 0x23d0
movl 0x124(%rax), %eax
movq -0x38(%rbp), %rcx
subl 0x124(%rcx), %eax
movl %eax, -0x3c(%rbp)
movq -0x20(%rbp), %rdi
movq -0x38(%rbp), %rax
movl 0x124(%rax), %edx
movl -0x3c(%rbp), %ecx
movq -0x38(%rbp), %r8
addq $0x24, %r8
leaq 0xa188(%rip), %rsi      # 0xeaf3
movb $0x0, %al
callq 0x20e0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x48e9
jmp 0x4982
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x47df
addq $0x80, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopl (%rax)