/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x140020d90 FUN_140020d90 * Pseudocode, not original source. */ void FUN_140020d90(int *param_1,byte *param_2,int param_3) { byte bVar1; byte bVar2; int iVar3; byte *pbVar4; byte *pbVar5; int iVar6; int iVar7; int iVar8; iVar3 = param_1[4]; if (0 < iVar3) { iVar8 = *param_1; iVar7 = param_1[1]; pbVar5 = *(byte **)(param_1 + 2); joined_r0x000140020dc8: pbVar4 = pbVar5; if (pbVar4 < param_2) { bVar1 = *pbVar4; if (bVar1 == 0) { return; } if (bVar1 == 9) { iVar7 = (iVar7 / iVar3 + 1) * iVar3; pbVar5 = pbVar4 + 1; } else { if (bVar1 != 10) { if (bVar1 == 0xd) { iVar8 = iVar8 + 1; iVar7 = 0; pbVar5 = pbVar4 + 1; if (pbVar4[1] == 10) { pbVar5 = pbVar4 + 2; } goto joined_r0x000140020dc8; } if (bVar1 == 0xef) { if (param_3 == 1) { bVar1 = pbVar4[1]; pbVar5 = pbVar4; if ((bVar1 != 0) && (bVar2 = pbVar4[2], bVar2 != 0)) { if ((bVar1 != 0xbb) || (bVar2 != 0xbf)) { if (bVar1 == 0xbf) { if (bVar2 == 0xbe) { pbVar5 = pbVar4 + 3; goto joined_r0x000140020dc8; } if (bVar2 == 0xbf) { pbVar5 = pbVar4 + 3; goto joined_r0x000140020dc8; } } iVar7 = iVar7 + 1; pbVar5 = pbVar4 + 3; goto joined_r0x000140020dc8; } pbVar5 = pbVar4 + 3; } goto joined_r0x000140020dc8; } } else if (param_3 == 1) { iVar6 = *(int *)(&DAT_140132000 + (ulonglong)bVar1 * 4); if (iVar6 == 0) { iVar6 = 1; } iVar7 = iVar7 + 1; pbVar5 = pbVar4 + iVar6; goto joined_r0x000140020dc8; } iVar7 = iVar7 + 1; pbVar5 = pbVar4 + 1; goto joined_r0x000140020dc8; } iVar8 = iVar8 + 1; iVar7 = 0; pbVar5 = pbVar4 + 1; if (pbVar4[1] == 0xd) { pbVar5 = pbVar4 + 2; } } goto joined_r0x000140020dc8; } *param_1 = iVar8; param_1[1] = iVar7; *(byte **)(param_1 + 2) = pbVar4; } return; }