server-re/decomp/MessageServer_Release_x64/full/functions/0x14010b160.c

108 lines
3.7 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14010b160 FUN_14010b160
* Pseudocode, not original source. */
undefined4 FUN_14010b160(int *param_1,uint *param_2)
{
undefined4 uVar1;
int iVar2;
undefined8 uVar3;
undefined4 *puVar4;
undefined4 uVar5;
uint uVar6;
uint uVar7;
ulonglong uVar8;
uint local_a8 [6];
uint local_90 [4];
undefined4 *local_80;
uint local_78 [6];
uint local_60 [4];
undefined4 *local_50;
uint local_48 [6];
uint local_30 [6];
uVar6 = *param_1 >> 1;
uVar5 = 0xfffffffe;
uVar3 = FUN_14010baa0(local_90,uVar6);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010baa0(local_60,*param_1 - uVar6);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010baa0(local_a8,*param_1 * 2);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010baa0(local_30,*param_1 * 2);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010baa0(local_48,uVar6 * 2);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010baa0(local_78,(*param_1 - uVar6) * 2);
if ((int)uVar3 == 0) {
puVar4 = *(undefined4 **)(param_1 + 4);
if (0 < (int)uVar6) {
uVar8 = (ulonglong)uVar6;
do {
uVar1 = *puVar4;
puVar4 = puVar4 + 1;
uVar8 = uVar8 - 1;
*local_80 = uVar1;
local_80 = local_80 + 1;
} while (uVar8 != 0);
}
uVar7 = uVar6;
if ((int)uVar6 < *param_1) {
do {
uVar7 = uVar7 + 1;
*local_50 = *puVar4;
puVar4 = puVar4 + 1;
local_50 = local_50 + 1;
} while ((int)uVar7 < *param_1);
}
local_60[0] = *param_1 - uVar6;
local_90[0] = uVar6;
FUN_140109920((int *)local_90);
iVar2 = FUN_1401043c0(local_90,local_48);
if (iVar2 == 0) {
iVar2 = FUN_1401043c0(local_60,local_78);
if (iVar2 == 0) {
uVar3 = FUN_140109f70(local_60,local_90,local_a8);
if ((int)uVar3 == 0) {
iVar2 = FUN_1401043c0(local_a8,local_a8);
if (iVar2 == 0) {
uVar3 = FUN_140109f70(local_48,local_78,local_30);
if ((int)uVar3 == 0) {
uVar3 = FUN_140109e70(local_a8,local_30,local_a8);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010ba10((int *)local_a8,uVar6);
if ((int)uVar3 == 0) {
uVar3 = FUN_14010ba10((int *)local_78,uVar6 * 2);
if ((int)uVar3 == 0) {
iVar2 = FUN_140103ed0(local_48,local_a8,local_a8);
if (iVar2 == 0) {
iVar2 = FUN_140103ed0(local_a8,local_78,param_2);
uVar5 = 0xfffffffe;
if (iVar2 == 0) {
uVar5 = 0;
}
}
}
}
}
}
}
}
}
}
FUN_1401037f0((int *)local_78);
}
FUN_1401037f0((int *)local_48);
}
FUN_1401037f0((int *)local_30);
}
FUN_1401037f0((int *)local_a8);
}
FUN_1401037f0((int *)local_60);
}
FUN_1401037f0((int *)local_90);
}
return uVar5;
}