# mfaudiocnv-06.dll-mfaudiocnv-07.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)
	* [EvaluateCurrentStateFromRegistry](#evaluatecurrentstatefromregistry)
	* [EvaluateFeature](#evaluatefeature)
	* [EvaluateCurrentState](#evaluatecurrentstate)
	* [API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegQueryValueExW](#api-ms-win-core-registry-l1-1-0dllregqueryvalueexw)
	* [MSVCRT.DLL::swprintf_s](#msvcrtdllswprintf_s)
* [Modified](#modified)
	* [CDTSMFTDataHandler::_CreateNewOutputBuffer](#cdtsmftdatahandler_createnewoutputbuffer)
	* [CDTSMFTDataHandler::_AppendPacketToOutputBuffer](#cdtsmftdatahandler_appendpackettooutputbuffer)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [__GSHandlerCheck](#__gshandlercheck)
	* [API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey](#api-ms-win-core-registry-l1-1-0dllregclosekey)
	* [__security_check_cookie](#__security_check_cookie)
	* [API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW](#api-ms-win-core-registry-l1-1-0dllregopenkeyexw)
	* [GetModuleSettings](#getmodulesettings)
	* [Context](#context)
	* [WPP_SF_qd](#wpp_sf_qd)
	* [MFPLAT.DLL::MFGetCallStackTracingWeakReference](#mfplatdllmfgetcallstacktracingweakreference)

# Visual Chart Diff



```mermaid

flowchart LR

CDTSMFTDataHandler_CreateNewOutputBuffer-3-old<--Match 28%-->CDTSMFTDataHandler_CreateNewOutputBuffer-3-new
CDTSMFTDataHandler_AppendPacketToOutputBuffer-3-old<--Match 57%-->CDTSMFTDataHandler_AppendPacketToOutputBuffer-3-new

subgraph mfaudiocnv-07.dll
    CDTSMFTDataHandler_CreateNewOutputBuffer-3-new
CDTSMFTDataHandler_AppendPacketToOutputBuffer-3-new
    subgraph Added
direction LR
EvaluateCurrentStateFromRegistry
    EvaluateFeature
    EvaluateCurrentState
    API-MS-WIN-CORE-REGISTRY-L1-1-0DLL-RegQueryValueExW
    MSVCRTDLL-swprintf_s
end
end

subgraph mfaudiocnv-06.dll
    CDTSMFTDataHandler_CreateNewOutputBuffer-3-old
CDTSMFTDataHandler_AppendPacketToOutputBuffer-3-old
    
end

```


```mermaid
pie showData
    title Function Matches - 99.3197%
"unmatched_funcs_len" : 5
"matched_funcs_len" : 730
```



```mermaid
pie showData
    title Matched Function Similarity - 98.2192%
"matched_funcs_with_code_changes_len" : 2
"matched_funcs_with_non_code_changes_len" : 11
"matched_funcs_no_changes_len" : 717
```

# Metadata

## Ghidra Diff Engine

### Command Line

#### Captured Command Line


```
ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --gdt [] --max-ram-percent 60.0 --max-section-funcs 200 mfaudiocnv-06.dll mfaudiocnv-07.dll
```


#### Verbose Args


<details>

```
--old ['mfaudiocnv-06.dll'] --new [['mfaudiocnv-07.dll']] --engine VersionTrackingDiff --output-path out --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --base-address None --program-options None --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --gdt [] --bsim False --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title None
```


</details>

#### Download Original PEs


```
wget https://msdl.microsoft.com/download/symbols/mfaudiocnv.dll/5FF78E0222000/mfaudiocnv.dll -O mfaudiocnv.dll.x64.10.0.14393.4169
wget https://msdl.microsoft.com/download/symbols/mfaudiocnv.dll/6A51C2DC22000/mfaudiocnv.dll -O mfaudiocnv.dll.x64.10.0.14393.9339
```


## Binary Metadata Diff


```diff
--- mfaudiocnv-06.dll Meta
+++ mfaudiocnv-07.dll Meta
@@ -1,44 +1,44 @@
-Program Name: mfaudiocnv-06.dll
+Program Name: mfaudiocnv-07.dll
 Language ID: x86:LE:64:default (4.7)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 180000000
 Maximum Address: ff0000184f
-# of Bytes: 125016
+# of Bytes: 128616
 # of Memory Blocks: 9
-# of Instructions: 21063
-# of Defined Data: 1961
-# of Functions: 365
-# of Symbols: 2738
-# of Data Types: 643
+# of Instructions: 21764
+# of Defined Data: 1982
+# of Functions: 370
+# of Symbols: 2789
+# of Data Types: 647
 # of Data Type Categories: 32
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.1.2
-Date Created: Fri Aug 28 16:27:13 SGT 2026
+Date Created: Fri Aug 28 16:27:17 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /C:/Users/Jacob/Downloads/pdbs/mfaudiocnv-06.dll
-Executable MD5: 2cda6077df4dbe32f4b19035ff7d6de5
-Executable SHA256: 6694122c1d70ce30bd466219d3be3a50286a064a469461b3dfa7efba503f3b07
-FSRL: file:///C:/Users/Jacob/Downloads/pdbs/mfaudiocnv-06.dll?MD5=2cda6077df4dbe32f4b19035ff7d6de5
+Executable Location: /C:/Users/Jacob/Downloads/pdbs/mfaudiocnv-07.dll
+Executable MD5: 5edf14ff61d6b56512e90127c25490f3
+Executable SHA256: 922eaa518b97264a8ea2d0f65def01f376b108967831d6a5c8b73a091eec4d2f
+FSRL: file:///C:/Users/Jacob/Downloads/pdbs/mfaudiocnv-07.dll?MD5=5edf14ff61d6b56512e90127c25490f3
 PDB Age: 1
 PDB File: mfaudiocnv.pdb
-PDB GUID: 8ce16281-832e-4395-92a7-a5e35588d006
+PDB GUID: ce9c5c78-5d45-4e60-9e55-bd59e7f8546d
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: Media Foundation Audio Converter DLL
-PE Property[FileVersion]: 10.0.14393.4169 (rs1_release.210107-1130)
+PE Property[FileVersion]: 10.0.14393.9339 (rs1_release.260710-1833)
 PE Property[InternalName]: Media Foundation Audio Converter DLL
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: mfaudiocnv.dll
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.14393.4169
+PE Property[ProductVersion]: 10.0.14393.9339
 PE Property[Translation]: 4b00409
 Preferred Root Namespace Category: 
 RTTI Found: false
 Relocatable: true
 SectionAlignment: 4096
 Should Ask To Analyze: false

```


## Program Options


<details>
<summary>Ghidra mfaudiocnv-06.dll Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra mfaudiocnv-06.dll Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra mfaudiocnv-06.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|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.msdApplyOptions|{
	interpretation: FUNCTION_IF_EXISTS,
	applyCallingConvention: true,
	applySignature: true,
	demangleOnlyKnownPatterns: true,
	doDisassembly: true
}|
|Demangler Microsoft.msdOutputOptions|ghidra.app.util.demangler.microsoft.options.MsdOutputOption@9e5b|
|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 mfaudiocnv-07.dll Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra mfaudiocnv-07.dll Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra mfaudiocnv-07.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|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.msdApplyOptions|{
	interpretation: FUNCTION_IF_EXISTS,
	applyCallingConvention: true,
	applySignature: true,
	demangleOnlyKnownPatterns: true,
	doDisassembly: true
}|
|Demangler Microsoft.msdOutputOptions|ghidra.app.util.demangler.microsoft.options.MsdOutputOption@9e5b|
|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|5|
|deleted_funcs_len|0|
|modified_funcs_len|13|
|added_symbols_len|7|
|deleted_symbols_len|1|
|diff_time|15.680360317230225|
|deleted_strings_len|0|
|added_strings_len|3|
|match_types|Counter({'SymbolsHash': 365, 'ExternalsName': 90})|
|items_to_process|26|
|diff_types|Counter({'address': 12, 'refcount': 11, 'calling': 5, 'code': 2, 'length': 2, 'called': 2})|
|unmatched_funcs_len|5|
|total_funcs_len|735|
|matched_funcs_len|730|
|matched_funcs_with_code_changes_len|2|
|matched_funcs_with_non_code_changes_len|11|
|matched_funcs_no_changes_len|717|
|match_func_similarity_percent|98.2192%|
|func_match_overall_percent|99.3197%|
|first_matches|Counter({'SymbolsHash': 365})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 365
"ExternalsName" : 90
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 365
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 5
"deleted_funcs_len" : 0
"modified_funcs_len" : 13
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 7
"deleted_symbols_len" : 1
```

## Strings



```mermaid
pie showData
    title Strings
"deleted_strings_len" : 0
"added_strings_len" : 3
```

### Strings Diff


```diff
--- deleted strings
+++ added strings
@@ -0,0 +1,3 @@
+u_%lu
+u_%lu_variant
+u_System\CurrentControlSet\Policie

```


### String References

#### Old



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |

#### New



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |
|u_%lu|1|EvaluateCurrentStateFromRegistry|
|u_System\CurrentControlSet\Policie|1|EvaluateCurrentStateFromRegistry|
|u_%lu_variant|1|EvaluateCurrentStateFromRegistry|

# Deleted

# Added

## EvaluateCurrentStateFromRegistry

### Function Meta



|Key|mfaudiocnv-07.dll|
| :---: | :---: |
|name|EvaluateCurrentStateFromRegistry|
|fullname|EvaluateCurrentStateFromRegistry|
|refcount|2|
|length|452|
|called|API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey<br>API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW<br>API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegQueryValueExW<br>MSVCRT.DLL::swprintf_s<br>__security_check_cookie<br>memset|
|calling|EvaluateFeature|
|paramcount|5|
|address|180005e50|
|sig|int __cdecl EvaluateCurrentStateFromRegistry(uint param_1, int param_2, reg_FeatureStage param_3, uchar param_4, uchar * param_5)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- EvaluateCurrentStateFromRegistry
+++ EvaluateCurrentStateFromRegistry
@@ -0,0 +1,66 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* int __cdecl EvaluateCurrentStateFromRegistry(unsigned int,int,enum reg_FeatureStage,unsigned
+   char,unsigned char * __ptr64) */
+
+int __cdecl
+EvaluateCurrentStateFromRegistry
+          (uint param_1,int param_2,reg_FeatureStage param_3,uchar param_4,uchar *param_5)
+
+{
+  bool bVar1;
+  bool bVar2;
+  LSTATUS LVar3;
+  uint uVar4;
+  uint uVar5;
+  undefined1 auStackY_a8 [32];
+  DWORD local_78;
+  uint local_74;
+  DWORD local_70 [2];
+  HKEY local_68;
+  wchar_t local_60 [24];
+  ulonglong local_30;
+  
+  local_30 = __security_cookie ^ (ulonglong)auStackY_a8;
+  local_78 = 4;
+  uVar5 = 0x80000000;
+  uVar4 = (uint)(param_3 != 1);
+  *param_5 = param_4;
+  bVar1 = false;
+  bVar2 = false;
+  memset(local_60,0,0x2c);
+  LVar3 = RegOpenKeyExW((HKEY)0xffffffff80000002,
+                        L"System\\CurrentControlSet\\Policies\\Microsoft\\FeatureManagement\\Overrides"
+                        ,0,0x20019,&local_68);
+  if (LVar3 == 0) {
+    if (param_2 != 0) {
+      swprintf_s(local_60,0x16,L"%lu_variant");
+      LVar3 = RegQueryValueExW(local_68,local_60,(LPDWORD)0x0,local_70,(LPBYTE)&local_74,&local_78);
+      bVar1 = bVar2;
+      if ((((LVar3 == 0) && (local_70[0] == 4)) && (local_78 == 4)) && (local_74 < 0x100)) {
+        bVar1 = true;
+        uVar5 = local_74;
+      }
+    }
+    swprintf_s(local_60,0x16,L"%lu");
+    LVar3 = RegQueryValueExW(local_68,local_60,(LPDWORD)0x0,local_70,(LPBYTE)&local_74,&local_78);
+    if ((undefined1 *)((longlong)&local_68[-1].unused + 3U) < (undefined1 *)0xfffffffffffffffe) {
+      RegCloseKey(local_68);
+    }
+    if (((LVar3 == 0) && (local_70[0] == 4)) && (local_78 == 4)) {
+      if ((local_74 != 0) != 0xffffffff) {
+        uVar4 = (uint)((local_74 != 0) != 0);
+      }
+      goto LAB_180005fde;
+    }
+  }
+  if ((param_2 != 0) && (!bVar1)) {
+    return (uint)(param_3 != 1);
+  }
+LAB_180005fde:
+  if (uVar5 != 0x80000000) {
+    *param_5 = (uchar)uVar5;
+  }
+  return uVar4;
+}
+

```


## EvaluateFeature

### Function Meta



|Key|mfaudiocnv-07.dll|
| :---: | :---: |
|name|EvaluateFeature|
|fullname|EvaluateFeature|
|refcount|2|
|length|112|
|called|EvaluateCurrentStateFromRegistry|
|calling|EvaluateCurrentState|
|paramcount|1|
|address|18000601c|
|sig|void __cdecl EvaluateFeature(reg_FeatureDescriptor * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- EvaluateFeature
+++ EvaluateFeature
@@ -0,0 +1,33 @@
+
+/* void __cdecl EvaluateFeature(struct reg_FeatureDescriptor const * __ptr64) */
+
+void __cdecl EvaluateFeature(reg_FeatureDescriptor *param_1)
+
+{
+  int *piVar1;
+  uint *puVar2;
+  int iVar3;
+  reg_FeatureDescriptor local_res8 [8];
+  
+  piVar1 = *(int **)param_1;
+  puVar2 = *(uint **)(param_1 + 0x18);
+  local_res8[0] = param_1[0x20];
+  if ((*piVar1 == 0) && (*puVar2 == 0x80000000)) {
+    iVar3 = EvaluateCurrentStateFromRegistry
+                      (*(uint *)(param_1 + 8),*(int *)(param_1 + 0x10),
+                       *(reg_FeatureStage *)(param_1 + 0xc),(uchar)local_res8[0],(uchar *)local_res8
+                      );
+    LOCK();
+    if (*piVar1 == 0) {
+      *piVar1 = (iVar3 != 0) + 1;
+    }
+    UNLOCK();
+    LOCK();
+    if (*puVar2 == 0x80000000) {
+      *puVar2 = (uint)(byte)local_res8[0];
+    }
+    UNLOCK();
+  }
+  return;
+}
+

```


## EvaluateCurrentState

### Function Meta



|Key|mfaudiocnv-07.dll|
| :---: | :---: |
|name|EvaluateCurrentState|
|fullname|EvaluateCurrentState|
|refcount|5|
|length|33|
|called|EvaluateFeature|
|calling|CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer|
|paramcount|1|
|address|180006094|
|sig|int __cdecl EvaluateCurrentState(reg_FeatureDescriptor * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- EvaluateCurrentState
+++ EvaluateCurrentState
@@ -0,0 +1,10 @@
+
+/* int __cdecl EvaluateCurrentState(struct reg_FeatureDescriptor const * __ptr64) */
+
+int __cdecl EvaluateCurrentState(reg_FeatureDescriptor *param_1)
+
+{
+  EvaluateFeature(param_1);
+  return (int)(**(int **)param_1 != 1);
+}
+

```


## API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegQueryValueExW

### Function Meta



|Key|mfaudiocnv-07.dll|
| :---: | :---: |
|name|RegQueryValueExW|
|fullname|API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegQueryValueExW|
|refcount|3|
|length|0|
|called||
|calling|EvaluateCurrentStateFromRegistry|
|paramcount|6|
|address|EXTERNAL:0000002d|
|sig|LSTATUS __stdcall RegQueryValueExW(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|True|


*No code available for API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegQueryValueExW*
## MSVCRT.DLL::swprintf_s

### Function Meta



|Key|mfaudiocnv-07.dll|
| :---: | :---: |
|name|swprintf_s|
|fullname|MSVCRT.DLL::swprintf_s|
|refcount|3|
|length|0|
|called||
|calling|EvaluateCurrentStateFromRegistry|
|paramcount|3|
|address|EXTERNAL:00000010|
|sig|int __cdecl swprintf_s(wchar_t * _Dst, size_t _SizeInWords, wchar_t * _Format, ...)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|True|


*No code available for MSVCRT.DLL::swprintf_s*
# Modified


*Modified functions contain code changes*
## CDTSMFTDataHandler::_CreateNewOutputBuffer

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.25|
|i_ratio|0.09|
|m_ratio|0.71|
|b_ratio|0.29|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|_CreateNewOutputBuffer|_CreateNewOutputBuffer|
|fullname|CDTSMFTDataHandler::_CreateNewOutputBuffer|CDTSMFTDataHandler::_CreateNewOutputBuffer|
|refcount|2|2|
|`length`|1796|3374|
|`called`|<details><summary>Expand for full list:<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CallStackContext::ClearState<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context<br>CallStackTracing::GetModuleSettings<br>CallStackTracing::TraceFailure<br>MFPLAT.DLL::MFCreateMemoryBuffer<br>MFPLAT.DLL::MFGetCallStackTracingWeakReference<br>WPP_SF_qd<br>_guard_dispatch_icall<br>memset</summary></details>|<details><summary>Expand for full list:<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CallStackContext::ClearState<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context<br>CallStackTracing::GetModuleSettings<br>CallStackTracing::TraceFailure<br>EvaluateCurrentState<br>MFPLAT.DLL::MFCreateMemoryBuffer<br>MFPLAT.DLL::MFGetCallStackTracingWeakReference<br>WPP_SF_qd<br>_guard_dispatch_icall</summary>memset</details>|
|calling|CDTSMFTDataHandler::_ProcessInputSample|CDTSMFTDataHandler::_ProcessInputSample|
|paramcount|3|3|
|`address`|180009100|180009370|
|sig|long __thiscall _CreateNewOutputBuffer(CDTSMFTDataHandler * this, IMFSample * param_1, ulong param_2)|long __thiscall _CreateNewOutputBuffer(CDTSMFTDataHandler * this, IMFSample * param_1, ulong param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDTSMFTDataHandler::_CreateNewOutputBuffer Called Diff


```diff
--- CDTSMFTDataHandler::_CreateNewOutputBuffer called
+++ CDTSMFTDataHandler::_CreateNewOutputBuffer called
@@ -6,0 +7 @@
+EvaluateCurrentState
```


### CDTSMFTDataHandler::_CreateNewOutputBuffer Diff


```diff
--- CDTSMFTDataHandler::_CreateNewOutputBuffer
+++ CDTSMFTDataHandler::_CreateNewOutputBuffer
@@ -1,295 +1,571 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Exceeded maximum restarts with more pending */
 /* protected: long __cdecl CDTSMFTDataHandler::_CreateNewOutputBuffer(struct IMFSample *
    __ptr64,unsigned long) __ptr64 */
 
 long __thiscall
 CDTSMFTDataHandler::_CreateNewOutputBuffer
           (CDTSMFTDataHandler *this,IMFSample *param_1,ulong param_2)
 
 {
-  CDTSMFTDataHandler *ppBuffer;
   IMFMediaBuffer *pIVar1;
   HRESULT HVar2;
-  CallStackContext *pCVar3;
-  int iVar4;
-  undefined **ppuVar5;
-  undefined2 uVar6;
-  uchar *puVar7;
-  uint uVar8;
-  CallStackScopeTrace local_res8 [8];
-  IMFSample *local_res10;
+  uint uVar3;
+  uint uVar4;
+  CallStackContext *pCVar5;
+  int iVar6;
+  undefined **ppuVar7;
+  undefined2 uVar8;
+  uchar *puVar9;
+  CDTSMFTDataHandler *ppBuffer;
+  CDTSMFTDataHandler *local_res8;
   BYTE *local_res20;
   
   local_res20 = (BYTE *)0x0;
-  local_res10 = param_1;
   CallStackScopeTrace::CallStackScopeTrace
-            (local_res8,"CDTSMFTDataHandler::_CreateNewOutputBuffer",0x187);
+            ((CallStackScopeTrace *)&local_res8,"CDTSMFTDataHandler::_CreateNewOutputBuffer",0x188);
   ppBuffer = this + 0x20;
   pIVar1 = *(IMFMediaBuffer **)ppBuffer;
+  local_res8 = ppBuffer;
   if (pIVar1 != (IMFMediaBuffer *)0x0) {
     *(IMFMediaBuffer **)ppBuffer = (IMFMediaBuffer *)0x0;
     (*pIVar1->lpVtbl->Release)();
   }
   HVar2 = MFCreateMemoryBuffer(*(DWORD *)(this + 0x30),(IMFMediaBuffer **)ppBuffer);
   if (HVar2 < 0) {
     if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
       CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
       if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-        ppuVar5 = &PTR__vftable__18001c1d0;
+        ppuVar7 = &PTR__vftable__18001c1d0;
       }
       else {
-        iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+        iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
                           (CallStackTracing::s_wpInstance,0x7e8);
-        ppuVar5 = &PTR__vftable__18001c1d0;
-        if (iVar4 != 0) {
-          ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-        }
-      }
-      CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+        ppuVar7 = &PTR__vftable__18001c1d0;
+        if (iVar6 != 0) {
+          ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+        }
+      }
+      CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
       CallStackTracing::GetModuleSettings();
     }
     if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-       (pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-       *(int *)(pCVar3 + 0x7cc) != HVar2)) {
-      *(int *)(pCVar3 + 0x7e4) = *(int *)(pCVar3 + 0x7e4) + 1;
-      uVar8 = DAT_0;
-      *(HRESULT *)(pCVar3 + 0x7cc) = HVar2;
-      if (*(uint *)(pCVar3 + 0x7e4) <= uVar8) {
+       (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+       *(int *)(pCVar5 + 0x7cc) != HVar2)) {
+      *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+      uVar3 = DAT_0;
+      *(HRESULT *)(pCVar5 + 0x7cc) = HVar2;
+      if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
         (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                  (CallStackTracing::s_wpInstance,pCVar3,
-                   "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x187);
+                  (CallStackTracing::s_wpInstance,pCVar5,
+                   "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x188);
       }
     }
     if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-    uVar6 = 0x39;
+    uVar8 = 0x39;
   }
   else {
     HVar2 = (*(*(IMFMediaBuffer **)ppBuffer)->lpVtbl->Lock)
                       (*(IMFMediaBuffer **)ppBuffer,&local_res20,(DWORD *)0x0,(DWORD *)0x0);
     if (HVar2 < 0) {
       if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
         CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
         if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-          ppuVar5 = &PTR__vftable__18001c1d0;
+          ppuVar7 = &PTR__vftable__18001c1d0;
         }
         else {
-          iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+          iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
                             (CallStackTracing::s_wpInstance,0x7e8);
-          ppuVar5 = &PTR__vftable__18001c1d0;
-          if (iVar4 != 0) {
-            ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-          }
-        }
-        CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+          ppuVar7 = &PTR__vftable__18001c1d0;
+          if (iVar6 != 0) {
+            ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+          }
+        }
+        CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
         CallStackTracing::GetModuleSettings();
       }
       if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-         (pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-         *(int *)(pCVar3 + 0x7cc) != HVar2)) {
-        *(int *)(pCVar3 + 0x7e4) = *(int *)(pCVar3 + 0x7e4) + 1;
-        uVar8 = DAT_0;
-        *(HRESULT *)(pCVar3 + 0x7cc) = HVar2;
-        if (*(uint *)(pCVar3 + 0x7e4) <= uVar8) {
+         (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+         *(int *)(pCVar5 + 0x7cc) != HVar2)) {
+        *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+        uVar3 = DAT_0;
+        *(HRESULT *)(pCVar5 + 0x7cc) = HVar2;
+        if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
           (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                    (CallStackTracing::s_wpInstance,pCVar3,
-                     "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x188);
+                    (CallStackTracing::s_wpInstance,pCVar5,
+                     "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x189);
         }
       }
       if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-      uVar6 = 0x3a;
+      uVar8 = 0x3a;
     }
     else {
       local_res20[0] = 'r';
       local_res20[1] = 0xf8;
       local_res20[2] = '\x1f';
       local_res20[3] = 'N';
       *(undefined2 *)(local_res20 + 4) = *(undefined2 *)(this + 0x38);
-      if (this[0x40] == (CDTSMFTDataHandler)0x0) {
-        uVar8 = param_2 + 0x13 & 0xfffffff0;
-        if (uVar8 + 0x10 <= *(uint *)(this + 0x30)) {
-          *(short *)(local_res20 + 6) = (short)uVar8 + 8;
+      if (this[0x40] != (CDTSMFTDataHandler)0x0) {
+        *(short *)(local_res20 + 6) = (short)param_2;
+        iVar6 = EvaluateCurrentState
+                          ((reg_FeatureDescriptor *)
+                           &g_Feature_2888010040_62805621_FeatureDescriptorDetails);
+        uVar3 = param_2 + 8;
+        if (iVar6 == 0) {
+          uVar4 = *(uint *)(this + 0x30);
+          if (uVar3 <= uVar4) {
+LAB_2:
+            puVar9 = local_res20 + 8;
+            uVar3 = (uVar4 - param_2) - 8;
+            goto LAB_3;
+          }
+          HVar2 = -0x7fff0001;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != -0x7fff0001)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar5 + 0x7cc) = 0x8000ffff;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1a3);
+            }
+          }
+          ppBuffer = local_res8;
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x3d;
+        }
+        else {
+          if (uVar3 < param_2) {
+            HVar2 = -0x7ff8fdea;
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              CallStackTracing::s_wpInstance =
+                   (CallStackTracing *)MFGetCallStackTracingWeakReference();
+              if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+                ppuVar7 = &PTR__vftable__18001c1d0;
+              }
+              else {
+                iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                  (CallStackTracing::s_wpInstance,0x7e8);
+                ppuVar7 = &PTR__vftable__18001c1d0;
+                if (iVar6 != 0) {
+                  ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+                }
+              }
+              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+              CallStackTracing::GetModuleSettings();
+            }
+            if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+               (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+               *(int *)(pCVar5 + 0x7cc) != -0x7ff8fdea)) {
+              *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+              uVar3 = DAT_0;
+              *(undefined4 *)(pCVar5 + 0x7cc) = 0x80070216;
+              if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+                (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                          (CallStackTracing::s_wpInstance,pCVar5,
+                           "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x198);
+              }
+            }
+            if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+            uVar8 = 0x3b;
+            HVar2 = -0x7ff8fdea;
+            goto LAB_4;
+          }
+          uVar4 = *(uint *)(this + 0x30);
+          if (uVar3 <= uVar4) goto LAB_2;
+          HVar2 = -0x7fff0001;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != -0x7fff0001)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar5 + 0x7cc) = 0x8000ffff;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x19b);
+            }
+          }
+          ppBuffer = local_res8;
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x3c;
+        }
+        HVar2 = -0x7fff0001;
+LAB_5:
+        WPP_SF_qd(*(undefined8 *)(WPP_GLOBAL_Control + 0x10),uVar8,
+                  &WPP_1dcd1687a1533b217a36a5f05627d0dc_Traceguids,this);
+        ppBuffer = local_res8;
+        goto LAB_1;
+      }
+      iVar6 = EvaluateCurrentState
+                        ((reg_FeatureDescriptor *)
+                         &g_Feature_2888010040_62805621_FeatureDescriptorDetails);
+      if (iVar6 == 0) {
+        uVar4 = param_2 + 0x13 & 0xfffffff0;
+        uVar3 = uVar4 + 8;
+        if (*(uint *)(this + 0x30) < uVar4 + 0x10) {
+          HVar2 = -0x7fff0001;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != -0x7fff0001)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar5 + 0x7cc) = 0x8000ffff;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1db);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x43;
+          HVar2 = -0x7fff0001;
+        }
+        else {
+LAB_6:
+          *(short *)(local_res20 + 6) = (short)uVar3;
           local_res20[8] = '\x01';
           local_res20[9] = '\0';
           local_res20[10] = '\0';
           local_res20[0xb] = '\0';
           local_res20[0xc] = '\0';
           local_res20[0xd] = '\0';
           local_res20[0xe] = '\0';
           local_res20[0xf] = '\0';
           local_res20[0x10] = 0xfe;
           local_res20[0x11] = 0xfe;
           *(short *)(local_res20 + 0x12) = (short)param_2;
-          puVar7 = local_res20 + 0x14;
-          uVar8 = (((int)local_res20 - (int)puVar7) - param_2) + *(int *)(this + 0x30);
-          goto LAB_2;
-        }
-        HVar2 = -0x7fff0001;
-        if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-          CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
-          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-            ppuVar5 = &PTR__vftable__18001c1d0;
-          }
-          else {
-            iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
-                              (CallStackTracing::s_wpInstance,0x7e8);
-            ppuVar5 = &PTR__vftable__18001c1d0;
-            if (iVar4 != 0) {
-              ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-            }
-          }
-          CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
-          CallStackTracing::GetModuleSettings();
-        }
-        if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-           (pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-           *(int *)(pCVar3 + 0x7cc) != -0x7fff0001)) {
-          *(int *)(pCVar3 + 0x7e4) = *(int *)(pCVar3 + 0x7e4) + 1;
-          uVar8 = DAT_0;
-          *(undefined4 *)(pCVar3 + 0x7cc) = 0x8000ffff;
-          if (*(uint *)(pCVar3 + 0x7e4) <= uVar8) {
-            (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                      (CallStackTracing::s_wpInstance,pCVar3,
-                       "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1b0);
-          }
-        }
-        if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-        uVar6 = 0x3c;
-      }
-      else {
-        *(short *)(local_res20 + 6) = (short)param_2;
-        if (param_2 + 8 <= *(uint *)(this + 0x30)) {
-          puVar7 = local_res20 + 8;
-          uVar8 = (*(uint *)(this + 0x30) - param_2) - 8;
-LAB_2:
-          HVar2 = _CopySampleToBuffer(this,local_res10,puVar7,param_2);
+          puVar9 = local_res20 + 0x14;
+          uVar3 = (((int)local_res20 - (int)puVar9) - param_2) + *(int *)(this + 0x30);
+LAB_3:
+          HVar2 = _CopySampleToBuffer(this,param_1,puVar9,param_2);
           if (HVar2 < 0) {
             if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
               CallStackTracing::s_wpInstance =
                    (CallStackTracing *)MFGetCallStackTracingWeakReference();
               if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-                ppuVar5 = &PTR__vftable__18001c1d0;
+                ppuVar7 = &PTR__vftable__18001c1d0;
               }
               else {
-                iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
                                   (CallStackTracing::s_wpInstance,0x7e8);
-                ppuVar5 = &PTR__vftable__18001c1d0;
-                if (iVar4 != 0) {
-                  ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+                ppuVar7 = &PTR__vftable__18001c1d0;
+                if (iVar6 != 0) {
+                  ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
                 }
               }
-              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
               CallStackTracing::GetModuleSettings();
             }
             if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-               (pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-               *(int *)(pCVar3 + 0x7cc) != HVar2)) {
-              *(int *)(pCVar3 + 0x7e4) = *(int *)(pCVar3 + 0x7e4) + 1;
-              uVar8 = DAT_0;
-              *(HRESULT *)(pCVar3 + 0x7cc) = HVar2;
-              if (*(uint *)(pCVar3 + 0x7e4) <= uVar8) {
+               (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+               *(int *)(pCVar5 + 0x7cc) != HVar2)) {
+              *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+              uVar3 = DAT_0;
+              *(HRESULT *)(pCVar5 + 0x7cc) = HVar2;
+              if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
                 (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                          (CallStackTracing::s_wpInstance,pCVar3,
-                           "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1d0);
-              }
-            }
+                          (CallStackTracing::s_wpInstance,pCVar5,
+                           "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1fc);
+              }
+            }
+            ppBuffer = local_res8;
             if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-            uVar6 = 0x3d;
-          }
-          else {
-            if (uVar8 != 0) {
-              memset(puVar7 + param_2,0,(ulonglong)uVar8);
-            }
-            HVar2 = (*(*(IMFMediaBuffer **)ppBuffer)->lpVtbl->SetCurrentLength)
-                              (*(IMFMediaBuffer **)ppBuffer,*(DWORD *)(this + 0x30));
-            if (-1 < HVar2) {
-              *(ulong *)(this + 0x3c) = param_2;
-              goto LAB_1;
-            }
-            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-              CallStackTracing::s_wpInstance =
-                   (CallStackTracing *)MFGetCallStackTracingWeakReference();
-              if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-                ppuVar5 = &PTR__vftable__18001c1d0;
-              }
-              else {
-                iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
-                                  (CallStackTracing::s_wpInstance,0x7e8);
-                ppuVar5 = &PTR__vftable__18001c1d0;
-                if (iVar4 != 0) {
-                  ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-                }
-              }
-              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
-              CallStackTracing::GetModuleSettings();
-            }
-            if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-               (pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-               *(int *)(pCVar3 + 0x7cc) != HVar2)) {
-              *(int *)(pCVar3 + 0x7e4) = *(int *)(pCVar3 + 0x7e4) + 1;
-              uVar8 = DAT_0;
-              *(HRESULT *)(pCVar3 + 0x7cc) = HVar2;
-              if (*(uint *)(pCVar3 + 0x7e4) <= uVar8) {
-                (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                          (CallStackTracing::s_wpInstance,pCVar3,
-                           "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1d7);
-              }
-            }
-            if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-            uVar6 = 0x3e;
-          }
-          goto LAB_3;
-        }
-        HVar2 = -0x7fff0001;
+            uVar8 = 0x44;
+            goto LAB_5;
+          }
+          if (uVar3 != 0) {
+            memset(puVar9 + param_2,0,(ulonglong)uVar3);
+          }
+          ppBuffer = this + 0x20;
+          HVar2 = (*(*(IMFMediaBuffer **)ppBuffer)->lpVtbl->SetCurrentLength)
+                            (*(IMFMediaBuffer **)ppBuffer,*(DWORD *)(this + 0x30));
+          if (-1 < HVar2) {
+            *(ulong *)(this + 0x3c) = param_2;
+            goto LAB_1;
+          }
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != HVar2)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(HRESULT *)(pCVar5 + 0x7cc) = HVar2;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x203);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x45;
+        }
+      }
+      else if (param_2 + 4 < param_2) {
+        HVar2 = -0x7ff8fdea;
         if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
           CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
           if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-            ppuVar5 = &PTR__vftable__18001c1d0;
+            ppuVar7 = &PTR__vftable__18001c1d0;
           }
           else {
-            iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+            iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
                               (CallStackTracing::s_wpInstance,0x7e8);
-            ppuVar5 = &PTR__vftable__18001c1d0;
-            if (iVar4 != 0) {
-              ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-            }
-          }
-          CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+            ppuVar7 = &PTR__vftable__18001c1d0;
+            if (iVar6 != 0) {
+              ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+            }
+          }
+          CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
           CallStackTracing::GetModuleSettings();
         }
         if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-           (pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-           *(int *)(pCVar3 + 0x7cc) != -0x7fff0001)) {
-          *(int *)(pCVar3 + 0x7e4) = *(int *)(pCVar3 + 0x7e4) + 1;
-          uVar8 = DAT_0;
-          *(undefined4 *)(pCVar3 + 0x7cc) = 0x8000ffff;
-          if (*(uint *)(pCVar3 + 0x7e4) <= uVar8) {
+           (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+           *(int *)(pCVar5 + 0x7cc) != -0x7ff8fdea)) {
+          *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+          uVar3 = DAT_0;
+          *(undefined4 *)(pCVar5 + 0x7cc) = 0x80070216;
+          if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
             (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                      (CallStackTracing::s_wpInstance,pCVar3,
-                       "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x196);
+                      (CallStackTracing::s_wpInstance,pCVar5,
+                       "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1bd);
           }
         }
         if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-        uVar6 = 0x3b;
-      }
-      HVar2 = -0x7fff0001;
+        uVar8 = 0x3e;
+        HVar2 = -0x7ff8fdea;
+      }
+      else if (param_2 + 0x13 < param_2 + 4) {
+        HVar2 = -0x7ff8fdea;
+        if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+          CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            ppuVar7 = &PTR__vftable__18001c1d0;
+          }
+          else {
+            iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                              (CallStackTracing::s_wpInstance,0x7e8);
+            ppuVar7 = &PTR__vftable__18001c1d0;
+            if (iVar6 != 0) {
+              ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+            }
+          }
+          CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+          CallStackTracing::GetModuleSettings();
+        }
+        if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+           (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+           *(int *)(pCVar5 + 0x7cc) != -0x7ff8fdea)) {
+          *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+          uVar3 = DAT_0;
+          *(undefined4 *)(pCVar5 + 0x7cc) = 0x80070216;
+          if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+            (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                      (CallStackTracing::s_wpInstance,pCVar5,
+                       "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1c0);
+          }
+        }
+        if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+        uVar8 = 0x3f;
+        HVar2 = -0x7ff8fdea;
+      }
+      else {
+        uVar4 = param_2 + 0x13 & 0xfffffff0;
+        uVar3 = uVar4 + 8;
+        if (uVar3 < uVar4) {
+          HVar2 = -0x7ff8fdea;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != -0x7ff8fdea)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar5 + 0x7cc) = 0x80070216;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1c4);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x40;
+          HVar2 = -0x7ff8fdea;
+        }
+        else if (uVar4 + 0x10 < uVar3) {
+          HVar2 = -0x7ff8fdea;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != -0x7ff8fdea)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar5 + 0x7cc) = 0x80070216;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1c7);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x41;
+          HVar2 = -0x7ff8fdea;
+        }
+        else {
+          if (uVar4 + 0x10 <= *(uint *)(this + 0x30)) goto LAB_6;
+          HVar2 = -0x7fff0001;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar7 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar6 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar7 = &PTR__vftable__18001c1d0;
+              if (iVar6 != 0) {
+                ppuVar7 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar7;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar5 + 0x7cc) != -0x7fff0001)) {
+            *(int *)(pCVar5 + 0x7e4) = *(int *)(pCVar5 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar5 + 0x7cc) = 0x8000ffff;
+            if (*(uint *)(pCVar5 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar5,
+                         "CDTSMFTDataHandler::_CreateNewOutputBuffer",0x1ca);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar8 = 0x42;
+          HVar2 = -0x7fff0001;
+        }
+      }
     }
   }
-LAB_3:
-  WPP_SF_qd(*(undefined8 *)(WPP_GLOBAL_Control + 0x10),uVar6,
-            &WPP_836fc4dc92c837f60508945e85bd9581_Traceguids,this);
+LAB_4:
+  WPP_SF_qd(*(undefined8 *)(WPP_GLOBAL_Control + 0x10),uVar8,
+            &WPP_1dcd1687a1533b217a36a5f05627d0dc_Traceguids,this);
+  ppBuffer = this + 0x20;
 LAB_1:
   if (local_res20 != (BYTE *)0x0) {
     (*(*(IMFMediaBuffer **)ppBuffer)->lpVtbl->Unlock)();
   }
   if (CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) {
-    pCVar3 = CallStackTracing::Context(CallStackTracing::s_wpInstance);
-    if ((*(int *)(pCVar3 + 0x7c4) != 0) &&
-       (iVar4 = *(int *)(pCVar3 + 0x7c4) + -1, *(int *)(pCVar3 + 0x7c4) = iVar4, iVar4 == 0)) {
-      CallStackContext::ClearState(pCVar3);
+    pCVar5 = CallStackTracing::Context(CallStackTracing::s_wpInstance);
+    if ((*(int *)(pCVar5 + 0x7c4) != 0) &&
+       (iVar6 = *(int *)(pCVar5 + 0x7c4) + -1, *(int *)(pCVar5 + 0x7c4) = iVar6, iVar6 == 0)) {
+      CallStackContext::ClearState(pCVar5);
     }
   }
   return HVar2;
 }
 

```


## CDTSMFTDataHandler::_AppendPacketToOutputBuffer

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.35|
|i_ratio|0.19|
|m_ratio|0.73|
|b_ratio|0.58|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|_AppendPacketToOutputBuffer|_AppendPacketToOutputBuffer|
|fullname|CDTSMFTDataHandler::_AppendPacketToOutputBuffer|CDTSMFTDataHandler::_AppendPacketToOutputBuffer|
|refcount|2|2|
|`length`|1170|2078|
|`called`|CDTSMFTDataHandler::_CopySampleToBuffer<br>CallStackContext::ClearState<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context<br>CallStackTracing::GetModuleSettings<br>CallStackTracing::TraceFailure<br>MFPLAT.DLL::MFGetCallStackTracingWeakReference<br>WPP_SF_qd<br>_guard_dispatch_icall|CDTSMFTDataHandler::_CopySampleToBuffer<br>CallStackContext::ClearState<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context<br>CallStackTracing::GetModuleSettings<br>CallStackTracing::TraceFailure<br>EvaluateCurrentState<br>MFPLAT.DLL::MFGetCallStackTracingWeakReference<br>WPP_SF_qd<br>_guard_dispatch_icall|
|calling|CDTSMFTDataHandler::_ProcessInputSample|CDTSMFTDataHandler::_ProcessInputSample|
|paramcount|3|3|
|`address`|18000980c|18000a0a4|
|sig|long __thiscall _AppendPacketToOutputBuffer(CDTSMFTDataHandler * this, IMFSample * param_1, ulong param_2)|long __thiscall _AppendPacketToOutputBuffer(CDTSMFTDataHandler * this, IMFSample * param_1, ulong param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### CDTSMFTDataHandler::_AppendPacketToOutputBuffer Called Diff


```diff
--- CDTSMFTDataHandler::_AppendPacketToOutputBuffer called
+++ CDTSMFTDataHandler::_AppendPacketToOutputBuffer called
@@ -6,0 +7 @@
+EvaluateCurrentState
```


### CDTSMFTDataHandler::_AppendPacketToOutputBuffer Diff


```diff
--- CDTSMFTDataHandler::_AppendPacketToOutputBuffer
+++ CDTSMFTDataHandler::_AppendPacketToOutputBuffer
@@ -1,192 +1,352 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* protected: long __cdecl CDTSMFTDataHandler::_AppendPacketToOutputBuffer(struct IMFSample *
    __ptr64,unsigned long) __ptr64 */
 
 long __thiscall
 CDTSMFTDataHandler::_AppendPacketToOutputBuffer
           (CDTSMFTDataHandler *this,IMFSample *param_1,ulong param_2)
 
 {
   int iVar1;
   CallStackContext *pCVar2;
   uint uVar3;
   int iVar4;
   undefined **ppuVar5;
   undefined2 uVar6;
   uchar *puVar7;
   uint local_res8 [2];
   longlong local_res20;
   
   local_res20 = 0;
   CallStackScopeTrace::CallStackScopeTrace
             ((CallStackScopeTrace *)local_res8,"CDTSMFTDataHandler::_AppendPacketToOutputBuffer",
-             0x1ea);
+             0x216);
   iVar1 = (**(code **)(**(longlong **)(this + 0x20) + 0x18))
                     (*(longlong **)(this + 0x20),&local_res20,0,local_res8);
   if (iVar1 < 0) {
     if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
       CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
       if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
         ppuVar5 = &PTR__vftable__18001c1d0;
       }
       else {
         iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
                           (CallStackTracing::s_wpInstance,0x7e8);
         ppuVar5 = &PTR__vftable__18001c1d0;
         if (iVar4 != 0) {
           ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
         }
       }
       CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
       CallStackTracing::GetModuleSettings();
     }
     if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
        (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
        *(int *)(pCVar2 + 0x7cc) != iVar1)) {
       *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
       uVar3 = DAT_0;
       *(int *)(pCVar2 + 0x7cc) = iVar1;
       if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
         (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
                   (CallStackTracing::s_wpInstance,pCVar2,
-                   "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x1ea);
+                   "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x216);
       }
     }
     if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-    uVar6 = 0x3f;
+    uVar6 = 0x46;
   }
   else {
-    if (this[0x40] == (CDTSMFTDataHandler)0x0) {
-      uVar3 = param_2 + 0x13 + *(int *)(this + 0x3c) & 0xfffffff0;
-      if (uVar3 + 0x10 <= local_res8[0]) {
-        *(short *)(local_res20 + 6) = (short)uVar3 + 8;
-        *(short *)(local_res20 + 0x12) = *(short *)(this + 0x3c) + (short)param_2;
-        puVar7 = (uchar *)(local_res20 + 0x14 + (ulonglong)*(uint *)(this + 0x3c));
-        goto LAB_2;
-      }
+    iVar1 = EvaluateCurrentState
+                      ((reg_FeatureDescriptor *)
+                       &g_Feature_3712716091_62852265_FeatureDescriptorDetails);
+    if ((iVar1 == 0) ||
+       ((*(uint *)(this + 0x3c) <= local_res8[0] &&
+        (param_2 <= local_res8[0] - *(int *)(this + 0x3c))))) {
+      if (this[0x40] == (CDTSMFTDataHandler)0x0) {
+        uVar3 = param_2 + 0x13 + *(int *)(this + 0x3c) & 0xfffffff0;
+        if (local_res8[0] < uVar3 + 0x10) {
+          iVar1 = -0x7fff0001;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar5 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar5 = &PTR__vftable__18001c1d0;
+              if (iVar4 != 0) {
+                ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar2 + 0x7cc) != -0x7fff0001)) {
+            *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar2 + 0x7cc) = 0x8000ffff;
+            if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar2,
+                         "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x250);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar6 = 0x4c;
+          iVar1 = -0x7fff0001;
+        }
+        else {
+          *(short *)(local_res20 + 6) = (short)uVar3 + 8;
+          *(short *)(local_res20 + 0x12) = *(short *)(this + 0x3c) + (short)param_2;
+          puVar7 = (uchar *)(local_res20 + 0x14 + (ulonglong)*(uint *)(this + 0x3c));
+LAB_2:
+          iVar1 = _CopySampleToBuffer(this,param_1,puVar7,param_2);
+          if (-1 < iVar1) {
+            *(ulong *)(this + 0x3c) = *(int *)(this + 0x3c) + param_2;
+            goto LAB_1;
+          }
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar5 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar5 = &PTR__vftable__18001c1d0;
+              if (iVar4 != 0) {
+                ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar2 + 0x7cc) != iVar1)) {
+            *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(int *)(pCVar2 + 0x7cc) = iVar1;
+            if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar2,
+                         "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x25e);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar6 = 0x4d;
+        }
+      }
+      else {
+        iVar1 = EvaluateCurrentState
+                          ((reg_FeatureDescriptor *)
+                           &g_Feature_3712716091_62852265_FeatureDescriptorDetails);
+        if (iVar1 == 0) {
+          if (param_2 + 8 + *(int *)(this + 0x3c) <= local_res8[0]) {
+LAB_3:
+            *(short *)(local_res20 + 6) = *(short *)(this + 0x3c) + (short)param_2;
+            puVar7 = (uchar *)((ulonglong)(*(int *)(this + 0x3c) + 8) + local_res20);
+            goto LAB_2;
+          }
+          iVar1 = -0x7fff0001;
+          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+            CallStackTracing::s_wpInstance =
+                 (CallStackTracing *)MFGetCallStackTracingWeakReference();
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              ppuVar5 = &PTR__vftable__18001c1d0;
+            }
+            else {
+              iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                (CallStackTracing::s_wpInstance,0x7e8);
+              ppuVar5 = &PTR__vftable__18001c1d0;
+              if (iVar4 != 0) {
+                ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+              }
+            }
+            CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+            CallStackTracing::GetModuleSettings();
+          }
+          if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+             (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+             *(int *)(pCVar2 + 0x7cc) != -0x7fff0001)) {
+            *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
+            uVar3 = DAT_0;
+            *(undefined4 *)(pCVar2 + 0x7cc) = 0x8000ffff;
+            if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
+              (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                        (CallStackTracing::s_wpInstance,pCVar2,
+                         "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x237);
+            }
+          }
+          if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+          uVar6 = 0x4b;
+          iVar1 = -0x7fff0001;
+        }
+        else {
+          uVar3 = *(uint *)(this + 0x3c) + param_2;
+          if (uVar3 < *(uint *)(this + 0x3c)) {
+            iVar1 = -0x7ff8fdea;
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              CallStackTracing::s_wpInstance =
+                   (CallStackTracing *)MFGetCallStackTracingWeakReference();
+              if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+                ppuVar5 = &PTR__vftable__18001c1d0;
+              }
+              else {
+                iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                  (CallStackTracing::s_wpInstance,0x7e8);
+                ppuVar5 = &PTR__vftable__18001c1d0;
+                if (iVar4 != 0) {
+                  ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+                }
+              }
+              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+              CallStackTracing::GetModuleSettings();
+            }
+            if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+               (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+               *(int *)(pCVar2 + 0x7cc) != -0x7ff8fdea)) {
+              *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
+              uVar3 = DAT_0;
+              *(undefined4 *)(pCVar2 + 0x7cc) = 0x80070216;
+              if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
+                (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                          (CallStackTracing::s_wpInstance,pCVar2,
+                           "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x22b);
+              }
+            }
+            if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+            uVar6 = 0x48;
+            iVar1 = -0x7ff8fdea;
+          }
+          else if (uVar3 + 8 < uVar3) {
+            iVar1 = -0x7ff8fdea;
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              CallStackTracing::s_wpInstance =
+                   (CallStackTracing *)MFGetCallStackTracingWeakReference();
+              if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+                ppuVar5 = &PTR__vftable__18001c1d0;
+              }
+              else {
+                iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                  (CallStackTracing::s_wpInstance,0x7e8);
+                ppuVar5 = &PTR__vftable__18001c1d0;
+                if (iVar4 != 0) {
+                  ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+                }
+              }
+              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+              CallStackTracing::GetModuleSettings();
+            }
+            if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+               (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+               *(int *)(pCVar2 + 0x7cc) != -0x7ff8fdea)) {
+              *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
+              uVar3 = DAT_0;
+              *(undefined4 *)(pCVar2 + 0x7cc) = 0x80070216;
+              if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
+                (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                          (CallStackTracing::s_wpInstance,pCVar2,
+                           "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x22c);
+              }
+            }
+            if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+            uVar6 = 0x49;
+            iVar1 = -0x7ff8fdea;
+          }
+          else {
+            if (uVar3 + 8 <= local_res8[0]) goto LAB_3;
+            iVar1 = -0x7fff0001;
+            if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+              CallStackTracing::s_wpInstance =
+                   (CallStackTracing *)MFGetCallStackTracingWeakReference();
+              if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
+                ppuVar5 = &PTR__vftable__18001c1d0;
+              }
+              else {
+                iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
+                                  (CallStackTracing::s_wpInstance,0x7e8);
+                ppuVar5 = &PTR__vftable__18001c1d0;
+                if (iVar4 != 0) {
+                  ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
+                }
+              }
+              CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
+              CallStackTracing::GetModuleSettings();
+            }
+            if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
+               (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
+               *(int *)(pCVar2 + 0x7cc) != -0x7fff0001)) {
+              *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
+              uVar3 = DAT_0;
+              *(undefined4 *)(pCVar2 + 0x7cc) = 0x8000ffff;
+              if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
+                (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
+                          (CallStackTracing::s_wpInstance,pCVar2,
+                           "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x22f);
+              }
+            }
+            if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
+            uVar6 = 0x4a;
+            iVar1 = -0x7fff0001;
+          }
+        }
+      }
+    }
+    else {
       iVar1 = -0x7fff0001;
       if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
         CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
         if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
           ppuVar5 = &PTR__vftable__18001c1d0;
         }
         else {
           iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
                             (CallStackTracing::s_wpInstance,0x7e8);
           ppuVar5 = &PTR__vftable__18001c1d0;
           if (iVar4 != 0) {
             ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
           }
         }
         CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
         CallStackTracing::GetModuleSettings();
       }
       if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
          (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
          *(int *)(pCVar2 + 0x7cc) != -0x7fff0001)) {
         *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
         uVar3 = DAT_0;
         *(undefined4 *)(pCVar2 + 0x7cc) = 0x8000ffff;
         if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
           (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
                     (CallStackTracing::s_wpInstance,pCVar2,
-                     "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x209);
+                     "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x221);
         }
       }
       if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-      uVar6 = 0x41;
-    }
-    else {
-      if (param_2 + 8 + *(int *)(this + 0x3c) <= local_res8[0]) {
-        *(short *)(local_res20 + 6) = (short)param_2 + (short)*(int *)(this + 0x3c);
-        puVar7 = (uchar *)((ulonglong)(*(int *)(this + 0x3c) + 8) + local_res20);
-LAB_2:
-        iVar1 = _CopySampleToBuffer(this,param_1,puVar7,param_2);
-        if (-1 < iVar1) {
-          *(ulong *)(this + 0x3c) = *(int *)(this + 0x3c) + param_2;
-          goto LAB_1;
-        }
-        if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-          CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
-          if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-            ppuVar5 = &PTR__vftable__18001c1d0;
-          }
-          else {
-            iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
-                              (CallStackTracing::s_wpInstance,0x7e8);
-            ppuVar5 = &PTR__vftable__18001c1d0;
-            if (iVar4 != 0) {
-              ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-            }
-          }
-          CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
-          CallStackTracing::GetModuleSettings();
-        }
-        if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-           (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-           *(int *)(pCVar2 + 0x7cc) != iVar1)) {
-          *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
-          uVar3 = DAT_0;
-          *(int *)(pCVar2 + 0x7cc) = iVar1;
-          if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
-            (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                      (CallStackTracing::s_wpInstance,pCVar2,
-                       "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x217);
-          }
-        }
-        if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-        uVar6 = 0x42;
-        goto LAB_3;
-      }
+      uVar6 = 0x47;
       iVar1 = -0x7fff0001;
-      if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-        CallStackTracing::s_wpInstance = (CallStackTracing *)MFGetCallStackTracingWeakReference();
-        if (CallStackTracing::s_wpInstance == (CallStackTracing *)0x0) {
-          ppuVar5 = &PTR__vftable__18001c1d0;
-        }
-        else {
-          iVar4 = (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 8))
-                            (CallStackTracing::s_wpInstance,0x7e8);
-          ppuVar5 = &PTR__vftable__18001c1d0;
-          if (iVar4 != 0) {
-            ppuVar5 = (undefined **)CallStackTracing::s_wpInstance;
-          }
-        }
-        CallStackTracing::s_wpInstance = (CallStackTracing *)ppuVar5;
-        CallStackTracing::GetModuleSettings();
-      }
-      if ((CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) &&
-         (pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance),
-         *(int *)(pCVar2 + 0x7cc) != -0x7fff0001)) {
-        *(int *)(pCVar2 + 0x7e4) = *(int *)(pCVar2 + 0x7e4) + 1;
-        uVar3 = DAT_0;
-        *(undefined4 *)(pCVar2 + 0x7cc) = 0x8000ffff;
-        if (*(uint *)(pCVar2 + 0x7e4) <= uVar3) {
-          (**(code **)(*(longlong *)CallStackTracing::s_wpInstance + 0x10))
-                    (CallStackTracing::s_wpInstance,pCVar2,
-                     "CDTSMFTDataHandler::_AppendPacketToOutputBuffer",0x1f1);
-        }
-      }
-      if (g_wppLevels == (<unnamed_type_g_wppLevels>)0x0) goto LAB_1;
-      uVar6 = 0x40;
-    }
-    iVar1 = -0x7fff0001;
+    }
   }
-LAB_3:
   WPP_SF_qd(*(undefined8 *)(WPP_GLOBAL_Control + 0x10),uVar6,
-            &WPP_836fc4dc92c837f60508945e85bd9581_Traceguids,this);
+            &WPP_1dcd1687a1533b217a36a5f05627d0dc_Traceguids,this);
 LAB_1:
   if (local_res20 != 0) {
     (**(code **)(**(longlong **)(this + 0x20) + 0x20))();
   }
   if (CallStackTracing::s_wpInstance[8] != (CallStackTracing)0x0) {
     pCVar2 = CallStackTracing::Context(CallStackTracing::s_wpInstance);
     if ((*(int *)(pCVar2 + 0x7c4) != 0) &&
        (iVar4 = *(int *)(pCVar2 + 0x7c4) + -1, *(int *)(pCVar2 + 0x7c4) = iVar4, iVar4 == 0)) {
       CallStackContext::ClearState(pCVar2);
     }
   }
   return iVar1;
 }
 

```


# Modified (No Code Changes)


*Slightly modified functions have no code changes, rather differnces in:*
- refcount
- length
- called
- calling
- name
- fullname

## __GSHandlerCheck

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|__GSHandlerCheck|__GSHandlerCheck|
|fullname|__GSHandlerCheck|__GSHandlerCheck|
|`refcount`|17|18|
|length|29|29|
|called|__GSHandlerCheckCommon|__GSHandlerCheckCommon|
|calling|||
|paramcount|4|4|
|`address`|180016b88|1800177a8|
|sig|undefined8 __fastcall __GSHandlerCheck(undefined8 param_1, undefined8 param_2, undefined8 param_3, longlong param_4)|undefined8 __fastcall __GSHandlerCheck(undefined8 param_1, undefined8 param_2, undefined8 param_3, longlong param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.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|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|RegCloseKey|RegCloseKey|
|fullname|API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey|API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey|
|`refcount`|12|13|
|length|0|0|
|called|||
|`calling`|ATL::CRegKey::RecurseDeleteKey<br>ATL::CRegParser::RegisterSubkeys|ATL::CRegKey::RecurseDeleteKey<br>ATL::CRegParser::RegisterSubkeys<br>EvaluateCurrentStateFromRegistry|
|paramcount|1|1|
|`address`|EXTERNAL:00000029|EXTERNAL:0000002a|
|sig|LSTATUS __stdcall RegCloseKey(HKEY hKey)|LSTATUS __stdcall RegCloseKey(HKEY hKey)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey Calling Diff


```diff
--- API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey calling
+++ API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegCloseKey calling
@@ -2,0 +3 @@
+EvaluateCurrentStateFromRegistry
```


## __security_check_cookie

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.62|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|__security_check_cookie|__security_check_cookie|
|fullname|__security_check_cookie|__security_check_cookie|
|`refcount`|20|21|
|length|30|30|
|called|__report_gsfailure|__report_gsfailure|
|`calling`|<details><summary>Expand for full list:<br>ATL::CAtlModule::UpdateRegistryFromResourceS<br>ATL::CAtlModule::UpdateRegistryFromResourceS<br>ATL::CRegKey::RecurseDeleteKey<br>ATL::CRegObject::RegisterFromResource<br>ATL::CRegParser::AddValue<br>ATL::CRegParser::PreProcessBuffer<br>ATL::CRegParser::RegisterBuffer<br>ATL::CRegParser::RegisterSubkeys<br>ATL::CRegParser::SkipAssignment<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFTTypeHandler::DoCheckOutputType<br>CMFAttributesTrace::AppendPropVariant<br>CMFAttributesTrace::GetString<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>__GSHandlerCheckCommon<br>_invoke_watson</details>|<details><summary>Expand for full list:<br>ATL::CAtlModule::UpdateRegistryFromResourceS<br>ATL::CAtlModule::UpdateRegistryFromResourceS<br>ATL::CRegKey::RecurseDeleteKey<br>ATL::CRegObject::RegisterFromResource<br>ATL::CRegParser::AddValue<br>ATL::CRegParser::PreProcessBuffer<br>ATL::CRegParser::RegisterBuffer<br>ATL::CRegParser::RegisterSubkeys<br>ATL::CRegParser::SkipAssignment<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFTTypeHandler::DoCheckOutputType<br>CMFAttributesTrace::AppendPropVariant<br>CMFAttributesTrace::GetString<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>EvaluateCurrentStateFromRegistry<br>__GSHandlerCheckCommon<br>_invoke_watson</details>|
|paramcount|1|1|
|`address`|180016450|180017070|
|sig|void __cdecl __security_check_cookie(uintptr_t _StackCookie)|void __cdecl __security_check_cookie(uintptr_t _StackCookie)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### __security_check_cookie Calling Diff


```diff
--- __security_check_cookie calling
+++ __security_check_cookie calling
@@ -17,0 +18 @@
+EvaluateCurrentStateFromRegistry
```


## API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.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|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|RegOpenKeyExW|RegOpenKeyExW|
|fullname|API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW|API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW|
|`refcount`|6|7|
|length|0|0|
|called|||
|`calling`|ATL::CRegKey::RecurseDeleteKey<br>ATL::CRegParser::RegisterSubkeys|ATL::CRegKey::RecurseDeleteKey<br>ATL::CRegParser::RegisterSubkeys<br>EvaluateCurrentStateFromRegistry|
|paramcount|5|5|
|`address`|EXTERNAL:0000002a|EXTERNAL:0000002e|
|sig|LSTATUS __stdcall RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)|LSTATUS __stdcall RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW Calling Diff


```diff
--- API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW calling
+++ API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL::RegOpenKeyExW calling
@@ -2,0 +3 @@
+EvaluateCurrentStateFromRegistry
```


## GetModuleSettings

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.7|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|GetModuleSettings|GetModuleSettings|
|fullname|CallStackTracing::GetModuleSettings|CallStackTracing::GetModuleSettings|
|`refcount`|185|196|
|length|114|114|
|called|MFPLAT.DLL::MFGetConfigurationDWORD|MFPLAT.DLL::MFGetConfigurationDWORD|
|calling|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket<br>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context<br>`dynamic_initializer_for_'s_disabledContext''</details>|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket<br>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context<br>`dynamic_initializer_for_'s_disabledContext''</details>|
|paramcount|0|0|
|`address`|180015bd4|1800167f4|
|sig|void __cdecl GetModuleSettings(void)|void __cdecl GetModuleSettings(void)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

## Context

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|refcount|
|ratio|1.0|
|i_ratio|0.74|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|Context|Context|
|fullname|CallStackTracing::Context|CallStackTracing::Context|
|`refcount`|234|245|
|length|173|173|
|called|API-MS-WIN-CORE-ERRORHANDLING-L1-1-1.DLL::GetLastError<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-2.DLL::TlsGetValue<br>CallStackTracing::AllocateNewContext<br>CallStackTracing::GetModuleSettings<br>MFPLAT.DLL::MFGetCallStackTracingWeakReference<br>_guard_dispatch_icall|API-MS-WIN-CORE-ERRORHANDLING-L1-1-1.DLL::GetLastError<br>API-MS-WIN-CORE-PROCESSTHREADS-L1-1-2.DLL::TlsGetValue<br>CallStackTracing::AllocateNewContext<br>CallStackTracing::GetModuleSettings<br>MFPLAT.DLL::MFGetCallStackTracingWeakReference<br>_guard_dispatch_icall|
|calling|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnDrain<br>CDTSMFTDataHandler::OnEndOfStream<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket</summary>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::DoCheckInputType<br>CDTSMFTTypeHandler::DoCheckOutputType<br>CDTSMFTTypeHandler::Init<br>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::DoCheckOutputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>CallStackScopeTrace::CallStackScopeTrace</details>|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnDrain<br>CDTSMFTDataHandler::OnEndOfStream<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket</summary>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::DoCheckInputType<br>CDTSMFTTypeHandler::DoCheckOutputType<br>CDTSMFTTypeHandler::Init<br>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::DoCheckOutputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>CallStackScopeTrace::CallStackScopeTrace</details>|
|paramcount|1|1|
|address|180005258|180005258|
|sig|CallStackContext * __thiscall Context(CallStackTracing * this)|CallStackContext * __thiscall Context(CallStackTracing * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

## WPP_SF_qd

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.93|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|WPP_SF_qd|WPP_SF_qd|
|fullname|WPP_SF_qd|WPP_SF_qd|
|`refcount`|51|52|
|length|68|68|
|called|API-MS-WIN-EVENTING-CLASSICPROVIDER-L1-1-0.DLL::TraceMessage|API-MS-WIN-EVENTING-CLASSICPROVIDER-L1-1-0.DLL::TraceMessage|
|calling|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket<br>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged</details>|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket<br>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged</details>|
|paramcount|4|4|
|`address`|180005ef8|180006164|
|sig|undefined __fastcall WPP_SF_qd(undefined8 param_1, undefined2 param_2, undefined8 param_3, undefined8 param_4)|undefined __fastcall WPP_SF_qd(undefined8 param_1, undefined2 param_2, undefined8 param_3, undefined8 param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## MFPLAT.DLL::MFGetCallStackTracingWeakReference

### Match Info



|Key|mfaudiocnv-06.dll - mfaudiocnv-07.dll|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|mfaudiocnv-06.dll|mfaudiocnv-07.dll|
| :---: | :---: | :---: |
|name|MFGetCallStackTracingWeakReference|MFGetCallStackTracingWeakReference|
|fullname|MFPLAT.DLL::MFGetCallStackTracingWeakReference|MFPLAT.DLL::MFGetCallStackTracingWeakReference|
|`refcount`|184|195|
|length|0|0|
|called|||
|calling|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket<br>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context</details>|<details><summary>Expand for full list:<br>CDTSMFT::FinalConstruct<br>CDTSMFTDataHandler::InternalProcessInput<br>CDTSMFTDataHandler::InternalProcessOutput<br>CDTSMFTDataHandler::OnOutputTypeChanged<br>CDTSMFTDataHandler::_AppendPacketToOutputBuffer<br>CDTSMFTDataHandler::_CopySampleToBuffer<br>CDTSMFTDataHandler::_CreateNewOutputBuffer<br>CDTSMFTDataHandler::_FindExtensionStreamStart<br>CDTSMFTDataHandler::_IsCoreStreamPacket<br>CDTSMFTDataHandler::_ProcessInputSample<br>CDTSMFTTypeHandler::Init</summary>CLPCMMFT::FinalConstruct<br>CLPCMMFTDataHandler::InternalProcessInput<br>CLPCMMFTDataHandler::InternalProcessOutput<br>CLPCMMFTDataHandler::_AppendInputBuffer<br>CLPCMMFTDataHandler::_CreateNewOutputBuffer<br>CLPCMMFTTypeHandler::DoCheckInputType<br>CLPCMMFTTypeHandler::DoCheckOutputType<br>CLPCMMFTTypeHandler::Init<br>CMLPMFT::FinalConstruct<br>CMLPMFTDataHandler::InternalProcessInput<br>CMLPMFTDataHandler::InternalProcessOutput<br>CMLPMFTDataHandler::OnDrain<br>CMLPMFTDataHandler::OnEndOfStream<br>CMLPMFTDataHandler::OnOutputTypeChanged<br>CMLPMFTDataHandler::_AddPaddingToOutputBuffer<br>CMLPMFTDataHandler::_AppendAccessUnitToOutputBuffer<br>CMLPMFTDataHandler::_CopySampleToBuffer<br>CMLPMFTDataHandler::_CreateNewOutputBuffer<br>CMLPMFTDataHandler::_FinalizeOutputBuffer<br>CMLPMFTDataHandler::_IsMLPPacket<br>CMLPMFTDataHandler::_IsMajorSyncMLPPacket<br>CMLPMFTDataHandler::_ProcessInputSample<br>CMLPMFTDataHandler::_ReadBytes<br>CMLPMFTDataHandler::_WriteOneAccessUnit<br>CMLPMFTTypeHandler::DoCheckInputType<br>CMLPMFTTypeHandler::Init<br>CMLPMFTTypeHandler::OnInputTypeChanged<br>CallStackScopeTrace::CallStackScopeTrace<br>CallStackTracing::Context</details>|
|paramcount|0|0|
|`address`|EXTERNAL:00000052|EXTERNAL:00000054|
|sig|undefined MFGetCallStackTracingWeakReference(void)|undefined MFGetCallStackTracingWeakReference(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|



<sub>Generated with `ghidriff` version: 1.0.0 on 2026-08-28T16:27:58</sub>