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
168
decomp/MessageServer_Release_x64/full/functions/0x14010dbc0.c
Normal file
168
decomp/MessageServer_Release_x64/full/functions/0x14010dbc0.c
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
||||
* Ghidra 12.1.2 decompiler output for 0x14010dbc0 FUN_14010dbc0
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
undefined4 FUN_14010dbc0(longlong param_1,uint *param_2,uint *param_3)
|
||||
|
||||
{
|
||||
byte bVar1;
|
||||
int iVar2;
|
||||
undefined8 uVar3;
|
||||
undefined1 *puVar4;
|
||||
uint uVar5;
|
||||
uint uVar6;
|
||||
undefined1 auStack_88 [32];
|
||||
undefined1 local_68 [4];
|
||||
undefined1 local_64;
|
||||
undefined1 local_63;
|
||||
undefined1 local_62;
|
||||
undefined1 local_61;
|
||||
undefined1 local_60;
|
||||
undefined1 local_5f;
|
||||
char local_5e;
|
||||
undefined1 local_5d;
|
||||
char local_5c;
|
||||
undefined1 local_5b;
|
||||
undefined1 local_5a;
|
||||
undefined1 local_59;
|
||||
undefined1 local_58;
|
||||
ulonglong local_48;
|
||||
|
||||
local_48 = DAT_1401ac5a0 ^ (ulonglong)auStack_88;
|
||||
if (((param_1 == 0) || (param_2 == (uint *)0x0)) || (param_3 == (uint *)0x0)) {
|
||||
return 0x10;
|
||||
}
|
||||
if (*param_2 < 2) {
|
||||
return 7;
|
||||
}
|
||||
bVar1 = *(byte *)(param_1 + 1);
|
||||
if (0x1f < bVar1) {
|
||||
return 7;
|
||||
}
|
||||
if (*param_2 < bVar1 + 2) {
|
||||
return 7;
|
||||
}
|
||||
uVar5 = 0;
|
||||
uVar6 = uVar5;
|
||||
if (bVar1 != 0) {
|
||||
puVar4 = local_68;
|
||||
uVar6 = 0;
|
||||
do {
|
||||
iVar2 = FUN_14010e3d0((uint)(byte)puVar4[(param_1 - (longlong)local_68) + 2]);
|
||||
if (iVar2 == -1) {
|
||||
return 7;
|
||||
}
|
||||
*puVar4 = (char)iVar2;
|
||||
uVar6 = uVar6 + 1;
|
||||
puVar4 = puVar4 + 1;
|
||||
} while (uVar6 < *(byte *)(param_1 + 1));
|
||||
}
|
||||
*param_2 = uVar6 + 2;
|
||||
uVar3 = FUN_14010db30(local_68[0]);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_68[1]);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
*param_3 = uVar6;
|
||||
if (uVar6 < 100) {
|
||||
uVar3 = FUN_14010db30(local_68[2]);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_68[3]);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[1] = uVar6;
|
||||
if (0xc < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
uVar3 = FUN_14010db30(local_64);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_63);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[2] = uVar6;
|
||||
if (0x1f < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
uVar3 = FUN_14010db30(local_62);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_61);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[3] = uVar6;
|
||||
if (0x17 < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
uVar3 = FUN_14010db30(local_60);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_5f);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[4] = uVar6;
|
||||
if (0x3b < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
param_3[7] = 0;
|
||||
param_3[8] = 0;
|
||||
param_3[5] = 0;
|
||||
param_3[6] = 0;
|
||||
if (local_5e == 'Z') {
|
||||
return 0;
|
||||
}
|
||||
if (local_5e == '+') {
|
||||
uVar6 = 0;
|
||||
}
|
||||
else {
|
||||
if (local_5e != '-') {
|
||||
uVar3 = FUN_14010db30(local_5e);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_5d);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[5] = uVar6;
|
||||
if (0x3b < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
if (local_5c == 'Z') {
|
||||
return 0;
|
||||
}
|
||||
if (local_5c != '+') {
|
||||
if (local_5c != '-') {
|
||||
return 7;
|
||||
}
|
||||
uVar5 = 1;
|
||||
}
|
||||
param_3[6] = uVar5;
|
||||
uVar3 = FUN_14010db30(local_5b);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_5a);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[7] = uVar6;
|
||||
if (0x17 < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
uVar3 = FUN_14010db30(local_59);
|
||||
iVar2 = (int)uVar3;
|
||||
goto LAB_14010dde8;
|
||||
}
|
||||
uVar6 = 1;
|
||||
}
|
||||
param_3[6] = uVar6;
|
||||
uVar3 = FUN_14010db30(local_5d);
|
||||
iVar2 = (int)uVar3 * 5;
|
||||
uVar3 = FUN_14010db30(local_5c);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[7] = uVar6;
|
||||
if (uVar6 < 0x18) {
|
||||
uVar3 = FUN_14010db30(local_5b);
|
||||
iVar2 = (int)uVar3;
|
||||
local_58 = local_5a;
|
||||
LAB_14010dde8:
|
||||
iVar2 = iVar2 * 5;
|
||||
uVar3 = FUN_14010db30(local_58);
|
||||
uVar6 = (int)uVar3 + iVar2 * 2;
|
||||
param_3[8] = uVar6;
|
||||
if (0x3b < uVar6) {
|
||||
return 7;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 7;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue