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
150
decomp/MessageServer_Release_x64/full/functions/0x140097fd0.c
Normal file
150
decomp/MessageServer_Release_x64/full/functions/0x140097fd0.c
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x140097fd0 FUN_140097fd0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
void FUN_140097fd0(longlong param_1,undefined8 param_2,undefined8 param_3,ulonglong param_4)
|
||||
|
||||
{
|
||||
longlong *plVar1;
|
||||
int *piVar2;
|
||||
longlong *plVar3;
|
||||
ulonglong *puVar4;
|
||||
ulonglong *puVar5;
|
||||
ulonglong *puVar6;
|
||||
undefined4 *puVar7;
|
||||
SIZE_T SVar8;
|
||||
longlong **pplVar9;
|
||||
ulonglong *local_158;
|
||||
longlong *local_150;
|
||||
ulonglong *local_148;
|
||||
undefined1 local_140;
|
||||
undefined **local_138;
|
||||
undefined8 local_130;
|
||||
undefined8 local_128;
|
||||
undefined8 local_120;
|
||||
undefined8 local_118;
|
||||
undefined4 local_108 [2];
|
||||
ulonglong local_100 [2];
|
||||
longlong local_f0 [2];
|
||||
undefined **local_e0;
|
||||
undefined8 local_d8;
|
||||
undefined8 local_d0;
|
||||
undefined8 local_c8;
|
||||
undefined8 local_c0;
|
||||
longlong local_b8;
|
||||
longlong local_b0;
|
||||
ulonglong local_a8;
|
||||
undefined4 local_a0;
|
||||
undefined4 local_9c;
|
||||
undefined4 local_98;
|
||||
undefined **local_90;
|
||||
undefined8 local_88;
|
||||
undefined8 local_80;
|
||||
undefined8 local_78;
|
||||
undefined8 local_70;
|
||||
undefined **local_60;
|
||||
undefined4 local_58;
|
||||
undefined2 local_54;
|
||||
undefined **local_48;
|
||||
undefined8 local_40;
|
||||
undefined8 local_38;
|
||||
undefined8 local_30;
|
||||
undefined8 local_28;
|
||||
undefined8 local_18;
|
||||
|
||||
local_18 = 0xfffffffffffffffe;
|
||||
local_100[0] = 0;
|
||||
local_f0[0] = 0;
|
||||
local_f0[1] = 0;
|
||||
local_d8 = 0;
|
||||
local_d0 = 0;
|
||||
local_c8 = 0;
|
||||
local_c0 = 0;
|
||||
local_e0 = Proud::ByteArray::vftable;
|
||||
local_a8 = 0;
|
||||
local_b0 = 0;
|
||||
local_b8 = 0;
|
||||
local_88 = 0;
|
||||
local_80 = 0;
|
||||
local_78 = 0;
|
||||
local_70 = 0;
|
||||
local_90 = Proud::ByteArray::vftable;
|
||||
local_60 = Proud::AddrPort::vftable;
|
||||
local_58 = 0;
|
||||
local_54 = 0;
|
||||
local_40 = 0;
|
||||
local_38 = 0;
|
||||
local_30 = 0;
|
||||
local_28 = 0;
|
||||
local_48 = Proud::ByteArray::vftable;
|
||||
local_108[0] = 7;
|
||||
local_a0 = (undefined4)param_2;
|
||||
local_9c = (undefined4)param_3;
|
||||
local_130 = 0;
|
||||
local_128 = 0;
|
||||
local_120 = 0;
|
||||
local_118 = 0;
|
||||
local_138 = Proud::ByteArray::vftable;
|
||||
local_98 = local_9c;
|
||||
FUN_14006cb70(Proud::ByteArray::vftable,param_2,param_3,param_4);
|
||||
local_150 = (longlong *)PTR_DAT_1401ac010;
|
||||
pplVar9 = &local_150;
|
||||
SVar8 = 0;
|
||||
puVar4 = (ulonglong *)
|
||||
FUN_140078c10((longlong *)&local_158,param_4 & 0xffffffff,0,(longlong *)pplVar9,
|
||||
(longlong)&local_138);
|
||||
puVar5 = local_100;
|
||||
FUN_140078ae0(puVar5,puVar4,SVar8,pplVar9);
|
||||
puVar6 = local_158;
|
||||
if (local_158 != (ulonglong *)0x0) {
|
||||
local_148 = local_158;
|
||||
FUN_14006b350((int *)local_158);
|
||||
local_140 = 1;
|
||||
local_158[8] = local_158[8] - 1;
|
||||
if (local_158[8] == 0) {
|
||||
FUN_14006b3e0((longlong)puVar6);
|
||||
local_140 = 0;
|
||||
FUN_1400640e0((undefined4 *)local_158,puVar4,SVar8,pplVar9);
|
||||
puVar5 = local_158;
|
||||
}
|
||||
else {
|
||||
FUN_14006b3e0((longlong)puVar6);
|
||||
puVar5 = puVar6;
|
||||
}
|
||||
}
|
||||
plVar3 = local_150;
|
||||
if (((local_150 != (longlong *)0x0) && (local_150 != (longlong *)PTR_DAT_1401ac010)) &&
|
||||
(plVar1 = local_150 + -1, plVar1 != (longlong *)0x0)) {
|
||||
puVar5 = (ulonglong *)FUN_14006cb70(puVar5,puVar4,SVar8,pplVar9);
|
||||
local_148 = puVar5;
|
||||
FUN_14006b350((int *)puVar5);
|
||||
local_140 = 1;
|
||||
piVar2 = (int *)((longlong)plVar3 + -4);
|
||||
*piVar2 = *piVar2 + -1;
|
||||
if (*piVar2 == 0) {
|
||||
FUN_14006cc60(plVar1);
|
||||
}
|
||||
FUN_14006b3e0((longlong)puVar5);
|
||||
}
|
||||
local_150 = (longlong *)PTR_DAT_1401ac010;
|
||||
FUN_140078360(&local_138);
|
||||
puVar7 = local_108;
|
||||
FUN_140097e70(param_1,puVar7,SVar8,pplVar9);
|
||||
FUN_140078360(&local_48);
|
||||
FUN_140078360(&local_90);
|
||||
local_150 = &local_b8;
|
||||
FUN_1400d1800(&local_b8);
|
||||
if (local_b0 != 0) {
|
||||
if ((longlong)local_a8 < 0) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14006be00();
|
||||
}
|
||||
local_a8 = local_a8 & 0xffffffff00000000;
|
||||
}
|
||||
FUN_140078360(&local_e0);
|
||||
FUN_140092fb0(local_f0 + 1,puVar7,SVar8,pplVar9);
|
||||
FUN_140092f30(local_f0,puVar7,SVar8,pplVar9);
|
||||
FUN_140064150((longlong *)local_100,puVar7,SVar8,pplVar9);
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue