/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14019ff40 FUN_14019ff40 * Pseudocode, not original source. */ /* WARNING: Function: __chkstk replaced with injection: alloca_probe */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ ulonglong FUN_14019ff40(longlong *param_1,undefined8 param_2,int *param_3,undefined8 param_4, undefined4 param_5) { undefined *puVar1; undefined4 uVar2; byte bVar3; char cVar4; int iVar5; uint uVar6; uint uVar7; uint uVar8; undefined8 uVar9; int *piVar10; uint *puVar11; undefined8 uVar12; undefined *extraout_RAX; undefined *puVar13; ulonglong uVar14; longlong lVar15; uint *puVar16; uint uVar17; uint uVar18; int iVar19; undefined1 auStack_1d58 [32]; undefined ***local_1d38; uint *local_1d28; int local_1d20; uint *local_1d18; undefined8 local_1d10; undefined2 local_1d08 [4]; undefined *local_1d00; undefined **local_1cf8; undefined8 local_1cf0; undefined8 local_1ce8; undefined8 local_1ce0; undefined8 local_1cd8; undefined8 local_1cb0; undefined8 local_1ca8; undefined1 local_1ca0; undefined1 local_1c98 [8]; undefined1 local_1c90 [8]; longlong local_1c88; undefined4 local_1c80; int local_1c7c; undefined1 *local_1c70; undefined1 local_1c68 [8]; longlong local_1c60; longlong local_1c58; int local_1c50; int local_1c4c; undefined8 local_1c40; undefined1 local_1c38; undefined8 local_1c30; undefined1 local_1c28; undefined8 local_1c20; undefined1 local_1c18; undefined8 local_1c10; undefined4 uStack_1c08; undefined4 uStack_1c04; undefined8 local_1c00; int iStack_1bf8; undefined4 uStack_1bf4; undefined1 local_1bf0 [8]; undefined1 local_1be8 [8]; undefined8 local_1be0; undefined1 local_1bd8 [8]; longlong local_1bd0; longlong local_1bc8; undefined4 local_1bc0; int local_1bbc; undefined1 local_1bb0 [136]; void *local_1b28; longlong local_1b20; ulonglong local_1b18; undefined8 local_1b10; int local_1b08 [100]; undefined4 local_1978; undefined4 uStack_1974; int iStack_1970; undefined4 uStack_196c; undefined4 *local_cf8; undefined4 local_cf0; int local_cec; undefined1 local_ce8 [3200]; undefined1 *local_68; undefined4 local_60; int local_5c; ulonglong local_58; undefined8 uStack_48; uStack_48 = 0x14019ff5f; local_1be0 = 0xfffffffffffffffe; local_58 = DAT_1403463c0 ^ (ulonglong)auStack_1d58; bVar3 = 0; local_1cb0 = param_2; if ((param_3[9] == 0) || (*param_3 == 2)) { local_1d38 = (undefined ***)CONCAT44(local_1d38._4_4_,param_5); uVar14 = (**(code **)(*param_1 + 0x78))(); } else { uVar9 = (**(code **)(*param_1 + 0x58))(); local_1c40 = uVar9; FUN_14016db50(uVar9); local_1c38 = 1; if (DAT_14034c86f != '\0') { (**(code **)(*param_1 + 200))(param_1,L"Proud::CNetCoreImpl::Send_SecureLayer"); } local_1b28 = (void *)0x0; local_1b10 = 0; local_1b20 = 0; local_1b18 = 100; (**(code **)(*param_1 + 0x50))(param_1,param_5,param_4,&local_1b28); FUN_14016dbe0(uVar9); local_1c38 = 0; FUN_14016d8c0(); local_1d00 = PTR_DAT_1403440a0; iVar19 = 0; local_1d10 = (longlong *)((ulonglong)local_1d10._4_4_ << 0x20); if (0 < local_1b20) { lVar15 = 0; do { if ((lVar15 < 0) || (local_1b20 <= lVar15)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if (local_1b18 < 0x65) { piVar10 = local_1b08 + lVar15; } else { piVar10 = (int *)((longlong)local_1b28 + lVar15 * 4); } local_1d20 = *piVar10; iVar5 = (**(code **)(*param_1 + 0x30))(param_1); if (iVar5 == local_1d20) { local_1d38 = (undefined ***)CONCAT44(local_1d38._4_4_,1); bVar3 = (**(code **)(*param_1 + 0x78))(param_1,param_2,param_3); } else { lVar15 = (**(code **)(*param_1 + 0xc0))(param_1,local_1d20,&local_1d00); if (lVar15 == 0) { uVar9 = (**(code **)(*param_1 + 0x58))(param_1); local_1ca8 = uVar9; FUN_14016db50(uVar9); local_1ca0 = 1; if (DAT_14034c86f != '\0') { (**(code **)(*param_1 + 200))(param_1,L"Proud::CNetCoreImpl::Send_SecureLayer"); } if (((local_1d00 == (undefined *)0x0) || (local_1d00 == PTR_DAT_1403440a0)) || (*(int *)(local_1d00 + -8) < 1)) { FUN_14016d8c0(); local_1d28 = (uint *)PTR_DAT_1403440a0; uVar6 = FUN_14016d740( L"CStartServerParameter.m_enableP2PEncryptedMessaging=false. P2P Messaging can not encrypted!!" ); uVar17 = 0; uVar18 = 0; if ((local_1d28 != (uint *)0x0) && (uVar18 = 0, local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar18 = local_1d28[-2]; } uVar7 = uVar6; if ((((int)uVar6 <= (int)uVar18) && (uVar7 = uVar17, local_1d28 != (uint *)0x0)) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } uVar18 = 1; if (1 < (int)uVar7) { uVar18 = uVar7; } uVar8 = 0; uVar7 = uVar8; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } if ((int)uVar7 < (int)uVar18) { if (local_1d28 == (uint *)0x0) { local_1d28 = (uint *)PTR_DAT_1403440a0; } if ((int)uVar18 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if (uVar18 == 0) { FUN_14004eb70(&local_1d28); } else { uVar7 = uVar8; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } if (uVar18 != uVar7) { puVar11 = (uint *)FUN_14016d940((longlong)(int)uVar18 * 2 + 10); if (puVar11 != (uint *)0x0) { *puVar11 = 0; puVar11[1] = 1; } *puVar11 = uVar18; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar8 = local_1d28[-2]; } puVar16 = (uint *)PTR_DAT_1403440a0; if ((int)uVar18 < (int)uVar8) { LAB_1401a0897: if (local_1d28 != (uint *)0x0) { puVar16 = local_1d28; } } else { uVar18 = uVar17; if (local_1d28 != (uint *)0x0) { if (local_1d28 != (uint *)PTR_DAT_1403440a0) { uVar18 = local_1d28[-2]; } goto LAB_1401a0897; } } FUN_14016d770(puVar11 + 2,puVar16,uVar18); FUN_14004eb70(&local_1d28); local_1d28 = puVar11 + 2; } } } FUN_14004e850(&local_1d28); puVar11 = local_1d28; if (local_1d28 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_1403440a0; } FUN_14016d770(puVar11, L"CStartServerParameter.m_enableP2PEncryptedMessaging=false. P2P Messaging can not encrypted!!" ,uVar6); puVar11 = local_1d28; if (local_1d28 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_1403440a0; } uVar6 = FUN_14016d740(puVar11); uVar17 = 0; uVar18 = 0; if (0 < (int)uVar6) { uVar18 = uVar6; } uVar6 = uVar17; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar6 = local_1d28[-2]; } if (((int)uVar18 < (int)uVar6) || (uVar18 = uVar17, local_1d28 == (uint *)0x0)) { LAB_1401a0935: if (((local_1d28 != (uint *)PTR_DAT_1403440a0) && (local_1d28 != (uint *)0x0)) && (local_1d28 + -2 != (uint *)0x0)) { local_1d28[-2] = uVar18; *(undefined2 *)((longlong)local_1d28 + (longlong)(int)uVar18 * 2) = 0; } } else if (local_1d28 != (uint *)PTR_DAT_1403440a0) { uVar18 = local_1d28[-2]; goto LAB_1401a0935; } local_1cf0 = 0; local_1ce8 = 0; local_1ce0 = 0; local_1cd8 = 0; local_1cf8 = Proud::ByteArray::vftable; local_1d38 = &local_1cf8; uVar12 = FUN_140198f80(&local_1c70,5,local_1d20,&local_1d28); (**(code **)(*param_1 + 0x80))(param_1,uVar12); FUN_14019a9e0(&local_1cf8); FUN_14004eb70(&local_1d28); param_2 = local_1cb0; iVar19 = (int)local_1d10; } else { local_1cf0 = 0; local_1ce8 = 0; local_1ce0 = 0; local_1cd8 = 0; local_1cf8 = Proud::ByteArray::vftable; local_1d38 = &local_1cf8; uVar12 = FUN_140198f80(local_1be8,5,local_1d20,&local_1d00); (**(code **)(*param_1 + 0x80))(param_1,uVar12); FUN_14019a9e0(&local_1cf8); } FUN_14016dbe0(uVar9); local_1ca0 = 0; } else { uVar9 = (**(code **)(*param_1 + 0x58))(); local_1c20 = uVar9; FUN_14016db50(uVar9); local_1c18 = 1; if (DAT_14034c86f != '\0') { (**(code **)(*param_1 + 200))(param_1,L"Proud::CNetCoreImpl::Send_SecureLayer"); } FUN_14016b440(local_1c98); FUN_14016abe0(local_1c98); if (*param_3 == 1) { cVar4 = (**(code **)(*param_1 + 0xa0))(param_1,local_1d20,local_1d08); if (cVar4 == '\0') { FUN_14016d8c0(); local_1d28 = (uint *)PTR_DAT_1403440a0; uVar6 = FUN_14016d740(&DAT_140280fe0); uVar17 = 0; uVar18 = 0; if ((local_1d28 != (uint *)0x0) && (uVar18 = 0, local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar18 = local_1d28[-2]; } uVar7 = uVar6; if ((((int)uVar6 <= (int)uVar18) && (uVar7 = uVar17, local_1d28 != (uint *)0x0)) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } uVar18 = 1; if (1 < (int)uVar7) { uVar18 = uVar7; } uVar7 = uVar17; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } uVar8 = 0; if ((int)uVar7 < (int)uVar18) { if (local_1d28 == (uint *)0x0) { local_1d28 = (uint *)PTR_DAT_1403440a0; } if ((int)uVar18 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if (uVar18 == 0) { FUN_14004eb70(&local_1d28); } else { uVar7 = uVar17; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } if (uVar18 != uVar7) { puVar11 = (uint *)FUN_14016d940((longlong)(int)uVar18 * 2 + 10); if (puVar11 != (uint *)0x0) { *puVar11 = 0; puVar11[1] = 1; } *puVar11 = uVar18; uVar7 = uVar8; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d28[-2]; } puVar16 = (uint *)PTR_DAT_1403440a0; if ((int)uVar18 < (int)uVar7) { LAB_1401a0aed: if (local_1d28 != (uint *)0x0) { puVar16 = local_1d28; } } else { uVar18 = uVar17; if (local_1d28 != (uint *)0x0) { if (local_1d28 != (uint *)PTR_DAT_1403440a0) { uVar18 = local_1d28[-2]; } goto LAB_1401a0aed; } } FUN_14016d770(puVar11 + 2,puVar16,uVar18); FUN_14004eb70(&local_1d28); local_1d28 = puVar11 + 2; } } } FUN_14004e850(&local_1d28); puVar11 = local_1d28; if (local_1d28 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_1403440a0; } FUN_14016d770(puVar11,&DAT_140280fe0,uVar6); puVar11 = local_1d28; if (local_1d28 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_1403440a0; } uVar6 = FUN_14016d740(puVar11); uVar18 = 0; if (0 < (int)uVar6) { uVar18 = uVar6; } uVar6 = uVar8; if ((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) { uVar6 = local_1d28[-2]; } if (((int)uVar6 <= (int)uVar18) && (uVar18 = uVar8, local_1d28 != (uint *)0x0)) { if (local_1d28 == (uint *)PTR_DAT_1403440a0) goto LAB_1401a0ba7; uVar18 = local_1d28[-2]; } if (((local_1d28 != (uint *)PTR_DAT_1403440a0) && (local_1d28 != (uint *)0x0)) && (local_1d28 + -2 != (uint *)0x0)) { local_1d28[-2] = uVar18; *(undefined2 *)((longlong)local_1d28 + (longlong)(int)uVar18 * 2) = 0; } LAB_1401a0ba7: local_1cf0 = 0; local_1ce8 = 0; local_1ce0 = 0; local_1cd8 = 0; local_1cf8 = Proud::ByteArray::vftable; local_1d38 = &local_1cf8; uVar12 = FUN_140198f80(&local_1c70,5,local_1d20,&local_1d28); (**(code **)(*param_1 + 0x80))(param_1,uVar12); FUN_14019a9e0(&local_1cf8); puVar11 = local_1d28; if (((local_1d28 != (uint *)0x0) && (local_1d28 != (uint *)PTR_DAT_1403440a0)) && (puVar16 = local_1d28 + -2, puVar16 != (uint *)0x0)) { uVar12 = FUN_14016d8c0(); local_1ca8 = uVar12; FUN_14016db50(uVar12); local_1ca0 = 1; puVar11 = puVar11 + -1; *puVar11 = *puVar11 - 1; if (*puVar11 == 0) { FUN_14016d970(puVar16); } FUN_14016dbe0(uVar12); } local_1c70 = local_1c90; FUN_14016d0e0(local_1c90); if (local_1c88 != 0) { if (local_1c7c < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_1c80 = 0; } FUN_14016dbe0(uVar9); puVar13 = local_1d00; if (((local_1d00 != (undefined *)0x0) && (local_1d00 != PTR_DAT_1403440a0)) && (puVar1 = local_1d00 + -8, puVar1 != (undefined *)0x0)) { uVar9 = FUN_14016d8c0(); local_1ca8 = uVar9; FUN_14016db50(uVar9); local_1ca0 = 1; piVar10 = (int *)(puVar13 + -4); *piVar10 = *piVar10 + -1; if (*piVar10 == 0) { FUN_14016d970(puVar1); } FUN_14016dbe0(uVar9); } local_1d00 = PTR_DAT_1403440a0; puVar13 = PTR_DAT_1403440a0; if (100 < local_1b18) { operator_delete__(local_1b28); puVar13 = extraout_RAX; } return (ulonglong)puVar13 & 0xffffffffffffff00; } FUN_14004f3c0(local_1c98,local_1d08[0]); } FUN_14016b820(local_1c98,param_2); FUN_14016b440(local_1c68); FUN_14016abe0(local_1c68); if (param_3[9] == 1) { cVar4 = FUN_1401b1520(local_1c98,local_1c68,lVar15); } else { cVar4 = FUN_1401c0ce0(local_1c98,local_1c68,lVar15 + 0x3d0,0); } if (cVar4 == '\0') { FUN_14016d8c0(); local_1d18 = (uint *)PTR_DAT_1403440a0; uVar6 = FUN_14016d740(L"Encrypt Error"); uVar17 = 0; uVar18 = 0; if ((local_1d18 != (uint *)0x0) && (uVar18 = 0, local_1d18 != (uint *)PTR_DAT_1403440a0)) { uVar18 = local_1d18[-2]; } uVar7 = uVar6; if ((((int)uVar6 <= (int)uVar18) && (uVar7 = uVar17, local_1d18 != (uint *)0x0)) && (local_1d18 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d18[-2]; } uVar18 = 1; if (1 < (int)uVar7) { uVar18 = uVar7; } uVar8 = 0; uVar7 = uVar8; if ((local_1d18 != (uint *)0x0) && (local_1d18 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d18[-2]; } if ((int)uVar7 < (int)uVar18) { if (local_1d18 == (uint *)0x0) { local_1d18 = (uint *)PTR_DAT_1403440a0; } if ((int)uVar18 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if (uVar18 == 0) { FUN_14004eb70(&local_1d18); } else { uVar7 = uVar8; if ((local_1d18 != (uint *)0x0) && (local_1d18 != (uint *)PTR_DAT_1403440a0)) { uVar7 = local_1d18[-2]; } if (uVar18 != uVar7) { puVar11 = (uint *)FUN_14016d940((longlong)(int)uVar18 * 2 + 10); if (puVar11 != (uint *)0x0) { *puVar11 = 0; puVar11[1] = 1; } *puVar11 = uVar18; if ((local_1d18 != (uint *)0x0) && (local_1d18 != (uint *)PTR_DAT_1403440a0)) { uVar8 = local_1d18[-2]; } puVar16 = (uint *)PTR_DAT_1403440a0; if ((int)uVar18 < (int)uVar8) { LAB_1401a04fc: if (local_1d18 != (uint *)0x0) { puVar16 = local_1d18; } } else { uVar18 = uVar17; if (local_1d18 != (uint *)0x0) { if (local_1d18 != (uint *)PTR_DAT_1403440a0) { uVar18 = local_1d18[-2]; } goto LAB_1401a04fc; } } FUN_14016d770(puVar11 + 2,puVar16,uVar18); FUN_14004eb70(&local_1d18); local_1d18 = puVar11 + 2; } } } FUN_14004e850(&local_1d18); puVar11 = local_1d18; if (local_1d18 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_1403440a0; } FUN_14016d770(puVar11,L"Encrypt Error",uVar6); puVar11 = local_1d18; if (local_1d18 == (uint *)0x0) { puVar11 = (uint *)PTR_DAT_1403440a0; } uVar6 = FUN_14016d740(puVar11); uVar17 = 0; uVar18 = 0; if (0 < (int)uVar6) { uVar18 = uVar6; } uVar6 = uVar17; if ((local_1d18 != (uint *)0x0) && (local_1d18 != (uint *)PTR_DAT_1403440a0)) { uVar6 = local_1d18[-2]; } if (((int)uVar18 < (int)uVar6) || (uVar18 = uVar17, local_1d18 == (uint *)0x0)) { LAB_1401a059a: if (((local_1d18 != (uint *)PTR_DAT_1403440a0) && (local_1d18 != (uint *)0x0)) && (local_1d18 + -2 != (uint *)0x0)) { local_1d18[-2] = uVar18; *(undefined2 *)((longlong)local_1d18 + (longlong)(int)uVar18 * 2) = 0; } } else if (local_1d18 != (uint *)PTR_DAT_1403440a0) { uVar18 = local_1d18[-2]; goto LAB_1401a059a; } local_1cf0 = 0; local_1ce8 = 0; local_1ce0 = 0; local_1cd8 = 0; local_1cf8 = Proud::ByteArray::vftable; local_1d38 = &local_1cf8; uVar12 = FUN_140198f80(local_1bf0,5,local_1d20); (**(code **)(*param_1 + 0x80))(param_1,uVar12); FUN_14019a9e0(&local_1cf8); puVar11 = local_1d18; if (((local_1d18 != (uint *)0x0) && (local_1d18 != (uint *)PTR_DAT_1403440a0)) && (puVar16 = local_1d18 + -2, puVar16 != (uint *)0x0)) { uVar12 = FUN_14016d8c0(); local_1c30 = uVar12; FUN_14016db50(uVar12); local_1c28 = 1; puVar11 = puVar11 + -1; *puVar11 = *puVar11 - 1; if (*puVar11 == 0) { FUN_14016d970(puVar16); } FUN_14016dbe0(uVar12); local_1c28 = 0; } local_1d18 = (uint *)PTR_DAT_1403440a0; if (*param_3 == 1) { (**(code **)(*param_1 + 0xa8))(param_1,local_1d20); } param_2 = local_1cb0; iVar19 = (int)local_1d10; } else { FUN_14016b440(local_1bd8); FUN_14016b0c0(local_1bd8,local_1bb0,0x80); uVar12 = 0x24; if (*param_3 != 1) { uVar12 = 0x25; } FUN_14004eef0(local_1bd8,uVar12); FUN_14004eef0(local_1bd8,(char)param_3[9]); if (local_1c60 == 0) { iVar5 = local_1c50; if (local_1c58 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } } else { iVar5 = *(int *)(local_1c60 + 0x18); } FUN_14016cac0(local_1bd8,(longlong)iVar5); local_5c = 200; local_60 = 0; local_68 = local_ce8; local_cec = 200; local_cf0 = 0; local_cf8 = &local_1978; if (local_1bd0 == 0) { uVar2 = local_1bc0; if (local_1bc8 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } } else { uVar2 = *(undefined4 *)(local_1bd0 + 0x18); } lVar15 = local_1bc8; if (local_1bc8 == 0) { if (local_1bd0 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } lVar15 = 0; if (*(int *)(local_1bd0 + 0x18) != 0) { lVar15 = *(longlong *)(local_1bd0 + 0x10); } } local_cf0 = 1; local_1c10._0_4_ = (undefined4)lVar15; local_1c10._4_4_ = (undefined4)((ulonglong)lVar15 >> 0x20); local_1978 = (undefined4)local_1c10; uStack_1974 = local_1c10._4_4_; uStack_196c = uStack_1c04; local_1c10 = lVar15; uStack_1c08 = uVar2; iStack_1970 = uVar2; FUN_14016ded0(local_ce8,&local_1978); if (local_cf8 == (undefined4 *)0x0) { FUN_14016d300(&local_1cf8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_1cf8,(ThrowInfo *)&DAT_1403417f8); } if (local_cec < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_cec = 200; local_cf0 = 0; local_cf8 = &local_1978; if (local_1c60 == 0) { iVar5 = local_1c50; if (local_1c58 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } } else { iVar5 = *(int *)(local_1c60 + 0x18); } lVar15 = local_1c58; if (local_1c58 == 0) { if (local_1c60 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } lVar15 = 0; if (*(int *)(local_1c60 + 0x18) != 0) { lVar15 = *(longlong *)(local_1c60 + 0x10); } } local_cf0 = 1; local_1c00._0_4_ = (undefined4)lVar15; local_1c00._4_4_ = (undefined4)((ulonglong)lVar15 >> 0x20); local_1978 = (undefined4)local_1c00; uStack_1974 = local_1c00._4_4_; uStack_196c = uStack_1bf4; local_1c00 = lVar15; iStack_1bf8 = iVar5; iStack_1970 = iVar5; FUN_14016ded0(local_ce8,&local_1978); if (local_cf8 == (undefined4 *)0x0) { FUN_14016d300(&local_1cf8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_1cf8,(ThrowInfo *)&DAT_1403417f8); } if (local_cec < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_1d38 = (undefined ***)CONCAT44(local_1d38._4_4_,1); bVar3 = (**(code **)(*param_1 + 0x78))(param_1,local_ce8,param_3); if (local_68 == (undefined1 *)0x0) { FUN_14016d300(&local_1cf8,PTR_u_ArrayWithExternalBuffer_is_unini_1403440d0); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_1cf8,(ThrowInfo *)&DAT_1403417f8); } if (local_5c < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_60 = 0; local_1d10 = &local_1bd0; FUN_14016d0e0(&local_1bd0); if ((local_1bc8 != 0) && (local_1bbc < 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } } local_1d10 = &local_1c60; FUN_14016d0e0(&local_1c60); if (local_1c58 != 0) { if (local_1c4c < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_1c50 = 0; } local_1d10 = (longlong *)local_1c90; FUN_14016d0e0(local_1c90); if (local_1c88 != 0) { if (local_1c7c < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } local_1c80 = 0; } FUN_14016dbe0(uVar9); local_1c18 = 0; } } iVar19 = iVar19 + 1; local_1d10 = (longlong *)CONCAT44(local_1d10._4_4_,iVar19); lVar15 = (longlong)iVar19; } while (lVar15 < local_1b20); } FUN_14004eb70(&local_1d00); if (100 < local_1b18) { operator_delete__(local_1b28); } uVar14 = (ulonglong)bVar3; } return uVar14; }