/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400054f0 FUN_1400054f0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400054f0(longlong param_1,double param_2,undefined8 param_3,ulonglong param_4) { int iVar1; int *piVar2; int *piVar3; longlong lVar4; undefined8 **ppuVar5; int **ppiVar6; _SYSTEMTIME *p_Var7; undefined8 uVar8; undefined8 uVar9; ulonglong uVar10; undefined8 uVar11; undefined8 uVar12; int *piVar13; int *piVar14; int iVar15; int *piVar16; uint uVar17; int *piVar18; int iVar19; uint uVar20; uint uVar21; undefined1 auStackY_138 [32]; undefined8 *local_f0; undefined8 local_e8; int *local_e0; undefined8 local_d8; undefined8 *local_d0; undefined8 local_c8; int *local_c0; undefined8 local_b8; int *local_b0; int *local_a8; undefined8 local_a0; undefined8 *local_90; undefined8 local_88; undefined8 *local_80; undefined8 local_78; undefined8 *local_70; undefined8 local_68; undefined8 local_60; _SYSTEMTIME local_58; ulonglong local_48; local_60 = 0xfffffffffffffffe; local_48 = DAT_14016f5a0 ^ (ulonglong)auStackY_138; if (20.0 <= param_2 - *(double *)(param_1 + 0x88)) { local_b0 = (int *)0x0; local_a8 = (int *)0x0; local_a0 = 0; FUN_140039a40(DAT_14017cf20,(longlong *)&local_b0); piVar14 = local_b0; if (local_b0 != local_a8) { do { piVar18 = (int *)0x0; iVar1 = *piVar14; uVar20 = 0; if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) { local_70 = (undefined8 *)0x0; local_68 = 0; ppuVar5 = &local_70; } else { local_f0 = *(undefined8 **)(DAT_14017cf20 + 0x68); if (local_f0 == (undefined8 *)0x0) { local_e8 = 0; } else { local_e8 = *local_f0; } ppuVar5 = &local_f0; } piVar13 = (int *)*ppuVar5; piVar3 = (int *)ppuVar5[1]; piVar16 = piVar18; uVar21 = uVar20; while (piVar3 != (int *)0x0) { piVar2 = *(int **)(piVar3 + 4); if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\b')) { piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]); } uVar21 = (uint)piVar16; piVar3 = *(int **)piVar3; while (piVar3 == (int *)0x0) { piVar13 = piVar13 + 2; piVar3 = *(int **)piVar13; } if (piVar13 == piVar3) { piVar3 = piVar18; } } if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) { local_80 = (undefined8 *)0x0; local_78 = 0; ppuVar5 = &local_80; } else { local_90 = *(undefined8 **)(DAT_14017cf20 + 0x68); if (local_90 == (undefined8 *)0x0) { local_88 = 0; } else { local_88 = *local_90; } ppuVar5 = &local_90; } piVar13 = (int *)*ppuVar5; piVar3 = (int *)ppuVar5[1]; piVar16 = piVar18; while (piVar3 != (int *)0x0) { piVar2 = *(int **)(piVar3 + 4); if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x01')) { piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]); } uVar20 = (uint)piVar16; piVar3 = *(int **)piVar3; while (piVar3 == (int *)0x0) { piVar13 = piVar13 + 2; piVar3 = *(int **)piVar13; } if (piVar13 == piVar3) { piVar3 = piVar18; } } if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) { local_e0 = (int *)0x0; local_d8 = 0; ppiVar6 = &local_e0; } else { local_c0 = *(int **)(DAT_14017cf20 + 0x68); if (local_c0 == (int *)0x0) { local_b8 = 0; } else { local_b8 = *(undefined8 *)local_c0; } ppiVar6 = &local_c0; } piVar13 = *ppiVar6; piVar3 = ppiVar6[1]; piVar16 = piVar18; while (iVar19 = (int)piVar16, piVar3 != (int *)0x0) { piVar2 = *(int **)(piVar3 + 4); if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x02')) { piVar16 = (int *)(ulonglong)(uint)(iVar19 + piVar2[0x2e]); } piVar3 = *(int **)piVar3; while (piVar3 == (int *)0x0) { piVar13 = piVar13 + 2; piVar3 = *(int **)piVar13; } if (piVar13 == piVar3) { piVar3 = piVar18; } } iVar15 = 0; if (*(longlong *)(DAT_14017cf20 + 0x58) == 0) { local_58.wYear = 0; local_58.wMonth = 0; local_58.wDayOfWeek = 0; local_58.wDay = 0; local_58.wHour = 0; local_58.wMinute = 0; local_58.wSecond = 0; local_58.wMilliseconds = 0; p_Var7 = &local_58; } else { local_d0 = *(undefined8 **)(DAT_14017cf20 + 0x68); if (local_d0 == (undefined8 *)0x0) { local_c8._0_2_ = 0; local_c8._2_2_ = 0; local_c8._4_2_ = 0; local_c8._6_2_ = 0; } else { local_c8 = *local_d0; } p_Var7 = (_SYSTEMTIME *)&local_d0; } piVar13 = *(int **)p_Var7; piVar3 = *(int **)&p_Var7->wHour; piVar16 = piVar18; while (piVar3 != (int *)0x0) { piVar2 = *(int **)(piVar3 + 4); if (((piVar2 != (int *)0x0) && (*piVar2 == iVar1)) && ((char)piVar2[3] == '\x03')) { piVar16 = (int *)(ulonglong)(uint)((int)piVar16 + piVar2[0x2e]); } iVar15 = (int)piVar16; piVar3 = *(int **)piVar3; while (piVar3 == (int *)0x0) { piVar13 = piVar13 + 2; piVar3 = *(int **)piVar13; } if (piVar13 == piVar3) { piVar3 = piVar18; } } uVar17 = iVar15 + iVar19 + uVar20 + uVar21; if (*(char *)(DAT_14017cf28 + 0x180) != '\0') { FUN_14000d4a0(param_1,iVar1,(ulonglong)uVar17,param_4); if (*(longlong *)(param_1 + 0x70) != 0) { param_4 = (ulonglong)uVar20; FUN_14000b1c0(*(longlong *)(param_1 + 0x70),iVar1,uVar21,param_4,iVar19,iVar15,uVar17); } } piVar14 = piVar14 + 1; } while (piVar14 != local_a8); } *(double *)(param_1 + 0x88) = param_2; if (local_b0 != (int *)0x0) { operator_delete(local_b0); } } if (5.0 <= param_2 - *(double *)(param_1 + 0x90)) { *(double *)(param_1 + 0x90) = param_2; FUN_140039230(DAT_14017cf20); } if (*(char *)(DAT_14017cf28 + 0x180) != '\0') { GetLocalTime(&local_58); lVar4 = DAT_14017cf48; if (*(uint *)(param_1 + 0x98) != (uint)local_58.wHour) { if (*(uint *)(param_1 + 0x98) != 0xffffffff) { piVar14 = (int *)(DAT_14017cf48 + 0x48); local_e0 = piVar14; FUN_14003d040(piVar14); local_d8 = CONCAT71(local_d8._1_7_,1); uVar8 = FUN_14000bf50(lVar4,0); uVar9 = FUN_14000bf50(lVar4,1); uVar10 = FUN_14000bf50(lVar4,2); uVar11 = FUN_14000bf50(lVar4,3); uVar12 = FUN_14000bf50(lVar4,4); local_f0 = (undefined8 *)FUN_14000bf50(lVar4,5); FUN_14003d0d0((longlong)piVar14); lVar4 = DAT_14017cf48; FUN_14003d040((int *)(DAT_14017cf48 + 0x48)); FUN_14003b460((undefined8 *)(lVar4 + 8)); FUN_14003d0d0(lVar4 + 0x48); if (*(longlong *)(param_1 + 0x70) != 0) { FUN_14000b980(*(longlong *)(param_1 + 0x70),(int)uVar8,(int)uVar9,uVar10 & 0xffffffff, (int)uVar12,(int)local_f0,(int)uVar11); } } *(uint *)(param_1 + 0x98) = (uint)local_58.wHour; } } return; }