/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14005fc40 FUN_14005fc40 * Pseudocode, not original source. */ void FUN_14005fc40(SIZE_T *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { int iVar1; int iVar2; uint uVar3; byte *pbVar4; undefined *puVar5; longlong *plVar6; int *piVar7; ulonglong uVar8; byte *pbVar9; int iVar10; undefined *puVar11; byte *local_res10; byte *local_res18; longlong *local_res20; uint local_50 [2]; longlong local_48; longlong local_40; undefined4 local_38; int local_34; FUN_140030200(param_1,param_2,param_3,param_4); local_res10 = PTR_DAT_140155008; iVar1 = FUN_140030120(&DAT_1400fd138); if (local_res10 == (byte *)0x0) { iVar10 = 0; } else if (local_res10 == PTR_DAT_140155008) { iVar10 = 0; } else { iVar10 = *(int *)(local_res10 + -8); } iVar2 = iVar1; if (iVar1 <= iVar10) { if (local_res10 == (byte *)0x0) { iVar2 = 0; } else if (local_res10 == PTR_DAT_140155008) { iVar2 = 0; } else { iVar2 = *(int *)(local_res10 + -8); } } iVar10 = 1; if (1 < iVar2) { iVar10 = iVar2; } if (local_res10 == (byte *)0x0) { iVar2 = 0; } else if (local_res10 == PTR_DAT_140155008) { iVar2 = 0; } else { iVar2 = *(int *)(local_res10 + -8); } if (iVar10 <= iVar2) goto LAB_14005fd9a; if (local_res10 == (byte *)0x0) { local_res10 = PTR_DAT_140155008; } if (iVar10 < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } if (iVar10 == 0) { FUN_14001c020((longlong *)&local_res10); goto LAB_14005fd9a; } if (local_res10 == (byte *)0x0) { iVar2 = 0; } else if (local_res10 == PTR_DAT_140155008) { iVar2 = 0; } else { iVar2 = *(int *)(local_res10 + -8); } if (iVar10 == iVar2) goto LAB_14005fd9a; piVar7 = (int *)FUN_140030280((longlong)iVar10 + 9); if (piVar7 != (int *)0x0) { *piVar7 = 0; piVar7[1] = 1; } *piVar7 = iVar10; if (local_res10 == (byte *)0x0) { iVar2 = 0; } else if (local_res10 == PTR_DAT_140155008) { iVar2 = 0; } else { iVar2 = *(int *)(local_res10 + -8); } pbVar4 = PTR_DAT_140155008; if (iVar10 < iVar2) { LAB_14005fd76: if (local_res10 != (byte *)0x0) { pbVar4 = local_res10; } } else { if (local_res10 != (byte *)0x0) { if (local_res10 == PTR_DAT_140155008) { iVar10 = 0; } else { iVar10 = *(int *)(local_res10 + -8); } goto LAB_14005fd76; } iVar10 = 0; } FUN_140030150(piVar7 + 2,pbVar4,iVar10); FUN_14001c020((longlong *)&local_res10); local_res10 = (byte *)(piVar7 + 2); LAB_14005fd9a: FUN_14002eb30((longlong *)&local_res10); pbVar4 = local_res10; if (local_res10 == (byte *)0x0) { pbVar4 = PTR_DAT_140155008; } FUN_140030150(pbVar4,&DAT_1400fd138,iVar1); pbVar4 = local_res10; if (local_res10 == (byte *)0x0) { pbVar4 = PTR_DAT_140155008; } uVar3 = FUN_140030120((char *)pbVar4); puVar11 = PTR_DAT_140155008; uVar8 = 0; if (0 < (int)uVar3) { uVar8 = (ulonglong)uVar3; } if (local_res10 == (byte *)0x0) { pbVar4 = (byte *)0x0; } else if (local_res10 == PTR_DAT_140155008) { pbVar4 = (byte *)0x0; } else { pbVar4 = (byte *)(ulonglong)*(uint *)(local_res10 + -8); } if ((int)pbVar4 <= (int)uVar8) { if (local_res10 == (byte *)0x0) { uVar8 = 0; } else if (local_res10 == PTR_DAT_140155008) { uVar8 = 0; } else { uVar8 = (ulonglong)*(uint *)(local_res10 + -8); } } if (((local_res10 != PTR_DAT_140155008) && (local_res10 != (byte *)0x0)) && (pbVar4 = local_res10 + -8, pbVar4 != (byte *)0x0)) { *(int *)pbVar4 = (int)uVar8; pbVar4[(longlong)(int)uVar8 + 8] = 0; } FUN_140030200(uVar8,pbVar4,puVar11,param_4); local_res18 = PTR_DAT_140155008; FUN_1400806d0(local_50); FUN_1400801a0((longlong)local_50,pbVar4,(SIZE_T)puVar11,param_4); FUN_140081e60((longlong)local_50,(longlong *)&local_res10,puVar11,param_4); FUN_1400802d0((int *)local_50,0,puVar11,param_4); thunk_FUN_1400813e0(local_50,(LPCWSTR)&local_res18,puVar11,param_4); pbVar4 = local_res10; if (local_res10 == (byte *)0x0) { pbVar4 = PTR_DAT_140155008; } puVar11 = PTR_DAT_140155008; if (pbVar4 != local_res18) { pbVar4 = local_res18; if (local_res18 == (byte *)0x0) { pbVar4 = PTR_DAT_140155008; } pbVar9 = local_res10; if (local_res10 == (byte *)0x0) { pbVar9 = PTR_DAT_140155008; } iVar1 = FUN_140030180(pbVar9,(longlong)pbVar4); if (iVar1 != 0) { FUN_140030200(pbVar9,pbVar4,puVar11,param_4); local_res20 = (longlong *)PTR_DAT_140155010; uVar3 = FUN_140030080(L"Proud.String serialization failed!"); puVar5 = FUN_140002f90((longlong *)&local_res20,uVar3); puVar11 = (undefined *)(ulonglong)uVar3; FUN_1400300b0(puVar5,L"Proud.String serialization failed!",uVar3); FUN_140003070((longlong *)&local_res20); FUN_14005f1b0(param_1,(wchar_t *)&local_res20,(SIZE_T)puVar11,param_4); } } local_res20 = &local_48; plVar6 = &local_48; FUN_140095270(plVar6); pbVar4 = local_res18; if (local_40 != 0) { if (local_34 < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } local_38 = 0; } if (((local_res18 != (byte *)0x0) && (local_res18 != PTR_DAT_140155008)) && (pbVar9 = local_res18 + -8, pbVar9 != (byte *)0x0)) { plVar6 = (longlong *)FUN_140030200(plVar6,PTR_DAT_140155008,puVar11,param_4); FUN_14002e6e0((int *)plVar6); pbVar4 = pbVar4 + -4; *(int *)pbVar4 = *(int *)pbVar4 + -1; if (*(int *)pbVar4 == 0) { FUN_1400302f0(pbVar9); } FUN_14002e770((longlong)plVar6); } pbVar4 = local_res10; if (((local_res10 != (byte *)0x0) && (local_res10 != PTR_DAT_140155008)) && (pbVar9 = local_res10 + -8, pbVar9 != (byte *)0x0)) { local_res18 = PTR_DAT_140155008; piVar7 = (int *)FUN_140030200(plVar6,PTR_DAT_140155008,puVar11,param_4); FUN_14002e6e0(piVar7); pbVar4 = pbVar4 + -4; *(int *)pbVar4 = *(int *)pbVar4 + -1; if (*(int *)pbVar4 == 0) { FUN_1400302f0(pbVar9); } FUN_14002e770((longlong)piVar7); } return; }