/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14005be80 FUN_14005be80 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x00014005bf48) */ /* WARNING: Removing unreachable block (ram,0x00014005bf51) */ /* WARNING: Removing unreachable block (ram,0x00014005bf6f) */ /* WARNING: Removing unreachable block (ram,0x00014005bf78) */ /* WARNING: Removing unreachable block (ram,0x00014005c005) */ /* WARNING: Removing unreachable block (ram,0x00014005c00c) */ /* WARNING: Removing unreachable block (ram,0x00014005c014) */ /* WARNING: Removing unreachable block (ram,0x00014005c021) */ /* WARNING: Removing unreachable block (ram,0x00014005c019) */ /* WARNING: Removing unreachable block (ram,0x00014005c027) */ /* WARNING: Removing unreachable block (ram,0x00014005c038) */ /* WARNING: Removing unreachable block (ram,0x00014005c23a) */ void FUN_14005be80(longlong param_1,uint *param_2,ulonglong param_3,ulonglong param_4) { int iVar1; longlong *plVar2; LPVOID pvVar3; undefined8 uVar4; uint *puVar5; longlong lVar6; ulonglong uVar7; undefined ***pppuVar8; uint *puVar9; uint *puVar10; longlong lVar11; int iVar12; LPVOID pvVar13; ulonglong uVar14; uint uVar15; uint uVar16; ulonglong uVar17; ulonglong uVar18; uint uVar19; LPVOID pvVar20; undefined **local_e8; longlong *local_e0; LPVOID local_d8; ulonglong local_d0; undefined8 local_c8; undefined **local_b8; longlong local_b0; uint *local_a8; undefined8 local_a0; longlong local_98; uint local_90; undefined4 local_8c; undefined4 local_88; undefined4 local_84; undefined8 local_80; undefined8 local_78; undefined4 local_70; undefined8 local_68; undefined8 local_58; local_58 = 0xfffffffffffffffe; local_e8 = Proud::CFastArray::vftable; pvVar13 = (LPVOID)0x0; iVar12 = 0; local_e0 = (longlong *)0x0; local_d8 = (LPVOID)0x0; local_d0 = 0; local_c8 = 0; local_b8._0_1_ = 0; local_68 = 0; local_b0 = 0; local_a8 = (uint *)0x0; local_a0 = 0; local_90 = 0x11; local_98 = 0; local_70 = 0; local_8c = 0x3f400000; local_88 = 0x3e800000; local_84 = 0x40100000; puVar9 = (uint *)0x8000000000000000; local_80 = 0x26; pppuVar8 = (undefined ***)0x0; local_78 = 0; uVar16 = param_2[0x38]; uVar18 = param_3; uVar7 = param_4; pvVar20 = pvVar13; plVar2 = local_e0; do { uVar16 = uVar16 - 1; local_e0 = plVar2; if ((int)uVar16 < 0) { uVar14 = 0; puVar10 = (uint *)0x0; uVar17 = uVar14; if (0 < iVar12) { do { if (((longlong)uVar14 < 0) || (iVar12 <= (int)uVar17)) { /* WARNING: Subroutine does not return */ FUN_14002f5c0(pppuVar8,puVar9,uVar18,uVar7); } iVar1 = *(int *)((longlong)pvVar20 + uVar14 * 4); lVar11 = (longlong)iVar1; pppuVar8 = (undefined ***)(param_2 + 0x32); uVar16 = param_2[0x38]; lVar6 = (longlong)(int)uVar16; if ((iVar1 < 0) || ((int)uVar16 <= iVar1)) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } uVar19 = uVar16 - 1; if (iVar1 < (int)uVar19) { puVar9 = puVar10; puVar5 = puVar10; if (uVar16 != 0) { puVar9 = *(uint **)(param_2 + 0x36); puVar5 = *(uint **)(param_2 + 0x36); } uVar7 = lVar6 * 3; uVar18 = lVar11 * 3; *(undefined8 *)(puVar5 + lVar11 * 6) = *(undefined8 *)(puVar9 + lVar6 * 6 + -6); *(undefined8 *)(puVar5 + lVar11 * 6 + 2) = *(undefined8 *)(puVar9 + lVar6 * 6 + -4); *(undefined8 *)(puVar5 + lVar11 * 6 + 4) = *(undefined8 *)(puVar9 + lVar6 * 6 + -2); } puVar9 = (uint *)(ulonglong)uVar19; FUN_14003e6b0((longlong)pppuVar8,uVar19,uVar18,uVar7); uVar16 = (int)uVar17 + 1; uVar14 = uVar14 + 1; uVar17 = (ulonglong)uVar16; } while ((int)uVar16 < iVar12); } puVar9 = local_a8; if (local_98 == 0) { puVar9 = puVar10; } for (; puVar9 != (uint *)0x0; puVar9 = *(uint **)(puVar9 + 2)) { uVar16 = *puVar9; uVar7 = FUN_1400a17b0((longlong)(param_2 + 0x32),uVar16); if ((char)uVar7 == '\0') { FUN_14005bc30(param_1,(ulonglong)*param_2,(ulonglong)uVar16,param_4 & 0xffffffff); } } FUN_140043b40((char *)&local_b8); if (pvVar20 != (LPVOID)0x0) { if (plVar2 == (longlong *)0x0) { FUN_1400302f0(pvVar20); } else { (**(code **)(*plVar2 + 0x18))(plVar2,pvVar20); } } return; } if (((int)uVar16 < 0) || ((int)param_2[0x38] <= (int)uVar16)) { /* WARNING: Subroutine does not return */ FUN_14002f5c0(pppuVar8,puVar9,uVar18,uVar7); } pppuVar8 = (undefined ***)((longlong)(int)uVar16 * 3); puVar10 = (uint *)(*(longlong *)(param_2 + 0x36) + (longlong)(int)uVar16 * 0x18); if ((*puVar10 == (uint)uVar18) || (puVar10[1] == (uint)uVar18)) { iVar12 = (int)pvVar13; if (iVar12 < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } pppuVar8 = &local_e8; FUN_14002d430((longlong)pppuVar8,iVar12 + 1,uVar18,uVar7); pvVar20 = local_d8; pvVar13 = (LPVOID)(local_d0 & 0xffffffff); pvVar3 = local_d8; if ((int)local_d0 == 0) { pvVar3 = (LPVOID)0x0; } *(uint *)((longlong)pvVar3 + (longlong)iVar12 * 4) = uVar16; uVar19 = *puVar10; uVar7 = (ulonglong)local_90; if (local_b0 != 0) { pppuVar8 = *(undefined ****)(local_b0 + ((ulonglong)uVar19 % uVar7) * 8); while ((pppuVar8 != (undefined ***)0x0 && (puVar9 = (uint *)((ulonglong)*(uint *)(pppuVar8 + 3) % uVar7), (int)((ulonglong)uVar19 % uVar7) == (int)puVar9))) { if (*(uint *)pppuVar8 == uVar19) goto LAB_14005c100; pppuVar8 = (undefined ***)pppuVar8[1]; } } uVar15 = (uint)((ulonglong)uVar19 % uVar7); if (local_b0 == 0) { uVar4 = FUN_14003f710((longlong)&local_b8,local_90,'\x01'); if ((char)uVar4 == '\0') { /* WARNING: Subroutine does not return */ FUN_14000b450(0x8007000e); } } else { puVar5 = *(uint **)(local_b0 + ((ulonglong)uVar19 % uVar7) * 8); while ((puVar5 != (uint *)0x0 && (uVar15 == (uint)(uint *)((ulonglong)puVar5[6] % uVar7)))) { puVar9 = (uint *)((ulonglong)puVar5[6] % uVar7); if (*puVar5 == uVar19) goto LAB_14005c0f8; puVar5 = *(uint **)(puVar5 + 2); } } FUN_14003f000((char *)&local_b8); uVar7 = (ulonglong)uVar19; puVar5 = FUN_140041130((char *)&local_b8,puVar10,uVar15,uVar19); pppuVar8 = &local_b8; FUN_14003f000((char *)pppuVar8); puVar9 = puVar10; LAB_14005c0f8: *(undefined1 *)(puVar5 + 1) = 0; LAB_14005c100: uVar18 = param_3 & 0xffffffff; } iVar12 = (int)pvVar13; plVar2 = local_e0; } while( true ); }