56 lines
2 KiB
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();
|
|
}
|
|
|