148 lines
5.3 KiB
C
148 lines
5.3 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401e50d0 FUN_1401e50d0
|
|
* Pseudocode, not original source. */
|
|
|
|
ulonglong FUN_1401e50d0(undefined8 param_1,undefined4 param_2,int param_3,uint param_4,
|
|
undefined4 *param_5)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
undefined8 *puVar2;
|
|
uint uVar3;
|
|
int iVar4;
|
|
ulonglong uVar5;
|
|
undefined8 *puVar6;
|
|
undefined8 *puVar7;
|
|
undefined8 uVar8;
|
|
undefined8 local_58;
|
|
undefined8 local_50;
|
|
undefined8 local_48;
|
|
undefined8 local_40;
|
|
undefined8 local_38 [2];
|
|
|
|
if (DAT_14039d260 == 0) {
|
|
return 0x10;
|
|
}
|
|
if (param_5 == (undefined4 *)0x0) {
|
|
return 0x10;
|
|
}
|
|
if (0x180 < param_3 - 0x80U) {
|
|
return 3;
|
|
}
|
|
if ((int)param_4 < 3) {
|
|
return 0x10;
|
|
}
|
|
if ((param_4 & 1) == 0) {
|
|
return 0x10;
|
|
}
|
|
uVar5 = FUN_140200b40(param_2);
|
|
if ((int)uVar5 != 0) {
|
|
return uVar5;
|
|
}
|
|
uVar5 = FUN_140205a40(&local_48,&local_40,&local_58,&local_50,local_38,0);
|
|
if ((int)uVar5 != 0) {
|
|
return uVar5;
|
|
}
|
|
uVar3 = (*DAT_14039d298)(local_38[0],param_4);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
do {
|
|
uVar3 = FUN_140206300(local_48,param_3 / 2,param_1,param_2);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 != 0) goto LAB_1401e5402;
|
|
uVar3 = (*DAT_14039d320)(local_48,1,local_58);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 != 0) goto LAB_1401e5402;
|
|
uVar3 = (*DAT_14039d358)(local_58,local_38[0],local_50);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 != 0) goto LAB_1401e5402;
|
|
iVar4 = (*DAT_14039d2c0)(local_50,1);
|
|
} while (iVar4 != 0);
|
|
do {
|
|
uVar3 = FUN_140206300(local_40,param_3 / 2,param_1,param_2);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 != 0) goto LAB_1401e5402;
|
|
uVar3 = (*DAT_14039d320)(local_40,1,local_58);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 != 0) goto LAB_1401e5402;
|
|
uVar3 = (*DAT_14039d358)(local_58,local_38[0],local_50);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 != 0) goto LAB_1401e5402;
|
|
iVar4 = (*DAT_14039d2c0)(local_50,1);
|
|
} while (iVar4 != 0);
|
|
uVar3 = (*DAT_14039d320)(local_48,1,local_50);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d360)(local_58,local_50,local_58);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar8 = 0;
|
|
puVar1 = (undefined8 *)(param_5 + 10);
|
|
puVar2 = (undefined8 *)(param_5 + 8);
|
|
puVar6 = puVar2;
|
|
puVar7 = puVar1;
|
|
uVar3 = FUN_140205a40(param_5 + 2,param_5 + 4,param_5 + 6,param_5 + 0x10,param_5 + 0xe,
|
|
param_5 + 0xc,puVar2,puVar1,0);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d298)(*(undefined8 *)(param_5 + 2),param_4);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d378)(*(undefined8 *)(param_5 + 2),local_58,
|
|
*(undefined8 *)(param_5 + 4));
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d328)(local_48,local_40,*(undefined8 *)(param_5 + 6));
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d320)(local_48,1,local_58);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d320)(local_40,1,local_50);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d340)(*(undefined8 *)(param_5 + 4),local_58,0,
|
|
*(undefined8 *)(param_5 + 0xe));
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d340)(*(undefined8 *)(param_5 + 4),local_50,0,
|
|
*(undefined8 *)(param_5 + 0x10));
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d378)(local_40,local_48,*(undefined8 *)(param_5 + 0xc));
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d290)(local_48,*puVar2);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
uVar3 = (*DAT_14039d290)(local_40,*puVar1);
|
|
uVar5 = (ulonglong)uVar3;
|
|
if (uVar3 == 0) {
|
|
*param_5 = 1;
|
|
goto LAB_1401e5444;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
LAB_1401e5402:
|
|
puVar7 = *(undefined8 **)(param_5 + 10);
|
|
uVar8 = 0;
|
|
puVar6 = *(undefined8 **)(param_5 + 8);
|
|
FUN_140205ad0(*(undefined8 *)(param_5 + 4),*(undefined8 *)(param_5 + 2),
|
|
*(undefined8 *)(param_5 + 6),*(undefined8 *)(param_5 + 0x10),
|
|
*(undefined8 *)(param_5 + 0xe),*(undefined8 *)(param_5 + 0xc),puVar6,puVar7,0);
|
|
LAB_1401e5444:
|
|
FUN_140205ad0(local_38[0],local_50,local_58,local_48,local_40,0,puVar6,puVar7,uVar8);
|
|
return uVar5;
|
|
}
|
|
|