/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400b0550 FUN_1400b0550 * Pseudocode, not original source. */ longlong * FUN_1400b0550(char *param_1,longlong *param_2) { char cVar1; int iVar2; char *pcVar3; longlong *plVar4; byte *pbVar5; byte *pbVar6; uint uVar7; uint uVar8; char *pcVar9; pcVar9 = (char *)*param_2; pcVar3 = pcVar9; if (pcVar9 == (char *)0x0) { pcVar3 = PTR_DAT_140155008; } if (pcVar3 == (char *)0x0) { /* WARNING: Subroutine does not return */ FUN_14000b450(0x80004005); } uVar8 = 0; if (pcVar9 == (char *)0x0) { pcVar9 = PTR_DAT_140155008; } cVar1 = *pcVar9; while (cVar1 != '\0') { pcVar9 = pcVar9 + 1; uVar8 = uVar8 * 0x21 + (int)cVar1; cVar1 = *pcVar9; } uVar7 = (uint)((ulonglong)uVar8 % (ulonglong)*(uint *)(param_1 + 0x28)); if (*(longlong *)(param_1 + 8) != 0) { for (plVar4 = *(longlong **) (*(longlong *)(param_1 + 8) + ((ulonglong)uVar8 % (ulonglong)*(uint *)(param_1 + 0x28)) * 8); (plVar4 != (longlong *)0x0 && (uVar7 == *(uint *)(plVar4 + 4) % *(uint *)(param_1 + 0x28))); plVar4 = (longlong *)plVar4[2]) { pbVar6 = (byte *)*param_2; if ((byte *)*param_2 == (byte *)0x0) { pbVar6 = PTR_DAT_140155008; } pbVar5 = (byte *)*plVar4; if ((byte *)*plVar4 == (byte *)0x0) { pbVar5 = PTR_DAT_140155008; } iVar2 = FUN_140030180(pbVar5,(longlong)pbVar6); if (iVar2 == 0) goto LAB_1400b0630; } } plVar4 = FUN_1400aff80(param_1,param_2,uVar7,uVar8); LAB_1400b0630: return plVar4 + 1; }