WbAddLookupEntryEx

INT64 __fastcall WbAddLookupEntryEx(INT64 *a1, INT64 a2, INT64 a3, UINT64 a4){
  unsigned int v4; 
  NTSTATUS v5; 
  unsigned int v6; 
  unsigned int v7; 
  int v10; 
  v4 = *((_DWORD *)a1 + 1);
  v5 = 0;
  v6 = *((_DWORD *)a1 + 2);
  v7 = a4;
  if( v4 + 1 >= v6 )
  {
    v5 = WbReAlloc((PVOID)a1[2], v6 * *(_DWORD *)a1, *(_DWORD *)a1 * (v6 + *((_DWORD *)a1 + 6)));
    if( v5 < 0 )
      return(unsigned int)v5;
    *((_DWORD *)a1 + 2) += *((_DWORD *)a1 + 6);
    v6 = *((_DWORD *)a1 + 2);
    v4 = *((_DWORD *)a1 + 1);
  }
  if( v7 <= v4 && v6 )
  {
    memmove(
      (UINT8 *)(a1[2] + (v7 + 1) * *(_DWORD *)a1),
      (UINT8 *)(a1[2] + v7 * *(_DWORD *)a1),
      *(_DWORD *)a1 * (v4 - v7));
    v10 = *(_DWORD *)a1;
    ++*((_DWORD *)a1 + 1);
    *(_QWORD *)(v7 * v10 + a1[2]) = a2;
  }
  else
  {
    return(unsigned int)-1073741811;
  }
  return(unsigned int)v5;
}

Referenced by:

sub_14065FDF0