98 lines
3.1 KiB
C
98 lines
3.1 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14004d2b0 FUN_14004d2b0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_14004d2b0(longlong param_1,wchar_t *param_2,longlong param_3,longlong param_4)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined4 uVar2;
|
|
int iVar3;
|
|
longlong lVar4;
|
|
undefined8 *puVar5;
|
|
undefined8 uVar6;
|
|
longlong *plVar7;
|
|
int *piVar8;
|
|
undefined8 *puVar9;
|
|
longlong lVar10;
|
|
longlong lVar11;
|
|
wchar_t *pwVar12;
|
|
longlong lVar13;
|
|
longlong lVar14;
|
|
longlong lVar15;
|
|
int iVar16;
|
|
longlong lVar17;
|
|
int iVar18;
|
|
undefined4 uStack_3c;
|
|
|
|
pwVar12 = param_2;
|
|
piVar8 = (int *)(**(code **)(*(longlong *)(param_1 + -0xa8) + 0x58))(param_1 + -0xa8);
|
|
FUN_14002e6e0(piVar8);
|
|
if (DAT_14015bfcf != '\0') {
|
|
param_3 = *(longlong *)(param_1 + -0xa8);
|
|
pwVar12 = L"Proud::CNetServerImpl::GetNetWorkerThreadInfo";
|
|
(**(code **)(param_3 + 200))(param_1 + -0xa8);
|
|
}
|
|
lVar4 = *(longlong *)(param_1 + 0x338);
|
|
iVar18 = 0;
|
|
uVar1 = *(uint *)(lVar4 + 0x50);
|
|
lVar14 = 0;
|
|
if (0 < (int)uVar1) {
|
|
do {
|
|
if ((lVar14 < 0) || ((int)uVar1 <= iVar18)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f5c0((ulonglong)uVar1,pwVar12,param_3,param_4);
|
|
}
|
|
lVar13 = *(longlong *)(lVar4 + 0x48);
|
|
puVar5 = *(undefined8 **)(lVar13 + lVar14 * 8);
|
|
puVar9 = (undefined8 *)0x0;
|
|
if (puVar5 != (undefined8 *)0x0) {
|
|
puVar9 = (undefined8 *)*puVar5;
|
|
}
|
|
uVar6 = *puVar9;
|
|
if ((int)uVar1 <= iVar18) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f5c0((ulonglong)uVar1,lVar13,param_3,param_4);
|
|
}
|
|
plVar7 = *(longlong **)(lVar13 + lVar14 * 8);
|
|
if (plVar7 == (longlong *)0x0) {
|
|
lVar13 = 0;
|
|
}
|
|
else {
|
|
lVar13 = *plVar7;
|
|
}
|
|
uVar2 = *(undefined4 *)(lVar13 + 8);
|
|
iVar3 = *(int *)(param_2 + 0xc);
|
|
lVar13 = (longlong)iVar3;
|
|
if (iVar3 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14002f590();
|
|
}
|
|
iVar16 = *(int *)(param_2 + 0xc);
|
|
uVar1 = iVar16 + 1;
|
|
pwVar12 = (wchar_t *)(ulonglong)uVar1;
|
|
FUN_14003f800((longlong)param_2,uVar1,param_3,param_4);
|
|
iVar16 = iVar16 - iVar3;
|
|
if ((0 < iVar16) && (iVar16 = iVar16 + -1, lVar15 = (longlong)iVar16, -1 < iVar16)) {
|
|
lVar17 = (lVar15 + 1 + lVar13) * 0x10;
|
|
do {
|
|
lVar10 = FUN_14003d690((longlong)param_2);
|
|
lVar11 = FUN_14003d690((longlong)param_2);
|
|
*(undefined8 *)(lVar11 + lVar17) = *(undefined8 *)(lVar10 + -0x10 + lVar17);
|
|
*(undefined8 *)(lVar11 + 8 + lVar17) = *(undefined8 *)(lVar10 + -8 + lVar17);
|
|
lVar17 = lVar17 + -0x10;
|
|
lVar15 = lVar15 + -1;
|
|
} while (-1 < lVar15);
|
|
}
|
|
lVar15 = FUN_14003d690((longlong)param_2);
|
|
*(ulonglong *)(lVar15 + lVar13 * 0x10) = CONCAT44(uStack_3c,uVar2);
|
|
*(undefined8 *)(lVar15 + 8 + lVar13 * 0x10) = uVar6;
|
|
iVar18 = iVar18 + 1;
|
|
lVar14 = lVar14 + 1;
|
|
uVar1 = *(uint *)(lVar4 + 0x50);
|
|
} while (iVar18 < (int)uVar1);
|
|
}
|
|
FUN_14002e770((longlong)piVar8);
|
|
return;
|
|
}
|
|
|