/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401f5340 FUN_1401f5340 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined8 FUN_1401f5340(longlong param_1,longlong *param_2) { int *piVar1; int iVar2; char *pcVar3; undefined *puVar4; longlong *plVar5; undefined8 uVar6; undefined8 uVar7; char *pcVar8; undefined *puVar9; int iVar10; undefined1 auStack_1a8 [32]; undefined8 local_188; undefined1 local_180; undefined *local_178; undefined *local_170; longlong *local_168; undefined8 local_160; undefined8 local_158; undefined1 local_150; undefined1 *local_148; undefined1 local_140 [264]; ulonglong local_38; local_160 = 0xfffffffffffffffe; local_38 = DAT_1403463c0 ^ (ulonglong)auStack_1a8; local_168 = param_2; FUN_14016d8c0(); puVar9 = PTR_DAT_140344098; local_178 = PTR_DAT_140344098; pcVar3 = (char *)*param_2; pcVar8 = PTR_DAT_140344098; if (((pcVar3 == (char *)0x0) || (pcVar8 = pcVar3, pcVar3 == PTR_DAT_140344098)) || (-1 < *(int *)(pcVar3 + -8))) { pcVar3 = strstr(pcVar8,"http"); iVar2 = -1; if (pcVar3 != (char *)0x0) { puVar4 = (undefined *)*param_2; if ((undefined *)*param_2 == (undefined *)0x0) { puVar4 = PTR_DAT_140344098; } iVar2 = (int)pcVar3 - (int)puVar4; } } else { iVar2 = -1; } pcVar3 = (char *)*param_2; pcVar8 = PTR_DAT_140344098; if ((((pcVar3 == (char *)0x0) || (pcVar8 = pcVar3, pcVar3 == PTR_DAT_140344098)) || (iVar10 = -1, -1 < *(int *)(pcVar3 + -8))) && (pcVar3 = strstr(pcVar8,".xml"), iVar10 = -1, pcVar3 != (char *)0x0)) { puVar4 = (undefined *)*param_2; if ((undefined *)*param_2 == (undefined *)0x0) { puVar4 = PTR_DAT_140344098; } iVar10 = (int)pcVar3 - (int)puVar4; } if ((iVar2 < iVar10) && (-1 < iVar2)) { plVar5 = (longlong *)FUN_1401f5030(param_2,&local_170,iVar2,(iVar10 - iVar2) + 4); if (puVar9 == (undefined *)0x0) { puVar9 = PTR_DAT_140344098; } local_178 = puVar9; if ((undefined *)*plVar5 != puVar9) { uVar6 = FUN_14016d8c0(); local_158 = uVar6; FUN_14016db50(uVar6); local_150 = 1; if (((puVar9 != (undefined *)0x0) && (puVar9 != PTR_DAT_140344098)) && (puVar9 + -8 != (undefined *)0x0)) { uVar7 = FUN_14016d8c0(); local_188 = uVar7; FUN_14016db50(uVar7); local_180 = 1; piVar1 = (int *)(puVar9 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar9 + -8); } FUN_14016dbe0(uVar7); } puVar9 = (undefined *)*plVar5; if (((puVar9 != PTR_DAT_140344098) && (puVar9 != (undefined *)0x0)) && (puVar9 != (undefined *)0x8)) { *(int *)(puVar9 + -4) = *(int *)(puVar9 + -4) + 1; } local_178 = puVar9; FUN_14016dbe0(uVar6); } if (((local_170 != (undefined *)0x0) && (local_170 != PTR_DAT_140344098)) && (local_170 + -8 != (undefined *)0x0)) { uVar6 = FUN_14016d8c0(); local_188 = uVar6; FUN_14016db50(uVar6); local_180 = 1; piVar1 = (int *)(local_170 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(local_170 + -8); } FUN_14016dbe0(uVar6); } } puVar4 = puVar9; if (puVar9 == (undefined *)0x0) { puVar4 = PTR_DAT_140344098; } local_148 = local_140; FUN_14015b060(&local_148,puVar4,3); iVar2 = FUN_1401f5200(param_1 + 0x10,local_148,0); if (local_148 != local_140) { free(local_148); } if (iVar2 == 0) { if (((puVar9 != (undefined *)0x0) && (puVar9 != PTR_DAT_140344098)) && (puVar9 + -8 != (undefined *)0x0)) { uVar6 = FUN_14016d8c0(); local_188 = uVar6; FUN_14016db50(uVar6); local_180 = 1; piVar1 = (int *)(puVar9 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar9 + -8); } FUN_14016dbe0(uVar6); } FUN_14004f5a0(param_2); uVar6 = 0; } else if (param_1 == 0x1402a4a4e) { if (((puVar9 != (undefined *)0x0) && (puVar9 != PTR_DAT_140344098)) && (puVar9 + -8 != (undefined *)0x0)) { uVar6 = FUN_14016d8c0(); local_188 = uVar6; FUN_14016db50(uVar6); local_180 = 1; piVar1 = (int *)(puVar9 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar9 + -8); } FUN_14016dbe0(uVar6); } FUN_14004f5a0(param_2); uVar6 = 0; } else { if (((puVar9 != (undefined *)0x0) && (puVar9 != PTR_DAT_140344098)) && (puVar9 + -8 != (undefined *)0x0)) { uVar6 = FUN_14016d8c0(); local_188 = uVar6; FUN_14016db50(uVar6); local_180 = 1; piVar1 = (int *)(puVar9 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar9 + -8); } FUN_14016dbe0(uVar6); } FUN_14004f5a0(param_2); uVar6 = 1; } return uVar6; }