/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400d3d50 FUN_1400d3d50 * Pseudocode, not original source. */ /* WARNING: Function: __chkstk replaced with injection: alloca_probe */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400d3d50(longlong param_1,uint *param_2,undefined8 param_3,undefined8 param_4) { uint uVar1; longlong lVar2; longlong *plVar3; undefined1 *puVar4; int iVar5; ulonglong uVar6; undefined4 *puVar7; longlong lVar8; ulonglong uVar9; SIZE_T SVar10; undefined8 uVar11; SIZE_T *pSVar12; undefined1 auStackY_2808 [32]; undefined4 uStack_27cc; int local_27c8 [2]; longlong local_27c0; undefined4 local_27b8; undefined4 uStack_27b4; undefined4 local_27b0; int local_27ac; longlong local_27a0 [2]; undefined1 local_2790; undefined4 local_278c; undefined1 local_2788; undefined1 local_2787; undefined8 local_2780; exception local_2778 [72]; exception local_2730 [72]; exception local_26e8 [72]; SIZE_T local_26a0 [400]; SIZE_T *local_1a20; undefined4 local_1a18; undefined4 local_1a14; undefined4 local_1a08 [2]; longlong local_1a00; longlong local_19f8; uint local_19f0; int local_19ec; undefined1 local_19e0 [136]; longlong local_1958; undefined8 uStack_1950; longlong *local_cd8; undefined4 local_cd0; int local_ccc; undefined1 local_cc8 [3200]; undefined1 *local_48; int local_40; int local_3c; ulonglong local_38; undefined8 uStack_30; uStack_30 = 0x1400d3d6a; local_2780 = 0xfffffffffffffffe; local_38 = DAT_14016f5a0 ^ (ulonglong)auStackY_2808; uVar1 = *param_2; uVar6 = (ulonglong)uVar1; iVar5 = DAT_140178018; if (uVar1 == 1) { uVar9 = 0; if (DAT_140171262 != '\0') { iVar5 = 1; } } else { uVar9 = (ulonglong)(uVar1 - 2); if ((uVar1 - 2 == 0) && (DAT_140171261 != '\0')) { iVar5 = 1; } } if (*(char *)(*(longlong *)(param_1 + 0x10) + 0x608) == '\0') { local_ccc = 200; local_cd0 = 0; local_cd8 = &local_1958; FUN_140074fb0(local_27c8); FUN_140074a40((longlong)local_27c8,uVar6,uVar9,param_4); FUN_140075110(local_27c8,0x800,uVar9,param_4); FUN_140075110(local_27c8,0,uVar9,param_4); FUN_140097ab0((byte *)param_2,(longlong)&local_1958,(SIZE_T)local_27c8,param_4); local_27a0[1] = 0; local_2790 = 1; local_278c = 0xffffffff; local_2788 = 1; local_2787 = DAT_14016f1cc; plVar3 = local_27a0; local_27a0[0]._0_4_ = iVar5; FUN_1400cf2c0((longlong *)(*(longlong *)(param_1 + 0x10) + 0x668),(longlong)&local_1958,plVar3); FUN_14008a320(&local_27c0); if (CONCAT44(uStack_27b4,local_27b8) != 0) { if (local_27ac < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } local_27b0 = 0; } if (local_cd8 == (longlong *)0x0) { FUN_14003db10(local_2778,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,plVar3, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_2778,(ThrowInfo *)&DAT_14016c210); } if (local_ccc < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } } else if (uVar1 == 1) { FUN_140074fb0(local_1a08); SVar10 = 0x80; puVar4 = local_19e0; FUN_140074c30((longlong)local_1a08,(longlong)puVar4,0x80,param_4); FUN_140029d80((longlong)local_1a08,CONCAT71((int7)((ulonglong)puVar4 >> 8),0x16),SVar10,param_4) ; FUN_140029e60((longlong)local_1a08,(ulonglong)*(uint *)(*(longlong *)(param_1 + 0x10) + 0x56c), SVar10,param_4); FUN_140029e60((longlong)local_1a08,(ulonglong)param_2[1],SVar10,param_4); puVar7 = local_1a08; plVar3 = local_27a0; FUN_140074a00(plVar3,(longlong)puVar7); if (*(longlong *)(param_2 + 2) == 0) { if (*(longlong *)(param_2 + 4) == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(plVar3,puVar7,SVar10,param_4); } uVar1 = param_2[6]; } else { uVar1 = *(uint *)(*(longlong *)(param_2 + 2) + 0x18); } lVar8 = (longlong)(int)uVar1; FUN_140076380((longlong)local_1a08,lVar8,SVar10,param_4); local_3c = 200; lVar2 = 0; local_40 = 0; local_48 = local_cc8; local_ccc = 200; local_cd0 = 0; local_cd8 = &local_1958; if (local_1a00 == 0) { if (local_19f8 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(0,lVar8,SVar10,param_4); } } else { local_19f0 = *(uint *)(local_1a00 + 0x18); } local_1958 = local_19f8; if (local_19f8 == 0) { if (local_1a00 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(0,(ulonglong)local_19f0,SVar10,param_4); } local_1958 = lVar2; if (*(int *)(local_1a00 + 0x18) != 0) { local_1958 = *(longlong *)(local_1a00 + 0x10); } } local_cd0 = 1; uStack_1950 = CONCAT44(uStack_27cc,local_19f0); plVar3 = &local_1958; puVar4 = local_cc8; FUN_14004dc30((longlong)puVar4,(longlong)plVar3,SVar10,param_4); if (local_cd8 == (longlong *)0x0) { FUN_14003db10(local_2778,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,SVar10, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_2778,(ThrowInfo *)&DAT_14016c210); } if (local_ccc < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } local_cd0 = 0; lVar8 = *(longlong *)(param_2 + 2); if (lVar8 == 0) { if (*(longlong *)(param_2 + 4) == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420(puVar4,plVar3,SVar10,param_4); } uVar1 = param_2[6]; } else { uVar1 = *(uint *)(lVar8 + 0x18); } if (*(longlong *)(param_2 + 4) == 0) { if (lVar8 == 0) { /* WARNING: Subroutine does not return */ FUN_14008a420((ulonglong)uVar1,plVar3,SVar10,param_4); } if (*(int *)(lVar8 + 0x18) != 0) { lVar2 = *(longlong *)(lVar8 + 0x10); } } else { lVar2 = *(longlong *)(param_2 + 4); if (lVar2 == 0) { FUN_14003db10(local_26e8,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,SVar10, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_26e8,(ThrowInfo *)&DAT_14016c210); } } if (local_48 == (undefined1 *)0x0) { FUN_14003db10(local_2730,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,0,param_4 ); /* WARNING: Subroutine does not return */ _CxxThrowException(local_2730,(ThrowInfo *)&DAT_14016c210); } if (local_40 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } iVar5 = local_40 + 1; if ((iVar5 < 0) || (local_3c < iVar5)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } *(longlong *)(local_48 + (longlong)local_40 * 0x10) = lVar2; *(ulonglong *)(local_48 + (longlong)local_40 * 0x10 + 8) = CONCAT44(uStack_27cc,uVar1); local_1a14 = 200; local_1a18 = 0; local_1a20 = local_26a0; local_40 = iVar5; FUN_140096f90((longlong *)&local_48,&local_1a20,local_48,param_4); local_27c8[0] = DAT_140178018; local_27c0 = DAT_140178010; local_27b8 = CONCAT31(local_27b8._1_3_,DAT_140178020); uStack_27b4 = 0xffffffff; local_27b0._0_2_ = CONCAT11(DAT_14016f1cc,DAT_140178040); uVar1 = (**(code **)(**(longlong **)(param_1 + 0x10) + 8))(); pSVar12 = local_26a0; uVar11 = 1; FUN_14009d260(*(longlong *)(*(longlong *)(param_1 + 0x10) + 0x670),uVar1,1,pSVar12, (SIZE_T *)local_27c8); if (local_48 == (undefined1 *)0x0) { FUN_14003db10(local_2730,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_140170368,uVar11, pSVar12); /* WARNING: Subroutine does not return */ _CxxThrowException(local_2730,(ThrowInfo *)&DAT_14016c210); } if (local_3c < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } local_40 = 0; FUN_140074a20(local_27a0); FUN_14008a320(&local_1a00); if ((local_19f8 != 0) && (local_19ec < 0)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } } return; }