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

75 lines
1.8 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401c84c0 FUN_1401c84c0
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x0001401c85dd) */
/* WARNING: Removing unreachable block (ram,0x0001401c85eb) */
void FUN_1401c84c0(ulonglong *param_1,ulonglong *param_2,undefined8 param_3,undefined8 param_4)
{
longlong *plVar1;
undefined8 *puVar2;
ulonglong uVar3;
ulonglong uVar4;
ulonglong uVar5;
undefined8 uVar6;
ulonglong uVar7;
undefined1 uVar8;
ulonglong uVar9;
undefined1 uVar10;
uVar6 = 0xfffffffffffffffe;
uVar4 = *param_2;
uVar7 = *param_1;
if (uVar7 != uVar4) {
uVar3 = uVar7;
if (uVar4 < uVar7) {
uVar3 = uVar4;
uVar4 = uVar7;
}
uVar8 = 0;
uVar10 = 0;
uVar7 = uVar3;
uVar9 = uVar4;
if (uVar3 != 0) {
uVar8 = 1;
FUN_14016db50(uVar3);
}
if (uVar4 != 0) {
uVar10 = 1;
FUN_14016db50(uVar4);
}
if (*param_2 != 0) {
plVar1 = (longlong *)(*param_2 + 0x40);
*plVar1 = *plVar1 + 1;
}
uVar5 = 0;
if (*param_1 != 0) {
plVar1 = (longlong *)(*param_1 + 0x40);
*plVar1 = *plVar1 + -1;
if (*(longlong *)(*param_1 + 0x40) == 0) {
uVar5 = *param_1;
}
}
*param_1 = *param_2;
if (uVar3 != 0) {
FUN_14016dbe0(uVar3);
uVar8 = 0;
}
if (uVar4 != 0) {
FUN_14016dbe0(uVar4);
uVar10 = 0;
}
if (uVar5 != 0) {
puVar2 = *(undefined8 **)(uVar5 + 0x38);
if (puVar2 != (undefined8 *)0x0) {
(**(code **)*puVar2)(puVar2,1,param_3,param_4,uVar6,uVar7,uVar8,uVar9,uVar10);
}
FUN_14016dc00(uVar5);
FUN_14016d970(uVar5);
}
}
return;
}