void FUN_00419948(int *param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  code *UNRECOVERED_JUMPTABLE_00;
  
  if (*param_1 == 3) {
    FUN_00483c90(param_2 + 1,param_1 + 2,6);
  }
  iVar2 = *param_1;
  if (0x20 < iVar2) {
    if (iVar2 == 0x21) {
      UNRECOVERED_JUMPTABLE_00 = *(code **)(*param_2 + 0x10);
LAB_00419abc:
                    /* WARNING: Could not recover jumptable at 0x00419ac8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*UNRECOVERED_JUMPTABLE_00)(param_2);
      return;
    }
    if (iVar2 != 0x23) {
      return;
    }
    param_2[0xd] = 8;
    UNRECOVERED_JUMPTABLE_00 = *(code **)(*param_2 + 4);
    iVar2 = param_1[1] + -0x12;
    param_1 = param_1 + 8;
    goto LAB_00419ae8;
  }
  if ((iVar2 < 0x1f) && (iVar2 != 0x13)) {
    if (iVar2 == 0x17) {
      UNRECOVERED_JUMPTABLE_00 = *(code **)*param_2;
      goto LAB_00419abc;
    }
    if (iVar2 != 3) {
      return;
    }
  }
  iVar1 = 6;
  if (iVar2 == 0x13) {
LAB_00419a74:
    param_2[0xd] = iVar1;
  }
  else if (iVar2 < 0x14) {
    iVar1 = 4;
    if (iVar2 == 2) goto LAB_00419a74;
    if (iVar2 == 3) {
      param_2[0xd] = 2;
    }
    else {
      if (iVar2 != 1) {
        return;
      }
      param_2[0xd] = 1;
    }
  }
  else if (iVar2 < 0x22) {
    iVar1 = 8;
    if (0x1f < iVar2) goto LAB_00419a74;
    if (iVar2 != 0x1f) {
      return;
    }
    param_2[0xd] = 7;
  }
  else {
    if (iVar2 != 0x23) {
      return;
    }
    param_2[0xd] = 8;
  }
  UNRECOVERED_JUMPTABLE_00 = *(code **)(*param_2 + 4);
  iVar2 = param_1[1];
  param_1 = (int *)((int)param_1 + 0xe);
LAB_00419ae8:
                    /* WARNING: Could not recover jumptable at 0x00419af4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*UNRECOVERED_JUMPTABLE_00)(param_2,iVar2,param_1);
  return;
}