/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400d4630 FUN_1400d4630 * Pseudocode, not original source. */ int FUN_1400d4630(uint param_1,undefined1 *param_2,uint *param_3) { uint uVar1; int iVar2; longlong lVar3; undefined1 *puVar4; uint uVar5; uint uVar6; ulonglong uVar7; uint local_res10 [2]; if ((param_2 == (undefined1 *)0x0) || (param_3 == (uint *)0x0)) { return 0x10; } iVar2 = FUN_1400d2170(param_1,(int *)local_res10); if (iVar2 != 0) { return iVar2; } if (*param_3 < local_res10[0]) { *param_3 = local_res10[0]; return 6; } uVar6 = 0; iVar2 = 0; uVar5 = param_1; if (param_1 != 0) { do { iVar2 = iVar2 + 1; uVar1 = uVar5 >> 8; uVar5 = uVar5 >> 8; } while (uVar1 != 0); if (iVar2 != 0) goto LAB_1400d46b5; } iVar2 = 1; LAB_1400d46b5: uVar5 = iVar2 + (uint)((param_1 >> (iVar2 * 8 - 1U & 0x1f) & 1) != 0); if (uVar5 < 5) { for (; uVar6 < 4 - uVar5; uVar6 = uVar6 + 1) { param_1 = param_1 << 8; } } *param_2 = 2; uVar6 = 2; param_2[1] = (char)uVar5; if (uVar5 == 5) { param_2[2] = 0; uVar5 = 4; uVar6 = 3; } lVar3 = (longlong)(int)uVar6; if (uVar5 != 0) { uVar7 = (ulonglong)uVar5; uVar6 = uVar6 + uVar5; puVar4 = param_2 + lVar3; do { uVar7 = uVar7 - 1; *puVar4 = (char)(param_1 >> 0x18); puVar4 = puVar4 + 1; param_1 = param_1 << 8; } while (uVar7 != 0); } *param_3 = uVar6; return 0; }