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
79
decomp/DBCServer_Release_x64/full/functions/0x1401c0b90.c
Normal file
79
decomp/DBCServer_Release_x64/full/functions/0x1401c0b90.c
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
||||
* Ghidra 12.1.2 decompiler output for 0x1401c0b90 FUN_1401c0b90
|
||||
* Pseudocode, not original source. */
|
||||
|
||||
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||
|
||||
void FUN_1401c0b90(longlong param_1,longlong param_2,int param_3)
|
||||
|
||||
{
|
||||
undefined1 uVar1;
|
||||
longlong lVar2;
|
||||
ulonglong uVar3;
|
||||
int iVar4;
|
||||
ulonglong uVar5;
|
||||
ulonglong uVar6;
|
||||
ulonglong uVar7;
|
||||
undefined1 auStack_198 [32];
|
||||
undefined1 local_178 [80];
|
||||
byte abStack_128 [256];
|
||||
ulonglong local_28;
|
||||
|
||||
local_28 = DAT_1403463c0 ^ (ulonglong)auStack_198;
|
||||
if (param_3 == 0) {
|
||||
*(undefined1 *)(param_1 + 0x28) = 1;
|
||||
}
|
||||
else {
|
||||
if (param_2 == 0) {
|
||||
FUN_14016d300(local_178,L"RC4 ExpandFrom Error. inputkey is NULL");
|
||||
/* WARNING: Subroutine does not return */
|
||||
_CxxThrowException(local_178,(ThrowInfo *)&DAT_1403417f8);
|
||||
}
|
||||
FUN_14004f0e0(param_1,param_3);
|
||||
uVar5 = 0;
|
||||
uVar6 = uVar5;
|
||||
if (0 < param_3) {
|
||||
do {
|
||||
iVar4 = (int)uVar6;
|
||||
if ((iVar4 < 0) || (*(int *)(param_1 + 0x18) <= iVar4)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6e0();
|
||||
}
|
||||
*(char *)((longlong)iVar4 + *(longlong *)(param_1 + 0x10)) = (char)uVar6;
|
||||
uVar6 = (ulonglong)(iVar4 + 1U);
|
||||
abStack_128[iVar4] = *(byte *)(iVar4 % param_3 + param_2);
|
||||
} while ((int)(iVar4 + 1U) < param_3);
|
||||
}
|
||||
uVar6 = uVar5;
|
||||
uVar7 = uVar5;
|
||||
if (0 < param_3) {
|
||||
do {
|
||||
if ((longlong)uVar6 < 0) {
|
||||
LAB_1401c0cd2:
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6e0();
|
||||
}
|
||||
if (*(int *)(param_1 + 0x18) <= (int)uVar7) goto LAB_1401c0cd2;
|
||||
lVar2 = *(longlong *)(param_1 + 0x10);
|
||||
uVar3 = (longlong)
|
||||
(int)((uint)*(byte *)(lVar2 + uVar6) + (uint)abStack_128[uVar6] + (int)uVar5) %
|
||||
(longlong)param_3;
|
||||
uVar5 = uVar3 & 0xffffffff;
|
||||
iVar4 = (int)((longlong)((ulonglong)(uint)((int)uVar3 >> 0x1f) << 0x20 | uVar3 & 0xffffffff)
|
||||
% (longlong)param_3);
|
||||
if ((iVar4 < 0) || (*(int *)(param_1 + 0x18) <= iVar4)) {
|
||||
/* WARNING: Subroutine does not return */
|
||||
FUN_14016d6e0();
|
||||
}
|
||||
uVar1 = *(undefined1 *)(lVar2 + uVar6);
|
||||
uVar6 = uVar6 + 1;
|
||||
uVar7 = (ulonglong)((int)uVar7 + 1);
|
||||
*(undefined1 *)(lVar2 + -1 + uVar6) = *(undefined1 *)(iVar4 + lVar2);
|
||||
*(undefined1 *)(iVar4 + lVar2) = uVar1;
|
||||
} while ((longlong)uVar6 < (longlong)param_3);
|
||||
}
|
||||
*(undefined1 *)(param_1 + 0x28) = 1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue