/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14005a930 FUN_14005a930 * Pseudocode, not original source. */ void FUN_14005a930(longlong param_1,longlong param_2) { void *_Src; longlong lVar1; void *pvVar2; int iVar3; undefined4 local_res10 [2]; void *local_50; void *local_48; void *local_40; if ((*(short *)(param_2 + 0xc) == 0xe9) || (*(short *)(param_2 + 0xc) == 0xea)) { iVar3 = 0; local_50 = (void *)0x0; local_48 = (void *)0x0; local_40 = (void *)0x0; if (*(short *)(param_2 + 0xe) < 1) { *(int *)(param_1 + 0x634) = *(int *)(param_1 + 0x634) + 1; local_res10[0] = *(undefined4 *)(param_2 + 4); (**(code **)(*(longlong *)(param_1 + 0xa8) + 0x260)) ((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0, local_res10,&local_50); } else { pvVar2 = (void *)(param_2 + 0x10); if (0 < *(short *)(param_2 + 0xe)) { do { if ((pvVar2 < local_48) && (local_50 <= pvVar2)) { lVar1 = (longlong)pvVar2 - (longlong)local_50; if (local_48 == local_40) { FUN_14004a550(&local_50); } _Src = (void *)((lVar1 / 0xaf) * 0xaf + (longlong)local_50); } else { _Src = pvVar2; if (local_48 == local_40) { FUN_14004a550(&local_50); } } if (local_48 != (void *)0x0) { memcpy(local_48,_Src,0xaf); } local_48 = (void *)((longlong)local_48 + 0xaf); pvVar2 = (void *)((longlong)pvVar2 + 0xaf); iVar3 = iVar3 + 1; } while (iVar3 < *(short *)(param_2 + 0xe)); } *(int *)(param_1 + 0x634) = *(int *)(param_1 + 0x634) + 1; local_res10[0] = *(undefined4 *)(param_2 + 4); (**(code **)(*(longlong *)(param_1 + 0xa8) + 0x260)) ((longlong *)(param_1 + 0xa8),*(undefined4 *)(param_2 + 8),&DAT_1403440f0, local_res10,&local_50); if (local_50 != local_48) { local_48 = local_50; } } if (local_50 != (void *)0x0) { operator_delete(local_50); } } return; }