undefined4 FUN_0047d918(byte param_1,int param_2)

{
  byte bVar1;
  byte bVar2;
  
  bVar2 = param_1 & 0x70;
  if (param_1 != 0xff) {
    if (bVar2 == 0x20) {
      return *(undefined4 *)(param_2 + 4);
    }
    if (bVar2 < 0x21) {
      bVar1 = 0x10;
      if (bVar2 == 0) {
        return 0;
      }
    }
    else {
      if (bVar2 == 0x30) {
        return *(undefined4 *)(param_2 + 8);
      }
      bVar1 = 0x50;
    }
    if (bVar2 == bVar1) {
      return 0;
    }
    FUN_00485c50();
  }
  return 0;
}