uint RandomByte2(int param_1)
{
bool bVar1;
char cVar2;
uint uVar3;
int iVar4;
int iVar5;
uint uVar6;
uint uVar7;
uint uVar8;
uint uVar9;
uint uVar10;
uint local_30;
uint local_2c;
uVar3 = Status;
if (*(char *)(param_1 + 0xec) == '\0') {
local_2c = *(uint *)(*(int *)(param_1 + 0xdc) + 0x1700);
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar10 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar10 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3200;
}
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3200) {
local_30 = uVar3 & 0xff;
goto LAB_00016cf4;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
local_30 = 0;
LAB_00016cf4:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,0x32);
local_30 = (uint)*(byte *)(param_1 + 0x4afb);
LAB_00016e98:
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar10 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar10 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3200;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3200) {
local_30 = uVar3 & 0xff;
goto LAB_00016e3c;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
local_30 = 0;
LAB_00016e3c:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,0x32);
local_30 = (uint)*(byte *)(param_1 + 0x4afb);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_00016e98;
}
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar2 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar10 != 0) {
Status = Status | 1;
}
goto LAB_00016ebc;
}
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
local_30 = 0;
local_2c = 0;
LAB_00016ebc:
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar3 = Status;
uVar10 = 0;
if (cVar2 == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3300;
}
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3300) {
uVar10 = uVar3 & 0xff;
goto LAB_00016fa8;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar10 = 0;
LAB_00016fa8:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,0x33);
uVar10 = (uint)*(byte *)(param_1 + 0x4afc);
LAB_00017140:
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar6 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar6 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3300;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3300) {
uVar10 = uVar3 & 0xff;
goto LAB_000170e8;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar10 = 0;
LAB_000170e8:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,0x33);
uVar10 = (uint)*(byte *)(param_1 + 0x4afc);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_00017140;
}
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar2 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar6 != 0) {
Status = Status | 1;
}
goto LAB_00017164;
}
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
LAB_00017164:
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar3 = Status;
uVar6 = 0;
if (cVar2 == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3400;
}
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3400) {
uVar6 = uVar3 & 0xff;
goto LAB_00017250;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar6 = 0;
LAB_00017250:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,0x34);
uVar6 = (uint)*(byte *)(param_1 + 0x4afd);
LAB_000173e8:
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar7 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar7 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3400;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3400) {
uVar6 = uVar3 & 0xff;
goto LAB_00017390;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar6 = 0;
LAB_00017390:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,0x34);
uVar6 = (uint)*(byte *)(param_1 + 0x4afd);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_000173e8;
}
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar2 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar7 != 0) {
Status = Status | 1;
}
goto LAB_0001740c;
}
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
LAB_0001740c:
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar3 = Status;
uVar7 = 0;
if (cVar2 == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar8 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar8 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3500;
}
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3500) {
uVar7 = uVar3 & 0xff;
goto LAB_000174f8;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar7 = 0;
LAB_000174f8:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,0x35);
uVar7 = (uint)*(byte *)(param_1 + 0x4afe);
LAB_00017694:
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar8 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar8 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3500;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar4 = 1;
do {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
} while (((uVar3 & 0x20000) != 0) && (bVar1 = iVar4 != 100, iVar4 = iVar4 + 1, bVar1));
if ((uVar3 & 0x2ff00) == 0x3500) {
uVar7 = uVar3 & 0xff;
goto LAB_0001763c;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar7 = 0;
LAB_0001763c:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,0x35);
uVar7 = (uint)*(byte *)(param_1 + 0x4afe);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_00017694;
}
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar2 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar8 != 0) {
Status = Status | 1;
}
goto LAB_000176b8;
}
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
LAB_000176b8:
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar3 = Status;
uVar8 = 0;
if (cVar2 != '\0') goto LAB_00017968;
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar9 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar9 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb3600;
}
iVar4 = 1;
while( true ) {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar3 & 0x20000) == 0) || (iVar4 == 100)) break;
iVar4 = iVar4 + 1;
}
if ((uVar3 & 0x2ff00) == 0x3600) {
uVar8 = uVar3 & 0xff;
goto LAB_000177a4;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar8 = 0;
LAB_000177a4:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,0x36);
uVar8 = (uint)*(byte *)(param_1 + 0x4aff);
LAB_00017940:
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar9 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar9 = uVar3 & 1;
}
iVar5 = 0;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar3 = 0;
if (cVar2 == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar3 & 0x20000) == 0) {
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb3600;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar4 = 1;
do {
uVar3 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar3 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
} while (((uVar3 & 0x20000) != 0) && (bVar1 = iVar4 != 100, iVar4 = iVar4 + 1, bVar1));
if ((uVar3 & 0x2ff00) == 0x3600) {
uVar8 = uVar3 & 0xff;
goto LAB_000178e8;
}
}
iVar5 = iVar5 + 1;
if (iVar5 == 100) break;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar8 = 0;
LAB_000178e8:
if ((int)(uVar3 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,0x36);
uVar8 = (uint)*(byte *)(param_1 + 0x4aff);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_00017940;
}
cVar2 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if ((cVar2 == '\x01') && (Status = Status & 0xfffffffe, uVar9 != 0)) {
Status = Status | 1;
}
LAB_00017968:
uVar3 = RandomByte(param_1);
return (uVar8 ^ uVar3 ^ uVar7 ^ uVar6 ^ uVar10 ^ local_30 ^ local_2c & 0xffff) & 0xff;
}