67 lines
1.8 KiB
C
67 lines
1.8 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14019f460 FUN_14019f460
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14019f460(longlong *param_1,longlong param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
longlong lVar3;
|
|
longlong lVar4;
|
|
int iVar5;
|
|
longlong lVar6;
|
|
longlong *plVar7;
|
|
longlong lVar8;
|
|
int iVar9;
|
|
undefined1 local_68 [80];
|
|
|
|
cVar1 = (**(code **)(*param_1 + 0x90))();
|
|
if (cVar1 != '\0') {
|
|
FUN_14016d300(local_68,PTR_u_Already_async_callback_may_occur_140344fd8);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_68,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
iVar5 = 0;
|
|
lVar6 = 0;
|
|
if (0 < (int)param_1[4]) {
|
|
plVar7 = param_1 + 1;
|
|
while( true ) {
|
|
if ((lVar6 < 0) || ((int)param_1[4] <= iVar5)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6e0();
|
|
}
|
|
if (*(longlong *)(param_1[3] + lVar6 * 8) == param_2) break;
|
|
iVar5 = iVar5 + 1;
|
|
lVar6 = lVar6 + 1;
|
|
if ((int)param_1[4] <= iVar5) {
|
|
return;
|
|
}
|
|
}
|
|
if (iVar5 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6b0();
|
|
}
|
|
iVar2 = (int)param_1[4] - iVar5;
|
|
iVar9 = 1;
|
|
if (iVar2 < 2) {
|
|
iVar9 = iVar2;
|
|
}
|
|
iVar5 = ((int)param_1[4] - iVar9) - iVar5;
|
|
if (0 < iVar5) {
|
|
lVar8 = (longlong)iVar5;
|
|
lVar6 = lVar6 * 8;
|
|
do {
|
|
lVar3 = FUN_14016ab80(plVar7);
|
|
lVar4 = FUN_14016ab80(plVar7);
|
|
*(undefined8 *)(lVar4 + lVar6) = *(undefined8 *)((longlong)iVar9 * 8 + lVar3 + lVar6);
|
|
lVar6 = lVar6 + 8;
|
|
lVar8 = lVar8 + -1;
|
|
} while (lVar8 != 0);
|
|
}
|
|
FUN_14016add0(plVar7,(int)param_1[4] - iVar9);
|
|
*(undefined8 *)(param_2 + 8) = 0;
|
|
}
|
|
return;
|
|
}
|
|
|