/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400cc450 FUN_1400cc450 * Pseudocode, not original source. */ longlong * FUN_1400cc450(char *param_1,longlong *param_2) { ushort uVar1; int iVar2; ushort *puVar3; longlong *plVar4; ushort *puVar5; uint uVar6; uint uVar7; puVar5 = (ushort *)*param_2; puVar3 = puVar5; if (puVar5 == (ushort *)0x0) { puVar3 = (ushort *)PTR_DAT_14016f010; } if (puVar3 == (ushort *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } uVar7 = 0; if (puVar5 == (ushort *)0x0) { puVar5 = (ushort *)PTR_DAT_14016f010; } uVar1 = *puVar5; while (uVar1 != 0) { puVar5 = puVar5 + 1; uVar7 = uVar7 * 0x21 + (uint)uVar1; uVar1 = *puVar5; } uVar6 = (uint)((ulonglong)uVar7 % (ulonglong)*(uint *)(param_1 + 0x28)); if (*(longlong *)(param_1 + 8) != 0) { for (plVar4 = *(longlong **) (*(longlong *)(param_1 + 8) + ((ulonglong)uVar7 % (ulonglong)*(uint *)(param_1 + 0x28)) * 8); (plVar4 != (longlong *)0x0 && (uVar6 == *(uint *)(plVar4 + 4) % *(uint *)(param_1 + 0x28))); plVar4 = (longlong *)plVar4[2]) { puVar5 = (ushort *)*param_2; if ((ushort *)*param_2 == (ushort *)0x0) { puVar5 = (ushort *)PTR_DAT_14016f010; } puVar3 = (ushort *)*plVar4; if ((ushort *)*plVar4 == (ushort *)0x0) { puVar3 = (ushort *)PTR_DAT_14016f010; } iVar2 = FUN_14003e660(puVar3,(longlong)puVar5); if (iVar2 == 0) goto LAB_1400cc530; } } plVar4 = FUN_1400cbe00(param_1,param_2,uVar6,uVar7); LAB_1400cc530: return plVar4 + 1; }