/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400cd360 FUN_1400cd360 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ /* WARNING: Type propagation algorithm not settling */ void FUN_1400cd360(undefined8 *param_1,undefined **param_2,undefined **param_3,longlong param_4) { ushort uVar1; undefined8 *puVar2; short *psVar3; uint uVar4; uint uVar5; uint uVar6; int iVar7; undefined8 uVar8; undefined *_Dst; uint *puVar9; uint *puVar10; uint *puVar11; longlong *plVar12; uint *******pppppppuVar13; uint *******pppppppuVar14; int *piVar15; int *piVar16; uint *puVar17; longlong lVar18; undefined8 *puVar19; undefined **ppuVar20; ulonglong uVar21; undefined8 *puVar22; short **ppsVar23; uint *******pppppppuVar24; longlong lVar25; undefined *puVar26; uint *puVar27; uint ******ppppppuVar28; ulonglong uVar29; undefined8 **ppuVar30; uint uVar31; size_t _Size; longlong *******ppppppplVar32; uint *******pppppppuVar33; uint *******pppppppuVar34; uint **ppuVar35; uint ******ppppppuVar36; undefined1 auStack_a38 [32]; uint local_a18; uint *******local_a08; uint *local_a00; uint *local_9f8; uint *local_9f0; uint local_9e8 [2]; undefined8 *local_9e0; uint ******local_9d8; undefined *local_9d0; undefined *local_9c8; undefined *local_9c0; undefined *local_9b8; undefined8 local_9b0; undefined **local_9a8; undefined4 local_9a0; undefined2 local_99c; uint local_998; uint local_990 [2]; undefined **local_988; undefined4 local_980; undefined2 local_97c; int local_978; uint local_970 [2]; undefined **local_968; undefined4 local_960; undefined2 local_95c; undefined4 local_958; int *local_950; undefined1 local_948; int *local_940; undefined1 local_938; int *local_930; undefined1 local_928; int *local_920; undefined1 local_918; int *local_910; undefined1 local_908; int *local_900; undefined1 local_8f8; int *local_8f0; undefined1 local_8e8; undefined8 local_8e0; int *local_8d8; undefined1 local_8d0; int *local_8c8; undefined1 local_8c0; int *local_8b8; undefined1 local_8b0; int *local_8a8; undefined1 local_8a0; undefined1 *local_898; undefined1 local_890 [136]; undefined1 *local_808; undefined1 local_800 [136]; short *local_778; short local_770 [132]; undefined4 local_668 [392]; ulonglong local_48; local_8e0 = 0xfffffffffffffffe; local_48 = DAT_14016f5a0 ^ (ulonglong)auStack_a38; iVar7 = *(int *)(param_2 + 0x492); local_9e0 = param_1; if (iVar7 == 0) { puVar22 = (undefined8 *)0x0; if (*(int *)((longlong)param_2 + 0x2494) == 0) { local_9d8 = (uint ******)FUN_14003e840(0x400); puVar19 = puVar22; if (local_9d8 != (uint ******)0x0) { param_3 = param_2; puVar19 = FUN_140043f50(local_9d8,0,param_2,param_4); } if (puVar19 == (undefined8 *)0x0) { local_9e0 = (undefined8 *)0x0; } else { local_9e0 = (undefined8 *)FUN_14003e840(0x10); local_9e0[1] = 1; *local_9e0 = puVar19; } puVar19 = local_9e0; ppuVar30 = &local_9e0; FUN_140040510((longlong *)(param_2 + 0x490),(longlong *)ppuVar30); puVar2 = local_9e0; if (puVar19 != (undefined8 *)0x0) { plVar12 = puVar19 + 1; *plVar12 = *plVar12 + -1; if (*plVar12 == 0) { plVar12 = (longlong *)*local_9e0; if (plVar12 != (longlong *)0x0) { FUN_140043e60(plVar12,ppuVar30,(longlong *)param_3,param_4); FUN_14003e8b0(plVar12); } FUN_14003e8b0(puVar2); } } puVar19 = puVar22; if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) { puVar19 = *(undefined8 **)param_2[0x490]; } FUN_140045ad0((longlong)puVar19,ppuVar30,param_3,param_4); puVar19 = puVar22; if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) { puVar19 = *(undefined8 **)param_2[0x490]; } FUN_140043230((longlong)puVar19,'\0'); uVar8 = FUN_1400ca6c0(param_1,(longlong)param_2,param_3,param_4); if ((char)uVar8 == '\0') goto LAB_1400ce4aa; } FUN_1400432b0(local_668); puVar19 = puVar22; if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) { puVar19 = *(undefined8 **)param_2[0x490]; } FUN_1400432d0((longlong)local_668,(longlong)puVar19); puVar19 = puVar22; if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) { puVar19 = *(undefined8 **)param_2[0x490]; } FUN_140043330((longlong)local_668,(longlong)puVar19); FUN_140043390((longlong)local_668,0); if ((undefined8 *)param_2[0x490] != (undefined8 *)0x0) { puVar22 = *(undefined8 **)param_2[0x490]; } puVar17 = local_9e8; uVar8 = FUN_1400433f0((longlong)local_668,(longlong)puVar22,puVar17); if ((char)uVar8 != '\0') { if (local_9e8[0] == 0) { if (0 < *(int *)(param_2 + 0x492)) { return; } param_2[0x492] = (undefined *)0x1; return; } uVar8 = FUN_1400ca6c0(param_1,(longlong)param_2,puVar17,param_4); if ((char)uVar8 != '\0') goto LAB_1400ce57c; goto LAB_1400ce4aa; } goto LAB_1400ce57c; } if (iVar7 == 1) { lVar25 = 0; iVar7 = 0; if (*(int *)((longlong)param_2 + 0x2494) == 0) { lVar18 = lVar25; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar18 = *(longlong *)param_2[0x490]; } FUN_140043230(lVar18,'\x01'); local_808 = local_800; FUN_14003d280((longlong *)&local_808,(LPCWSTR)((longlong)param_2 + 0x52),3); local_898 = local_890; FUN_14003d280((longlong *)&local_898,(LPCWSTR)(param_2 + 0x8b),3); local_a18 = (uint)*(ushort *)((longlong)param_2 + 0x245c); FUN_140040470((longlong *)(param_2 + 0x491), "GET %s HTTP/1.1\r\n\r\nHost: %s:%d\r\n\r\nConnection: Keep-Alive\r\n\r\n", local_898,local_808); if (local_898 != local_890) { free(local_898); } if (local_808 != local_800) { free(local_808); } lVar18 = FUN_1400c9030(param_1,(longlong)param_2); if ((char)lVar18 == '\0') goto LAB_1400ce4aa; } local_988 = Proud::AddrPort::vftable; local_978 = 0; local_990[0] = 0; local_990[1] = 0; local_980 = DAT_14016f3d0; local_97c = DAT_14016f3d4; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar25 = *(longlong *)param_2[0x490]; } uVar8 = FUN_140043980(lVar25,0,local_990); if ((char)uVar8 != '\0') { *(undefined1 *)(param_2 + 0x498) = 0; if (local_978 == 0) goto LAB_1400ce4aa; *(int *)((longlong)param_2 + 0x2504) = *(int *)((longlong)param_2 + 0x2504) + local_978; puVar26 = param_2[0x491]; if (puVar26 != (undefined *)0x0) { if (puVar26 == PTR_DAT_14016f008) { iVar7 = 0; } else { iVar7 = *(int *)(puVar26 + -8); } } if ((iVar7 - *(int *)((longlong)param_2 + 0x2504)) + 1 < 1) { if (1 < *(int *)(param_2 + 0x492)) { return; } param_2[0x492] = (undefined *)0x2; return; } FUN_1400c9030(param_1,(longlong)param_2); } goto LAB_1400ce57c; } if (iVar7 == 2) { lVar25 = 0; if (*(int *)((longlong)param_2 + 0x2494) == 0) { *(undefined1 *)(param_2 + 0x4a0) = 1; lVar18 = lVar25; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar18 = *(longlong *)param_2[0x490]; } uVar6 = FUN_140044880(lVar18,0x8000,param_3,param_4); if (uVar6 == 0) goto LAB_1400ce117; } else { LAB_1400ce117: local_9a8 = Proud::AddrPort::vftable; local_998 = 0; local_9b0 = 0; local_9a0 = DAT_14016f3d0; local_99c = DAT_14016f3d4; lVar18 = lVar25; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar18 = *(longlong *)param_2[0x490]; } uVar8 = FUN_140043710(lVar18,0,(undefined4 *)&local_9b0); if ((char)uVar8 == '\0') { LAB_1400ce57c: *(int *)((longlong)param_2 + 0x2494) = *(int *)((longlong)param_2 + 0x2494) + 1; return; } *(undefined1 *)(param_2 + 0x4a0) = 0; if (local_998 == 0) { LAB_1400ce4aa: if (2 < *(int *)(param_2 + 0x492)) { return; } param_2[0x492] = (undefined *)0x3; return; } lVar18 = lVar25; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar18 = *(longlong *)param_2[0x490]; } lVar18 = FUN_140043cd0(lVar18); ppuVar20 = (undefined **)(ulonglong)local_998; FUN_1400c90b0((longlong)(param_2 + 0x4a2),lVar18,ppuVar20,param_4); *(uint *)(param_2 + 0x4a1) = *(int *)(param_2 + 0x4a1) + local_998; if ((int)(0x8000U - *(int *)(param_2 + 0x4a1)) < 1) goto LAB_1400ce4aa; *(undefined1 *)(param_2 + 0x4a0) = 1; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar25 = *(longlong *)param_2[0x490]; } uVar6 = FUN_140044880(lVar25,(ulonglong)(0x8000U - *(int *)(param_2 + 0x4a1)),ppuVar20,param_4 ); if (uVar6 == 0) goto LAB_1400ce57c; } *(undefined1 *)(param_2 + 0x4a0) = 0; goto LAB_1400ce1ed; } if (iVar7 != 3) { if (iVar7 == 4) { if (((*(int *)((longlong)param_2 + 0x2494) == 0) && ((undefined8 *)param_2[0x490] != (undefined8 *)0x0)) && (plVar12 = *(longlong **)param_2[0x490], plVar12 != (longlong *)0x0)) { FUN_140043a50(plVar12,param_2,param_3,param_4); } local_968 = Proud::AddrPort::vftable; lVar25 = 0; local_958 = 0; local_970[0] = 0; local_970[1] = 0; local_960 = DAT_14016f3d0; local_95c = DAT_14016f3d4; lVar18 = lVar25; if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar18 = *(longlong *)param_2[0x490]; } uVar8 = FUN_140043710(lVar18,0,local_970); if ((char)uVar8 != '\0') { *(undefined1 *)(param_2 + 0x4a0) = 0; } if ((longlong *)param_2[0x490] != (longlong *)0x0) { lVar25 = *(longlong *)param_2[0x490]; } uVar8 = FUN_140043980(lVar25,0,local_970); if ((char)uVar8 != '\0') { *(undefined1 *)(param_2 + 0x498) = 0; } if ((*(char *)(param_2 + 0x4a0) == '\0') && (*(char *)(param_2 + 0x498) == '\0')) { if (4 < *(int *)(param_2 + 0x492)) { return; } param_2[0x492] = (undefined *)0x5; return; } } goto LAB_1400ce57c; } uVar6 = 0; if (*(int *)(param_2 + 0x4a5) == 0) goto LAB_1400ce1ed; _Dst = FUN_14003d780((longlong *)(param_2 + 0x4a7),*(int *)(param_2 + 0x4a5) + 1); memset(_Dst,0,(longlong)(*(int *)(param_2 + 0x4a5) + 1)); puVar26 = (undefined *)0x0; if (*(int *)(param_2 + 0x4a5) != 0) { puVar26 = param_2[0x4a4]; } _Size = (size_t)*(int *)(param_2 + 0x4a5); memcpy(_Dst,puVar26,_Size); ppuVar20 = param_2 + 0x4a7; FUN_14003d440((longlong *)ppuVar20); FUN_14003e7c0(ppuVar20,puVar26,_Size,param_4); ppppppuVar36 = (uint ******)PTR_DAT_14016f008; local_9d8 = (uint ******)PTR_DAT_14016f008; ppuVar20 = param_2 + 0x4a7; FUN_1400c9d00((longlong *)ppuVar20); FUN_14003e7c0(ppuVar20,puVar26,_Size,param_4); puVar17 = (uint *)PTR_DAT_14016f008; local_9f0 = (uint *)PTR_DAT_14016f008; uVar4 = FUN_14003e6e0("MODELDESCRIPTION"); iVar7 = 0; if ((puVar17 != (uint *)0x0) && (iVar7 = 0, puVar17 != (uint *)PTR_DAT_14016f008)) { iVar7 = *(int *)((longlong)puVar17 + -8); } uVar5 = uVar4; if ((((int)uVar4 <= iVar7) && (uVar5 = 0, puVar17 != (uint *)0x0)) && (puVar17 != (uint *)PTR_DAT_14016f008)) { uVar5 = *(uint *)((longlong)puVar17 + -8); } uVar31 = 1; if (1 < (int)uVar5) { uVar31 = uVar5; } iVar7 = 0; if ((puVar17 != (uint *)0x0) && (iVar7 = 0, puVar17 != (uint *)PTR_DAT_14016f008)) { iVar7 = *(int *)((longlong)puVar17 + -8); } if (iVar7 < (int)uVar31) { if (puVar17 == (uint *)0x0) { puVar17 = (uint *)PTR_DAT_14016f008; } local_9f0 = puVar17; if ((int)uVar31 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (uVar31 == 0) { FUN_140006e80((longlong *)&local_9f0); } else { uVar5 = 0; if ((puVar17 != (uint *)0x0) && (puVar17 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar17[-2]; } if (uVar31 != uVar5) { puVar9 = (uint *)FUN_14003e840((longlong)(int)uVar31 + 9); if (puVar9 != (uint *)0x0) { *puVar9 = 0; puVar9[1] = 1; } *puVar9 = uVar31; uVar5 = 0; if ((puVar17 != (uint *)0x0) && (puVar17 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar17[-2]; } puVar10 = (uint *)PTR_DAT_14016f008; if ((int)uVar31 < (int)uVar5) { LAB_1400cd625: if (puVar17 != (uint *)0x0) { puVar10 = puVar17; } } else { uVar31 = uVar6; if (puVar17 != (uint *)0x0) { if (puVar17 != (uint *)PTR_DAT_14016f008) { uVar31 = puVar17[-2]; } goto LAB_1400cd625; } } FUN_14003e710(puVar9 + 2,puVar10,uVar31); FUN_140006e80((longlong *)&local_9f0); local_9f0 = puVar9 + 2; } } } FUN_14003d4c0((longlong *)&local_9f0); puVar17 = local_9f0; puVar9 = local_9f0; if (local_9f0 == (uint *)0x0) { puVar9 = (uint *)PTR_DAT_14016f008; } uVar29 = (ulonglong)uVar4; FUN_14003e710(puVar9,"MODELDESCRIPTION",uVar4); puVar9 = puVar17; if (puVar17 == (uint *)0x0) { puVar9 = (uint *)PTR_DAT_14016f008; } uVar5 = FUN_14003e6e0((char *)puVar9); uVar4 = 0; if (0 < (int)uVar5) { uVar4 = uVar5; } uVar21 = (ulonglong)uVar4; uVar5 = 0; if ((puVar17 != (uint *)0x0) && (uVar5 = 0, puVar17 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar17[-2]; } puVar9 = (uint *)PTR_DAT_14016f008; if (((int)uVar4 < (int)uVar5) || (uVar21 = 0, puVar17 == (uint *)0x0)) { LAB_1400cd6bd: if (((puVar17 != (uint *)PTR_DAT_14016f008) && (puVar17 != (uint *)0x0)) && (puVar9 = puVar17 + -2, puVar9 != (uint *)0x0)) { *puVar9 = (uint)uVar21; *(undefined1 *)((longlong)(int)(uint)uVar21 + 8 + (longlong)puVar9) = 0; } } else if (puVar17 != (uint *)PTR_DAT_14016f008) { uVar21 = (ulonglong)puVar17[-2]; goto LAB_1400cd6bd; } FUN_14003e7c0(uVar21,puVar9,uVar29,param_4); puVar9 = (uint *)PTR_DAT_14016f008; local_a00 = (uint *)PTR_DAT_14016f008; uVar4 = FUN_14003e6e0("FRIENDLYNAME"); iVar7 = 0; if ((puVar9 != (uint *)0x0) && (iVar7 = 0, puVar9 != (uint *)PTR_DAT_14016f008)) { iVar7 = *(int *)((longlong)puVar9 + -8); } uVar5 = uVar4; if ((((int)uVar4 <= iVar7) && (uVar5 = 0, puVar9 != (uint *)0x0)) && (puVar9 != (uint *)PTR_DAT_14016f008)) { uVar5 = *(uint *)((longlong)puVar9 + -8); } uVar31 = 1; if (1 < (int)uVar5) { uVar31 = uVar5; } iVar7 = 0; if ((puVar9 != (uint *)0x0) && (iVar7 = 0, puVar9 != (uint *)PTR_DAT_14016f008)) { iVar7 = *(int *)((longlong)puVar9 + -8); } if (iVar7 < (int)uVar31) { if (puVar9 == (uint *)0x0) { puVar9 = (uint *)PTR_DAT_14016f008; } local_a00 = puVar9; if ((int)uVar31 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (uVar31 == 0) { FUN_140006e80((longlong *)&local_a00); } else { uVar5 = 0; if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar9[-2]; } if (uVar31 != uVar5) { puVar10 = (uint *)FUN_14003e840((longlong)(int)uVar31 + 9); if (puVar10 != (uint *)0x0) { *puVar10 = 0; puVar10[1] = 1; } *puVar10 = uVar31; uVar5 = 0; if ((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar9[-2]; } puVar11 = (uint *)PTR_DAT_14016f008; if ((int)uVar31 < (int)uVar5) { LAB_1400cd7ca: if (puVar9 != (uint *)0x0) { puVar11 = puVar9; } } else { uVar31 = uVar6; if (puVar9 != (uint *)0x0) { if (puVar9 != (uint *)PTR_DAT_14016f008) { uVar31 = puVar9[-2]; } goto LAB_1400cd7ca; } } FUN_14003e710(puVar10 + 2,puVar11,uVar31); FUN_140006e80((longlong *)&local_a00); local_a00 = puVar10 + 2; } } } FUN_14003d4c0((longlong *)&local_a00); puVar9 = local_a00; puVar10 = local_a00; if (local_a00 == (uint *)0x0) { puVar10 = (uint *)PTR_DAT_14016f008; } FUN_14003e710(puVar10,"FRIENDLYNAME",uVar4); puVar10 = puVar9; if (puVar9 == (uint *)0x0) { puVar10 = (uint *)PTR_DAT_14016f008; } uVar5 = FUN_14003e6e0((char *)puVar10); uVar4 = 0; if (0 < (int)uVar5) { uVar4 = uVar5; } uVar5 = 0; if ((puVar9 != (uint *)0x0) && (uVar5 = 0, puVar9 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar9[-2]; } if (((int)uVar4 < (int)uVar5) || (uVar4 = 0, puVar9 == (uint *)0x0)) { LAB_1400cd862: if (((puVar9 != (uint *)PTR_DAT_14016f008) && (puVar9 != (uint *)0x0)) && (puVar10 = puVar9 + -2, puVar10 != (uint *)0x0)) { *puVar10 = uVar4; *(undefined1 *)((longlong)(int)uVar4 + 8 + (longlong)puVar10) = 0; } } else if (puVar9 != (uint *)PTR_DAT_14016f008) { uVar4 = puVar9[-2]; goto LAB_1400cd862; } ppuVar35 = &local_9f0; ppppppplVar32 = (longlong *******)(param_2 + 0x4a7); ppuVar20 = &local_9d0; puVar22 = local_9e0; local_a08 = (uint *******) FUN_1400ca9c0(local_9e0,(longlong *)ppuVar20,ppppppplVar32,(longlong *)ppuVar35); FUN_14003e7c0(puVar22,ppuVar20,ppppppplVar32,ppuVar35); puVar10 = (uint *)PTR_DAT_14016f008; local_9f8 = (uint *)PTR_DAT_14016f008; local_9e8[0] = FUN_14003e6e0("##"); iVar7 = 0; if ((puVar10 != (uint *)0x0) && (iVar7 = 0, puVar10 != (uint *)PTR_DAT_14016f008)) { iVar7 = *(int *)((longlong)puVar10 + -8); } uVar4 = local_9e8[0]; if ((((int)local_9e8[0] <= iVar7) && (uVar4 = 0, puVar10 != (uint *)0x0)) && (puVar10 != (uint *)PTR_DAT_14016f008)) { uVar4 = *(uint *)((longlong)puVar10 + -8); } uVar5 = 1; if (1 < (int)uVar4) { uVar5 = uVar4; } iVar7 = 0; if ((puVar10 != (uint *)0x0) && (iVar7 = 0, puVar10 != (uint *)PTR_DAT_14016f008)) { iVar7 = *(int *)((longlong)puVar10 + -8); } if (iVar7 < (int)uVar5) { if (puVar10 == (uint *)0x0) { puVar10 = (uint *)PTR_DAT_14016f008; } local_9f8 = puVar10; if ((int)uVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (uVar5 == 0) { FUN_140006e80((longlong *)&local_9f8); } else { uVar4 = 0; if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_14016f008)) { uVar4 = puVar10[-2]; } if (uVar5 != uVar4) { puVar11 = (uint *)FUN_14003e840((longlong)(int)uVar5 + 9); if (puVar11 != (uint *)0x0) { *puVar11 = 0; puVar11[1] = 1; } *puVar11 = uVar5; uVar4 = 0; if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_14016f008)) { uVar4 = puVar10[-2]; } puVar27 = (uint *)PTR_DAT_14016f008; if ((int)uVar5 < (int)uVar4) { LAB_1400cd999: if (puVar10 != (uint *)0x0) { puVar27 = puVar10; } } else { uVar5 = uVar6; if (puVar10 != (uint *)0x0) { if (puVar10 != (uint *)PTR_DAT_14016f008) { uVar5 = puVar10[-2]; } goto LAB_1400cd999; } } FUN_14003e710(puVar11 + 2,puVar27,uVar5); FUN_140006e80((longlong *)&local_9f8); local_9f8 = puVar11 + 2; } } } FUN_14003d4c0((longlong *)&local_9f8); puVar10 = local_9f8; puVar11 = local_9f8; if (local_9f8 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_14016f008; } FUN_14003e710(puVar11,&DAT_140124980,local_9e8[0]); puVar11 = puVar10; if (puVar10 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_14016f008; } uVar5 = FUN_14003e6e0((char *)puVar11); uVar4 = 0; if (0 < (int)uVar5) { uVar4 = uVar5; } uVar5 = 0; if ((puVar10 != (uint *)0x0) && (uVar5 = 0, puVar10 != (uint *)PTR_DAT_14016f008)) { uVar5 = puVar10[-2]; } if (((int)uVar4 < (int)uVar5) || (uVar4 = 0, puVar10 == (uint *)0x0)) { LAB_1400cda33: if (((puVar10 != (uint *)PTR_DAT_14016f008) && (puVar10 != (uint *)0x0)) && (puVar11 = puVar10 + -2, puVar11 != (uint *)0x0)) { *puVar11 = uVar4; *(undefined1 *)((longlong)(int)uVar4 + 8 + (longlong)puVar11) = 0; } } else if (puVar10 != (uint *)PTR_DAT_14016f008) { uVar4 = puVar10[-2]; goto LAB_1400cda33; } ppuVar35 = &local_a00; plVar12 = FUN_1400ca9c0(local_9e0,(longlong *)&local_9b8,(longlong *******)(param_2 + 0x4a7), (longlong *)ppuVar35); pppppppuVar13 = (uint *******)FUN_140040a00((longlong *)&local_9c0,plVar12,(longlong *)&local_9f8,ppuVar35); pppppppuVar14 = (uint *******) FUN_140040a00((longlong *)&local_9c8,(longlong *)pppppppuVar13,(longlong *)local_a08,ppuVar35 ); if (ppppppuVar36 == (uint ******)0x0) { ppppppuVar36 = (uint ******)PTR_DAT_14016f008; } pppppppuVar33 = local_a08; local_9d8 = ppppppuVar36; if (*pppppppuVar14 != ppppppuVar36) { local_a08 = pppppppuVar14; piVar15 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); piVar16 = piVar15; local_920 = piVar15; FUN_14003d040(piVar15); local_918 = 1; if (((ppppppuVar36 != (uint ******)0x0) && (ppppppuVar36 != (uint ******)PTR_DAT_14016f008)) && (ppppppuVar36 + -1 != (uint ******)0x0)) { piVar15 = (int *)FUN_14003e7c0(piVar16,pppppppuVar13,pppppppuVar33,ppuVar35); local_8a8 = piVar15; FUN_14003d040(piVar15); local_8a0 = 1; piVar16 = (int *)((longlong)ppppppuVar36 + -4); *piVar16 = *piVar16 + -1; if (*piVar16 == 0) { FUN_14003e8b0(ppppppuVar36 + -1); } FUN_14003d0d0((longlong)piVar15); piVar15 = local_920; } ppppppuVar36 = *local_a08; if (((ppppppuVar36 != (uint ******)PTR_DAT_14016f008) && (ppppppuVar36 != (uint ******)0x0)) && (ppppppuVar36 != (uint ******)0x8)) { *(int *)((longlong)ppppppuVar36 + -4) = *(int *)((longlong)ppppppuVar36 + -4) + 1; } local_9d8 = ppppppuVar36; FUN_14003d0d0((longlong)piVar15); pppppppuVar14 = local_a08; } local_a08 = pppppppuVar14; if (((local_9c8 != (undefined *)0x0) && (local_9c8 != PTR_DAT_14016f008)) && (local_9c8 + -8 != (undefined *)0x0)) { local_930 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); FUN_14003d040(local_930); local_928 = 1; piVar16 = (int *)(local_9c8 + -4); *piVar16 = *piVar16 + -1; if (*piVar16 == 0) { FUN_14003e8b0(local_9c8 + -8); } FUN_14003d0d0((longlong)local_930); } local_9c8 = PTR_DAT_14016f008; if (((local_9c0 != (undefined *)0x0) && (local_9c0 != PTR_DAT_14016f008)) && (local_9c0 + -8 != (undefined *)0x0)) { local_950 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); FUN_14003d040(local_950); local_948 = 1; piVar16 = (int *)(local_9c0 + -4); *piVar16 = *piVar16 + -1; if (*piVar16 == 0) { FUN_14003e8b0(local_9c0 + -8); } FUN_14003d0d0((longlong)local_950); } local_9c0 = PTR_DAT_14016f008; if (((local_9b8 != (undefined *)0x0) && (local_9b8 != PTR_DAT_14016f008)) && (local_9b8 + -8 != (undefined *)0x0)) { local_940 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); FUN_14003d040(local_940); local_938 = 1; piVar16 = (int *)(local_9b8 + -4); *piVar16 = *piVar16 + -1; if (*piVar16 == 0) { FUN_14003e8b0(local_9b8 + -8); } FUN_14003d0d0((longlong)local_940); } local_9b8 = PTR_DAT_14016f008; if (((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_14016f008)) && (puVar10 + -2 != (uint *)0x0)) { piVar16 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); local_8b8 = piVar16; FUN_14003d040(piVar16); local_8b0 = 1; puVar11 = puVar10 + -1; *puVar11 = *puVar11 - 1; if (*puVar11 == 0) { FUN_14003e8b0(puVar10 + -2); } FUN_14003d0d0((longlong)piVar16); } if (((local_9d0 != (undefined *)0x0) && (local_9d0 != PTR_DAT_14016f008)) && (local_9d0 + -8 != (undefined *)0x0)) { piVar15 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); local_900 = piVar15; FUN_14003d040(piVar15); local_8f8 = 1; piVar16 = (int *)(local_9d0 + -4); *piVar16 = *piVar16 + -1; if (*piVar16 == 0) { FUN_14003e8b0(local_9d0 + -8); } FUN_14003d0d0((longlong)piVar15); } local_9d0 = PTR_DAT_14016f008; if (((puVar9 != (uint *)0x0) && (puVar9 != (uint *)PTR_DAT_14016f008)) && (puVar9 + -2 != (uint *)0x0)) { piVar16 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); local_8f0 = piVar16; FUN_14003d040(piVar16); local_8e8 = 1; puVar10 = puVar9 + -1; *puVar10 = *puVar10 - 1; if (*puVar10 == 0) { FUN_14003e8b0(puVar9 + -2); } FUN_14003d0d0((longlong)piVar16); } if (((puVar17 != (uint *)0x0) && (puVar17 != (uint *)PTR_DAT_14016f008)) && (puVar17 + -2 != (uint *)0x0)) { piVar16 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); local_8c8 = piVar16; FUN_14003d040(piVar16); local_8c0 = 1; puVar9 = puVar17 + -1; *puVar9 = *puVar9 - 1; if (*puVar9 == 0) { FUN_14003e8b0(puVar17 + -2); } FUN_14003d0d0((longlong)piVar16); } if (((ppppppuVar36 != (uint ******)0x0) && (ppppppuVar36 != (uint ******)PTR_DAT_14016f008)) && (2 < *(int *)(ppppppuVar36 + -1))) { local_778 = local_770; uVar8 = 3; ppsVar23 = &local_778; ppppppuVar28 = ppppppuVar36; FUN_140005110((longlong *)ppsVar23,(LPCSTR)ppppppuVar36,3); psVar3 = local_778; FUN_14003e7c0(ppsVar23,ppppppuVar28,uVar8,ppuVar35); pppppppuVar13 = (uint *******)PTR_DAT_14016f010; local_a08 = (uint *******)PTR_DAT_14016f010; uVar4 = FUN_14003e620(psVar3); uVar29 = 0; if ((pppppppuVar13 != (uint *******)0x0) && (pppppppuVar13 != (uint *******)PTR_DAT_14016f010)) { uVar29 = (ulonglong)*(uint *)((longlong)pppppppuVar13 + -8); } uVar5 = uVar4; if ((((int)uVar4 <= (int)uVar29) && (uVar5 = 0, pppppppuVar13 != (uint *******)0x0)) && (pppppppuVar13 != (uint *******)PTR_DAT_14016f010)) { uVar5 = *(uint *)((longlong)pppppppuVar13 + -8); } uVar31 = 1; if (1 < (int)uVar5) { uVar31 = uVar5; } iVar7 = 0; if ((pppppppuVar13 != (uint *******)0x0) && (iVar7 = 0, pppppppuVar13 != (uint *******)PTR_DAT_14016f010)) { iVar7 = *(int *)((longlong)pppppppuVar13 + -8); } if (iVar7 < (int)uVar31) { if (pppppppuVar13 == (uint *******)0x0) { pppppppuVar13 = (uint *******)PTR_DAT_14016f010; } local_a08 = pppppppuVar13; if ((int)uVar31 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (uVar31 == 0) { FUN_140002190((longlong *)&local_a08,uVar29,uVar8,ppuVar35); } else { uVar5 = 0; if ((pppppppuVar13 != (uint *******)0x0) && (pppppppuVar13 != (uint *******)PTR_DAT_14016f010)) { uVar5 = *(uint *)(pppppppuVar13 + -1); } if (uVar31 != uVar5) { puVar17 = (uint *)FUN_14003e840((longlong)(int)uVar31 * 2 + 10); if (puVar17 != (uint *)0x0) { *puVar17 = 0; puVar17[1] = 1; } *puVar17 = uVar31; uVar5 = 0; if ((pppppppuVar13 != (uint *******)0x0) && (pppppppuVar13 != (uint *******)PTR_DAT_14016f010)) { uVar5 = *(uint *)(pppppppuVar13 + -1); } pppppppuVar14 = (uint *******)PTR_DAT_14016f010; if ((int)uVar31 < (int)uVar5) { LAB_1400cde9c: if (pppppppuVar13 != (uint *******)0x0) { pppppppuVar14 = pppppppuVar13; } } else { uVar31 = uVar6; if (pppppppuVar13 != (uint *******)0x0) { if (pppppppuVar13 != (uint *******)PTR_DAT_14016f010) { uVar31 = *(uint *)(pppppppuVar13 + -1); } goto LAB_1400cde9c; } } uVar29 = (ulonglong)uVar31; FUN_14003e650(puVar17 + 2,pppppppuVar14,uVar31); FUN_140002190((longlong *)&local_a08,pppppppuVar14,uVar29,ppuVar35); local_a08 = (uint *******)(puVar17 + 2); } } } FUN_140001df0((longlong *)&local_a08); pppppppuVar14 = local_a08; pppppppuVar13 = local_a08; if (local_a08 == (uint *******)0x0) { pppppppuVar13 = (uint *******)PTR_DAT_14016f010; } FUN_14003e650(pppppppuVar13,psVar3,uVar4); pppppppuVar13 = pppppppuVar14; if (pppppppuVar14 == (uint *******)0x0) { pppppppuVar13 = (uint *******)PTR_DAT_14016f010; } uVar4 = FUN_14003e620((short *)pppppppuVar13); puVar22 = local_9e0; uVar6 = 0; if (0 < (int)uVar4) { uVar6 = uVar4; } uVar4 = 0; if ((pppppppuVar14 != (uint *******)0x0) && (uVar4 = 0, pppppppuVar14 != (uint *******)PTR_DAT_14016f010)) { uVar4 = *(uint *)(pppppppuVar14 + -1); } if (((int)uVar6 < (int)uVar4) || (uVar6 = 0, pppppppuVar14 == (uint *******)0x0)) { LAB_1400cdf30: if (((pppppppuVar14 != (uint *******)PTR_DAT_14016f010) && (pppppppuVar14 != (uint *******)0x0)) && (pppppppuVar14 + -1 != (uint *******)0x0)) { *(uint *)(pppppppuVar14 + -1) = uVar6; *(ushort *)((longlong)pppppppuVar14 + (longlong)(int)uVar6 * 2) = 0; } } else if (pppppppuVar14 != (uint *******)PTR_DAT_14016f010) { uVar6 = *(uint *)(pppppppuVar14 + -1); goto LAB_1400cdf30; } pppppppuVar13 = pppppppuVar14; if (pppppppuVar14 == (uint *******)0x0) { pppppppuVar13 = (uint *******)PTR_DAT_14016f010; } if (pppppppuVar13 == (uint *******)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } uVar6 = 0; pppppppuVar13 = pppppppuVar14; if (pppppppuVar14 == (uint *******)0x0) { pppppppuVar13 = (uint *******)PTR_DAT_14016f010; } uVar1 = *(ushort *)pppppppuVar13; while (uVar1 != 0) { uVar6 = uVar6 * 0x21 + (uint)uVar1; pppppppuVar13 = (uint *******)((longlong)pppppppuVar13 + 2); uVar1 = *(ushort *)pppppppuVar13; } uVar4 = *(uint *)(local_9e0 + 0x1a); pppppppuVar34 = (uint *******)PTR_DAT_14016f010; if (local_9e0[0x16] != 0) { plVar12 = *(longlong **)(local_9e0[0x16] + ((ulonglong)uVar6 % (ulonglong)uVar4) * 8); pppppppuVar33 = (uint *******)PTR_DAT_14016f010; while( true ) { PTR_DAT_14016f010 = (undefined *)pppppppuVar33; if ((plVar12 == (longlong *)0x0) || (pppppppuVar34 = pppppppuVar33, (uint)((ulonglong)uVar6 % (ulonglong)uVar4) != *(uint *)(plVar12 + 4) % *(uint *)(puVar22 + 0x1a))) goto LAB_1400ce014; pppppppuVar13 = pppppppuVar14; if (pppppppuVar14 == (uint *******)0x0) { pppppppuVar13 = pppppppuVar33; } pppppppuVar24 = (uint *******)*plVar12; if ((uint *******)*plVar12 == (uint *******)0x0) { pppppppuVar24 = pppppppuVar33; } iVar7 = FUN_14003e660((ushort *)pppppppuVar24,(longlong)pppppppuVar13); pppppppuVar34 = pppppppuVar33; if (iVar7 == 0) break; plVar12 = (longlong *)plVar12[2]; pppppppuVar33 = (uint *******)PTR_DAT_14016f010; } if (plVar12 != (longlong *)0x0) goto LAB_1400ce028; } LAB_1400ce014: pppppppuVar13 = (uint *******)&local_a08; pppppppuVar24 = (uint *******)(puVar22 + 0x15); plVar12 = FUN_1400cc450((char *)pppppppuVar24,(longlong *)pppppppuVar13); *(undefined1 *)plVar12 = 0; pppppppuVar33 = pppppppuVar34; LAB_1400ce028: if (((pppppppuVar14 != (uint *******)0x0) && (pppppppuVar14 != (uint *******)PTR_DAT_14016f010)) && (pppppppuVar14 + -1 != (uint *******)0x0)) { piVar16 = (int *)FUN_14003e7c0(pppppppuVar24,pppppppuVar13,pppppppuVar33,ppuVar35); local_8d8 = piVar16; FUN_14003d040(piVar16); local_8d0 = 1; puVar17 = (uint *)((longlong)pppppppuVar14 + -4); *puVar17 = *puVar17 - 1; if (*puVar17 == 0) { FUN_14003e8b0(pppppppuVar14 + -1); } FUN_14003d0d0((longlong)piVar16); } if (local_778 != local_770) { free(local_778); } } if (((ppppppuVar36 != (uint ******)0x0) && (ppppppuVar36 != (uint ******)PTR_DAT_14016f008)) && (ppppppuVar36 + -1 != (uint ******)0x0)) { piVar15 = (int *)FUN_14003e7c0(PTR_DAT_14016f008,pppppppuVar13,pppppppuVar33,ppuVar35); local_910 = piVar15; FUN_14003d040(piVar15); local_908 = 1; piVar16 = (int *)((longlong)ppppppuVar36 + -4); *piVar16 = *piVar16 + -1; if (*piVar16 == 0) { FUN_14003e8b0(ppppppuVar36 + -1); } FUN_14003d0d0((longlong)piVar15); } LAB_1400ce1ed: if (3 < *(int *)(param_2 + 0x492)) { return; } param_2[0x492] = (undefined *)0x4; return; }