decomp DBCServer_Release and inspect/document database
This commit is contained in:
parent
4b267cbe05
commit
7834b98bf0
28222 changed files with 843300 additions and 144 deletions
101
decomp/MessageServer_Release_x64/full/functions/0x140093f40.c
Normal file
101
decomp/MessageServer_Release_x64/full/functions/0x140093f40.c
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x140093f40 FUN_140093f40
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
undefined4
|
||||
FUN_140093f40(longlong param_1,uint param_2,TypeDescriptor *param_3,TypeDescriptor *param_4)
|
||||
|
||||
{
|
||||
uint uVar1;
|
||||
uint uVar2;
|
||||
undefined4 uVar3;
|
||||
LPVOID pvVar4;
|
||||
int *piVar5;
|
||||
longlong *plVar6;
|
||||
longlong *plVar7;
|
||||
undefined8 **ppuVar8;
|
||||
uint *puVar9;
|
||||
longlong lVar10;
|
||||
uint uVar11;
|
||||
ulonglong uVar12;
|
||||
TypeDescriptor *pTVar13;
|
||||
longlong lVar14;
|
||||
int iVar15;
|
||||
uint *puVar16;
|
||||
undefined8 *local_res8;
|
||||
|
||||
plVar7 = (longlong *)(param_1 + -0xa8);
|
||||
pTVar13 = param_4;
|
||||
piVar5 = (int *)(**(code **)(*plVar7 + 0x58))(plVar7);
|
||||
FUN_14006b350(piVar5);
|
||||
if (DAT_1401b42cf != '\0') {
|
||||
(**(code **)(*plVar7 + 200))(plVar7,L"Proud::CNetServerImpl::GetMostSuitableSuperPeerInGroup");
|
||||
}
|
||||
uVar12 = (ulonglong)param_2;
|
||||
ppuVar8 = &local_res8;
|
||||
plVar6 = FUN_140093630((longlong)plVar7,(longlong *)ppuVar8,param_2);
|
||||
if ((undefined8 *)*plVar6 == (undefined8 *)0x0) {
|
||||
puVar16 = (uint *)0x0;
|
||||
}
|
||||
else {
|
||||
puVar16 = *(uint **)*plVar6;
|
||||
}
|
||||
if ((local_res8 != (undefined8 *)0x0) && (local_res8[1] = local_res8[1] + -1, local_res8[1] == 0))
|
||||
{
|
||||
pvVar4 = (LPVOID)*local_res8;
|
||||
if (pvVar4 != (LPVOID)0x0) {
|
||||
FUN_1400807c0((longlong)pvVar4,ppuVar8,uVar12,pTVar13);
|
||||
FUN_14006cc60(pvVar4);
|
||||
}
|
||||
FUN_14006cc60(local_res8);
|
||||
}
|
||||
if (puVar16 != (uint *)0x0) {
|
||||
puVar9 = puVar16;
|
||||
FUN_140088f60((longlong)plVar7,puVar16,param_3,pTVar13);
|
||||
iVar15 = 0;
|
||||
uVar1 = puVar16[0x1e];
|
||||
lVar10 = 0;
|
||||
if (0 < (int)uVar1) {
|
||||
lVar14 = 0;
|
||||
do {
|
||||
if ((lVar10 < 0) || ((int)uVar1 <= iVar15)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14006be30(plVar7,puVar9,param_3,pTVar13);
|
||||
}
|
||||
param_3 = (TypeDescriptor *)0x0;
|
||||
puVar9 = (uint *)0x0;
|
||||
uVar2 = *(uint *)¶m_4[1].spare;
|
||||
pTVar13 = (TypeDescriptor *)(ulonglong)uVar2;
|
||||
if ((int)uVar2 < 1) {
|
||||
LAB_14009409b:
|
||||
if ((-1 < iVar15) && (iVar15 < (int)uVar1)) {
|
||||
uVar3 = *(undefined4 *)((longlong)iVar15 * 0x40 + *(longlong *)(puVar16 + 0x1c));
|
||||
FUN_14006b3e0((longlong)piVar5);
|
||||
return uVar3;
|
||||
}
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14006be30(plVar7,puVar9,param_3,pTVar13);
|
||||
}
|
||||
while( true ) {
|
||||
if (((longlong)puVar9 < 0) || ((int)uVar2 <= (int)param_3)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14006be30(plVar7,puVar9,param_3,pTVar13);
|
||||
}
|
||||
plVar7 = param_4[1].pVFTable;
|
||||
if (*(int *)((longlong)plVar7 + (longlong)puVar9 * 4) ==
|
||||
*(int *)(lVar14 + *(longlong *)(puVar16 + 0x1c))) break;
|
||||
uVar11 = (int)param_3 + 1;
|
||||
param_3 = (TypeDescriptor *)(ulonglong)uVar11;
|
||||
puVar9 = (uint *)((longlong)puVar9 + 1);
|
||||
if ((int)uVar2 <= (int)uVar11) goto LAB_14009409b;
|
||||
}
|
||||
iVar15 = iVar15 + 1;
|
||||
lVar10 = lVar10 + 1;
|
||||
lVar14 = lVar14 + 0x40;
|
||||
} while (iVar15 < (int)uVar1);
|
||||
}
|
||||
}
|
||||
FUN_14006b3e0((longlong)piVar5);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue