/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400abfe0 FUN_1400abfe0 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001400ac3ec) */ /* WARNING: Removing unreachable block (ram,0x0001400ac3fb) */ /* WARNING: Removing unreachable block (ram,0x0001400ac400) */ /* WARNING: Removing unreachable block (ram,0x0001400ac43e) */ /* WARNING: Removing unreachable block (ram,0x0001400ac410) */ /* WARNING: Removing unreachable block (ram,0x0001400ac42f) */ /* WARNING: Removing unreachable block (ram,0x0001400ac421) */ /* WARNING: Removing unreachable block (ram,0x0001400ac437) */ /* WARNING: Removing unreachable block (ram,0x0001400ac43c) */ undefined8 FUN_1400abfe0(undefined8 *param_1,LPCWSTR param_2,undefined8 param_3,undefined8 param_4) { int *piVar1; longlong lVar2; undefined8 *puVar3; undefined8 *puVar4; undefined2 *puVar5; undefined8 *puVar6; undefined8 *puVar7; DWORD DVar8; BOOL BVar9; undefined **ppuVar10; undefined8 *puVar11; int *piVar12; int *piVar13; undefined4 extraout_var; ulonglong uVar14; undefined *puVar15; wchar_t *pwVar16; undefined4 extraout_var_00; undefined4 extraout_var_01; undefined4 extraout_var_02; longlong *plVar17; undefined **ppuVar18; undefined8 uVar19; undefined2 *lpBuffer; undefined *puVar20; undefined8 *puVar21; undefined8 *puVar22; undefined *puVar23; int iVar24; undefined8 uVar25; undefined8 uVar26; undefined8 **lpNumberOfBytesWritten; undefined8 *local_res8; LPCWSTR local_res10; undefined2 local_res18 [4]; undefined8 *local_res20; undefined2 *local_118; undefined8 *local_110; undefined8 *local_108; undefined8 *local_100; undefined8 *local_f8; int *local_f0; undefined8 local_e8; int *local_e0; undefined1 local_d8; undefined8 local_d0; __time64_t local_c8; longlong local_c0; undefined *local_b8; int local_b0; __time64_t local_a8; int *local_a0; undefined1 local_98; int *local_90; undefined1 local_88; undefined8 local_80; int *local_78; undefined1 local_70; undefined *local_68 [5]; local_80 = 0xfffffffffffffffe; local_res8 = param_1; local_res10 = param_2; local_e0 = (int *)(**(code **)(param_1[-0xe] + 0x58))(); FUN_14003d040(local_e0); puVar6 = local_res8; local_d8 = 1; puVar21 = (undefined8 *)0x0; local_110 = (undefined8 *)0x0; local_f8 = (undefined8 *)0x0; local_108 = (undefined8 *)0x0; local_100 = (undefined8 *)0x0; lVar2 = param_1[0x2eb]; puVar3 = puVar21; puVar4 = puVar21; puVar11 = local_110; while (local_110 = puVar11, lVar2 != 0) { ppuVar18 = local_68; ppuVar10 = (undefined **)FUN_1400a9060(param_1 + 0x2e8,(longlong *)ppuVar18,param_3,param_4); plVar17 = (longlong *)0x28; puVar11 = (undefined8 *)FUN_14003e840(0x28); local_res8 = puVar11; local_res20 = puVar11; if (puVar11 != (undefined8 *)0x0) { FUN_14003e7c0(plVar17,ppuVar18,param_3,param_4); puVar11[2] = PTR_DAT_14016f010; plVar17 = puVar11 + 2; ppuVar18 = ppuVar10; FUN_1400020c0(plVar17,(longlong *)ppuVar10,param_3,param_4); *(undefined4 *)(puVar11 + 3) = *(undefined4 *)(ppuVar10 + 1); puVar11[4] = ppuVar10[2]; } puVar15 = local_68[0]; puVar11[1] = puVar3; *puVar11 = 0; puVar21 = (undefined8 *)((longlong)puVar21 + 1); puVar22 = puVar11; puVar7 = puVar11; if (puVar3 != (undefined8 *)0x0) { *puVar3 = puVar11; puVar22 = puVar4; puVar7 = local_108; } local_108 = puVar7; local_100 = puVar11; local_f8 = puVar21; if (((local_68[0] != (undefined *)0x0) && (local_68[0] != PTR_DAT_14016f010)) && (puVar20 = local_68[0] + -8, puVar20 != (undefined *)0x0)) { piVar12 = (int *)FUN_14003e7c0(plVar17,ppuVar18,param_3,param_4); local_90 = piVar12; FUN_14003d040(piVar12); local_88 = 1; piVar13 = (int *)(puVar15 + -4); *piVar13 = *piVar13 + -1; if (*piVar13 == 0) { FUN_14003e8b0(puVar20); } FUN_14003d0d0((longlong)piVar12); local_88 = 0; } param_1 = puVar6; puVar3 = puVar11; puVar4 = puVar22; puVar11 = local_110; lVar2 = puVar6[0x2eb]; } FUN_14003d0d0((longlong)local_e0); local_d8 = 0; local_f0 = (int *)0x0; local_e8 = 0; uVar26 = 0; uVar19 = 0x40000000; uVar25 = 1; piVar13 = CreateFileW(local_res10,0x40000000,1,(LPSECURITY_ATTRIBUTES)0x0,2,0x80,(HANDLE)0x0); piVar12 = piVar13; if (piVar13 == (int *)0xffffffffffffffff) { DVar8 = FUN_140083b60(); uVar14 = CONCAT44(extraout_var,DVar8); piVar13 = (int *)0x0; piVar12 = local_f0; if ((int)DVar8 < 0) { while( true ) { if (puVar21 == (undefined8 *)0x0) { return uVar14 & 0xffffffffffffff00; } if (puVar4 == (undefined8 *)0x0) break; puVar3 = (undefined8 *)*puVar4; FUN_140002190(puVar4 + 2,uVar19,uVar25,uVar26); uVar14 = FUN_14003e8b0(puVar4); puVar21 = (undefined8 *)((longlong)puVar21 + -1); puVar4 = puVar3; } /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } } local_f0 = piVar12; local_d0 = 0; DVar8 = SetFilePointer(piVar13,0,(PLONG)((longlong)&local_d0 + 4),0); if (DVar8 == 0xffffffff) { FUN_140083b60(); } local_res18[0] = 0xfeff; lpNumberOfBytesWritten = &local_res8; uVar14 = 2; lpBuffer = local_res18; piVar12 = piVar13; BVar9 = WriteFile(piVar13,lpBuffer,2,(LPDWORD)lpNumberOfBytesWritten,(LPOVERLAPPED)0x0); if (BVar9 == 0) { FUN_140083b60(); } puVar15 = FUN_14003e7c0(piVar12,lpBuffer,uVar14,lpNumberOfBytesWritten); local_118 = (undefined2 *)PTR_DAT_14016f010; puVar5 = (undefined2 *)PTR_DAT_14016f010; while (puVar21 != (undefined8 *)0x0) { FUN_1400a9060((longlong *)&local_110,(longlong *)&local_b8,uVar14,lpNumberOfBytesWritten); local_c8 = local_a8; plVar17 = FUN_1400841b0(&local_c8,&local_c0,L"%#c"); lVar2 = *plVar17; pwVar16 = FUN_140092390(local_b0); FUN_140029b80((longlong *)&local_118,L"[%s] [%s] %s\r\n",pwVar16,lVar2); LOCK(); piVar13 = (int *)(local_c0 + -8); iVar24 = *piVar13; *piVar13 = *piVar13 + -1; UNLOCK(); if (iVar24 + -1 < 1) { (**(code **)(**(longlong **)(local_c0 + -0x18) + 8))(); } piVar13 = local_f0; puVar5 = local_118; iVar24 = 0; lpBuffer = (undefined2 *)PTR_DAT_14016f010; if (local_118 != (undefined2 *)0x0) { piVar12 = (int *)0x0; if (local_118 != (undefined2 *)PTR_DAT_14016f010) { piVar12 = (int *)(ulonglong)*(uint *)(local_118 + -4); } iVar24 = (int)piVar12; lpBuffer = local_118; } uVar14 = (ulonglong)(uint)(iVar24 * 2); lpNumberOfBytesWritten = &local_res20; piVar12 = local_f0; BVar9 = WriteFile(local_f0,lpBuffer,iVar24 * 2,(LPDWORD)lpNumberOfBytesWritten,(LPOVERLAPPED)0x0 ); puVar15 = (undefined *)CONCAT44(extraout_var_00,BVar9); if (BVar9 == 0) { DVar8 = FUN_140083b60(); puVar15 = (undefined *)CONCAT44(extraout_var_01,DVar8); } puVar20 = local_b8; puVar11 = local_110; puVar21 = local_f8; if (((local_b8 != (undefined *)0x0) && (local_b8 != PTR_DAT_14016f010)) && (puVar23 = local_b8 + -8, puVar23 != (undefined *)0x0)) { piVar12 = (int *)FUN_14003e7c0(piVar12,lpBuffer,uVar14,lpNumberOfBytesWritten); local_a0 = piVar12; FUN_14003d040(piVar12); local_98 = 1; piVar1 = (int *)(puVar20 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14003e8b0(puVar23); } puVar15 = (undefined *)FUN_14003d0d0((longlong)piVar12); local_98 = 0; puVar11 = local_110; puVar21 = local_f8; } } if (piVar13 != (int *)0x0) { BVar9 = CloseHandle(piVar13); puVar15 = (undefined *)CONCAT44(extraout_var_02,BVar9); local_f0 = (int *)0x0; piVar12 = piVar13; } if (((puVar5 != (undefined2 *)0x0) && (puVar5 != (undefined2 *)PTR_DAT_14016f010)) && (puVar5 + -4 != (undefined2 *)0x0)) { piVar12 = (int *)FUN_14003e7c0(piVar12,lpBuffer,uVar14,lpNumberOfBytesWritten); local_78 = piVar12; FUN_14003d040(piVar12); local_70 = 1; piVar13 = (int *)(puVar5 + -2); *piVar13 = *piVar13 + -1; if (*piVar13 == 0) { FUN_14003e8b0(puVar5 + -4); } puVar15 = (undefined *)FUN_14003d0d0((longlong)piVar12); } if (puVar11 != (undefined8 *)0x0) { puVar15 = (undefined *)(**(code **)*puVar11)(puVar11,1); } return CONCAT71((int7)((ulonglong)puVar15 >> 8),1); }