63 lines
2.2 KiB
C
63 lines
2.2 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400c26d0 FUN_1400c26d0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1400c26d0(longlong param_1,longlong param_2,char *param_3,undefined8 param_4)
|
|
|
|
{
|
|
byte bVar1;
|
|
uint uVar2;
|
|
undefined8 uVar3;
|
|
longlong *plVar4;
|
|
uint *puVar5;
|
|
int iVar6;
|
|
char *pcVar7;
|
|
byte local_res20;
|
|
uint local_a0 [2];
|
|
uint *local_98;
|
|
uint local_90;
|
|
undefined8 local_20;
|
|
|
|
local_20 = 0xfffffffffffffffe;
|
|
local_98 = (uint *)(param_2 + 8);
|
|
uVar2 = (int)(*local_98 + ((int)*local_98 >> 0x1f & 7U)) >> 3;
|
|
pcVar7 = param_3;
|
|
if (uVar2 != 0) {
|
|
param_4 = 2;
|
|
pcVar7 = "Proud::CNetThreads_S::UserWorkerThread_FinalReceiveRmi";
|
|
FUN_14009b0d0(*(longlong **)(param_1 + 0x148),(wchar_t *)0x0,
|
|
"Proud::CNetThreads_S::UserWorkerThread_FinalReceiveRmi",2);
|
|
}
|
|
local_res20 = 0;
|
|
iVar6 = 0;
|
|
local_a0[0] = 0;
|
|
puVar5 = local_a0;
|
|
uVar3 = FUN_1400bd2e0(local_98,puVar5,pcVar7,param_4);
|
|
if ((char)uVar3 != '\0') {
|
|
local_90 = *(uint *)(*(longlong *)(param_1 + 0x148) + 0x48);
|
|
plVar4 = (longlong *)(ulonglong)local_90;
|
|
for (; iVar6 < (int)local_90; iVar6 = iVar6 + 1) {
|
|
if ((iVar6 < 0) || (*(int *)(*(longlong *)(param_1 + 0x148) + 0x48) <= iVar6)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be30(plVar4,puVar5,pcVar7,param_4);
|
|
}
|
|
plVar4 = *(longlong **)
|
|
(*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x40) + (longlong)iVar6 * 8);
|
|
FUN_1400bc600((int *)local_98,(ulonglong)uVar2,pcVar7,param_4);
|
|
puVar5 = (uint *)(param_2 + 8);
|
|
pcVar7 = param_3;
|
|
bVar1 = (**(code **)(*plVar4 + 0x10))();
|
|
local_res20 = local_res20 | bVar1;
|
|
}
|
|
if (local_res20 == 0) {
|
|
FUN_1400bc600((int *)local_98,(ulonglong)uVar2,pcVar7,param_4);
|
|
if (*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x758) != 0) {
|
|
plVar4 = *(longlong **)(*(longlong *)(param_1 + 0x148) + 0x758);
|
|
(**(code **)(*plVar4 + 0x28))(plVar4,local_a0[0]);
|
|
}
|
|
}
|
|
FUN_1400dee00((undefined8 *)(param_1 + 0x160),*(undefined4 *)(param_2 + 0x30),'\0',param_4);
|
|
}
|
|
return;
|
|
}
|
|
|