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