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
88
decomp/DBCServer_Release_x64/full/functions/0x1401e5d90.c
Normal file
88
decomp/DBCServer_Release_x64/full/functions/0x1401e5d90.c
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401e5d90 FUN_1401e5d90
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
uint FUN_1401e5d90(longlong param_1,uint param_2)
|
||||
|
||||
{
|
||||
char *pcVar1;
|
||||
char *pcVar2;
|
||||
ushort uVar3;
|
||||
uint uVar4;
|
||||
longlong lVar5;
|
||||
char *pcVar6;
|
||||
uint uVar7;
|
||||
uint uVar8;
|
||||
char *pcVar9;
|
||||
char *pcVar10;
|
||||
int iVar11;
|
||||
uint uVar12;
|
||||
ulonglong uVar13;
|
||||
ulonglong uVar14;
|
||||
char cVar15;
|
||||
char cVar16;
|
||||
uint uVar17;
|
||||
|
||||
uVar8 = *(uint *)(param_1 + 0x94);
|
||||
uVar7 = *(uint *)(param_1 + 0xa4);
|
||||
lVar5 = *(longlong *)(param_1 + 0x50);
|
||||
uVar13 = (ulonglong)(int)*(uint *)(param_1 + 0xa0);
|
||||
uVar14 = (ulonglong)param_2;
|
||||
pcVar2 = (char *)((ulonglong)uVar8 + lVar5);
|
||||
if (*(int *)(param_1 + 0x44) - 0x106U < uVar8) {
|
||||
uVar8 = (uVar8 - *(int *)(param_1 + 0x44)) + 0x106;
|
||||
}
|
||||
else {
|
||||
uVar8 = 0;
|
||||
}
|
||||
cVar15 = pcVar2[uVar13 - 1];
|
||||
cVar16 = pcVar2[uVar13];
|
||||
if (*(uint *)(param_1 + 0xb4) <= *(uint *)(param_1 + 0xa0)) {
|
||||
uVar7 = uVar7 >> 2;
|
||||
}
|
||||
uVar4 = *(uint *)(param_1 + 0x9c);
|
||||
uVar17 = *(uint *)(param_1 + 0xb8);
|
||||
if (uVar4 < *(uint *)(param_1 + 0xb8)) {
|
||||
uVar17 = uVar4;
|
||||
}
|
||||
do {
|
||||
iVar11 = (int)uVar13;
|
||||
pcVar6 = (char *)(lVar5 + uVar14);
|
||||
if ((((pcVar6[iVar11] == cVar16) && (pcVar6[(longlong)iVar11 + -1] == cVar15)) &&
|
||||
(*pcVar6 == *pcVar2)) && (pcVar6[1] == pcVar2[1])) {
|
||||
pcVar6 = pcVar6 + 2;
|
||||
pcVar9 = pcVar2 + 2;
|
||||
while (((((pcVar10 = pcVar9 + 1, *pcVar10 == pcVar6[1] &&
|
||||
(pcVar10 = pcVar9 + 2, *pcVar10 == pcVar6[2])) &&
|
||||
((pcVar10 = pcVar9 + 3, *pcVar10 == pcVar6[3] &&
|
||||
((pcVar10 = pcVar9 + 4, *pcVar10 == pcVar6[4] &&
|
||||
(pcVar10 = pcVar9 + 5, *pcVar10 == pcVar6[5])))))) &&
|
||||
(pcVar10 = pcVar9 + 6, *pcVar10 == pcVar6[6])) &&
|
||||
(pcVar10 = pcVar9 + 7, *pcVar10 == pcVar6[7]))) {
|
||||
pcVar1 = pcVar6 + 8;
|
||||
pcVar6 = pcVar6 + 8;
|
||||
pcVar10 = pcVar9 + 8;
|
||||
if ((*pcVar10 != *pcVar1) || (pcVar9 = pcVar10, pcVar2 + 0x102 <= pcVar10)) break;
|
||||
}
|
||||
uVar12 = ((int)pcVar10 - (int)(pcVar2 + 0x102)) + 0x102;
|
||||
if (iVar11 < (int)uVar12) {
|
||||
*(int *)(param_1 + 0x98) = (int)uVar14;
|
||||
uVar13 = (ulonglong)uVar12;
|
||||
if ((int)uVar17 <= (int)uVar12) break;
|
||||
cVar15 = pcVar2[(longlong)(int)uVar12 + -1];
|
||||
cVar16 = pcVar2[(int)uVar12];
|
||||
}
|
||||
}
|
||||
uVar12 = (uint)uVar13;
|
||||
uVar3 = *(ushort *)(*(longlong *)(param_1 + 0x60) + (*(uint *)(param_1 + 0x4c) & uVar14) * 2);
|
||||
uVar14 = (ulonglong)uVar3;
|
||||
if (uVar3 <= uVar8) break;
|
||||
uVar7 = uVar7 - 1;
|
||||
lVar5 = *(longlong *)(param_1 + 0x50);
|
||||
} while (uVar7 != 0);
|
||||
if (uVar12 <= uVar4) {
|
||||
uVar4 = uVar12;
|
||||
}
|
||||
return uVar4;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue