int FUN_0040294c(undefined4 param_1,int param_2,uint param_3)

{
  int iVar1;
  int iVar2;
  int iVar3;
  
  iVar2 = 0;
  do {
    iVar3 = iVar2;
    iVar2 = iVar3 + (1 << (param_3 & 0x1f));
    if (param_2 < iVar2) {
      return -0xc;
    }
    iVar1 = FUN_00402790(param_1,iVar3,param_3,0);
  } while (iVar1 == 0);
  FUN_00402790(param_1,iVar3,param_3,1);
  return iVar3;
}