/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400e50a0 FUN_1400e50a0 * Pseudocode, not original source. */ undefined8 FUN_1400e50a0(undefined1 *param_1,uint param_2,undefined1 *param_3,uint *param_4) { undefined1 uVar1; undefined8 uVar2; longlong lVar3; undefined1 *puVar4; ulonglong uVar5; undefined1 uVar6; uint uVar7; uint local_res8 [2]; uVar5 = (ulonglong)param_2; if (((param_1 == (undefined1 *)0x0) || (param_3 == (undefined1 *)0x0)) || (param_4 == (uint *)0x0) ) { LAB_1400e51a9: uVar2 = 0x10; } else { uVar2 = FUN_1400e2b80(param_2,(int *)local_res8); if ((int)uVar2 != 0) { return uVar2; } if (*param_4 < local_res8[0]) { *param_4 = local_res8[0]; return 6; } *param_3 = 4; uVar6 = (undefined1)param_2; if (param_2 < 0x80) { param_3[1] = uVar6; uVar7 = 2; } else if (param_2 < 0x100) { param_3[1] = 0x81; uVar7 = 3; param_3[2] = uVar6; } else { uVar1 = (undefined1)(param_2 >> 8); if (param_2 < 0x10000) { param_3[1] = 0x82; uVar7 = 4; param_3[2] = uVar1; param_3[3] = uVar6; } else { if (0xffffff < param_2) goto LAB_1400e51a9; param_3[1] = 0x83; uVar7 = 5; param_3[2] = (char)(param_2 >> 0x10); param_3[3] = uVar1; param_3[4] = uVar6; } } lVar3 = (longlong)(int)uVar7; if (param_2 != 0) { uVar7 = uVar7 + param_2; puVar4 = param_3 + lVar3; do { uVar6 = *param_1; param_1 = param_1 + 1; uVar5 = uVar5 - 1; *puVar4 = uVar6; puVar4 = puVar4 + 1; } while (uVar5 != 0); } *param_4 = uVar7; uVar2 = 0; } return uVar2; }