/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400cc120 FUN_1400cc120 * Pseudocode, not original source. */ ulonglong FUN_1400cc120(char *param_1,uint *param_2,int param_3,undefined4 param_4, undefined8 param_5) { int iVar1; void *_Memory; ulonglong uVar2; undefined8 *puVar3; uint uVar4; ulonglong uVar5; undefined8 *puVar6; undefined8 uVar7; bool bVar8; if ((param_1 == (char *)0x0) || (param_2 == (uint *)0x0)) { return 0x10; } uVar5 = 0; uVar4 = 0; uVar2 = uVar5; if (param_3 != 0) { puVar3 = ¶m_5; bVar8 = param_3 == 0; iVar1 = param_3; do { if ((bVar8 || iVar1 < 0) || ((0xb < iVar1 && (2 < iVar1 - 0xdU)))) { return 0x10; } iVar1 = *(int *)(puVar3 + 1); uVar2 = (ulonglong)((int)uVar2 + 1); puVar3 = puVar3 + 3; bVar8 = iVar1 == 0; } while (!bVar8); } if ((int)uVar2 == 0) { return 2; } _Memory = calloc(0x38,uVar2); if (_Memory == (void *)0x0) { return 0xd; } puVar3 = ¶m_5; bVar8 = param_3 == 0; if (!bVar8) { puVar6 = (undefined8 *)((longlong)_Memory + 8); uVar7 = param_5; do { if ((bVar8 || param_3 < 0) || ((0xb < param_3 && (2 < param_3 - 0xdU)))) { uVar2 = 0x10; goto LAB_1400cc24f; } *(int *)(puVar6 + -1) = param_3; *(undefined4 *)(puVar6 + 1) = param_4; *puVar6 = uVar7; param_3 = *(int *)(puVar3 + 1); param_4 = *(undefined4 *)(puVar3 + 2); uVar7 = puVar3[3]; puVar3 = puVar3 + 3; uVar4 = (int)uVar5 + 1; uVar5 = (ulonglong)uVar4; puVar6 = puVar6 + 7; bVar8 = param_3 == 0; } while (!bVar8); } uVar2 = FUN_1400d2510((longlong)_Memory,uVar4,param_1,param_2,0xd); uVar2 = uVar2 & 0xffffffff; LAB_1400cc24f: free(_Memory); return uVar2; }