193 lines
5.8 KiB
C
193 lines
5.8 KiB
C
/* 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;
|
|
}
|
|
|