undefined4 RT_CfgSetCountryRegion(int param_1,undefined4 param_2,int param_3)
{
char cVar1;
int iVar2;
int iVar3;
undefined4 uVar4;
undefined1 *puVar5;
undefined1 uVar6;
iVar2 = simple_strtol(param_2,0,10);
if (param_3 == 1) {
iVar3 = 0x16980;
cVar1 = *(char *)(param_1 + 0x16980) //possible issue identified - semgrep
}
else {
cVar1 = *(char *)(param_1 + 0x16981) //possible issue identified - semgrep
iVar3 = 0x16981;
}
puVar5 = (undefined1 *)(param_1 + iVar3);
if (cVar1 < '\0') {
if (RTDebugLevel == 0) {
return 0;
}
printk("CfgSetCountryRegion():CountryRegion in eeprom was programmed\n");
return 0;
}
if (iVar2 < 0) {
LAB_0003f248:
uVar4 = 0;
if (RTDebugLevel != 0) {
printk("CfgSetCountryRegion():region(%ld) out of range!\n");
uVar4 = 0;
}
}
else {
uVar6 = (undefined1)iVar2;
if (param_3 == 1) {
if (iVar2 < 8) {
*puVar5 = uVar6;
}
else if (iVar2 == 0x1f) {
*puVar5 = uVar6;
}
else if (iVar2 == 0x20) {
*puVar5 = uVar6;
}
else {
if (iVar2 != 0x21) goto LAB_0003f248;
*puVar5 = uVar6;
}
}
else {
if ((param_3 != 0) || (0x25 < iVar2)) goto LAB_0003f248;
*puVar5 = uVar6;
}
uVar4 = 1;
}
return uVar4;
}