/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14019a030 FUN_14019a030 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ bool FUN_14019a030(short *param_1,UUID *param_2) { short sVar1; undefined1 *puVar2; uint uVar3; int iVar4; uint uVar5; uint uVar6; RPC_STATUS RVar7; uint *puVar8; uint *puVar9; char cVar10; longlong lVar11; short *psVar12; uint *puVar13; undefined1 auStack_f8 [32]; uint *local_d8; undefined1 local_d0; undefined8 local_c8; undefined1 *local_b8; undefined1 local_b0 [136]; ulonglong local_28; local_c8 = 0xfffffffffffffffe; local_28 = DAT_1403463c0 ^ (ulonglong)auStack_f8; lVar11 = -1; psVar12 = param_1; do { if (lVar11 == 0) break; lVar11 = lVar11 + -1; sVar1 = *psVar12; psVar12 = psVar12 + 1; } while (sVar1 != 0); if (lVar11 == -2) { param_2->Data1 = 0; param_2->Data2 = 0; param_2->Data3 = 0; param_2->Data4[0] = '\0'; param_2->Data4[1] = '\0'; param_2->Data4[2] = '\0'; param_2->Data4[3] = '\0'; param_2->Data4[4] = '\0'; param_2->Data4[5] = '\0'; param_2->Data4[6] = '\0'; param_2->Data4[7] = '\0'; return false; } local_b8 = local_b0; FUN_14016ac90(&local_b8,param_1,3); puVar2 = local_b8; FUN_14016d8c0(); puVar13 = (uint *)PTR_DAT_140344098; local_d8 = (uint *)PTR_DAT_140344098; uVar3 = FUN_14016d7e0(puVar2); if (puVar13 == (uint *)0x0) { iVar4 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { iVar4 = 0; } else { iVar4 = *(int *)((longlong)puVar13 + -8); } uVar5 = uVar3; if ((int)uVar3 <= iVar4) { if (puVar13 == (uint *)0x0) { uVar5 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = *(uint *)((longlong)puVar13 + -8); } } uVar6 = 1; if (1 < (int)uVar5) { uVar6 = uVar5; } if (puVar13 == (uint *)0x0) { iVar4 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { iVar4 = 0; } else { iVar4 = *(int *)((longlong)puVar13 + -8); } if (iVar4 < (int)uVar6) { if (puVar13 == (uint *)0x0) { puVar13 = (uint *)PTR_DAT_140344098; } local_d8 = puVar13; if ((int)uVar6 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if (uVar6 == 0) { FUN_14004f5a0(&local_d8); } else { if (puVar13 == (uint *)0x0) { uVar5 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = puVar13[-2]; } if (uVar6 != uVar5) { puVar8 = (uint *)FUN_14016d940(); if (puVar8 != (uint *)0x0) { *puVar8 = 0; puVar8[1] = 1; } *puVar8 = uVar6; if (puVar13 == (uint *)0x0) { uVar5 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = puVar13[-2]; } puVar9 = (uint *)PTR_DAT_140344098; if ((int)uVar6 < (int)uVar5) { LAB_14019a1d9: if (puVar13 != (uint *)0x0) { puVar9 = puVar13; } } else { if (puVar13 != (uint *)0x0) { if (puVar13 == (uint *)PTR_DAT_140344098) { uVar6 = 0; } else { uVar6 = puVar13[-2]; } goto LAB_14019a1d9; } uVar6 = 0; } FUN_14016d810(puVar8 + 2,puVar9,uVar6); FUN_14004f5a0(&local_d8); local_d8 = puVar8 + 2; } } } FUN_14013c600(&local_d8); puVar13 = local_d8; puVar8 = local_d8; if (local_d8 == (uint *)0x0) { puVar8 = (uint *)PTR_DAT_140344098; } FUN_14016d810(puVar8,puVar2,uVar3); uVar5 = FUN_14016d7e0(); uVar3 = 0; if (0 < (int)uVar5) { uVar3 = uVar5; } if (puVar13 == (uint *)0x0) { uVar5 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = puVar13[-2]; } if ((int)uVar5 <= (int)uVar3) { if (puVar13 == (uint *)0x0) { uVar3 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar3 = 0; } else { uVar3 = puVar13[-2]; } } if (((puVar13 != (uint *)PTR_DAT_140344098) && (puVar13 != (uint *)0x0)) && (puVar13 = puVar13 + -2, puVar13 != (uint *)0x0)) { *puVar13 = uVar3; *(char *)((longlong)(int)uVar3 + 8 + (longlong)puVar13) = '\0'; } if (local_b8 != local_b0) { free(local_b8); } FUN_140199970(&local_d8,0x7b); puVar13 = local_d8; puVar8 = local_d8; if (local_d8 == (uint *)0x0) { puVar8 = (uint *)PTR_DAT_140344098; } puVar9 = (uint *)0x0; cVar10 = (char)*puVar8; if (cVar10 != '\0') { do { if (cVar10 == '}') { if (puVar9 == (uint *)0x0) { puVar9 = puVar8; } } else { puVar9 = (uint *)0x0; } puVar8 = (uint *)_mbsinc((uchar *)puVar8); cVar10 = (char)*puVar8; } while (cVar10 != '\0'); if (puVar9 != (uint *)0x0) { iVar4 = (int)puVar13; if (puVar13 == (uint *)0x0) { iVar4 = (int)PTR_DAT_140344098; } uVar3 = (int)puVar9 - iVar4; if (puVar13 == (uint *)0x0) { uVar5 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = puVar13[-2]; } uVar6 = uVar3; if ((int)uVar3 <= (int)uVar5) { if (puVar13 == (uint *)0x0) { uVar6 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar6 = 0; } else { uVar6 = puVar13[-2]; } } uVar5 = 1; if (1 < (int)uVar6) { uVar5 = uVar6; } if (puVar13 == (uint *)0x0) { uVar6 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar6 = 0; } else { uVar6 = puVar13[-2]; } if ((int)uVar6 < (int)uVar5) { if (puVar13 == (uint *)0x0) { puVar13 = (uint *)PTR_DAT_140344098; } local_d8 = puVar13; if ((int)uVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if (uVar5 == 0) { FUN_14004f5a0(&local_d8); } else { if (puVar13 == (uint *)0x0) { uVar6 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar6 = 0; } else { uVar6 = puVar13[-2]; } if (uVar5 != uVar6) { puVar8 = (uint *)FUN_14016d940(); if (puVar8 != (uint *)0x0) { *puVar8 = 0; puVar8[1] = 1; } *puVar8 = uVar5; if (puVar13 == (uint *)0x0) { uVar6 = 0; } else if (puVar13 == (uint *)PTR_DAT_140344098) { uVar6 = 0; } else { uVar6 = puVar13[-2]; } puVar9 = (uint *)PTR_DAT_140344098; if ((int)uVar5 < (int)uVar6) { LAB_14019a3fe: if (puVar13 != (uint *)0x0) { puVar9 = puVar13; } } else { if (puVar13 != (uint *)0x0) { if (puVar13 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = puVar13[-2]; } goto LAB_14019a3fe; } uVar5 = 0; } FUN_14016d810(puVar8 + 2,puVar9,uVar5); FUN_14004f5a0(&local_d8); local_d8 = puVar8 + 2; } } } FUN_14013c600(&local_d8); uVar5 = 0; if (0 < (int)uVar3) { uVar5 = uVar3; } if (local_d8 == (uint *)0x0) { uVar3 = 0; } else if (local_d8 == (uint *)PTR_DAT_140344098) { uVar3 = 0; } else { uVar3 = local_d8[-2]; } if ((int)uVar3 <= (int)uVar5) { if (local_d8 == (uint *)0x0) { uVar5 = 0; } else if (local_d8 == (uint *)PTR_DAT_140344098) { uVar5 = 0; } else { uVar5 = local_d8[-2]; } } puVar13 = local_d8; if (local_d8 != (uint *)PTR_DAT_140344098) { puVar8 = (uint *)PTR_DAT_140344098; if (local_d8 == (uint *)0x0) goto LAB_14019a4a2; puVar8 = local_d8 + -2; if (puVar8 != (uint *)0x0) { *puVar8 = uVar5; *(char *)((longlong)(int)uVar5 + 8 + (longlong)puVar8) = '\0'; } } } } puVar8 = (uint *)PTR_DAT_140344098; if (puVar13 != (uint *)0x0) { puVar8 = puVar13; } LAB_14019a4a2: RVar7 = UuidFromStringA((RPC_CSTR)puVar8,param_2); if (((puVar13 != (uint *)0x0) && (puVar13 != (uint *)PTR_DAT_140344098)) && (puVar13 + -2 != (uint *)0x0)) { puVar9 = (uint *)FUN_14016d8c0(); local_d8 = puVar9; FUN_14016db50(puVar9); local_d0 = 1; puVar8 = puVar13 + -1; *puVar8 = *puVar8 - 1; if (*puVar8 == 0) { FUN_14016d970(puVar13 + -2); } FUN_14016dbe0(puVar9); } return RVar7 == 0; }