void * FUN_00407040(void *param_1)

{
  void *__s;
  int iVar1;
  
  __s = malloc(0x28)   //possible issue identified - semgrep
  if (__s != (void *)0x0) {
    memset(__s,0,0x28)   //possible issue identified - semgrep
    memcpy(__s,param_1,0x10)   //possible issue identified - semgrep
    iVar1 = list_new();
    *(int *)((int)__s + 0x10) = iVar1;
    *(code **)(iVar1 + 0xc) = grpint_destroy;
  }
  return __s;
}