# imjpapi_8521.dll-imjpapi_8875.dll 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)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_801091896getcachedfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_801091896getcurrentfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_801091896reportusage)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_801091896__private_isenabled)
* [Modified](#modified)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_inputsupportforbcp47__private_isenabled)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_standalone_future__private_isenabled)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_ksod__private_isenabled)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_uxaccoptimization__private_isenabled)
	* [CLMParamSerializer::Deserialize](#clmparamserializerdeserialize)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [WilApi_GetFeatureEnabledState](#wilapi_getfeatureenabledstate)
	* [ReportUsageToService](#reportusagetoservice)
	* [push_back](#push_back)
	* [_Throw_Hr](#_throw_hr)
	* [~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>](#unique_storagestruct_wildetailsresource_policystruct__rtl_srwlock___ptr64void___cdeclstruct__rtl_srwlock___ptr64void___cdecl_releasesrwlockexclusivestruct__rtl_srwlock___ptr64struct_wistdintegral_constantunsigned___int641struct__rtl_srwlock___ptr64struct__rtl_srwlock___ptr640stdnullptr_t_)
	* [API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount](#api-ms-win-core-sysinfo-l1-1-0dllgettickcount)
	* [EnsureSubscribedToFeatureConfigurationChanges](#ensuresubscribedtofeatureconfigurationchanges)
	* [API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive](#api-ms-win-core-synch-l1-1-0dllacquiresrwlockexclusive)

# Visual Chart Diff



```mermaid

flowchart LR

wildetailsFeatureImplstruct___WilFeatureTraits_Feature_InputSupportForBcp47__private_IsEnabled-1-old<--Match 89%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_InputSupportForBcp47__private_IsEnabled-1-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_Standalone_Future__private_IsEnabled-2-old<--Match 89%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_Standalone_Future__private_IsEnabled-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_KSOD__private_IsEnabled-2-old<--Match 89%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_KSOD__private_IsEnabled-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxAccOptimization__private_IsEnabled-2-old<--Match 89%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxAccOptimization__private_IsEnabled-2-new
CLMParamSerializerDeserialize-2-old<--Match 42%-->CLMParamSerializerDeserialize-2-new

subgraph imjpapi_8875.dll
    wildetailsFeatureImplstruct___WilFeatureTraits_Feature_InputSupportForBcp47__private_IsEnabled-1-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_Standalone_Future__private_IsEnabled-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_KSOD__private_IsEnabled-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxAccOptimization__private_IsEnabled-2-new
CLMParamSerializerDeserialize-2-new
    subgraph Added
direction LR
wil-details-FeatureImplstruct___WilFeatureTraits_Feature_801091896-GetCachedFeatureEnabledState
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_801091896-GetCurrentFeatureEnabledState
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_801091896-ReportUsage
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_801091896-__private_IsEnabled
end
end

subgraph imjpapi_8521.dll
    wildetailsFeatureImplstruct___WilFeatureTraits_Feature_InputSupportForBcp47__private_IsEnabled-1-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_Standalone_Future__private_IsEnabled-2-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_KSOD__private_IsEnabled-2-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxAccOptimization__private_IsEnabled-2-old
CLMParamSerializerDeserialize-2-old
    
end

```


```mermaid
pie showData
    title Function Matches - 99.9765%
"unmatched_funcs_len" : 4
"matched_funcs_len" : 17050
```



```mermaid
pie showData
    title Matched Function Similarity - 99.9238%
"matched_funcs_with_code_changes_len" : 5
"matched_funcs_with_non_code_changes_len" : 8
"matched_funcs_no_changes_len" : 17037
```

# 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 [] --bsim --max-ram-percent 60.0 --max-section-funcs 200 imjpapi_8521.dll imjpapi_8875.dll
```


#### Verbose Args


<details>

```
--old ['imjpapi_8521.dll'] --new [['imjpapi_8875.dll']] --engine VersionTrackingDiff --output-path ghidriff_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 True --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/imjpapi.dll/DB949FA220C000/imjpapi.dll -O imjpapi.dll.x64.10.0.26100.8521
wget https://msdl.microsoft.com/download/symbols/imjpapi.dll/30DC174A20C000/imjpapi.dll -O imjpapi.dll.x64.10.0.26100.8875
```


## Binary Metadata Diff


```diff
--- imjpapi_8521.dll Meta
+++ imjpapi_8875.dll Meta
@@ -1,44 +1,44 @@
-Program Name: imjpapi_8521.dll
+Program Name: imjpapi_8875.dll
 Language ID: x86:LE:64:default (4.6)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 180000000
 Maximum Address: ff0000184f
-# of Bytes: 2149776
+# of Bytes: 2149904
 # of Memory Blocks: 10
-# of Instructions: 364559
-# of Defined Data: 21573
-# of Functions: 8525
-# of Symbols: 66130
-# of Data Types: 2983
+# of Instructions: 364801
+# of Defined Data: 21594
+# of Functions: 8529
+# of Symbols: 66171
+# of Data Types: 2984
 # of Data Type Categories: 227
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.0.4
-Date Created: Sun Aug 16 19:39:29 SGT 2026
+Date Created: Sun Aug 16 19:39:33 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /tmp/imjp/imjpapi_8521.dll
-Executable MD5: 0e8637d68e7e4c2943036b8d3794ceb6
-Executable SHA256: b35e9aa7cb74c1fe6d67bd6298e9c52b8221c4c74433aee4de378cc8e3942abd
-FSRL: file:///tmp/imjp/imjpapi_8521.dll?MD5=0e8637d68e7e4c2943036b8d3794ceb6
+Executable Location: /tmp/imjp/imjpapi_8875.dll
+Executable MD5: 2676383beea64e43477094dcb30d75f1
+Executable SHA256: f7f0c00341dfa851733b60ba7c21e256f098f71653e28d487e9553539865066d
+FSRL: file:///tmp/imjp/imjpapi_8875.dll?MD5=2676383beea64e43477094dcb30d75f1
 PDB Age: 1
 PDB File: imjpapi.pdb
-PDB GUID: b3d61864-af60-d851-b406-d015e2fd57ab
+PDB GUID: e92c421a-1034-ca2f-15b1-c6273bd4c3c1
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: Microsoft IME
-PE Property[FileVersion]: 10.0.26100.8521 (WinBuild.160101.0800)
+PE Property[FileVersion]: 10.0.26100.8875 (WinBuild.160101.0800)
 PE Property[InternalName]: imjpapi.dll
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: imjpapi.dll
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.26100.8521
+PE Property[ProductVersion]: 10.0.26100.8875
 PE Property[Translation]: 4b00000
 Preferred Root Namespace Category: 
 RTTI Found: true
 Relocatable: true
 SectionAlignment: 4096
 Should Ask To Analyze: false

```


## Program Options


<details>
<summary>Ghidra imjpapi_8521.dll Decompiler Options</summary>


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

</details>


<details>
<summary>Ghidra imjpapi_8521.dll Specification extensions Options</summary>


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

</details>


<details>
<summary>Ghidra imjpapi_8521.dll 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|false|
|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 imjpapi_8875.dll Decompiler Options</summary>


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

</details>


<details>
<summary>Ghidra imjpapi_8875.dll Specification extensions Options</summary>


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

</details>


<details>
<summary>Ghidra imjpapi_8875.dll 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|false|
|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|4|
|deleted_funcs_len|0|
|modified_funcs_len|13|
|added_symbols_len|7|
|deleted_symbols_len|0|
|diff_time|13.508168935775757|
|deleted_strings_len|0|
|added_strings_len|0|
|match_types|Counter({'SymbolsHash': 8451, 'ExternalsName': 347, 'BulkInstructionHash': 41, 'StructuralGraphHash': 25, 'ExactInstructionsFunctionHasher': 8, 'ExactBytesFunctionHasher': 2, 'SigCallingCalledHasher': 2})|
|items_to_process|24|
|diff_types|Counter({'refcount': 8, 'calling': 8, 'code': 5, 'length': 5, 'called': 5, 'address': 5})|
|unmatched_funcs_len|4|
|total_funcs_len|17054|
|matched_funcs_len|17050|
|matched_funcs_with_code_changes_len|5|
|matched_funcs_with_non_code_changes_len|8|
|matched_funcs_no_changes_len|17037|
|match_func_similarity_percent|99.9238%|
|func_match_overall_percent|99.9765%|
|first_matches|Counter({'SymbolsHash': 8451, 'BulkInstructionHash': 41, 'StructuralGraphHash': 25, 'ExactInstructionsFunctionHasher': 8, 'ExactBytesFunctionHasher': 2, 'SigCallingCalledHasher': 2})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 8451
"ExternalsName" : 347
"ExactBytesFunctionHasher" : 2
"ExactInstructionsFunctionHasher" : 8
"BulkInstructionHash" : 41
"SigCallingCalledHasher" : 2
"StructuralGraphHash" : 25
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 8451
"ExactBytesFunctionHasher" : 2
"ExactInstructionsFunctionHasher" : 8
"BulkInstructionHash" : 41
"SigCallingCalledHasher" : 2
"StructuralGraphHash" : 25
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 4
"deleted_funcs_len" : 0
"modified_funcs_len" : 13
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 7
"deleted_symbols_len" : 0
```

## Strings


*No string differences found*

# Deleted

# Added

## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState

### Function Meta



|Key|imjpapi_8875.dll|
| :---: | :---: |
|name|GetCachedFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState|
|refcount|3|
|length|302|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::EnsureSubscribedToFeatureConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState<br>wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details_abi::heap_buffer::push_back|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled|
|paramcount|1|
|address|1800d6644|
|sig|wil_details_FeatureStateCache __thiscall GetCachedFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_801091896> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
@@ -0,0 +1,81 @@
+
+/* WARNING: Removing unreachable block (ram,0x0001800d669f) */
+/* WARNING: Removing unreachable block (ram,0x0001800d66a4) */
+/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
+/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState(void) __ptr64 */
+
+void __thiscall
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
+          (FeatureImpl<struct___WilFeatureTraits_Feature_801091896> *this)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  uint *in_RDX;
+  bool bVar5;
+  uint local_res18 [2];
+  undefined *local_res20;
+  undefined4 local_38;
+  undefined4 local_34;
+  undefined4 *local_30;
+  
+  in_RDX[0] = 0;
+  uVar3 = Feature_801091896__private_cppFeatureState;
+  in_RDX[1] = 0;
+  *in_RDX = Feature_801091896__private_cppFeatureState;
+  if (((byte)uVar3 & 6) == 6) {
+    return;
+  }
+  uVar2 = EnsureSubscribedToFeatureConfigurationChanges();
+  GetCurrentFeatureEnabledState(this,(int *)local_res18);
+  uVar3 = *in_RDX;
+  do {
+    uVar1 = uVar3;
+    uVar4 = uVar1 | 0x40000;
+    *in_RDX = uVar4;
+    if ((uVar1 & 4) == 0) {
+      uVar4 = uVar1 & 0xfffffbff | 0x40000 | local_res18[0] & 0x400 | 4;
+      *in_RDX = uVar4;
+    }
+    LOCK();
+    bVar5 = uVar1 != Feature_801091896__private_cppFeatureState;
+    uVar3 = uVar1;
+    if (bVar5) {
+      uVar3 = Feature_801091896__private_cppFeatureState;
+      uVar4 = Feature_801091896__private_cppFeatureState;
+    }
+    Feature_801091896__private_cppFeatureState = uVar4;
+    UNLOCK();
+  } while (bVar5);
+  if (((uVar1 & 4) != 0) || (_g_enabledStateManager == 0)) goto LAB_1800d674b;
+  AcquireSRWLockExclusive((PSRWLOCK)&DAT_1801df728);
+  local_res20 = &DAT_1801df728;
+  if ((uVar2 == 0) || (uVar2 != DAT_1801df73c)) {
+LAB_1800d673e:
+    LOCK();
+    Feature_801091896__private_cppFeatureState =
+         Feature_801091896__private_cppFeatureState & 0xfffffffb;
+    UNLOCK();
+  }
+  else {
+    local_34 = 0;
+    local_38 = 3;
+    local_30 = &Feature_801091896__private_cppFeatureState;
+    bVar5 = details_abi::heap_buffer::push_back((heap_buffer *)&DAT_1801df760,&local_38,0x10);
+    if (!bVar5) goto LAB_1800d673e;
+  }
+  unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              *)&local_res20);
+LAB_1800d674b:
+  if ((*in_RDX & 2) == 0) {
+    *in_RDX = *in_RDX & 0xfffff63e | local_res18[0] & 0x9c1;
+  }
+  return;
+}
+

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState

### Function Meta



|Key|imjpapi_8875.dll|
| :---: | :---: |
|name|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState|
|refcount|2|
|length|179|
|called|wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState|
|paramcount|2|
|address|1800d677c|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_801091896> * this, int * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState
@@ -0,0 +1,45 @@
+
+/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
+
+int * __thiscall
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::
+GetCurrentFeatureEnabledState
+          (FeatureImpl<struct___WilFeatureTraits_Feature_801091896> *this,int *param_1)
+
+{
+  bool bVar1;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  uint uVar4;
+  uint uVar5;
+  uint uVar6;
+  int *in_R8;
+  
+  FVar2 = WilApi_GetFeatureEnabledState(0x3b0b155,3,in_R8);
+  param_1[0] = 0;
+  param_1[1] = 0;
+  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar6 = uVar5 | (FVar2 & 3) << 7;
+  *param_1 = uVar6;
+  if ((FVar2 & 0xffffff3f) == 0) {
+    uVar3 = 0x40;
+  }
+  else {
+    uVar3 = 0;
+    if ((FVar2 & 0xffffff3f) == 2) {
+      uVar3 = 0x40;
+    }
+  }
+  bVar1 = false;
+  uVar4 = 1;
+  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
+    bVar1 = true;
+  }
+  if ((uVar3 == 0) || (!bVar1)) {
+    uVar4 = 0;
+  }
+  *param_1 = uVar6 | uVar3 | uVar4;
+  return param_1;
+}
+

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage

### Function Meta



|Key|imjpapi_8875.dll|
| :---: | :---: |
|name|ReportUsage|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage|
|refcount|2|
|length|134|
|called|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled|
|paramcount|4|
|address|1800d6f50|
|sig|void __thiscall ReportUsage(FeatureImpl<struct___WilFeatureTraits_Feature_801091896> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage
@@ -0,0 +1,31 @@
+
+/* public: void __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_801091896>::ReportUsage(bool,enum wil::ReportingKind,unsigned __int64)
+   __ptr64 */
+
+void __thiscall
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage
+          (FeatureImpl<struct___WilFeatureTraits_Feature_801091896> *this,bool param_1,
+          ReportingKind param_2,__uint64 param_3)
+
+{
+  ulonglong *puVar1;
+  ulonglong uVar2;
+  undefined4 local_res8;
+  undefined2 local_resc;
+  __uint64 in_stack_ffffffffffffffe0;
+  
+  uVar2 = (ulonglong)Feature_801091896__private_cppFeatureState;
+  if ((Feature_801091896__private_cppFeatureState & 4) == 0) {
+    puVar1 = (ulonglong *)GetCachedFeatureEnabledState(this);
+    uVar2 = *puVar1;
+  }
+  local_res8 = 0;
+  local_resc = 2;
+  ReportUsageToService
+            ((wil_details_FeatureReportingCache *)(this + 8),0x3b0b155,(uint)uVar2 >> 10 & 1,
+             (uint)(uVar2 >> 0xb) & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,(uint)param_1,3,
+             in_stack_ffffffffffffffe0);
+  return;
+}
+

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled

### Function Meta



|Key|imjpapi_8875.dll|
| :---: | :---: |
|name|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled|
|refcount|3|
|length|78|
|called|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage|
|calling|CLMParamSerializer::Deserialize|
|paramcount|1|
|address|1800d7284|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_801091896> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled
@@ -0,0 +1,19 @@
+
+/* public: bool __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_801091896>::__private_IsEnabled(void) __ptr64 */
+
+bool __thiscall
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled
+          (FeatureImpl<struct___WilFeatureTraits_Feature_801091896> *this)
+
+{
+  ReportingKind in_R8D;
+  __uint64 in_R9;
+  undefined1 local_res10;
+  
+  GetCachedFeatureEnabledState(this);
+  ReportUsage(this,(bool)(local_res10 & 1),in_R8D,in_R9);
+  Feature_801091896__private_lastUsedTickCount = GetTickCount();
+  return (bool)(local_res10 & 1);
+}
+

```


# Modified


*Modified functions contain code changes*
## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|code,length,called|
|ratio|0.95|
|i_ratio|0.56|
|m_ratio|0.89|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|__private_IsEnabled|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled|
|refcount|2|2|
|`length`|53|78|
|`called`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::ReportUsage|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::ReportUsage|
|calling|Tsf3OverrideUtil::TryNotifyVersionChangeToTsf|Tsf3OverrideUtil::TryNotifyVersionChangeToTsf|
|paramcount|1|1|
|address|18006ca5c|18006ca5c|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47> * this)|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47> * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled Called Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled called
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled called
@@ -0,0 +1 @@
+API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled
@@ -1,18 +1,19 @@
 
 /* public: bool __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled(void) __ptr64 */
 
 bool __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::
 __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47> *this)
 
 {
   ReportingKind in_R8D;
   __uint64 in_R9;
   undefined1 local_res10;
   
   GetCachedFeatureEnabledState(this);
   ReportUsage(this,(bool)(local_res10 & 1),in_R8D,in_R9);
+  Feature_InputSupportForBcp47__private_lastUsedTickCount = GetTickCount();
   return (bool)(local_res10 & 1);
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.95|
|i_ratio|0.56|
|m_ratio|0.89|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|__private_IsEnabled|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled|
|refcount|2|2|
|`length`|53|78|
|`called`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::ReportUsage|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::ReportUsage|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCurrentFeatureEnabledState|
|paramcount|2|2|
|`address`|18006cad4|18006cb0c|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future> * this, ReportingKind param_1)|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future> * this, ReportingKind param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled Called Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled called
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled called
@@ -0,0 +1 @@
+API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled
@@ -1,20 +1,21 @@
 
 /* public: bool __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled(enum wil::ReportingKind)
    __ptr64 */
 
 bool __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled
           (FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future> *this,
           ReportingKind param_1)
 
 {
   ReportingKind in_R8D;
   __uint64 in_R9;
   undefined1 local_res18;
   
   GetCachedFeatureEnabledState(this);
   ReportUsage(this,(bool)(local_res18 & 1),in_R8D,in_R9);
+  Feature_Standalone_Future__private_lastUsedTickCount = GetTickCount();
   return (bool)(local_res18 & 1);
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.95|
|i_ratio|0.56|
|m_ratio|0.89|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|__private_IsEnabled|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled|
|refcount|2|2|
|`length`|53|78|
|`called`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::ReportUsage|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::ReportUsage|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCurrentFeatureEnabledState|
|paramcount|2|2|
|`address`|18006ca98|18006cab4|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_KSOD> * this, ReportingKind param_1)|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_KSOD> * this, ReportingKind param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled Called Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled called
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled called
@@ -0,0 +1 @@
+API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled
@@ -1,18 +1,19 @@
 
 /* public: bool __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_KSOD>::__private_IsEnabled(enum wil::ReportingKind) __ptr64 */
 
 bool __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled
           (FeatureImpl<struct___WilFeatureTraits_Feature_KSOD> *this,ReportingKind param_1)
 
 {
   ReportingKind in_R8D;
   __uint64 in_R9;
   undefined1 local_res18;
   
   GetCachedFeatureEnabledState(this);
   ReportUsage(this,(bool)(local_res18 & 1),in_R8D,in_R9);
+  Feature_KSOD__private_lastUsedTickCount = GetTickCount();
   return (bool)(local_res18 & 1);
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.95|
|i_ratio|0.56|
|m_ratio|0.89|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|__private_IsEnabled|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled|
|refcount|2|2|
|`length`|53|78|
|`called`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::ReportUsage|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::ReportUsage|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCurrentFeatureEnabledState|
|paramcount|2|2|
|`address`|18006cb10|18006cb64|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization> * this, ReportingKind param_1)|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization> * this, ReportingKind param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled Called Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled called
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled called
@@ -0,0 +1 @@
+API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled
@@ -1,20 +1,21 @@
 
 /* public: bool __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled(enum wil::ReportingKind)
    __ptr64 */
 
 bool __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled
           (FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization> *this,
           ReportingKind param_1)
 
 {
   ReportingKind in_R8D;
   __uint64 in_R9;
   undefined1 local_res18;
   
   GetCachedFeatureEnabledState(this);
   ReportUsage(this,(bool)(local_res18 & 1),in_R8D,in_R9);
+  Feature_UxAccOptimization__private_lastUsedTickCount = GetTickCount();
   return (bool)(local_res18 & 1);
 }
 

```


## CLMParamSerializer::Deserialize

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.4|
|i_ratio|0.66|
|m_ratio|0.97|
|b_ratio|0.42|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|Deserialize|Deserialize|
|fullname|CLMParamSerializer::Deserialize|CLMParamSerializer::Deserialize|
|refcount|2|2|
|`length`|1496|1602|
|`called`|MSVCRT.DLL::wcscpy_s<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memset<br>operator_new[]<br>std::unique_ptr<unsigned_char_[0],struct_std::default_delete<unsigned_char_[0]>_>::reset<br>wil::details::in1diag3::_FailFast_Hr<br>wil::details::in1diag3::_Throw_Hr|MSVCRT.DLL::wcscpy_s<br>_guard_dispatch_icall$thunk$10345483385596137414<br>memset<br>operator_new[]<br>std::unique_ptr<unsigned_char_[0],struct_std::default_delete<unsigned_char_[0]>_>::reset<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled<br>wil::details::in1diag3::_FailFast_Hr<br>wil::details::in1diag3::_Throw_Hr|
|calling|CLMParamSerializer::CreateInstance|CLMParamSerializer::CreateInstance|
|paramcount|2|2|
|`address`|1800d5f84|1800d5ff4|
|sig|void __thiscall Deserialize(CLMParamSerializer * this, IMtfPropertyBag * param_1)|void __thiscall Deserialize(CLMParamSerializer * this, IMtfPropertyBag * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CLMParamSerializer::Deserialize Called Diff


```diff
--- CLMParamSerializer::Deserialize called
+++ CLMParamSerializer::Deserialize called
@@ -5,0 +6 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled
```


### CLMParamSerializer::Deserialize Diff


```diff
--- CLMParamSerializer::Deserialize
+++ CLMParamSerializer::Deserialize
@@ -1,246 +1,269 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* protected: void __cdecl CLMParamSerializer::Deserialize(struct IMtfPropertyBag * __ptr64) __ptr64
     */
 
 void __thiscall CLMParamSerializer::Deserialize(CLMParamSerializer *this,IMtfPropertyBag *param_1)
 
 {
   unique_ptr<unsigned_char_[0],struct_std::default_delete<unsigned_char_[0]>_> *this_00;
   ushort uVar1;
-  ushort uVar2;
-  longlong lVar3;
-  undefined4 *puVar4;
-  undefined1 auVar5 [16];
+  longlong lVar2;
+  undefined4 *puVar3;
+  undefined1 auVar4 [16];
+  undefined8 uVar5;
   undefined8 uVar6;
-  undefined8 uVar7;
+  bool bVar7;
   int iVar8;
   uchar *puVar9;
   undefined4 *puVar10;
   __uint64 _Var11;
   void *pvVar12;
   undefined8 *puVar13;
   undefined8 *puVar14;
   ushort *puVar15;
   ushort *puVar16;
-  undefined4 *puVar17;
-  uint uVar18;
-  ulonglong uVar19;
-  wchar_t *pwVar20;
-  ulonglong uVar21;
+  uint uVar17;
+  wchar_t *pwVar18;
+  undefined4 *puVar19;
+  ulonglong uVar20;
   void *unaff_retaddr;
   uint local_res10 [2];
   
-  uVar19 = 0;
   local_res10[0] = 0;
   iVar8 = (**(code **)(*(longlong *)param_1 + 0x20))(param_1,&DAT_0,local_res10);
   if (iVar8 < 0) {
                     /* WARNING: Subroutine does not return */
     wil::details::in1diag3::_Throw_Hr
               (unaff_retaddr,0x56e,
                "onecoreuap\\windows\\feime\\win8\\jpn\\suggestion\\lib\\sflmelm\\mtfcontainerconverter.cpp"
                ,iVar8);
+  }
+  bVar7 = wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::
+          __private_IsEnabled(&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_801091896>::GetImpl(void)'
+                               ::__l2::impl);
+  if ((bVar7) && (local_res10[0] < 0x178)) {
+                    /* WARNING: Subroutine does not return */
+    wil::details::in1diag3::_Throw_Hr
+              (unaff_retaddr,0x573,
+               "onecoreuap\\windows\\feime\\win8\\jpn\\suggestion\\lib\\sflmelm\\mtfcontainerconverter.cpp"
+               ,-0x7ff8ffa9);
   }
   puVar9 = operator_new__((ulonglong)local_res10[0]);
   this_00 = (unique_ptr<unsigned_char_[0],struct_std::default_delete<unsigned_char_[0]>_> *)
             (this + 0x30);
   std::unique_ptr<unsigned_char_[0],struct_std::default_delete<unsigned_char_[0]>_>::reset
             (this_00,puVar9);
-  uVar21 = (ulonglong)local_res10[0];
-  lVar3 = *(longlong *)this_00;
-  iVar8 = (**(code **)(*(longlong *)param_1 + 0x28))(param_1,&DAT_0,*(undefined8 *)this_00);
+  uVar20 = (ulonglong)local_res10[0];
+  lVar2 = *(longlong *)this_00;
+  iVar8 = (**(code **)(*(longlong *)param_1 + 0x28))(param_1,&DAT_0);
   if (iVar8 < 0) {
                     /* WARNING: Subroutine does not return */
     wil::details::in1diag3::_Throw_Hr
-              (unaff_retaddr,0x573,
+              (unaff_retaddr,0x579,
                "onecoreuap\\windows\\feime\\win8\\jpn\\suggestion\\lib\\sflmelm\\mtfcontainerconverter.cpp"
                ,iVar8);
   }
-  puVar4 = *(undefined4 **)this_00;
-  *(undefined4 *)(this + 0x3c) = *puVar4;
-  uVar6 = *(undefined8 *)(puVar4 + 1);
-  uVar7 = *(undefined8 *)(puVar4 + 3);
+  puVar3 = *(undefined4 **)this_00;
+  *(undefined4 *)(this + 0x3c) = *puVar3;
+  uVar5 = *(undefined8 *)(puVar3 + 1);
+  uVar6 = *(undefined8 *)(puVar3 + 3);
   *(undefined4 *)(this + 0x18) = 0x908;
-  *(undefined8 *)(this + 8) = uVar6;
-  *(undefined8 *)(this + 0x10) = uVar7;
+  *(undefined8 *)(this + 8) = uVar5;
+  *(undefined8 *)(this + 0x10) = uVar6;
   puVar10 = operator_new__(0x908);
   *(undefined4 **)(this + 0x20) = puVar10;
-  *puVar10 = puVar4[5];
-  puVar10[1] = puVar4[6];
-  puVar10[2] = puVar4[7];
-  puVar10[3] = puVar4[8];
-  puVar10[4] = puVar4[9];
-  puVar10[5] = puVar4[10];
-  puVar10[6] = puVar4[0xb];
-  puVar10[7] = puVar4[0xc];
-  puVar10[0x108] = puVar4[0xd];
-  puVar10[0x109] = puVar4[0xe];
-  uVar6 = *(undefined8 *)(puVar4 + 0x11);
-  *(undefined8 *)(puVar10 + 0x10a) = *(undefined8 *)(puVar4 + 0xf);
-  *(undefined8 *)(puVar10 + 0x10c) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x15);
-  *(undefined8 *)(puVar10 + 0x10e) = *(undefined8 *)(puVar4 + 0x13);
-  *(undefined8 *)(puVar10 + 0x110) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x19);
-  *(undefined8 *)(puVar10 + 0x112) = *(undefined8 *)(puVar4 + 0x17);
-  *(undefined8 *)(puVar10 + 0x114) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x1d);
-  *(undefined8 *)(puVar10 + 0x116) = *(undefined8 *)(puVar4 + 0x1b);
-  *(undefined8 *)(puVar10 + 0x118) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x21);
-  *(undefined8 *)(puVar10 + 0x11a) = *(undefined8 *)(puVar4 + 0x1f);
-  *(undefined8 *)(puVar10 + 0x11c) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x25);
-  *(undefined8 *)(puVar10 + 0x11e) = *(undefined8 *)(puVar4 + 0x23);
-  *(undefined8 *)(puVar10 + 0x120) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x29);
-  *(undefined8 *)(puVar10 + 0x122) = *(undefined8 *)(puVar4 + 0x27);
-  *(undefined8 *)(puVar10 + 0x124) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x2d);
-  *(undefined8 *)(puVar10 + 0x126) = *(undefined8 *)(puVar4 + 0x2b);
-  *(undefined8 *)(puVar10 + 0x128) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x31);
-  *(undefined8 *)(puVar10 + 0x12a) = *(undefined8 *)(puVar4 + 0x2f);
-  *(undefined8 *)(puVar10 + 300) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x35);
-  *(undefined8 *)(puVar10 + 0x12e) = *(undefined8 *)(puVar4 + 0x33);
-  *(undefined8 *)(puVar10 + 0x130) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x39);
-  *(undefined8 *)(puVar10 + 0x132) = *(undefined8 *)(puVar4 + 0x37);
-  *(undefined8 *)(puVar10 + 0x134) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x3d);
-  *(undefined8 *)(puVar10 + 0x136) = *(undefined8 *)(puVar4 + 0x3b);
-  *(undefined8 *)(puVar10 + 0x138) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x41);
-  *(undefined8 *)(puVar10 + 0x13a) = *(undefined8 *)(puVar4 + 0x3f);
-  *(undefined8 *)(puVar10 + 0x13c) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x45);
-  *(undefined8 *)(puVar10 + 0x13e) = *(undefined8 *)(puVar4 + 0x43);
-  *(undefined8 *)(puVar10 + 0x140) = uVar6;
-  puVar10[0x142] = puVar4[0x47];
-  puVar10[0x144] = puVar4[0x48];
-  puVar10[0x145] = puVar4[0x49];
-  puVar10[0x146] = puVar4[0x4a];
-  puVar10[0x224] = puVar4[0x4b];
-  puVar10[0x225] = puVar4[0x4c];
-  puVar10[0x226] = puVar4[0x4d];
-  puVar10[0x22a] = puVar4[0x4e];
-  puVar10[0x22e] = puVar4[0x4f];
-  puVar10[0x232] = puVar4[0x50];
-  uVar6 = *(undefined8 *)(puVar4 + 0x53);
-  *(undefined8 *)(puVar10 + 0x234) = *(undefined8 *)(puVar4 + 0x51);
-  *(undefined8 *)(puVar10 + 0x236) = uVar6;
-  uVar6 = *(undefined8 *)(puVar4 + 0x57);
-  *(undefined8 *)(puVar10 + 0x238) = *(undefined8 *)(puVar4 + 0x55);
-  *(undefined8 *)(puVar10 + 0x23a) = uVar6;
-  *(undefined8 *)(puVar10 + 0x23c) = *(undefined8 *)(puVar4 + 0x59);
-  puVar10[0x23e] = puVar4[0x5b];
-  puVar10[0x23f] = puVar4[0x5c];
-  puVar10[0x240] = puVar4[0x5d];
-  uVar18 = puVar4[0x5e];
-  puVar15 = (ushort *)(puVar4 + 0x5f);
-  *(uint *)(this + 0x38) = uVar18;
-  if (uVar18 != 0) {
-    _Var11 = SUB168(ZEXT416(0x18) * ZEXT416(uVar18),0);
-    if (SUB168(ZEXT416(0x18) * ZEXT416(uVar18),8) != 0) {
+  *puVar10 = puVar3[5];
+  puVar10[1] = puVar3[6];
+  puVar10[2] = puVar3[7];
+  puVar10[3] = puVar3[8];
+  puVar10[4] = puVar3[9];
+  puVar10[5] = puVar3[10];
+  puVar10[6] = puVar3[0xb];
+  puVar10[7] = puVar3[0xc];
+  puVar10[0x108] = puVar3[0xd];
+  puVar10[0x109] = puVar3[0xe];
+  uVar5 = *(undefined8 *)(puVar3 + 0x11);
+  *(undefined8 *)(puVar10 + 0x10a) = *(undefined8 *)(puVar3 + 0xf);
+  *(undefined8 *)(puVar10 + 0x10c) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x15);
+  *(undefined8 *)(puVar10 + 0x10e) = *(undefined8 *)(puVar3 + 0x13);
+  *(undefined8 *)(puVar10 + 0x110) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x19);
+  *(undefined8 *)(puVar10 + 0x112) = *(undefined8 *)(puVar3 + 0x17);
+  *(undefined8 *)(puVar10 + 0x114) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x1d);
+  *(undefined8 *)(puVar10 + 0x116) = *(undefined8 *)(puVar3 + 0x1b);
+  *(undefined8 *)(puVar10 + 0x118) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x21);
+  *(undefined8 *)(puVar10 + 0x11a) = *(undefined8 *)(puVar3 + 0x1f);
+  *(undefined8 *)(puVar10 + 0x11c) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x25);
+  *(undefined8 *)(puVar10 + 0x11e) = *(undefined8 *)(puVar3 + 0x23);
+  *(undefined8 *)(puVar10 + 0x120) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x29);
+  *(undefined8 *)(puVar10 + 0x122) = *(undefined8 *)(puVar3 + 0x27);
+  *(undefined8 *)(puVar10 + 0x124) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x2d);
+  *(undefined8 *)(puVar10 + 0x126) = *(undefined8 *)(puVar3 + 0x2b);
+  *(undefined8 *)(puVar10 + 0x128) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x31);
+  *(undefined8 *)(puVar10 + 0x12a) = *(undefined8 *)(puVar3 + 0x2f);
+  *(undefined8 *)(puVar10 + 300) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x35);
+  *(undefined8 *)(puVar10 + 0x12e) = *(undefined8 *)(puVar3 + 0x33);
+  *(undefined8 *)(puVar10 + 0x130) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x39);
+  *(undefined8 *)(puVar10 + 0x132) = *(undefined8 *)(puVar3 + 0x37);
+  *(undefined8 *)(puVar10 + 0x134) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x3d);
+  *(undefined8 *)(puVar10 + 0x136) = *(undefined8 *)(puVar3 + 0x3b);
+  *(undefined8 *)(puVar10 + 0x138) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x41);
+  *(undefined8 *)(puVar10 + 0x13a) = *(undefined8 *)(puVar3 + 0x3f);
+  *(undefined8 *)(puVar10 + 0x13c) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x45);
+  *(undefined8 *)(puVar10 + 0x13e) = *(undefined8 *)(puVar3 + 0x43);
+  *(undefined8 *)(puVar10 + 0x140) = uVar5;
+  puVar10[0x142] = puVar3[0x47];
+  puVar10[0x144] = puVar3[0x48];
+  puVar10[0x145] = puVar3[0x49];
+  puVar10[0x146] = puVar3[0x4a];
+  bVar7 = wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::
+          __private_IsEnabled(&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_801091896>::GetImpl(void)'
+                               ::__l2::impl);
+  if ((bVar7) && (0x65 < (uint)puVar10[0x146])) {
+                    /* WARNING: Subroutine does not return */
+    wil::details::in1diag3::_Throw_Hr
+              (unaff_retaddr,0x59d,
+               "onecoreuap\\windows\\feime\\win8\\jpn\\suggestion\\lib\\sflmelm\\mtfcontainerconverter.cpp"
+               ,-0x7ff8ffa9);
+  }
+  puVar10[0x224] = puVar3[0x4b];
+  puVar10[0x225] = puVar3[0x4c];
+  puVar10[0x226] = puVar3[0x4d];
+  puVar10[0x22a] = puVar3[0x4e];
+  puVar10[0x22e] = puVar3[0x4f];
+  puVar10[0x232] = puVar3[0x50];
+  uVar5 = *(undefined8 *)(puVar3 + 0x53);
+  *(undefined8 *)(puVar10 + 0x234) = *(undefined8 *)(puVar3 + 0x51);
+  *(undefined8 *)(puVar10 + 0x236) = uVar5;
+  uVar5 = *(undefined8 *)(puVar3 + 0x57);
+  *(undefined8 *)(puVar10 + 0x238) = *(undefined8 *)(puVar3 + 0x55);
+  *(undefined8 *)(puVar10 + 0x23a) = uVar5;
+  *(undefined8 *)(puVar10 + 0x23c) = *(undefined8 *)(puVar3 + 0x59);
+  puVar10[0x23e] = puVar3[0x5b];
+  puVar10[0x23f] = puVar3[0x5c];
+  puVar10[0x240] = puVar3[0x5d];
+  uVar17 = puVar3[0x5e];
+  puVar15 = (ushort *)(puVar3 + 0x5f);
+  *(uint *)(this + 0x38) = uVar17;
+  if (uVar17 != 0) {
+    _Var11 = SUB168(ZEXT416(0x18) * ZEXT416(uVar17),0);
+    if (SUB168(ZEXT416(0x18) * ZEXT416(uVar17),8) != 0) {
       _Var11 = 0xffffffffffffffff;
     }
     pvVar12 = operator_new__(_Var11);
     *(void **)(this + 0x28) = pvVar12;
     memset(pvVar12,0,(ulonglong)*(uint *)(this + 0x38) * 0x18);
   }
-  puVar17 = *(undefined4 **)(this + 0x28);
-  puVar4 = puVar17 + (ulonglong)*(uint *)(this + 0x38) * 6;
-  for (; puVar17 < puVar4; puVar17 = puVar17 + 6) {
-    *puVar17 = *(undefined4 *)puVar15;
-    puVar17[1] = *(undefined4 *)(puVar15 + 2);
-    uVar18 = *(uint *)(puVar15 + 4);
+  puVar19 = *(undefined4 **)(this + 0x28);
+  puVar3 = puVar19 + (ulonglong)*(uint *)(this + 0x38) * 6;
+  for (; puVar19 < puVar3; puVar19 = puVar19 + 6) {
+    *puVar19 = *(undefined4 *)puVar15;
+    puVar19[1] = *(undefined4 *)(puVar15 + 2);
+    uVar17 = *(uint *)(puVar15 + 4);
     puVar15 = puVar15 + 6;
-    puVar17[2] = uVar18;
-    auVar5 = ZEXT816(0x20) * ZEXT416(uVar18);
-    _Var11 = auVar5._0_8_;
-    if (auVar5._8_8_ != 0) {
+    puVar19[2] = uVar17;
+    auVar4 = ZEXT816(0x20) * ZEXT416(uVar17);
+    _Var11 = auVar4._0_8_;
+    if (auVar4._8_8_ != 0) {
       _Var11 = 0xffffffffffffffff;
     }
     pvVar12 = operator_new__(_Var11);
-    *(void **)(puVar17 + 4) = pvVar12;
-    memset(pvVar12,0,(ulonglong)(uint)puVar17[2] << 5);
-    puVar13 = *(undefined8 **)(puVar17 + 4);
-    puVar14 = puVar13 + (ulonglong)(uint)puVar17[2] * 4;
+    *(void **)(puVar19 + 4) = pvVar12;
+    memset(pvVar12,0,(ulonglong)(uint)puVar19[2] << 5);
+    puVar13 = *(undefined8 **)(puVar19 + 4);
+    puVar14 = puVar13 + (ulonglong)(uint)puVar19[2] * 4;
     for (; puVar13 < puVar14; puVar13 = puVar13 + 4) {
-      uVar6 = *(undefined8 *)(puVar15 + 4);
+      uVar5 = *(undefined8 *)(puVar15 + 4);
       *puVar13 = *(undefined8 *)puVar15;
-      puVar13[1] = uVar6;
+      puVar13[1] = uVar5;
       iVar8 = *(int *)(puVar15 + 8);
       *(int *)(puVar13 + 2) = iVar8;
       puVar13[3] = puVar15 + 10;
       puVar15 = (ushort *)((longlong)(puVar15 + 10) + ((ulonglong)(iVar8 + 3) & 0xfffffffc));
     }
   }
   uVar1 = *puVar15;
-  pwVar20 = (wchar_t *)(-(ulonglong)(*puVar15 != 0) & (ulonglong)(puVar15 + 1));
+  pwVar18 = (wchar_t *)(-(ulonglong)(*puVar15 != 0) & (ulonglong)(puVar15 + 1));
   *(wchar_t *)(puVar10 + 8) = L'\0';
   puVar16 = puVar15 + (ulonglong)uVar1 + 1;
-  if (pwVar20 != (wchar_t *)0x0) {
-    wcscpy_s((wchar_t *)(puVar10 + 8),0x100,pwVar20);
-  }
-  uVar2 = *puVar16;
-  pwVar20 = (wchar_t *)(-(ulonglong)(*puVar16 != 0) & (ulonglong)(puVar15 + (ulonglong)uVar1 + 2));
+  if (pwVar18 != (wchar_t *)0x0) {
+    wcscpy_s((wchar_t *)(puVar10 + 8),0x100,pwVar18);
+  }
+  pwVar18 = (wchar_t *)0x0;
+  if (*puVar16 != 0) {
+    pwVar18 = (wchar_t *)(puVar15 + (ulonglong)uVar1 + 2);
+  }
+  uVar1 = *puVar16;
   *(wchar_t *)(puVar10 + 0x88) = L'\0';
-  puVar16 = puVar16 + (ulonglong)uVar2 + 1;
-  if (pwVar20 != (wchar_t *)0x0) {
-    wcscpy_s((wchar_t *)(puVar10 + 0x88),0x100,pwVar20);
-  }
+  puVar16 = puVar16 + (ulonglong)uVar1 + 1;
+  if (pwVar18 != (wchar_t *)0x0) {
+    wcscpy_s((wchar_t *)(puVar10 + 0x88),0x100,pwVar18);
+  }
+  pwVar18 = (wchar_t *)0x0;
   if (puVar10[0x146] != 0) {
     do {
       uVar1 = *puVar16;
       puVar15 = puVar16 + 1;
       puVar16 = puVar16 + (ulonglong)uVar1 + 1;
-      *(ulonglong *)(puVar10 + uVar19 * 2 + 0x148) = -(ulonglong)(uVar1 != 0) & (ulonglong)puVar15;
-      uVar18 = (int)uVar19 + 1;
-      uVar19 = (ulonglong)uVar18;
-    } while (uVar18 < (uint)puVar10[0x146]);
+      uVar17 = (int)pwVar18 + 1;
+      *(ulonglong *)(puVar10 + (longlong)pwVar18 * 2 + 0x148) =
+           -(ulonglong)(uVar1 != 0) & (ulonglong)puVar15;
+      pwVar18 = (wchar_t *)(ulonglong)uVar17;
+    } while (uVar17 < (uint)puVar10[0x146]);
   }
   uVar1 = *puVar16;
   *(ulonglong *)(puVar10 + 0x212) = -(ulonglong)(uVar1 != 0) & (ulonglong)(puVar16 + 1);
   puVar15 = puVar16 + (ulonglong)uVar1 + (ulonglong)puVar16[(ulonglong)uVar1 + 1] + 2;
   *(ulonglong *)(puVar10 + 0x214) =
        -(ulonglong)(puVar16[(ulonglong)uVar1 + 1] != 0) &
        (ulonglong)(puVar16 + (ulonglong)uVar1 + 2);
   uVar1 = *puVar15;
   *(ulonglong *)(puVar10 + 0x216) = -(ulonglong)(uVar1 != 0) & (ulonglong)(puVar15 + 1);
   puVar16 = puVar15 + (ulonglong)uVar1 + (ulonglong)puVar15[(ulonglong)uVar1 + 1] + 2;
   *(ulonglong *)(puVar10 + 0x218) =
        -(ulonglong)(puVar15[(ulonglong)uVar1 + 1] != 0) &
        (ulonglong)(puVar15 + (ulonglong)uVar1 + 2);
   uVar1 = *puVar16;
   *(ulonglong *)(puVar10 + 0x21a) = -(ulonglong)(uVar1 != 0) & (ulonglong)(puVar16 + 1);
   puVar15 = puVar16 + (ulonglong)uVar1 + (ulonglong)puVar16[(ulonglong)uVar1 + 1] + 2;
   *(ulonglong *)(puVar10 + 0x21c) =
        -(ulonglong)(puVar16[(ulonglong)uVar1 + 1] != 0) &
        (ulonglong)(puVar16 + (ulonglong)uVar1 + 2);
   puVar16 = puVar15 + (ulonglong)*puVar15 + 1;
   *(ulonglong *)(puVar10 + 0x21e) = -(ulonglong)(*puVar15 != 0) & (ulonglong)(puVar15 + 1);
   puVar15 = puVar16 + (ulonglong)*puVar16 + 1;
   *(ulonglong *)(puVar10 + 0x220) = -(ulonglong)(*puVar16 != 0) & (ulonglong)(puVar16 + 1);
   uVar1 = *puVar15;
   *(ulonglong *)(puVar10 + 0x222) = -(ulonglong)(uVar1 != 0) & (ulonglong)(puVar15 + 1);
   puVar16 = puVar15 + (ulonglong)uVar1 + (ulonglong)puVar15[(ulonglong)uVar1 + 1] + 2;
   *(ulonglong *)(puVar10 + 0x228) =
        -(ulonglong)(puVar15[(ulonglong)uVar1 + 1] != 0) &
        (ulonglong)(puVar15 + (ulonglong)uVar1 + 2);
   puVar15 = puVar16 + (ulonglong)*puVar16 + 1;
   *(ulonglong *)(puVar10 + 0x22c) = -(ulonglong)(*puVar16 != 0) & (ulonglong)(puVar16 + 1);
   uVar1 = *puVar15;
   *(ulonglong *)(puVar10 + 0x230) = -(ulonglong)(uVar1 != 0) & (ulonglong)(puVar15 + 1);
-  if (puVar15 + (ulonglong)uVar1 + 1 != (ushort *)(uVar21 + lVar3)) {
-                    /* WARNING: Subroutine does not return */
-    wil::details::in1diag3::_FailFast_Hr
-              (unaff_retaddr,0x5e6,
-               "onecoreuap\\windows\\feime\\win8\\jpn\\suggestion\\lib\\sflmelm\\mtfcontainerconverter.cpp"
-               ,-0x7fffbffb);
-  }
-  return;
+  if (puVar15 + (ulonglong)uVar1 + 1 == (ushort *)(uVar20 + lVar2)) {
+    return;
+  }
+                    /* WARNING: Subroutine does not return */
+  wil::details::in1diag3::_FailFast_Hr
+            (unaff_retaddr,0x5f3,
+             "onecoreuap\\windows\\feime\\win8\\jpn\\suggestion\\lib\\sflmelm\\mtfcontainerconverter.cpp"
+             ,-0x7fffbffb);
 }
 

```


# Modified (No Code Changes)


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

## WilApi_GetFeatureEnabledState

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|WilApi_GetFeatureEnabledState|WilApi_GetFeatureEnabledState|
|fullname|wil::details::WilApi_GetFeatureEnabledState|wil::details::WilApi_GetFeatureEnabledState|
|`refcount`|5|6|
|length|30|30|
|called|_guard_dispatch_icall$thunk$10345483385596137414|_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GIPKOR>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GIPKOR>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCurrentFeatureEnabledState|
|paramcount|3|3|
|address|18006c9b0|18006c9b0|
|sig|FEATURE_ENABLED_STATE __cdecl WilApi_GetFeatureEnabledState(uint param_1, FEATURE_CHANGE_TIME param_2, int * param_3)|FEATURE_ENABLED_STATE __cdecl WilApi_GetFeatureEnabledState(uint param_1, FEATURE_CHANGE_TIME param_2, int * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### WilApi_GetFeatureEnabledState Calling Diff


```diff
--- wil::details::WilApi_GetFeatureEnabledState calling
+++ wil::details::WilApi_GetFeatureEnabledState calling
@@ -0,0 +1 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCurrentFeatureEnabledState
```


## ReportUsageToService

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|0.95|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|ReportUsageToService|ReportUsageToService|
|fullname|wil::details::ReportUsageToService|wil::details::ReportUsageToService|
|`refcount`|5|6|
|length|154|154|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::ReportUsageToServiceDirect<br>wil_details_MapReportingKind|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::ReportUsageToServiceDirect<br>wil_details_MapReportingKind|
|`calling`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::ReportUsage|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::ReportUsage|
|paramcount|8|8|
|address|1800533d8|1800533d8|
|sig|void __cdecl ReportUsageToService(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, FEATURE_LOGGED_TRAITS * param_5, int param_6, wil_ReportingKind param_7, __uint64 param_8)|void __cdecl ReportUsageToService(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, FEATURE_LOGGED_TRAITS * param_5, int param_6, wil_ReportingKind param_7, __uint64 param_8)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ReportUsageToService Calling Diff


```diff
--- wil::details::ReportUsageToService calling
+++ wil::details::ReportUsageToService calling
@@ -0,0 +1 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::ReportUsage
```


## push_back

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|push_back|push_back|
|fullname|wil::details_abi::heap_buffer::push_back|wil::details_abi::heap_buffer::push_back|
|`refcount`|7|8|
|length|97|97|
|called|MSVCRT.DLL::memcpy_s<br>wil::details_abi::heap_buffer::ensure|MSVCRT.DLL::memcpy_s<br>wil::details_abi::heap_buffer::ensure|
|`calling`|wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details_abi::SubscriptionList::SubscribeUnderLock|wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details_abi::SubscriptionList::SubscribeUnderLock|
|paramcount|3|3|
|address|1800676ec|1800676ec|
|sig|bool __thiscall push_back(heap_buffer * this, void * param_1, __uint64 param_2)|bool __thiscall push_back(heap_buffer * this, void * param_1, __uint64 param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### push_back Calling Diff


```diff
--- wil::details_abi::heap_buffer::push_back calling
+++ wil::details_abi::heap_buffer::push_back calling
@@ -2,0 +3 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
```


## _Throw_Hr

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|_Throw_Hr|_Throw_Hr|
|fullname|wil::details::in1diag3::_Throw_Hr|wil::details::in1diag3::_Throw_Hr|
|`refcount`|87|89|
|length|25|25|
|called|wil::details::ReportFailure_Hr<0>|wil::details::ReportFailure_Hr<0>|
|`calling`|<details><summary>Expand for full list:<br>CCandidateCommentEngine::GetMtfCandidateComments<br>CCommentLMParam::ExecuteDispatch<br>CImeCommonAPI_JPN_Desktop_V1::GetEmInputStatus<br>CImeCommonAPI_JPN_Desktop_V1::GetPredeterminedCandidate<br>CImeCommonAPI_JPN_Desktop_V1::SetExternalCandidateFocused<br>CImeCommonAPI_JPN_Desktop_V1::SetExternalCandidateShowing<br>CInputData::GetInputStrForPred<br>CJLmSparam::Create<br>CJLmSparam::CreateForCandidate<br>CJLmSparam::CreateForConversion<br>CJLmSparam::CreateForNBest</summary>CJpnLMParamForMtf::initialize<br>CJpnLMParamForMtf::initialize<br>CJpnLMParamForMtf::initialize<br>CJpnLMParamForMtf::initialize<br>CLMElements::GetPreviousCandidate<br>CLMElements::MergeToPreviousElement<br>CLMParamSerializer::Deserialize<br>CSParamDictNames::Create<br>CSParamDictNames::CreateNewDataIfUpdated<br>CandidateItem::GetInlineCharCommentFlags<br>CandidateItem::GetInlineFilterComment<br>FGetHiraKanChars<br>FragmentedPhrasesDetector::ReportTelemetry<br>IMECPSSWrapper::GetDWORDSettingFromCPSS<br>PropertyBagHelper::SetString<br>PropertyBagHelper::TryGetValue<class_std::basic_string<unsigned_short,struct_std::char_traits<unsigned_short>,class_std::allocator<unsigned_short>_>_><br>Sha256Hash::Finalize<br>Sha256Hash::Sha256Hash<br>ShouldSkip<br>TelemetryLogger::CreateInstance<br>TelemetryLogger::OnFlushDeterminedString<br>TelemetryLogger::SetCurrentState<br>TelemetryLoggerContextBase::GetDetermineTypeString<br>UserHelpers::GetUserContextToken<br>UserHelpers::GetUserTokenHandle<br>UserHelpers::GetUserType<br>UserHelpers::UserCache::CacheForUser<br>UserHelpers::UserCache::Initialize<br>UserHelpers::UserCache::OnUserAdded<br>Windows::Internal::CorePrivacySettingsStore::ReservedForInternalUse::GetBoolSetting<br>Windows::Internal::CorePrivacySettingsStore::ReservedForInternalUse::PutDwordSetting<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::GetDwordValue<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::GetStrValue<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::SetValue<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::SetValue<br>wil::GetActivationFactory<struct_Windows::System::IUserStatics><br>wil::GetActivationFactory<struct_Windows::System::Internal::ISignInStateManager><br>wil::com_ptr_t<struct_Windows::System::Internal::IUserProfile,struct_wil::err_exception_policy>::query<struct_Windows::System::Internal::IUserProfile2><br>wil::com_query<struct_IPhMgrObjectContainer,struct_IUnknown*___ptr64><br>wil::details::GetTokenInfoWrap<struct__TOKEN_USER,struct_wil::err_exception_policy,0><br>wil::details::make_unique_winrt_event_token<struct_wil::err_exception_policy,struct_Windows::System::IUserWatcher,long_(__cdecl_Windows::System::IUserWatcher::*)(struct_Windows::Foundation::ITypedEventHandler<class_Windows::System::UserWatcher*___ptr64,class_Windows::System::UserChangedEventArgs*___ptr64>*___ptr64,struct_EventRegistrationToken*___ptr64)___ptr64,long_(__cdecl_Windows::System::IUserWatcher::*)(struct_EventRegistrationToken)___ptr64,struct_Windows::Foundation::ITypedEventHandler<class_Windows::System::UserWatcher*___ptr64,class_Windows::System::UserChangedEventArgs*___ptr64>*___ptr64><br>wil::wait_for_completion<struct_Windows::Foundation::Collections::IVectorView<class_Windows::System::User*___ptr64>*___ptr64,class_Microsoft::WRL::ComPtr<struct_Windows::Foundation::Collections::IVectorView<class_Windows::System::User*___ptr64>_>_><br>wil::wnf_query<unsigned_long></details>|<details><summary>Expand for full list:<br>CCandidateCommentEngine::GetMtfCandidateComments<br>CCommentLMParam::ExecuteDispatch<br>CImeCommonAPI_JPN_Desktop_V1::GetEmInputStatus<br>CImeCommonAPI_JPN_Desktop_V1::GetPredeterminedCandidate<br>CImeCommonAPI_JPN_Desktop_V1::SetExternalCandidateFocused<br>CImeCommonAPI_JPN_Desktop_V1::SetExternalCandidateShowing<br>CInputData::GetInputStrForPred<br>CJLmSparam::Create<br>CJLmSparam::CreateForCandidate<br>CJLmSparam::CreateForConversion<br>CJLmSparam::CreateForNBest</summary>CJpnLMParamForMtf::initialize<br>CJpnLMParamForMtf::initialize<br>CJpnLMParamForMtf::initialize<br>CJpnLMParamForMtf::initialize<br>CLMElements::GetPreviousCandidate<br>CLMElements::MergeToPreviousElement<br>CLMParamSerializer::Deserialize<br>CSParamDictNames::Create<br>CSParamDictNames::CreateNewDataIfUpdated<br>CandidateItem::GetInlineCharCommentFlags<br>CandidateItem::GetInlineFilterComment<br>FGetHiraKanChars<br>FragmentedPhrasesDetector::ReportTelemetry<br>IMECPSSWrapper::GetDWORDSettingFromCPSS<br>PropertyBagHelper::SetString<br>PropertyBagHelper::TryGetValue<class_std::basic_string<unsigned_short,struct_std::char_traits<unsigned_short>,class_std::allocator<unsigned_short>_>_><br>Sha256Hash::Finalize<br>Sha256Hash::Sha256Hash<br>ShouldSkip<br>TelemetryLogger::CreateInstance<br>TelemetryLogger::OnFlushDeterminedString<br>TelemetryLogger::SetCurrentState<br>TelemetryLoggerContextBase::GetDetermineTypeString<br>UserHelpers::GetUserContextToken<br>UserHelpers::GetUserTokenHandle<br>UserHelpers::GetUserType<br>UserHelpers::UserCache::CacheForUser<br>UserHelpers::UserCache::Initialize<br>UserHelpers::UserCache::OnUserAdded<br>Windows::Internal::CorePrivacySettingsStore::ReservedForInternalUse::GetBoolSetting<br>Windows::Internal::CorePrivacySettingsStore::ReservedForInternalUse::PutDwordSetting<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::GetDwordValue<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::GetStrValue<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::SetValue<br>WindowsInternal::TextInputSettings::SettingsManager::SettingValue::SetValue<br>wil::GetActivationFactory<struct_Windows::System::IUserStatics><br>wil::GetActivationFactory<struct_Windows::System::Internal::ISignInStateManager><br>wil::com_ptr_t<struct_Windows::System::Internal::IUserProfile,struct_wil::err_exception_policy>::query<struct_Windows::System::Internal::IUserProfile2><br>wil::com_query<struct_IPhMgrObjectContainer,struct_IUnknown*___ptr64><br>wil::details::GetTokenInfoWrap<struct__TOKEN_USER,struct_wil::err_exception_policy,0><br>wil::details::make_unique_winrt_event_token<struct_wil::err_exception_policy,struct_Windows::System::IUserWatcher,long_(__cdecl_Windows::System::IUserWatcher::*)(struct_Windows::Foundation::ITypedEventHandler<class_Windows::System::UserWatcher*___ptr64,class_Windows::System::UserChangedEventArgs*___ptr64>*___ptr64,struct_EventRegistrationToken*___ptr64)___ptr64,long_(__cdecl_Windows::System::IUserWatcher::*)(struct_EventRegistrationToken)___ptr64,struct_Windows::Foundation::ITypedEventHandler<class_Windows::System::UserWatcher*___ptr64,class_Windows::System::UserChangedEventArgs*___ptr64>*___ptr64><br>wil::wait_for_completion<struct_Windows::Foundation::Collections::IVectorView<class_Windows::System::User*___ptr64>*___ptr64,class_Microsoft::WRL::ComPtr<struct_Windows::Foundation::Collections::IVectorView<class_Windows::System::User*___ptr64>_>_><br>wil::wnf_query<unsigned_long></details>|
|paramcount|4|4|
|address|180066d60|180066d60|
|sig|noreturn void __cdecl _Throw_Hr(void * param_1, uint param_2, char * param_3, long param_4)|noreturn void __cdecl _Throw_Hr(void * param_1, uint param_2, char * param_3, long param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### _Throw_Hr Calling Diff


```diff

```


## ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|fullname|wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|`refcount`|61|62|
|length|29|29|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::ReleaseSRWLockExclusive|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::ReleaseSRWLockExclusive|
|`calling`|<details><summary>Expand for full list:<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br>CJpnLMRWrap::CallGetLatticeMorphResult<br>CJpnLMRWrap::EnsureLocalLM<br>CJpnLMRWrap::EnsureMtfClient<br>GetCurrentModuleVersion<br>JapaneseImeTraceLoggingTelemetry::ModeSwitchActivity::StartActivity<br>MtfConvLMDSImpl::GetCandidates<br>UserHelpers::UserCache::Initialize<br>UserHelpers::UserCache::OnUserAdded<br>UserHelpers::UserCache::OnUserRemoved<br>UserHelpers::UserCache::Uninitialize</summary>`CJpnLMRHostLiteWithoutMtf::GetInstance'::__l1::dtor$0<br>`CJpnLMRWrap::EnsureMtfClient'::__l1::dtor$2<br>`UserHelpers::UserCache::Initialize'::__l1::dtor$1<br>`UserHelpers::UserCache::OnUserAdded'::__l1::dtor$0<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,0,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,0,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,0,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStop<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::RecordFeatureUsage<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|<details><summary>Expand for full list:<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br>CJpnLMRWrap::CallGetLatticeMorphResult<br>CJpnLMRWrap::EnsureLocalLM<br>CJpnLMRWrap::EnsureMtfClient<br>GetCurrentModuleVersion<br>JapaneseImeTraceLoggingTelemetry::ModeSwitchActivity::StartActivity<br>MtfConvLMDSImpl::GetCandidates<br>UserHelpers::UserCache::Initialize<br>UserHelpers::UserCache::OnUserAdded<br>UserHelpers::UserCache::OnUserRemoved<br>UserHelpers::UserCache::Uninitialize</summary>`CJpnLMRHostLiteWithoutMtf::GetInstance'::__l1::dtor$0<br>`CJpnLMRWrap::EnsureMtfClient'::__l1::dtor$2<br>`UserHelpers::UserCache::Initialize'::__l1::dtor$1<br>`UserHelpers::UserCache::OnUserAdded'::__l1::dtor$0<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,0,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,0,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,0,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Destroy<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::NotifyFailure<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStop<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::RecordFeatureUsage<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|
|paramcount|1|1|
|address|180025af8|180025af8|
|sig|void __thiscall ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>(unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> * this)|void __thiscall ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>(unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> Calling Diff


```diff
--- wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> calling
+++ wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> calling
@@ -35,0 +36 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
```


## API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|GetTickCount|GetTickCount|
|fullname|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount|
|`refcount`|36|41|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>CCmdMakeCandidate::Execute<br>CIFEDictionaryBanri::ConvertUserDictionary<br>CImeEMManager::InsertTyping<br>CImeMutex::CImeMutex<br>CImeMutex::CImeMutex<br>CImeMutex::~CImeMutex<br>CJpnLMParam::WaitResult<br>CJpnLMRWrap::CallGetLatticeMorphResult<br>CJpnLMRWrap::CheckPhraseBreak<br>CJpnLMRWrap::FlushLearningFile<br>CSParamDictNames::CreateNewDataIfUpdated</summary>CSParamDictNames::init<br>IImeConvert::Control<br>IImeConvert::InputSpace<br>IImeConvert::Update<br>RgUpdateSerialNo<br>__security_init_cookie<br>initIMERegistory</details>|<details><summary>Expand for full list:<br>CCmdMakeCandidate::Execute<br>CIFEDictionaryBanri::ConvertUserDictionary<br>CImeEMManager::InsertTyping<br>CImeMutex::CImeMutex<br>CImeMutex::CImeMutex<br>CImeMutex::~CImeMutex<br>CJpnLMParam::WaitResult<br>CJpnLMRWrap::CallGetLatticeMorphResult<br>CJpnLMRWrap::CheckPhraseBreak<br>CJpnLMRWrap::FlushLearningFile<br>CSParamDictNames::CreateNewDataIfUpdated</summary>CSParamDictNames::init<br>IImeConvert::Control<br>IImeConvert::InputSpace<br>IImeConvert::Update<br>RgUpdateSerialNo<br>__security_init_cookie<br>initIMERegistory<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled</details>|
|paramcount|0|0|
|`address`|EXTERNAL:000000f6|EXTERNAL:000000f4|
|sig|DWORD __stdcall GetTickCount(void)|DWORD __stdcall GetTickCount(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount Calling Diff


```diff
--- API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount calling
+++ API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount calling
@@ -18,0 +19,5 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::__private_IsEnabled
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::__private_IsEnabled
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::__private_IsEnabled
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::__private_IsEnabled
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::__private_IsEnabled
```


## EnsureSubscribedToFeatureConfigurationChanges

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|0.78|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|EnsureSubscribedToFeatureConfigurationChanges|EnsureSubscribedToFeatureConfigurationChanges|
|fullname|wil::details::EnsureSubscribedToFeatureConfigurationChanges|wil::details::EnsureSubscribedToFeatureConfigurationChanges|
|`refcount`|7|8|
|length|32|32|
|called|wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl|wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl|
|`calling`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GIPKOR>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::IsFeatureConfigured|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GIPKOR>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_InputSupportForBcp47>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_KSOD>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::IsFeatureConfigured|
|paramcount|0|0|
|address|180063edc|180063edc|
|sig|uint __cdecl EnsureSubscribedToFeatureConfigurationChanges(void)|uint __cdecl EnsureSubscribedToFeatureConfigurationChanges(void)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### EnsureSubscribedToFeatureConfigurationChanges Calling Diff


```diff
--- wil::details::EnsureSubscribedToFeatureConfigurationChanges calling
+++ wil::details::EnsureSubscribedToFeatureConfigurationChanges calling
@@ -0,0 +1 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
```


## API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive

### Match Info



|Key|imjpapi_8521.dll - imjpapi_8875.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|imjpapi_8521.dll|imjpapi_8875.dll|
| :---: | :---: | :---: |
|name|AcquireSRWLockExclusive|AcquireSRWLockExclusive|
|fullname|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive|
|`refcount`|48|49|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br>CJpnLMRHostLiteWithoutMtf::GetInstance<br>CJpnLMRWrap::EnsureLocalLM<br>CJpnLMRWrap::EnsureMtfClient<br>CimapijpnModule::Lock<br>CimapijpnModule::Unlock<br>Comutil::CEnumObject<struct_IEnumUnknown,struct_IUnknown*___ptr64,class_Comutil::CConnection>::~CEnumObject<struct_IEnumUnknown,struct_IUnknown*___ptr64,class_Comutil::CConnection><br>FlushLookUpTableBucket<br>GetCurrentModuleVersion<br>JapaneseImeTraceLoggingTelemetry::GetLatticeMorphResult::StopActivity<br>MtfClientHolder::GetInstance</summary>TlgRegisterAggregateProviderEx<br>TlgUnregisterAggregateProvider<br>UserHelpers::UserCache::Initialize<br>UserHelpers::UserCache::OnUserAdded<br>UserHelpers::UserCache::OnUserRemoved<br>UserHelpers::UserCache::Uninitialize<br>_Init_thread_abort<br>_Init_thread_footer<br>_Init_thread_header<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStart<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStart<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStop<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::RecordFeatureUsage<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|<details><summary>Expand for full list:<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br>CJpnLMRHostLiteWithoutMtf::GetInstance<br>CJpnLMRWrap::EnsureLocalLM<br>CJpnLMRWrap::EnsureMtfClient<br>CimapijpnModule::Lock<br>CimapijpnModule::Unlock<br>Comutil::CEnumObject<struct_IEnumUnknown,struct_IUnknown*___ptr64,class_Comutil::CConnection>::~CEnumObject<struct_IEnumUnknown,struct_IUnknown*___ptr64,class_Comutil::CConnection><br>FlushLookUpTableBucket<br>GetCurrentModuleVersion<br>JapaneseImeTraceLoggingTelemetry::GetLatticeMorphResult::StopActivity<br>MtfClientHolder::GetInstance</summary>TlgRegisterAggregateProviderEx<br>TlgUnregisterAggregateProvider<br>UserHelpers::UserCache::Initialize<br>UserHelpers::UserCache::OnUserAdded<br>UserHelpers::UserCache::OnUserRemoved<br>UserHelpers::UserCache::Uninitialize<br>_Init_thread_abort<br>_Init_thread_footer<br>_Init_thread_header<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStart<br>wil::ActivityBase<class_DesktopLmdsTelemetry,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::Stop<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,0,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStart<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::ActivityBase<class_JapaneseImeTraceLoggingProvider,1,35184372088832,5,0,struct__TlgReflectorTag_Param0IsProviderType>::zInternalStop<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::RecordFeatureUsage<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|
|paramcount|1|1|
|address|EXTERNAL:00000076|EXTERNAL:00000076|
|sig|void __stdcall AcquireSRWLockExclusive(PSRWLOCK SRWLock)|void __stdcall AcquireSRWLockExclusive(PSRWLOCK SRWLock)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive Calling Diff


```diff
--- API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive calling
+++ API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive calling
@@ -34,0 +35 @@
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_801091896>::GetCachedFeatureEnabledState
```




<sub>Generated with `ghidriff` version: 1.0.0 on 2026-08-16T19:41:19</sub>