/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401f5bd0 FUN_1401f5bd0 * Pseudocode, not original source. */ undefined8 * FUN_1401f5bd0(undefined8 param_1,undefined8 *param_2,longlong *param_3,longlong *param_4) { int *piVar1; char *pcVar2; undefined *puVar3; char *pcVar4; char *pcVar5; char *pcVar6; char *_Str; int iVar7; int iVar8; char *local_48; char *local_40; undefined1 local_38; undefined8 local_30; local_30 = 0xfffffffffffffffe; FUN_14016d8c0(); local_48 = PTR_DAT_140344098; puVar3 = (undefined *)*param_4; if ((undefined *)*param_4 == (undefined *)0x0) { puVar3 = PTR_DAT_140344098; } FUN_140170320(&local_48,&DAT_1402b1574,puVar3); pcVar2 = local_48; pcVar5 = local_48; if (local_48 == (char *)0x0) { pcVar5 = PTR_DAT_140344098; } if (pcVar5 == (char *)0x0) { iVar7 = -1; } else { pcVar4 = (char *)*param_3; pcVar6 = PTR_DAT_140344098; if (((pcVar4 == (char *)0x0) || (pcVar6 = pcVar4, pcVar4 == PTR_DAT_140344098)) || (iVar7 = -1, -1 < *(int *)(pcVar4 + -8))) { pcVar5 = strstr(pcVar6,pcVar5); if (pcVar5 == (char *)0x0) { iVar7 = -1; } else { puVar3 = (undefined *)*param_3; if ((undefined *)*param_3 == (undefined *)0x0) { puVar3 = PTR_DAT_140344098; } iVar7 = (int)pcVar5 - (int)puVar3; if (-1 < iVar7) { iVar8 = 0; if ((pcVar2 != (char *)0x0) && (iVar8 = 0, pcVar2 != PTR_DAT_140344098)) { iVar8 = *(int *)(pcVar2 + -8); } iVar7 = iVar7 + iVar8; } } } } FUN_14016d8c0(); local_40 = PTR_DAT_140344098; puVar3 = (undefined *)*param_4; if ((undefined *)*param_4 == (undefined *)0x0) { puVar3 = PTR_DAT_140344098; } FUN_140170320(&local_40,"",puVar3); pcVar5 = local_40; pcVar4 = local_40; if (local_40 == (char *)0x0) { pcVar4 = PTR_DAT_140344098; } iVar8 = -1; if ((pcVar4 != (char *)0x0) && ((((pcVar6 = (char *)*param_3, _Str = PTR_DAT_140344098, iVar8 = -1, pcVar6 == (char *)0x0 || (_Str = pcVar6, pcVar6 == PTR_DAT_140344098)) || (-1 < *(int *)(pcVar6 + -8))) && (pcVar4 = strstr(_Str,pcVar4), pcVar4 != (char *)0x0)))) { puVar3 = (undefined *)*param_3; if ((undefined *)*param_3 == (undefined *)0x0) { puVar3 = PTR_DAT_140344098; } iVar8 = (int)pcVar4 - (int)puVar3; } if (((iVar7 < 0) || (iVar8 < 0)) || (iVar8 <= iVar7)) { FUN_14016d8c0(); *param_2 = PTR_DAT_140344098; if (((pcVar5 != (char *)0x0) && (pcVar5 != PTR_DAT_140344098)) && (pcVar5 + -8 != (char *)0x0)) { pcVar4 = (char *)FUN_14016d8c0(); local_40 = pcVar4; FUN_14016db50(pcVar4); local_38 = 1; piVar1 = (int *)(pcVar5 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(pcVar5 + -8); } FUN_14016dbe0(pcVar4); } if (pcVar2 == (char *)0x0) { return param_2; } if (pcVar2 == PTR_DAT_140344098) { return param_2; } if (pcVar2 + -8 == (char *)0x0) { return param_2; } pcVar5 = (char *)FUN_14016d8c0(); local_40 = pcVar5; FUN_14016db50(pcVar5); local_38 = 1; piVar1 = (int *)(pcVar2 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(pcVar2 + -8); } } else { FUN_1401f5030(param_3,param_2,iVar7,iVar8 - iVar7); if (((pcVar5 != (char *)0x0) && (pcVar5 != PTR_DAT_140344098)) && (pcVar5 + -8 != (char *)0x0)) { pcVar4 = (char *)FUN_14016d8c0(); local_40 = pcVar4; FUN_14016db50(pcVar4); local_38 = 1; piVar1 = (int *)(pcVar5 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(pcVar5 + -8); } FUN_14016dbe0(pcVar4); } if (pcVar2 == (char *)0x0) { return param_2; } if (pcVar2 == PTR_DAT_140344098) { return param_2; } if (pcVar2 + -8 == (char *)0x0) { return param_2; } pcVar5 = (char *)FUN_14016d8c0(); local_40 = pcVar5; FUN_14016db50(pcVar5); local_38 = 1; piVar1 = (int *)(pcVar2 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(pcVar2 + -8); } } FUN_14016dbe0(pcVar5); return param_2; }