/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401b2d00 FUN_1401b2d00 * Pseudocode, not original source. */ undefined8 FUN_1401b2d00(longlong *param_1,int *param_2,undefined8 param_3) { int *piVar1; int iVar2; char cVar3; undefined4 uVar4; DWORD DVar5; DWORD DVar6; undefined8 uVar7; longlong *plVar8; undefined **ppuVar9; undefined *puVar10; int iVar11; undefined *puVar12; undefined *local_res10; undefined8 local_res18; int local_res20 [2]; undefined *local_118; undefined8 local_110; undefined *local_108; int local_100; undefined8 local_f8; int local_f0; undefined *local_e8; undefined *local_e0; undefined *local_d8; undefined *local_d0; undefined *local_c8; undefined **local_c0; undefined1 local_b8; undefined *local_b0; undefined8 local_a8; undefined1 local_98 [4]; int local_94; undefined8 local_60; local_a8 = 0xfffffffffffffffe; iVar2 = param_2[10]; local_res18 = param_3; if (iVar2 == 0) { FUN_1401b1b20(param_1,0); } iVar11 = *param_2; cVar3 = FUN_14016bd20(param_2,local_res20); if (cVar3 == '\0') { LAB_1401b3502: FUN_14016b040(param_2,(int)((iVar11 >> 0x1f & 7U) + iVar11) >> 3); uVar7 = 0; } else { local_60 = param_3; if (local_res20[0] == 0x7d1) { FUN_14016ec40(local_98); local_94 = param_2[10]; local_98[0] = (undefined1)param_2[0x10]; (**(code **)(*(longlong *)param_1[2] + 0x48)) ((longlong *)param_1[2],param_2,PTR_u_NotifyLoginOk_140345398); DVar5 = 0; if (*(char *)((longlong)param_1 + 0x19) == '\0') { if ((char)param_1[3] == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],iVar2,0x7d1,PTR_u_NotifyLoginOk_140345398,&DAT_1402a4aa0 ); } } else if ((char)param_1[3] == '\0') { FUN_14016d8c0(); puVar10 = PTR_DAT_1403440a0; local_res10 = PTR_DAT_1403440a0; plVar8 = (longlong *)FUN_1400449b0(&local_res10,&local_b0,0xfffffffe); if (puVar10 == (undefined *)0x0) { puVar10 = PTR_DAT_1403440a0; } local_res10 = puVar10; if ((undefined *)*plVar8 != puVar10) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) && (puVar10 + -8 != (undefined *)0x0)) { ppuVar9 = (undefined **)FUN_14016d8c0(); local_c0 = ppuVar9; FUN_14016db50(ppuVar9); local_b8 = 1; piVar1 = (int *)(puVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar10 + -8); } FUN_14016dbe0(ppuVar9); } puVar10 = (undefined *)*plVar8; if (((puVar10 != PTR_DAT_1403440a0) && (puVar10 != (undefined *)0x0)) && (puVar10 != (undefined *)0x8)) { *(int *)(puVar10 + -4) = *(int *)(puVar10 + -4) + 1; } local_res10 = puVar10; FUN_14016dbe0(uVar7); } if (((local_b0 != (undefined *)0x0) && (local_b0 != PTR_DAT_1403440a0)) && (local_b0 + -8 != (undefined *)0x0)) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); piVar1 = (int *)(local_b0 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(local_b0 + -8); } FUN_14016dbe0(uVar7); } local_c0 = &local_e8; local_b0 = PTR_DAT_1403440a0; FUN_14016d8c0(); local_e8 = PTR_DAT_1403440a0; if (PTR_DAT_1403440a0 == (undefined *)0x0) { local_e8 = (undefined *)0x0; } if (puVar10 != PTR_DAT_1403440a0) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); FUN_14004eb70(&local_e8); if (((puVar10 != PTR_DAT_1403440a0) && (puVar10 != (undefined *)0x0)) && (puVar10 != (undefined *)0x8)) { *(int *)(puVar10 + -4) = *(int *)(puVar10 + -4) + 1; } local_e8 = puVar10; FUN_14016dbe0(uVar7); } puVar12 = PTR_u_NotifyLoginOk_140345398; FUN_14016d8c0(); local_d8 = PTR_DAT_1403440a0; uVar4 = FUN_14016d740(puVar12); uVar7 = FUN_14004e940(&local_d8,uVar4); FUN_14016d770(uVar7,puVar12,uVar4); FUN_14004e560(&local_d8); (**(code **)(*param_1 + 0x28))(param_1,0x7d1,&local_d8,&local_e8); puVar12 = puVar10; if (puVar10 == (undefined *)0x0) { puVar12 = PTR_DAT_1403440a0; } (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],iVar2,0x7d1,PTR_u_NotifyLoginOk_140345398,puVar12); param_3 = local_res18; if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) && (puVar10 + -8 != (undefined *)0x0)) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); piVar1 = (int *)(puVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar10 + -8); } FUN_14016dbe0(uVar7); param_3 = local_res18; } } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_110 = CONCAT44(local_110._4_4_,0x7d1); local_108 = PTR_u_NotifyLoginOk_140345398; local_100 = iVar2; local_f8 = param_3; (**(code **)(*param_1 + 0x20))(param_1,&local_110); DVar5 = GetTickCount(); } cVar3 = (**(code **)(*param_1 + 0x38))(param_1,iVar2,local_98); if (cVar3 == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x40)) ((longlong *)param_1[2],PTR_u_NotifyLoginOk_140345398); } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_110 = CONCAT44(local_110._4_4_,0x7d1); local_108 = PTR_u_NotifyLoginOk_140345398; LAB_1401b34d3: local_100 = iVar2; local_f8 = param_3; DVar6 = GetTickCount(); local_f0 = DVar6 - DVar5; (**(code **)(*param_1 + 0x18))(param_1,&local_110); } } else { if (local_res20[0] != 0x7d2) goto LAB_1401b3502; FUN_14016ec40(local_98); local_94 = param_2[10]; local_98[0] = (undefined1)param_2[0x10]; cVar3 = FUN_14016b370(param_2,&local_118,4); uVar4 = local_res10._0_4_; if (cVar3 != '\0') { uVar4 = local_118._0_4_; } local_res10 = (undefined *)CONCAT44(local_res10._4_4_,uVar4); (**(code **)(*(longlong *)param_1[2] + 0x48)) ((longlong *)param_1[2],param_2,PTR_u_NotifyLoginFailed_1403453a0); DVar5 = 0; if (*(char *)((longlong)param_1 + 0x19) == '\0') { if ((char)param_1[3] == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],iVar2,0x7d2,PTR_u_NotifyLoginFailed_1403453a0, &DAT_1402a4aa0); } } else if ((char)param_1[3] == '\0') { FUN_14016d8c0(); local_118 = PTR_DAT_1403440a0; uVar7 = FUN_140198ea0((ulonglong)local_res10 & 0xffffffff); FUN_14004ea20(&local_118,uVar7); FUN_14004ea20(&local_118,&DAT_1402a2ee8); puVar10 = local_118; iVar11 = 0; if ((local_118 != (undefined *)0x0) && (local_118 != PTR_DAT_1403440a0)) { iVar11 = *(int *)(local_118 + -8); } plVar8 = (longlong *)FUN_1400449b0(&local_118,&local_c8,iVar11 + -2); if (puVar10 == (undefined *)0x0) { puVar10 = PTR_DAT_1403440a0; } local_118 = puVar10; if ((undefined *)*plVar8 != puVar10) { ppuVar9 = (undefined **)FUN_14016d8c0(); local_c0 = ppuVar9; FUN_14016db50(ppuVar9); local_b8 = 1; if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) && (puVar10 + -8 != (undefined *)0x0)) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); piVar1 = (int *)(puVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar10 + -8); } FUN_14016dbe0(uVar7); } puVar10 = (undefined *)*plVar8; if (((puVar10 != PTR_DAT_1403440a0) && (puVar10 != (undefined *)0x0)) && (puVar10 != (undefined *)0x8)) { *(int *)(puVar10 + -4) = *(int *)(puVar10 + -4) + 1; } local_118 = puVar10; FUN_14016dbe0(ppuVar9); } if (((local_c8 != (undefined *)0x0) && (local_c8 != PTR_DAT_1403440a0)) && (local_c8 + -8 != (undefined *)0x0)) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); piVar1 = (int *)(local_c8 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(local_c8 + -8); } FUN_14016dbe0(uVar7); } local_c0 = &local_e0; local_c8 = PTR_DAT_1403440a0; FUN_14016d8c0(); local_e0 = PTR_DAT_1403440a0; if (PTR_DAT_1403440a0 == (undefined *)0x0) { local_e0 = (undefined *)0x0; } if (puVar10 != PTR_DAT_1403440a0) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); FUN_14004eb70(&local_e0); if (((puVar10 != PTR_DAT_1403440a0) && (puVar10 != (undefined *)0x0)) && (puVar10 != (undefined *)0x8)) { *(int *)(puVar10 + -4) = *(int *)(puVar10 + -4) + 1; } local_e0 = puVar10; FUN_14016dbe0(uVar7); } puVar12 = PTR_u_NotifyLoginFailed_1403453a0; FUN_14016d8c0(); local_d0 = PTR_DAT_1403440a0; uVar4 = FUN_14016d740(puVar12); uVar7 = FUN_14004e940(&local_d0,uVar4); FUN_14016d770(uVar7,puVar12,uVar4); FUN_14004e560(&local_d0); (**(code **)(*param_1 + 0x28))(param_1,0x7d2,&local_d0,&local_e0); puVar12 = puVar10; if (puVar10 == (undefined *)0x0) { puVar12 = PTR_DAT_1403440a0; } (**(code **)(*(longlong *)param_1[2] + 0x70)) ((longlong *)param_1[2],iVar2,0x7d2,PTR_u_NotifyLoginFailed_1403453a0,puVar12); param_3 = local_res18; if (((puVar10 != (undefined *)0x0) && (puVar10 != PTR_DAT_1403440a0)) && (puVar10 + -8 != (undefined *)0x0)) { uVar7 = FUN_14016d8c0(); local_110 = uVar7; FUN_14016db50(uVar7); local_108 = (undefined *)CONCAT71(local_108._1_7_,1); piVar1 = (int *)(puVar10 + -4); *piVar1 = *piVar1 + -1; if (*piVar1 == 0) { FUN_14016d970(puVar10 + -8); } FUN_14016dbe0(uVar7); param_3 = local_res18; } } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_110 = CONCAT44(local_110._4_4_,0x7d2); local_108 = PTR_u_NotifyLoginFailed_1403453a0; local_100 = iVar2; local_f8 = param_3; (**(code **)(*param_1 + 0x20))(param_1,&local_110); DVar5 = GetTickCount(); } cVar3 = (**(code **)(*param_1 + 0x40))(param_1,iVar2,local_98,&local_res10); if (cVar3 == '\0') { (**(code **)(*(longlong *)param_1[2] + 0x40)) ((longlong *)param_1[2],PTR_u_NotifyLoginFailed_1403453a0); } if (((char)param_1[3] == '\0') && (*(char *)((longlong)param_1 + 0x1a) != '\0')) { local_110 = CONCAT44(local_110._4_4_,0x7d2); local_108 = PTR_u_NotifyLoginFailed_1403453a0; goto LAB_1401b34d3; } } uVar7 = 1; } return uVar7; }