/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a2c80 FUN_1400a2c80 * Pseudocode, not original source. */ void FUN_1400a2c80(longlong *param_1,longlong *param_2,int param_3,undefined8 param_4) { longlong lVar1; longlong lVar2; void *pvVar3; void *_Dst; int iVar4; int iVar5; iVar4 = (int)param_4; lVar1 = *param_2; if (lVar1 == 0) { if (param_2[1] == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(param_1,param_2,param_1,param_4); } iVar5 = (int)param_2[2]; } else { iVar5 = *(int *)(lVar1 + 0x18); } if (iVar5 < param_3 + iVar4) { /* WARNING: Subroutine does not return */ FUN_14002f5c0(param_1,param_2,param_1,param_4); } if ((0 < iVar4) && (param_1[1] == 0)) { lVar2 = *param_1; if (lVar2 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(param_1,param_2,param_1,param_4); } if (*(int *)(lVar2 + 0x18) == 0) { lVar2 = 0; } else { lVar2 = *(longlong *)(lVar2 + 0x10); } if (lVar2 == 0) goto LAB_1400a2d0e; } _Dst = (void *)param_2[1]; pvVar3 = _Dst; if (_Dst == (void *)0x0) { if (lVar1 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(0,param_2,param_1,param_4); } if (*(int *)(lVar1 + 0x18) == 0) { pvVar3 = (void *)0x0; } else { pvVar3 = *(void **)(lVar1 + 0x10); } } if (pvVar3 != (void *)0x0) { lVar2 = param_1[1]; if (lVar2 == 0) { lVar2 = *param_1; if (lVar2 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(_Dst,param_2,param_1,param_4); } if (*(int *)(lVar2 + 0x18) == 0) { lVar2 = 0; } else { lVar2 = *(longlong *)(lVar2 + 0x10); } } if (_Dst == (void *)0x0) { if (lVar1 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(0,param_2,param_1,param_4); } if (*(int *)(lVar1 + 0x18) == 0) { memmove((void *)0x0,(void *)(lVar2 + param_3),(longlong)iVar4); return; } _Dst = *(void **)(lVar1 + 0x10); } memmove(_Dst,(void *)(lVar2 + param_3),(longlong)iVar4); return; } LAB_1400a2d0e: /* WARNING: Subroutine does not return */ FUN_14002f590(); }