95 lines
2.7 KiB
C
95 lines
2.7 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14015bb10 FUN_14015bb10
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14015bb10(longlong param_1,undefined8 param_2)
|
|
|
|
{
|
|
undefined *puVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined8 uVar5;
|
|
int iVar6;
|
|
undefined *puVar7;
|
|
undefined *local_res8;
|
|
undefined4 local_28 [2];
|
|
undefined8 local_20;
|
|
undefined8 local_18;
|
|
undefined1 local_10;
|
|
|
|
local_20 = 0xfffffffffffffffe;
|
|
local_28[0] = 0;
|
|
FUN_14016d8c0();
|
|
local_res8 = PTR_DAT_1403440a0;
|
|
iVar3 = FUN_14016d740(param_2);
|
|
iVar6 = 0;
|
|
if ((local_res8 != (undefined *)0x0) && (iVar6 = 0, local_res8 != PTR_DAT_1403440a0)) {
|
|
iVar6 = *(int *)(local_res8 + -8);
|
|
}
|
|
iVar4 = iVar3;
|
|
if (iVar3 <= iVar6) {
|
|
iVar4 = 0;
|
|
if ((local_res8 != (undefined *)0x0) && (iVar4 = 0, local_res8 != PTR_DAT_1403440a0)) {
|
|
iVar4 = *(int *)(local_res8 + -8);
|
|
}
|
|
}
|
|
iVar6 = 1;
|
|
if (1 < iVar4) {
|
|
iVar6 = iVar4;
|
|
}
|
|
iVar4 = 0;
|
|
if ((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1403440a0)) {
|
|
iVar4 = *(int *)(local_res8 + -8);
|
|
}
|
|
if (iVar4 < iVar6) {
|
|
FUN_14004e770(&local_res8);
|
|
}
|
|
FUN_14004e850(&local_res8);
|
|
puVar7 = local_res8;
|
|
if (local_res8 == (undefined *)0x0) {
|
|
puVar7 = PTR_DAT_1403440a0;
|
|
}
|
|
FUN_14016d770(puVar7,param_2,iVar3);
|
|
puVar7 = local_res8;
|
|
if (local_res8 == (undefined *)0x0) {
|
|
puVar7 = PTR_DAT_1403440a0;
|
|
}
|
|
iVar3 = FUN_14016d740(puVar7);
|
|
iVar6 = 0;
|
|
if (0 < iVar3) {
|
|
iVar6 = iVar3;
|
|
}
|
|
iVar3 = 0;
|
|
if ((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1403440a0)) {
|
|
iVar3 = *(int *)(local_res8 + -8);
|
|
}
|
|
if ((iVar3 <= iVar6) && (iVar6 = 0, local_res8 != (undefined *)0x0)) {
|
|
if (local_res8 == PTR_DAT_1403440a0) goto LAB_14015bc3b;
|
|
iVar6 = *(int *)(local_res8 + -8);
|
|
}
|
|
if (((local_res8 != PTR_DAT_1403440a0) && (local_res8 != (undefined *)0x0)) &&
|
|
((int *)(local_res8 + -8) != (int *)0x0)) {
|
|
*(int *)(local_res8 + -8) = iVar6;
|
|
*(undefined2 *)(local_res8 + (longlong)iVar6 * 2) = 0;
|
|
}
|
|
LAB_14015bc3b:
|
|
(**(code **)(*(longlong *)(param_1 + 0x68) + 0xc0))
|
|
((longlong *)(param_1 + 0x68),1,&DAT_1403440f0,local_28,&local_res8);
|
|
puVar7 = local_res8;
|
|
if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1403440a0)) &&
|
|
(puVar1 = local_res8 + -8, puVar1 != (undefined *)0x0)) {
|
|
uVar5 = FUN_14016d8c0();
|
|
local_18 = uVar5;
|
|
FUN_14016db50(uVar5);
|
|
local_10 = 1;
|
|
piVar2 = (int *)(puVar7 + -4);
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_14016d970(puVar1);
|
|
}
|
|
FUN_14016dbe0(uVar5);
|
|
}
|
|
return;
|
|
}
|
|
|