server-re/decomp/Agent_Release_x64/full/functions/0x14000b1b0.c
2026-10-14 16:45:19 -04:00

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;
}