65 lines
2.8 KiB
C
65 lines
2.8 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e851c FUN_1400e851c
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_1400e851c(void *param_1,void *param_2)
|
|
|
|
{
|
|
void *_Src;
|
|
undefined8 *_Dst;
|
|
undefined8 uVar1;
|
|
longlong lVar2;
|
|
|
|
if (((param_2 == (void *)0x0) || (param_1 == (void *)0x0)) ||
|
|
(_Src = *(void **)((longlong)param_2 + 0x28), _Src == (void *)0x0)) {
|
|
uVar1 = 0xfffffffe;
|
|
}
|
|
else {
|
|
memcpy(param_1,param_2,0x58);
|
|
_Dst = (undefined8 *)
|
|
(**(code **)((longlong)param_1 + 0x30))
|
|
(*(undefined8 *)((longlong)param_1 + 0x40),1,0x1718);
|
|
if (_Dst != (undefined8 *)0x0) {
|
|
*(undefined8 **)((longlong)param_1 + 0x28) = _Dst;
|
|
memcpy(_Dst,_Src,0x1718);
|
|
*_Dst = param_1;
|
|
uVar1 = (**(code **)((longlong)param_1 + 0x30))
|
|
(*(undefined8 *)((longlong)param_1 + 0x40),
|
|
*(undefined4 *)((longlong)_Dst + 0x44),2);
|
|
_Dst[10] = uVar1;
|
|
uVar1 = (**(code **)((longlong)param_1 + 0x30))
|
|
(*(undefined8 *)((longlong)param_1 + 0x40),
|
|
*(undefined4 *)((longlong)_Dst + 0x44),2);
|
|
_Dst[0xc] = uVar1;
|
|
uVar1 = (**(code **)((longlong)param_1 + 0x30))
|
|
(*(undefined8 *)((longlong)param_1 + 0x40),
|
|
*(undefined4 *)((longlong)_Dst + 0x74),2);
|
|
_Dst[0xd] = uVar1;
|
|
lVar2 = (**(code **)((longlong)param_1 + 0x30))
|
|
(*(undefined8 *)((longlong)param_1 + 0x40),*(undefined4 *)(_Dst + 0x2de),4);
|
|
_Dst[2] = lVar2;
|
|
if ((((void *)_Dst[10] != (void *)0x0) && (_Dst[0xc] != 0)) &&
|
|
((_Dst[0xd] != 0 && (lVar2 != 0)))) {
|
|
memcpy((void *)_Dst[10],*(void **)((longlong)_Src + 0x50),
|
|
(ulonglong)(uint)(*(int *)((longlong)_Dst + 0x44) * 2));
|
|
memcpy((void *)_Dst[0xc],*(void **)((longlong)_Src + 0x60),
|
|
(ulonglong)*(uint *)((longlong)_Dst + 0x44) * 2);
|
|
memcpy((void *)_Dst[0xd],*(void **)((longlong)_Src + 0x68),
|
|
(ulonglong)*(uint *)((longlong)_Dst + 0x74) * 2);
|
|
memcpy((void *)_Dst[2],*(void **)((longlong)_Src + 0x10),(ulonglong)*(uint *)(_Dst + 3));
|
|
_Dst[4] = (*(longlong *)((longlong)_Src + 0x20) - *(longlong *)((longlong)_Src + 0x10)) +
|
|
_Dst[2];
|
|
_Dst[0x2df] = lVar2 + ((ulonglong)*(uint *)(_Dst + 0x2de) & 0xfffffffffffffffe);
|
|
_Dst[0x168] = (longlong)_Dst + 0xbc;
|
|
_Dst[0x2dd] = _Dst[2] + (ulonglong)*(uint *)(_Dst + 0x2de) * 3;
|
|
_Dst[0x16b] = _Dst + 0x136;
|
|
_Dst[0x16e] = (longlong)_Dst + 0xaa4;
|
|
return 0;
|
|
}
|
|
FUN_1400e843c((longlong)param_1);
|
|
}
|
|
uVar1 = 0xfffffffc;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|