/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400d4750 FUN_1400d4750 * Pseudocode, not original source. */ ulonglong FUN_1400d4750(longlong param_1,undefined1 *param_2,uint *param_3) { bool bVar1; undefined1 uVar2; int iVar3; uint uVar4; int iVar5; ulonglong uVar6; undefined1 uVar7; int iVar8; undefined1 *puVar9; uint local_res8 [2]; undefined8 local_res20; if (((param_1 == 0) || (param_2 == (undefined1 *)0x0)) || (param_3 == (uint *)0x0)) { return 0x10; } uVar6 = FUN_1400d2220(param_1,(int *)local_res8); if ((int)uVar6 == 0) { if (*param_3 < local_res8[0]) { *param_3 = local_res8[0]; return 6; } iVar3 = (*DAT_140163300)(param_1,0); if (iVar3 == -1) { uVar4 = (*DAT_140163308)(param_1); uVar4 = (uVar4 - (uVar4 & 7)) + 8 >> 3; iVar3 = (*DAT_140163310)(param_1); iVar5 = (*DAT_140163308)(param_1); bVar1 = false; if ((iVar3 + 1 == iVar5) && (uVar6 = (*DAT_140163308)(param_1), bVar1 = false, (uVar6 & 7) == 0)) { uVar4 = uVar4 - 1; } } else { uVar6 = (*DAT_140163308)(); if (((uVar6 & 7) == 0) || (iVar3 = (*DAT_140163300)(param_1,0), iVar3 == 0)) { iVar3 = (*DAT_140163330)(param_1); uVar4 = iVar3 + 1; bVar1 = true; } else { uVar4 = (*DAT_140163330)(param_1); bVar1 = false; } } *param_2 = 2; uVar7 = (undefined1)uVar4; if (uVar4 < 0x80) { param_2[1] = uVar7; puVar9 = param_2 + 2; } else if (uVar4 < 0x100) { param_2[1] = 0x81; param_2[2] = uVar7; puVar9 = param_2 + 3; } else { uVar2 = (undefined1)(uVar4 >> 8); if (uVar4 < 0x10000) { param_2[1] = 0x82; puVar9 = param_2 + 4; param_2[2] = uVar2; param_2[3] = uVar7; } else { if (0xffffff < uVar4) { return 0x10; } param_2[1] = 0x83; param_2[2] = (char)(uVar4 >> 0x10); puVar9 = param_2 + 5; param_2[3] = uVar2; param_2[4] = uVar7; } } if (bVar1) { *puVar9 = 0; puVar9 = puVar9 + 1; } iVar3 = (*DAT_140163300)(param_1,0); if (iVar3 == 1) { uVar6 = (*DAT_140163338)(param_1,puVar9); if ((int)uVar6 != 0) { return uVar6; } } else { iVar3 = (*DAT_140163300)(param_1,0); if (iVar3 != 0) { iVar3 = (*DAT_1401632b0)(&local_res20); if (iVar3 == 0) { uVar4 = (*DAT_140163308)(param_1); iVar8 = (8 - (uVar4 & 7)) + uVar4; iVar3 = (*DAT_140163310)(param_1); iVar5 = (*DAT_140163308)(param_1); if ((iVar3 + 1 == iVar5) && (uVar6 = (*DAT_140163308)(param_1), (uVar6 & 7) == 0)) { iVar8 = iVar8 + -8; } iVar3 = (*DAT_140163318)(local_res20,iVar8); if ((iVar3 == 0) && (iVar3 = (*DAT_140163348)(local_res20,param_1,local_res20), iVar3 == 0)) { uVar4 = (*DAT_140163338)(local_res20,puVar9); if (uVar4 != 0) { (*DAT_1401632c0)(); return (ulonglong)uVar4; } (*DAT_1401632c0)(local_res20); *param_3 = local_res8[0]; return 0; } (*DAT_1401632c0)(local_res20); } return 0xd; } } *param_3 = local_res8[0]; uVar6 = 0; } return uVar6; }