undefined ** FUN_00018778(void)
{
uint *puVar1;
uint *puVar2;
undefined **ppuVar3;
int iVar4;
undefined *apuStackX_0 [4];
ppuVar3 = &__pthread_initial_thread;
if ((apuStackX_0 < __pthread_initial_thread_bos) &&
((apuStackX_0 < __pthread_manager_thread_bos ||
(ppuVar3 = (undefined **)&__pthread_manager_thread,
__pthread_manager_thread_tos <= apuStackX_0)))) {
if (__pthread_nonstandard_stacks != 0) {
iVar4 = 0x2d030;
do {
for (; puVar1 = (uint *)(iVar4 + 8), (undefined **)*puVar1 < apuStackX_0;
iVar4 = iVar4 + 0x10) {
}
puVar2 = (uint *)(iVar4 + 0xc);
iVar4 = iVar4 + 0x10;
} while (apuStackX_0 < (undefined **)*puVar2);
return (undefined **)*puVar1;
}
ppuVar3 = (undefined **)(((uint)apuStackX_0 | 0x1fffff) - 0x1df);
}
return ppuVar3;
}