server-re/decomp/DBCServer_Release_x64/full/functions/0x1401bf630.c

56 lines
2 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401bf630 FUN_1401bf630
* Pseudocode, not original source. */
void FUN_1401bf630(longlong param_1,int param_2,longlong param_3,int param_4)
{
longlong lVar1;
longlong lVar2;
int iVar3;
longlong lVar4;
undefined2 *puVar5;
longlong lVar6;
longlong lVar7;
lVar2 = (longlong)param_4;
if (((-1 < param_4) && (-1 < param_2)) && (param_2 <= *(int *)(param_1 + 0x18))) {
iVar3 = *(int *)(param_1 + 0x18);
FUN_1401a7d90(param_1,iVar3 + param_4);
iVar3 = iVar3 - param_2;
if ((0 < iVar3) && (iVar3 = iVar3 + -1, lVar6 = (longlong)iVar3, -1 < iVar3)) {
lVar7 = (lVar6 + param_2 + lVar2) * 0x48;
do {
lVar1 = FUN_14016ab80(param_1);
lVar4 = lVar2 * -0x48 + lVar1 + lVar7;
lVar1 = FUN_14016ab80(param_1);
lVar1 = lVar7 + lVar1;
FUN_1401bede0(lVar1,lVar4);
lVar7 = lVar7 + -0x48;
lVar6 = lVar6 + -1;
*(undefined4 *)(lVar1 + 0x28) = *(undefined4 *)(lVar4 + 0x28);
*(undefined4 *)(lVar1 + 0x38) = *(undefined4 *)(lVar4 + 0x38);
*(undefined2 *)(lVar1 + 0x3c) = *(undefined2 *)(lVar4 + 0x3c);
*(undefined1 *)(lVar1 + 0x40) = *(undefined1 *)(lVar4 + 0x40);
} while (-1 < lVar6);
}
if (0 < lVar2) {
puVar5 = (undefined2 *)(param_3 + 0x3c);
do {
lVar6 = FUN_14016ab80(param_1);
lVar6 = ((longlong)param_2 * 0x48 - param_3) + -0x3c + lVar6 + (longlong)puVar5;
FUN_1401bede0(lVar6,puVar5 + -0x1e);
lVar2 = lVar2 + -1;
*(undefined4 *)(lVar6 + 0x28) = *(undefined4 *)(puVar5 + -10);
*(undefined4 *)(lVar6 + 0x38) = *(undefined4 *)(puVar5 + -2);
*(undefined2 *)(lVar6 + 0x3c) = *puVar5;
*(undefined1 *)(lVar6 + 0x40) = *(undefined1 *)(puVar5 + 2);
puVar5 = puVar5 + 0x24;
} while (lVar2 != 0);
}
return;
}
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}