undefined4 FUN_0041cd50(int param_1,int param_2,undefined1 *param_3)

{
  int iVar1;
  
  *param_3 = 0;
  if (param_2 == 2) {
    iVar1 = *(int *)(param_1 + 0xc);
    if (iVar1 == 1) {
      *param_3 = 1;
      return 0x1001;
    }
    if (iVar1 < 1) {
      return 0x1001;
    }
  }
  else {
    if (2 < param_2) {
      if (4 < param_2) {
        return 0x1001;
      }
      if (3 < *(int *)(param_1 + 0xc) - 1U) {
        return 0x1001;
      }
      *param_3 = 1;
      return 0x1001;
    }
    if (param_2 != 1) {
      return 0x1001;
    }
    iVar1 = *(int *)(param_1 + 0xc);
    if (iVar1 == 2) {
      *param_3 = 1;
      return 0x1001;
    }
    if (iVar1 < 3) {
      if (iVar1 != 1) {
        return 0x1001;
      }
      return 0x100d;
    }
  }
  if (4 < iVar1) {
    return 0x1001;
  }
  return 0x100d;
}