// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/shu_unitfile.c
// Function: shu_unitfile_compare_inner_key_filenames
static int shu_unitfile_compare_inner_key_filenames(lua_State *L,
                                                   GtShuUnitFileInfo *unit_info,
                                                   bool *file_set,
                                                   GtStr *mapping_filename,
                                                   GtUword genome_idx,
                                                   GtError *err)
{
  bool found = false;
  int had_err = 0;
  GtUword file_idx;
  GtStr *encseq_filename;

  gt_str_reset(mapping_filename);
  gt_str_append_cstr(mapping_filename, lua_tostring(L, -1));

  for (file_idx = 0;
       file_idx < unit_info->num_of_files && !had_err && !found;
       file_idx++) {

    encseq_filename = gt_str_array_get_str(unit_info->file_names, file_idx);
    if (gt_str_cmp(encseq_filename, mapping_filename) == 0) {
      if (file_set[file_idx] != false) {
        gt_error_set(err, "file %s double entry",
                     gt_str_get(mapping_filename));
        had_err = -1;
      }
      else {
        file_set[file_idx] = true;
        unit_info->map_files[file_idx] = genome_idx;
        found = true;
      }
    }
  }
  if (!found && !had_err) {
    gt_error_set(err, "file %s not found in index, part of genome %s",
                 gt_str_get(mapping_filename),
                 gt_str_get(gt_str_array_get_str(unit_info->genome_names,
                                                 genome_idx)));
    had_err = -1;
  }
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movq %rdx, 0x60(%rsp)
movq %rcx, 0x58(%rsp)
movq %r8, 0x50(%rsp)
movq %r9, 0x48(%rsp)
movb $0x0, 0x47(%rsp)
movl $0x0, 0x40(%rsp)
movq 0x58(%rsp), %rdi
callq 0x11e110
movq 0x58(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x70(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %edx
callq 0x334f50
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x11d550
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rcx
movq 0x68(%rsp), %rdx
xorl %eax, %eax
cmpq 0x8(%rdx), %rcx
movb %al, 0x27(%rsp)
jae 0x2ee4a9
xorl %eax, %eax
cmpl $0x0, 0x40(%rsp)
movb %al, 0x27(%rsp)
jne 0x2ee4a9
movb 0x47(%rsp), %al
xorb $-0x1, %al
movb %al, 0x27(%rsp)
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0x2ee4b6
jmp 0x2ee56e
movq 0x68(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x11f960
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x11e170
cmpl $0x0, %eax
jne 0x2ee559
movq 0x60(%rsp), %rax
movq 0x38(%rsp), %rcx
movb (%rax,%rcx), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x2ee52d
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x58(%rsp), %rdi
callq 0x11dee0
movq 0x18(%rsp), %rdi
movq %rax, %rdx
leaq 0x2a0801(%rip), %rsi    # 0x58ed1d
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x40(%rsp) # imm = 0xFFFFFFFF
jmp 0x2ee557
movq 0x60(%rsp), %rax
movq 0x38(%rsp), %rcx
movb $0x1, (%rax,%rcx)
movq 0x50(%rsp), %rdx
movq 0x68(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x38(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movb $0x1, 0x47(%rsp)
jmp 0x2ee559
jmp 0x2ee55b
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x2ee47c
testb $0x1, 0x47(%rsp)
jne 0x2ee5d3
cmpl $0x0, 0x40(%rsp)
jne 0x2ee5d3
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x58(%rsp), %rdi
callq 0x11dee0
movq %rax, 0x10(%rsp)
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x50(%rsp), %rsi
callq 0x11f960
movq %rax, %rdi
callq 0x11dee0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
movq %rax, %rcx
leaq 0x2a076e(%rip), %rsi    # 0x58ed32
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x40(%rsp) # imm = 0xFFFFFFFF
movl 0x40(%rsp), %eax
addq $0x78, %rsp
retq
nopl (%rax)