/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400a7830 FUN_1400a7830 * Pseudocode, not original source. */ /* WARNING: Type propagation algorithm not settling */ undefined8 FUN_1400a7830(longlong *param_1,uint *param_2,undefined8 param_3,undefined8 param_4) { int *piVar1; uint uVar2; uint uVar3; int iVar4; DWORD DVar5; DWORD DVar6; undefined8 uVar7; undefined8 uVar8; longlong *plVar9; int *******pppppppiVar10; int *******pppppppiVar11; undefined *puVar12; int *******pppppppiVar13; int *******pppppppiVar14; undefined *puVar15; ulonglong uVar16; undefined4 uVar17; undefined **ppuVar18; int ******ppppppiVar19; int ******local_res10; undefined8 local_res18; uint local_res20 [2]; int *******local_168; int *******local_160; undefined *local_158; uint local_150; undefined8 local_148; int local_140; int *******local_138; undefined1 local_130; int *******local_128; int ******local_120; int *******local_118; int *******local_110; int *******local_108; int *******local_100; undefined *local_f8; undefined *local_f0; undefined *local_e8; undefined *local_e0; undefined *local_d8; undefined *local_d0; undefined *local_c8; undefined *local_c0; int *******local_b8 [2]; undefined1 local_a8 [4]; uint local_a4; undefined8 local_70; undefined8 local_48; local_48 = 0xfffffffffffffffe; uVar2 = param_2[10]; uVar8 = param_3; local_res18 = param_3; if (uVar2 == 0) { FUN_1400cf890(); } uVar3 = *param_2; uVar7 = FUN_1400bd2e0(param_2,local_res20,uVar8,param_4); if ((char)uVar7 == '\0') { LAB_1400a89b0: uVar16 = FUN_1400bc600((int *)param_2, (ulonglong)(uint)((int)(((int)uVar3 >> 0x1f & 7U) + uVar3) >> 3),uVar8, param_4); return uVar16 & 0xffffffffffffff00; } local_70 = param_3; if (local_res20[0] == 0xfde9) { FUN_140078060(local_a8); local_a4 = param_2[10]; local_a8[0] = (undefined1)param_2[0x10]; plVar9 = (longlong *)param_1[2]; puVar12 = PTR_DAT_1401ad108; (**(code **)(*plVar9 + 0x48))(); DVar5 = 0; if (*(char *)((longlong)param_1 + 0x19) == '\0') { if ((char)param_1[3] == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],uVar2,0xfde9,PTR_DAT_1401ad108,&DAT_14015cd00); } } else if ((char)param_1[3] == '\0') { FUN_14006cb70(plVar9,param_2,puVar12,param_4); ppppppiVar19 = (int ******)PTR_DAT_1401ac010; local_res10 = (int ******)PTR_DAT_1401ac010; uVar8 = 0xfffffffe; ppuVar18 = &local_c8; plVar9 = FUN_140014170((longlong *)&local_res10,(longlong *)ppuVar18,0xfffffffe); if (ppppppiVar19 == (int ******)0x0) { ppppppiVar19 = (int ******)PTR_DAT_1401ac010; } local_res10 = ppppppiVar19; if ((int ******)*plVar9 != ppppppiVar19) { pppppppiVar14 = (int *******)FUN_14006cb70(PTR_DAT_1401ac010,ppuVar18,uVar8,param_4); pppppppiVar10 = pppppppiVar14; local_160 = pppppppiVar14; FUN_14006b350((int *)pppppppiVar14); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); if (((ppppppiVar19 != (int ******)0x0) && (ppppppiVar19 != (int ******)PTR_DAT_1401ac010)) && (ppppppiVar19 + -1 != (int ******)0x0)) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,ppuVar18,uVar8,param_4); local_138 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_130 = 1; piVar1 = (int *)((longlong)ppppppiVar19 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(ppppppiVar19 + -1); } FUN_14006b3e0((longlong)pppppppiVar10); } ppppppiVar19 = (int ******)*plVar9; if (((ppppppiVar19 != (int ******)PTR_DAT_1401ac010) && (ppppppiVar19 != (int ******)0x0)) && (ppppppiVar19 != (int ******)0x8)) { *(int *)((longlong)ppppppiVar19 + -4) = *(int *)((longlong)ppppppiVar19 + -4) + 1; } local_res10 = ppppppiVar19; FUN_14006b3e0((longlong)pppppppiVar14); } if (((local_c8 != (undefined *)0x0) && (local_c8 != PTR_DAT_1401ac010)) && (local_c8 + -8 != (undefined *)0x0)) { pppppppiVar10 = (int *******)FUN_14006cb70(PTR_DAT_1401ac010,ppuVar18,uVar8,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)(local_c8 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(local_c8 + -8); } FUN_14006b3e0((longlong)pppppppiVar10); } local_138 = &local_120; pppppppiVar10 = (int *******)PTR_DAT_1401ac010; local_c8 = PTR_DAT_1401ac010; FUN_14006cb70(PTR_DAT_1401ac010,ppuVar18,uVar8,param_4); local_120 = (int ******)PTR_DAT_1401ac010; if (PTR_DAT_1401ac010 == (undefined *)0x0) { local_120 = (int ******)0x0; } if (ppppppiVar19 != (int ******)PTR_DAT_1401ac010) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,ppuVar18,uVar8,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); FUN_1400031e0((longlong *)&local_120,ppuVar18,uVar8,param_4); if (((ppppppiVar19 != (int ******)PTR_DAT_1401ac010) && (ppppppiVar19 != (int ******)0x0)) && (ppppppiVar19 != (int ******)0x8)) { *(int *)((longlong)ppppppiVar19 + -4) = *(int *)((longlong)ppppppiVar19 + -4) + 1; } local_120 = ppppppiVar19; FUN_14006b3e0((longlong)pppppppiVar10); } puVar12 = PTR_DAT_1401ad108; FUN_14006cb70(pppppppiVar10,ppuVar18,uVar8,param_4); local_f0 = PTR_DAT_1401ac010; iVar4 = FUN_14006c9f0((short *)puVar12); puVar15 = FUN_140002f30((longlong *)&local_f0,iVar4); FUN_14006ca20(puVar15,puVar12,iVar4); FUN_140003010((longlong *)&local_f0); (**(code **)(*param_1 + 0x28))(param_1,0xfde9,&local_f0,&local_120); plVar9 = (longlong *)param_1[2]; uVar8 = 0xfde9; uVar16 = (ulonglong)uVar2; puVar12 = PTR_DAT_1401ad108; (**(code **)(*plVar9 + 0x70))(); param_3 = local_res18; if (((ppppppiVar19 != (int ******)0x0) && (ppppppiVar19 != (int ******)PTR_DAT_1401ac010)) && (ppppppiVar19 + -1 != (int ******)0x0)) { pppppppiVar10 = (int *******)FUN_14006cb70(plVar9,uVar16,uVar8,puVar12); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)((longlong)ppppppiVar19 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(ppppppiVar19 + -1); } FUN_14006b3e0((longlong)pppppppiVar10); param_3 = local_res18; } } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_160 = (int *******)CONCAT44(local_160._4_4_,0xfde9); local_158 = PTR_DAT_1401ad108; local_150 = uVar2; local_148 = param_3; (**(code **)(*param_1 + 0x20))(param_1,&local_160); DVar5 = GetTickCount(); } uVar8 = (**(code **)(*param_1 + 0x38))(param_1,uVar2,local_a8); if ((char)uVar8 == '\0') { uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40)) ((longlong *)param_1[2],PTR_DAT_1401ad108); } if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0')) goto LAB_1400a89ac; local_160 = (int *******)CONCAT44(local_160._4_4_,0xfde9); local_158 = PTR_DAT_1401ad108; } else if (local_res20[0] == 0xfdea) { FUN_140078060(local_a8); local_a4 = param_2[10]; local_a8[0] = (undefined1)param_2[0x10]; uVar8 = FUN_1400bc930(param_2,&local_168,4); uVar17 = local_res10._0_4_; if ((char)uVar8 != '\0') { uVar17 = local_168._0_4_; } local_res10 = (int ******)CONCAT44(local_res10._4_4_,uVar17); plVar9 = (longlong *)param_1[2]; puVar12 = PTR_DAT_1401ad110; (**(code **)(*plVar9 + 0x48))(); DVar5 = 0; if (*(char *)((longlong)param_1 + 0x19) == '\0') { if ((char)param_1[3] == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],uVar2,0xfdea,PTR_DAT_1401ad110,&DAT_14015cd00); } } else if ((char)param_1[3] == '\0') { FUN_14006cb70(plVar9,param_2,puVar12,param_4); local_168 = (int *******)PTR_DAT_1401ac010; FUN_1400d9e40((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); iVar4 = 0; if ((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) { iVar4 = *(int *)(local_168 + -1); } uVar16 = (ulonglong)(iVar4 - 2U); plVar9 = FUN_140014170((longlong *)&local_168,(longlong *)&local_d0,iVar4 - 2U); pppppppiVar10 = local_168; if (local_168 == (int *******)0x0) { pppppppiVar10 = (int *******)PTR_DAT_1401ac010; } local_168 = pppppppiVar10; if ((int *******)*plVar9 != pppppppiVar10) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); pppppppiVar14 = local_168; local_158 = (undefined *)CONCAT71(local_158._1_7_,1); if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) && (pppppppiVar13 = local_168 + -1, pppppppiVar13 != (int *******)0x0)) { pppppppiVar11 = (int *******)FUN_14006cb70(local_168,PTR_DAT_1401ac010,uVar16,param_4); local_138 = pppppppiVar11; FUN_14006b350((int *)pppppppiVar11); local_130 = 1; piVar1 = (int *)((longlong)pppppppiVar14 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(pppppppiVar13); } FUN_14006b3e0((longlong)pppppppiVar11); } local_168 = (int *******)*plVar9; if (((local_168 != (int *******)PTR_DAT_1401ac010) && (local_168 != (int *******)0x0)) && (local_168 != (int *******)0x8)) { *(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1; } FUN_14006b3e0((longlong)pppppppiVar10); } if (((local_d0 != (undefined *)0x0) && (local_d0 != PTR_DAT_1401ac010)) && (local_d0 + -8 != (undefined *)0x0)) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)(local_d0 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(local_d0 + -8); } FUN_14006b3e0((longlong)pppppppiVar10); } local_138 = (int *******)&local_118; puVar12 = PTR_DAT_1401ac010; local_d0 = PTR_DAT_1401ac010; FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_118 = (int *******)PTR_DAT_1401ac010; if (PTR_DAT_1401ac010 == (undefined *)0x0) { local_118 = (int *******)0x0; } if (local_168 != (int *******)PTR_DAT_1401ac010) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,puVar12,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); FUN_1400031e0((longlong *)&local_118,puVar12,uVar16,param_4); local_118 = local_168; if (((local_168 != (int *******)PTR_DAT_1401ac010) && (local_168 != (int *******)0x0)) && (local_168 != (int *******)0x8)) { *(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1; } FUN_14006b3e0((longlong)pppppppiVar10); } puVar15 = PTR_DAT_1401ad110; FUN_14006cb70(pppppppiVar10,puVar12,uVar16,param_4); local_e8 = PTR_DAT_1401ac010; iVar4 = FUN_14006c9f0((short *)puVar15); puVar12 = FUN_140002f30((longlong *)&local_e8,iVar4); FUN_14006ca20(puVar12,puVar15,iVar4); FUN_140003010((longlong *)&local_e8); (**(code **)(*param_1 + 0x28))(param_1,0xfdea,&local_e8,&local_118); plVar9 = (longlong *)param_1[2]; uVar8 = 0xfdea; uVar16 = (ulonglong)uVar2; puVar12 = PTR_DAT_1401ad110; (**(code **)(*plVar9 + 0x70))(); pppppppiVar10 = local_168; param_3 = local_res18; if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) && (pppppppiVar14 = local_168 + -1, pppppppiVar14 != (int *******)0x0)) { pppppppiVar13 = (int *******)FUN_14006cb70(plVar9,uVar16,uVar8,puVar12); local_160 = pppppppiVar13; FUN_14006b350((int *)pppppppiVar13); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)((longlong)pppppppiVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(pppppppiVar14); } FUN_14006b3e0((longlong)pppppppiVar13); param_3 = local_res18; } } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdea); local_158 = PTR_DAT_1401ad110; local_150 = uVar2; local_148 = param_3; (**(code **)(*param_1 + 0x20))(param_1,&local_160); DVar5 = GetTickCount(); } uVar8 = (**(code **)(*param_1 + 0x40))(param_1,uVar2,local_a8,&local_res10); if ((char)uVar8 == '\0') { uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40)) ((longlong *)param_1[2],PTR_DAT_1401ad110); } if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0')) goto LAB_1400a89ac; local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdea); local_158 = PTR_DAT_1401ad110; } else if (local_res20[0] == 0xfdeb) { FUN_140078060(local_a8); local_a4 = param_2[10]; local_a8[0] = (undefined1)param_2[0x10]; uVar8 = FUN_1400bc930(param_2,&local_110,8); if ((char)uVar8 != '\0') { local_128 = local_110; } uVar8 = FUN_1400bc930(param_2,&local_168,4); if ((char)uVar8 != '\0') { local_res10 = (int ******)CONCAT44(local_res10._4_4_,local_168._0_4_); } plVar9 = (longlong *)param_1[2]; puVar12 = PTR_DAT_1401ad118; (**(code **)(*plVar9 + 0x48))(); DVar5 = 0; if (*(char *)((longlong)param_1 + 0x19) == '\0') { if ((char)param_1[3] == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],uVar2,0xfdeb,PTR_DAT_1401ad118,&DAT_14015cd00); } } else if ((char)param_1[3] == '\0') { FUN_14006cb70(plVar9,param_2,puVar12,param_4); local_168 = (int *******)PTR_DAT_1401ac010; FUN_1400d9f70((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); FUN_1400d9f00((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); iVar4 = 0; if ((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) { iVar4 = *(int *)(local_168 + -1); } uVar16 = (ulonglong)(iVar4 - 2U); plVar9 = FUN_140014170((longlong *)&local_168,(longlong *)&local_c0,iVar4 - 2U); pppppppiVar10 = local_168; if (local_168 == (int *******)0x0) { pppppppiVar10 = (int *******)PTR_DAT_1401ac010; } local_168 = pppppppiVar10; if ((int *******)*plVar9 != pppppppiVar10) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); pppppppiVar14 = local_168; local_158 = (undefined *)CONCAT71(local_158._1_7_,1); if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) && (pppppppiVar13 = local_168 + -1, pppppppiVar13 != (int *******)0x0)) { pppppppiVar11 = (int *******)FUN_14006cb70(local_168,PTR_DAT_1401ac010,uVar16,param_4); local_138 = pppppppiVar11; FUN_14006b350((int *)pppppppiVar11); local_130 = 1; piVar1 = (int *)((longlong)pppppppiVar14 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(pppppppiVar13); } FUN_14006b3e0((longlong)pppppppiVar11); } local_168 = (int *******)*plVar9; if (((local_168 != (int *******)PTR_DAT_1401ac010) && (local_168 != (int *******)0x0)) && (local_168 != (int *******)0x8)) { *(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1; } FUN_14006b3e0((longlong)pppppppiVar10); } if (((local_c0 != (undefined *)0x0) && (local_c0 != PTR_DAT_1401ac010)) && (local_c0 + -8 != (undefined *)0x0)) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)(local_c0 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(local_c0 + -8); } FUN_14006b3e0((longlong)pppppppiVar10); } local_138 = (int *******)&local_108; puVar12 = PTR_DAT_1401ac010; local_c0 = PTR_DAT_1401ac010; FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_108 = (int *******)PTR_DAT_1401ac010; if (PTR_DAT_1401ac010 == (undefined *)0x0) { local_108 = (int *******)0x0; } if (local_168 != (int *******)PTR_DAT_1401ac010) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,puVar12,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); FUN_1400031e0((longlong *)&local_108,puVar12,uVar16,param_4); local_108 = local_168; if (((local_168 != (int *******)PTR_DAT_1401ac010) && (local_168 != (int *******)0x0)) && (local_168 != (int *******)0x8)) { *(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1; } FUN_14006b3e0((longlong)pppppppiVar10); } puVar15 = PTR_DAT_1401ad118; FUN_14006cb70(pppppppiVar10,puVar12,uVar16,param_4); local_f8 = PTR_DAT_1401ac010; iVar4 = FUN_14006c9f0((short *)puVar15); puVar12 = FUN_140002f30((longlong *)&local_f8,iVar4); FUN_14006ca20(puVar12,puVar15,iVar4); FUN_140003010((longlong *)&local_f8); (**(code **)(*param_1 + 0x28))(param_1,0xfdeb,&local_f8,&local_108); plVar9 = (longlong *)param_1[2]; uVar8 = 0xfdeb; uVar16 = (ulonglong)uVar2; puVar12 = PTR_DAT_1401ad118; (**(code **)(*plVar9 + 0x70))(); pppppppiVar10 = local_168; param_3 = local_res18; if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) && (pppppppiVar14 = local_168 + -1, pppppppiVar14 != (int *******)0x0)) { pppppppiVar13 = (int *******)FUN_14006cb70(plVar9,uVar16,uVar8,puVar12); local_160 = pppppppiVar13; FUN_14006b350((int *)pppppppiVar13); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)((longlong)pppppppiVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(pppppppiVar14); } FUN_14006b3e0((longlong)pppppppiVar13); param_3 = local_res18; } } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdeb); local_158 = PTR_DAT_1401ad118; local_150 = uVar2; local_148 = param_3; (**(code **)(*param_1 + 0x20))(param_1,&local_160); DVar5 = GetTickCount(); } uVar8 = (**(code **)(*param_1 + 0x48))(param_1,uVar2,local_a8,&local_128,&local_res10); if ((char)uVar8 == '\0') { uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40)) ((longlong *)param_1[2],PTR_DAT_1401ad118); } if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0')) goto LAB_1400a89ac; local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdeb); local_158 = PTR_DAT_1401ad118; } else { if (local_res20[0] != 0xfdec) goto LAB_1400a89b0; FUN_140078060(local_a8); local_a4 = param_2[10]; local_a8[0] = (undefined1)param_2[0x10]; uVar8 = FUN_1400bc930(param_2,&local_168,8); if ((char)uVar8 != '\0') { local_128 = local_168; } uVar8 = FUN_1400bc930(param_2,&local_168,8); if ((char)uVar8 != '\0') { local_110 = local_168; } uVar8 = FUN_1400bc930(param_2,&local_168,8); if ((char)uVar8 != '\0') { local_b8[0] = local_168; } uVar8 = FUN_1400bc930(param_2,&local_168,4); if ((char)uVar8 != '\0') { local_res10 = (int ******)CONCAT44(local_res10._4_4_,local_168._0_4_); } plVar9 = (longlong *)param_1[2]; puVar12 = PTR_DAT_1401ad120; (**(code **)(*plVar9 + 0x48))(); DVar5 = 0; if (*(char *)((longlong)param_1 + 0x19) == '\0') { if ((char)param_1[3] == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],uVar2,0xfdec,PTR_DAT_1401ad120,&DAT_14015cd00); } } else if ((char)param_1[3] == '\0') { FUN_14006cb70(plVar9,param_2,puVar12,param_4); local_168 = (int *******)PTR_DAT_1401ac010; FUN_1400d9f70((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); FUN_1400d9f70((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); FUN_1400d9f70((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); FUN_1400d9f00((longlong *)&local_168); FUN_1400141f0((longlong *)&local_168,(short *)&DAT_14015cacc); iVar4 = 0; if ((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) { iVar4 = *(int *)(local_168 + -1); } uVar16 = (ulonglong)(iVar4 - 2U); plVar9 = FUN_140014170((longlong *)&local_168,(longlong *)&local_d8,iVar4 - 2U); pppppppiVar10 = local_168; if (local_168 == (int *******)0x0) { pppppppiVar10 = (int *******)PTR_DAT_1401ac010; } local_168 = pppppppiVar10; if ((int *******)*plVar9 != pppppppiVar10) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_138 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); pppppppiVar14 = local_168; local_130 = 1; if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) && (pppppppiVar13 = local_168 + -1, pppppppiVar13 != (int *******)0x0)) { pppppppiVar11 = (int *******)FUN_14006cb70(local_168,PTR_DAT_1401ac010,uVar16,param_4); local_160 = pppppppiVar11; FUN_14006b350((int *)pppppppiVar11); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)((longlong)pppppppiVar14 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(pppppppiVar13); } FUN_14006b3e0((longlong)pppppppiVar11); } local_168 = (int *******)*plVar9; if (((local_168 != (int *******)PTR_DAT_1401ac010) && (local_168 != (int *******)0x0)) && (local_168 != (int *******)0x8)) { *(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1; } FUN_14006b3e0((longlong)pppppppiVar10); } if (((local_d8 != (undefined *)0x0) && (local_d8 != PTR_DAT_1401ac010)) && (local_d8 + -8 != (undefined *)0x0)) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)(local_d8 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(local_d8 + -8); } FUN_14006b3e0((longlong)pppppppiVar10); } local_138 = (int *******)&local_100; puVar12 = PTR_DAT_1401ac010; local_d8 = PTR_DAT_1401ac010; FUN_14006cb70(pppppppiVar10,PTR_DAT_1401ac010,uVar16,param_4); local_100 = (int *******)PTR_DAT_1401ac010; if (PTR_DAT_1401ac010 == (undefined *)0x0) { local_100 = (int *******)0x0; } if (local_168 != (int *******)PTR_DAT_1401ac010) { pppppppiVar10 = (int *******)FUN_14006cb70(pppppppiVar10,puVar12,uVar16,param_4); local_160 = pppppppiVar10; FUN_14006b350((int *)pppppppiVar10); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); FUN_1400031e0((longlong *)&local_100,puVar12,uVar16,param_4); local_100 = local_168; if (((local_168 != (int *******)PTR_DAT_1401ac010) && (local_168 != (int *******)0x0)) && (local_168 != (int *******)0x8)) { *(int *)((longlong)local_168 + -4) = *(int *)((longlong)local_168 + -4) + 1; } FUN_14006b3e0((longlong)pppppppiVar10); } puVar15 = PTR_DAT_1401ad120; FUN_14006cb70(pppppppiVar10,puVar12,uVar16,param_4); local_e0 = PTR_DAT_1401ac010; iVar4 = FUN_14006c9f0((short *)puVar15); puVar12 = FUN_140002f30((longlong *)&local_e0,iVar4); FUN_14006ca20(puVar12,puVar15,iVar4); FUN_140003010((longlong *)&local_e0); (**(code **)(*param_1 + 0x28))(param_1,0xfdec,&local_e0,&local_100); plVar9 = (longlong *)param_1[2]; uVar8 = 0xfdec; uVar16 = (ulonglong)uVar2; puVar12 = PTR_DAT_1401ad120; (**(code **)(*plVar9 + 0x70))(); pppppppiVar10 = local_168; param_3 = local_res18; if (((local_168 != (int *******)0x0) && (local_168 != (int *******)PTR_DAT_1401ac010)) && (pppppppiVar14 = local_168 + -1, pppppppiVar14 != (int *******)0x0)) { pppppppiVar13 = (int *******)FUN_14006cb70(plVar9,uVar16,uVar8,puVar12); local_160 = pppppppiVar13; FUN_14006b350((int *)pppppppiVar13); local_158 = (undefined *)CONCAT71(local_158._1_7_,1); piVar1 = (int *)((longlong)pppppppiVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14006cc60(pppppppiVar14); } FUN_14006b3e0((longlong)pppppppiVar13); param_3 = local_res18; } } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdec); local_158 = PTR_DAT_1401ad120; local_150 = uVar2; local_148 = param_3; (**(code **)(*param_1 + 0x20))(param_1,&local_160); DVar5 = GetTickCount(); } uVar8 = (**(code **)(*param_1 + 0x50)) (param_1,uVar2,local_a8,&local_128,&local_110,local_b8,&local_res10); if ((char)uVar8 == '\0') { uVar8 = (**(code **)(*(longlong *)param_1[2] + 0x40)) ((longlong *)param_1[2],PTR_DAT_1401ad120); } if (((char)param_1[3] != '\0') || (*(char *)((longlong)param_1 + 0x1a) == '\0')) goto LAB_1400a89ac; local_160 = (int *******)CONCAT44(local_160._4_4_,0xfdec); local_158 = PTR_DAT_1401ad120; } local_150 = uVar2; local_148 = param_3; DVar6 = GetTickCount(); local_140 = DVar6 - DVar5; uVar8 = (**(code **)(*param_1 + 0x18))(param_1,&local_160); LAB_1400a89ac: return CONCAT71((int7)((ulonglong)uVar8 >> 8),1); }