/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400d6928 FUN_1400d6928 * Pseudocode, not original source. */ undefined8 FUN_1400d6928(longlong *param_1) { int *piVar1; undefined8 uVar2; uint uVar3; uint uVar4; uint uVar5; undefined4 uVar6; undefined4 uVar7; byte *pbVar8; byte local_res8 [8]; if ((param_1 == (longlong *)0x0) || (piVar1 = (int *)param_1[5], piVar1 == (int *)0x0)) { uVar2 = 0xfffffffe; } else if (((int)param_1[1] == 0) && ((uint)piVar1[0x11] < 8)) { uVar2 = 0xfffffffb; } else { if (*piVar1 != 0x1d) { uVar5 = 0; *piVar1 = 0x1d; uVar3 = piVar1[0x11] & 7; piVar1[0x10] = piVar1[0x10] << (sbyte)uVar3; uVar3 = piVar1[0x11] - uVar3; piVar1[0x11] = uVar3; if (7 < uVar3) { uVar4 = piVar1[0x10]; pbVar8 = local_res8; do { uVar3 = uVar3 - 8; uVar4 = uVar4 >> 8; *pbVar8 = *(byte *)(piVar1 + 0x10); pbVar8 = pbVar8 + 1; uVar5 = uVar5 + 1; piVar1[0x10] = uVar4; piVar1[0x11] = uVar3; } while (7 < uVar3); } piVar1[0x1f] = 0; FUN_1400d68c8((uint *)(piVar1 + 0x1f),local_res8,uVar5); } uVar3 = FUN_1400d68c8((uint *)(piVar1 + 0x1f),(byte *)*param_1,*(uint *)(param_1 + 1)); *(int *)((longlong)param_1 + 0xc) = *(int *)((longlong)param_1 + 0xc) + uVar3; *(uint *)(param_1 + 1) = (int)param_1[1] - uVar3; uVar7 = *(undefined4 *)((longlong)param_1 + 0xc); *param_1 = *param_1 + (ulonglong)uVar3; if (piVar1[0x1f] == 4) { uVar6 = *(undefined4 *)((longlong)param_1 + 0x1c); FUN_1400d4ec8((longlong)param_1); *(undefined4 *)((longlong)param_1 + 0xc) = uVar7; *(undefined4 *)((longlong)param_1 + 0x1c) = uVar6; *piVar1 = 0xb; uVar2 = 0; } else { uVar2 = 0xfffffffd; } } return uVar2; }