undefined8 FUN_1400169c0(longlong param_1,undefined8 param_2,undefined8 param_3,uint *param_4) { uint uVar1; uint uVar2; uint uVar3; ulonglong uVar4; int *piVar5; uint *puVar6; uint *puVar7; longlong *plVar8; uint *puVar9; uint uVar10; undefined *puVar11; uint **ppuVar12; uint uVar13; uint *local_38; undefined8 local_30; int *local_28; undefined1 local_20; local_30 = 0xfffffffffffffffe; if (*(char *)(DAT_14017cf28 + 0x180) == '\0') { printf("Not Active Server.!!! \n"); uVar4 = FUN_140011dd0(param_1 + -8,0,10,0xffffffff); return uVar4 & 0xffffffffffffff00; } puVar7 = param_4; FUN_14003e7c0(param_1,param_2,param_3,param_4); local_38 = (uint *)PTR_DAT_14016f010; uVar1 = FUN_14003e620(L"serveron"); uVar13 = 0; uVar3 = 0; uVar4 = 0; if ((local_38 != (uint *)0x0) && (uVar4 = 0, local_38 != (uint *)PTR_DAT_14016f010)) { uVar4 = (ulonglong)local_38[-2]; } uVar2 = uVar1; if ((((int)uVar1 <= (int)uVar4) && (uVar2 = uVar3, local_38 != (uint *)0x0)) && (local_38 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_38[-2]; } uVar10 = 1; if (1 < (int)uVar2) { uVar10 = uVar2; } uVar2 = uVar3; if ((local_38 != (uint *)0x0) && (local_38 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_38[-2]; } if ((int)uVar2 < (int)uVar10) { puVar6 = local_38; if (local_38 == (uint *)0x0) { puVar6 = (uint *)PTR_DAT_14016f010; } local_38 = puVar6; if ((int)uVar10 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (uVar10 == 0) { local_38 = (uint *)PTR_DAT_14016f010; if (((puVar6 != (uint *)0x0) && (puVar6 != (uint *)PTR_DAT_14016f010)) && (puVar6 + -2 != (uint *)0x0)) { local_38 = puVar6; piVar5 = (int *)FUN_14003e7c0(puVar6,PTR_DAT_14016f010,uVar4,puVar7); local_28 = piVar5; FUN_14003d040(piVar5); local_20 = 1; puVar7 = puVar6 + -1; *puVar7 = *puVar7 - 1; if (*puVar7 == 0) { FUN_14003e8b0(puVar6 + -2); } FUN_14003d0d0((longlong)piVar5); local_38 = (uint *)PTR_DAT_14016f010; } } else { uVar2 = uVar3; if ((puVar6 != (uint *)0x0) && (puVar6 != (uint *)PTR_DAT_14016f010)) { uVar2 = puVar6[-2]; } if (uVar10 != uVar2) { puVar6 = (uint *)FUN_14003e840((longlong)(int)uVar10 * 2 + 10); if (puVar6 != (uint *)0x0) { *puVar6 = 0; puVar6[1] = 1; } *puVar6 = uVar10; uVar2 = uVar3; if ((local_38 != (uint *)0x0) && (local_38 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_38[-2]; } puVar9 = (uint *)PTR_DAT_14016f010; if ((int)uVar10 < (int)uVar2) { LAB_140016b65: if (local_38 != (uint *)0x0) { puVar9 = local_38; } } else { uVar10 = uVar3; if (local_38 != (uint *)0x0) { if (local_38 != (uint *)PTR_DAT_14016f010) { uVar10 = local_38[-2]; } goto LAB_140016b65; } } uVar4 = (ulonglong)uVar10; FUN_14003e650(puVar6 + 2,puVar9,uVar10); FUN_140002190((longlong *)&local_38,puVar9,uVar4,puVar7); local_38 = puVar6 + 2; } } } FUN_140001df0((longlong *)&local_38); puVar7 = local_38; if (local_38 == (uint *)0x0) { puVar7 = (uint *)PTR_DAT_14016f010; } FUN_14003e650(puVar7,L"serveron",uVar1); puVar7 = local_38; if (local_38 == (uint *)0x0) { puVar7 = (uint *)PTR_DAT_14016f010; } uVar3 = FUN_14003e620((short *)puVar7); uVar1 = uVar13; if (0 < (int)uVar3) { uVar1 = uVar3; } uVar3 = uVar13; if ((local_38 != (uint *)0x0) && (local_38 != (uint *)PTR_DAT_14016f010)) { uVar3 = local_38[-2]; } if (((int)uVar3 <= (int)uVar1) && (uVar1 = uVar13, local_38 != (uint *)0x0)) { if (local_38 == (uint *)PTR_DAT_14016f010) goto LAB_140016c1f; uVar1 = local_38[-2]; } if (((local_38 != (uint *)PTR_DAT_14016f010) && (local_38 != (uint *)0x0)) && (local_38 + -2 != (uint *)0x0)) { local_38[-2] = uVar1; *(undefined2 *)((longlong)local_38 + (longlong)(int)uVar1 * 2) = 0; } LAB_140016c1f: plVar8 = (longlong *)(*(longlong *)(param_1 + 0x70) + 0x48); ppuVar12 = &local_38; puVar11 = &DAT_14016f5d0; uVar4 = (ulonglong)*param_4; (**(code **)(*plVar8 + 0xd0))(); puVar7 = local_38; if (((local_38 != (uint *)0x0) && (local_38 != (uint *)PTR_DAT_14016f010)) && (puVar6 = local_38 + -2, puVar6 != (uint *)0x0)) { piVar5 = (int *)FUN_14003e7c0(plVar8,uVar4,puVar11,ppuVar12); local_28 = piVar5; FUN_14003d040(piVar5); local_20 = 1; puVar7 = puVar7 + -1; *puVar7 = *puVar7 - 1; if (*puVar7 == 0) { FUN_14003e8b0(puVar6); } local_38 = (uint *)FUN_14003d0d0((longlong)piVar5); } return CONCAT71((int7)((ulonglong)local_38 >> 8),1); }