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

75 lines
2.6 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401e54b0 FUN_1401e54b0
* Pseudocode, not original source. */
undefined8
FUN_1401e54b0(longlong param_1,undefined4 param_2,longlong param_3,uint *param_4,undefined8 param_5,
undefined4 param_6,ulonglong param_7,undefined4 param_8,undefined4 param_9,int param_10
,longlong param_11)
{
undefined4 uVar1;
uint uVar2;
int iVar3;
undefined8 uVar4;
uint local_res8 [2];
undefined4 local_res10;
undefined8 in_stack_ffffffffffffff98;
undefined4 uVar6;
ulonglong uVar5;
undefined8 in_stack_ffffffffffffffa0;
undefined4 uVar7;
undefined8 in_stack_ffffffffffffffa8;
undefined4 uVar8;
undefined8 in_stack_ffffffffffffffb0;
undefined4 uVar9;
uVar7 = (undefined4)((ulonglong)in_stack_ffffffffffffffa0 >> 0x20);
uVar6 = (undefined4)((ulonglong)in_stack_ffffffffffffff98 >> 0x20);
uVar8 = (undefined4)((ulonglong)in_stack_ffffffffffffffa8 >> 0x20);
uVar9 = (undefined4)((ulonglong)in_stack_ffffffffffffffb0 >> 0x20);
if (((param_1 != 0) && (param_3 != 0)) && (param_4 != (uint *)0x0)) {
if (param_11 != 0) {
if ((param_10 == 1) || (param_10 == 2)) {
local_res10 = param_2;
uVar4 = FUN_140200b40(param_8);
if (((int)uVar4 == 0) &&
((param_10 != 2 || (uVar4 = FUN_1402069c0(param_9), (int)uVar4 == 0)))) {
uVar1 = (*DAT_14039d2c8)(*(undefined8 *)(param_11 + 0x18));
uVar2 = (*DAT_14039d2f0)(*(undefined8 *)(param_11 + 0x18));
local_res8[0] = *param_4;
if (local_res8[0] < uVar2) {
*param_4 = uVar2;
uVar4 = 6;
}
else {
if (param_10 == 2) {
uVar5 = CONCAT44(uVar6,uVar1);
uVar4 = FUN_140206630(param_1,local_res10,param_5,param_6,uVar5,param_7,
CONCAT44(uVar8,param_8),CONCAT44(uVar9,param_9),param_3,
local_res8);
iVar3 = (int)uVar4;
}
else {
uVar4 = FUN_140206460(param_1,local_res10,2,uVar1,param_7,CONCAT44(uVar7,param_8),
param_3,local_res8);
iVar3 = (int)uVar4;
uVar5 = param_7;
}
if (iVar3 == 0) {
uVar4 = (*DAT_14039d3e0)(param_3,local_res8[0],param_3,param_4,
uVar5 & 0xffffffff00000000,param_11);
}
}
}
}
else {
uVar4 = 0x18;
}
return uVar4;
}
return 0x10;
}
return 0x10;
}