60 lines
1.7 KiB
C
60 lines
1.7 KiB
C
/* 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;
|
|
}
|
|
|