undefined1 * FUN_00481984(undefined4 param_1,char *param_2,undefined4 param_3)
{
char *pcVar1;
bool bVar2;
int iVar3;
int iVar4;
undefined4 *puVar5;
int iVar6;
int iVar7;
char cVar8;
uint uVar9;
undefined1 *puVar10;
char *pcVar11;
uint uVar12;
undefined1 *puVar13;
undefined1 *puVar14;
char cVar15;
undefined1 local_168 [4];
undefined8 *local_164 [5];
char local_150 [127];
undefined1 uStack_d1;
char *local_d0;
undefined1 *local_cc;
undefined1 *local_c8;
int local_c4;
uint local_c0;
char local_bc;
int local_b8;
int local_b4;
uint local_b0;
byte local_aa;
undefined1 auStack_80 [72];
char **local_38;
undefined1 *local_34;
undefined1 *local_30;
iVar3 = FUN_00482080(&local_d0);
if (iVar3 < 0) {
iVar3 = FUN_00483e50(local_d0);
if (iVar3 != 0) {
FUN_004887a0(local_d0,iVar3,param_1);
}
return (undefined1 *)0xffffffff;
}
FUN_00482170(&local_d0,param_3);
local_34 = auStack_80;
local_30 = local_168;
puVar14 = (undefined1 *)0x0;
pcVar11 = param_2;
local_38 = &local_d0;
LAB_00481a4c:
do {
while( true ) {
do {
for (; (*pcVar11 != '\0' && (*pcVar11 != '%')); pcVar11 = pcVar11 + 1) {
}
iVar3 = (int)pcVar11 - (int)param_2 //possible issue identified - semgrep
if (pcVar11 != param_2) {
iVar4 = 0;
if (0 < iVar3) {
iVar4 = FUN_004887a0(param_2,iVar3,param_1);
}
puVar14 = puVar14 + iVar4;
if (iVar4 != iVar3) {
return (undefined1 *)0xffffffff;
}
}
if (*pcVar11 == '\0') {
return puVar14;
}
pcVar1 = pcVar11 + 1;
param_2 = pcVar11 + 1;
pcVar11 = pcVar11 + 2;
} while (*pcVar1 == '%');
local_d0 = param_2;
FUN_004823c0(local_38);
FUN_004821e0(local_38);
puVar10 = local_34;
if (0 < local_b8) {
puVar10 = local_34 + (1 - (uint)local_aa) * -8;
}
iVar3 = 0;
while( true ) {
iVar4 = iVar3 * 4;
bVar2 = local_b4 <= iVar3;
iVar3 = iVar3 + 1;
if (bVar2) break;
*(undefined1 **)(local_30 + iVar4 + 4) = puVar10;
puVar10 = puVar10 + 8;
}
if (local_b0 != 0) break;
FUN_00488b20(*(undefined4 *)local_164[0],local_c0 & 0xf00,puVar14,(int)puVar14 >> 0x1f);
param_2 = local_d0;
pcVar11 = local_d0;
}
if (7 < local_b0) {
if (local_b0 < 0x10) {
iVar3 = FUN_00488c80(param_1,local_b0,(int)*local_164[0],
(int)((ulonglong)*local_164[0] >> 0x20),&local_cc,FUN_00481860);
}
else {
if (local_b0 < 0x12) {
return (undefined1 *)0xffffffff;
}
if (local_b0 < 0x14) {
if (local_b0 == 0x13) {
pcVar11 = *(char **)local_164[0];
if (pcVar11 != (char *)0x0) goto LAB_00481db4;
cVar15 = ' ';
pcVar11 = "(null)";
uVar12 = 0xb;
iVar3 = 0;
puVar13 = (undefined1 *)0x6;
}
else {
pcVar11 = local_150;
local_150[1] = 0;
local_150[0] = (char)*(undefined4 *)local_164[0];
cVar15 = ' ';
uVar12 = 0xb;
iVar3 = 0;
puVar13 = (undefined1 *)0x1;
}
goto LAB_00481ec0;
}
if (local_b0 == 0x14) {
puVar5 = (undefined4 *)FUN_0047f6f0();
pcVar11 = (char *)FUN_00483bf0(*puVar5,local_150,0x80);
LAB_00481db4:
puVar10 = (undefined1 *)0xffffffff;
if (-1 < (int)local_cc) {
puVar10 = local_cc;
}
puVar13 = (undefined1 *)FUN_00483f30(pcVar11,puVar10);
cVar15 = ' ';
uVar12 = 0xb;
goto LAB_00481de0;
}
cVar15 = *PTR_DAT_004b77b0;
pcVar11 = PTR_DAT_004b77b0;
while (cVar15 != local_c4) {
pcVar11 = pcVar11 + 1;
if (PTR_DAT_004b77b0 + 10 <= pcVar11) {
return (undefined1 *)0xffffffff;
}
cVar15 = *pcVar11;
}
iVar3 = (*(code *)(&DAT_004c2324)[(int)pcVar11 - (int)PTR_DAT_004b77b0])
(param_1,&local_cc,local_164);
}
puVar14 = puVar14 + iVar3;
param_2 = local_d0;
pcVar11 = local_d0;
if (iVar3 < 0) {
return (undefined1 *)0xffffffff;
}
goto LAB_00481a4c;
}
iVar3 = (int)(char)(&DAT_004988ab)[local_b0];
if (local_b0 < 6) {
uVar12 = 0xb;
if (local_b0 == 1) {
uVar12 = 6;
}
}
else {
iVar3 = -iVar3;
uVar12 = 0xb;
}
cVar15 = ' ';
if ((int)local_cc < 0) {
cVar15 = local_bc;
}
uVar9 = 0x400;
if (local_b0 != 1) {
uVar9 = (uint)local_38[10 - (1 - (uint)local_aa)] & 0xf00;
}
FUN_00488aa0(uVar9,local_164[0],iVar3);
pcVar11 = (char *)FUN_00488b60(&uStack_d1);
if (5 < local_b0) {
if (*pcVar11 == '-') {
local_c0 = local_c0 | 2;
pcVar11 = pcVar11 + 1;
uVar12 = 2;
}
else if ((local_c0 & 2) == 0) {
if ((local_c0 & 1) != 0) {
uVar12 = 4;
}
}
else {
uVar12 = 0;
}
}
puVar10 = local_cc;
if ((int)local_cc < 0) {
puVar10 = (undefined1 *)0x1;
}
puVar13 = &uStack_d1 + -(int)pcVar11;
if ((local_c0 & 0x10) == 0) {
LAB_00481cf4:
cVar8 = *pcVar11;
}
else {
if (local_b0 < 3) {
uVar12 = 6;
}
if (local_b0 == 3) {
uVar12 = 9;
}
if (local_b0 == 4) {
if (puVar10 <= puVar13) {
puVar10 = (undefined1 *)0x1;
if (*pcVar11 != '0') {
puVar10 = (undefined1 *)((int)&local_d0 + -(int)pcVar11);
}
goto LAB_00481cf4;
}
cVar8 = *pcVar11;
}
else {
cVar8 = *pcVar11;
}
}
if (cVar8 == '0') {
if (5 < uVar12) {
uVar12 = 0xb;
}
if (local_b0 == 1) {
puVar13 = (undefined1 *)0x5;
pcVar11 = "(nil)";
}
else {
if (puVar10 != (undefined1 *)0x0) goto LAB_00481d3c;
puVar13 = (undefined1 *)0x0;
}
LAB_00481de0:
iVar3 = 0;
}
else {
LAB_00481d3c:
iVar3 = (int)puVar10 - (int)puVar13;
if (puVar10 <= puVar13) {
iVar3 = 0;
}
}
LAB_00481ec0:
puVar10 = puVar13 + iVar3;
if (uVar12 != 0xb) {
iVar4 = 2;
if (uVar12 < 6) {
iVar4 = 1;
}
puVar10 = puVar10 + iVar4;
}
iVar4 = 0;
if (puVar10 < local_c8) {
iVar4 = (int)local_c8 - (int)puVar10;
}
puVar14 = puVar10 + (int)puVar14 + iVar4;
if (cVar15 == '0') {
iVar3 = iVar3 + iVar4;
iVar4 = 0;
}
if ((local_c0 & 8) == 0) {
local_168[0] = 0x20;
for (iVar7 = iVar4; iVar7 != 0; iVar7 = iVar7 + -1) {
iVar6 = FUN_004887a0(local_30,1,param_1);
if (iVar6 != 1) {
if (iVar4 - iVar7 != iVar4) {
return (undefined1 *)0xffffffff;
}
break;
}
}
iVar4 = 0;
}
FUN_004838a0(&UNK_004988a0 + uVar12,param_1);
local_168[0] = 0x30;
for (iVar7 = iVar3; iVar7 != 0; iVar7 = iVar7 + -1) {
iVar6 = FUN_004887a0(local_30,1,param_1);
if (iVar6 != 1) {
if (iVar3 - iVar7 != iVar3) {
return (undefined1 *)0xffffffff;
}
break;
}
}
if ((puVar13 != (undefined1 *)0x0) &&
(puVar10 = (undefined1 *)FUN_004887a0(pcVar11,puVar13,param_1), puVar10 != puVar13)) {
return (undefined1 *)0xffffffff;
}
local_168[0] = 0x20;
for (iVar3 = iVar4; param_2 = local_d0, pcVar11 = local_d0, iVar3 != 0; iVar3 = iVar3 + -1) {
iVar7 = FUN_004887a0(local_30,1,param_1);
if (iVar7 != 1) {
param_2 = local_d0;
pcVar11 = local_d0;
if (iVar4 - iVar3 != iVar4) {
return (undefined1 *)0xffffffff;
}
break;
}
}
} while( true );
}