// File: /workspace/github_c_makefile_star2_O0/yhg926[P]public_kssd/co2mco.c
// Function: co2unitllmco
mco_entry_stat_t** co2unitllmco(const char *codirname, int bin_sz, int bin_id, int component_id)
{
 size_t comp_sz = (1LLU << 4*COMPONENT_SZ) ;
 mco_entry_stat_t** mco = calloc(comp_sz, sizeof(mco_entry_stat_t*) );
 gid_arr_llist_t* tmp;
 char cofname[PATHLEN];
 mmp_uint_t mmpcofile;
 unsigned int ind;
 int mod;
 for(unsigned int i = 0 ; i < bin_sz ; i++)
 {
  sprintf(cofname,"%s/%d.%d.co.%d",codirname,bin_id,i,component_id);
  mmpcofile = mmp_uint_arr(cofname);
  int ctx_num = mmpcofile.fsize/sizeof(unsigned int);
  for(int j = 0; j < ctx_num; j++ )
  {
   ind = mmpcofile.mmpco[j];
   if(mco[ind] == NULL) mco[ind] = calloc( 1, sizeof(mco_entry_stat_t) );
   mod = mco[ind]->g_num % GID_ARR_SZ ;
   if(mod == 0)
   {
    if ( (tmp = malloc(sizeof(gid_arr_llist_t)) ) == NULL) err(errno,"co2unitllmco()") ;
    tmp->next = mco[ind]->next;
    mco[ind]->next = tmp ;
   }
   mco[ind]->next->gidobj[mod] = i ;
   mco[ind]->g_num++;
  };
  munmap(mmpcofile.mmpco, mmpcofile.fsize);
 }
 return mco;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq $0x10000000, -0x20(%rbp) # imm = 0x10000000
movq -0x20(%rbp), %rdi
movl $0x8, %esi
callq 0x3270
movq %rax, -0x28(%rbp)
movl $0x0, -0x14c(%rbp)
movl -0x14c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jae 0x46aa
leaq -0x130(%rbp), %rdi
movq -0x8(%rbp), %rdx
movl -0x10(%rbp), %ecx
movl -0x14c(%rbp), %r8d
movl -0x14(%rbp), %r9d
leaq 0x17c10(%rip), %rsi     # 0x1c11b
movb $0x0, %al
callq 0x3400
leaq -0x130(%rbp), %rdi
callq 0x3b60
movq %rax, -0x160(%rbp)
movq %rdx, -0x158(%rbp)
movq -0x160(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x158(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x140(%rbp), %rax
shrq $0x2, %rax
movl %eax, -0x164(%rbp)
movl $0x0, -0x168(%rbp)
movl -0x168(%rbp), %eax
cmpl -0x164(%rbp), %eax
jge 0x4683
movq -0x138(%rbp), %rax
movslq -0x168(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x144(%rbp)
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
jne 0x45bd
movl $0x1, %edi
movl $0x10, %esi
callq 0x3270
movq %rax, %rdx
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movl (%rax), %eax
andl $0xf, %eax
movl %eax, -0x148(%rbp)
cmpl $0x0, -0x148(%rbp)
jne 0x4638
movl $0x48, %edi
callq 0x3310
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x4608
callq 0x3050
movl (%rax), %edi
leaq 0x17b29(%rip), %rsi     # 0x1c12a
movb $0x0, %al
callq 0x3300
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %edx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x8(%rax)
movl -0x14c(%rbp), %edx
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movslq -0x148(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x28(%rbp), %rax
movl -0x144(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movl -0x168(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x168(%rbp)
jmp 0x4563
movq -0x138(%rbp), %rdi
movq -0x140(%rbp), %rsi
callq 0x3330
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
jmp 0x44dc
movq -0x28(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopw (%rax,%rax)