uint xs_getc(int *param_1)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  
  if (param_1 != (int *)0x0) {
    iVar2 = param_1[0x84];
    if (iVar2 != 0) {
      param_1[0x84] = iVar2 + -1;
      return (uint)*(byte *)((int)param_1 + iVar2 + 0xf);
    }
    iVar2 = *param_1;
    if (iVar2 == 2) {
      uVar3 = param_1[2];
      if (uVar3 < (uint)param_1[3]) {
        bVar1 = *(byte *)(param_1[1] + uVar3);
        param_1[2] = uVar3 + 1;
        return (uint)bVar1;
      }
    }
    else if (iVar2 == 3) {
      if (0 < param_1[2]) {
        uVar3 = fgetc((FILE *)param_1[1])   //possible issue identified - semgrep
        if (uVar3 == 0xffffffff) {
          param_1[2] = 0;
          return 0xffffffff;
        }
        param_1[2] = param_1[2] + -1;
        return uVar3;
      }
    }
    else if (iVar2 == 1) {
      (*(code *)(undefined *)0x0)(param_1[1]);
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      (*(code *)(undefined *)0x0)();
      uVar3 = FUN_00401660();
      return uVar3;
    }
  }
  return 0xffffffff;
}