// File: /workspace/github_c_makefile_star2_O0/negge[P]xlink/src/xlink.c
// Function: xlink_binary_find_public
xlink_public *xlink_binary_find_public(xlink_binary *bin, const char *symb) {
  xlink_public *ret;
  int i, j, k;
  ret = NULL;
  for (i = 1; i <= bin->nmodules; i++) {
    xlink_module *mod;
    mod = xlink_binary_get_module(bin, i);
    for (j = 1; j <= mod->npublics; j++) {
      xlink_public *pub;
      pub = xlink_module_get_public(mod, j);
      if (!pub->is_local && strcmp(symb, pub->name) == 0) {
        XLINK_ERROR(ret != NULL,
         ("Duplicate public definition found for symbol %s in %s and %s",
         symb, ret->module->filename, mod->filename));
        ret = pub;
      }
    }
  }
  for (i = 1; i <= bin->nlibrarys; i++) {
    xlink_library *lib;
    lib = xlink_binary_get_library(bin, i);
    for (j = 1; j <= lib->nmodules; j++) {
      xlink_module *mod;
      mod = xlink_library_get_module(lib, j);
      for (k = 1; k <= mod->npublics; k++) {
        xlink_public *pub;
        pub = xlink_module_get_public(mod, k);
        if (!pub->is_local && strcmp(symb, pub->name) == 0) {
          XLINK_ERROR(ret != NULL,
           ("Duplicate public definition found for symbol %s in %s and %s",
           symb, ret->module->filename, mod->filename));
          ret = pub;
        }
      }
    }
  }
  XLINK_ERROR(ret == NULL, ("Could not find public definition %s", symb));
  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x30(%rcx), %eax
jg 0x42fd
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x4020
movq %rax, -0x30(%rbp)
movl $0x1, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x150(%rcx), %eax
jg 0x42ed
movq -0x30(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x3700
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpl $0x0, 0x12c(%rax)
jne 0x42dd
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
addq $0x24, %rsi
callq 0x20d0
cmpl $0x0, %eax
jne 0x42dd
jmp 0x429e
cmpq $0x0, -0x18(%rbp)
je 0x42d3
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
movq -0x30(%rbp), %rax
movq (%rax), %rcx
leaq 0xa776(%rip), %rdi      # 0xea38
movb $0x0, %al
callq 0xad90
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x21c0
jmp 0x42d5
movq -0x38(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x42df
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x4256
jmp 0x42ef
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x422f
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x40(%rcx), %eax
jg 0x4409
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x4150
movq %rax, -0x40(%rbp)
movl $0x1, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x40(%rbp), %rcx
cmpl 0x28(%rcx), %eax
jg 0x43f9
movq -0x40(%rbp), %rdi
movl -0x20(%rbp), %esi
callq 0x3ef0
movq %rax, -0x48(%rbp)
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x48(%rbp), %rcx
cmpl 0x150(%rcx), %eax
jg 0x43e9
movq -0x48(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0x3700
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpl $0x0, 0x12c(%rax)
jne 0x43d9
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rsi
addq $0x24, %rsi
callq 0x20d0
cmpl $0x0, %eax
jne 0x43d9
jmp 0x439a
cmpq $0x0, -0x18(%rbp)
je 0x43cf
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
movq -0x48(%rbp), %rax
movq (%rax), %rcx
leaq 0xa67a(%rip), %rdi      # 0xea38
movb $0x0, %al
callq 0xad90
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x21c0
jmp 0x43d1
movq -0x50(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x43db
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4352
jmp 0x43eb
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x432b
jmp 0x43fb
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4304
jmp 0x440b
cmpq $0x0, -0x18(%rbp)
jne 0x442e
movq -0x10(%rbp), %rsi
leaq 0xa658(%rip), %rdi      # 0xea75
movb $0x0, %al
callq 0xad90
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x21c0
jmp 0x4430
movq -0x18(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)