/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400dab80 FUN_1400dab80 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001400dac40) */ /* WARNING: Removing unreachable block (ram,0x0001400dac44) */ /* WARNING: Removing unreachable block (ram,0x0001400dac60) */ /* WARNING: Removing unreachable block (ram,0x0001400dac8d) */ void FUN_1400dab80(undefined *param_1,undefined8 param_2,undefined *param_3,undefined8 param_4) { char cVar1; int iVar2; int iVar3; undefined8 *puVar4; longlong lVar5; longlong *plVar6; longlong *plVar7; SIZE_T *pSVar8; longlong *plVar9; int iVar10; longlong **pplVar11; longlong lVar12; int *piVar13; int iVar14; longlong *local_res10; longlong *local_res18 [2]; iVar14 = 0; do { puVar4 = (undefined8 *)0x0; local_res18[0] = operator_new(0x28); if (local_res18[0] != (longlong *)0x0) { param_3 = param_1; puVar4 = FUN_140074090(local_res18[0],&LAB_1400dab00,param_1); } if (puVar4 == (undefined8 *)0x0) { local_res18[0] = (longlong *)0x0; } else { local_res18[0] = (longlong *)FUN_14006cbf0(0x10); local_res18[0][1] = 1; *local_res18[0] = (longlong)puVar4; } plVar9 = local_res18[0]; iVar10 = *(int *)(param_1 + 0x18); if (iVar10 < 0) { /* WARNING: Subroutine does not return */ FUN_14006be00(); } FUN_1400c6490((longlong)param_1,iVar10 + 1,param_3,param_4); lVar12 = 0; lVar5 = FUN_14007a110((longlong)param_1); plVar7 = (longlong *)(lVar5 + (longlong)iVar10 * 8); pplVar11 = local_res18; FUN_1400c2980(plVar7,(longlong *)pplVar11); plVar6 = local_res18[0]; if (plVar9 != (longlong *)0x0) { plVar9 = plVar9 + 1; *plVar9 = *plVar9 + -1; if (*plVar9 == 0) { puVar4 = (undefined8 *)*local_res18[0]; if (puVar4 != (undefined8 *)0x0) { FUN_1400741a0(puVar4); operator_delete(puVar4); } FUN_14006cc60(plVar6); plVar7 = plVar6; } } iVar14 = iVar14 + 1; } while (iVar14 < 10); iVar14 = 0; lVar5 = lVar12; do { if ((lVar5 < 0) || (*(int *)(param_1 + 0x18) <= iVar14)) { /* WARNING: Subroutine does not return */ FUN_14006be30(plVar7,pplVar11,param_3,param_4); } puVar4 = *(undefined8 **)(*(longlong *)(param_1 + 0x10) + lVar5 * 8); if (puVar4 == (undefined8 *)0x0) { plVar7 = (longlong *)0x0; } else { plVar7 = (longlong *)*puVar4; } FUN_140074290(plVar7,pplVar11,param_3,param_4); iVar14 = iVar14 + 1; lVar5 = lVar5 + 1; } while (lVar5 < 10); pSVar8 = (SIZE_T *)0x3e8; Sleep(1000); cVar1 = param_1[0x1080]; while (cVar1 == '\0') { pSVar8 = (SIZE_T *)0x32; Sleep(0x32); cVar1 = param_1[0x1080]; } param_1[0x1040] = 1; iVar14 = 0; do { if ((lVar12 < 0) || (*(int *)(param_1 + 0x18) <= iVar14)) { /* WARNING: Subroutine does not return */ FUN_14006be30(pSVar8,pplVar11,param_3,param_4); } puVar4 = *(undefined8 **)(*(longlong *)(param_1 + 0x10) + lVar12 * 8); if (puVar4 == (undefined8 *)0x0) { pSVar8 = (SIZE_T *)0x0; } else { pSVar8 = (SIZE_T *)*puVar4; } FUN_140074120(pSVar8); iVar14 = iVar14 + 1; lVar12 = lVar12 + 1; } while (lVar12 < 10); piVar13 = (int *)(param_1 + 0x80); lVar5 = 999; do { if ((*(int *)(param_1 + 0x80) == 0) || (*piVar13 != piVar13[1])) { FUN_14006cb70(pSVar8,pplVar11,param_3,param_4); local_res10 = (longlong *)PTR_DAT_1401ac010; iVar2 = FUN_14006c9f0((short *)&DAT_1401483c0); iVar10 = 0; iVar14 = iVar10; if ((local_res10 != (longlong *)0x0) && (local_res10 != (longlong *)PTR_DAT_1401ac010)) { iVar14 = (int)local_res10[-1]; } iVar3 = iVar2; if (((iVar2 <= iVar14) && (iVar3 = 0, local_res10 != (longlong *)0x0)) && (iVar3 = 0, local_res10 != (longlong *)PTR_DAT_1401ac010)) { iVar3 = (int)local_res10[-1]; } iVar14 = 1; if (1 < iVar3) { iVar14 = iVar3; } iVar3 = iVar10; if ((local_res10 != (longlong *)0x0) && (local_res10 != (longlong *)PTR_DAT_1401ac010)) { iVar3 = (int)local_res10[-1]; } if (iVar3 < iVar14) { FUN_140002d60((longlong *)&local_res10,iVar14); } FUN_140002e40((longlong *)&local_res10); plVar9 = local_res10; if (local_res10 == (longlong *)0x0) { plVar9 = (longlong *)PTR_DAT_1401ac010; } FUN_14006ca20(plVar9,&DAT_1401483c0,iVar2); plVar9 = local_res10; if (local_res10 == (longlong *)0x0) { plVar9 = (longlong *)PTR_DAT_1401ac010; } iVar2 = FUN_14006c9f0((short *)plVar9); param_3 = PTR_DAT_1401ac010; iVar14 = 0; if (0 < iVar2) { iVar14 = iVar2; } if ((local_res10 != (longlong *)0x0) && (local_res10 != (longlong *)PTR_DAT_1401ac010)) { iVar10 = (int)local_res10[-1]; } if ((iVar14 < iVar10) || (iVar14 = 0, local_res10 == (longlong *)0x0)) { LAB_1400daeb1: if (((local_res10 != (longlong *)PTR_DAT_1401ac010) && (local_res10 != (longlong *)0x0)) && (local_res10 + -1 != (longlong *)0x0)) { *(int *)(local_res10 + -1) = iVar14; *(short *)((longlong)local_res10 + (longlong)iVar14 * 2) = 0; } } else if (local_res10 != (longlong *)PTR_DAT_1401ac010) { iVar14 = (int)local_res10[-1]; goto LAB_1400daeb1; } pplVar11 = &local_res10; pSVar8 = *(SIZE_T **)(param_1 + 0x1088); FUN_14009b550(pSVar8,(wchar_t *)pplVar11,(SIZE_T)param_3,param_4); } piVar13 = piVar13 + 1; lVar5 = lVar5 + -1; if (lVar5 == 0) { return; } } while( true ); }