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
360
decomp/MessageServer_Release_x64/full/functions/0x1400d0a70.c
Normal file
360
decomp/MessageServer_Release_x64/full/functions/0x1400d0a70.c
Normal file
|
|
@ -0,0 +1,360 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x1400d0a70 FUN_1400d0a70
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
ulonglong FUN_1400d0a70(longlong *param_1,uint *param_2,undefined8 param_3,undefined8 param_4)
|
||||
|
||||
{
|
||||
uint uVar1;
|
||||
uint uVar2;
|
||||
int iVar3;
|
||||
DWORD DVar4;
|
||||
DWORD DVar5;
|
||||
undefined8 uVar6;
|
||||
undefined8 uVar7;
|
||||
short *psVar8;
|
||||
longlong *plVar9;
|
||||
undefined **ppuVar10;
|
||||
int *piVar11;
|
||||
int *piVar12;
|
||||
undefined *puVar13;
|
||||
undefined **ppuVar14;
|
||||
ulonglong uVar15;
|
||||
undefined4 uVar16;
|
||||
undefined **ppuVar17;
|
||||
undefined *puVar18;
|
||||
undefined *puVar19;
|
||||
undefined *local_res10;
|
||||
undefined8 local_res18;
|
||||
uint local_res20 [2];
|
||||
undefined *local_118;
|
||||
int *local_110;
|
||||
undefined *local_108;
|
||||
uint local_100;
|
||||
undefined8 local_f8;
|
||||
int local_f0;
|
||||
undefined *local_e8;
|
||||
undefined *local_e0;
|
||||
undefined *local_d8;
|
||||
undefined *local_d0;
|
||||
undefined *local_c8;
|
||||
undefined **local_c0;
|
||||
undefined1 local_b8;
|
||||
undefined *local_b0;
|
||||
undefined8 local_a8;
|
||||
undefined1 local_98 [4];
|
||||
uint local_94;
|
||||
undefined8 local_60;
|
||||
|
||||
local_a8 = 0xfffffffffffffffe;
|
||||
uVar1 = param_2[10];
|
||||
uVar7 = param_3;
|
||||
local_res18 = param_3;
|
||||
if (uVar1 == 0) {
|
||||
FUN_1400cf890();
|
||||
}
|
||||
uVar2 = *param_2;
|
||||
uVar6 = FUN_1400bd2e0(param_2,local_res20,uVar7,param_4);
|
||||
if ((char)uVar6 == '\0') {
|
||||
LAB_1400d1272:
|
||||
uVar15 = FUN_1400bc600((int *)param_2,
|
||||
(ulonglong)(uint)((int)(((int)uVar2 >> 0x1f & 7U) + uVar2) >> 3),uVar7,
|
||||
param_4);
|
||||
uVar15 = uVar15 & 0xffffffffffffff00;
|
||||
}
|
||||
else {
|
||||
local_60 = param_3;
|
||||
if (local_res20[0] == 0x7d1) {
|
||||
FUN_140078060(local_98);
|
||||
local_94 = param_2[10];
|
||||
local_98[0] = (undefined1)param_2[0x10];
|
||||
plVar9 = (longlong *)param_1[2];
|
||||
puVar18 = PTR_u_NotifyLoginOk_1401ada88;
|
||||
(**(code **)(*plVar9 + 0x48))();
|
||||
DVar4 = 0;
|
||||
if (*(char *)((longlong)param_1 + 0x19) == '\0') {
|
||||
if ((char)param_1[3] == '\0') {
|
||||
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
||||
((longlong *)param_1[2],uVar1,0x7d1,PTR_u_NotifyLoginOk_1401ada88,&DAT_14015cd00
|
||||
);
|
||||
}
|
||||
}
|
||||
else if ((char)param_1[3] == '\0') {
|
||||
FUN_14006cb70(plVar9,param_2,puVar18,param_4);
|
||||
puVar18 = PTR_DAT_1401ac010;
|
||||
local_res10 = PTR_DAT_1401ac010;
|
||||
uVar7 = 0xfffffffe;
|
||||
ppuVar17 = &local_b0;
|
||||
plVar9 = FUN_140014170((longlong *)&local_res10,(longlong *)ppuVar17,0xfffffffe);
|
||||
if (puVar18 == (undefined *)0x0) {
|
||||
puVar18 = PTR_DAT_1401ac010;
|
||||
}
|
||||
local_res10 = puVar18;
|
||||
if ((undefined *)*plVar9 != puVar18) {
|
||||
piVar11 = (int *)FUN_14006cb70(PTR_DAT_1401ac010,ppuVar17,uVar7,param_4);
|
||||
piVar12 = piVar11;
|
||||
local_110 = piVar11;
|
||||
FUN_14006b350(piVar11);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
if (((puVar18 != (undefined *)0x0) && (puVar18 != PTR_DAT_1401ac010)) &&
|
||||
(puVar18 + -8 != (undefined *)0x0)) {
|
||||
ppuVar14 = (undefined **)FUN_14006cb70(piVar12,ppuVar17,uVar7,param_4);
|
||||
local_c0 = ppuVar14;
|
||||
FUN_14006b350((int *)ppuVar14);
|
||||
local_b8 = 1;
|
||||
piVar12 = (int *)(puVar18 + -4);
|
||||
*piVar12 = *piVar12 + -1;
|
||||
if (*piVar12 == 0) {
|
||||
FUN_14006cc60(puVar18 + -8);
|
||||
}
|
||||
FUN_14006b3e0((longlong)ppuVar14);
|
||||
}
|
||||
puVar18 = (undefined *)*plVar9;
|
||||
if (((puVar18 != PTR_DAT_1401ac010) && (puVar18 != (undefined *)0x0)) &&
|
||||
(puVar18 != (undefined *)0x8)) {
|
||||
*(int *)(puVar18 + -4) = *(int *)(puVar18 + -4) + 1;
|
||||
}
|
||||
local_res10 = puVar18;
|
||||
FUN_14006b3e0((longlong)piVar11);
|
||||
}
|
||||
if (((local_b0 != (undefined *)0x0) && (local_b0 != PTR_DAT_1401ac010)) &&
|
||||
(local_b0 + -8 != (undefined *)0x0)) {
|
||||
piVar11 = (int *)FUN_14006cb70(PTR_DAT_1401ac010,ppuVar17,uVar7,param_4);
|
||||
local_110 = piVar11;
|
||||
FUN_14006b350(piVar11);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
piVar12 = (int *)(local_b0 + -4);
|
||||
*piVar12 = *piVar12 + -1;
|
||||
if (*piVar12 == 0) {
|
||||
FUN_14006cc60(local_b0 + -8);
|
||||
}
|
||||
FUN_14006b3e0((longlong)piVar11);
|
||||
}
|
||||
local_c0 = &local_e8;
|
||||
piVar12 = (int *)PTR_DAT_1401ac010;
|
||||
local_b0 = PTR_DAT_1401ac010;
|
||||
FUN_14006cb70(PTR_DAT_1401ac010,ppuVar17,uVar7,param_4);
|
||||
local_e8 = PTR_DAT_1401ac010;
|
||||
if (PTR_DAT_1401ac010 == (undefined *)0x0) {
|
||||
local_e8 = (undefined *)0x0;
|
||||
}
|
||||
if (puVar18 != PTR_DAT_1401ac010) {
|
||||
piVar12 = (int *)FUN_14006cb70(piVar12,ppuVar17,uVar7,param_4);
|
||||
local_110 = piVar12;
|
||||
FUN_14006b350(piVar12);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
FUN_1400031e0((longlong *)&local_e8,ppuVar17,uVar7,param_4);
|
||||
if (((puVar18 != PTR_DAT_1401ac010) && (puVar18 != (undefined *)0x0)) &&
|
||||
(puVar18 != (undefined *)0x8)) {
|
||||
*(int *)(puVar18 + -4) = *(int *)(puVar18 + -4) + 1;
|
||||
}
|
||||
local_e8 = puVar18;
|
||||
FUN_14006b3e0((longlong)piVar12);
|
||||
}
|
||||
puVar19 = PTR_u_NotifyLoginOk_1401ada88;
|
||||
FUN_14006cb70(piVar12,ppuVar17,uVar7,param_4);
|
||||
local_d8 = PTR_DAT_1401ac010;
|
||||
iVar3 = FUN_14006c9f0((short *)puVar19);
|
||||
puVar13 = FUN_140002f30((longlong *)&local_d8,iVar3);
|
||||
FUN_14006ca20(puVar13,puVar19,iVar3);
|
||||
FUN_140003010((longlong *)&local_d8);
|
||||
(**(code **)(*param_1 + 0x28))(param_1,0x7d1,&local_d8,&local_e8);
|
||||
plVar9 = (longlong *)param_1[2];
|
||||
uVar7 = 0x7d1;
|
||||
uVar15 = (ulonglong)uVar1;
|
||||
puVar19 = PTR_u_NotifyLoginOk_1401ada88;
|
||||
(**(code **)(*plVar9 + 0x70))();
|
||||
param_3 = local_res18;
|
||||
if (((puVar18 != (undefined *)0x0) && (puVar18 != PTR_DAT_1401ac010)) &&
|
||||
(puVar18 + -8 != (undefined *)0x0)) {
|
||||
piVar11 = (int *)FUN_14006cb70(plVar9,uVar15,uVar7,puVar19);
|
||||
local_110 = piVar11;
|
||||
FUN_14006b350(piVar11);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
piVar12 = (int *)(puVar18 + -4);
|
||||
*piVar12 = *piVar12 + -1;
|
||||
if (*piVar12 == 0) {
|
||||
FUN_14006cc60(puVar18 + -8);
|
||||
}
|
||||
FUN_14006b3e0((longlong)piVar11);
|
||||
param_3 = local_res18;
|
||||
}
|
||||
}
|
||||
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
||||
local_110 = (int *)CONCAT44(local_110._4_4_,0x7d1);
|
||||
local_108 = PTR_u_NotifyLoginOk_1401ada88;
|
||||
local_100 = uVar1;
|
||||
local_f8 = param_3;
|
||||
(**(code **)(*param_1 + 0x20))(param_1,&local_110);
|
||||
DVar4 = GetTickCount();
|
||||
}
|
||||
uVar7 = (**(code **)(*param_1 + 0x38))(param_1,uVar1,local_98);
|
||||
if ((char)uVar7 == '\0') {
|
||||
uVar7 = (**(code **)(*(longlong *)param_1[2] + 0x40))
|
||||
((longlong *)param_1[2],PTR_u_NotifyLoginOk_1401ada88);
|
||||
}
|
||||
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
||||
local_110 = (int *)CONCAT44(local_110._4_4_,0x7d1);
|
||||
local_108 = PTR_u_NotifyLoginOk_1401ada88;
|
||||
LAB_1400d1243:
|
||||
local_100 = uVar1;
|
||||
local_f8 = param_3;
|
||||
DVar5 = GetTickCount();
|
||||
local_f0 = DVar5 - DVar4;
|
||||
uVar7 = (**(code **)(*param_1 + 0x18))(param_1,&local_110);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (local_res20[0] != 0x7d2) goto LAB_1400d1272;
|
||||
FUN_140078060(local_98);
|
||||
local_94 = param_2[10];
|
||||
local_98[0] = (undefined1)param_2[0x10];
|
||||
uVar7 = FUN_1400bc930(param_2,&local_118,4);
|
||||
uVar16 = local_res10._0_4_;
|
||||
if ((char)uVar7 != '\0') {
|
||||
uVar16 = local_118._0_4_;
|
||||
}
|
||||
local_res10 = (undefined *)CONCAT44(local_res10._4_4_,uVar16);
|
||||
plVar9 = (longlong *)param_1[2];
|
||||
puVar18 = PTR_u_NotifyLoginFailed_1401ada90;
|
||||
(**(code **)(*plVar9 + 0x48))();
|
||||
DVar4 = 0;
|
||||
if (*(char *)((longlong)param_1 + 0x19) == '\0') {
|
||||
if ((char)param_1[3] == '\0') {
|
||||
(**(code **)(*(longlong *)param_1[2] + 0x70))
|
||||
((longlong *)param_1[2],uVar1,0x7d2,PTR_u_NotifyLoginFailed_1401ada90,
|
||||
&DAT_14015cd00);
|
||||
}
|
||||
}
|
||||
else if ((char)param_1[3] == '\0') {
|
||||
FUN_14006cb70(plVar9,param_2,puVar18,param_4);
|
||||
local_118 = PTR_DAT_1401ac010;
|
||||
psVar8 = (short *)FUN_1400789a0(local_res10._0_4_);
|
||||
FUN_1400141f0((longlong *)&local_118,psVar8);
|
||||
FUN_1400141f0((longlong *)&local_118,(short *)&DAT_14015cacc);
|
||||
puVar18 = local_118;
|
||||
iVar3 = 0;
|
||||
if ((local_118 != (undefined *)0x0) && (local_118 != PTR_DAT_1401ac010)) {
|
||||
iVar3 = *(int *)(local_118 + -8);
|
||||
}
|
||||
uVar15 = (ulonglong)(iVar3 - 2U);
|
||||
ppuVar17 = &local_c8;
|
||||
plVar9 = FUN_140014170((longlong *)&local_118,(longlong *)ppuVar17,iVar3 - 2U);
|
||||
if (puVar18 == (undefined *)0x0) {
|
||||
puVar18 = PTR_DAT_1401ac010;
|
||||
}
|
||||
local_118 = puVar18;
|
||||
if ((undefined *)*plVar9 != puVar18) {
|
||||
ppuVar10 = (undefined **)FUN_14006cb70(PTR_DAT_1401ac010,ppuVar17,uVar15,param_4);
|
||||
ppuVar14 = ppuVar10;
|
||||
local_c0 = ppuVar10;
|
||||
FUN_14006b350((int *)ppuVar10);
|
||||
local_b8 = 1;
|
||||
if (((puVar18 != (undefined *)0x0) && (puVar18 != PTR_DAT_1401ac010)) &&
|
||||
(puVar18 + -8 != (undefined *)0x0)) {
|
||||
piVar11 = (int *)FUN_14006cb70(ppuVar14,ppuVar17,uVar15,param_4);
|
||||
local_110 = piVar11;
|
||||
FUN_14006b350(piVar11);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
piVar12 = (int *)(puVar18 + -4);
|
||||
*piVar12 = *piVar12 + -1;
|
||||
if (*piVar12 == 0) {
|
||||
FUN_14006cc60(puVar18 + -8);
|
||||
}
|
||||
FUN_14006b3e0((longlong)piVar11);
|
||||
}
|
||||
puVar18 = (undefined *)*plVar9;
|
||||
if (((puVar18 != PTR_DAT_1401ac010) && (puVar18 != (undefined *)0x0)) &&
|
||||
(puVar18 != (undefined *)0x8)) {
|
||||
*(int *)(puVar18 + -4) = *(int *)(puVar18 + -4) + 1;
|
||||
}
|
||||
local_118 = puVar18;
|
||||
FUN_14006b3e0((longlong)ppuVar10);
|
||||
}
|
||||
if (((local_c8 != (undefined *)0x0) && (local_c8 != PTR_DAT_1401ac010)) &&
|
||||
(local_c8 + -8 != (undefined *)0x0)) {
|
||||
piVar11 = (int *)FUN_14006cb70(PTR_DAT_1401ac010,ppuVar17,uVar15,param_4);
|
||||
local_110 = piVar11;
|
||||
FUN_14006b350(piVar11);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
piVar12 = (int *)(local_c8 + -4);
|
||||
*piVar12 = *piVar12 + -1;
|
||||
if (*piVar12 == 0) {
|
||||
FUN_14006cc60(local_c8 + -8);
|
||||
}
|
||||
FUN_14006b3e0((longlong)piVar11);
|
||||
}
|
||||
local_c0 = &local_e0;
|
||||
piVar12 = (int *)PTR_DAT_1401ac010;
|
||||
local_c8 = PTR_DAT_1401ac010;
|
||||
FUN_14006cb70(PTR_DAT_1401ac010,ppuVar17,uVar15,param_4);
|
||||
local_e0 = PTR_DAT_1401ac010;
|
||||
if (PTR_DAT_1401ac010 == (undefined *)0x0) {
|
||||
local_e0 = (undefined *)0x0;
|
||||
}
|
||||
if (puVar18 != PTR_DAT_1401ac010) {
|
||||
piVar12 = (int *)FUN_14006cb70(piVar12,ppuVar17,uVar15,param_4);
|
||||
local_110 = piVar12;
|
||||
FUN_14006b350(piVar12);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
FUN_1400031e0((longlong *)&local_e0,ppuVar17,uVar15,param_4);
|
||||
if (((puVar18 != PTR_DAT_1401ac010) && (puVar18 != (undefined *)0x0)) &&
|
||||
(puVar18 != (undefined *)0x8)) {
|
||||
*(int *)(puVar18 + -4) = *(int *)(puVar18 + -4) + 1;
|
||||
}
|
||||
local_e0 = puVar18;
|
||||
FUN_14006b3e0((longlong)piVar12);
|
||||
}
|
||||
puVar19 = PTR_u_NotifyLoginFailed_1401ada90;
|
||||
FUN_14006cb70(piVar12,ppuVar17,uVar15,param_4);
|
||||
local_d0 = PTR_DAT_1401ac010;
|
||||
iVar3 = FUN_14006c9f0((short *)puVar19);
|
||||
puVar13 = FUN_140002f30((longlong *)&local_d0,iVar3);
|
||||
FUN_14006ca20(puVar13,puVar19,iVar3);
|
||||
FUN_140003010((longlong *)&local_d0);
|
||||
(**(code **)(*param_1 + 0x28))(param_1,0x7d2,&local_d0,&local_e0);
|
||||
plVar9 = (longlong *)param_1[2];
|
||||
uVar7 = 0x7d2;
|
||||
uVar15 = (ulonglong)uVar1;
|
||||
puVar19 = PTR_u_NotifyLoginFailed_1401ada90;
|
||||
(**(code **)(*plVar9 + 0x70))();
|
||||
param_3 = local_res18;
|
||||
if (((puVar18 != (undefined *)0x0) && (puVar18 != PTR_DAT_1401ac010)) &&
|
||||
(puVar18 + -8 != (undefined *)0x0)) {
|
||||
piVar11 = (int *)FUN_14006cb70(plVar9,uVar15,uVar7,puVar19);
|
||||
local_110 = piVar11;
|
||||
FUN_14006b350(piVar11);
|
||||
local_108 = (undefined *)CONCAT71(local_108._1_7_,1);
|
||||
piVar12 = (int *)(puVar18 + -4);
|
||||
*piVar12 = *piVar12 + -1;
|
||||
if (*piVar12 == 0) {
|
||||
FUN_14006cc60(puVar18 + -8);
|
||||
}
|
||||
FUN_14006b3e0((longlong)piVar11);
|
||||
param_3 = local_res18;
|
||||
}
|
||||
}
|
||||
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
||||
local_110 = (int *)CONCAT44(local_110._4_4_,0x7d2);
|
||||
local_108 = PTR_u_NotifyLoginFailed_1401ada90;
|
||||
local_100 = uVar1;
|
||||
local_f8 = param_3;
|
||||
(**(code **)(*param_1 + 0x20))(param_1,&local_110);
|
||||
DVar4 = GetTickCount();
|
||||
}
|
||||
uVar7 = (**(code **)(*param_1 + 0x40))(param_1,uVar1,local_98,&local_res10);
|
||||
if ((char)uVar7 == '\0') {
|
||||
uVar7 = (**(code **)(*(longlong *)param_1[2] + 0x40))
|
||||
((longlong *)param_1[2],PTR_u_NotifyLoginFailed_1401ada90);
|
||||
}
|
||||
if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) {
|
||||
local_110 = (int *)CONCAT44(local_110._4_4_,0x7d2);
|
||||
local_108 = PTR_u_NotifyLoginFailed_1401ada90;
|
||||
goto LAB_1400d1243;
|
||||
}
|
||||
}
|
||||
uVar15 = CONCAT71((int7)((ulonglong)uVar7 >> 8),1);
|
||||
}
|
||||
return uVar15;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue