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)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
(*(code *)(undefined *)0x0)();
uVar3 = FUN_00402130();
return uVar3;
}
}
return 0xffffffff;
}