server-re/decomp/MessageServer_Release_x64/full/functions/0x1400db760.c

60 lines
2.1 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400db760 FUN_1400db760
* Pseudocode, not original source. */
void FUN_1400db760(longlong param_1,int param_2,longlong param_3,undefined8 param_4)
{
longlong lVar1;
undefined4 *puVar2;
longlong lVar3;
int iVar4;
undefined4 *puVar5;
undefined2 *puVar6;
int iVar7;
longlong lVar8;
longlong lVar9;
iVar7 = (int)param_4;
lVar3 = (longlong)iVar7;
if (((-1 < iVar7) && (-1 < param_2)) && (param_2 <= *(int *)(param_1 + 0x18))) {
iVar4 = *(int *)(param_1 + 0x18);
FUN_1400ac2e0(param_1,iVar4 + iVar7,param_3,param_4);
iVar4 = iVar4 - param_2;
if ((0 < iVar4) && (iVar4 = iVar4 + -1, lVar8 = (longlong)iVar4, -1 < iVar4)) {
lVar9 = (lVar8 + param_2 + lVar3) * 0x48;
do {
lVar1 = FUN_14007a110(param_1);
puVar5 = (undefined4 *)(lVar3 * -0x48 + lVar1 + lVar9);
lVar1 = FUN_14007a110(param_1);
puVar2 = (undefined4 *)(lVar9 + lVar1);
FUN_1400a1320(puVar2,puVar5);
lVar9 = lVar9 + -0x48;
lVar8 = lVar8 + -1;
puVar2[10] = puVar5[10];
puVar2[0xe] = puVar5[0xe];
*(undefined2 *)(puVar2 + 0xf) = *(undefined2 *)(puVar5 + 0xf);
*(undefined1 *)(puVar2 + 0x10) = *(undefined1 *)(puVar5 + 0x10);
} while (-1 < lVar8);
}
if (0 < lVar3) {
puVar6 = (undefined2 *)(param_3 + 0x3c);
do {
lVar8 = FUN_14007a110(param_1);
puVar2 = (undefined4 *)
(((longlong)param_2 * 0x48 - param_3) + -0x3c + lVar8 + (longlong)puVar6);
FUN_1400a1320(puVar2,(undefined4 *)(puVar6 + -0x1e));
lVar3 = lVar3 + -1;
puVar2[10] = *(undefined4 *)(puVar6 + -10);
puVar2[0xe] = *(undefined4 *)(puVar6 + -2);
*(undefined2 *)(puVar2 + 0xf) = *puVar6;
*(undefined1 *)(puVar2 + 0x10) = *(undefined1 *)(puVar6 + 2);
puVar6 = puVar6 + 0x24;
} while (lVar3 != 0);
}
return;
}
/* WARNING: Subroutine does not return */
FUN_14006be00();
}