404 lines
11 KiB
C
404 lines
11 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1400aa6e0 FUN_1400aa6e0
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_1400aa6e0(longlong param_1,longlong *param_2,longlong *param_3,longlong *param_4,
|
|
undefined8 param_5,undefined8 param_6,undefined4 param_7,undefined8 param_8,
|
|
uint param_9)
|
|
|
|
{
|
|
short sVar1;
|
|
undefined8 *puVar2;
|
|
longlong lVar3;
|
|
void *pvVar4;
|
|
errno_t eVar5;
|
|
int iVar6;
|
|
char *pcVar7;
|
|
char *pcVar8;
|
|
longlong lVar9;
|
|
undefined8 uVar10;
|
|
ulonglong uVar11;
|
|
char *_Source;
|
|
undefined2 *puVar12;
|
|
uint uVar13;
|
|
short *psVar14;
|
|
undefined1 *puVar15;
|
|
undefined1 *puVar16;
|
|
uint uVar17;
|
|
short *psVar18;
|
|
uint uVar19;
|
|
uint uVar20;
|
|
undefined *puStack_f30;
|
|
undefined1 auStack_f28 [32];
|
|
uint local_f08 [2];
|
|
char *local_f00;
|
|
uint local_ef8;
|
|
uint local_ef0;
|
|
char *local_ee8;
|
|
undefined8 local_ee0;
|
|
undefined8 local_ed8;
|
|
char *local_ed0;
|
|
char *local_ec8;
|
|
char *local_ec0;
|
|
undefined8 local_eb8;
|
|
int local_eb0;
|
|
undefined8 local_ea8;
|
|
undefined8 local_ea0;
|
|
__time64_t local_e98 [2];
|
|
short local_e88;
|
|
short local_e86;
|
|
undefined2 local_e84;
|
|
short local_e82;
|
|
short local_e80;
|
|
short local_e7e;
|
|
short local_e7c;
|
|
undefined2 local_e7a;
|
|
undefined8 local_e78;
|
|
undefined8 local_e70;
|
|
undefined8 local_e68;
|
|
ushort local_e5c;
|
|
undefined2 local_e58;
|
|
undefined6 uStack_e56;
|
|
undefined8 local_e48;
|
|
ulonglong local_e40;
|
|
tm local_e30;
|
|
undefined1 local_e08 [16];
|
|
undefined1 local_df8 [16];
|
|
undefined1 local_de8 [6];
|
|
ushort local_de2;
|
|
undefined1 local_dd8 [10];
|
|
ushort local_dce;
|
|
undefined1 local_dc8 [16];
|
|
undefined1 local_db8 [8];
|
|
ushort local_db0;
|
|
undefined1 local_da8 [8];
|
|
ushort local_da0;
|
|
undefined1 local_d98 [12];
|
|
ushort local_d8c;
|
|
undefined1 local_d88 [10];
|
|
ushort local_d7e;
|
|
undefined1 local_d78 [16];
|
|
undefined1 local_d68 [6];
|
|
ushort local_d62;
|
|
char local_d58;
|
|
undefined1 local_d57 [255];
|
|
char local_c58;
|
|
undefined1 local_c57 [511];
|
|
char local_a58;
|
|
undefined1 local_a57 [511];
|
|
char local_858;
|
|
undefined1 local_857 [1023];
|
|
char local_458;
|
|
undefined1 local_457 [1031];
|
|
ulonglong local_50;
|
|
|
|
puVar15 = auStack_f28;
|
|
local_e98[1] = 0xfffffffffffffffe;
|
|
local_50 = DAT_1403463c0 ^ (ulonglong)&local_eb8;
|
|
local_ea8 = param_5;
|
|
local_ea0 = param_6;
|
|
local_e68 = param_8;
|
|
local_d58 = '\0';
|
|
puStack_f30 = (undefined *)0x1400aa75a;
|
|
memset(local_d57,0,0xff);
|
|
local_c58 = '\0';
|
|
puStack_f30 = (undefined *)0x1400aa775;
|
|
memset(local_c57,0,0x1ff);
|
|
local_a58 = '\0';
|
|
puStack_f30 = (undefined *)0x1400aa790;
|
|
memset(local_a57,0,0x1ff);
|
|
local_458 = '\0';
|
|
puStack_f30 = (undefined *)0x1400aa7ab;
|
|
memset(local_457,0,0x3ff);
|
|
_Source = (char *)0x0;
|
|
if (*param_2 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aa7be;
|
|
pcVar7 = operator_new(0x18);
|
|
pcVar8 = _Source;
|
|
if (pcVar7 != (char *)0x0) {
|
|
pcVar7[8] = '\0';
|
|
pcVar7[9] = '\0';
|
|
pcVar7[10] = '\0';
|
|
pcVar7[0xb] = '\0';
|
|
pcVar7[0xc] = '\0';
|
|
pcVar7[0xd] = '\0';
|
|
pcVar7[0xe] = '\0';
|
|
pcVar7[0xf] = '\0';
|
|
pcVar7[0x10] = '\x01';
|
|
pcVar7[0x11] = '\0';
|
|
pcVar7[0x12] = '\0';
|
|
pcVar7[0x13] = '\0';
|
|
pcVar7[0] = '\0';
|
|
pcVar7[1] = '\0';
|
|
pcVar7[2] = '\0';
|
|
pcVar7[3] = '\0';
|
|
pcVar7[4] = '\0';
|
|
pcVar7[5] = '\0';
|
|
pcVar7[6] = '\0';
|
|
pcVar7[7] = '\0';
|
|
pcVar8 = pcVar7;
|
|
}
|
|
*param_2 = (longlong)pcVar8;
|
|
if (pcVar8 == (char *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
puStack_f30 = &UNK_1400aa7e9;
|
|
FUN_140218220(0x8007000e);
|
|
}
|
|
}
|
|
param_2 = (longlong *)*param_2;
|
|
puVar16 = auStack_f28;
|
|
if (*param_2 == 0) goto LAB_1400aad6a;
|
|
pcVar8 = _Source;
|
|
if (param_2 != (longlong *)0x0) {
|
|
if (param_2[1] == 0) {
|
|
puStack_f30 = (undefined *)0x1400aa80b;
|
|
lVar9 = FUN_140218460(*param_2);
|
|
param_2[1] = lVar9;
|
|
}
|
|
pcVar8 = (char *)param_2[1];
|
|
}
|
|
puStack_f30 = (undefined *)0x1400aa82b;
|
|
strncpy(&local_d58,pcVar8,0x100);
|
|
puVar2 = (undefined8 *)*param_3;
|
|
pcVar8 = _Source;
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
if (puVar2[1] == 0) {
|
|
puStack_f30 = (undefined *)0x1400aa842;
|
|
uVar10 = FUN_140218460(*puVar2);
|
|
puVar2[1] = uVar10;
|
|
}
|
|
pcVar8 = (char *)puVar2[1];
|
|
}
|
|
puStack_f30 = (undefined *)0x1400aa862;
|
|
strncpy(&local_c58,pcVar8,0x200);
|
|
puVar2 = (undefined8 *)*param_4;
|
|
if (puVar2 != (undefined8 *)0x0) {
|
|
if (puVar2[1] == 0) {
|
|
puStack_f30 = (undefined *)0x1400aa879;
|
|
uVar10 = FUN_140218460(*puVar2);
|
|
puVar2[1] = uVar10;
|
|
}
|
|
_Source = (char *)puVar2[1];
|
|
}
|
|
puStack_f30 = (undefined *)0x1400aa899;
|
|
strncpy(&local_a58,_Source,0x200);
|
|
puStack_f30 = (undefined *)0x1400aa8a1;
|
|
local_e98[0] = _time64((__time64_t *)0x0);
|
|
local_eb8 = 0;
|
|
local_eb0 = 0;
|
|
puStack_f30 = (undefined *)0x1400aa8c3;
|
|
eVar5 = _localtime64_s(&local_e30,local_e98);
|
|
if (eVar5 == 0) {
|
|
local_e88 = (short)local_e30.tm_year + 0x76c;
|
|
local_e86 = (short)local_e30.tm_mon + 1;
|
|
local_e84 = (undefined2)local_e30.tm_wday;
|
|
local_e82 = (short)local_e30.tm_mday;
|
|
local_e80 = (short)local_e30.tm_hour;
|
|
local_e7e = (short)local_e30.tm_min;
|
|
local_e7c = (short)local_e30.tm_sec;
|
|
local_e7a = 0;
|
|
puStack_f30 = (undefined *)0x1400aa936;
|
|
iVar6 = Ordinal_184(&local_e88,&local_eb8);
|
|
local_e78 = 0;
|
|
local_e70 = 0;
|
|
if (iVar6 == 0) goto LAB_1400aa9b7;
|
|
puStack_f30 = (undefined *)0x1400aa953;
|
|
iVar6 = Ordinal_185(local_eb8,&local_e78);
|
|
if ((((iVar6 == 0) || (local_e88 != (short)local_e78)) || (local_e86 != local_e78._2_2_)) ||
|
|
(((local_e82 != local_e78._6_2_ || (local_e80 != (short)local_e70)) ||
|
|
((local_e7e != local_e70._2_2_ || (local_e7c != local_e70._4_2_)))))) goto LAB_1400aa9b7;
|
|
local_eb0 = 0;
|
|
puStack_f30 = (undefined *)0x1400aa9a9;
|
|
iVar6 = Ordinal_185(local_eb8,local_d98);
|
|
if (iVar6 == 0) goto LAB_1400aa9be;
|
|
uVar20 = (uint)local_d8c;
|
|
}
|
|
else {
|
|
LAB_1400aa9b7:
|
|
local_eb0 = 1;
|
|
LAB_1400aa9be:
|
|
uVar20 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aa9da;
|
|
iVar6 = Ordinal_185(local_eb8,local_dd8);
|
|
if (iVar6 == 0) goto LAB_1400aa9e8;
|
|
uVar19 = (uint)local_dce;
|
|
}
|
|
else {
|
|
LAB_1400aa9e8:
|
|
uVar19 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aaa04;
|
|
iVar6 = Ordinal_185(local_eb8,local_db8);
|
|
if (iVar6 == 0) goto LAB_1400aaa11;
|
|
uVar17 = (uint)local_db0;
|
|
}
|
|
else {
|
|
LAB_1400aaa11:
|
|
uVar17 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aaa2c;
|
|
iVar6 = Ordinal_185(local_eb8,local_de8);
|
|
if (iVar6 == 0) goto LAB_1400aaa39;
|
|
uVar13 = (uint)local_de2;
|
|
}
|
|
else {
|
|
LAB_1400aaa39:
|
|
uVar13 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aaa54;
|
|
Ordinal_185(local_eb8,local_e08);
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aaa7c;
|
|
Ordinal_185(local_eb8,local_dc8);
|
|
}
|
|
local_ec0 = &local_c58;
|
|
local_ec8 = &local_d58;
|
|
local_ed0 = (char *)CONCAT44(local_ed0._4_4_,param_7);
|
|
local_ed8 = local_ea8;
|
|
local_ee0 = local_e68;
|
|
local_ee8 = &local_a58;
|
|
local_f00 = (char *)CONCAT44(local_f00._4_4_,uVar17);
|
|
puStack_f30 = (undefined *)0x1400aaaf9;
|
|
local_f08[0] = uVar13;
|
|
local_ef8 = uVar19;
|
|
local_ef0 = uVar20;
|
|
sprintf(&local_458,
|
|
"%d/%d/%d %d:%d:%d\nmeaning = %s \nProcedureName = %s\nSource = %s [%d] Line\n%s \nDescription = %s"
|
|
);
|
|
local_f00 = &local_458;
|
|
local_f08[0] = param_9;
|
|
puStack_f30 = (undefined *)0x1400aab2d;
|
|
FUN_1400a6d80(*(undefined8 *)(param_1 + 0x118),"AdoError.Log","DB Error: %s\nCode = %lx\n%s",
|
|
local_ea0);
|
|
lVar9 = *(longlong *)(*(longlong *)(param_1 + 0x110) + 0x70);
|
|
puVar16 = auStack_f28;
|
|
if (lVar9 == 0) goto LAB_1400aad6a;
|
|
local_858 = '\0';
|
|
puStack_f30 = (undefined *)0x1400aab5c;
|
|
memset(local_857,0,0x3ff);
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aab71;
|
|
iVar6 = Ordinal_185(local_eb8,&local_e68);
|
|
if (iVar6 == 0) goto LAB_1400aab7c;
|
|
uVar20 = (uint)local_e5c;
|
|
}
|
|
else {
|
|
LAB_1400aab7c:
|
|
uVar20 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aab98;
|
|
iVar6 = Ordinal_185(local_eb8,local_d88);
|
|
if (iVar6 == 0) goto LAB_1400aaba6;
|
|
uVar19 = (uint)local_d7e;
|
|
}
|
|
else {
|
|
LAB_1400aaba6:
|
|
uVar19 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aabc2;
|
|
iVar6 = Ordinal_185(local_eb8,local_da8);
|
|
if (iVar6 == 0) goto LAB_1400aabcf;
|
|
uVar17 = (uint)local_da0;
|
|
}
|
|
else {
|
|
LAB_1400aabcf:
|
|
uVar17 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aabea;
|
|
iVar6 = Ordinal_185(local_eb8,local_d68);
|
|
if (iVar6 == 0) goto LAB_1400aabf7;
|
|
uVar13 = (uint)local_d62;
|
|
}
|
|
else {
|
|
LAB_1400aabf7:
|
|
uVar13 = 0xffffffff;
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aac12;
|
|
Ordinal_185(local_eb8,local_d78);
|
|
}
|
|
if (local_eb0 == 0) {
|
|
puStack_f30 = (undefined *)0x1400aac3a;
|
|
Ordinal_185(local_eb8,local_df8);
|
|
}
|
|
local_ed0 = &local_c58;
|
|
local_ed8 = CONCAT44(local_ed8._4_4_,param_7);
|
|
local_ee0 = local_ea0;
|
|
local_ee8 = (char *)local_ea8;
|
|
local_f00 = (char *)CONCAT44(local_f00._4_4_,uVar17);
|
|
puStack_f30 = (undefined *)0x1400aac98;
|
|
local_f08[0] = uVar13;
|
|
local_ef8 = uVar19;
|
|
local_ef0 = uVar20;
|
|
sprintf(&local_858,"%d/%d/%d %d:%d:%d-Src[ %s ] Fun[ %s ] Line[ %d ] %s");
|
|
puStack_f30 = (undefined *)0x1400aaca5;
|
|
iVar6 = lstrlenA(&local_858);
|
|
iVar6 = iVar6 + 1;
|
|
if (iVar6 < 0x40000000) {
|
|
uVar11 = (longlong)iVar6 * 2 + 0xf;
|
|
if (uVar11 <= (ulonglong)((longlong)iVar6 * 2)) {
|
|
uVar11 = 0xffffffffffffff0;
|
|
}
|
|
puStack_f30 = (undefined *)0x1400aacd5;
|
|
lVar3 = -(uVar11 & 0xfffffffffffffff0);
|
|
puVar15 = auStack_f28 + lVar3;
|
|
psVar14 = (short *)((longlong)&local_eb8 + lVar3);
|
|
if (psVar14 == (short *)0x0) goto LAB_1400aad0e;
|
|
*psVar14 = 0;
|
|
*(int *)((longlong)&local_f00 + lVar3) = iVar6;
|
|
*(short **)((longlong)local_f08 + lVar3) = psVar14;
|
|
*(undefined8 *)(auStack_f28 + lVar3 + -8) = 0x1400aad06;
|
|
iVar6 = MultiByteToWideChar(3,0,&local_858,-1,*(LPWSTR *)((longlong)local_f08 + lVar3),
|
|
*(int *)((longlong)&local_f00 + lVar3));
|
|
puVar16 = auStack_f28 + lVar3;
|
|
if (iVar6 == 0) {
|
|
psVar14 = (short *)0x0;
|
|
puVar16 = auStack_f28 + lVar3;
|
|
}
|
|
}
|
|
else {
|
|
LAB_1400aad0e:
|
|
psVar14 = (short *)0x0;
|
|
puVar16 = puVar15;
|
|
}
|
|
local_e40 = 7;
|
|
local_e48 = 0;
|
|
local_e58 = 0;
|
|
uVar11 = 0xffffffffffffffff;
|
|
psVar18 = psVar14;
|
|
do {
|
|
if (uVar11 == 0) break;
|
|
uVar11 = uVar11 - 1;
|
|
sVar1 = *psVar18;
|
|
psVar18 = psVar18 + 1;
|
|
} while (sVar1 != 0);
|
|
*(undefined8 *)(puVar16 + -8) = 0x1400aad41;
|
|
FUN_140056040(&local_e58,psVar14,~uVar11 - 1);
|
|
puVar12 = &local_e58;
|
|
if (7 < local_e40) {
|
|
puVar12 = (undefined2 *)CONCAT62(uStack_e56,local_e58);
|
|
}
|
|
*(undefined8 *)(puVar16 + -8) = 0x1400aad58;
|
|
FUN_14015bb10(lVar9,puVar12);
|
|
if (7 < local_e40) {
|
|
pvVar4 = (void *)CONCAT62(uStack_e56,local_e58);
|
|
*(undefined8 *)(puVar16 + -8) = 0x1400aad6a;
|
|
operator_delete(pvVar4);
|
|
}
|
|
LAB_1400aad6a:
|
|
*(undefined8 *)(puVar16 + -8) = 0x1400aad79;
|
|
return;
|
|
}
|
|
|