int FUN_0040d56c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
undefined4 *param_5)
{
int iVar1;
int iVar2;
undefined4 *puVar3;
undefined4 *puVar4;
undefined4 uVar5;
undefined4 *puVar6;
char *pcVar7;
undefined4 ***local_30;
undefined4 ***local_2c;
if ((code *)param_5[1] != (code *)0x0) {
iVar1 = (*(code *)param_5[1])();
goto LAB_0040d7fc;
}
local_30 = &local_30;
pcVar7 = (char *)*param_5;
local_2c = local_30;
for (puVar3 = (undefined4 *)param_1[4]; puVar3 != param_1 + 4; puVar3 = (undefined4 *)*puVar3) {
iVar2 = strcmp(pcVar7,(char *)puVar3[2]);
if (iVar2 == 0) {
iVar2 = sobj_new();
if (iVar2 == 0) {
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
client_printf(*param_1,"memory allocation failed !");
goto LAB_0040d6b0;
}
puVar4 = (undefined4 *)param_5[2];
puVar6 = (undefined4 *)puVar3[3];
goto LAB_0040d75c;
}
}
client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
client_printf(*param_1,"can not find function - %s().",*param_5);
LAB_0040d6b0:
client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","INTERNAL ERROR");
iVar1 = -1;
goto LAB_0040d7ec;
LAB_0040d75c:
if (puVar6 == puVar3 + 3) goto code_r0x0040d774;
if (puVar4 == param_5 + 2) {
LAB_0040d72c:
pcVar7 = (char *)0x0;
}
else {
iVar1 = FUN_0040d858(param_1,1,param_3,iVar2,puVar4 + 2);
if (iVar1 < 0) goto LAB_0040d72c;
pcVar7 = (char *)sobj_get_string(iVar2);
}
if (pcVar7 == (char *)0x0) {
pcVar7 = "";
}
FUN_0040c744(param_1,&local_30,puVar6[3],pcVar7);
if (puVar4 != param_5 + 2) {
puVar4 = (undefined4 *)*puVar4;
}
puVar6 = (undefined4 *)*puVar6;
goto LAB_0040d75c;
code_r0x0040d774:
uVar5 = param_1[3];
param_1[3] = 0;
iVar1 = FUN_0040c9e4(param_1,1,&local_30,param_4,puVar3 + 5);
if (param_1[3] != 0) {
xmldb_del_anchor();
}
param_1[3] = uVar5;
sobj_del(iVar2);
LAB_0040d7ec:
while ((undefined4 ****)local_30 != &local_30) {
FUN_0040995c(local_30);
}
LAB_0040d7fc:
if (iVar1 == 3) {
iVar1 = 0;
}
else {
sobj_free(param_4);
}
return iVar1;
}