41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14000b1b0 FUN_14000b1b0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14000b1b0(undefined8 *param_1,int param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
int iVar2;
|
|
void *_Src;
|
|
rsize_t _DstSize;
|
|
undefined8 *puVar3;
|
|
longlong lVar4;
|
|
|
|
_Src = (void *)*param_1;
|
|
iVar2 = *(int *)((longlong)_Src + -0x10);
|
|
puVar3 = (undefined8 *)(**(code **)(**(longlong **)((longlong)_Src + -0x18) + 0x20))();
|
|
lVar4 = (**(code **)*puVar3)(puVar3,param_2,2);
|
|
if (lVar4 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14000b260();
|
|
}
|
|
if (iVar2 < param_2) {
|
|
param_2 = iVar2;
|
|
}
|
|
_DstSize = (longlong)(param_2 + 1) * 2;
|
|
memcpy_s((void *)(lVar4 + 0x18),_DstSize,_Src,_DstSize);
|
|
*(int *)(lVar4 + 8) = iVar2;
|
|
LOCK();
|
|
piVar1 = (int *)((longlong)_Src + -8);
|
|
iVar2 = *piVar1;
|
|
*piVar1 = *piVar1 + -1;
|
|
UNLOCK();
|
|
if (iVar2 + -1 < 1) {
|
|
(**(code **)(**(longlong **)((longlong)_Src + -0x18) + 8))
|
|
(*(longlong **)((longlong)_Src + -0x18),(longlong)_Src + -0x18);
|
|
}
|
|
*param_1 = (void *)(lVar4 + 0x18);
|
|
return;
|
|
}
|
|
|