174 lines
6.4 KiB
C
174 lines
6.4 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14007a720 FUN_14007a720
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14007a720(longlong *param_1,undefined8 param_2,undefined8 param_3,ulonglong param_4)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
undefined8 *puVar2;
|
|
longlong lVar3;
|
|
longlong *plVar4;
|
|
undefined ***pppuVar5;
|
|
longlong local_res10 [2];
|
|
longlong *local_res20;
|
|
undefined **local_70;
|
|
undefined8 local_68;
|
|
undefined8 local_60;
|
|
undefined8 local_58;
|
|
undefined8 local_50;
|
|
|
|
*param_1 = (longlong)Proud::CNetClientImpl::vftable;
|
|
param_1[0xc] = (longlong)Proud::CNetClientImpl::vftable;
|
|
param_1[0xd] = (longlong)Proud::CNetClientImpl::vftable;
|
|
plVar4 = param_1 + 0xe;
|
|
*plVar4 = (longlong)Proud::CNetClientImpl::vftable;
|
|
param_1[0xf] = (longlong)Proud::CNetClientImpl::vftable;
|
|
param_1[0x11] = (longlong)Proud::CNetClientImpl::vftable;
|
|
param_1[0x12] = (longlong)Proud::CNetClientImpl::vftable;
|
|
param_1[0x13] = (longlong)Proud::CNetClientImpl::vftable;
|
|
lVar3 = 0;
|
|
local_68 = 0;
|
|
local_60 = 0;
|
|
local_58 = 0;
|
|
local_50 = 0;
|
|
local_70 = Proud::ByteArray::vftable;
|
|
pppuVar5 = &local_70;
|
|
(**(code **)(*plVar4 + 0x80))(plVar4,DAT_140155130,pppuVar5,param_4,0xfffffffffffffffe);
|
|
FUN_14003b870(&local_70);
|
|
FUN_140082b70((longlong)param_1,param_2,pppuVar5,param_4);
|
|
if (param_1[0xbb] != 0) {
|
|
lVar3 = *(longlong *)(param_1[0xbb] + 0x38);
|
|
}
|
|
FUN_14002e6e0((int *)(lVar3 + 0x10));
|
|
FUN_140079500((char *)(param_1 + 0xbc));
|
|
local_res10[0] = 0;
|
|
plVar4 = local_res10;
|
|
FUN_140066470(param_1 + 0x2ae,plVar4);
|
|
FUN_140079ca0(param_1 + 700,plVar4,pppuVar5,param_4);
|
|
FUN_140079ca0(param_1 + 0x2c0,plVar4,pppuVar5,param_4);
|
|
FUN_140072110(param_1 + 0x2e0);
|
|
FUN_1400722e0(param_1 + 0x2a6);
|
|
FUN_1400722e0(param_1 + 0xdc);
|
|
FUN_140073c80((char *)(param_1 + 0x2ca));
|
|
local_res10[1] = 0;
|
|
plVar4 = local_res10 + 1;
|
|
FUN_1400ad4b0(param_1 + 0x2a4,plVar4);
|
|
if ((longlong *)param_1[0x16] != (longlong *)0x0) {
|
|
plVar4 = param_1;
|
|
FUN_1400642a0((longlong *)param_1[0x16],(longlong)param_1,pppuVar5,param_4);
|
|
}
|
|
FUN_14002e770(lVar3 + 0x10);
|
|
if ((undefined8 *)param_1[0xb] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0xb])();
|
|
}
|
|
param_1[0xb] = 0;
|
|
FUN_140085260(param_1 + 0x307);
|
|
FUN_140081fe0(param_1 + 0x303);
|
|
FUN_140085260(param_1 + 0x2fe);
|
|
FUN_140081fe0(param_1 + 0x2fa);
|
|
FUN_140072380(param_1 + 0x2f6,plVar4,pppuVar5,param_4);
|
|
if ((undefined8 *)param_1[0x2f6] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0x2f6])();
|
|
}
|
|
FUN_1400757f0((char *)(param_1 + 0x2e4));
|
|
FUN_140072110(param_1 + 0x2e0);
|
|
if ((undefined8 *)param_1[0x2e0] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0x2e0])();
|
|
}
|
|
FUN_1400757f0((char *)(param_1 + 0x2d5));
|
|
FUN_1400757f0((char *)(param_1 + 0x2ca));
|
|
FUN_140079ca0(param_1 + 0x2c0,plVar4,pppuVar5,param_4);
|
|
if ((undefined8 *)param_1[0x2c0] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0x2c0])();
|
|
}
|
|
FUN_140079ca0(param_1 + 700,plVar4,pppuVar5,param_4);
|
|
if ((undefined8 *)param_1[700] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[700])();
|
|
}
|
|
if ((param_1[699] != 0) &&
|
|
(*(longlong *)(param_1[699] + 8) = *(longlong *)(param_1[699] + 8) + -1,
|
|
*(longlong *)(param_1[699] + 8) == 0)) {
|
|
plVar1 = (longlong *)param_1[699];
|
|
puVar2 = (undefined8 *)*plVar1;
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(**(code **)*puVar2)();
|
|
}
|
|
FUN_1400302f0(plVar1);
|
|
}
|
|
local_res20 = param_1 + 0x2b1;
|
|
FUN_14003b870(param_1 + 0x2b5);
|
|
FUN_140003240(param_1 + 0x2b1,plVar4,pppuVar5,param_4);
|
|
if ((param_1[0x2ae] != 0) &&
|
|
(*(longlong *)(param_1[0x2ae] + 8) = *(longlong *)(param_1[0x2ae] + 8) + -1,
|
|
*(longlong *)(param_1[0x2ae] + 8) == 0)) {
|
|
puVar2 = (undefined8 *)param_1[0x2ae];
|
|
operator_delete((void *)*puVar2);
|
|
FUN_1400302f0(puVar2);
|
|
}
|
|
param_1[0x2ac] = 0;
|
|
param_1[0x2ab] = (longlong)Proud::IP2PGroupMember::vftable;
|
|
param_1[0x2aa] = (longlong)Proud::ISendDest_C::vftable;
|
|
FUN_1400722e0(param_1 + 0x2a6);
|
|
if ((undefined8 *)param_1[0x2a6] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0x2a6])();
|
|
}
|
|
if ((param_1[0x2a4] != 0) &&
|
|
(*(longlong *)(param_1[0x2a4] + 8) = *(longlong *)(param_1[0x2a4] + 8) + -1,
|
|
*(longlong *)(param_1[0x2a4] + 8) == 0)) {
|
|
plVar1 = (longlong *)param_1[0x2a4];
|
|
puVar2 = (undefined8 *)*plVar1;
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(**(code **)*puVar2)();
|
|
}
|
|
FUN_1400302f0(plVar1);
|
|
}
|
|
FUN_140039bf0(param_1 + 0x161,plVar4,pppuVar5,param_4);
|
|
FUN_14003b870(param_1 + 0x15b);
|
|
FUN_1400722e0(param_1 + 0xdc);
|
|
if ((undefined8 *)param_1[0xdc] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0xdc])();
|
|
}
|
|
FUN_140079860((char *)(param_1 + 0xbc));
|
|
FUN_140066060(param_1 + 0xbb,plVar4,pppuVar5,param_4);
|
|
if ((param_1[0xba] != 0) &&
|
|
(*(longlong *)(param_1[0xba] + 8) = *(longlong *)(param_1[0xba] + 8) + -1,
|
|
*(longlong *)(param_1[0xba] + 8) == 0)) {
|
|
puVar2 = (undefined8 *)param_1[0xba];
|
|
plVar1 = (longlong *)*puVar2;
|
|
if (plVar1 != (longlong *)0x0) {
|
|
FUN_1400a4dc0(plVar1,plVar4,(ulonglong)pppuVar5,param_4);
|
|
operator_delete(plVar1);
|
|
}
|
|
FUN_1400302f0(puVar2);
|
|
}
|
|
FUN_14002e7a0((undefined4 *)(param_1 + 0xa3),plVar4,pppuVar5,param_4);
|
|
if ((undefined8 *)param_1[0x9c] != (undefined8 *)0x0) {
|
|
plVar4 = (longlong *)0x1;
|
|
(*(code *)**(undefined8 **)param_1[0x9c])();
|
|
}
|
|
FUN_14003b870(param_1 + 0x95);
|
|
param_1[0x13] = (longlong)Proud::IVizAgentDg::vftable;
|
|
if ((longlong *)param_1[0x16] != (longlong *)0x0) {
|
|
plVar4 = param_1;
|
|
FUN_1400642a0((longlong *)param_1[0x16],(longlong)param_1,pppuVar5,param_4);
|
|
}
|
|
param_1[0x12] = (longlong)Proud::IUdpPacketFragBoardDg::vftable;
|
|
param_1[0x11] = (longlong)Proud::IUdpPacketDefragBoardDg::vftable;
|
|
param_1[0xf] = (longlong)Proud::IFastSocketDelegate::vftable;
|
|
param_1[0xe] = (longlong)Proud::IRmiHost::vftable;
|
|
param_1[0xd] = (longlong)Proud::IP2PGroupMember::vftable;
|
|
param_1[0xc] = (longlong)Proud::ISendDest_C::vftable;
|
|
FUN_140082810(param_1,plVar4,pppuVar5,param_4);
|
|
return;
|
|
}
|
|
|