# cl_1301.sys-cl_1455.sys Diff

# TOC

* [Visual Chart Diff](#visual-chart-diff)
* [Metadata](#metadata)
	* [Ghidra Diff Engine](#ghidra-diff-engine)
		* [Command Line](#command-line)
	* [Binary Metadata Diff](#binary-metadata-diff)
	* [Program Options](#program-options)
	* [Diff Stats](#diff-stats)
	* [Strings](#strings)
* [Deleted](#deleted)
* [Added](#added)
	* [Feature_2175866168__private_IsEnabledDeviceUsage](#feature_2175866168__private_isenableddeviceusage)
	* [Feature_2175866168__private_IsEnabledFallback](#feature_2175866168__private_isenabledfallback)
* [Modified](#modified)
	* [CldiPortProcessRestartHydration](#cldiportprocessrestarthydration)
	* [HsmpOpCreatePlaceholders](#hsmpopcreateplaceholders)
	* [CldiPortProcessAckNotification](#cldiportprocessacknotification)
	* [HsmFltProcessConvertPlaceholder](#hsmfltprocessconvertplaceholder)
	* [HsmFltProcessUpdatePlaceholder](#hsmfltprocessupdateplaceholder)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [wil_details_IsEnabledFallback](#wil_details_isenabledfallback)
	* [HsmDbgBreakOnStatus](#hsmdbgbreakonstatus)

# Visual Chart Diff



```mermaid

flowchart LR

CldiPortProcessRestartHydration-5-old<--Match 79%-->CldiPortProcessRestartHydration-5-new
HsmpOpCreatePlaceholders-6-old<--Match 23%-->HsmpOpCreatePlaceholders-6-new
CldiPortProcessAckNotification-5-old<--Match 90%-->CldiPortProcessAckNotification-5-new
HsmFltProcessConvertPlaceholder-11-old<--Match 12%-->HsmFltProcessConvertPlaceholder-11-new
HsmFltProcessUpdatePlaceholder-11-old<--Match 7%-->HsmFltProcessUpdatePlaceholder-11-new

subgraph cl_1455.sys
    CldiPortProcessRestartHydration-5-new
HsmpOpCreatePlaceholders-6-new
CldiPortProcessAckNotification-5-new
HsmFltProcessConvertPlaceholder-11-new
HsmFltProcessUpdatePlaceholder-11-new
    subgraph Added
direction LR
Feature_2175866168__private_IsEnabledDeviceUsage
    Feature_2175866168__private_IsEnabledFallback
end
end

subgraph cl_1301.sys
    CldiPortProcessRestartHydration-5-old
HsmpOpCreatePlaceholders-6-old
CldiPortProcessAckNotification-5-old
HsmFltProcessConvertPlaceholder-11-old
HsmFltProcessUpdatePlaceholder-11-old
    
end

```


```mermaid
pie showData
    title Function Matches - 99.9285%
"unmatched_funcs_len" : 2
"matched_funcs_len" : 2796
```



```mermaid
pie showData
    title Matched Function Similarity - 99.7139%
"matched_funcs_with_code_changes_len" : 5
"matched_funcs_with_non_code_changes_len" : 3
"matched_funcs_no_changes_len" : 2788
```

# Metadata

## Ghidra Diff Engine

### Command Line

#### Captured Command Line


```
ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --gdt [] --max-ram-percent 60.0 --max-section-funcs 200 cl_1301.sys cl_1455.sys
```


#### Verbose Args


<details>

```
--old ['cl_1301.sys'] --new [['cl_1455.sys']] --engine VersionTrackingDiff --output-path cl_out --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --base-address None --program-options None --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --gdt [] --bsim False --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title None
```


</details>

#### Download Original PEs


```
wget https://msdl.microsoft.com/download/symbols/cldflt.sys/5838646090000/cldflt.sys -O cldflt.sys.x64.10.0.26100.1301
wget https://msdl.microsoft.com/download/symbols/cldflt.sys/A968F79390000/cldflt.sys -O cldflt.sys.x64.10.0.26100.1455
```


## Binary Metadata Diff


```diff
--- cl_1301.sys Meta
+++ cl_1455.sys Meta
@@ -1,44 +1,44 @@
-Program Name: cl_1301.sys
+Program Name: cl_1455.sys
 Language ID: x86:LE:64:default (4.6)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 1c0000000
 Maximum Address: ff0000184f
-# of Bytes: 594168
+# of Bytes: 594176
 # of Memory Blocks: 14
-# of Instructions: 109309
-# of Defined Data: 3244
-# of Functions: 1398
-# of Symbols: 15662
+# of Instructions: 109434
+# of Defined Data: 3252
+# of Functions: 1400
+# of Symbols: 15670
 # of Data Types: 180
 # of Data Type Categories: 13
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.0.4
-Date Created: Sat Aug 22 13:49:03 SGT 2026
+Date Created: Sat Aug 22 13:49:07 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /tmp/cl38/cl_1301.sys
-Executable MD5: c606ea697d72e61910198032b0e86973
-Executable SHA256: 828bf27aff3ea99b6ece4afe1bbbe5ee65c324e203ab1dcc301cb7c5dd6f5313
-FSRL: file:///tmp/cl38/cl_1301.sys?MD5=c606ea697d72e61910198032b0e86973
+Executable Location: /tmp/cl38/cl_1455.sys
+Executable MD5: 70e5cfdec68e33f62f91aed6d4f14715
+Executable SHA256: 26457170162d32f5e1d752af1b80bae05dd0137a4154e09d2b8311e7afda4641
+FSRL: file:///tmp/cl38/cl_1455.sys?MD5=70e5cfdec68e33f62f91aed6d4f14715
 PDB Age: 1
 PDB File: cldflt.pdb
-PDB GUID: e09bbd9c-91f3-c320-8097-5232d6a79bf0
+PDB GUID: 47c4039d-838f-f85d-06bb-885abe695b49
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: Cloud Files Mini Filter Driver
-PE Property[FileVersion]: 10.0.26100.1301 (WinBuild.160101.0800)
+PE Property[FileVersion]: 10.0.26100.1455 (WinBuild.160101.0800)
 PE Property[InternalName]: cldflt.sys
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: cldflt.sys
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.26100.1301
+PE Property[ProductVersion]: 10.0.26100.1455
 PE Property[Translation]: 4b00409
 Preferred Root Namespace Category: 
 RTTI Found: false
 Relocatable: true
 SectionAlignment: 4096
 Should Ask To Analyze: false

```


## Program Options


<details>
<summary>Ghidra cl_1301.sys Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra cl_1301.sys Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra cl_1301.sys Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.Apply Function Calling Conventions|true|
|Demangler Microsoft.Apply Function Signatures|true|
|Demangler Microsoft.C-Style Symbol Interpretation|FUNCTION_IF_EXISTS|
|Demangler Microsoft.Demangle Only Known Mangled Symbols|false|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>


<details>
<summary>Ghidra cl_1455.sys Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra cl_1455.sys Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra cl_1455.sys Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.Apply Function Calling Conventions|true|
|Demangler Microsoft.Apply Function Signatures|true|
|Demangler Microsoft.C-Style Symbol Interpretation|FUNCTION_IF_EXISTS|
|Demangler Microsoft.Demangle Only Known Mangled Symbols|false|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>

## Diff Stats



|Stat|Value|
| :---: | :---: |
|added_funcs_len|2|
|deleted_funcs_len|0|
|modified_funcs_len|8|
|added_symbols_len|6|
|deleted_symbols_len|3|
|diff_time|4.959489822387695|
|deleted_strings_len|0|
|added_strings_len|0|
|match_types|Counter({'SymbolsHash': 1397, 'ExternalsName': 336})|
|items_to_process|19|
|diff_types|Counter({'length': 6, 'code': 5, 'address': 5, 'called': 5, 'sig': 3, 'refcount': 2, 'calling': 1})|
|unmatched_funcs_len|2|
|total_funcs_len|2798|
|matched_funcs_len|2796|
|matched_funcs_with_code_changes_len|5|
|matched_funcs_with_non_code_changes_len|3|
|matched_funcs_no_changes_len|2788|
|match_func_similarity_percent|99.7139%|
|func_match_overall_percent|99.9285%|
|first_matches|Counter({'SymbolsHash': 1397})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 1397
"ExternalsName" : 336
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 1397
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 2
"deleted_funcs_len" : 0
"modified_funcs_len" : 8
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 6
"deleted_symbols_len" : 3
```

## Strings


*No string differences found*

# Deleted

# Added

## Feature_2175866168__private_IsEnabledDeviceUsage

### Function Meta



|Key|cl_1455.sys|
| :---: | :---: |
|name|Feature_2175866168__private_IsEnabledDeviceUsage|
|fullname|Feature_2175866168__private_IsEnabledDeviceUsage|
|refcount|6|
|length|49|
|called|Feature_2175866168__private_IsEnabledFallback|
|calling|CldiPortProcessAckNotification<br>CldiPortProcessRestartHydration<br>HsmFltProcessConvertPlaceholder<br>HsmFltProcessUpdatePlaceholder<br>HsmpOpCreatePlaceholders|
|paramcount|0|
|address|1c000e744|
|sig|ulonglong __fastcall Feature_2175866168__private_IsEnabledDeviceUsage(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- Feature_2175866168__private_IsEnabledDeviceUsage
+++ Feature_2175866168__private_IsEnabledDeviceUsage
@@ -0,0 +1,17 @@
+
+ulonglong Feature_2175866168__private_IsEnabledDeviceUsage(void)
+
+{
+  ulonglong uVar1;
+  undefined8 local_res8;
+  
+  local_res8 = (ulonglong)Feature_2175866168__private_featureState;
+  if ((Feature_2175866168__private_featureState & 0x10) == 0) {
+    uVar1 = Feature_2175866168__private_IsEnabledFallback(local_res8,3);
+  }
+  else {
+    uVar1 = (ulonglong)(Feature_2175866168__private_featureState & 1);
+  }
+  return uVar1;
+}
+

```


## Feature_2175866168__private_IsEnabledFallback

### Function Meta



|Key|cl_1455.sys|
| :---: | :---: |
|name|Feature_2175866168__private_IsEnabledFallback|
|fullname|Feature_2175866168__private_IsEnabledFallback|
|refcount|2|
|length|21|
|called|wil_details_IsEnabledFallback|
|calling|Feature_2175866168__private_IsEnabledDeviceUsage|
|paramcount|2|
|address|1c000e77c|
|sig|undefined __fastcall Feature_2175866168__private_IsEnabledFallback(ulonglong param_1, int param_2)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- Feature_2175866168__private_IsEnabledFallback
+++ Feature_2175866168__private_IsEnabledFallback
@@ -0,0 +1,8 @@
+
+void Feature_2175866168__private_IsEnabledFallback(ulonglong param_1,int param_2)
+
+{
+  wil_details_IsEnabledFallback(param_1,param_2,&Feature_2175866168__private_descriptor);
+  return;
+}
+

```


# Modified


*Modified functions contain code changes*
## CldiPortProcessRestartHydration

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|code,length,sig,address,called|
|ratio|0.19|
|i_ratio|0.5|
|m_ratio|0.98|
|b_ratio|0.79|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|CldiPortProcessRestartHydration|CldiPortProcessRestartHydration|
|fullname|CldiPortProcessRestartHydration|CldiPortProcessRestartHydration|
|refcount|2|2|
|`length`|1986|2068|
|`called`|CldSyncRestartHydration<br>CldiPortLookupSyncRootNoLock<br>FLTMGR.SYS::FltAcquirePushLockSharedEx<br>FLTMGR.SYS::FltReleasePushLockEx<br>HsmDbgBreakOnStatus<br>WPP_SF_id|CldSyncRestartHydration<br>CldiPortLookupSyncRootNoLock<br>FLTMGR.SYS::FltAcquirePushLockSharedEx<br>FLTMGR.SYS::FltReleasePushLockEx<br>Feature_2175866168__private_IsEnabledDeviceUsage<br>HsmDbgBreakOnStatus<br>WPP_SF_id|
|calling|CldiPortProcessTransfer|CldiPortProcessTransfer|
|paramcount|5|5|
|`address`|1c003a4e4|1c003a520|
|`sig`|longlong * __fastcall CldiPortProcessRestartHydration(longlong param_1, undefined8 param_2, undefined8 param_3, longlong param_4, uint param_5)|uint __fastcall CldiPortProcessRestartHydration(longlong param_1, undefined8 param_2, undefined8 param_3, longlong param_4, uint param_5)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CldiPortProcessRestartHydration Called Diff


```diff
--- CldiPortProcessRestartHydration called
+++ CldiPortProcessRestartHydration called
@@ -4,0 +5 @@
+Feature_2175866168__private_IsEnabledDeviceUsage
```


### CldiPortProcessRestartHydration Diff


```diff
--- CldiPortProcessRestartHydration
+++ CldiPortProcessRestartHydration
@@ -1,340 +1,357 @@
 
-longlong *
-CldiPortProcessRestartHydration
-          (longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4,uint param_5)
+uint CldiPortProcessRestartHydration
+               (longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4,uint param_5
+               )
 
 {
   uint uVar1;
   uint uVar2;
   uint uVar3;
-  uint uVar4;
+  ulonglong uVar4;
   longlong lVar5;
-  undefined2 uVar6;
-  longlong *plVar7;
-  undefined8 *puVar8;
-  uint *puVar9;
-  int iVar10;
-  longlong *plVar11;
-  longlong *plVar12;
+  uint uVar6;
+  undefined2 uVar7;
+  uint uVar8;
+  undefined8 *puVar9;
+  uint uVar10;
+  uint *puVar11;
+  undefined8 *puVar12;
   undefined8 *puVar13;
-  undefined8 *puVar14;
   uint local_78;
   uint local_74;
   uint local_70;
   void *local_68;
   longlong local_60;
   undefined8 local_58;
   undefined8 local_50;
   undefined8 local_48;
   longlong *local_40;
   
-  plVar7 = (longlong *)0x0;
-  uVar4 = 0;
+  uVar3 = 0;
   local_70 = 0;
   local_68 = (void *)0x0;
-  local_78 = 0;
+  local_74 = 0;
+  uVar10 = 0;
   local_58 = 0;
   local_50 = 0;
   local_48 = 0;
   local_60 = 0;
-  local_74 = 0;
+  local_78 = 0;
+  uVar8 = 0xc0000225;
   if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 6)) ||
-        (uVar1 = *(uint *)(param_4 + 8), uVar1 < 0x40)) || (0x11 < *(ushort *)(param_4 + 0x38))) ||
-      ((uVar3 = *(uint *)(param_4 + 0x3c), uVar3 != 0 &&
-       ((uVar3 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar1 < uVar3)))))) ||
-     ((uVar1 < *(ushort *)(param_4 + 0x3a) ||
-      (((uVar2 = *(ushort *)(param_4 + 0x3a) + uVar3, uVar2 < uVar3 || (uVar1 < uVar2)) ||
+        (uVar2 = *(uint *)(param_4 + 8), uVar2 < 0x40)) || (0x11 < *(ushort *)(param_4 + 0x38))) ||
+      ((uVar6 = *(uint *)(param_4 + 0x3c), uVar6 != 0 &&
+       ((uVar6 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar2 < uVar6)))))) ||
+     ((uVar2 < *(ushort *)(param_4 + 0x3a) ||
+      (((uVar1 = *(ushort *)(param_4 + 0x3a) + uVar6, uVar1 < uVar6 || (uVar2 < uVar1)) ||
        ((*(ushort *)(param_4 + 0x38) != 10 || (*(short *)(param_4 + 0x3a) != 4)))))))) {
-    plVar7 = (longlong *)0xc0000225;
+    uVar2 = 0xc0000225;
   }
   else {
     local_70 = *(uint *)((ulonglong)*(uint *)(param_4 + 0x3c) + param_4);
+    uVar2 = uVar3;
   }
-  HsmDbgBreakOnStatus((int)plVar7);
-  if ((int)plVar7 < 0) {
+  HsmDbgBreakOnStatus(uVar2);
+  if ((int)uVar2 < 0) {
     if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return plVar7;
+      return uVar2;
     }
     if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-      return plVar7;
+      return uVar2;
     }
     if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return plVar7;
-    }
-    uVar6 = 0x41;
+      return uVar2;
+    }
+    uVar7 = 0x41;
   }
   else {
     if (param_5 < 0x18) {
-      plVar11 = (longlong *)0xc0000225;
+      uVar3 = 0xc0000225;
     }
     else {
-      if (((((*(ushort *)(param_4 + 0xe) < 7) || (uVar1 = *(uint *)(param_4 + 8), uVar1 < 0x48)) ||
-           (0x11 < *(ushort *)(param_4 + 0x40))) ||
-          ((uVar3 = *(uint *)(param_4 + 0x44), uVar3 != 0 &&
-           ((uVar3 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar1 < uVar3)))))) ||
-         (((uVar1 < *(ushort *)(param_4 + 0x42) ||
-           ((uVar2 = *(ushort *)(param_4 + 0x42) + uVar3, uVar2 < uVar3 || (uVar1 < uVar2)))) ||
+      if ((((((*(ushort *)(param_4 + 0xe) < 7) || (uVar10 = *(uint *)(param_4 + 8), uVar10 < 0x48))
+            || (0x11 < *(ushort *)(param_4 + 0x40))) ||
+           ((uVar2 = *(uint *)(param_4 + 0x44), uVar2 != 0 &&
+            ((uVar2 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar10 < uVar2)))))) ||
+          (uVar10 < *(ushort *)(param_4 + 0x42))) ||
+         (((uVar6 = *(ushort *)(param_4 + 0x42) + uVar2, uVar6 < uVar2 || (uVar10 < uVar6)) ||
           (*(ushort *)(param_4 + 0x40) != 0x11)))) {
-        plVar11 = (longlong *)0xc0000225;
+        uVar3 = 0xc0000225;
+        uVar10 = 0;
       }
       else {
         if ((*(uint *)(param_4 + 0x44) == 0) || (*(ushort *)(param_4 + 0x42) == 0)) {
           local_68 = (void *)0x0;
         }
         else {
-          local_68 = (void *)(param_4 + (ulonglong)*(uint *)(param_4 + 0x44));
-        }
-        plVar11 = (longlong *)0x0;
-        uVar4 = (uint)*(ushort *)(param_4 + 0x42);
-      }
-      local_78 = uVar4;
-      if ((int)plVar11 < 0) {
-        local_78 = 0;
-      }
-    }
-    plVar12 = (longlong *)0x0;
-    HsmDbgBreakOnStatus((int)plVar11);
-    plVar7 = plVar12;
-    if ((int)plVar11 != -0x3ffffddb) {
-      plVar7 = plVar11;
-    }
-    if ((int)plVar7 < 0) {
+          local_68 = (void *)((ulonglong)*(uint *)(param_4 + 0x44) + param_4);
+        }
+        uVar10 = (uint)*(ushort *)(param_4 + 0x42);
+      }
+      local_74 = uVar10;
+      if ((int)uVar3 < 0) {
+        uVar10 = 0;
+        local_74 = uVar10;
+      }
+    }
+    HsmDbgBreakOnStatus(uVar3);
+    uVar2 = 0;
+    if (uVar3 != 0xc0000225) {
+      uVar2 = uVar3;
+    }
+    if ((int)uVar2 < 0) {
       if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-        return plVar7;
+        return uVar2;
       }
       if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-        return plVar7;
+        return uVar2;
       }
       if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-        return plVar7;
-      }
-      uVar6 = 0x42;
+        return uVar2;
+      }
+      uVar7 = 0x42;
     }
     else {
-      if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xe)) ||
-            (uVar4 = *(uint *)(param_4 + 8), uVar4 < 0x80)) || (0x11 < *(ushort *)(param_4 + 0x78)))
-          || (((uVar1 = *(uint *)(param_4 + 0x7c), uVar1 != 0 &&
-               ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar4 < uVar1)))) ||
-              (uVar4 < *(ushort *)(param_4 + 0x7a))))) ||
-         (((uVar3 = *(ushort *)(param_4 + 0x7a) + uVar1, uVar3 < uVar1 || (uVar4 < uVar3)) ||
-          ((*(ushort *)(param_4 + 0x78) != 6 || (*(short *)(param_4 + 0x7a) != 8)))))) {
-        plVar11 = (longlong *)0xc0000225;
+      uVar4 = Feature_2175866168__private_IsEnabledDeviceUsage();
+      if (((int)uVar4 == 0) || (uVar10 < 0x1001)) {
+        if ((((0x17 < param_5) &&
+             (((0xd < *(ushort *)(param_4 + 0xe) && (uVar10 = *(uint *)(param_4 + 8), 0x7f < uVar10)
+               ) && (*(ushort *)(param_4 + 0x78) < 0x12)))) &&
+            ((uVar3 = *(uint *)(param_4 + 0x7c), uVar3 == 0 ||
+             (((uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 <= uVar3 && (uVar3 <= uVar10)))))) &&
+           ((((*(ushort *)(param_4 + 0x7a) <= uVar10 &&
+              ((uVar2 = *(ushort *)(param_4 + 0x7a) + uVar3, uVar3 <= uVar2 && (uVar2 <= uVar10))))
+             && (*(ushort *)(param_4 + 0x78) == 6)) && (*(short *)(param_4 + 0x7a) == 8)))) {
+          local_60 = *(longlong *)((ulonglong)*(uint *)(param_4 + 0x7c) + param_4);
+          uVar8 = 0;
+        }
+        HsmDbgBreakOnStatus(uVar8);
+        local_40 = &local_60;
+        if (uVar8 == 0xc0000225) {
+          local_40 = (longlong *)0x0;
+        }
+        uVar2 = 0;
+        if (uVar8 != 0xc0000225) {
+          uVar2 = uVar8;
+        }
+        if ((int)uVar2 < 0) {
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return uVar2;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+            return uVar2;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return uVar2;
+          }
+          uVar7 = 0x44;
+        }
+        else {
+          if (((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x16)) ||
+               (uVar8 = *(uint *)(param_4 + 8), uVar8 < 0xc0)) ||
+              (0x11 < *(ushort *)(param_4 + 0xb8))) ||
+             (((uVar10 = *(uint *)(param_4 + 0xbc), uVar10 != 0 &&
+               ((uVar10 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar8 < uVar10)))) ||
+              ((uVar8 < *(ushort *)(param_4 + 0xba) ||
+               (((uVar3 = *(ushort *)(param_4 + 0xba) + uVar10, uVar3 < uVar10 || (uVar8 < uVar3))
+                || ((*(ushort *)(param_4 + 0xb8) != 10 || (*(short *)(param_4 + 0xba) != 4))))))))))
+          {
+            uVar8 = 0xc0000225;
+          }
+          else {
+            uVar8 = 0;
+            local_78 = *(uint *)((ulonglong)*(uint *)(param_4 + 0xbc) + param_4);
+          }
+          HsmDbgBreakOnStatus(uVar8);
+          puVar11 = &local_78;
+          if (uVar8 == 0xc0000225) {
+            puVar11 = (uint *)0x0;
+          }
+          uVar2 = 0;
+          if (uVar8 != 0xc0000225) {
+            uVar2 = uVar8;
+          }
+          if ((int)uVar2 < 0) {
+            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+              return uVar2;
+            }
+            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+              return uVar2;
+            }
+            if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+              return uVar2;
+            }
+            uVar7 = 0x45;
+          }
+          else {
+            if ((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x12)) ||
+                (uVar8 = *(uint *)(param_4 + 8), uVar8 < 0xa0)) ||
+               ((((0x11 < *(ushort *)(param_4 + 0x98) ||
+                  ((uVar10 = *(uint *)(param_4 + 0x9c), uVar10 != 0 &&
+                   ((uVar10 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar8 < uVar10))))))
+                 || (uVar8 < *(ushort *)(param_4 + 0x9a))) ||
+                (((uVar3 = *(ushort *)(param_4 + 0x9a) + uVar10, uVar3 < uVar10 || (uVar8 < uVar3))
+                 || ((*(ushort *)(param_4 + 0x98) != 6 || (*(short *)(param_4 + 0x9a) != 8)))))))) {
+              uVar8 = 0xc0000225;
+            }
+            else {
+              uVar8 = 0;
+              local_58 = *(undefined8 *)((ulonglong)*(uint *)(param_4 + 0x9c) + param_4);
+            }
+            HsmDbgBreakOnStatus(uVar8);
+            puVar9 = &local_58;
+            if (uVar8 == 0xc0000225) {
+              puVar9 = (undefined8 *)0x0;
+            }
+            uVar2 = 0;
+            if (uVar8 != 0xc0000225) {
+              uVar2 = uVar8;
+            }
+            if ((int)uVar2 < 0) {
+              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                return uVar2;
+              }
+              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+                return uVar2;
+              }
+              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                return uVar2;
+              }
+              uVar7 = 0x46;
+            }
+            else {
+              if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x13)) ||
+                    (uVar8 = *(uint *)(param_4 + 8), uVar8 < 0xa8)) ||
+                   (0x11 < *(ushort *)(param_4 + 0xa0))) ||
+                  (((uVar10 = *(uint *)(param_4 + 0xa4), uVar10 != 0 &&
+                    ((uVar10 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar8 < uVar10)))) ||
+                   (uVar8 < *(ushort *)(param_4 + 0xa2))))) ||
+                 (((uVar3 = *(ushort *)(param_4 + 0xa2) + uVar10, uVar3 < uVar10 || (uVar8 < uVar3))
+                  || ((*(ushort *)(param_4 + 0xa0) != 6 || (*(short *)(param_4 + 0xa2) != 8)))))) {
+                uVar8 = 0xc0000225;
+              }
+              else {
+                uVar8 = 0;
+                local_50 = *(undefined8 *)((ulonglong)*(uint *)(param_4 + 0xa4) + param_4);
+              }
+              HsmDbgBreakOnStatus(uVar8);
+              puVar13 = &local_50;
+              if (uVar8 == 0xc0000225) {
+                puVar13 = (undefined8 *)0x0;
+              }
+              uVar2 = 0;
+              if (uVar8 != 0xc0000225) {
+                uVar2 = uVar8;
+              }
+              if ((int)uVar2 < 0) {
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return uVar2;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+                  return uVar2;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return uVar2;
+                }
+                uVar7 = 0x47;
+              }
+              else {
+                if (((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x14)) ||
+                       (uVar8 = *(uint *)(param_4 + 8), uVar8 < 0xb0)) ||
+                      (0x11 < *(ushort *)(param_4 + 0xa8))) ||
+                     ((uVar10 = *(uint *)(param_4 + 0xac), uVar10 != 0 &&
+                      ((uVar10 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar8 < uVar10)))))
+                     ) || ((uVar8 < *(ushort *)(param_4 + 0xaa) ||
+                           ((uVar3 = *(ushort *)(param_4 + 0xaa) + uVar10, uVar3 < uVar10 ||
+                            (uVar8 < uVar3)))))) ||
+                   ((*(ushort *)(param_4 + 0xa8) != 6 || (*(short *)(param_4 + 0xaa) != 8)))) {
+                  uVar8 = 0xc0000225;
+                }
+                else {
+                  local_48 = *(undefined8 *)((ulonglong)*(uint *)(param_4 + 0xac) + param_4);
+                  uVar8 = 0;
+                }
+                HsmDbgBreakOnStatus(uVar8);
+                puVar12 = &local_48;
+                if (uVar8 == 0xc0000225) {
+                  puVar12 = (undefined8 *)0x0;
+                }
+                uVar2 = 0;
+                if (uVar8 != 0xc0000225) {
+                  uVar2 = uVar8;
+                }
+                if ((int)uVar2 < 0) {
+                  if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                    return uVar2;
+                  }
+                  if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+                    return uVar2;
+                  }
+                  if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                    return uVar2;
+                  }
+                  uVar7 = 0x48;
+                }
+                else {
+                  FltAcquirePushLockSharedEx(param_1 + 0x90,0);
+                  lVar5 = CldiPortLookupSyncRootNoLock(param_1,param_2);
+                  FltReleasePushLockEx(param_1 + 0x90,0);
+                  if (lVar5 == 0) {
+                    uVar2 = 0xc000cf01;
+                    HsmDbgBreakOnStatus(-0x3fff30ff);
+                    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                      return 0xc000cf01;
+                    }
+                    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+                      return 0xc000cf01;
+                    }
+                    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                      return 0xc000cf01;
+                    }
+                    uVar7 = 0x49;
+                  }
+                  else {
+                    uVar2 = CldSyncRestartHydration
+                                      (lVar5,param_3,(ulonglong)local_70,local_68,local_74,local_40,
+                                       puVar11,puVar9,puVar13,puVar12);
+                    HsmDbgBreakOnStatus(uVar2);
+                    if (-1 < (int)uVar2) {
+                      return uVar2;
+                    }
+                    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                      return uVar2;
+                    }
+                    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
+                      return uVar2;
+                    }
+                    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                      return uVar2;
+                    }
+                    uVar7 = 0x4a;
+                  }
+                }
+              }
+            }
+          }
+        }
       }
       else {
-        local_60 = *(longlong *)((ulonglong)*(uint *)(param_4 + 0x7c) + param_4);
-        plVar11 = plVar12;
-      }
-      HsmDbgBreakOnStatus((int)plVar11);
-      plVar7 = plVar12;
-      local_40 = plVar12;
-      if ((int)plVar11 != -0x3ffffddb) {
-        plVar7 = plVar11;
-        local_40 = &local_60;
-      }
-      if ((int)plVar7 < 0) {
+        uVar2 = 0xc000000d;
         if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return plVar7;
+          return 0xc000000d;
         }
         if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-          return plVar7;
+          return 0xc000000d;
         }
         if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return plVar7;
-        }
-        uVar6 = 0x43;
-      }
-      else {
-        if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x16)) ||
-              (uVar4 = *(uint *)(param_4 + 8), uVar4 < 0xc0)) ||
-             (0x11 < *(ushort *)(param_4 + 0xb8))) ||
-            ((uVar1 = *(uint *)(param_4 + 0xbc), uVar1 != 0 &&
-             ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar4 < uVar1)))))) ||
-           (((uVar4 < *(ushort *)(param_4 + 0xba) ||
-             ((uVar3 = *(ushort *)(param_4 + 0xba) + uVar1, uVar3 < uVar1 || (uVar4 < uVar3)))) ||
-            ((*(ushort *)(param_4 + 0xb8) != 10 || (*(short *)(param_4 + 0xba) != 4)))))) {
-          plVar12 = (longlong *)0xc0000225;
-        }
-        else {
-          local_74 = *(uint *)((ulonglong)*(uint *)(param_4 + 0xbc) + param_4);
-        }
-        iVar10 = (int)plVar12;
-        HsmDbgBreakOnStatus(iVar10);
-        puVar9 = &local_74;
-        if (iVar10 == -0x3ffffddb) {
-          puVar9 = (uint *)0x0;
-        }
-        plVar7 = (longlong *)0x0;
-        if (iVar10 != -0x3ffffddb) {
-          plVar7 = plVar12;
-        }
-        if ((int)plVar7 < 0) {
-          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-            return plVar7;
-          }
-          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-            return plVar7;
-          }
-          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-            return plVar7;
-          }
-          uVar6 = 0x44;
-        }
-        else {
-          if (((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x12)) ||
-               (uVar4 = *(uint *)(param_4 + 8), uVar4 < 0xa0)) ||
-              ((0x11 < *(ushort *)(param_4 + 0x98) ||
-               (((uVar1 = *(uint *)(param_4 + 0x9c), uVar1 != 0 &&
-                 ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar4 < uVar1)))) ||
-                (uVar4 < *(ushort *)(param_4 + 0x9a))))))) ||
-             (((uVar3 = *(ushort *)(param_4 + 0x9a) + uVar1, uVar3 < uVar1 || (uVar4 < uVar3)) ||
-              ((*(ushort *)(param_4 + 0x98) != 6 || (*(short *)(param_4 + 0x9a) != 8)))))) {
-            uVar4 = 0xc0000225;
-          }
-          else {
-            uVar4 = 0;
-            local_58 = *(undefined8 *)((ulonglong)*(uint *)(param_4 + 0x9c) + param_4);
-          }
-          HsmDbgBreakOnStatus(uVar4);
-          puVar8 = &local_58;
-          if (uVar4 == 0xc0000225) {
-            puVar8 = (undefined8 *)0x0;
-          }
-          plVar7 = (longlong *)0x0;
-          if (uVar4 != 0xc0000225) {
-            plVar7 = (longlong *)(ulonglong)uVar4;
-          }
-          if ((int)plVar7 < 0) {
-            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-              return plVar7;
-            }
-            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-              return plVar7;
-            }
-            if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-              return plVar7;
-            }
-            uVar6 = 0x45;
-          }
-          else {
-            if ((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x13)) ||
-                (uVar4 = *(uint *)(param_4 + 8), uVar4 < 0xa8)) ||
-               (((0x11 < *(ushort *)(param_4 + 0xa0) ||
-                 ((uVar1 = *(uint *)(param_4 + 0xa4), uVar1 != 0 &&
-                  ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar4 < uVar1)))))) ||
-                ((uVar4 < *(ushort *)(param_4 + 0xa2) ||
-                 (((uVar3 = *(ushort *)(param_4 + 0xa2) + uVar1, uVar3 < uVar1 || (uVar4 < uVar3))
-                  || ((*(ushort *)(param_4 + 0xa0) != 6 || (*(short *)(param_4 + 0xa2) != 8)))))))))
-               ) {
-              uVar4 = 0xc0000225;
-            }
-            else {
-              uVar4 = 0;
-              local_50 = *(undefined8 *)((ulonglong)*(uint *)(param_4 + 0xa4) + param_4);
-            }
-            HsmDbgBreakOnStatus(uVar4);
-            puVar14 = &local_50;
-            if (uVar4 == 0xc0000225) {
-              puVar14 = (undefined8 *)0x0;
-            }
-            plVar7 = (longlong *)0x0;
-            if (uVar4 != 0xc0000225) {
-              plVar7 = (longlong *)(ulonglong)uVar4;
-            }
-            if ((int)plVar7 < 0) {
-              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                return plVar7;
-              }
-              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-                return plVar7;
-              }
-              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                return plVar7;
-              }
-              uVar6 = 0x46;
-            }
-            else {
-              if (((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0x14)) ||
-                     (uVar4 = *(uint *)(param_4 + 8), uVar4 < 0xb0)) ||
-                    (0x11 < *(ushort *)(param_4 + 0xa8))) ||
-                   ((uVar1 = *(uint *)(param_4 + 0xac), uVar1 != 0 &&
-                    ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar4 < uVar1)))))) ||
-                  (uVar4 < *(ushort *)(param_4 + 0xaa))) ||
-                 (((uVar3 = *(ushort *)(param_4 + 0xaa) + uVar1, uVar3 < uVar1 || (uVar4 < uVar3))
-                  || ((*(ushort *)(param_4 + 0xa8) != 6 || (*(short *)(param_4 + 0xaa) != 8)))))) {
-                uVar4 = 0xc0000225;
-              }
-              else {
-                local_48 = *(undefined8 *)((ulonglong)*(uint *)(param_4 + 0xac) + param_4);
-                uVar4 = 0;
-              }
-              HsmDbgBreakOnStatus(uVar4);
-              puVar13 = &local_48;
-              if (uVar4 == 0xc0000225) {
-                puVar13 = (undefined8 *)0x0;
-              }
-              plVar7 = (longlong *)0x0;
-              if (uVar4 != 0xc0000225) {
-                plVar7 = (longlong *)(ulonglong)uVar4;
-              }
-              if ((int)plVar7 < 0) {
-                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                  return plVar7;
-                }
-                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-                  return plVar7;
-                }
-                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                  return plVar7;
-                }
-                uVar6 = 0x47;
-              }
-              else {
-                FltAcquirePushLockSharedEx(param_1 + 0x90,0);
-                lVar5 = CldiPortLookupSyncRootNoLock(param_1,param_2);
-                FltReleasePushLockEx(param_1 + 0x90,0);
-                if (lVar5 == 0) {
-                  plVar7 = (longlong *)0xc000cf01;
-                  HsmDbgBreakOnStatus(-0x3fff30ff);
-                  if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                    return (longlong *)0xc000cf01;
-                  }
-                  if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-                    return (longlong *)0xc000cf01;
-                  }
-                  if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                    return (longlong *)0xc000cf01;
-                  }
-                  uVar6 = 0x48;
-                }
-                else {
-                  uVar4 = CldSyncRestartHydration
-                                    (lVar5,param_3,(ulonglong)local_70,local_68,local_78,local_40,
-                                     puVar9,puVar8,puVar14,puVar13);
-                  plVar7 = (longlong *)(ulonglong)uVar4;
-                  HsmDbgBreakOnStatus(uVar4);
-                  if (-1 < (int)uVar4) {
-                    return plVar7;
-                  }
-                  if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                    return plVar7;
-                  }
-                  if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-                    return plVar7;
-                  }
-                  if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                    return plVar7;
-                  }
-                  uVar6 = 0x49;
-                }
-              }
-            }
-          }
-        }
+          return 0xc000000d;
+        }
+        uVar7 = 0x43;
       }
     }
   }
-  WPP_SF_id(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar6,
-            &WPP_58c78adf94af377e1e43e220c82db81f_Traceguids,param_1);
-  return plVar7;
+  WPP_SF_id(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar7,
+            &WPP_82dc34624fbd3f805255861060ed1674_Traceguids,param_1);
+  return uVar2;
 }
 

```


## HsmpOpCreatePlaceholders

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.51|
|i_ratio|0.33|
|m_ratio|0.98|
|b_ratio|0.23|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|HsmpOpCreatePlaceholders|HsmpOpCreatePlaceholders|
|fullname|HsmpOpCreatePlaceholders|HsmpOpCreatePlaceholders|
|refcount|3|3|
|`length`|5144|5084|
|`called`|<details><summary>Expand for full list:<br>FLTMGR.SYS::FltAllocateExtraCreateParameterFromLookasideList<br>FLTMGR.SYS::FltAllocateExtraCreateParameterList<br>FLTMGR.SYS::FltClose<br>FLTMGR.SYS::FltCreateFileEx<br>FLTMGR.SYS::FltCreateFileEx2<br>FLTMGR.SYS::FltFreeExtraCreateParameterList<br>FLTMGR.SYS::FltInsertExtraCreateParameter<br>FLTMGR.SYS::FltQueryInformationFile<br>FLTMGR.SYS::FltSetInformationFile<br>HsmDbgBreakOnStatus<br>HsmpAccessCheck</summary>HsmpMarkHandleUsnSourceInfo<br>HsmpQueryLastEffectiveUsn<br>HsmpRpBuildBuffer<br>HsmpRpCreate<br>HsmpSetFileDisposition<br>HsmpSetFileVDL<br>HsmpToggleFileSparseAttribute<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoAllocateMdl<br>NTOSKRNL.EXE::IoFreeMdl<br>NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>NTOSKRNL.EXE::MmProbeAndLockPages<br>NTOSKRNL.EXE::MmUnlockPages<br>NTOSKRNL.EXE::ObReferenceObjectByHandle<br>NTOSKRNL.EXE::ObfDereferenceObject<br>NTOSKRNL.EXE::ProbeForRead<br>TlmWriteAccessDeniedForAddSubDirectory<br>WPP_SF_id<br>WPP_SF_iid<br>WPP_SF_qqdd<br>__security_check_cookie<br>memset</details>|<details><summary>Expand for full list:<br>FLTMGR.SYS::FltAllocateExtraCreateParameterFromLookasideList<br>FLTMGR.SYS::FltAllocateExtraCreateParameterList<br>FLTMGR.SYS::FltClose<br>FLTMGR.SYS::FltCreateFileEx<br>FLTMGR.SYS::FltCreateFileEx2<br>FLTMGR.SYS::FltFreeExtraCreateParameterList<br>FLTMGR.SYS::FltInsertExtraCreateParameter<br>FLTMGR.SYS::FltQueryInformationFile<br>FLTMGR.SYS::FltSetInformationFile<br>Feature_2175866168__private_IsEnabledDeviceUsage<br>HsmDbgBreakOnStatus</summary>HsmpAccessCheck<br>HsmpMarkHandleUsnSourceInfo<br>HsmpQueryLastEffectiveUsn<br>HsmpRpBuildBuffer<br>HsmpRpCreate<br>HsmpSetFileDisposition<br>HsmpSetFileVDL<br>HsmpToggleFileSparseAttribute<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoAllocateMdl<br>NTOSKRNL.EXE::IoFreeMdl<br>NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>NTOSKRNL.EXE::MmProbeAndLockPages<br>NTOSKRNL.EXE::MmUnlockPages<br>NTOSKRNL.EXE::ObReferenceObjectByHandle<br>NTOSKRNL.EXE::ObfDereferenceObject<br>NTOSKRNL.EXE::ProbeForRead<br>TlmWriteAccessDeniedForAddSubDirectory<br>WPP_SF_id<br>WPP_SF_iid<br>WPP_SF_qqdd<br>__security_check_cookie<br>memset</details>|
|calling|HsmFltProcessCreatePlaceholders<br>HsmRecallTransferPlaceholders|HsmFltProcessCreatePlaceholders<br>HsmRecallTransferPlaceholders|
|paramcount|6|6|
|`address`|1c006ed04|1c006e7a4|
|sig|uint * __fastcall HsmpOpCreatePlaceholders(longlong param_1, undefined8 param_2, uint param_3, undefined8 param_4, int param_5, int * param_6)|uint * __fastcall HsmpOpCreatePlaceholders(longlong param_1, undefined8 param_2, uint param_3, undefined8 param_4, int param_5, int * param_6)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### HsmpOpCreatePlaceholders Called Diff


```diff
--- HsmpOpCreatePlaceholders called
+++ HsmpOpCreatePlaceholders called
@@ -9,0 +10 @@
+Feature_2175866168__private_IsEnabledDeviceUsage
```


### HsmpOpCreatePlaceholders Diff


```diff
--- HsmpOpCreatePlaceholders
+++ HsmpOpCreatePlaceholders
@@ -1,618 +1,636 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x0001c006f6ed) */
-/* WARNING: Removing unreachable block (ram,0x0001c007012d) */
-/* WARNING: Removing unreachable block (ram,0x0001c006f6f5) */
+/* WARNING: Removing unreachable block (ram,0x0001c006f904) */
+/* WARNING: Removing unreachable block (ram,0x0001c006f908) */
+/* WARNING: Removing unreachable block (ram,0x0001c006f91c) */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 uint * HsmpOpCreatePlaceholders
                  (longlong param_1,undefined8 param_2,uint param_3,undefined8 param_4,int param_5,
                  int *param_6)
 
 {
   undefined1 (*pauVar1) [16];
-  uint uVar2;
-  ushort uVar3;
-  ulonglong uVar4;
-  ulonglong uVar5;
-  ulonglong uVar6;
-  ulonglong uVar7;
-  uint uVar8;
-  uint uVar9;
-  longlong lVar10;
-  uint *puVar11;
-  undefined1 (*pauVar12) [16];
+  ulonglong uVar2;
+  ulonglong uVar3;
+  uint uVar4;
+  uint uVar5;
+  longlong lVar6;
+  uint *puVar7;
+  undefined1 (*pauVar8) [16];
+  ulonglong uVar9;
+  undefined *puVar10;
+  undefined8 uVar11;
+  undefined2 uVar12;
   ushort uVar13;
-  ushort uVar14;
-  undefined8 uVar15;
-  undefined *puVar16;
-  undefined2 uVar17;
-  undefined1 (*pauVar18) [16];
-  uint *puVar19;
-  longlong ****pppplVar20;
-  uint *puVar21;
-  uint *puVar22;
-  bool bVar23;
+  undefined1 (*pauVar14) [16];
+  uint *puVar15;
+  uint *puVar16;
+  ushort uVar17;
+  uint uVar18;
+  longlong ****pppplVar19;
+  bool bVar20;
   undefined1 auStackY_248 [32];
   undefined1 (*local_1c8) [16];
   uint *local_1c0;
-  uint local_1a8;
-  int local_1a4;
+  int local_1a8;
+  uint local_1a4;
   uint local_18c;
-  uint local_170;
+  uint local_180;
   longlong **local_160;
   longlong local_158;
   int local_150;
   undefined1 (*local_148) [16];
   undefined8 local_140;
   undefined8 local_138;
   undefined1 *puStack_130;
   undefined8 local_128;
   longlong lStack_120;
   undefined8 local_118;
   undefined8 uStack_110;
   ulonglong local_108;
   int *local_100;
   undefined8 local_f8;
   undefined8 uStack_f0;
   undefined8 *local_e8;
   undefined8 uStack_e0;
   undefined8 local_d8;
   ulonglong uStack_d0;
   undefined8 local_c8;
   undefined8 uStack_c0;
   undefined1 local_b8 [16];
   longlong **local_a8;
   undefined8 uStack_a0;
   undefined8 local_98;
   undefined8 uStack_90;
   ulonglong local_88;
   longlong ***ppplStack_80;
   undefined8 local_78;
   undefined8 uStack_70;
   longlong **local_68;
   undefined8 uStack_60;
   undefined8 local_58;
   undefined8 uStack_50;
   undefined8 local_48;
   ulonglong local_40;
   
   local_40 = __security_cookie ^ (ulonglong)auStackY_248;
   local_150 = param_5;
   local_100 = param_6;
   pauVar1 = *(undefined1 (**) [16])(param_1 + 0x20);
-  puVar19 = (uint *)0x0;
+  puVar15 = (uint *)0x0;
   local_140 = 0;
   local_1c0 = (uint *)0x0;
-  local_1a4 = 0;
+  local_1a8 = 0;
   local_160 = (longlong **)0x0;
   local_18c = 0;
   local_148 = (undefined1 (*) [16])0x0;
   local_128 = 0;
   lStack_120 = 0;
   local_118 = 0;
   uStack_110 = 0;
   local_108 = local_108 & 0xffffffffffff0000;
   local_158 = 0;
-  lVar10 = IoAllocateMdl(param_4,param_5,0,0);
-  puVar11 = puVar19;
-  if (lVar10 == 0) {
+  lVar6 = IoAllocateMdl(param_4,param_5,0,0);
+  puVar7 = puVar15;
+  if (lVar6 == 0) {
     HsmDbgBreakOnStatus(-0x3fffff66);
     if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
         ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) && (1 < (byte)WPP_GLOBAL_Control[0x29]))
     {
       WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x5f,
-                 &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
-      local_1c0 = puVar19;
-      puVar21 = (uint *)0xc000009a;
+                 &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_1);
+      puVar16 = (uint *)0xc000009a;
+      local_1c0 = puVar15;
       goto LAB_0;
     }
   }
   else {
-    ProbeForRead(param_4,param_5,4);
-    MmProbeAndLockPages(lVar10,1,0);
-    if ((*(byte *)(lVar10 + 10) & 5) == 0) {
-      local_1c0 = (uint *)MmMapLockedPagesSpecifyCache(lVar10,0,1,0);
+    ProbeForRead(param_4,param_5);
+    MmProbeAndLockPages(lVar6,1);
+    if ((*(byte *)(lVar6 + 10) & 5) == 0) {
+      local_1c0 = (uint *)MmMapLockedPagesSpecifyCache(lVar6,0,1,0);
     }
     else {
-      local_1c0 = *(uint **)(lVar10 + 0x18);
+      local_1c0 = *(uint **)(lVar6 + 0x18);
     }
     if (local_1c0 != (uint *)0x0) {
-      puVar11 = (uint *)ExAllocatePool2(0x100,0x4000,0x70527348);
-      if (puVar11 == (uint *)0x0) {
-        puVar21 = (uint *)0xc000009a;
+      puVar7 = (uint *)ExAllocatePool2(0x100,0x4000,0x70527348);
+      if (puVar7 == (uint *)0x0) {
+        puVar15 = (uint *)0xc000009a;
         HsmDbgBreakOnStatus(-0x3fffff66);
+        puVar16 = (uint *)0xc000009a;
         if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-            ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+            (puVar16 = puVar15, (*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
            (1 < (byte)WPP_GLOBAL_Control[0x29])) {
           WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x62,
-                     &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
-          puVar21 = (uint *)0xc000009a;
+                     &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_1);
         }
         goto LAB_0;
       }
-      uVar8 = FltAllocateExtraCreateParameterList(DAT_1,0,&local_158);
-      puVar21 = (uint *)(ulonglong)uVar8;
-      HsmDbgBreakOnStatus(uVar8);
-      if ((int)uVar8 < 0) {
+      uVar4 = FltAllocateExtraCreateParameterList(DAT_1,0,&local_158);
+      puVar16 = (uint *)(ulonglong)uVar4;
+      HsmDbgBreakOnStatus(uVar4);
+      if ((int)uVar4 < 0) {
         if ((((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
             ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0)) ||
            ((byte)WPP_GLOBAL_Control[0x29] < 2)) goto LAB_0;
-        uVar17 = 99;
+        uVar12 = 99;
       }
       else {
-        uVar8 = FltAllocateExtraCreateParameterFromLookasideList
+        uVar4 = FltAllocateExtraCreateParameterFromLookasideList
                           (DAT_1,&GUID_ECP_ATOMIC_CREATE,0x58);
-        puVar21 = (uint *)(ulonglong)uVar8;
-        HsmDbgBreakOnStatus(uVar8);
-        if ((int)uVar8 < 0) {
+        puVar16 = (uint *)(ulonglong)uVar4;
+        HsmDbgBreakOnStatus(uVar4);
+        if ((int)uVar4 < 0) {
           if ((((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
               ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0)) ||
              ((byte)WPP_GLOBAL_Control[0x29] < 2)) goto LAB_0;
-          uVar17 = 100;
+          uVar12 = 100;
         }
         else {
           FltInsertExtraCreateParameter(DAT_1,local_158,0);
-          uVar8 = ObReferenceObjectByHandle(param_2,0,*(undefined8 *)IoFileObjectType_exref,0);
-          puVar21 = (uint *)(ulonglong)uVar8;
-          HsmDbgBreakOnStatus(uVar8);
-          if (-1 < (int)uVar8) {
-            puVar22 = (uint *)0x0;
+          uVar4 = ObReferenceObjectByHandle(param_2,0,*(undefined8 *)IoFileObjectType_exref,0);
+          puVar16 = (uint *)(ulonglong)uVar4;
+          HsmDbgBreakOnStatus(uVar4);
+          if (-1 < (int)uVar4) {
+            puVar16 = (uint *)0x0;
             do {
-              pppplVar20 = (longlong ****)0x50;
+              local_1c8 = (undefined1 (*) [16])0x0;
+              pppplVar19 = (longlong ****)0x50;
               memset(local_b8,0,0x50);
-              pauVar12 = (undefined1 (*) [16])((ulonglong)local_18c + (longlong)local_1c0);
+              pauVar8 = (undefined1 (*) [16])((ulonglong)local_18c + (longlong)local_1c0);
               local_138 = 0;
               puStack_130 = (undefined1 *)0x0;
+              pauVar14 = (undefined1 (*) [16])0x0;
               local_f8 = 0;
               uStack_f0 = 0;
               local_e8 = (undefined8 *)0x0;
               uStack_e0 = 0;
               local_d8 = 0;
               uStack_d0 = uStack_d0 & 0xffffffff00000000;
               local_c8 = 0;
               uStack_c0 = 0;
               local_68 = (longlong **)0x0;
               uStack_60 = 0;
               local_58 = 0;
               uStack_50 = 0;
               local_48 = 0;
-              bVar23 = true;
-              uVar8 = local_150 - local_18c;
-              local_1c8 = (undefined1 (*) [16])(ulonglong)uVar8;
-              if (uVar8 < 0x50) {
-                uVar8 = 0xc000cf0b;
+              bVar20 = true;
+              uVar4 = local_150 - local_18c;
+              if (uVar4 < 0x50) {
+                uVar4 = 0xc000cf0b;
                 HsmDbgBreakOnStatus(-0x3fff30f5);
-                puVar21 = (uint *)(ulonglong)(~-(uint)(local_1a4 != 0) & 0xc000cf0b);
+                puVar16 = (uint *)(ulonglong)(~-(uint)(local_1a8 != 0) & 0xc000cf0b);
                 if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                     ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                    (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                  local_1c8 = (undefined1 (*) [16])0x66;
-LAB_2:
-                  uVar15 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-LAB_3:
-                  uVar8 = 0xc000cf0b;
-                  pppplVar20 = (longlong ****)&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids;
-                  WPP_SF_iid(uVar15,(short)local_1c8,
-                             &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
+                  pauVar14 = (undefined1 (*) [16])0x66;
+                  goto LAB_2;
                 }
                 break;
               }
-              local_b8 = *pauVar12;
-              local_a8 = *(longlong ***)pauVar12[1];
-              uStack_a0 = *(undefined8 *)(pauVar12[1] + 8);
-              local_98 = *(undefined8 *)pauVar12[2];
-              uStack_90 = *(undefined8 *)(pauVar12[2] + 8);
-              local_88 = *(ulonglong *)pauVar12[3];
-              ppplStack_80 = *(longlong ****)(pauVar12[3] + 8);
-              local_78 = *(undefined8 *)pauVar12[4];
-              uStack_70 = *(undefined8 *)(pauVar12[4] + 8);
-              pppplVar20 = (longlong ****)(local_b8._8_8_ >> 0x20 & 0xffff);
-              uVar9 = (uint)pppplVar20;
-              uVar3 = local_b8._14_2_;
-              uVar13 = local_b8._10_2_;
-              uVar14 = local_b8._8_2_;
-              uVar2 = uVar9 + uVar3;
-              if (uVar9 + uVar3 < (uint)uVar14 + (uint)uVar13) {
-                uVar2 = (uint)uVar14 + (uint)uVar13;
-              }
-              if (((uVar8 < uVar14) || (uVar8 - uVar14 < (uint)uVar13)) ||
-                 ((uVar8 < uVar9 || (uVar8 - uVar9 < (uint)uVar3)))) {
-LAB_4:
-                uVar8 = 0xc000cf0b;
+              local_b8 = *pauVar8;
+              local_a8 = *(longlong ***)pauVar8[1];
+              uStack_a0 = *(undefined8 *)(pauVar8[1] + 8);
+              local_98 = *(undefined8 *)pauVar8[2];
+              uStack_90 = *(undefined8 *)(pauVar8[2] + 8);
+              local_88 = *(ulonglong *)pauVar8[3];
+              ppplStack_80 = *(longlong ****)(pauVar8[3] + 8);
+              local_78 = *(undefined8 *)pauVar8[4];
+              uStack_70 = *(undefined8 *)(pauVar8[4] + 8);
+              uVar18 = (local_b8._12_4_ & 0xffff) + (uint)local_b8._14_2_;
+              pauVar14 = (undefined1 (*) [16])(local_b8._8_8_ >> 0x10);
+              uVar5 = (local_b8._10_4_ & 0xffff) + (uint)local_b8._8_2_;
+              if (uVar18 < uVar5) {
+                uVar18 = uVar5;
+              }
+              uVar9 = Feature_2175866168__private_IsEnabledDeviceUsage();
+              pppplVar19 = (longlong ****)(ulonglong)(ushort)local_b8._8_2_;
+              if ((int)uVar9 == 0) {
+                if (((((ushort)local_b8._8_2_ < uVar4 || (ushort)local_b8._8_2_ == uVar4) &&
+                     (pauVar14 = (undefined1 (*) [16])(ulonglong)(ushort)local_b8._10_2_,
+                     (uint)(ushort)local_b8._10_2_ <= uVar4 - (ushort)local_b8._8_2_)) &&
+                    (((ushort)local_b8._12_2_ <= uVar4 &&
+                     ((uint)(ushort)local_b8._14_2_ <= uVar4 - (ushort)local_b8._12_2_)))) &&
+                   ((local_b8._0_4_ == 0 ||
+                    ((uVar18 <= (uint)local_b8._0_4_ && ((uint)local_b8._0_4_ <= uVar4))))))
+                goto LAB_3;
+                uVar4 = 0xc000cf0b;
                 HsmDbgBreakOnStatus(-0x3fff30f5);
-                puVar21 = (uint *)(ulonglong)(~-(uint)(local_1a4 != 0) & 0xc000cf0b);
+                puVar16 = (uint *)(ulonglong)(~-(uint)(local_1a8 != 0) & 0xc000cf0b);
                 if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                    (((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0 &&
                     (1 < (byte)WPP_GLOBAL_Control[0x29])))) {
-                  local_1c8 = (undefined1 (*) [16])0x67;
-                  uVar15 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-                  goto LAB_3;
+                  pauVar14 = (undefined1 (*) [16])0x68;
+                  uVar11 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+LAB_4:
+                  uVar4 = 0xc000cf0b;
+                  pppplVar19 = (longlong ****)&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids;
+                  WPP_SF_iid(uVar11,(short)pauVar14,&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids
+                             ,param_1);
                 }
                 break;
               }
-              pppplVar20 = (longlong ****)(ulonglong)(uint)local_b8._0_4_;
-              if ((local_b8._0_4_ != 0) &&
-                 (((uint)local_b8._0_4_ < uVar2 || (uVar8 < (uint)local_b8._0_4_))))
-              goto LAB_4;
-              local_1c8 = (undefined1 (*) [16])(*pauVar12 + uVar14);
-              for (uVar14 = 0; puVar21 = puVar22, uVar14 < uVar13 >> 1; uVar14 = uVar14 + 1) {
-                if ((*(short *)(*local_1c8 + (ulonglong)uVar14 * 2) == 0x5c) ||
-                   (*(short *)(*local_1c8 + (ulonglong)uVar14 * 2) == 0x3a)) {
-                  HsmDbgBreakOnStatus(-0x3fff30f5);
-                  uVar8 = 0xc000cf0b;
-                  if (((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
-                     ((uVar8 = 0xc000cf0b, (*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0 ||
-                      ((byte)WPP_GLOBAL_Control[0x29] < 2)))) goto LAB_5;
-                  local_1c8 = (undefined1 (*) [16])0x68;
-                  goto LAB_6;
-                }
+              if (((((uVar4 < (ushort)local_b8._8_2_) ||
+                    (pauVar14 = (undefined1 (*) [16])(ulonglong)(ushort)local_b8._10_2_,
+                    uVar4 - (ushort)local_b8._8_2_ < (uint)(ushort)local_b8._10_2_)) ||
+                   (uVar4 < (ushort)local_b8._12_2_)) ||
+                  ((uVar4 - (ushort)local_b8._12_2_ < (uint)(ushort)local_b8._14_2_ ||
+                   (0x1000 < (ushort)local_b8._14_2_)))) ||
+                 ((local_b8._0_4_ != 0 &&
+                  (((uint)local_b8._0_4_ < uVar18 || (uVar4 < (uint)local_b8._0_4_)))))) {
+                HsmDbgBreakOnStatus(-0x3fff30f5);
+                puVar16 = (uint *)(ulonglong)(~-(uint)(local_1a8 != 0) & 0xc000cf0b);
+                uVar4 = 0xc000cf0b;
+                if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                   ((uVar4 = 0xc000cf0b, (*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0 &&
+                    (1 < (byte)WPP_GLOBAL_Control[0x29])))) {
+                  pauVar14 = (undefined1 (*) [16])0x67;
+LAB_2:
+                  uVar11 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+                  goto LAB_4;
+                }
+                break;
+              }
+LAB_3:
+              uVar13 = (ushort)local_b8._10_2_ >> 1;
+              pauVar14 = (undefined1 (*) [16])(ulonglong)uVar13;
+              pppplVar19 = (longlong ****)0x0;
+              if (uVar13 != 0) {
+                do {
+                  if ((*(short *)(*pauVar8 +
+                                 (longlong)pppplVar19 * 2 + (ulonglong)(ushort)local_b8._8_2_) ==
+                       0x5c) ||
+                     (*(short *)(*pauVar8 +
+                                (longlong)pppplVar19 * 2 + (ulonglong)(ushort)local_b8._8_2_) ==
+                      0x3a)) {
+                    uVar4 = 0xc000cf0b;
+                    HsmDbgBreakOnStatus(-0x3fff30f5);
+                    if (((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
+                       (((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0 ||
+                        ((byte)WPP_GLOBAL_Control[0x29] < 2)))) goto LAB_5;
+                    pauVar14 = (undefined1 (*) [16])0x69;
+                    goto LAB_6;
+                  }
+                  uVar17 = (short)pppplVar19 + 1;
+                  pppplVar19 = (longlong ****)(ulonglong)uVar17;
+                } while (uVar17 < uVar13);
               }
               if ((local_b8._0_4_ & 3) != 0) {
+                uVar4 = 0xc000cf0b;
                 HsmDbgBreakOnStatus(-0x3fff30f5);
-                uVar8 = 0xc000cf0b;
                 if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                    (uVar8 = 0xc000cf0b, (*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+                    ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                    (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                  local_1c8 = (undefined1 (*) [16])0x69;
-                  puVar21 = puVar19;
+                  pauVar14 = (undefined1 (*) [16])0x6a;
+                  puVar16 = puVar15;
                   goto LAB_2;
                 }
                 break;
               }
-              uVar4 = local_88 & 0x10;
-              uVar5 = local_88 & 0x10;
-              uVar6 = local_88 & 0x10;
+              uVar9 = local_88 & 0x10;
+              uVar2 = local_88 & 0x10;
+              uVar3 = local_88 & 0x10;
               if (((((local_88 & 0x10) == 0) && ((param_3 & 2) == 0)) &&
                   ((longlong ****)ppplStack_80 != (longlong ****)0x0)) ||
                  ((((local_88 & 0x10) != 0 && ((param_3 & 4) == 0)) && ((local_b8[4] & 0x40) == 0)))
                  ) {
-                uVar8 = 0xc000cf0b;
+                HsmDbgBreakOnStatus(-0x3fff30f5);
+                uVar4 = 0xc000cf0b;
+                if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                    (uVar4 = 0xc000cf0b, (*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+                   (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+                  pauVar14 = (undefined1 (*) [16])0x6b;
+LAB_6:
+                  uVar4 = 0xc000cf0b;
+LAB_7:
+                  pppplVar19 = (longlong ****)&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids;
+                  WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),(short)pauVar14,
+                             &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_1);
+                }
+              }
+              else if (local_b8._14_2_ == 0) {
+                uVar4 = 0xc000cf0b;
                 HsmDbgBreakOnStatus(-0x3fff30f5);
                 if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                     ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                    (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                  local_1c8 = (undefined1 (*) [16])0x6a;
-LAB_6:
-                  uVar8 = 0xc000cf0b;
-LAB_7:
-                  pppplVar20 = (longlong ****)&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids;
-                  WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),(short)local_1c8,
-                             &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
-                }
-              }
-              else if (uVar3 == 0) {
-                uVar8 = 0xc000cf0b;
-                HsmDbgBreakOnStatus(-0x3fff30f5);
-                if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                    ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
-                   (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                  local_1c8 = (undefined1 (*) [16])0x6b;
+                  pauVar14 = (undefined1 (*) [16])0x6c;
                   goto LAB_6;
                 }
               }
               else {
-                local_1a4 = local_1a4 + 1;
-                uVar7 = (ulonglong)local_78 >> 0x20;
-                local_78 = CONCAT44((int)uVar7,0xc000cf07);
+                local_1a8 = local_1a8 + 1;
+                local_78 = CONCAT44(local_78._4_4_,0xc000cf07);
                 uStack_70 = 0;
                 if ((local_88 & 0x10) != 0) {
-                  pppplVar20 = (longlong ****)0x4;
-                  local_1c8 = local_148;
-                  uVar8 = HsmpAccessCheck(param_1,(ulonglong)local_148,4);
-                  HsmDbgBreakOnStatus(uVar8);
-                  if ((int)uVar8 < 0) {
-                    puVar16 = WPP_GLOBAL_Control;
+                  pppplVar19 = (longlong ****)0x4;
+                  pauVar14 = local_148;
+                  uVar4 = HsmpAccessCheck(param_1,(ulonglong)local_148,4);
+                  HsmDbgBreakOnStatus(uVar4);
+                  if ((int)uVar4 < 0) {
+                    puVar10 = WPP_GLOBAL_Control;
                     if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                        (local_1c8 = (undefined1 (*) [16])
-                                     (ulonglong)*(uint *)(WPP_GLOBAL_Control + 0x2c),
+                        (pauVar14 = (undefined1 (*) [16])
+                                    (ulonglong)*(uint *)(WPP_GLOBAL_Control + 0x2c),
                         (*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                        (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                      local_1c8 = (undefined1 (*) [16])0x6c;
-                      pppplVar20 = (longlong ****)&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids;
-                      puVar16 = *(undefined **)(WPP_GLOBAL_Control + 0x18);
-                      WPP_SF_iid(puVar16,0x6c,&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,
+                      pauVar14 = (undefined1 (*) [16])0x6d;
+                      pppplVar19 = (longlong ****)&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids;
+                      puVar10 = *(undefined **)(WPP_GLOBAL_Control + 0x18);
+                      WPP_SF_iid(puVar10,0x6d,&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,
                                  param_1);
                     }
-                    TlmWriteAccessDeniedForAddSubDirectory(puVar16,local_1c8,pppplVar20);
+                    TlmWriteAccessDeniedForAddSubDirectory(puVar10,pauVar14,pppplVar19);
                     goto LAB_5;
                   }
                 }
-                local_170 = (uint)local_88 | 0x401000;
-                if (uVar4 == 0) {
-                  local_1a8 = (uint)local_88 >> 9 & 1;
+                local_180 = (uint)local_88 | 0x401000;
+                if (uVar9 == 0) {
+                  local_1a4 = (uint)local_88 >> 9 & 1;
                 }
                 else {
-                  local_1a8 = 0x10;
+                  local_1a4 = 0x10;
                   if ((local_b8[4] & 0x40) != 0) {
-                    local_1a8 = 0x16;
-                    local_170 = (uint)local_88 & 0xffbfefff;
+                    local_1a4 = 0x16;
+                    local_180 = (uint)local_88 & 0xffbfefff;
                   }
                 }
                 if ((local_b8[4] & 1) != 0) {
-                  local_1a8 = local_1a8 | 0x40;
+                  local_1a4 = local_1a4 | 0x40;
                 }
                 if ((local_b8._4_4_ & 0x400) != 0) {
-                  local_1a8 = local_1a8 | 0x100;
-                }
-                pppplVar20 = (longlong ****)(*pauVar12 + (ushort)local_b8._12_2_);
-                local_1c8 = (undefined1 (*) [16])(ulonglong)local_1a8;
-                uVar8 = HsmpRpBuildBuffer(ppplStack_80,local_1a8,pppplVar20,local_b8._14_2_,puVar11)
-                ;
-                HsmDbgBreakOnStatus(uVar8);
-                if ((int)uVar8 < 0) {
+                  local_1a4 = local_1a4 | 0x100;
+                }
+                pppplVar19 = (longlong ****)(*pauVar8 + (ushort)local_b8._12_2_);
+                pauVar14 = (undefined1 (*) [16])(ulonglong)local_1a4;
+                uVar4 = HsmpRpBuildBuffer(ppplStack_80,local_1a4,pppplVar19,local_b8._14_2_,puVar7);
+                HsmDbgBreakOnStatus(uVar4);
+                if ((int)uVar4 < 0) {
                   if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                       ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                      (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                    local_1c8 = (undefined1 (*) [16])0x6d;
+                    pauVar14 = (undefined1 (*) [16])0x6e;
                     goto LAB_7;
                   }
                 }
                 else {
                   uRam0000000000000000 = 0x58;
                   uRam0000000000000002 = 0x1e32;
                   uRam0000000000000004 = 0;
-                  sRam0000000000000006 = (short)puVar11[1] + 8;
+                  sRam0000000000000006 = (short)puVar7[1] + 8;
                   _DAT_8 = &local_a8;
-                  uRam0000000000000028 = local_170;
-                  if (uVar5 == 0) {
+                  uRam0000000000000028 = local_180;
+                  if (uVar2 == 0) {
                     if (0 < (longlong)ppplStack_80) {
                       uRam0000000000000002 = 0x1e33;
                     }
                     pppplRam0000000000000010 = (longlong ****)ppplStack_80;
                     pppplRam0000000000000018 = (longlong ****)ppplStack_80;
                     uRam0000000000000002 = uRam0000000000000002 | 0xc;
                   }
                   uRam000000000000002c = 8;
                   local_118 = 0;
                   uStack_110 = 0;
                   local_128 = 0x28;
                   local_108 = 1;
                   lStack_120 = local_158;
-                  puStack_130 = *pauVar12 + (ushort)local_b8._8_2_;
+                  puStack_130 = *pauVar8 + (ushort)local_b8._8_2_;
                   local_138._0_4_ = CONCAT22(local_b8._10_2_,local_b8._10_2_);
                   local_f8 = CONCAT44(local_f8._4_4_,0x30);
                   uStack_e0 = CONCAT44(uStack_e0._4_4_,0x240);
                   local_e8 = &local_138;
                   local_d8 = 0;
                   uStack_d0 = 0;
-                  pppplVar20 = (longlong ****)&local_160;
-                  pauVar18 = pauVar1;
+                  pppplVar19 = (longlong ****)&local_160;
+                  pauVar14 = pauVar1;
                   uStack_f0 = param_2;
-                  puRam0000000000000008 = puVar11;
-                  uVar8 = FltCreateFileEx2(DAT_1);
-                  HsmDbgBreakOnStatus(uVar8);
-                  if ((uVar8 == 0xc0000035) || (uVar8 == 0xc0000279)) {
-                    bVar23 = (local_b8._4_4_ & 0x4000) == 0;
-                  }
-                  if (!bVar23) {
-                    pppplVar20 = (longlong ****)&local_160;
-                    pauVar18 = pauVar1;
-                    uVar8 = FltCreateFileEx(DAT_1);
-                    HsmDbgBreakOnStatus(uVar8);
-                  }
-                  local_1c8 = (undefined1 (*) [16])0x0;
-                  if ((int)uVar8 < 0) {
-                    local_1c8 = pauVar18;
+                  puRam0000000000000008 = puVar7;
+                  uVar4 = FltCreateFileEx2(DAT_1);
+                  HsmDbgBreakOnStatus(uVar4);
+                  if ((uVar4 == 0xc0000035) || (uVar4 == 0xc0000279)) {
+                    bVar20 = (local_b8._4_4_ & 0x4000) == 0;
+                  }
+                  if (!bVar20) {
+                    pppplVar19 = (longlong ****)&local_160;
+                    pauVar14 = pauVar1;
+                    uVar4 = FltCreateFileEx(DAT_1);
+                    HsmDbgBreakOnStatus(uVar4);
+                  }
+                  if ((int)uVar4 < 0) {
                     if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                         ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                        (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                      local_1c8 = (undefined1 (*) [16])0x6e;
+                      pauVar14 = (undefined1 (*) [16])0x6f;
                       goto LAB_7;
                     }
                   }
-                  else if (bVar23) {
-                    *(longlong ***)pauVar12[1] = local_a8;
-                    *(undefined8 *)(pauVar12[1] + 8) = uStack_a0;
-                    *(undefined8 *)pauVar12[2] = local_98;
-                    *(undefined8 *)(pauVar12[2] + 8) = uStack_90;
-                    *(uint *)pauVar12[3] = uRam0000000000000028;
-                    *(undefined8 *)(pauVar12[4] + 8) = uRam0000000000000030;
-                    local_1c8 = pauVar12;
+                  else if (bVar20) {
+                    *(longlong ***)pauVar8[1] = local_a8;
+                    *(undefined8 *)(pauVar8[1] + 8) = uStack_a0;
+                    *(undefined8 *)pauVar8[2] = local_98;
+                    *(undefined8 *)(pauVar8[2] + 8) = uStack_90;
+                    *(uint *)pauVar8[3] = uRam0000000000000028;
+                    *(undefined8 *)(pauVar8[4] + 8) = uRam0000000000000030;
+                    local_1c8 = pauVar8;
 LAB_9:
+                    pauVar14 = local_1c8;
                     if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                         ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                        (3 < (byte)WPP_GLOBAL_Control[0x29])) {
-                      local_1c8 = (undefined1 (*) [16])0x77;
-                      pppplVar20 = (longlong ****)&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids;
-                      WPP_SF_id(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x77,
-                                &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
+                      pauVar14 = (undefined1 (*) [16])0x78;
+                      pppplVar19 = (longlong ****)&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids;
+                      WPP_SF_id(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x78,
+                                &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_1);
                     }
                   }
                   else {
-                    pppplVar20 = (longlong ****)0x8;
-                    pauVar18 = local_1c8;
-                    uVar8 = HsmpMarkHandleUsnSourceInfo(param_1,0,8,0);
-                    HsmDbgBreakOnStatus(uVar8);
-                    if ((int)uVar8 < 0) {
-                      local_1c8 = pauVar18;
+                    pppplVar19 = (longlong ****)0x8;
+                    pauVar14 = local_1c8;
+                    uVar4 = HsmpMarkHandleUsnSourceInfo(param_1,0,8,0);
+                    HsmDbgBreakOnStatus(uVar4);
+                    if ((int)uVar4 < 0) {
                       if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                           ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                          (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                        local_1c8 = (undefined1 (*) [16])0x6f;
+                        pauVar14 = (undefined1 (*) [16])0x70;
                         goto LAB_7;
                       }
                     }
                     else {
-                      pauVar18 = local_1c8;
-                      pppplVar20 = (longlong ****)ppplStack_80;
-                      uVar8 = HsmpRpCreate(param_1,0,(longlong)ppplStack_80,local_1a8,
-                                           *pauVar12 + (ushort)local_b8._12_2_,local_b8._14_2_,'\0')
-                      ;
-                      HsmDbgBreakOnStatus(uVar8);
-                      if ((int)uVar8 < 0) {
-                        local_1c8 = pauVar18;
+                      pauVar14 = local_1c8;
+                      pppplVar19 = (longlong ****)ppplStack_80;
+                      uVar4 = HsmpRpCreate(param_1,0,(longlong)ppplStack_80,local_1a4,
+                                           *pauVar8 + (ushort)local_b8._12_2_,local_b8._14_2_,'\0');
+                      HsmDbgBreakOnStatus(uVar4);
+                      if ((int)uVar4 < 0) {
                         if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                             ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                            (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                          local_1c8 = (undefined1 (*) [16])0x70;
+                          pauVar14 = (undefined1 (*) [16])0x71;
                           goto LAB_7;
                         }
                       }
-                      else if ((uVar6 == 0) && ((longlong ****)ppplStack_80 != (longlong ****)0x0))
+                      else if ((uVar3 == 0) && ((longlong ****)ppplStack_80 != (longlong ****)0x0))
                       {
-                        pppplVar20 = (longlong ****)CONCAT71((int7)((ulonglong)pppplVar20 >> 8),1);
-                        pauVar18 = local_1c8;
-                        uVar8 = HsmpToggleFileSparseAttribute(param_1,0,'\x01');
-                        HsmDbgBreakOnStatus(uVar8);
-                        if ((int)uVar8 < 0) {
-                          local_1c8 = pauVar18;
+                        pppplVar19 = (longlong ****)CONCAT71((int7)((ulonglong)pppplVar19 >> 8),1);
+                        pauVar14 = local_1c8;
+                        uVar4 = HsmpToggleFileSparseAttribute(param_1,0,'\x01');
+                        HsmDbgBreakOnStatus(uVar4);
+                        if ((int)uVar4 < 0) {
                           if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                               ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                              (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                            local_1c8 = (undefined1 (*) [16])0x71;
+                            pauVar14 = (undefined1 (*) [16])0x72;
                             goto LAB_7;
                           }
                         }
                         else {
-                          pppplVar20 = &ppplStack_80;
-                          pauVar18 = local_1c8;
-                          uVar8 = FltSetInformationFile(pauVar1,0,pppplVar20,8);
-                          HsmDbgBreakOnStatus(uVar8);
-                          if ((int)uVar8 < 0) {
-                            local_1c8 = pauVar18;
+                          pppplVar19 = &ppplStack_80;
+                          pauVar14 = local_1c8;
+                          uVar4 = FltSetInformationFile(pauVar1,0,pppplVar19,8);
+                          HsmDbgBreakOnStatus(uVar4);
+                          if ((int)uVar4 < 0) {
                             if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                                 ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                                (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                              local_1c8 = (undefined1 (*) [16])0x72;
+                              pauVar14 = (undefined1 (*) [16])0x73;
                               goto LAB_7;
                             }
                           }
                           else {
-                            pauVar18 = local_1c8;
-                            pppplVar20 = (longlong ****)ppplStack_80;
-                            uVar8 = HsmpSetFileVDL(pauVar1,0,ppplStack_80);
-                            HsmDbgBreakOnStatus(uVar8);
-                            if (-1 < (int)uVar8) goto LAB_10;
-                            local_1c8 = pauVar18;
+                            pauVar14 = local_1c8;
+                            pppplVar19 = (longlong ****)ppplStack_80;
+                            uVar4 = HsmpSetFileVDL(pauVar1,0,ppplStack_80);
+                            HsmDbgBreakOnStatus(uVar4);
+                            if (-1 < (int)uVar4) goto LAB_10;
                             if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                                 ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                                (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                              local_1c8 = (undefined1 (*) [16])0x73;
+                              pauVar14 = (undefined1 (*) [16])0x74;
                               goto LAB_7;
                             }
                           }
                         }
                       }
                       else {
 LAB_10:
                         local_68 = local_a8;
                         uStack_60 = uStack_a0;
                         local_58 = local_98;
                         uStack_50 = uStack_90;
-                        local_48 = CONCAT44((int)(local_88 >> 0x20),local_170);
-                        pppplVar20 = (longlong ****)&local_68;
-                        pauVar18 = local_1c8;
-                        uVar8 = FltSetInformationFile(pauVar1,0,pppplVar20,0x28);
-                        HsmDbgBreakOnStatus(uVar8);
-                        if ((int)uVar8 < 0) {
-                          local_1c8 = pauVar18;
+                        local_48 = CONCAT44((int)(local_88 >> 0x20),local_180);
+                        pppplVar19 = (longlong ****)&local_68;
+                        pauVar14 = local_1c8;
+                        uVar4 = FltSetInformationFile(pauVar1,0,pppplVar19,0x28);
+                        HsmDbgBreakOnStatus(uVar4);
+                        if ((int)uVar4 < 0) {
                           if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                               ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                              (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                            local_1c8 = (undefined1 (*) [16])0x74;
+                            pauVar14 = (undefined1 (*) [16])0x75;
                             goto LAB_7;
                           }
                         }
                         else {
-                          pppplVar20 = (longlong ****)(pauVar12[4] + 8);
-                          pauVar18 = local_1c8;
-                          uVar8 = HsmpQueryLastEffectiveUsn(pauVar1,0,(longlong *)pppplVar20);
-                          HsmDbgBreakOnStatus(uVar8);
-                          if ((int)uVar8 < 0) {
-                            local_1c8 = pauVar18;
+                          pppplVar19 = (longlong ****)(pauVar8[4] + 8);
+                          pauVar14 = local_1c8;
+                          uVar4 = HsmpQueryLastEffectiveUsn(pauVar1,0,(longlong *)pppplVar19);
+                          HsmDbgBreakOnStatus(uVar4);
+                          if ((int)uVar4 < 0) {
                             if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                                 ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 8) != 0)) &&
                                (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                              local_1c8 = (undefined1 (*) [16])0x75;
+                              pauVar14 = (undefined1 (*) [16])0x76;
                               goto LAB_7;
                             }
                           }
                           else {
-                            pppplVar20 = (longlong ****)&local_68;
-                            uVar8 = FltQueryInformationFile(pauVar1,0,pppplVar20,0x28);
-                            HsmDbgBreakOnStatus(uVar8);
-                            if (-1 < (int)uVar8) {
-                              *(longlong ***)pauVar12[1] = local_68;
-                              *(undefined8 *)(pauVar12[1] + 8) = uStack_60;
-                              *(undefined8 *)pauVar12[2] = local_58;
-                              *(undefined8 *)(pauVar12[2] + 8) = uStack_50;
-                              *(undefined8 *)pauVar12[3] = local_48;
+                            pppplVar19 = (longlong ****)&local_68;
+                            uVar4 = FltQueryInformationFile(pauVar1,0,pppplVar19,0x28);
+                            HsmDbgBreakOnStatus(uVar4);
+                            if (-1 < (int)uVar4) {
+                              *(longlong ***)pauVar8[1] = local_68;
+                              *(undefined8 *)(pauVar8[1] + 8) = uStack_60;
+                              *(undefined8 *)pauVar8[2] = local_58;
+                              *(undefined8 *)(pauVar8[2] + 8) = uStack_50;
+                              *(undefined8 *)pauVar8[3] = local_48;
                               goto LAB_9;
                             }
+                            pauVar14 = local_1c8;
                             if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                                 ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 8) != 0)) &&
                                (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                              local_1c8 = (undefined1 (*) [16])0x76;
+                              pauVar14 = (undefined1 (*) [16])0x77;
                               goto LAB_7;
                             }
                           }
                         }
                       }
                     }
                   }
                 }
               }
 LAB_5:
-              *(uint *)pauVar12[4] = uVar8;
+              *(uint *)pauVar8[4] = uVar4;
               if ((longlong ***)local_160 != (longlong ***)0x0) {
                 FltClose();
                 local_160 = (longlong **)0x0;
               }
-              if (((int)uVar8 < 0) && ((param_3 & 1) != 0)) break;
-              uVar9 = 0;
+              if (((int)uVar4 < 0) && ((param_3 & 1) != 0)) break;
+              uVar18 = 0;
               if (local_b8._0_4_ != 0) {
-                uVar9 = local_18c + local_b8._0_4_;
-              }
-              puVar21 = puVar19;
-              local_18c = uVar9;
-            } while (uVar9 != 0);
-            if (local_1a4 == 0) {
-              puVar21 = (uint *)(ulonglong)uVar8;
+                uVar18 = local_18c + local_b8._0_4_;
+              }
+              local_18c = uVar18;
+            } while (uVar18 != 0);
+            if (local_1a8 == 0) {
+              puVar16 = (uint *)(ulonglong)uVar4;
             }
             else if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                      ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                     (3 < (byte)WPP_GLOBAL_Control[0x29])) {
-              WPP_SF_qqdd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),local_1c8,pppplVar20,param_1);
+              WPP_SF_qqdd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),pauVar14,pppplVar19,param_1);
             }
-            *local_100 = local_1a4;
+            *local_100 = local_1a8;
             goto LAB_0;
           }
           if ((((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
               ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0)) ||
              ((byte)WPP_GLOBAL_Control[0x29] < 2)) goto LAB_0;
-          uVar17 = 0x65;
+          uVar12 = 0x65;
         }
       }
-      WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar17,
-                 &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
+      WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar12,
+                 &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_1);
       goto LAB_0;
     }
     HsmDbgBreakOnStatus(-0x3fffff66);
     if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
         ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) && (1 < (byte)WPP_GLOBAL_Control[0x29]))
     {
       WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x61,
-                 &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_1);
+                 &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_1);
     }
   }
-  puVar21 = (uint *)0xc000009a;
+  puVar16 = (uint *)0xc000009a;
 LAB_0:
-  if (puVar11 != (uint *)0x0) {
-    ExFreePoolWithTag(puVar11,0x70527348);
+  if (puVar7 != (uint *)0x0) {
+    ExFreePoolWithTag(puVar7,0x70527348);
   }
   if (local_158 != 0) {
     FltFreeExtraCreateParameterList(DAT_1);
   }
   if (local_1c0 != (uint *)0x0) {
-    MmUnlockPages(lVar10);
+    MmUnlockPages(lVar6);
   }
-  if (lVar10 != 0) {
-    IoFreeMdl(lVar10);
+  if (lVar6 != 0) {
+    IoFreeMdl(lVar6);
   }
   if (local_148 != (undefined1 (*) [16])0x0) {
     ObfDereferenceObject();
   }
-  return puVar21;
+  return puVar16;
 }
 

```


## CldiPortProcessAckNotification

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|code,length,sig,address,called|
|ratio|0.08|
|i_ratio|0.55|
|m_ratio|0.98|
|b_ratio|0.9|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|CldiPortProcessAckNotification|CldiPortProcessAckNotification|
|fullname|CldiPortProcessAckNotification|CldiPortProcessAckNotification|
|refcount|2|2|
|`length`|1501|1563|
|`called`|CldSyncAckDehydrate<br>CldSyncAckDelete<br>CldSyncAckRename<br>CldiPortLookupSyncRootNoLock<br>CldiPortSanitizeCompletionStatus<br>FLTMGR.SYS::FltAcquirePushLockSharedEx<br>FLTMGR.SYS::FltReleasePushLockEx<br>HsmDbgBreakOnStatus<br>WPP_SF_id<br>WPP_SF_qii|<details><summary>Expand for full list:<br>CldSyncAckDehydrate<br>CldSyncAckDelete<br>CldSyncAckRename<br>CldiPortLookupSyncRootNoLock<br>CldiPortSanitizeCompletionStatus<br>FLTMGR.SYS::FltAcquirePushLockSharedEx<br>FLTMGR.SYS::FltReleasePushLockEx<br>Feature_2175866168__private_IsEnabledDeviceUsage<br>HsmDbgBreakOnStatus<br>WPP_SF_id<br>WPP_SF_qii</summary></details>|
|calling|CldiPortNotifyMessage|CldiPortNotifyMessage|
|paramcount|5|5|
|`address`|1c0039774|1c0039770|
|`sig`|void * __fastcall CldiPortProcessAckNotification(longlong param_1, undefined8 param_2, undefined8 param_3, longlong param_4, uint param_5)|int __fastcall CldiPortProcessAckNotification(longlong param_1, undefined8 param_2, undefined8 param_3, longlong param_4, uint param_5)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### CldiPortProcessAckNotification Called Diff


```diff
--- CldiPortProcessAckNotification called
+++ CldiPortProcessAckNotification called
@@ -7,0 +8 @@
+Feature_2175866168__private_IsEnabledDeviceUsage
```


### CldiPortProcessAckNotification Diff


```diff
--- CldiPortProcessAckNotification
+++ CldiPortProcessAckNotification
@@ -1,207 +1,231 @@
 
-void * CldiPortProcessAckNotification
-                 (longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4,
-                 uint param_5)
+int CldiPortProcessAckNotification
+              (longlong param_1,undefined8 param_2,undefined8 param_3,longlong param_4,uint param_5)
 
 {
   uint uVar1;
   uint uVar2;
   uint uVar3;
-  uint uVar4;
-  uint uVar5;
-  longlong lVar6;
-  undefined2 uVar7;
-  void *pvVar8;
-  void *pvVar9;
-  int iVar10;
-  uint uVar11;
+  int iVar4;
+  longlong lVar5;
+  ulonglong uVar6;
+  uint uVar7;
+  undefined2 uVar8;
+  int iVar9;
+  void *pvVar10;
+  void *pvVar11;
+  uint uVar12;
+  int iVar13;
   uint local_54;
   uint local_50;
-  longlong local_48;
+  longlong local_40;
+  int iVar14;
   
-  pvVar9 = (void *)0x0;
-  iVar10 = 0;
+  iVar14 = 0;
+  iVar13 = 0;
   local_50 = 0;
   local_54 = 0;
-  local_48 = 0;
-  uVar5 = 0;
-  if (((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xd)) ||
-         (uVar11 = *(uint *)(param_4 + 8), uVar11 < 0x78)) || (0x11 < *(ushort *)(param_4 + 0x70)))
-       || ((uVar3 = *(uint *)(param_4 + 0x74), uVar3 != 0 &&
-           ((uVar3 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar11 < uVar3)))))) ||
-      (uVar11 < *(ushort *)(param_4 + 0x72))) ||
-     (((uVar1 = *(ushort *)(param_4 + 0x72) + uVar3, uVar1 < uVar3 || (uVar11 < uVar1)) ||
-      ((*(ushort *)(param_4 + 0x70) != 6 || (*(short *)(param_4 + 0x72) != 8)))))) {
-    pvVar8 = (void *)0xc0000225;
+  local_40 = 0;
+  iVar4 = 0;
+  if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xd)) ||
+        (uVar2 = *(uint *)(param_4 + 8), uVar2 < 0x78)) || (0x11 < *(ushort *)(param_4 + 0x70))) ||
+      ((uVar12 = *(uint *)(param_4 + 0x74), uVar12 != 0 &&
+       ((uVar12 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar2 < uVar12)))))) ||
+     ((uVar2 < *(ushort *)(param_4 + 0x72) ||
+      (((uVar1 = *(ushort *)(param_4 + 0x72) + uVar12, uVar1 < uVar12 || (uVar2 < uVar1)) ||
+       ((*(ushort *)(param_4 + 0x70) != 6 || (*(short *)(param_4 + 0x72) != 8)))))))) {
+    iVar9 = -0x3ffffddb;
   }
   else {
-    local_48 = *(longlong *)((ulonglong)*(uint *)(param_4 + 0x74) + param_4);
-    pvVar8 = pvVar9;
-  }
-  HsmDbgBreakOnStatus((int)pvVar8);
-  if ((int)pvVar8 < 0) {
+    local_40 = *(longlong *)((ulonglong)*(uint *)(param_4 + 0x74) + param_4);
+    iVar9 = iVar14;
+  }
+  HsmDbgBreakOnStatus(iVar9);
+  if (iVar9 < 0) {
     if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return pvVar8;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-      return pvVar8;
+      return iVar9;
+    }
+    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) == 0) {
+      return iVar9;
     }
     if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return pvVar8;
-    }
-    uVar7 = 0x61;
+      return iVar9;
+    }
+    uVar8 = 0x62;
+  }
+  else {
+    if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xe)) ||
+          (uVar2 = *(uint *)(param_4 + 8), uVar2 < 0x80)) || (0x11 < *(ushort *)(param_4 + 0x78)))
+        || (((uVar12 = *(uint *)(param_4 + 0x7c), uVar12 != 0 &&
+             ((uVar12 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar2 < uVar12)))) ||
+            (uVar2 < *(ushort *)(param_4 + 0x7a))))) ||
+       (((uVar1 = *(ushort *)(param_4 + 0x7a) + uVar12, uVar1 < uVar12 || (uVar2 < uVar1)) ||
+        ((*(ushort *)(param_4 + 0x78) != 10 || (*(short *)(param_4 + 0x7a) != 4)))))) {
+      iVar9 = -0x3ffffddb;
+    }
+    else {
+      iVar4 = *(int *)((ulonglong)*(uint *)(param_4 + 0x7c) + param_4);
+      iVar9 = iVar14;
+    }
+    HsmDbgBreakOnStatus(iVar9);
+    if (iVar9 < 0) {
+      if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+        return iVar9;
+      }
+      if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) == 0) {
+        return iVar9;
+      }
+      if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+        return iVar9;
+      }
+      uVar8 = 99;
+    }
+    else {
+      if (((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 6)) ||
+           (uVar2 = *(uint *)(param_4 + 8), uVar2 < 0x40)) ||
+          ((0x11 < *(ushort *)(param_4 + 0x38) ||
+           ((uVar12 = *(uint *)(param_4 + 0x3c), uVar12 != 0 &&
+            ((uVar12 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar2 < uVar12)))))))) ||
+         ((uVar2 < *(ushort *)(param_4 + 0x3a) ||
+          (((uVar1 = *(ushort *)(param_4 + 0x3a) + uVar12, uVar1 < uVar12 || (uVar2 < uVar1)) ||
+           ((*(ushort *)(param_4 + 0x38) != 10 || (*(short *)(param_4 + 0x3a) != 4)))))))) {
+        iVar9 = -0x3ffffddb;
+      }
+      else {
+        local_50 = *(uint *)((ulonglong)*(uint *)(param_4 + 0x3c) + param_4);
+        iVar9 = iVar14;
+      }
+      HsmDbgBreakOnStatus(iVar9);
+      if (iVar9 < 0) {
+        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+          return iVar9;
+        }
+        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) == 0) {
+          return iVar9;
+        }
+        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+          return iVar9;
+        }
+        uVar8 = 100;
+      }
+      else {
+        if ((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xb)) ||
+              (uVar2 = *(uint *)(param_4 + 8), uVar2 < 0x68)) ||
+             (0x11 < *(ushort *)(param_4 + 0x60))) ||
+            ((((uVar12 = *(uint *)(param_4 + 100), uVar12 != 0 &&
+               ((uVar12 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar2 < uVar12)))) ||
+              (uVar2 < *(ushort *)(param_4 + 0x62))) ||
+             ((uVar1 = *(ushort *)(param_4 + 0x62) + uVar12, uVar1 < uVar12 || (uVar2 < uVar1))))))
+           || ((*(ushort *)(param_4 + 0x60) != 10 || (*(short *)(param_4 + 0x62) != 4)))) {
+          iVar9 = -0x3ffffddb;
+        }
+        else {
+          iVar13 = *(int *)((ulonglong)*(uint *)(param_4 + 100) + param_4);
+          iVar9 = iVar14;
+        }
+        HsmDbgBreakOnStatus(iVar9);
+        if (iVar9 < 0) {
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return iVar9;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) == 0) {
+            return iVar9;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return iVar9;
+          }
+          uVar8 = 0x65;
+        }
+        else {
+          uVar2 = CldiPortSanitizeCompletionStatus(iVar13);
+          if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+              ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) != 0)) &&
+             (3 < (byte)WPP_GLOBAL_Control[0x29])) {
+            WPP_SF_qii(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x66,
+                       &WPP_82dc34624fbd3f805255861060ed1674_Traceguids,param_1);
+          }
+          if (((((0x17 < param_5) && (0xb < *(ushort *)(param_4 + 0xe))) &&
+               ((uVar12 = *(uint *)(param_4 + 8), 0x6f < uVar12 &&
+                (*(ushort *)(param_4 + 0x68) < 0x12)))) &&
+              ((uVar1 = *(uint *)(param_4 + 0x6c), uVar1 == 0 ||
+               (((uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 <= uVar1 && (uVar1 <= uVar12)))))) &&
+             (((*(ushort *)(param_4 + 0x6a) <= uVar12 &&
+               (((uVar3 = *(ushort *)(param_4 + 0x6a) + uVar1, uVar1 <= uVar3 && (uVar3 <= uVar12))
+                && (*(ushort *)(param_4 + 0x68) == 10)))) && (*(short *)(param_4 + 0x6a) == 4)))) {
+            local_54 = *(uint *)((ulonglong)*(uint *)(param_4 + 0x6c) + param_4);
+          }
+          FltAcquirePushLockSharedEx(param_1 + 0x90,0);
+          lVar5 = CldiPortLookupSyncRootNoLock(param_1,param_2);
+          FltReleasePushLockEx(param_1 + 0x90,0);
+          pvVar11 = (void *)0x0;
+          uVar12 = 0;
+          if (lVar5 != 0) {
+            if (iVar4 == 3) {
+              if ((((0x17 < param_5) && (6 < *(ushort *)(param_4 + 0xe))) &&
+                  ((uVar1 = *(uint *)(param_4 + 8), 0x47 < uVar1 &&
+                   (*(ushort *)(param_4 + 0x40) < 0x12)))) &&
+                 (((uVar3 = *(uint *)(param_4 + 0x44), uVar3 == 0 ||
+                   (((uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 <= uVar3 && (uVar3 <= uVar1)))) &&
+                  ((*(ushort *)(param_4 + 0x42) <= uVar1 &&
+                   (((uVar7 = *(ushort *)(param_4 + 0x42) + uVar3, uVar3 <= uVar7 &&
+                     (uVar7 <= uVar1)) && (*(ushort *)(param_4 + 0x40) == 0x11)))))))) {
+                if ((*(uint *)(param_4 + 0x44) == 0) ||
+                   (pvVar10 = (void *)(param_4 + (ulonglong)*(uint *)(param_4 + 0x44)),
+                   *(ushort *)(param_4 + 0x42) == 0)) {
+                  pvVar10 = pvVar11;
+                }
+                uVar12 = (uint)*(ushort *)(param_4 + 0x42);
+                pvVar11 = pvVar10;
+              }
+              uVar6 = Feature_2175866168__private_IsEnabledDeviceUsage();
+              if (((int)uVar6 != 0) && (0x1000 < uVar12)) {
+                iVar9 = -0x3ffffff3;
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return -0x3ffffff3;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) == 0) {
+                  return -0x3ffffff3;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return -0x3ffffff3;
+                }
+                uVar8 = 0x68;
+                goto LAB_0;
+              }
+              iVar4 = CldSyncAckDehydrate(lVar5,param_3,local_40,local_50,uVar2,local_54,pvVar11,
+                                          uVar12);
+            }
+            else if (iVar4 == 4) {
+              iVar4 = CldSyncAckDelete(lVar5,param_3,local_40,local_50,uVar2,local_54);
+            }
+            else if (iVar4 == 5) {
+              iVar4 = CldSyncAckRename(lVar5,param_3,local_40,local_50,uVar2,local_54);
+            }
+            else {
+              iVar4 = -0x3fffff1b;
+            }
+            HsmDbgBreakOnStatus(iVar4);
+            return iVar4;
+          }
+          iVar9 = -0x3fff30ff;
+          HsmDbgBreakOnStatus(-0x3fff30ff);
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return -0x3fff30ff;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) >> 8 & 1) == 0) {
+            return -0x3fff30ff;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return -0x3fff30ff;
+          }
+          uVar8 = 0x67;
+        }
+      }
+    }
+  }
 LAB_0:
-    WPP_SF_id(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar7,
-              &WPP_58c78adf94af377e1e43e220c82db81f_Traceguids,param_1);
-    return pvVar8;
-  }
-  if (((((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xe)) ||
-         (uVar11 = *(uint *)(param_4 + 8), uVar11 < 0x80)) || (0x11 < *(ushort *)(param_4 + 0x78)))
-       || ((uVar3 = *(uint *)(param_4 + 0x7c), uVar3 != 0 &&
-           ((uVar3 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar11 < uVar3)))))) ||
-      ((uVar11 < *(ushort *)(param_4 + 0x7a) ||
-       ((uVar1 = *(ushort *)(param_4 + 0x7a) + uVar3, uVar1 < uVar3 || (uVar11 < uVar1)))))) ||
-     ((*(ushort *)(param_4 + 0x78) != 10 || (*(short *)(param_4 + 0x7a) != 4)))) {
-    pvVar8 = (void *)0xc0000225;
-    uVar11 = uVar5;
-  }
-  else {
-    pvVar8 = pvVar9;
-    uVar11 = *(uint *)((ulonglong)*(uint *)(param_4 + 0x7c) + param_4);
-  }
-  HsmDbgBreakOnStatus((int)pvVar8);
-  if ((int)pvVar8 < 0) {
-    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return pvVar8;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-      return pvVar8;
-    }
-    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return pvVar8;
-    }
-    uVar7 = 0x62;
-    goto LAB_0;
-  }
-  if (((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 6)) ||
-       (uVar3 = *(uint *)(param_4 + 8), uVar3 < 0x40)) ||
-      ((0x11 < *(ushort *)(param_4 + 0x38) ||
-       (((uVar1 = *(uint *)(param_4 + 0x3c), uVar1 != 0 &&
-         ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar3 < uVar1)))) ||
-        (uVar3 < *(ushort *)(param_4 + 0x3a))))))) ||
-     (((uVar2 = *(ushort *)(param_4 + 0x3a) + uVar1, uVar2 < uVar1 || (uVar3 < uVar2)) ||
-      ((*(ushort *)(param_4 + 0x38) != 10 || (*(short *)(param_4 + 0x3a) != 4)))))) {
-    pvVar8 = (void *)0xc0000225;
-  }
-  else {
-    local_50 = *(uint *)((ulonglong)*(uint *)(param_4 + 0x3c) + param_4);
-    pvVar8 = pvVar9;
-  }
-  HsmDbgBreakOnStatus((int)pvVar8);
-  if ((int)pvVar8 < 0) {
-    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return pvVar8;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-      return pvVar8;
-    }
-    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return pvVar8;
-    }
-    uVar7 = 99;
-    goto LAB_0;
-  }
-  if ((((param_5 < 0x18) || (*(ushort *)(param_4 + 0xe) < 0xb)) ||
-      (uVar3 = *(uint *)(param_4 + 8), uVar3 < 0x68)) ||
-     ((((0x11 < *(ushort *)(param_4 + 0x60) ||
-        ((uVar1 = *(uint *)(param_4 + 100), uVar1 != 0 &&
-         ((uVar1 < (uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 || (uVar3 < uVar1)))))) ||
-       (uVar3 < *(ushort *)(param_4 + 0x62))) ||
-      (((uVar2 = *(ushort *)(param_4 + 0x62) + uVar1, uVar2 < uVar1 || (uVar3 < uVar2)) ||
-       ((*(ushort *)(param_4 + 0x60) != 10 || (*(short *)(param_4 + 0x62) != 4)))))))) {
-    pvVar8 = (void *)0xc0000225;
-  }
-  else {
-    iVar10 = *(int *)((ulonglong)*(uint *)(param_4 + 100) + param_4);
-    pvVar8 = pvVar9;
-  }
-  HsmDbgBreakOnStatus((int)pvVar8);
-  if ((int)pvVar8 < 0) {
-    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return pvVar8;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-      return pvVar8;
-    }
-    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return pvVar8;
-    }
-    uVar7 = 100;
-    goto LAB_0;
-  }
-  uVar3 = CldiPortSanitizeCompletionStatus(iVar10);
-  if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-      ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) != 0)) && (3 < (byte)WPP_GLOBAL_Control[0x29])
-     ) {
-    WPP_SF_qii(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x65,
-               &WPP_58c78adf94af377e1e43e220c82db81f_Traceguids,param_1);
-  }
-  if (((((0x17 < param_5) && (0xb < *(ushort *)(param_4 + 0xe))) &&
-       ((uVar1 = *(uint *)(param_4 + 8), 0x6f < uVar1 && (*(ushort *)(param_4 + 0x68) < 0x12)))) &&
-      ((uVar2 = *(uint *)(param_4 + 0x6c), uVar2 == 0 ||
-       (((uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 <= uVar2 && (uVar2 <= uVar1)))))) &&
-     ((*(ushort *)(param_4 + 0x6a) <= uVar1 &&
-      ((((uVar4 = *(ushort *)(param_4 + 0x6a) + uVar2, uVar2 <= uVar4 && (uVar4 <= uVar1)) &&
-        (*(ushort *)(param_4 + 0x68) == 10)) && (*(short *)(param_4 + 0x6a) == 4)))))) {
-    local_54 = *(uint *)((ulonglong)*(uint *)(param_4 + 0x6c) + param_4);
-  }
-  FltAcquirePushLockSharedEx(param_1 + 0x90,0);
-  lVar6 = CldiPortLookupSyncRootNoLock(param_1,param_2);
-  FltReleasePushLockEx(param_1 + 0x90,0);
-  if (lVar6 == 0) {
-    pvVar8 = (void *)0xc000cf01;
-    HsmDbgBreakOnStatus(-0x3fff30ff);
-    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return (void *)0xc000cf01;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x100) == 0) {
-      return (void *)0xc000cf01;
-    }
-    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return (void *)0xc000cf01;
-    }
-    uVar7 = 0x66;
-    goto LAB_0;
-  }
-  if (uVar11 == 3) {
-    if (((((0x17 < param_5) && (6 < *(ushort *)(param_4 + 0xe))) &&
-         ((uVar11 = *(uint *)(param_4 + 8), 0x47 < uVar11 && (*(ushort *)(param_4 + 0x40) < 0x12))))
-        && ((uVar1 = *(uint *)(param_4 + 0x44), uVar1 == 0 ||
-            (((uint)*(ushort *)(param_4 + 0xe) * 8 + 0x10 <= uVar1 && (uVar1 <= uVar11)))))) &&
-       ((*(ushort *)(param_4 + 0x42) <= uVar11 &&
-        (((uVar2 = *(ushort *)(param_4 + 0x42) + uVar1, uVar1 <= uVar2 && (uVar2 <= uVar11)) &&
-         (*(ushort *)(param_4 + 0x40) == 0x11)))))) {
-      if ((*(uint *)(param_4 + 0x44) != 0) && (*(ushort *)(param_4 + 0x42) != 0)) {
-        pvVar9 = (void *)(param_4 + (ulonglong)*(uint *)(param_4 + 0x44));
-      }
-      uVar5 = (uint)*(ushort *)(param_4 + 0x42);
-    }
-    uVar5 = CldSyncAckDehydrate(lVar6,param_3,local_48,local_50,uVar3,local_54,pvVar9,uVar5);
-  }
-  else if (uVar11 == 4) {
-    uVar5 = CldSyncAckDelete(lVar6,param_3,local_48,local_50,uVar3,local_54);
-  }
-  else {
-    if (uVar11 != 5) {
-      pvVar9 = (void *)0xc00000e5;
-      uVar5 = 0xc00000e5;
-      goto LAB_1;
-    }
-    uVar5 = CldSyncAckRename(lVar6,param_3,local_48,local_50,uVar3,local_54);
-  }
-  pvVar9 = (void *)(ulonglong)uVar5;
-LAB_1:
-  HsmDbgBreakOnStatus(uVar5);
-  return pvVar9;
+  WPP_SF_id(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar8,
+            &WPP_82dc34624fbd3f805255861060ed1674_Traceguids,param_1);
+  return iVar9;
 }
 

```


## HsmFltProcessConvertPlaceholder

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|code,length,sig,address,called|
|ratio|0.17|
|i_ratio|0.1|
|m_ratio|1.0|
|b_ratio|0.12|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|HsmFltProcessConvertPlaceholder|HsmFltProcessConvertPlaceholder|
|fullname|HsmFltProcessConvertPlaceholder|HsmFltProcessConvertPlaceholder|
|refcount|2|2|
|`length`|3191|3101|
|`called`|<details><summary>Expand for full list:<br>FLTMGR.SYS::FltFsControlFile<br>FLTMGR.SYS::FltGetRequestorProcess<br>FLTMGR.SYS::FltQueryInformationFile<br>FLTMGR.SYS::FltReleaseContext<br>HsmDbgBreakOnStatus<br>HsmpAcquireSyncOpRundownProtection<br>HsmpCldCheckSyncProviderAccess<br>HsmpCldGetSyncPolicy<br>HsmpGetStreamContext<br>HsmpIsPlaceholder<br>HsmpNotifyDataChange</summary>HsmpPrepareForMgmtOperation<br>HsmpQueryLastEffectiveUsn<br>HsmpReleaseSyncOpRundownProtection<br>HsmpRpCreate<br>HsmpSetupContexts<br>TlmWriteConvertingSparseFile<br>WPP_SF_iid<br>WPP_SF_iiqd<br>WPP_SF_qiqLd<br>WPP_SF_qqiiD<br>WPP_SF_qqqid<br>__security_check_cookie</details>|<details><summary>Expand for full list:<br>FLTMGR.SYS::FltFsControlFile<br>FLTMGR.SYS::FltGetRequestorProcess<br>FLTMGR.SYS::FltQueryInformationFile<br>FLTMGR.SYS::FltReleaseContext<br>Feature_2175866168__private_IsEnabledDeviceUsage<br>HsmDbgBreakOnStatus<br>HsmpAcquireSyncOpRundownProtection<br>HsmpCldCheckSyncProviderAccess<br>HsmpCldGetSyncPolicy<br>HsmpGetStreamContext<br>HsmpIsPlaceholder</summary>HsmpNotifyDataChange<br>HsmpPrepareForMgmtOperation<br>HsmpQueryLastEffectiveUsn<br>HsmpReleaseSyncOpRundownProtection<br>HsmpRpCreate<br>HsmpSetupContexts<br>TlmWriteConvertingSparseFile<br>WPP_SF_iid<br>WPP_SF_iiqd<br>WPP_SF_qiqLd<br>WPP_SF_qqiiD<br>WPP_SF_qqqid<br>__security_check_cookie</details>|
|calling|HsmFltProcessHSMControl|HsmFltProcessHSMControl|
|paramcount|11|11|
|`address`|1c0070264|1c0085e08|
|`sig`|ulonglong __fastcall HsmFltProcessConvertPlaceholder(undefined8 param_1, ulonglong param_2, uint * * param_3, undefined8 param_4, longlong param_5, undefined8 param_6, undefined8 param_7, longlong param_8, longlong * param_9, int param_10, int param_11)|uint __fastcall HsmFltProcessConvertPlaceholder(undefined8 param_1, ulonglong param_2, uint * * param_3, undefined8 param_4, longlong param_5, undefined8 param_6, undefined8 param_7, longlong param_8, longlong * param_9, uint param_10, int param_11)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### HsmFltProcessConvertPlaceholder Called Diff


```diff
--- HsmFltProcessConvertPlaceholder called
+++ HsmFltProcessConvertPlaceholder called
@@ -4,0 +5 @@
+Feature_2175866168__private_IsEnabledDeviceUsage
```


### HsmFltProcessConvertPlaceholder Diff


```diff
--- HsmFltProcessConvertPlaceholder
+++ HsmFltProcessConvertPlaceholder
@@ -1,503 +1,507 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
-ulonglong HsmFltProcessConvertPlaceholder
-                    (undefined8 param_1,ulonglong param_2,uint **param_3,undefined8 param_4,
-                    longlong param_5,undefined8 param_6,undefined8 param_7,longlong param_8,
-                    longlong *param_9,int param_10,int param_11)
+uint HsmFltProcessConvertPlaceholder
+               (undefined8 param_1,ulonglong param_2,uint **param_3,undefined8 param_4,
+               longlong param_5,undefined8 param_6,undefined8 param_7,longlong param_8,
+               longlong *param_9,uint param_10,int param_11)
 
 {
   bool bVar1;
   char cVar2;
   uint uVar3;
   uint uVar4;
   ulonglong uVar5;
   longlong lVar6;
-  ulonglong uVar7;
-  undefined8 uVar8;
-  undefined2 uVar9;
-  uint **ppuVar10;
-  longlong *plVar11;
+  undefined8 uVar7;
+  undefined2 uVar8;
+  uint **ppuVar9;
+  longlong *plVar10;
   undefined1 auStackY_f8 [32];
   uint local_b4;
-  uint **local_b0;
-  longlong *local_a8;
-  longlong local_a0;
-  longlong local_98;
-  undefined8 local_90;
-  longlong lStack_88;
-  undefined8 local_80;
-  longlong local_78 [6];
+  longlong *local_b0;
+  uint **local_a8;
+  undefined8 local_98;
+  longlong lStack_90;
+  undefined8 local_88;
+  longlong local_80 [6];
+  ulonglong local_50;
   ulonglong local_48;
-  ulonglong local_40;
   
-  local_40 = __security_cookie ^ (ulonglong)auStackY_f8;
-  local_48 = 0;
-  local_80 = 0;
+  local_48 = __security_cookie ^ (ulonglong)auStackY_f8;
   uVar4 = 0;
   local_b4 = 0;
-  local_a8 = param_9;
-  local_a0 = param_5;
-  local_78[2] = 0;
-  local_78[3] = 0;
+  local_b0 = param_9;
+  local_50 = 0;
+  local_80[2] = 0;
+  local_80[3] = 0;
+  local_88 = 0;
+  local_80[4] = 0;
+  local_80[5] = 0;
+  bVar1 = false;
   local_98 = 0;
-  local_78[4] = 0;
-  local_78[5] = 0;
-  bVar1 = false;
-  local_90 = 0;
-  lStack_88 = 0;
-  local_b0 = param_3;
+  lStack_90 = 0;
+  local_a8 = param_3;
   uVar5 = HsmpIsPlaceholder(param_5);
   if ((char)uVar5 == '\0') {
-    if (*(uint *)(param_9 + 2) <= param_10 - 0x14U) {
-      if (param_11 - 1U < 7) {
-        HsmDbgBreakOnStatus(-0x3fff30f5);
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return 0xc000cf0b;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return 0xc000cf0b;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return 0xc000cf0b;
-        }
-        WPP_SF_qiqLd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x82,
-                     &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
+    uVar5 = Feature_2175866168__private_IsEnabledDeviceUsage();
+    if ((int)uVar5 == 0) {
+      if (*(uint *)(param_9 + 2) <= param_10 - 0x14) goto LAB_0;
+      HsmDbgBreakOnStatus(-0x3fff30f5);
+      if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
         return 0xc000cf0b;
       }
-      uVar3 = FltQueryInformationFile(*(undefined8 *)(param_2 + 0x20),param_3,&local_90,0x18);
-      uVar5 = (ulonglong)uVar3;
-      HsmDbgBreakOnStatus(uVar3);
-      if ((int)uVar3 < 0) {
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return uVar5;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return uVar5;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return uVar5;
-        }
-        uVar8 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-        uVar9 = 0x83;
-        goto LAB_0;
-      }
-      cVar2 = local_80._5_1_;
-      plVar11 = local_78 + 2;
-      local_78[0] = lStack_88;
-      uVar3 = FltQueryInformationFile(*(undefined8 *)(param_2 + 0x20));
-      uVar5 = (ulonglong)uVar3;
-      HsmDbgBreakOnStatus(uVar3);
-      if ((int)uVar3 < 0) {
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return uVar5;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return uVar5;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return uVar5;
-        }
-        uVar9 = 0x84;
-        goto LAB_1;
-      }
-      ppuVar10 = local_b0;
-      if ((((cVar2 == '\0') && ((local_48 & 0x200) != 0)) &&
-          ((*(uint *)(local_a8 + 1) >> 0x18 & 1) == 0)) && ((*(uint *)(local_a8 + 1) & 2) == 0)) {
-        if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-            ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
-           (2 < (byte)WPP_GLOBAL_Control[0x29])) {
-          WPP_SF_qqiiD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),param_3,plVar11,param_8);
-        }
-        ppuVar10 = local_b0;
-        TlmWriteConvertingSparseFile
-                  ((longlong)local_b0,local_78[0],local_90,(undefined4)local_80,local_78[2]);
-      }
-      if ((*(uint *)(local_a8 + 1) & 0x10) == 0) {
-        uVar3 = HsmpCldGetSyncPolicy(param_2,0,(longlong)ppuVar10,5,&local_b4);
-        uVar5 = (ulonglong)uVar3;
-        HsmDbgBreakOnStatus(uVar3);
-        uVar4 = local_b4;
-        lVar6 = 0;
-        if ((int)uVar3 < 0) {
-          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-            return uVar5;
-          }
-          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-            return uVar5;
-          }
-          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-            return uVar5;
-          }
-          uVar9 = 0x86;
-          goto LAB_2;
-        }
-        if (((local_b4 >> 0x1c & 1) == 0) || ((*(uint *)(local_a8 + 1) & 0x1000000) != 0)) {
-          local_b4 = local_b4 & 0xffffff00;
-          if (param_8 != 0) {
-            lVar6 = FltGetRequestorProcess(param_8);
-          }
-          uVar3 = HsmpCldCheckSyncProviderAccess
-                            (param_2,local_a0,(longlong)local_b0,lVar6,(undefined1 *)&local_b4);
-          uVar5 = (ulonglong)uVar3;
-          HsmDbgBreakOnStatus(uVar3);
-          if ((int)uVar3 < 0) {
-LAB_3:
-            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-              return uVar5;
-            }
-            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-              return uVar5;
-            }
-            if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-              return uVar5;
-            }
-            WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x87,
-                        &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_2);
-            return uVar5;
-          }
-          if ((char)local_b4 == '\0') {
-            uVar5 = 0xc000cf18;
-            HsmDbgBreakOnStatus(-0x3fff30e8);
-            goto LAB_3;
-          }
-        }
-      }
-      uVar3 = *(uint *)(local_a8 + 1);
-      if ((uVar3 & 2) != 0) {
-        if (cVar2 == '\0') {
-          if (((byte)uVar4 & 0xf) < 4) {
-LAB_4:
-            if ((uVar3 & 1) == 0) {
-              uVar5 = 0xc000cf08;
-              HsmDbgBreakOnStatus(-0x3fff30f8);
-              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                return 0xc000cf08;
-              }
-              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-                return 0xc000cf08;
-              }
-              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                return 0xc000cf08;
-              }
-              uVar9 = 0x8a;
-              goto LAB_2;
-            }
-            if (((uint)local_48 >> 0x13 & 1) != 0) {
-              uVar5 = 0xc000cf0b;
-              if (((uint)local_48 & 0x180000) != 0x180000) {
-                uVar5 = 0xc000cf15;
-              }
-              HsmDbgBreakOnStatus((int)uVar5);
-              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                return uVar5;
-              }
-              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-                return uVar5;
-              }
-              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                return uVar5;
-              }
-              uVar9 = 0x8b;
-              goto LAB_2;
-            }
-            if (((int)local_a8[2] == 0) || ((uVar3 >> 10 & 1) != 0)) {
-              uVar5 = 0xc000cf20;
-              HsmDbgBreakOnStatus(-0x3fff30e0);
-              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                return 0xc000cf20;
-              }
-              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-                return 0xc000cf20;
-              }
-              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                return 0xc000cf20;
-              }
-              uVar9 = 0x8c;
-              goto LAB_2;
-            }
-            goto LAB_5;
-          }
-        }
-        else if ((uVar4 & 0xf0) < 0x40) goto LAB_6;
-        HsmDbgBreakOnStatus(-0x3fff30f5);
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return 0xc000cf0b;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return 0xc000cf0b;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return 0xc000cf0b;
-        }
-        uVar9 = 0x88;
-        goto LAB_7;
-      }
-      if (cVar2 != '\0') {
-LAB_6:
-        if ((((uVar3 & 0x10) == 0) && ((uVar3 & 0x20) != 0)) && (0x3f < (uVar4 & 0xf0))) {
+      if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+        return 0xc000cf0b;
+      }
+      if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+        return 0xc000cf0b;
+      }
+      uVar8 = 0x83;
+    }
+    else {
+      if (((0x13 < param_10) && (*(uint *)(param_9 + 2) <= param_10 - 0x14)) &&
+         (*(uint *)(param_9 + 2) < 0x1001)) {
+LAB_0:
+        if (param_11 - 1U < 7) {
           HsmDbgBreakOnStatus(-0x3fff30f5);
           if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
             return 0xc000cf0b;
           }
           if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
             return 0xc000cf0b;
           }
           if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
             return 0xc000cf0b;
           }
-          uVar9 = 0x89;
-          goto LAB_7;
-        }
-        if ((uVar3 & 2) != 0) goto LAB_4;
-      }
+          WPP_SF_qiqLd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x84,
+                       &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+          return 0xc000cf0b;
+        }
+        uVar3 = FltQueryInformationFile(*(undefined8 *)(param_2 + 0x20),param_3,&local_98,0x18);
+        HsmDbgBreakOnStatus(uVar3);
+        if ((int)uVar3 < 0) {
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return uVar3;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return uVar3;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return uVar3;
+          }
+          uVar8 = 0x85;
+          uVar7 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+          goto LAB_1;
+        }
+        cVar2 = local_88._5_1_;
+        plVar10 = local_80 + 2;
+        local_80[0] = lStack_90;
+        uVar3 = FltQueryInformationFile(*(undefined8 *)(param_2 + 0x20));
+        HsmDbgBreakOnStatus(uVar3);
+        if ((int)uVar3 < 0) {
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return uVar3;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return uVar3;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return uVar3;
+          }
+          uVar8 = 0x86;
+          goto LAB_2;
+        }
+        ppuVar9 = local_a8;
+        if (((cVar2 == '\0') && ((local_50 & 0x200) != 0)) &&
+           (((*(uint *)(local_b0 + 1) >> 0x18 & 1) == 0 && ((*(uint *)(local_b0 + 1) & 2) == 0)))) {
+          if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+              ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+             (2 < (byte)WPP_GLOBAL_Control[0x29])) {
+            WPP_SF_qqiiD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),param_3,plVar10,param_8);
+          }
+          ppuVar9 = local_a8;
+          TlmWriteConvertingSparseFile
+                    ((longlong)local_a8,local_80[0],local_98,(undefined4)local_88,local_80[2]);
+        }
+        if ((*(uint *)(local_b0 + 1) & 0x10) == 0) {
+          uVar3 = HsmpCldGetSyncPolicy(param_2,0,(longlong)ppuVar9,5,&local_b4);
+          HsmDbgBreakOnStatus(uVar3);
+          uVar4 = local_b4;
+          lVar6 = 0;
+          if ((int)uVar3 < 0) {
+            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+              return uVar3;
+            }
+            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+              return uVar3;
+            }
+            if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+              return uVar3;
+            }
+            uVar8 = 0x88;
+            goto LAB_3;
+          }
+          if (((local_b4 >> 0x1c & 1) == 0) || ((*(uint *)(local_b0 + 1) & 0x1000000) != 0)) {
+            local_b4 = local_b4 & 0xffffff00;
+            if (param_8 != 0) {
+              lVar6 = FltGetRequestorProcess(param_8);
+            }
+            uVar3 = HsmpCldCheckSyncProviderAccess
+                              (param_2,param_5,(longlong)local_a8,lVar6,(undefined1 *)&local_b4);
+            HsmDbgBreakOnStatus(uVar3);
+            if ((int)uVar3 < 0) {
+LAB_4:
+              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                return uVar3;
+              }
+              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                return uVar3;
+              }
+              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                return uVar3;
+              }
+              WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x89,
+                          &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_2);
+              return uVar3;
+            }
+            if ((char)local_b4 == '\0') {
+              uVar3 = 0xc000cf18;
+              HsmDbgBreakOnStatus(-0x3fff30e8);
+              goto LAB_4;
+            }
+          }
+        }
+        ppuVar9 = local_a8;
+        uVar3 = *(uint *)(local_b0 + 1);
+        if ((uVar3 & 2) != 0) {
+          if (cVar2 == '\0') {
+            if (((byte)uVar4 & 0xf) < 4) {
 LAB_5:
-      uVar4 = HsmpPrepareForMgmtOperation(param_2,local_b0,8,'\0');
-      uVar5 = (ulonglong)uVar4;
-      HsmDbgBreakOnStatus(uVar4);
-      if ((int)uVar4 < 0) {
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return uVar5;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return uVar5;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return uVar5;
-        }
-        uVar9 = 0x8d;
-      }
-      else {
-        uVar4 = *(uint *)(local_a8 + 1);
-        if (cVar2 == '\0') {
-          uVar3 = (uint)local_48 >> 9 & 1;
-          if ((uVar4 & 2) == 0) {
+              if ((uVar3 & 1) == 0) {
+                uVar3 = 0xc000cf08;
+                HsmDbgBreakOnStatus(-0x3fff30f8);
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return 0xc000cf08;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                  return 0xc000cf08;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return 0xc000cf08;
+                }
+                uVar8 = 0x8c;
+                goto LAB_3;
+              }
+              if (((uint)local_50 >> 0x13 & 1) != 0) {
+                uVar3 = 0xc000cf0b;
+                if (((uint)local_50 & 0x180000) != 0x180000) {
+                  uVar3 = 0xc000cf15;
+                }
+                HsmDbgBreakOnStatus(uVar3);
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return uVar3;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                  return uVar3;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return uVar3;
+                }
+                uVar8 = 0x8d;
+                goto LAB_3;
+              }
+              if (((int)local_b0[2] == 0) || ((uVar3 >> 10 & 1) != 0)) {
+                uVar3 = 0xc000cf20;
+                HsmDbgBreakOnStatus(-0x3fff30e0);
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return 0xc000cf20;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                  return 0xc000cf20;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return 0xc000cf20;
+                }
+                uVar8 = 0x8e;
+                goto LAB_3;
+              }
+              goto LAB_6;
+            }
+          }
+          else if ((uVar4 & 0xf0) < 0x40) goto LAB_7;
+          HsmDbgBreakOnStatus(-0x3fff30f5);
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return 0xc000cf0b;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return 0xc000cf0b;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return 0xc000cf0b;
+          }
+          uVar8 = 0x8a;
 LAB_8:
-            uVar3 = uVar3 | 6;
-          }
-          else if ((local_48 & 0x800) != 0) {
-            local_b4 = local_b4 & 0xffff0000;
-            uVar4 = FltFsControlFile(*(undefined8 *)(param_2 + 0x20),local_b0,0x9c040,&local_b4);
-            uVar5 = (ulonglong)uVar4;
-            HsmDbgBreakOnStatus(uVar4);
-            if ((int)uVar4 < 0) {
-              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                return uVar5;
-              }
-              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-                return uVar5;
-              }
-              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                return uVar5;
-              }
-              WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x8e,
-                         &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_2);
-              return uVar5;
-            }
-            uVar3 = uVar3 | 0x200;
-            uVar4 = *(uint *)(local_a8 + 1);
-          }
+          uVar3 = 0xc000cf0b;
+          goto LAB_3;
+        }
+        if (cVar2 != '\0') {
+LAB_7:
+          if ((((uVar3 & 0x10) == 0) && ((uVar3 & 0x20) != 0)) && (0x3f < (uVar4 & 0xf0))) {
+            HsmDbgBreakOnStatus(-0x3fff30f5);
+            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+              return 0xc000cf0b;
+            }
+            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+              return 0xc000cf0b;
+            }
+            if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+              return 0xc000cf0b;
+            }
+            uVar8 = 0x8b;
+            goto LAB_8;
+          }
+          if ((uVar3 & 2) != 0) goto LAB_5;
+        }
+LAB_6:
+        uVar3 = HsmpPrepareForMgmtOperation(param_2,local_a8,8,'\0');
+        HsmDbgBreakOnStatus(uVar3);
+        if ((int)uVar3 < 0) {
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return uVar3;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return uVar3;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return uVar3;
+          }
+          uVar8 = 0x8f;
         }
         else {
-          uVar3 = (uVar4 & 0x10 | 8) * 2;
-          if ((uVar4 & 0x20) == 0) goto LAB_8;
-        }
-        ppuVar10 = local_b0;
-        if ((uVar4 & 1) == 0) {
-          uVar3 = uVar3 | 8;
-        }
-        else {
-          uVar3 = uVar3 | 0x40;
-        }
-        if ((uVar4 >> 10 & 1) != 0) {
-          uVar3 = uVar3 | 0x100;
-        }
-        uVar4 = HsmpRpCreate(param_2,(longlong)local_b0,lStack_88,uVar3,
-                             (void *)((longlong)local_a8 + 0x14),(ushort)(int)local_a8[2],
-                             (byte)(uVar4 >> 0x18) & 1);
-        uVar5 = (ulonglong)uVar4;
-        HsmDbgBreakOnStatus(uVar4);
-        if (-1 < (int)uVar4) {
-          if ((cVar2 == '\0') && ((*(uint *)(local_a8 + 1) & 2) != 0)) {
-            local_78[0] = 0;
-            local_78[1] = 0;
-            uVar7 = HsmpSetupContexts(param_2,ppuVar10,0,(uint *)0x0);
-            uVar5 = uVar7 & 0xffffffff;
-            HsmDbgBreakOnStatus((int)uVar7);
-            if ((int)uVar7 < 0) {
-              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-                return uVar5;
-              }
-              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-                return uVar5;
-              }
-              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-                return uVar5;
-              }
-              uVar9 = 0x90;
-              goto LAB_1;
-            }
-            local_98 = HsmpGetStreamContext(param_8,*(longlong *)(param_2 + 0x20),ppuVar10);
-            uVar4 = HsmpAcquireSyncOpRundownProtection(local_98,param_8);
-            uVar5 = (ulonglong)uVar4;
-            HsmDbgBreakOnStatus(uVar4);
-            if ((int)uVar4 < 0) {
-              if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                  ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
-                 (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x91,
-                            &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-              }
-              goto LAB_9;
-            }
-            bVar1 = true;
-            uVar4 = HsmpNotifyDataChange(local_98);
-            uVar5 = (ulonglong)uVar4;
-            HsmDbgBreakOnStatus(uVar4);
-            if ((int)uVar4 < 0) {
-              if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                  ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
-                 (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                WPP_SF_qqqid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x92,
-                             &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-              }
-            }
-            else {
-              uVar4 = HsmpPrepareForMgmtOperation(param_2,ppuVar10,1,'\x01');
-              uVar5 = (ulonglong)uVar4;
+          uVar4 = *(uint *)(local_b0 + 1);
+          if (cVar2 == '\0') {
+            uVar3 = (uint)local_50 >> 9 & 1;
+            if ((uVar4 & 2) == 0) {
+LAB_9:
+              uVar3 = uVar3 | 6;
+            }
+            else if ((local_50 & 0x800) != 0) {
+              local_b4 = local_b4 & 0xffff0000;
+              uVar4 = FltFsControlFile(*(undefined8 *)(param_2 + 0x20),ppuVar9,0x9c040,&local_b4);
+              HsmDbgBreakOnStatus(uVar4);
+              if ((int)uVar4 < 0) {
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return uVar4;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                  return uVar4;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return uVar4;
+                }
+                WPP_SF_iid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x90,
+                           &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_2);
+                return uVar4;
+              }
+              uVar3 = uVar3 | 0x200;
+              uVar4 = *(uint *)(local_b0 + 1);
+            }
+          }
+          else {
+            uVar3 = (uVar4 & 0x10 | 8) * 2;
+            if ((uVar4 & 0x20) == 0) goto LAB_9;
+          }
+          if ((uVar4 & 1) == 0) {
+            uVar3 = uVar3 | 8;
+          }
+          else {
+            uVar3 = uVar3 | 0x40;
+          }
+          if ((uVar4 >> 10 & 1) != 0) {
+            uVar3 = uVar3 | 0x100;
+          }
+          uVar3 = HsmpRpCreate(param_2,(longlong)ppuVar9,lStack_90,uVar3,
+                               (void *)((longlong)local_b0 + 0x14),(ushort)(int)local_b0[2],
+                               (byte)(uVar4 >> 0x18) & 1);
+          HsmDbgBreakOnStatus(uVar3);
+          lVar6 = 0;
+          if (-1 < (int)uVar3) {
+            if ((cVar2 == '\0') && ((*(uint *)(local_b0 + 1) & 2) != 0)) {
+              local_80[0] = 0;
+              local_80[1] = 0;
+              uVar5 = HsmpSetupContexts(param_2,ppuVar9,0,(uint *)0x0);
+              uVar3 = (uint)uVar5;
+              HsmDbgBreakOnStatus(uVar3);
+              if ((int)uVar3 < 0) {
+                if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                  return uVar3;
+                }
+                if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                  return uVar3;
+                }
+                if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                  return uVar3;
+                }
+                uVar8 = 0x92;
+                goto LAB_2;
+              }
+              lVar6 = HsmpGetStreamContext(param_8,*(longlong *)(param_2 + 0x20),ppuVar9);
+              uVar4 = HsmpAcquireSyncOpRundownProtection(lVar6,param_8);
               HsmDbgBreakOnStatus(uVar4);
               if ((int)uVar4 < 0) {
                 if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                     ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                    (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                  uVar9 = 0x93;
-LAB_10:
-                  WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar9,
-                              &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
+                  WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x93,
+                              &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+                }
+                goto LAB_10;
+              }
+              bVar1 = true;
+              uVar4 = HsmpNotifyDataChange(lVar6);
+              HsmDbgBreakOnStatus(uVar4);
+              if ((int)uVar4 < 0) {
+                if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                    ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+                   (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+                  WPP_SF_qqqid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x94,
+                               &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
                 }
               }
               else {
-                local_78[1] = 0x7fffffffffffffff;
-                uVar4 = FltFsControlFile(*(undefined8 *)(param_2 + 0x20),ppuVar10,0x980c8,local_78);
-                uVar5 = (ulonglong)uVar4;
+                uVar4 = HsmpPrepareForMgmtOperation(param_2,ppuVar9,1,'\x01');
                 HsmDbgBreakOnStatus(uVar4);
                 if ((int)uVar4 < 0) {
                   if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                       ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                      (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                    uVar9 = 0x94;
-                    goto LAB_10;
+                    uVar8 = 0x95;
+LAB_11:
+                    WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar8,
+                                &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
                   }
                 }
                 else {
-                  uVar4 = HsmpPrepareForMgmtOperation(param_2,ppuVar10,8,'\x01');
-                  uVar5 = (ulonglong)uVar4;
+                  local_80[1] = 0x7fffffffffffffff;
+                  uVar4 = FltFsControlFile(*(undefined8 *)(param_2 + 0x20),ppuVar9,0x980c8,local_80)
+                  ;
                   HsmDbgBreakOnStatus(uVar4);
-                  if (-1 < (int)uVar4) goto LAB_11;
+                  if ((int)uVar4 < 0) {
+                    if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                        ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+                       (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+                      uVar8 = 0x96;
+                      goto LAB_11;
+                    }
+                  }
+                  else {
+                    uVar4 = HsmpPrepareForMgmtOperation(param_2,ppuVar9,8,'\x01');
+                    HsmDbgBreakOnStatus(uVar4);
+                    if (-1 < (int)uVar4) goto LAB_12;
+                    if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                        ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+                       (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+                      uVar8 = 0x97;
+                      goto LAB_11;
+                    }
+                  }
+                }
+              }
+            }
+            else {
+LAB_12:
+              if (param_11 == 0) {
+LAB_13:
+                uVar5 = HsmpSetupContexts(param_2,ppuVar9,0,(uint *)0x0);
+                uVar4 = (uint)uVar5;
+                HsmDbgBreakOnStatus(uVar4);
+                if ((int)uVar4 < 0) {
                   if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                       ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                      (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                    uVar9 = 0x95;
-                    goto LAB_10;
+                    uVar8 = 0x99;
+LAB_14:
+                    WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar8,
+                                &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
                   }
                 }
-              }
-            }
-          }
-          else {
-LAB_11:
-            if (param_11 == 0) {
-LAB_12:
-              uVar7 = HsmpSetupContexts(param_2,ppuVar10,0,(uint *)0x0);
-              uVar5 = uVar7 & 0xffffffff;
-              HsmDbgBreakOnStatus((int)uVar7);
-              if ((int)uVar7 < 0) {
+                else if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                         ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
+                        (3 < (byte)WPP_GLOBAL_Control[0x29])) {
+                  uVar8 = 0x9a;
+                  goto LAB_14;
+                }
+              }
+              else {
+                uVar4 = HsmpQueryLastEffectiveUsn
+                                  (*(undefined8 *)(param_2 + 0x20),(ulonglong)ppuVar9,local_b0);
+                HsmDbgBreakOnStatus(uVar4);
+                if (-1 < (int)uVar4) goto LAB_13;
                 if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                     ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
                    (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                  uVar9 = 0x97;
-LAB_13:
-                  WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar9,
-                              &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-                }
-              }
-              else if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                       ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
-                      (3 < (byte)WPP_GLOBAL_Control[0x29])) {
-                uVar9 = 0x98;
-                goto LAB_13;
-              }
-            }
-            else {
-              uVar4 = HsmpQueryLastEffectiveUsn
-                                (*(undefined8 *)(param_2 + 0x20),(ulonglong)ppuVar10,local_a8);
-              uVar5 = (ulonglong)uVar4;
-              HsmDbgBreakOnStatus(uVar4);
-              if (-1 < (int)uVar4) goto LAB_12;
-              if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-                  ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) != 0)) &&
-                 (1 < (byte)WPP_GLOBAL_Control[0x29])) {
-                uVar9 = 0x96;
-                goto LAB_13;
-              }
-            }
-            if (!bVar1) goto LAB_9;
-          }
-          HsmpReleaseSyncOpRundownProtection(local_98);
-LAB_9:
-          if (local_98 == 0) {
-            return uVar5;
-          }
-          FltReleaseContext(local_98);
-          return uVar5;
-        }
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return uVar5;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return uVar5;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return uVar5;
-        }
-        uVar9 = 0x8f;
-      }
+                  uVar8 = 0x98;
+                  goto LAB_14;
+                }
+              }
+              if (!bVar1) goto LAB_10;
+            }
+            HsmpReleaseSyncOpRundownProtection(lVar6);
+LAB_10:
+            if (lVar6 == 0) {
+              return uVar4;
+            }
+            FltReleaseContext(lVar6);
+            return uVar4;
+          }
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return uVar3;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return uVar3;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return uVar3;
+          }
+          uVar8 = 0x91;
+        }
+LAB_2:
+        uVar7 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
 LAB_1:
-      uVar8 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-LAB_0:
-      WPP_SF_iiqd(uVar8,uVar9,&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-      return uVar5;
+        WPP_SF_iiqd(uVar7,uVar8,&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+        return uVar3;
+      }
+      HsmDbgBreakOnStatus(-0x3fff30f5);
+      if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+        return 0xc000cf0b;
+      }
+      if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+        return 0xc000cf0b;
+      }
+      if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+        return 0xc000cf0b;
+      }
+      uVar8 = 0x82;
     }
-    HsmDbgBreakOnStatus(-0x3fff30f5);
-    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return 0xc000cf0b;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-      return 0xc000cf0b;
-    }
-    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return 0xc000cf0b;
-    }
-    uVar9 = 0x81;
   }
   else {
     HsmDbgBreakOnStatus(-0x3fff30f5);
     if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
       return 0xc000cf0b;
     }
     if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
       return 0xc000cf0b;
     }
     if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
       return 0xc000cf0b;
     }
-    uVar9 = 0x80;
+    uVar8 = 0x81;
   }
-LAB_7:
-  uVar5 = 0xc000cf0b;
-LAB_2:
-  WPP_SF_qqqid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar9,
-               &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-  return uVar5;
+  uVar3 = 0xc000cf0b;
+LAB_3:
+  WPP_SF_qqqid(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar8,
+               &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+  return uVar3;
 }
 

```


## HsmFltProcessUpdatePlaceholder

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.18|
|i_ratio|0.24|
|m_ratio|0.96|
|b_ratio|0.07|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|HsmFltProcessUpdatePlaceholder|HsmFltProcessUpdatePlaceholder|
|fullname|HsmFltProcessUpdatePlaceholder|HsmFltProcessUpdatePlaceholder|
|refcount|2|2|
|`length`|1520|1467|
|`called`|FLTMGR.SYS::FltGetRequestorProcess<br>HsmDbgBreakOnStatus<br>HsmiOpUpdatePlaceholderDirectory<br>HsmiOpUpdatePlaceholderFile<br>HsmpCldCheckSyncProviderAccess<br>HsmpCldGetSyncPolicy<br>HsmpDeletePropertyStream<br>WPP_SF_iiqd<br>WPP_SF_qiqLd<br>WPP_SF_qqqid|<details><summary>Expand for full list:<br>FLTMGR.SYS::FltGetRequestorProcess<br>Feature_2175866168__private_IsEnabledDeviceUsage<br>HsmDbgBreakOnStatus<br>HsmiOpUpdatePlaceholderDirectory<br>HsmiOpUpdatePlaceholderFile<br>HsmpCldCheckSyncProviderAccess<br>HsmpCldGetSyncPolicy<br>HsmpDeletePropertyStream<br>WPP_SF_iiqd<br>WPP_SF_qiqLd<br>WPP_SF_qqqid</summary></details>|
|calling|HsmFltProcessHSMControl|HsmFltProcessHSMControl|
|paramcount|11|11|
|`address`|1c0067c8c|1c0086a2c|
|sig|uint __fastcall HsmFltProcessUpdatePlaceholder(longlong param_1, ulonglong param_2, ulonglong param_3, ulonglong param_4, longlong param_5, longlong param_6, undefined8 param_7, longlong param_8, longlong * param_9, uint param_10, int param_11)|uint __fastcall HsmFltProcessUpdatePlaceholder(longlong param_1, ulonglong param_2, ulonglong param_3, ulonglong param_4, longlong param_5, longlong param_6, undefined8 param_7, longlong param_8, longlong * param_9, uint param_10, int param_11)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### HsmFltProcessUpdatePlaceholder Called Diff


```diff
--- HsmFltProcessUpdatePlaceholder called
+++ HsmFltProcessUpdatePlaceholder called
@@ -1,0 +2 @@
+Feature_2175866168__private_IsEnabledDeviceUsage
```


### HsmFltProcessUpdatePlaceholder Diff


```diff
--- HsmFltProcessUpdatePlaceholder
+++ HsmFltProcessUpdatePlaceholder
@@ -1,247 +1,272 @@
 
 uint HsmFltProcessUpdatePlaceholder
                (longlong param_1,ulonglong param_2,ulonglong param_3,ulonglong param_4,
                longlong param_5,longlong param_6,undefined8 param_7,longlong param_8,
                longlong *param_9,uint param_10,int param_11)
 
 {
-  int iVar1;
-  uint uVar2;
+  uint uVar1;
+  ulonglong uVar2;
   longlong lVar3;
-  void *pvVar4;
-  undefined8 *puVar5;
-  uint *puVar6;
-  undefined8 uVar7;
-  undefined2 uVar8;
-  uint *puVar9;
+  undefined8 *puVar4;
+  uint *puVar5;
+  undefined8 uVar6;
+  undefined2 uVar7;
+  uint *puVar8;
+  uint uVar9;
   uint *puVar10;
   uint *puVar11;
-  uint *puVar12;
-  longlong *plVar13;
+  void *pvVar12;
+  uint *puVar13;
+  longlong *plVar14;
   longlong local_res8;
   ulonglong local_res20;
   
-  iVar1 = param_11;
   local_res20 = param_4 & 0xffffffff00000000;
   local_res8 = param_1;
-  if ((((param_10 < *(uint *)((longlong)param_9 + 0x44)) ||
-       (param_10 - *(uint *)((longlong)param_9 + 0x44) < *(uint *)(param_9 + 9))) ||
-      (param_10 < *(uint *)((longlong)param_9 + 0x3c))) ||
-     (param_10 - *(uint *)((longlong)param_9 + 0x3c) < *(uint *)(param_9 + 8))) {
+  uVar2 = Feature_2175866168__private_IsEnabledDeviceUsage();
+  uVar1 = *(uint *)((longlong)param_9 + 0x44);
+  if ((int)uVar2 == 0) {
+    if ((((uVar1 <= param_10) && (uVar9 = *(uint *)(param_9 + 9), uVar9 <= param_10 - uVar1)) &&
+        (*(uint *)((longlong)param_9 + 0x3c) <= param_10)) &&
+       (uVar1 = *(uint *)(param_9 + 8), uVar1 <= param_10 - *(uint *)((longlong)param_9 + 0x3c)))
+    goto LAB_0;
     HsmDbgBreakOnStatus(-0x3fff30f5);
     if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
       return 0xc000cf0b;
     }
     if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
       return 0xc000cf0b;
     }
     if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
       return 0xc000cf0b;
     }
-    uVar8 = 0x99;
+    uVar7 = 0x9c;
   }
-  else if (((char)(int)param_9[1] < '\0') && (*(uint *)(param_9 + 8) != 0)) {
+  else if (((param_10 < uVar1) || (uVar9 = *(uint *)(param_9 + 9), param_10 - uVar1 < uVar9)) ||
+          ((param_10 < *(uint *)((longlong)param_9 + 0x3c) ||
+           ((uVar1 = *(uint *)(param_9 + 8), param_10 - *(uint *)((longlong)param_9 + 0x3c) < uVar1
+            || (0x1000 < uVar1)))))) {
     HsmDbgBreakOnStatus(-0x3fff30f5);
     if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
       return 0xc000cf0b;
     }
     if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
       return 0xc000cf0b;
     }
     if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
       return 0xc000cf0b;
     }
-    uVar8 = 0x9a;
+    uVar7 = 0x9b;
   }
   else {
-    if ((*(uint *)(param_9 + 9) & 0xf) == 0) {
-      if (param_11 - 1U < 7) {
-        uVar2 = 0xc000cf0b;
-        HsmDbgBreakOnStatus(-0x3fff30f5);
+LAB_0:
+    if (((char)(int)param_9[1] < '\0') && (uVar1 != 0)) {
+      HsmDbgBreakOnStatus(-0x3fff30f5);
+      if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+        return 0xc000cf0b;
+      }
+      if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+        return 0xc000cf0b;
+      }
+      if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+        return 0xc000cf0b;
+      }
+      uVar7 = 0x9d;
+    }
+    else {
+      if ((uVar9 & 0xf) == 0) {
+        if (param_11 - 1U < 7) {
+          uVar1 = 0xc000cf0b;
+          HsmDbgBreakOnStatus(-0x3fff30f5);
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return 0xc000cf0b;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return 0xc000cf0b;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return 0xc000cf0b;
+          }
+          uVar7 = 0x9f;
+LAB_1:
+          WPP_SF_qiqLd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar7,
+                       &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+          return uVar1;
+        }
+        uVar1 = HsmpCldGetSyncPolicy(param_2,0,param_3,0,(uint *)&local_res20);
+        HsmDbgBreakOnStatus(uVar1);
+        if (-1 < (int)uVar1) {
+          if ((local_res20 & 0x20000000) == 0) {
+            local_res20 = local_res20 & 0xffffffffffffff00;
+            if (param_8 == 0) {
+              lVar3 = 0;
+            }
+            else {
+              lVar3 = FltGetRequestorProcess(param_8);
+            }
+            uVar1 = HsmpCldCheckSyncProviderAccess
+                              (param_2,param_5,param_3,lVar3,(undefined1 *)&local_res20);
+            HsmDbgBreakOnStatus(uVar1);
+            if ((int)uVar1 < 0) {
+LAB_2:
+              if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+                return uVar1;
+              }
+              if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+                return uVar1;
+              }
+              if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+                return uVar1;
+              }
+              WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0xa1,
+                          &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_2);
+              return uVar1;
+            }
+            if ((char)local_res20 == '\0') {
+              uVar1 = 0xc000cf18;
+              HsmDbgBreakOnStatus(-0x3fff30e8);
+              goto LAB_2;
+            }
+          }
+          if ((*(uint *)(param_9 + 1) & 0x2000) != 0) {
+            HsmpDeletePropertyStream(param_2,param_6);
+          }
+          uVar1 = *(uint *)(param_9 + 1);
+          puVar13 = (uint *)0x0;
+          local_res8 = param_9[2];
+          local_res20 = CONCAT44(local_res20._4_4_,uVar1);
+          if ((uVar1 >> 0x11 & 1) == 0) {
+            puVar8 = (uint *)(param_9 + 3);
+            puVar11 = (uint *)(param_9 + 7);
+            if ((uVar1 & 0x10000) == 0) {
+              if (*(longlong *)puVar8 == 0) {
+                puVar8 = puVar13;
+              }
+              if (*puVar11 == 0) {
+                puVar11 = puVar13;
+              }
+              puVar10 = (uint *)(param_9 + 4);
+              if (param_9[4] == 0) {
+                puVar10 = puVar13;
+              }
+              puVar5 = (uint *)(param_9 + 5);
+              if (param_9[5] == 0) {
+                puVar5 = puVar13;
+              }
+              puVar13 = (uint *)(-(ulonglong)(param_9[6] != 0) & (ulonglong)(param_9 + 6));
+            }
+            else {
+              puVar10 = (uint *)(param_9 + 4);
+              puVar5 = (uint *)(param_9 + 5);
+              puVar13 = (uint *)(param_9 + 6);
+            }
+          }
+          else {
+            puVar5 = (uint *)0x0;
+            puVar10 = (uint *)0x0;
+            puVar11 = (uint *)0x0;
+            puVar8 = (uint *)0x0;
+          }
+          if ((*(uint *)(param_5 + 0x1c) & 2) == 0) {
+            if ((local_res8 == 0) && (param_11 == 0)) {
+              plVar14 = (longlong *)0x0;
+            }
+            else {
+              plVar14 = &local_res8;
+            }
+            if (*(uint *)(param_9 + 8) == 0) {
+              pvVar12 = (void *)0x0;
+            }
+            else {
+              pvVar12 = (void *)((ulonglong)*(uint *)((longlong)param_9 + 0x3c) + (longlong)param_9)
+              ;
+            }
+            if (*(uint *)(param_9 + 9) == 0) {
+              puVar4 = (undefined8 *)0x0;
+            }
+            else {
+              puVar4 = (undefined8 *)
+                       ((ulonglong)*(uint *)((longlong)param_9 + 0x44) + (longlong)param_9);
+            }
+            uVar1 = HsmiOpUpdatePlaceholderFile
+                              (param_2,param_5,param_3,uVar1,puVar4,*(uint *)(param_9 + 9) >> 4,
+                               pvVar12,*(uint *)(param_9 + 8),(longlong *)puVar8,puVar11,
+                               (undefined8 *)puVar10,(undefined8 *)puVar5,(undefined8 *)puVar13,
+                               plVar14);
+          }
+          else {
+            if (*(uint *)(param_9 + 8) == 0) {
+              pvVar12 = (void *)0x0;
+            }
+            else {
+              pvVar12 = (void *)((ulonglong)*(uint *)((longlong)param_9 + 0x3c) + (longlong)param_9)
+              ;
+            }
+            uVar1 = HsmiOpUpdatePlaceholderDirectory
+                              (param_2,param_5,param_3,uVar1,pvVar12,*(uint *)(param_9 + 8),puVar11,
+                               (undefined8 *)puVar10,(undefined8 *)puVar5,(undefined8 *)puVar13);
+          }
+          HsmDbgBreakOnStatus(uVar1);
+          if (-1 < (int)uVar1) {
+            if (param_11 != 0) {
+              *param_9 = local_res8;
+            }
+            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+              return uVar1;
+            }
+            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+              return uVar1;
+            }
+            if ((byte)WPP_GLOBAL_Control[0x29] < 4) {
+              return uVar1;
+            }
+            WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0xa3,
+                        &WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+            return uVar1;
+          }
+          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
+            return uVar1;
+          }
+          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
+            return uVar1;
+          }
+          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
+            return uVar1;
+          }
+          uVar7 = 0xa2;
+          goto LAB_1;
+        }
         if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return 0xc000cf0b;
+          return uVar1;
         }
         if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return 0xc000cf0b;
+          return uVar1;
         }
         if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return 0xc000cf0b;
-        }
-        uVar8 = 0x9c;
-LAB_0:
-        WPP_SF_qiqLd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar8,
-                     &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-        return uVar2;
-      }
-      uVar2 = HsmpCldGetSyncPolicy(param_2,0,param_3,0,(uint *)&local_res20);
-      HsmDbgBreakOnStatus(uVar2);
-      if (-1 < (int)uVar2) {
-        if ((local_res20 & 0x20000000) == 0) {
-          param_10 = param_10 & 0xffffff00;
-          if (param_8 == 0) {
-            lVar3 = 0;
-          }
-          else {
-            lVar3 = FltGetRequestorProcess(param_8);
-          }
-          uVar2 = HsmpCldCheckSyncProviderAccess
-                            (param_2,param_5,param_3,lVar3,(undefined1 *)&param_10);
-          HsmDbgBreakOnStatus(uVar2);
-          if ((int)uVar2 < 0) {
-LAB_1:
-            if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-              return uVar2;
-            }
-            if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-              return uVar2;
-            }
-            if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-              return uVar2;
-            }
-            WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x9e,
-                        &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_2);
-            return uVar2;
-          }
-          if ((char)param_10 == '\0') {
-            uVar2 = 0xc000cf18;
-            HsmDbgBreakOnStatus(-0x3fff30e8);
-            goto LAB_1;
-          }
-        }
-        puVar10 = (uint *)0x0;
-        if ((*(uint *)(param_9 + 1) & 0x2000) != 0) {
-          HsmpDeletePropertyStream(param_2,param_6);
-        }
-        param_10 = *(uint *)(param_9 + 1);
-        local_res8 = param_9[2];
-        if ((param_10 >> 0x11 & 1) == 0) {
-          puVar12 = (uint *)(param_9 + 3);
-          puVar11 = (uint *)(param_9 + 7);
-          if ((param_10 & 0x10000) == 0) {
-            if (*(longlong *)puVar12 == 0) {
-              puVar12 = puVar10;
-            }
-            if (*puVar11 == 0) {
-              puVar11 = puVar10;
-            }
-            puVar9 = (uint *)(param_9 + 4);
-            if (param_9[4] == 0) {
-              puVar9 = puVar10;
-            }
-            puVar6 = (uint *)(param_9 + 5);
-            if (param_9[5] == 0) {
-              puVar6 = puVar10;
-            }
-            puVar10 = (uint *)(-(ulonglong)(param_9[6] != 0) & (ulonglong)(param_9 + 6));
-          }
-          else {
-            puVar9 = (uint *)(param_9 + 4);
-            puVar6 = (uint *)(param_9 + 5);
-            puVar10 = (uint *)(param_9 + 6);
-          }
-        }
-        else {
-          puVar6 = (uint *)0x0;
-          puVar9 = (uint *)0x0;
-          puVar11 = (uint *)0x0;
-          puVar12 = (uint *)0x0;
-        }
-        if ((*(uint *)(param_5 + 0x1c) & 2) == 0) {
-          if ((local_res8 == 0) && (iVar1 == 0)) {
-            plVar13 = (longlong *)0x0;
-          }
-          else {
-            plVar13 = &local_res8;
-          }
-          if (*(uint *)(param_9 + 8) == 0) {
-            pvVar4 = (void *)0x0;
-          }
-          else {
-            pvVar4 = (void *)((ulonglong)*(uint *)((longlong)param_9 + 0x3c) + (longlong)param_9);
-          }
-          if (*(uint *)(param_9 + 9) == 0) {
-            puVar5 = (undefined8 *)0x0;
-          }
-          else {
-            puVar5 = (undefined8 *)
-                     ((ulonglong)*(uint *)((longlong)param_9 + 0x44) + (longlong)param_9);
-          }
-          uVar2 = HsmiOpUpdatePlaceholderFile
-                            (param_2,param_5,param_3,param_10,puVar5,*(uint *)(param_9 + 9) >> 4,
-                             pvVar4,*(uint *)(param_9 + 8),(longlong *)puVar12,puVar11,
-                             (undefined8 *)puVar9,(undefined8 *)puVar6,(undefined8 *)puVar10,plVar13
-                            );
-        }
-        else {
-          if (*(uint *)(param_9 + 8) == 0) {
-            pvVar4 = (void *)0x0;
-          }
-          else {
-            pvVar4 = (void *)((ulonglong)*(uint *)((longlong)param_9 + 0x3c) + (longlong)param_9);
-          }
-          uVar2 = HsmiOpUpdatePlaceholderDirectory
-                            (param_2,param_5,param_3,param_10,pvVar4,*(uint *)(param_9 + 8),puVar11,
-                             (undefined8 *)puVar9,(undefined8 *)puVar6,(undefined8 *)puVar10);
-        }
-        HsmDbgBreakOnStatus(uVar2);
-        if (-1 < (int)uVar2) {
-          if (iVar1 != 0) {
-            *param_9 = local_res8;
-          }
-          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-            return uVar2;
-          }
-          if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-            return uVar2;
-          }
-          if ((byte)WPP_GLOBAL_Control[0x29] < 4) {
-            return uVar2;
-          }
-          WPP_SF_iiqd(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0xa0,
-                      &WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-          return uVar2;
-        }
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return uVar2;
-        }
-        if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-          return uVar2;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return uVar2;
-        }
-        uVar8 = 0x9f;
-        goto LAB_0;
-      }
+          return uVar1;
+        }
+        uVar6 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+        uVar7 = 0xa0;
+        goto LAB_3;
+      }
+      HsmDbgBreakOnStatus(-0x3fff30f5);
       if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-        return uVar2;
+        return 0xc000cf0b;
       }
       if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-        return uVar2;
+        return 0xc000cf0b;
       }
       if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-        return uVar2;
-      }
-      uVar7 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-      uVar8 = 0x9d;
-      goto LAB_2;
-    }
-    HsmDbgBreakOnStatus(-0x3fff30f5);
-    if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-      return 0xc000cf0b;
-    }
-    if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 1) == 0) {
-      return 0xc000cf0b;
-    }
-    if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-      return 0xc000cf0b;
-    }
-    uVar8 = 0x9b;
+        return 0xc000cf0b;
+      }
+      uVar7 = 0x9e;
+    }
   }
-  uVar2 = 0xc000cf0b;
-  uVar7 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-LAB_2:
-  WPP_SF_qqqid(uVar7,uVar8,&WPP_bfcb842d4ad43987088f06e61e3e4484_Traceguids,param_8);
-  return uVar2;
+  uVar1 = 0xc000cf0b;
+  uVar6 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+LAB_3:
+  WPP_SF_qqqid(uVar6,uVar7,&WPP_c2daf0d2b2fa378027484fb0b1678afa_Traceguids,param_8);
+  return uVar1;
 }
 

```


# Modified (No Code Changes)


*Slightly modified functions have no code changes, rather differnces in:*
- refcount
- length
- called
- calling
- name
- fullname

## wil_details_IsEnabledFallback

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|0.93|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|wil_details_IsEnabledFallback|wil_details_IsEnabledFallback|
|fullname|wil_details_IsEnabledFallback|wil_details_IsEnabledFallback|
|`refcount`|2|3|
|length|140|140|
|called|wil_details_FeatureReporting_ReportUsageToService<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState<br>wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|wil_details_FeatureReporting_ReportUsageToService<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState<br>wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|
|`calling`|Feature_1314816318__private_IsEnabledFallback|Feature_1314816318__private_IsEnabledFallback<br>Feature_2175866168__private_IsEnabledFallback|
|paramcount|3|3|
|address|1c000c1cc|1c000c1cc|
|sig|uint __fastcall wil_details_IsEnabledFallback(ulonglong param_1, int param_2, undefined8 * param_3)|uint __fastcall wil_details_IsEnabledFallback(ulonglong param_1, int param_2, undefined8 * param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_IsEnabledFallback Calling Diff


```diff
--- wil_details_IsEnabledFallback calling
+++ wil_details_IsEnabledFallback calling
@@ -1,0 +2 @@
+Feature_2175866168__private_IsEnabledFallback
```


## HsmDbgBreakOnStatus

### Match Info



|Key|cl_1301.sys - cl_1455.sys|
| :---: | :---: |
|diff_type|refcount|
|ratio|1.0|
|i_ratio|0.95|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cl_1301.sys|cl_1455.sys|
| :---: | :---: | :---: |
|name|HsmDbgBreakOnStatus|HsmDbgBreakOnStatus|
|fullname|HsmDbgBreakOnStatus|HsmDbgBreakOnStatus|
|`refcount`|1447|1450|
|length|147|147|
|called|HsmpGetRegDword<br>NTOSKRNL.EXE::IoGetCurrentProcess|HsmpGetRegDword<br>NTOSKRNL.EXE::IoGetCurrentProcess|
|calling|<details><summary>Expand for full list:<br>CldCaptureProcessInfo<br>CldHsmAddCrossContainerNotificationEvent<br>CldHsmCreateFileContext<br>CldHsmCreateInstanceContext<br>CldHsmCreateStreamContext<br>CldHsmCreateStreamHandleContext<br>CldHsmGetSyncPolicy<br>CldHsmGetSyncPolicyByPath<br>CldHsmGetSyncProviderProcessByPath<br>CldHsmGetSyncRootFileIdByPath<br>CldHsmGetSyncRootInfoByPath</summary>CldHsmGetSyncStatus<br>CldHsmHydratePlaceholder<br>CldHsmInitialize<br>CldHsmNotifyPreOperation<br>CldHsmPopulatePlaceholders<br>CldHsmTerminateProgressiveHydration<br>CldLookupSyncRoot<br>CldPortInitialize<br>CldPortSendCancelHydrationMessage<br>CldPortSendCancelNotificationMessage<br>CldPortSendCancelPopulationMessage<br>CldPortSendHydrationMessage<br>CldPortSendPopulationMessage<br>CldPortSendPostOpMessage<br>CldPortSendPreOpMessage<br>CldPortSendUpstreamMessage<br>CldStreamAckData<br>CldStreamGetPlaceholderRangeInfo<br>CldStreamInitialize<br>CldStreamOpen<br>CldStreamQueryProgress<br>CldStreamRestartHydration<br>CldStreamRetrieveData<br>CldStreamSetSyncStatus<br>CldStreamTransferData<br>CldStreamTransferPlaceholders<br>CldSyncAckDehydrate<br>CldSyncAckDelete<br>CldSyncAckRename<br>CldSyncConnectRoot<br>CldSyncGetPlaceholderRangeInfo<br>CldSyncGetPolicy<br>CldSyncGetSyncStatusOnRoot<br>CldSyncLookupRootByName<br>CldSyncRegisterStream<br>CldSyncReportProgress<br>CldSyncReportSyncStatusOnRoot<br>CldSyncRestartHydration<br>CldSyncRetrieveData<br>CldSyncSendCancelHydrationRequest<br>CldSyncSendCancelNotificationRequest<br>CldSyncSendCancelPopulationRequest<br>CldSyncSendHydrationRequest<br>CldSyncSendPopulationRequest<br>CldSyncSendPostNotification<br>CldSyncSendPreNotification<br>CldSyncSetSyncStatusOnStream<br>CldSyncTransferPlaceholders<br>CldiPortAccessCheck<br>CldiPortAddCrossVmProgressEvent<br>CldiPortCheckAllSystemsGo<br>CldiPortNotifyConnect<br>CldiPortNotifyMessage<br>CldiPortProcessAbortHydration<br>CldiPortProcessAckData<br>CldiPortProcessAckNotification<br>CldiPortProcessFilterControl<br>CldiPortProcessGetRangeInfo<br>CldiPortProcessGlobal<br>CldiPortProcessQueryProgress<br>CldiPortProcessReportProgress<br>CldiPortProcessRestartHydration<br>CldiPortProcessRetrieveData<br>CldiPortProcessServiceCommands<br>CldiPortProcessTransfer<br>CldiPortProcessTransferData<br>CldiPortProcessTransferPlaceholders<br>CldiPortSetSyncStatus<br>CldiStreamAckNotification<br>CldiStreamBuildProviderRequest<br>CldiStreamCompleteRequest<br>CldiStreamInsertIntoCancelSafeQueue<br>CldiStreamProcessPendingHydrationRequests<br>CldiStreamRestartCountdownTimer<br>CldiStreamServiceHydrationRequest<br>CldiStreamStopCountdownTimer<br>CldiSyncCreateRootNoLock<br>CldiSyncEnsurePendingRanges<br>CldiSyncInitializeRootNoLock<br>CldiSyncInsertPendingRange<br>CldiSyncReferenceRoot<br>CldiSyncSetSyncStatusOnRoot<br>CldiSyncSplitPendingRange<br>CldiSyncTransferOrAckData<br>CldiSyncTransferOrAckDataByObject<br>CldiSyncTransferPlaceholdersByObject<br>HsmCldDeleteSyncRootInfo<br>HsmCldPersistSyncRootInfo<br>HsmCreateOrOpenNamedEvent<br>HsmDriverEntry<br>HsmExpandKernelStackAndCallout<br>HsmFileCacheCreateFileObject<br>HsmFileCacheInitialize<br>HsmFileCacheMapData<br>HsmFltInstanceQueryTeardown<br>HsmFltPostLOCK_CONTROL<br>HsmFltPostSetRenameInformation<br>HsmFltPreACQUIRE_FOR_SECTION_SYNCHRONIZATION<br>HsmFltPreCLEANUP<br>HsmFltPreDIRECTORY_CONTROL<br>HsmFltPreFILE_SYSTEM_CONTROL<br>HsmFltPreLOCK_CONTROL<br>HsmFltPreQUERY_ALLOCATED_RANGES<br>HsmFltPreREAD<br>HsmFltPreSET_INFORMATION<br>HsmFltPreSET_PURGE_FAILURE_MODE<br>HsmFltPreSET_REPARSE_POINT<br>HsmFltPreSET_REPARSE_POINT_EX<br>HsmFltPreSET_ZERO_DATA<br>HsmFltPreSetBasicInformation<br>HsmFltPreSetDispositionInformation<br>HsmFltPreSetLinkInformation<br>HsmFltPreSetRenameInformation<br>HsmFltPreWRITE<br>HsmFltProcessClearInSync<br>HsmFltProcessConvertPlaceholder<br>HsmFltProcessCreatePlaceholders<br>HsmFltProcessDehydrate<br>HsmFltProcessGetCorrelationVector<br>HsmFltProcessGetLastSyncStatus<br>HsmFltProcessHSMControl<br>HsmFltProcessHydrate<br>HsmFltProcessLockProperties<br>HsmFltProcessQueryPlaceholder<br>HsmFltProcessQueryStreamKey<br>HsmFltProcessRetrieveProperties<br>HsmFltProcessRevert<br>HsmFltProcessSetCorrelationVector<br>HsmFltProcessSetInSync<br>HsmFltProcessSetPinState<br>HsmFltProcessStoreProperties<br>HsmFltProcessUpdatePlaceholder<br>HsmIBitmapNORMALCreate<br>HsmIBitmapNORMALMarkRangeEx<br>HsmIBitmapNORMALMayContainDirtyRange<br>HsmIBitmapNORMALOpen<br>HsmIBitmapNORMALPrepareCommit<br>HsmIBitmapNORMALQueryRangeEx<br>HsmIBitmapVOLATILEMarkRangeEx<br>HsmPreLockControlSynchronous<br>HsmProcessGetPlaceholderRangeInfo<br>HsmRecallAckData<br>HsmRecallRetrieveData<br>HsmRecallTransferData<br>HsmRecallTransferPlaceholders<br>HsmRecallUpdatePlaceholderFile<br>HsmiBitmapCheckVersion<br>HsmiBitmapNORMALDeleteOnDisk<br>HsmiBitmapNORMALEnsureOpened<br>HsmiBitmapNORMALFlushBitmapOnDisk<br>HsmiBitmapNORMALLoadFromDisk<br>HsmiBitmapNORMALMapBlock<br>HsmiBitmapNORMALMarkBitmapOnDisk<br>HsmiBitmapNORMALOpenOnDisk<br>HsmiBitmapNORMALPrepareBlockForWrite<br>HsmiBitmapNORMALPrepareMcbsForCommit<br>HsmiBitmapNORMALVerifyBitmapPages<br>HsmiBitmapNormalDeleteStream<br>HsmiBitmapNormalOpenStream<br>HsmiCldGetSyncProviderProcess<br>HsmiCldGetSyncRootFileIdByFileObject<br>HsmiCldGetSyncRootFileIdByPath<br>HsmiCldGetSyncRootInfo<br>HsmiCldGetSyncRootInfoByFileObject<br>HsmiCldGetSyncRootInfoByPath<br>HsmiCldLoadSyncRootInfoByFileId<br>HsmiCldLoadSyncRootInfoByFileObject<br>HsmiCldOpenSyncRoot<br>HsmiCompleteLockCallbackDataRoutine<br>HsmiCompressBuffer<br>HsmiCreateAllocateECPTags<br>HsmiCreateEnsureDirectoryFullyPopulated<br>HsmiCtxCreateFileContext<br>HsmiCtxGetOrCreateFileContext<br>HsmiDecompressBuffer<br>HsmiExpandBitmapNoLock<br>HsmiFileCacheAllocateStreamControlBlock<br>HsmiFileCacheIrpClose<br>HsmiFileCacheIrpQueryInformation<br>HsmiFileCacheIrpRead<br>HsmiFileCacheIrpWrite<br>HsmiFileCacheValidateFileObject<br>HsmiFileCacheWriteCompletion<br>HsmiFltPostECPCREATE<br>HsmiFltPreECPCREATE<br>HsmiGrantLockRequest<br>HsmiInfoHydratePlaceholderOnRename<br>HsmiInfoPopulatePlaceholderOnRename<br>HsmiInfoPrepareForPostRename<br>HsmiInfoPrepareForPostSetDispostionInformation<br>HsmiInfoRecallForRenameCompletion<br>HsmiInfoUpdatePlaceholderStatesOnRenamePre<br>HsmiIsFileAttributeChangeRequired<br>HsmiMarkFileRangeNoLock<br>HsmiMungeQueryDirectory<br>HsmiOOBECompleteWnfCallback<br>HsmiOpDehydrateNotificationCallback<br>HsmiOpInheritPinStatePre<br>HsmiOpPrepareOperation<br>HsmiOpRevertCompletion<br>HsmiOpSetPinStateInternal<br>HsmiOpUpdateInSyncState<br>HsmiOpUpdatePlaceholderDirectory<br>HsmiOpUpdatePlaceholderFile<br>HsmiOpenFile<br>HsmiPrepareBitmapCommit<br>HsmiProcessPropertyLockRequestList<br>HsmiPropertyLockWait<br>HsmiQueryFileRangeNoLock<br>HsmiQueryFileRangesTotalNoLock<br>HsmiQueryFullFilePath<br>HsmiRecallAllocateHydrationContext<br>HsmiRecallAllocatePopulationContext<br>HsmiRecallInitiateHydration<br>HsmiRecallPostProcessUserHydrationRequest<br>HsmiRecallWriteFileNoLock<br>HsmiRpInitializeTable<br>HsmiUpdateFileAttributes<br>HsmiValidateAndAttachAttributionEcpToStreamHandleContext<br>HsmpAccessCheck<br>HsmpAccessCheckByFileId<br>HsmpAcquireFileNameLock<br>HsmpAcquireSyncOpRundownProtection<br>HsmpAcquireUserRequestRundownProtection<br>HsmpBitmapCreateSnapshot<br>HsmpBitmapGetRangeState<br>HsmpBitmapIsReparseBufferSupported<br>HsmpBitmapQueryRange<br>HsmpBuildFullLinkPath<br>HsmpCheckLegacyFilterAbsence<br>HsmpCldCheckSyncProviderAccess<br>HsmpCldGetSyncPolicy<br>HsmpCldGetSyncPolicyByPath<br>HsmpCldGetSyncRootBasicInfo<br>HsmpCldGetSyncRootFileIdEx<br>HsmpCldGetSyncRootProviderInfo<br>HsmpCldGetSyncRootStandardInfo<br>HsmpCldIsHydrationDisallowed<br>HsmpCldNotifyPostOperation<br>HsmpCldNotifyPreOperation<br>HsmpCtxCreateInstanceContext<br>HsmpCtxCreateStreamContext<br>HsmpCtxCreateStreamHandleContext<br>HsmpCtxGetOrCreateFileContext<br>HsmpDeleteAlternateStream<br>HsmpDeleteAlternateStreamById<br>HsmpDeletePropertyStream<br>HsmpFileCacheFlush<br>HsmpFileCachePreparePinWrite<br>HsmpFileCacheSetFileSize<br>HsmpFillOutAttributionInformation<br>HsmpGetAttributionInformation<br>HsmpLoadPropertyStream<br>HsmpMarkHandleUsnSourceInfo<br>HsmpNotifyDataChange<br>HsmpOpCreatePlaceholders<br>HsmpOpenFileById<br>HsmpOpenFileByIdEx<br>HsmpOpenFileByPath<br>HsmpPrepareForMgmtOperation<br>HsmpProcessQueryRangeStateHelper<br>HsmpQueryLastEffectiveUsn<br>HsmpQueryModifiedRangeNoLock<br>HsmpQueryValidatedNonModifiedRangeNoLock<br>HsmpQueryValidatedNonModifiedRangesTotalNoLock<br>HsmpQueueDehydrationRequest<br>HsmpRecallInitiateHydrationEx<br>HsmpRecallInitiatePopulationEx<br>HsmpRecurseDirectory<br>HsmpRelativeStreamOpen<br>HsmpRelativeStreamOpenById<br>HsmpRpBuildBuffer<br>HsmpRpCommitNoLock<br>HsmpRpCreate<br>HsmpRpReadBuffer<br>HsmpRpRemove<br>HsmpRpValidateBuffer<br>HsmpRpiDecompressBuffer<br>HsmpSetCompressionNoLock<br>HsmpSetFileDisposition<br>HsmpSetFileVDL<br>HsmpSetupContexts<br>HsmpToggleFileAttributes<br>HsmpToggleFileAttributesNoNotify<br>HsmpToggleFileAttributesNotify<br>HsmpToggleFileSparseAttribute<br>HsmpUpdateLastAccessTime<br>HsmpValidateAttributionEcp<br>HsmpValidateStreamContextNoLock<br>TlmInitializeCorrelationVector<br>TlmWriteFilterAttachEvent</details>|<details><summary>Expand for full list:<br>CldCaptureProcessInfo<br>CldHsmAddCrossContainerNotificationEvent<br>CldHsmCreateFileContext<br>CldHsmCreateInstanceContext<br>CldHsmCreateStreamContext<br>CldHsmCreateStreamHandleContext<br>CldHsmGetSyncPolicy<br>CldHsmGetSyncPolicyByPath<br>CldHsmGetSyncProviderProcessByPath<br>CldHsmGetSyncRootFileIdByPath<br>CldHsmGetSyncRootInfoByPath</summary>CldHsmGetSyncStatus<br>CldHsmHydratePlaceholder<br>CldHsmInitialize<br>CldHsmNotifyPreOperation<br>CldHsmPopulatePlaceholders<br>CldHsmTerminateProgressiveHydration<br>CldLookupSyncRoot<br>CldPortInitialize<br>CldPortSendCancelHydrationMessage<br>CldPortSendCancelNotificationMessage<br>CldPortSendCancelPopulationMessage<br>CldPortSendHydrationMessage<br>CldPortSendPopulationMessage<br>CldPortSendPostOpMessage<br>CldPortSendPreOpMessage<br>CldPortSendUpstreamMessage<br>CldStreamAckData<br>CldStreamGetPlaceholderRangeInfo<br>CldStreamInitialize<br>CldStreamOpen<br>CldStreamQueryProgress<br>CldStreamRestartHydration<br>CldStreamRetrieveData<br>CldStreamSetSyncStatus<br>CldStreamTransferData<br>CldStreamTransferPlaceholders<br>CldSyncAckDehydrate<br>CldSyncAckDelete<br>CldSyncAckRename<br>CldSyncConnectRoot<br>CldSyncGetPlaceholderRangeInfo<br>CldSyncGetPolicy<br>CldSyncGetSyncStatusOnRoot<br>CldSyncLookupRootByName<br>CldSyncRegisterStream<br>CldSyncReportProgress<br>CldSyncReportSyncStatusOnRoot<br>CldSyncRestartHydration<br>CldSyncRetrieveData<br>CldSyncSendCancelHydrationRequest<br>CldSyncSendCancelNotificationRequest<br>CldSyncSendCancelPopulationRequest<br>CldSyncSendHydrationRequest<br>CldSyncSendPopulationRequest<br>CldSyncSendPostNotification<br>CldSyncSendPreNotification<br>CldSyncSetSyncStatusOnStream<br>CldSyncTransferPlaceholders<br>CldiPortAccessCheck<br>CldiPortAddCrossVmProgressEvent<br>CldiPortCheckAllSystemsGo<br>CldiPortNotifyConnect<br>CldiPortNotifyMessage<br>CldiPortProcessAbortHydration<br>CldiPortProcessAckData<br>CldiPortProcessAckNotification<br>CldiPortProcessFilterControl<br>CldiPortProcessGetRangeInfo<br>CldiPortProcessGlobal<br>CldiPortProcessQueryProgress<br>CldiPortProcessReportProgress<br>CldiPortProcessRestartHydration<br>CldiPortProcessRetrieveData<br>CldiPortProcessServiceCommands<br>CldiPortProcessTransfer<br>CldiPortProcessTransferData<br>CldiPortProcessTransferPlaceholders<br>CldiPortSetSyncStatus<br>CldiStreamAckNotification<br>CldiStreamBuildProviderRequest<br>CldiStreamCompleteRequest<br>CldiStreamInsertIntoCancelSafeQueue<br>CldiStreamProcessPendingHydrationRequests<br>CldiStreamRestartCountdownTimer<br>CldiStreamServiceHydrationRequest<br>CldiStreamStopCountdownTimer<br>CldiSyncCreateRootNoLock<br>CldiSyncEnsurePendingRanges<br>CldiSyncInitializeRootNoLock<br>CldiSyncInsertPendingRange<br>CldiSyncReferenceRoot<br>CldiSyncSetSyncStatusOnRoot<br>CldiSyncSplitPendingRange<br>CldiSyncTransferOrAckData<br>CldiSyncTransferOrAckDataByObject<br>CldiSyncTransferPlaceholdersByObject<br>HsmCldDeleteSyncRootInfo<br>HsmCldPersistSyncRootInfo<br>HsmCreateOrOpenNamedEvent<br>HsmDriverEntry<br>HsmExpandKernelStackAndCallout<br>HsmFileCacheCreateFileObject<br>HsmFileCacheInitialize<br>HsmFileCacheMapData<br>HsmFltInstanceQueryTeardown<br>HsmFltPostLOCK_CONTROL<br>HsmFltPostSetRenameInformation<br>HsmFltPreACQUIRE_FOR_SECTION_SYNCHRONIZATION<br>HsmFltPreCLEANUP<br>HsmFltPreDIRECTORY_CONTROL<br>HsmFltPreFILE_SYSTEM_CONTROL<br>HsmFltPreLOCK_CONTROL<br>HsmFltPreQUERY_ALLOCATED_RANGES<br>HsmFltPreREAD<br>HsmFltPreSET_INFORMATION<br>HsmFltPreSET_PURGE_FAILURE_MODE<br>HsmFltPreSET_REPARSE_POINT<br>HsmFltPreSET_REPARSE_POINT_EX<br>HsmFltPreSET_ZERO_DATA<br>HsmFltPreSetBasicInformation<br>HsmFltPreSetDispositionInformation<br>HsmFltPreSetLinkInformation<br>HsmFltPreSetRenameInformation<br>HsmFltPreWRITE<br>HsmFltProcessClearInSync<br>HsmFltProcessConvertPlaceholder<br>HsmFltProcessCreatePlaceholders<br>HsmFltProcessDehydrate<br>HsmFltProcessGetCorrelationVector<br>HsmFltProcessGetLastSyncStatus<br>HsmFltProcessHSMControl<br>HsmFltProcessHydrate<br>HsmFltProcessLockProperties<br>HsmFltProcessQueryPlaceholder<br>HsmFltProcessQueryStreamKey<br>HsmFltProcessRetrieveProperties<br>HsmFltProcessRevert<br>HsmFltProcessSetCorrelationVector<br>HsmFltProcessSetInSync<br>HsmFltProcessSetPinState<br>HsmFltProcessStoreProperties<br>HsmFltProcessUpdatePlaceholder<br>HsmIBitmapNORMALCreate<br>HsmIBitmapNORMALMarkRangeEx<br>HsmIBitmapNORMALMayContainDirtyRange<br>HsmIBitmapNORMALOpen<br>HsmIBitmapNORMALPrepareCommit<br>HsmIBitmapNORMALQueryRangeEx<br>HsmIBitmapVOLATILEMarkRangeEx<br>HsmPreLockControlSynchronous<br>HsmProcessGetPlaceholderRangeInfo<br>HsmRecallAckData<br>HsmRecallRetrieveData<br>HsmRecallTransferData<br>HsmRecallTransferPlaceholders<br>HsmRecallUpdatePlaceholderFile<br>HsmiBitmapCheckVersion<br>HsmiBitmapNORMALDeleteOnDisk<br>HsmiBitmapNORMALEnsureOpened<br>HsmiBitmapNORMALFlushBitmapOnDisk<br>HsmiBitmapNORMALLoadFromDisk<br>HsmiBitmapNORMALMapBlock<br>HsmiBitmapNORMALMarkBitmapOnDisk<br>HsmiBitmapNORMALOpenOnDisk<br>HsmiBitmapNORMALPrepareBlockForWrite<br>HsmiBitmapNORMALPrepareMcbsForCommit<br>HsmiBitmapNORMALVerifyBitmapPages<br>HsmiBitmapNormalDeleteStream<br>HsmiBitmapNormalOpenStream<br>HsmiCldGetSyncProviderProcess<br>HsmiCldGetSyncRootFileIdByFileObject<br>HsmiCldGetSyncRootFileIdByPath<br>HsmiCldGetSyncRootInfo<br>HsmiCldGetSyncRootInfoByFileObject<br>HsmiCldGetSyncRootInfoByPath<br>HsmiCldLoadSyncRootInfoByFileId<br>HsmiCldLoadSyncRootInfoByFileObject<br>HsmiCldOpenSyncRoot<br>HsmiCompleteLockCallbackDataRoutine<br>HsmiCompressBuffer<br>HsmiCreateAllocateECPTags<br>HsmiCreateEnsureDirectoryFullyPopulated<br>HsmiCtxCreateFileContext<br>HsmiCtxGetOrCreateFileContext<br>HsmiDecompressBuffer<br>HsmiExpandBitmapNoLock<br>HsmiFileCacheAllocateStreamControlBlock<br>HsmiFileCacheIrpClose<br>HsmiFileCacheIrpQueryInformation<br>HsmiFileCacheIrpRead<br>HsmiFileCacheIrpWrite<br>HsmiFileCacheValidateFileObject<br>HsmiFileCacheWriteCompletion<br>HsmiFltPostECPCREATE<br>HsmiFltPreECPCREATE<br>HsmiGrantLockRequest<br>HsmiInfoHydratePlaceholderOnRename<br>HsmiInfoPopulatePlaceholderOnRename<br>HsmiInfoPrepareForPostRename<br>HsmiInfoPrepareForPostSetDispostionInformation<br>HsmiInfoRecallForRenameCompletion<br>HsmiInfoUpdatePlaceholderStatesOnRenamePre<br>HsmiIsFileAttributeChangeRequired<br>HsmiMarkFileRangeNoLock<br>HsmiMungeQueryDirectory<br>HsmiOOBECompleteWnfCallback<br>HsmiOpDehydrateNotificationCallback<br>HsmiOpInheritPinStatePre<br>HsmiOpPrepareOperation<br>HsmiOpRevertCompletion<br>HsmiOpSetPinStateInternal<br>HsmiOpUpdateInSyncState<br>HsmiOpUpdatePlaceholderDirectory<br>HsmiOpUpdatePlaceholderFile<br>HsmiOpenFile<br>HsmiPrepareBitmapCommit<br>HsmiProcessPropertyLockRequestList<br>HsmiPropertyLockWait<br>HsmiQueryFileRangeNoLock<br>HsmiQueryFileRangesTotalNoLock<br>HsmiQueryFullFilePath<br>HsmiRecallAllocateHydrationContext<br>HsmiRecallAllocatePopulationContext<br>HsmiRecallInitiateHydration<br>HsmiRecallPostProcessUserHydrationRequest<br>HsmiRecallWriteFileNoLock<br>HsmiRpInitializeTable<br>HsmiUpdateFileAttributes<br>HsmiValidateAndAttachAttributionEcpToStreamHandleContext<br>HsmpAccessCheck<br>HsmpAccessCheckByFileId<br>HsmpAcquireFileNameLock<br>HsmpAcquireSyncOpRundownProtection<br>HsmpAcquireUserRequestRundownProtection<br>HsmpBitmapCreateSnapshot<br>HsmpBitmapGetRangeState<br>HsmpBitmapIsReparseBufferSupported<br>HsmpBitmapQueryRange<br>HsmpBuildFullLinkPath<br>HsmpCheckLegacyFilterAbsence<br>HsmpCldCheckSyncProviderAccess<br>HsmpCldGetSyncPolicy<br>HsmpCldGetSyncPolicyByPath<br>HsmpCldGetSyncRootBasicInfo<br>HsmpCldGetSyncRootFileIdEx<br>HsmpCldGetSyncRootProviderInfo<br>HsmpCldGetSyncRootStandardInfo<br>HsmpCldIsHydrationDisallowed<br>HsmpCldNotifyPostOperation<br>HsmpCldNotifyPreOperation<br>HsmpCtxCreateInstanceContext<br>HsmpCtxCreateStreamContext<br>HsmpCtxCreateStreamHandleContext<br>HsmpCtxGetOrCreateFileContext<br>HsmpDeleteAlternateStream<br>HsmpDeleteAlternateStreamById<br>HsmpDeletePropertyStream<br>HsmpFileCacheFlush<br>HsmpFileCachePreparePinWrite<br>HsmpFileCacheSetFileSize<br>HsmpFillOutAttributionInformation<br>HsmpGetAttributionInformation<br>HsmpLoadPropertyStream<br>HsmpMarkHandleUsnSourceInfo<br>HsmpNotifyDataChange<br>HsmpOpCreatePlaceholders<br>HsmpOpenFileById<br>HsmpOpenFileByIdEx<br>HsmpOpenFileByPath<br>HsmpPrepareForMgmtOperation<br>HsmpProcessQueryRangeStateHelper<br>HsmpQueryLastEffectiveUsn<br>HsmpQueryModifiedRangeNoLock<br>HsmpQueryValidatedNonModifiedRangeNoLock<br>HsmpQueryValidatedNonModifiedRangesTotalNoLock<br>HsmpQueueDehydrationRequest<br>HsmpRecallInitiateHydrationEx<br>HsmpRecallInitiatePopulationEx<br>HsmpRecurseDirectory<br>HsmpRelativeStreamOpen<br>HsmpRelativeStreamOpenById<br>HsmpRpBuildBuffer<br>HsmpRpCommitNoLock<br>HsmpRpCreate<br>HsmpRpReadBuffer<br>HsmpRpRemove<br>HsmpRpValidateBuffer<br>HsmpRpiDecompressBuffer<br>HsmpSetCompressionNoLock<br>HsmpSetFileDisposition<br>HsmpSetFileVDL<br>HsmpSetupContexts<br>HsmpToggleFileAttributes<br>HsmpToggleFileAttributesNoNotify<br>HsmpToggleFileAttributesNotify<br>HsmpToggleFileSparseAttribute<br>HsmpUpdateLastAccessTime<br>HsmpValidateAttributionEcp<br>HsmpValidateStreamContextNoLock<br>TlmInitializeCorrelationVector<br>TlmWriteFilterAttachEvent</details>|
|paramcount|1|1|
|address|1c0003da0|1c0003da0|
|sig|undefined __fastcall HsmDbgBreakOnStatus(int param_1)|undefined __fastcall HsmDbgBreakOnStatus(int param_1)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|



<sub>Generated with `ghidriff` version: 1.0.0 on 2026-08-22T13:49:59</sub>