undefined4 Set_EEWrite_Proc(int param_1,char *param_2)
{
char cVar1;
short sVar2;
short sVar3;
short sVar4;
char *pcVar5;
ushort uVar6;
ushort uVar7;
pcVar5 = param_2;
do {
cVar1 = *pcVar5;
if (cVar1 == ':') {
uVar7 = 0;
goto LAB_00096928;
}
pcVar5 = pcVar5 + 1;
} while (cVar1 != '\0');
sVar2 = 0;
do {
cVar1 = *param_2;
sVar4 = (short)cVar1;
sVar3 = sVar2 * 0x10 + sVar4 + -0x57 //possible issue identified - semgrep
if (5 < (byte)(cVar1 + 0x9fU)) {
sVar3 = sVar2 * 0x10 + sVar4 + -0x37 //possible issue identified - semgrep
if ((5 < (byte)(cVar1 + 0xbfU)) &&
(sVar3 = sVar2 * 0x10 + sVar4 + -0x30, 9 < (byte)(cVar1 - 0x30U))) goto code_r0x00096a70 //possible issue identified - semgrep
}
sVar2 = sVar3;
param_2 = param_2 + 1;
} while( true );
LAB_00096928:
cVar1 = *param_2;
sVar3 = (short)cVar1;
uVar6 = uVar7 * 0x10 + sVar3 + -0x57;
if (5 < (byte)(cVar1 + 0x9fU)) {
uVar6 = uVar7 * 0x10 + sVar3 + -0x37;
if ((5 < (byte)(cVar1 + 0xbfU)) &&
(uVar6 = uVar7 * 0x10 + sVar3 + -0x30, 9 < (byte)(cVar1 - 0x30U))) goto code_r0x00096984;
}
param_2 = param_2 + 1;
uVar7 = uVar6;
goto LAB_00096928;
code_r0x00096a70:
uVar7 = 0;
goto LAB_00096aac;
code_r0x00096984:
sVar3 = 0;
do {
do {
sVar2 = sVar3;
pcVar5 = pcVar5 + 1;
cVar1 = *pcVar5;
sVar4 = (short)cVar1;
sVar3 = sVar2 * 0x10 + sVar4 + -0x57 //possible issue identified - semgrep
} while ((byte)(cVar1 + 0x9fU) < 6);
sVar3 = sVar2 * 0x10 + sVar4 + -0x37 //possible issue identified - semgrep
} while (((byte)(cVar1 + 0xbfU) < 6) ||
(sVar3 = sVar2 * 0x10 + sVar4 + -0x30, (byte)(cVar1 - 0x30U) < 10)) //possible issue identified - semgrep
if (0x1ff < uVar7) {
if (RTDebugLevel == 0) {
return 0;
}
printk("Offset can not exceed EEPROM_SIZE( == 0x%04x)\n",0x200,sVar2);
return 0;
}
LAB_00096aac:
(**(code **)(param_1 + 0x14))(param_1,uVar7,sVar2);
return 1;
}