/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14010a3a0 FUN_14010a3a0 * Pseudocode, not original source. */ undefined4 FUN_14010a3a0(int *param_1,int *param_2,uint *param_3) { uint uVar1; int iVar2; undefined8 uVar3; undefined4 *puVar4; undefined4 *puVar5; uint uVar6; uint uVar7; ulonglong uVar8; undefined4 uVar9; uint local_c8 [4]; undefined4 *local_b8; uint local_b0 [6]; uint local_98 [4]; undefined4 *local_88; uint local_80 [6]; uint local_68 [4]; undefined4 *local_58; uint local_50 [4]; undefined4 *local_40; uint local_38 [8]; iVar2 = *param_2; if (*param_1 < *param_2) { iVar2 = *param_1; } uVar9 = 0xfffffffe; uVar6 = iVar2 >> 1; uVar3 = FUN_14010baa0(local_c8,uVar6); if ((int)uVar3 == 0) { uVar3 = FUN_14010baa0(local_68,*param_1 - uVar6); if ((int)uVar3 == 0) { uVar3 = FUN_14010baa0(local_98,uVar6); if ((int)uVar3 == 0) { uVar3 = FUN_14010baa0(local_50,*param_2 - uVar6); if ((int)uVar3 == 0) { uVar1 = uVar6 * 2; uVar3 = FUN_14010baa0(local_b0,uVar1); if ((int)uVar3 == 0) { uVar3 = FUN_14010baa0(local_38,uVar1); if ((int)uVar3 == 0) { uVar3 = FUN_14010baa0(local_80,uVar1); if ((int)uVar3 == 0) { puVar5 = *(undefined4 **)(param_1 + 4); puVar4 = *(undefined4 **)(param_2 + 4); local_68[0] = *param_1 - uVar6; local_50[0] = *param_2 - uVar6; if (0 < (int)uVar6) { uVar8 = (ulonglong)uVar6; do { *local_b8 = *puVar5; puVar5 = puVar5 + 1; *local_88 = *puVar4; puVar4 = puVar4 + 1; uVar8 = uVar8 - 1; local_b8 = local_b8 + 1; local_88 = local_88 + 1; } while (uVar8 != 0); } uVar7 = uVar6; if ((int)uVar6 < *param_1) { do { uVar7 = uVar7 + 1; *local_58 = *puVar5; puVar5 = puVar5 + 1; local_58 = local_58 + 1; } while ((int)uVar7 < *param_1); } uVar7 = uVar6; if ((int)uVar6 < *param_2) { do { uVar7 = uVar7 + 1; *local_40 = *puVar4; puVar4 = puVar4 + 1; local_40 = local_40 + 1; } while ((int)uVar7 < *param_2); } local_c8[0] = uVar6; local_98[0] = uVar6; FUN_140109920((int *)local_c8); FUN_140109920((int *)local_98); iVar2 = FUN_140104250(local_c8,local_98,local_38); if ((((((iVar2 == 0) && (iVar2 = FUN_140104250(local_68,local_50,local_80), iVar2 == 0)) && (uVar3 = FUN_140109f70(local_68,local_c8,local_b0), (int)uVar3 == 0)) && ((uVar3 = FUN_140109f70(local_50,local_98,local_c8), (int)uVar3 == 0 && (iVar2 = FUN_140104250(local_b0,local_c8,local_b0), iVar2 == 0)))) && ((iVar2 = FUN_140103ed0(local_38,local_80,local_c8), iVar2 == 0 && ((uVar3 = FUN_140109e70(local_b0,local_c8,local_b0), (int)uVar3 == 0 && (uVar3 = FUN_14010ba10((int *)local_b0,uVar6), (int)uVar3 == 0)))))) && ((uVar3 = FUN_14010ba10((int *)local_80,uVar1), (int)uVar3 == 0 && (iVar2 = FUN_140103ed0(local_38,local_b0,local_b0), iVar2 == 0)))) { iVar2 = FUN_140103ed0(local_b0,local_80,param_3); uVar9 = 0xfffffffe; if (iVar2 == 0) { uVar9 = 0; } } FUN_1401037f0((int *)local_80); } FUN_1401037f0((int *)local_38); } FUN_1401037f0((int *)local_b0); } FUN_1401037f0((int *)local_50); } FUN_1401037f0((int *)local_98); } FUN_1401037f0((int *)local_68); } FUN_1401037f0((int *)local_c8); } return uVar9; }