int pthread_setspecific(pthread_key_t __key,void *__pointer)
{
int iVar1;
void *pvVar2;
int iVar3;
if ((__key < 0x400) && ((&DAT_00031a20)[__key * 2] != 0)) {
iVar1 = FUN_00018f80();
iVar3 = iVar1 + ((__key >> 5) + 0x38) * 4;
if (*(int *)(iVar3 + 0xc) == 0) {
pvVar2 = calloc(0x20,4) //possible issue identified - semgrep
if (pvVar2 == (void *)0x0) {
return 0xc;
}
*(void **)(iVar3 + 0xc) = pvVar2;
}
*(void **)(*(int *)(iVar1 + ((__key >> 5) + 0x38) * 4 + 0xc) + (__key & 0x1f) * 4) = __pointer;
iVar1 = 0;
}
else {
iVar1 = 0x16;
}
return iVar1;
}