int FUN_0040b870(undefined4 *param_1)
{
bool bVar1;
int iVar2;
int iVar3;
int *piVar4;
int iVar5;
undefined4 *puVar6;
int *piVar7;
undefined4 uVar8;
undefined *puVar9;
char *pcVar10;
int iVar11;
undefined4 uVar12;
undefined4 *puVar13;
int *piVar14;
int local_38;
int local_34;
int *local_30;
int *local_2c;
iVar2 = sobj_new();
iVar3 = sobj_new();
if ((iVar2 == 0) || (iVar3 == 0)) {
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
client_printf(*param_1,"memory allocation failed !");
client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","INTERNAL ERROR");
iVar11 = -1;
if (iVar2 == 0) goto LAB_0040c0a8;
}
else {
FUN_00407458(param_1[1],iVar2,&local_38);
iVar11 = sobj_empty(iVar2);
if (iVar11 == 0) {
FUN_00407458(param_1[1],iVar3,&local_34);
iVar11 = sobj_strcmp(iVar3,&DAT_0042274c);
if (iVar11 == 0) {
uVar8 = sobj_get_string(iVar2);
iVar11 = FUN_00407c68(uVar8);
bVar1 = true;
if (iVar11 == 0) {
pcVar10 = (char *)sobj_get_string(iVar2);
for (puVar13 = (undefined4 *)param_1[4]; puVar13 != param_1 + 4;
puVar13 = (undefined4 *)*puVar13) {
iVar11 = strcmp(pcVar10,(char *)puVar13[2]);
bVar1 = true;
if (iVar11 == 0) goto LAB_0040bb38;
}
bVar1 = false;
}
LAB_0040bb38:
piVar4 = (int *)malloc(0x1c) //possible issue identified - semgrep
if (piVar4 != (int *)0x0) {
*piVar4 = 0;
piVar4[1] = 0;
piVar4[2] = 0;
piVar4[3] = 0;
piVar4[4] = 0;
piVar4[5] = 0;
piVar4[6] = 0;
iVar11 = sobj_strdup(iVar2);
piVar4[2] = iVar11;
piVar7 = piVar4 + 3;
piVar14 = piVar4 + 5;
local_2c = &local_34;
local_30 = &local_38;
piVar4[4] = (int)piVar7;
piVar4[3] = (int)piVar7;
piVar4[6] = (int)piVar14;
piVar4[5] = (int)piVar14;
do {
sobj_free(iVar2);
FUN_00407458(param_1[1],iVar2,local_30);
iVar11 = sobj_empty(iVar2);
if (iVar11 != 0) {
LAB_0040bea0:
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
uVar8 = *param_1;
pcVar10 = "unable to read token !";
LAB_0040bf54:
client_printf(uVar8,pcVar10);
uVar8 = *param_1;
pcVar10 = "SYNTAX ERROR";
goto LAB_0040c020;
}
if (local_38 != 0) {
LAB_0040bf04:
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
uVar8 = *param_1;
pcVar10 = "should not see quotation mark here !";
goto LAB_0040bf54;
}
iVar11 = sobj_strcmp(iVar2,&DAT_004226a4);
puVar9 = (undefined *)0x0;
if (iVar11 == 0) {
LAB_0040c0f8:
sobj_free(iVar2,puVar9);
FUN_00407458(param_1[1],iVar2,&local_38);
iVar11 = sobj_empty(iVar2);
if (iVar11 != 0) goto LAB_0040bea0;
if (local_38 != 0) goto LAB_0040bf04;
iVar11 = sobj_strcmp(iVar2,&DAT_00422834);
if (iVar11 == 0) {
if (!bVar1) {
puVar13 = (undefined4 *)param_1[5];
*piVar4 = (int)(param_1 + 4);
param_1[5] = piVar4;
*puVar13 = piVar4;
piVar4[1] = (int)puVar13;
}
iVar11 = FUN_00409a00(param_1,piVar14,&DAT_00422838);
if (bVar1) goto LAB_0040c144;
if (iVar11 == 0) goto LAB_0040c094;
piVar7 = (int *)piVar4[1];
iVar5 = *piVar4;
*piVar7 = iVar5;
*(int **)(iVar5 + 4) = piVar7;
*piVar4 = 0;
piVar4[1] = 0;
goto LAB_0040c144;
}
break;
}
iVar11 = sobj_get_char(iVar2,0);
if (iVar11 != 0x24) {
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
uVar8 = *param_1;
pcVar10 = "expecting variables in function declaration !";
goto LAB_0040bf54;
}
sobj_remove_char(iVar2,0);
puVar13 = (undefined4 *)malloc(0x20) //possible issue identified - semgrep
if (puVar13 == (undefined4 *)0x0) {
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
client_printf(*param_1,"memory allocation failed !");
uVar8 = *param_1;
pcVar10 = "INTERNAL ERROR";
goto LAB_0040c020;
}
memset(puVar13,0,0x20) //possible issue identified - semgrep
puVar13[2] = 0;
uVar8 = sobj_strdup(iVar2);
puVar6 = (undefined4 *)piVar4[4];
puVar13[3] = uVar8;
*(undefined1 *)(puVar13 + 7) = 0;
*puVar13 = piVar7;
piVar4[4] = (int)puVar13;
*puVar6 = puVar13;
puVar13[1] = puVar6;
sobj_free(iVar3);
FUN_00407458(param_1[1],iVar3,local_2c);
iVar11 = sobj_empty(iVar3);
if (iVar11 != 0) goto LAB_0040bea0;
if (local_34 != 0) goto LAB_0040bf04;
iVar11 = sobj_strcmp(iVar3,&DAT_004226a4);
puVar9 = &DAT_004226a0;
if (iVar11 == 0) goto LAB_0040c0f8;
iVar11 = sobj_strcmp(iVar3);
} while (iVar11 == 0);
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
uVar12 = *param_1;
uVar8 = sobj_get_string(iVar2);
client_printf(uVar12,"got an invalid token [%s]",uVar8);
uVar8 = *param_1;
pcVar10 = "SYNTAX ERROR";
LAB_0040c020:
iVar11 = -1;
client_printf(uVar8,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n",pcVar10);
LAB_0040c144:
FUN_00409784(piVar4);
goto LAB_0040c094;
}
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
client_printf(*param_1,"memory allocation failed !");
uVar8 = *param_1;
pcVar10 = "INTERNAL ERROR";
}
else {
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
uVar12 = *param_1;
uVar8 = sobj_get_string(iVar3);
client_printf(uVar12,"got an invalid token [%s]",uVar8);
uVar8 = *param_1;
pcVar10 = "SYNTAX ERROR";
}
}
else {
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
client_printf(*param_1,"unable to read token !");
uVar8 = *param_1;
pcVar10 = "SYNTAX ERROR";
}
iVar11 = -1;
client_printf(uVar8,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n",pcVar10);
}
LAB_0040c094:
sobj_del(iVar2);
LAB_0040c0a8:
if (iVar3 != 0) {
sobj_del(iVar3);
}
return iVar11;
}