/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400c01b0 FUN_1400c01b0 * Pseudocode, not original source. */ longlong * FUN_1400c01b0(longlong *param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { undefined8 *puVar1; char *pcVar2; char *pcVar3; undefined8 *puVar4; ulonglong uVar5; longlong *plVar6; char **ppcVar7; undefined8 **ppuVar8; longlong *plVar9; longlong *plVar10; char *local_res10; undefined8 *local_res18; undefined8 *local_res20; *param_1 = (longlong)Proud::CSendSpeedMeasurer::vftable; param_1[1] = (longlong)Proud::CSendSpeedMeasurer::vftable; param_1[2] = (longlong)Proud::CSendSpeedMeasurer::vftable; plVar9 = (longlong *)0x0; param_1[3] = 0; param_1[4] = 0; param_1[0x61] = 0; uVar5 = FUN_14002e790(); plVar10 = (longlong *)CONCAT71((int7)((ulonglong)param_3 >> 8),1); FUN_14002e600((undefined4 *)(param_1 + 0x62),uVar5 & 0xffffffff,plVar10,param_4); param_1[0x69] = 0; FUN_14003a340((undefined2 *)(param_1 + 0x71)); local_res10 = operator_new(0xa8); plVar6 = plVar9; if (local_res10 != (char *)0x0) { plVar10 = (longlong *)CONCAT71((int7)((ulonglong)plVar10 >> 8),1); plVar6 = (longlong *)FUN_140039670(local_res10,param_1 + 1,plVar10,param_4); } param_1[0x61] = (longlong)plVar6; *(undefined1 *)(param_1 + 9) = 0; param_1[0x76] = param_2; *(undefined1 *)(param_1 + 0x70) = 1; *(undefined1 *)(param_1 + 0x58) = 0; *(undefined1 *)(param_1 + 0x60) = 0; local_res10 = (char *)FUN_140030280(0x400); plVar6 = plVar9; if (local_res10 != (char *)0x0) { plVar10 = param_1; plVar6 = FUN_140035990((undefined8 *)local_res10,1,param_1,param_4); } if (plVar6 == (longlong *)0x0) { local_res10 = (char *)0x0; } else { local_res10 = (char *)FUN_140030280(0x10); local_res10[8] = '\x01'; local_res10[9] = '\0'; local_res10[10] = '\0'; local_res10[0xb] = '\0'; local_res10[0xc] = '\0'; local_res10[0xd] = '\0'; local_res10[0xe] = '\0'; local_res10[0xf] = '\0'; *(longlong **)local_res10 = plVar6; } pcVar2 = local_res10; ppcVar7 = &local_res10; FUN_140031f40(param_1 + 3,(longlong *)ppcVar7); pcVar3 = local_res10; if (pcVar2 != (char *)0x0) { plVar6 = (longlong *)(pcVar2 + 8); *plVar6 = *plVar6 + -1; if (*plVar6 == 0) { plVar6 = *(longlong **)local_res10; if (plVar6 != (longlong *)0x0) { FUN_1400358a0(plVar6,ppcVar7,plVar10,param_4); FUN_1400302f0(plVar6); } FUN_1400302f0(pcVar3); } } plVar6 = plVar9; if ((undefined8 *)param_1[3] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[3]; } FUN_140037510((longlong)plVar6,ppcVar7,plVar10,param_4); plVar6 = plVar9; if ((undefined8 *)param_1[3] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[3]; } FUN_1400369e0((longlong)plVar6,0); plVar6 = plVar9; if ((undefined8 *)param_1[3] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[3]; } FUN_140036c90((longlong)plVar6,4); local_res18 = (undefined8 *)FUN_140030280(0x400); plVar6 = plVar9; if (local_res18 != (undefined8 *)0x0) { plVar10 = param_1; plVar6 = FUN_140035990(local_res18,2,param_1,param_4); } if (plVar6 == (longlong *)0x0) { local_res18 = (undefined8 *)0x0; } else { local_res18 = (undefined8 *)FUN_140030280(0x10); local_res18[1] = 1; *local_res18 = plVar6; } puVar1 = local_res18; ppuVar8 = &local_res18; FUN_140031f40(param_1 + 4,(longlong *)ppuVar8); puVar4 = local_res18; if (puVar1 != (undefined8 *)0x0) { plVar6 = puVar1 + 1; *plVar6 = *plVar6 + -1; if (*plVar6 == 0) { plVar6 = (longlong *)*local_res18; if (plVar6 != (longlong *)0x0) { FUN_1400358a0(plVar6,ppuVar8,plVar10,param_4); FUN_1400302f0(plVar6); } FUN_1400302f0(puVar4); } } plVar6 = plVar9; if ((undefined8 *)param_1[4] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[4]; } FUN_140037510((longlong)plVar6,ppuVar8,plVar10,param_4); plVar6 = plVar9; if ((undefined8 *)param_1[3] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[3]; } FUN_140034b90((longlong)plVar6,param_1 + 2,plVar10,param_4); plVar6 = plVar9; if ((undefined8 *)param_1[3] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[3]; } FUN_140039a80(param_1[0x61],plVar6,plVar10,param_4); plVar6 = plVar9; if ((undefined8 *)param_1[4] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[4]; } FUN_140034b90((longlong)plVar6,param_1 + 2,plVar10,param_4); plVar6 = plVar9; if ((undefined8 *)param_1[4] != (undefined8 *)0x0) { plVar6 = *(longlong **)param_1[4]; } FUN_140039a80(param_1[0x61],plVar6,plVar10,param_4); param_1[5] = 0; *(undefined1 *)(param_1 + 6) = 0; param_1[8] = 0; FUN_14003a390((char *)(param_1 + 0x71)); local_res20 = operator_new(0x28); plVar6 = plVar9; if (local_res20 != (undefined8 *)0x0) { plVar10 = param_1; plVar6 = FUN_140037560(local_res20,FUN_1400c0180,param_1); } if (plVar6 == (longlong *)0x0) { local_res20 = (undefined8 *)0x0; } else { local_res20 = (undefined8 *)FUN_140030280(0x10); local_res20[1] = 1; *local_res20 = plVar6; } puVar1 = local_res20; ppuVar8 = &local_res20; FUN_140086730(param_1 + 0x69,(longlong *)ppuVar8); puVar4 = local_res20; if (puVar1 != (undefined8 *)0x0) { plVar6 = puVar1 + 1; *plVar6 = *plVar6 + -1; if (*plVar6 == 0) { puVar1 = (undefined8 *)*local_res20; if (puVar1 != (undefined8 *)0x0) { FUN_140037670(puVar1); operator_delete(puVar1); } FUN_1400302f0(puVar4); } } if ((undefined8 *)param_1[0x69] != (undefined8 *)0x0) { plVar9 = *(longlong **)param_1[0x69]; } FUN_140037760(plVar9,ppuVar8,plVar10,param_4); return param_1; }