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

107 lines
3.6 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14020a690 FUN_14020a690
* Pseudocode, not original source. */
undefined4 FUN_14020a690(int *param_1,undefined8 param_2)
{
undefined4 uVar1;
int iVar2;
undefined4 *puVar3;
undefined4 uVar4;
uint uVar5;
uint uVar6;
ulonglong uVar7;
undefined1 local_a8 [24];
uint local_90 [4];
undefined4 *local_80;
undefined1 local_78 [24];
int local_60 [4];
undefined4 *local_50;
undefined1 local_48 [24];
undefined1 local_30 [24];
uVar5 = *param_1 >> 1;
uVar4 = 0xfffffffe;
iVar2 = FUN_14020afd0(local_90,uVar5);
if (iVar2 == 0) {
iVar2 = FUN_14020afd0(local_60,*param_1 - uVar5);
if (iVar2 == 0) {
iVar2 = FUN_14020afd0(local_a8,*param_1 * 2);
if (iVar2 == 0) {
iVar2 = FUN_14020afd0(local_30,*param_1 * 2);
if (iVar2 == 0) {
iVar2 = FUN_14020afd0(local_48,uVar5 * 2);
if (iVar2 == 0) {
iVar2 = FUN_14020afd0(local_78,(*param_1 - uVar5) * 2);
if (iVar2 == 0) {
puVar3 = *(undefined4 **)(param_1 + 4);
if (0 < (int)uVar5) {
uVar7 = (ulonglong)uVar5;
do {
uVar1 = *puVar3;
puVar3 = puVar3 + 1;
uVar7 = uVar7 - 1;
*local_80 = uVar1;
local_80 = local_80 + 1;
} while (uVar7 != 0);
}
uVar6 = uVar5;
if ((int)uVar5 < *param_1) {
do {
uVar6 = uVar6 + 1;
*local_50 = *puVar3;
puVar3 = puVar3 + 1;
local_50 = local_50 + 1;
} while ((int)uVar6 < *param_1);
}
local_60[0] = *param_1 - uVar5;
local_90[0] = uVar5;
FUN_140208e50(local_90);
iVar2 = FUN_140201a20(local_90,local_48);
if (iVar2 == 0) {
iVar2 = FUN_140201a20(local_60,local_78);
if (iVar2 == 0) {
iVar2 = FUN_1402094a0(local_60,local_90,local_a8);
if (iVar2 == 0) {
iVar2 = FUN_140201a20(local_a8,local_a8);
if (iVar2 == 0) {
iVar2 = FUN_1402094a0(local_48,local_78,local_30);
if (iVar2 == 0) {
iVar2 = FUN_1402093a0(local_a8,local_30,local_a8);
if (iVar2 == 0) {
iVar2 = FUN_14020af40(local_a8,uVar5);
if (iVar2 == 0) {
iVar2 = FUN_14020af40(local_78,uVar5 * 2);
if (iVar2 == 0) {
iVar2 = FUN_140201530(local_48,local_a8,local_a8);
if (iVar2 == 0) {
iVar2 = FUN_140201530(local_a8,local_78,param_2);
uVar4 = 0xfffffffe;
if (iVar2 == 0) {
uVar4 = 0;
}
}
}
}
}
}
}
}
}
}
FUN_140200e50(local_78);
}
FUN_140200e50(local_48);
}
FUN_140200e50(local_30);
}
FUN_140200e50(local_a8);
}
FUN_140200e50(local_60);
}
FUN_140200e50(local_90);
}
return uVar4;
}