53 lines
2.3 KiB
C
53 lines
2.3 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e7768 FUN_1400e7768
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_1400e7768(void *param_1,void *param_2)
|
|
|
|
{
|
|
void *_Src;
|
|
ulonglong uVar1;
|
|
void *_Dst;
|
|
void *_Dst_00;
|
|
|
|
if ((((param_1 != (void *)0x0) && (param_2 != (void *)0x0)) &&
|
|
(_Src = *(void **)((longlong)param_2 + 0x28), _Src != (void *)0x0)) &&
|
|
((*(code **)((longlong)param_2 + 0x30) != (code *)0x0 &&
|
|
(*(longlong *)((longlong)param_2 + 0x38) != 0)))) {
|
|
_Dst = (void *)(**(code **)((longlong)param_2 + 0x30))
|
|
(*(undefined8 *)((longlong)param_2 + 0x40),1,0x2548);
|
|
if (_Dst != (void *)0x0) {
|
|
_Dst_00 = (void *)0x0;
|
|
if ((*(longlong *)((longlong)_Src + 0x38) == 0) ||
|
|
(_Dst_00 = (void *)(**(code **)((longlong)param_2 + 0x30))
|
|
(*(undefined8 *)((longlong)param_2 + 0x40),
|
|
1 << ((byte)*(undefined4 *)((longlong)_Src + 0x28) & 0x1f),1)
|
|
, _Dst_00 != (void *)0x0)) {
|
|
memcpy(param_1,param_2,0x58);
|
|
memcpy(_Dst,_Src,0x2548);
|
|
uVar1 = *(ulonglong *)((longlong)_Src + 0x58);
|
|
if (((longlong)_Src + 0x548U <= uVar1) && (uVar1 <= (longlong)_Src + 0x2544U)) {
|
|
*(longlong *)((longlong)_Dst + 0x58) =
|
|
(longlong)_Dst + ((longlong)((uVar1 - (longlong)_Src) + -0x548) >> 2) * 4 + 0x548;
|
|
*(longlong *)((longlong)_Dst + 0x60) =
|
|
(longlong)_Dst +
|
|
((*(longlong *)((longlong)_Src + 0x60) - (longlong)_Src) + -0x548 >> 2) * 4 + 0x548;
|
|
}
|
|
*(longlong *)((longlong)_Dst + 0x80) =
|
|
(longlong)_Dst +
|
|
((*(longlong *)((longlong)_Src + 0x80) - (longlong)_Src) + -0x548 >> 2) * 4 + 0x548;
|
|
if (_Dst_00 != (void *)0x0) {
|
|
memcpy(_Dst_00,*(void **)((longlong)_Src + 0x38),
|
|
(ulonglong)(uint)(1 << ((byte)*(undefined4 *)((longlong)_Src + 0x28) & 0x1f)));
|
|
}
|
|
*(void **)((longlong)_Dst + 0x38) = _Dst_00;
|
|
*(void **)((longlong)param_1 + 0x28) = _Dst;
|
|
return 0;
|
|
}
|
|
(**(code **)((longlong)param_2 + 0x38))(*(undefined8 *)((longlong)param_2 + 0x40),_Dst);
|
|
}
|
|
return 0xfffffffc;
|
|
}
|
|
return 0xfffffffe;
|
|
}
|
|
|