void SWMCULedCtrlMain(undefined4 param_1,int param_2)
{
byte bVar1;
bool bVar2;
char cVar3;
int iVar4;
int iVar5;
uint uVar6;
uint uVar7;
uint uVar8;
uint uVar9;
uint uVar10;
uint uVar11;
uint uVar12;
if (*(char *)(param_2 + 0x5122) == '\0') {
return;
}
if (*(char *)(param_2 + 0x5122) == '@') {
if (*(char *)(param_2 + 0xec) == '\0') {
*(undefined4 *)(*(int *)(param_2 + 0xdc) + 0x229) = 0;
cVar3 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
}
if (cVar3 != '\0') {
return;
}
uVar11 = (uint)*(byte *)(param_2 + 0x512a);
if (*(char *)(param_2 + 0x5129) == '\0') {
uVar11 = ~(uint)*(byte *)(param_2 + 0x512a);
}
*(uint *)(*(int *)(param_2 + 0xdc) + 0x228) = uVar11;
return;
}
if (*(char *)(param_2 + 0xec) == '\0') {
iVar4 = *(int *)(param_2 + 0xdc);
uVar11 = *(uint *)(iVar4 + 0x414);
uVar12 = *(uint *)(iVar4 + 0x414);
*(undefined4 *)(iVar4 + 0x414) = 0x1e;
}
else {
uVar11 = 0;
uVar12 = 0;
}
uVar9 = 0;
if (*(char *)(param_2 + 0xec) == '\0') {
uVar9 = *(uint *)(*(int *)(param_2 + 0xdc) + 0x102c);
}
uVar6 = *(uint *)(param_2 + 0x5124);
if ((*(uint *)(param_2 + 0x4a94) & 0xffff0000) == 0x53500000) {
uVar6 = ~uVar6;
}
uVar6 = (uVar6 >> 0x1f) << 0x1e;
uVar10 = uVar9 & 0xbfffffff | uVar6;
if (*(char *)(param_2 + 0x512b) == '\0') {
cVar3 = -1 //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_2 + 0x512b) + -1 //possible issue identified - semgrep
}
*(char *)(param_2 + 0x512b) = cVar3;
if (*(char *)(param_2 + 0x5122) == '\x02') {
if (*(int *)(param_2 + 0x512c) == 0) {
uVar8 = *(uint *)(param_2 + 0x5124);
goto LAB_000af38c;
}
uVar11 = 3;
if ((*(uint *)(param_2 + 0x5124) & 0x80000000) != 0) {
uVar11 = 0;
}
if ((*(byte *)(param_2 + 0x512b) & 1) == 0) {
uVar11 = ~uVar11 & 3;
}
uVar10 = uVar9 & 0xb3ffffff | uVar6 | uVar11 << 0x1a;
*(int *)(param_2 + 0x512c) = *(int *)(param_2 + 0x512c) + -1;
LAB_000af430:
uVar11 = *(uint *)(param_2 + 0x5124);
}
else {
uVar8 = *(uint *)(param_2 + 0x5124);
LAB_000af38c:
uVar7 = uVar8 & 0xf000000;
if (uVar7 == 0) {
uVar8 = uVar8 & 0x80000000;
LAB_000af424:
iVar4 = 3;
if (uVar8 == 0) {
iVar4 = 0;
}
LAB_000af42c:
uVar10 = uVar9 & 0xb3ffffff | uVar6 | iVar4 << 0x1a;
goto LAB_000af430;
}
if (uVar7 == 0x1000000) {
LAB_000af410:
iVar4 = 3;
if ((uVar8 & 0x80000000) != 0) {
iVar4 = 0;
}
goto LAB_000af42c;
}
bVar2 = (uVar11 & 0xe) == 0;
if ((!bVar2) && (1 < (uVar8 << 4) >> 0x1c)) {
bVar1 = *(byte *)(param_2 + 0x512b);
LAB_000af3f0:
uVar8 = bVar1 & 1;
goto LAB_000af424;
}
if (((uVar12 & 0x10) != 0) && (uVar7 == 0x3000000)) {
bVar1 = *(byte *)(param_2 + 0x512b);
goto LAB_000af3f0;
}
if ((uVar12 & 0x10) == 0 && bVar2) {
if ((int)(uVar8 << 3) < 0) {
uVar8 = ((uint)*(byte *)(param_2 + 0x512b) << 0x1b) >> 0x1f;
goto LAB_000af424;
}
goto LAB_000af410;
}
uVar11 = *(uint *)(param_2 + 0x5124);
}
uVar12 = uVar11 & 0x300000;
if (uVar12 == 0x300000) {
uVar12 = *(byte *)(param_2 + 0x512b) & 1;
LAB_000af480:
iVar4 = 3;
if (uVar12 == 0) {
iVar4 = 0;
}
}
else {
if (uVar12 == 0x200000) {
uVar12 = ((uint)*(byte *)(param_2 + 0x512b) << 0x1b) >> 0x1f;
goto LAB_000af480;
}
if (uVar12 != 0x100000) {
uVar12 = uVar11 & 0x20000000;
goto LAB_000af480;
}
iVar4 = 3;
if ((uVar11 & 0x20000000) != 0) {
iVar4 = 0;
}
}
uVar12 = uVar11 & 0xc00000;
if (uVar12 == 0xc00000) {
uVar11 = *(byte *)(param_2 + 0x512b) & 1;
}
else if (uVar12 == 0x800000) {
uVar11 = ((uint)*(byte *)(param_2 + 0x512b) << 0x1b) >> 0x1f;
}
else {
if (uVar12 == 0x400000) {
iVar5 = 3;
if ((uVar11 & 0x40000000) != 0) {
iVar5 = 0;
}
goto LAB_000af4e0;
}
uVar11 = uVar11 & 0x40000000;
}
iVar5 = 3;
if (uVar11 == 0) {
iVar5 = 0;
}
LAB_000af4e0:
if ((*(char *)(param_2 + 0x5130) == '\0') || (*(int *)(param_2 + 0x76904) << 0xe < 0)) {
if ((uVar10 & 0x40000000) == 0) {
if (*(char *)(param_2 + 0xec) == '\0') {
*(undefined4 *)(*(int *)(param_2 + 0xdc) + 0x102c) = 0;
}
}
else if (*(char *)(param_2 + 0xec) == '\0') {
*(undefined4 *)(*(int *)(param_2 + 0xdc) + 0x102c) = 0x40000000;
return;
}
}
else if (*(char *)(param_2 + 0xec) == '\0') {
*(uint *)(*(int *)(param_2 + 0xdc) + 0x102c) =
uVar10 & 0xccffffff | iVar4 << 0x1c | iVar5 << 0x18;
return;
}
return;
}