/* 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; }