/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c2e90 FUN_1401c2e90 * Pseudocode, not original source. */ void FUN_1401c2e90(longlong *param_1,longlong *param_2,int param_3,int param_4) { longlong lVar1; longlong lVar2; void *pvVar3; void *_Dst; int iVar4; lVar1 = *param_2; if (lVar1 == 0) { if (param_2[1] == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } iVar4 = (int)param_2[2]; } else { iVar4 = *(int *)(lVar1 + 0x18); } if (iVar4 < param_3 + param_4) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } if ((0 < param_4) && (param_1[1] == 0)) { lVar2 = *param_1; if (lVar2 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } if (*(int *)(lVar2 + 0x18) == 0) { lVar2 = 0; } else { lVar2 = *(longlong *)(lVar2 + 0x10); } if (lVar2 == 0) goto LAB_1401c2f1e; } _Dst = (void *)param_2[1]; pvVar3 = _Dst; if (_Dst == (void *)0x0) { if (lVar1 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } 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_14016d1e0(); } 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_14016d1e0(); } if (*(int *)(lVar1 + 0x18) == 0) { memmove((void *)0x0,(void *)(lVar2 + param_3),(longlong)param_4); return; } _Dst = *(void **)(lVar1 + 0x10); } memmove(_Dst,(void *)(lVar2 + param_3),(longlong)param_4); return; } LAB_1401c2f1e: /* WARNING: Subroutine does not return */ FUN_14016d6b0(); }