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;
}