# tcpip-06.sys-tcpip-07.sys Diff

# TOC

* [Visual Chart Diff](#visual-chart-diff)
* [Metadata](#metadata)
	* [Ghidra Diff Engine](#ghidra-diff-engine)
		* [Command Line](#command-line)
	* [Binary Metadata Diff](#binary-metadata-diff)
	* [Program Options](#program-options)
	* [Diff Stats](#diff-stats)
	* [Strings](#strings)
* [Deleted](#deleted)
	* [AlepSetConnectRedirectLayerMetadata](#alepsetconnectredirectlayermetadata)
	* [FUN_1401c418a](#fun_1401c418a)
	* [FUN_1401c41b5](#fun_1401c41b5)
	* [FUN_1401c449c](#fun_1401c449c)
	* [FUN_1401c44ad](#fun_1401c44ad)
	* [FUN_1401c647f](#fun_1401c647f)
	* [FUN_1401d02ee](#fun_1401d02ee)
	* [FUN_1401d0316](#fun_1401d0316)
	* [FUN_1401d41fa](#fun_1401d41fa)
	* [FUN_1401dc320](#fun_1401dc320)
* [Added](#added)
	* [InetInspectConnectRequest](#inetinspectconnectrequest)
	* [IppTranslateTransmitToReceiveNbl](#ipptranslatetransmittoreceivenbl)
	* [IppBuildNextHeader](#ippbuildnextheader)
	* [DestroyUdpConnectRedirectCallbackContext](#destroyudpconnectredirectcallbackcontext)
	* [CreateUdpConnectRedirectCallbackContext](#createudpconnectredirectcallbackcontext)
	* [wil_details_AreDependenciesEnabled](#wil_details_aredependenciesenabled)
	* [ReleaseUdpConnectRedirectCallbackContext](#releaseudpconnectredirectcallbackcontext)
	* [WPP_SF__guid_DD](#wpp_sf__guid_dd)
	* [InetWakeRemovePortEntryIfPresent](#inetwakeremoveportentryifpresent)
	* [NETIO.SYS::IoctlEnableAuditMode](#netiosysioctlenableauditmode)
* [Modified](#modified)
	* [IppRemoveAllDiscoveryContexts](#ippremovealldiscoverycontexts)
	* [InetWakeAcquirePortAf](#inetwakeacquireportaf)
	* [IppNotifyMfeChangeWorker](#ippnotifymfechangeworker)
	* [FlpSetIpAddress](#flpsetipaddress)
	* [FlpMulticastListSet](#flpmulticastlistset)
	* [WfpAleAuthorizeSend](#wfpaleauthorizesend)
	* [Ipv6pFragmentPacketHelper](#ipv6pfragmentpackethelper)
	* [UdpConnectRedirect](#udpconnectredirect)
	* [wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState](#wil_details_evaluatefeaturedependencies_reevaluatecachedfeatureenabledstate)
	* [wil_details_RegisterFeatureUsageProvider](#wil_details_registerfeatureusageprovider)
	* [IpNlpFastContinueSendLoopbackDatagrams](#ipnlpfastcontinuesendloopbackdatagrams)
	* [IppInitializeSessionState](#ippinitializesessionstate)
	* [wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState](#wil_details_featurestatecache_reevaluatecachedfeatureenabledstate)
	* [wil_details_GetCurrentFeatureEnabledState](#wil_details_getcurrentfeatureenabledstate)
	* [IppFragmentPackets](#ippfragmentpackets)
	* [Ipv4pUpdatePathMtu](#ipv4pupdatepathmtu)
	* [FlRdmaUnbindAdapter](#flrdmaunbindadapter)
	* [IpNlpFilterDatagramBySessionInformation](#ipnlpfilterdatagrambysessioninformation)
	* [Fl68MapAddress](#fl68mapaddress)
	* [FseProcessIncomingMessages](#fseprocessincomingmessages)
	* [IpNlpSetSessionInfo](#ipnlpsetsessioninfo)
	* [KfdDispatchDevCtl](#kfddispatchdevctl)
	* [Ipv6pHandleNeighborSolicitation](#ipv6phandleneighborsolicitation)
	* [IpNlpSuspectPathReachability](#ipnlpsuspectpathreachability)
	* [IppFillIpHeaderForFastSend_scrap](#ippfillipheaderforfastsend_scrap)
	* [Ipv6pUpdatePathMtu](#ipv6pupdatepathmtu)
	* [Ipv6pPathMtuDiscoveryTimeout](#ipv6ppathmtudiscoverytimeout)
	* [IppProcessDefaults](#ippprocessdefaults)
	* [IppPacketizeDatagramsForHeaderBuild](#ipppacketizedatagramsforheaderbuild)
	* [FlUnbindAdapter](#flunbindadapter)
	* [IpNlpQuerySessionInfo](#ipnlpquerysessioninfo)
	* [Fl8AddGroup](#fl8addgroup)
	* [FlpDeleteGroupUnderLock](#flpdeletegroupunderlock)
	* [IppLoopbackEnqueue](#ipploopbackenqueue)
	* [UdpConnectRedirectCallbackContinue](#udpconnectredirectcallbackcontinue)
	* [AleRedirectRecordsDeserializeFromBuffer](#aleredirectrecordsdeserializefrombuffer)
	* [IppProcessInternetConnectivityFlags](#ippprocessinternetconnectivityflags)
	* [FlpAddInterfaceComplete](#flpaddinterfacecomplete)
	* [Ipv4pPathMtuDiscoveryTimeout](#ipv4ppathmtudiscoverytimeout)
	* [UdpSendMessagesDatagramsComplete](#udpsendmessagesdatagramscomplete)
	* [UdpConnectRedirectCallback](#udpconnectredirectcallback)
	* [IpNlpSetPathInfo](#ipnlpsetpathinfo)
	* [Fl4tMapAddress](#fl4tmapaddress)
	* [IppFillIpHeaderForFastSend](#ippfillipheaderforfastsend)
	* [InetWakeReleasePortAf](#inetwakereleaseportaf)
	* [AleInspectConnectRequest](#aleinspectconnectrequest)
	* [IppFillPathInformation](#ippfillpathinformation)
	* [WfpAleLookupNlSessionState](#wfpalelookupnlsessionstate)
	* [Fl6tMapAddress](#fl6tmapaddress)
	* [FlIfCreateVirtualInterface](#flifcreatevirtualinterface)
	* [IppVerifyHwUsoCompatibility](#ippverifyhwusocompatibility)
	* [IpGetAllSortedAddressParameters](#ipgetallsortedaddressparameters)
	* [IppCreateForwardPath](#ippcreateforwardpath)
	* [FUN_1401dcbb0](#fun_1401dcbb0)
	* [UdpSetDestinationEndpoint](#udpsetdestinationendpoint)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [FlpInterfaceAcquireWriteLock](#flpinterfaceacquirewritelock)
	* [NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel](#ntoskrnlexekereleaseinstackqueuedspinlockfromdpclevel)
	* [RtlAcquireWriteLock](#rtlacquirewritelock)
	* [WfpReleaseSpinLock](#wfpreleasespinlock)
	* [IN6ADDR_SETV4MAPPED](#in6addr_setv4mapped)
	* [RtlAcquireReadLockAtDpcLevel](#rtlacquirereadlockatdpclevel)
	* [AleInspectAdjustModifiedLayerDataLocalAddress](#aleinspectadjustmodifiedlayerdatalocaladdress)
	* [memmove](#memmove)
	* [memcmp](#memcmp)
	* [RtlAcquireReadLock](#rtlacquirereadlock)
	* [IppProcessAddSource](#ippprocessaddsource)
	* [AleGetOriginalAppId](#alegetoriginalappid)
	* [WfpReportStatus](#wfpreportstatus)
	* [NETIO.SYS::NetioFreeMdl](#netiosysnetiofreemdl)
	* [__GSHandlerCheck](#__gshandlercheck)
	* [NetioGetDataBufferIfSafe](#netiogetdatabufferifsafe)
	* [NTOSKRNL.EXE::PsGetCurrentProcess](#ntoskrnlexepsgetcurrentprocess)
	* [FlpInterfaceReleaseReadLock](#flpinterfacereleasereadlock)
	* [NDIS.SYS::NdisAcquireRWLockWrite](#ndissysndisacquirerwlockwrite)
	* [WPP_SF_sD](#wpp_sf_sd)
	* [NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx](#ntoskrnlexekegetcurrentprocessornumberex)
	* [WfpSizeTMultiply](#wfpsizetmultiply)
	* [NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock](#ntoskrnlexekeacquireinstackqueuedspinlock)
	* [RtlAcquireScalableWriteLockAtDpcLevel](#rtlacquirescalablewritelockatdpclevel)
	* [AleGetTickCount](#alegettickcount)
	* [NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache](#ntoskrnlexemmmaplockedpagesspecifycache)
	* [NTOSKRNL.EXE::PsGetProcessImageFileName](#ntoskrnlexepsgetprocessimagefilename)
	* [wil_details_IsEnabledFallback](#wil_details_isenabledfallback)
	* [UdpDereferenceEndpoint](#udpdereferenceendpoint)
	* [NTOSKRNL.EXE::ExAllocatePool2](#ntoskrnlexeexallocatepool2)
	* [NDIS.SYS::NdisAdvanceNetBufferDataStart](#ndissysndisadvancenetbufferdatastart)
	* [NTOSKRNL.EXE::ExFreePoolWithTag](#ntoskrnlexeexfreepoolwithtag)
	* [WPP_SF_sDd](#wpp_sf_sdd)
	* [NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock](#ntoskrnlexekereleaseinstackqueuedspinlock)
	* [IppCleanupInterfaceWorkerRoutine](#ippcleanupinterfaceworkerroutine)
	* [Ipv4pFillPacketChecksum](#ipv4pfillpacketchecksum)
	* [IppDereferenceInterface](#ippdereferenceinterface)
	* [memset](#memset)
	* [RtlAcquireWriteLockAtDpcLevel](#rtlacquirewritelockatdpclevel)
	* [NDIS.SYS::NdisRetreatNetBufferDataStart](#ndissysndisretreatnetbufferdatastart)
	* [WfpPoolFree](#wfppoolfree)
	* [NETIO.SYS::NetioPhFillUInt16AtOffset](#netiosysnetiophfilluint16atoffset)
	* [McTemplateK0ppqqq_EtwWriteTransfer](#mctemplatek0ppqqq_etwwritetransfer)
	* [NTOSKRNL.EXE::KfRaiseIrql](#ntoskrnlexekfraiseirql)
	* [NETIO.SYS::KfdClassify](#netiosyskfdclassify)
	* [NETIO.SYS::KfdAreAllIpv4InLayersEmpty](#netiosyskfdareallipv4inlayersempty)
	* [__security_check_cookie](#__security_check_cookie)
	* [NDIS.SYS::NdisReleaseRWLock](#ndissysndisreleaserwlock)
	* [INETADDR_ISEQUAL](#inetaddr_isequal)
	* [AleAcquireEndpointLockEx](#aleacquireendpointlockex)
	* [AlepValidateConnectRedirectLayerData](#alepvalidateconnectredirectlayerdata)
	* [NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel](#ntoskrnlexekeacquireinstackqueuedspinlockatdpclevel)
	* [NTOSKRNL.EXE::KeQueryInterruptTimePrecise](#ntoskrnlexekequeryinterrupttimeprecise)
	* [INETADDR_SETSOCKADDR](#inetaddr_setsockaddr)
	* [AleInspectConnectRequestProcessLocalAddressRedirection](#aleinspectconnectrequestprocesslocaladdressredirection)
	* [_tlgWriteAgg](#_tlgwriteagg)
	* [AlepCleanupModifiedConnectRedirectLayerData](#alepcleanupmodifiedconnectredirectlayerdata)
	* [InetSetInterfacePropertyAf](#inetsetinterfacepropertyaf)
	* [NTOSKRNL.EXE::IoQueueWorkItem](#ntoskrnlexeioqueueworkitem)
	* [NTOSKRNL.EXE::KeReleaseSpinLock](#ntoskrnlexekereleasespinlock)
	* [_guard_dispatch_icall](#_guard_dispatch_icall)

# Visual Chart Diff



```mermaid

flowchart LR

IppRemoveAllDiscoveryContexts-0-old<--Match 91%-->IppRemoveAllDiscoveryContexts-0-new
InetWakeAcquirePortAf-0-old<--Match 45%-->InetWakeAcquirePortAf-0-new
IppNotifyMfeChangeWorker-0-old<--Match 99%-->IppNotifyMfeChangeWorker-0-new
FlpSetIpAddress-0-old<--Match 89%-->FlpSetIpAddress-0-new
FlpMulticastListSet-0-old<--Match 90%-->FlpMulticastListSet-0-new
WfpAleAuthorizeSend-0-old<--Match 24%-->WfpAleAuthorizeSend-0-new
Ipv6pFragmentPacketHelper-0-old<--Match 96%-->Ipv6pFragmentPacketHelper-0-new
UdpConnectRedirect-0-old<--Match 13%-->UdpConnectRedirect-0-new
wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState-0-old<--Match 78%-->wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState-0-new
wil_details_RegisterFeatureUsageProvider-0-old<--Match 95%-->wil_details_RegisterFeatureUsageProvider-0-new
IpNlpFastContinueSendLoopbackDatagrams-0-old<--Match 67%-->IpNlpFastContinueSendLoopbackDatagrams-0-new
IppInitializeSessionState-0-old<--Match 67%-->IppInitializeSessionState-0-new
wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState-0-old<--Match 95%-->wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState-0-new
wil_details_GetCurrentFeatureEnabledState-0-old<--Match 55%-->wil_details_GetCurrentFeatureEnabledState-0-new
IppFragmentPackets-0-old<--Match 93%-->IppFragmentPackets-0-new
Ipv4pUpdatePathMtu-0-old<--Match 81%-->Ipv4pUpdatePathMtu-0-new
FlRdmaUnbindAdapter-0-old<--Match 80%-->FlRdmaUnbindAdapter-0-new
IpNlpFilterDatagramBySessionInformation-0-old<--Match 94%-->IpNlpFilterDatagramBySessionInformation-0-new
Fl68MapAddress-0-old<--Match 75%-->Fl68MapAddress-0-new
FseProcessIncomingMessages-0-old<--Match 26%-->FseProcessIncomingMessages-0-new
IpNlpSetSessionInfo-0-old<--Match 50%-->IpNlpSetSessionInfo-0-new
KfdDispatchDevCtl-0-old<--Match 99%-->KfdDispatchDevCtl-0-new
Ipv6pHandleNeighborSolicitation-0-old<--Match 35%-->Ipv6pHandleNeighborSolicitation-0-new
IpNlpSuspectPathReachability-0-old<--Match 97%-->IpNlpSuspectPathReachability-0-new
IppFillIpHeaderForFastSend_scrap-0-old<--Match 92%-->IppFillIpHeaderForFastSend_scrap-0-new
Ipv6pUpdatePathMtu-0-old<--Match 83%-->Ipv6pUpdatePathMtu-0-new
tcpip-06.sys<--30ommited-->tcpip-07.sys

subgraph tcpip-07.sys
    IppRemoveAllDiscoveryContexts-0-new
InetWakeAcquirePortAf-0-new
IppNotifyMfeChangeWorker-0-new
FlpSetIpAddress-0-new
FlpMulticastListSet-0-new
WfpAleAuthorizeSend-0-new
Ipv6pFragmentPacketHelper-0-new
UdpConnectRedirect-0-new
wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState-0-new
wil_details_RegisterFeatureUsageProvider-0-new
IpNlpFastContinueSendLoopbackDatagrams-0-new
IppInitializeSessionState-0-new
wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState-0-new
wil_details_GetCurrentFeatureEnabledState-0-new
IppFragmentPackets-0-new
Ipv4pUpdatePathMtu-0-new
FlRdmaUnbindAdapter-0-new
IpNlpFilterDatagramBySessionInformation-0-new
Fl68MapAddress-0-new
FseProcessIncomingMessages-0-new
IpNlpSetSessionInfo-0-new
KfdDispatchDevCtl-0-new
Ipv6pHandleNeighborSolicitation-0-new
IpNlpSuspectPathReachability-0-new
IppFillIpHeaderForFastSend_scrap-0-new
Ipv6pUpdatePathMtu-0-new
    subgraph Added
direction LR
InetInspectConnectRequest
    IppTranslateTransmitToReceiveNbl
    IppBuildNextHeader
    DestroyUdpConnectRedirectCallbackContext
    CreateUdpConnectRedirectCallbackContext
    wil_details_AreDependenciesEnabled
    ReleaseUdpConnectRedirectCallbackContext
    WPP_SF__guid_DD
    InetWakeRemovePortEntryIfPresent
    NETIOSYS-IoctlEnableAuditMode
end
end

subgraph tcpip-06.sys
    IppRemoveAllDiscoveryContexts-0-old
InetWakeAcquirePortAf-0-old
IppNotifyMfeChangeWorker-0-old
FlpSetIpAddress-0-old
FlpMulticastListSet-0-old
WfpAleAuthorizeSend-0-old
Ipv6pFragmentPacketHelper-0-old
UdpConnectRedirect-0-old
wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState-0-old
wil_details_RegisterFeatureUsageProvider-0-old
IpNlpFastContinueSendLoopbackDatagrams-0-old
IppInitializeSessionState-0-old
wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState-0-old
wil_details_GetCurrentFeatureEnabledState-0-old
IppFragmentPackets-0-old
Ipv4pUpdatePathMtu-0-old
FlRdmaUnbindAdapter-0-old
IpNlpFilterDatagramBySessionInformation-0-old
Fl68MapAddress-0-old
FseProcessIncomingMessages-0-old
IpNlpSetSessionInfo-0-old
KfdDispatchDevCtl-0-old
Ipv6pHandleNeighborSolicitation-0-old
IpNlpSuspectPathReachability-0-old
IppFillIpHeaderForFastSend_scrap-0-old
Ipv6pUpdatePathMtu-0-old
    subgraph Deleted
direction LR
AlepSetConnectRedirectLayerMetadata
    FUN_1401c418a
    FUN_1401c41b5
    FUN_1401c449c
    FUN_1401c44ad
    FUN_1401c647f
    FUN_1401d02ee
    FUN_1401d0316
    FUN_1401d41fa
    FUN_1401dc320
end
end

```


```mermaid
pie showData
    title Function Matches - 99.8659%
"unmatched_funcs_len" : 20
"matched_funcs_len" : 14897
```



```mermaid
pie showData
    title Matched Function Similarity - 98.8521%
"matched_funcs_with_code_changes_len" : 55
"matched_funcs_with_non_code_changes_len" : 116
"matched_funcs_no_changes_len" : 14726
```

# 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 tcpip-06.sys tcpip-07.sys
```


#### Verbose Args


<details>

```
--old ['tcpip-06.sys'] --new [['tcpip-07.sys']] --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/tcpip.sys/8B42CF1435F000/tcpip.sys -O tcpip.sys.x64.10.0.28000.2113
wget https://msdl.microsoft.com/download/symbols/tcpip.sys/4CE86DE135F000/tcpip.sys -O tcpip.sys.x64.10.0.28000.2525
```


## Binary Metadata Diff


```diff
--- tcpip-06.sys Meta
+++ tcpip-07.sys Meta
@@ -1,44 +1,44 @@
-Program Name: tcpip-06.sys
+Program Name: tcpip-07.sys
 Language ID: x86:LE:64:default (4.7)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 140000000
 Maximum Address: ff0000184f
-# of Bytes: 3539112
+# of Bytes: 3539088
 # of Memory Blocks: 19
-# of Instructions: 508046
-# of Defined Data: 45433
-# of Functions: 7453
-# of Symbols: 56336
+# of Instructions: 507984
+# of Defined Data: 45435
+# of Functions: 7464
+# of Symbols: 56399
 # of Data Types: 433
 # of Data Type Categories: 31
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.1.2
-Date Created: Fri Aug 28 15:42:24 SGT 2026
+Date Created: Fri Aug 28 15:42:32 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /C:/Users/Jacob/Downloads/pdbs/tcpip-06.sys
-Executable MD5: ad94f01179edc99b45c0eba2aba38516
-Executable SHA256: 7f2eb6cb3b183cc9597b4327720c373d8a1a64df94bf63c54d393e05b3a08dba
-FSRL: file:///C:/Users/Jacob/Downloads/pdbs/tcpip-06.sys?MD5=ad94f01179edc99b45c0eba2aba38516
+Executable Location: /C:/Users/Jacob/Downloads/pdbs/tcpip-07.sys
+Executable MD5: 5a1756436e1c50054db4c0d5b64c96c0
+Executable SHA256: 5a5af3d66d34c66e3cd0c0a902e28becabbdba9286a913bb3bc62e79246b8f77
+FSRL: file:///C:/Users/Jacob/Downloads/pdbs/tcpip-07.sys?MD5=5a1756436e1c50054db4c0d5b64c96c0
 PDB Age: 1
 PDB File: tcpip.pdb
-PDB GUID: deddad15-5a82-726b-81f8-5faed60b3f85
+PDB GUID: 5b9a3ddd-6f20-8fc5-716c-5619f29e02a7
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: TCP/IP Driver
-PE Property[FileVersion]: 10.0.28000.2113 (WinBuild.160101.0800)
+PE Property[FileVersion]: 10.0.28000.2525 (WinBuild.160101.0800)
 PE Property[InternalName]: tcpip.sys
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: tcpip.sys
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.28000.2113
+PE Property[ProductVersion]: 10.0.28000.2525
 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 tcpip-06.sys Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra tcpip-06.sys Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra tcpip-06.sys Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|false|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.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 tcpip-07.sys Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra tcpip-07.sys Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra tcpip-07.sys Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|false|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.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|10|
|deleted_funcs_len|10|
|modified_funcs_len|171|
|added_symbols_len|51|
|deleted_symbols_len|41|
|diff_time|27.670464992523193|
|deleted_strings_len|2|
|added_strings_len|0|
|match_types|Counter({'SymbolsHash': 6815, 'ExternalsName': 803, 'StructuralGraphHash': 531, 'ExactInstructionsFunctionHasher': 439, 'BulkBasicBlockMnemonicHash': 132, 'ExactBytesFunctionHasher': 22, 'StringsRefsHasher': 10, 'SigCallingCalledHasher': 8, 'Implied Match': 2})|
|items_to_process|283|
|diff_types|Counter({'address': 158, 'refcount': 130, 'calling': 117, 'called': 107, 'length': 57, 'name': 57, 'fullname': 57, 'sig': 57, 'code': 55})|
|unmatched_funcs_len|20|
|total_funcs_len|14917|
|matched_funcs_len|14897|
|matched_funcs_with_code_changes_len|55|
|matched_funcs_with_non_code_changes_len|116|
|matched_funcs_no_changes_len|14726|
|match_func_similarity_percent|98.8521%|
|func_match_overall_percent|99.8659%|
|first_matches|Counter({'SymbolsHash': 6815, 'StructuralGraphHash': 531, 'ExactInstructionsFunctionHasher': 439, 'BulkBasicBlockMnemonicHash': 132, 'ExactBytesFunctionHasher': 22, 'StringsRefsHasher': 10, 'SigCallingCalledHasher': 8, 'Implied Match': 2})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 6815
"ExternalsName" : 803
"ExactBytesFunctionHasher" : 22
"ExactInstructionsFunctionHasher" : 439
"SigCallingCalledHasher" : 8
"StringsRefsHasher" : 10
"StructuralGraphHash" : 531
"BulkBasicBlockMnemonicHash" : 132
"Implied-Match" : 2
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 6815
"ExactBytesFunctionHasher" : 22
"ExactInstructionsFunctionHasher" : 439
"SigCallingCalledHasher" : 8
"StringsRefsHasher" : 10
"StructuralGraphHash" : 531
"BulkBasicBlockMnemonicHash" : 132
"Implied-Match" : 2
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 10
"deleted_funcs_len" : 10
"modified_funcs_len" : 171
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 51
"deleted_symbols_len" : 41
```

## Strings



```mermaid
pie showData
    title Strings
"deleted_strings_len" : 2
"added_strings_len" : 0
```

### Strings Diff


```diff
--- deleted strings
+++ added strings
@@ -1,2 +0,0 @@
-g_HttpPrefixString_buffer
-u_D_Bitmap

```


### String References

#### Old



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |
|u_D_Bitmap_1401e86e2|1|FlpSetAddressWolPattern|
|g_HttpPrefixString_buffer|1|UrlpIsSafeType|

#### New



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |

# Deleted

## AlepSetConnectRedirectLayerMetadata

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|AlepSetConnectRedirectLayerMetadata|
|fullname|AlepSetConnectRedirectLayerMetadata|
|refcount|2|
|length|319|
|called|WfpAleQueryOrInsertEndpointHandle|
|calling|AleInspectConnectRequest|
|paramcount|0|
|address|140117108|
|sig|undefined AlepSetConnectRedirectLayerMetadata(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- AlepSetConnectRedirectLayerMetadata
+++ AlepSetConnectRedirectLayerMetadata
@@ -1,49 +0,0 @@
-
-void AlepSetConnectRedirectLayerMetadata
-               (longlong param_1,longlong param_2,uint *param_3,uint *param_4)
-
-{
-  byte bVar1;
-  uint uVar2;
-  undefined8 uVar3;
-  
-  *param_4 = *param_4 | 0x20;
-  uVar2 = *param_4;
-  *(undefined8 *)(param_4 + 0x10) = *(undefined8 *)(*(longlong *)(param_1 + 0x1e0) + 0x20);
-  *param_4 = uVar2 | 0x10;
-  *(undefined8 *)(param_4 + 0xe) = *(undefined8 *)(*(longlong *)(param_1 + 0x1e8) + 0x40);
-  if (*(int *)(param_1 + 0x2a8) == 1) {
-    param_4[1] = param_4[1] | 0x80000;
-  }
-  *param_4 = uVar2 | 0x8010;
-  uVar3 = WfpAleQueryOrInsertEndpointHandle(param_1);
-  *(undefined8 *)(param_4 + 0x1c) = uVar3;
-  if (*(longlong *)(param_1 + 0x220) != 0) {
-    *param_4 = *param_4 | 0x4000000;
-    uVar3 = WfpAleQueryOrInsertEndpointHandle(*(undefined8 *)(param_1 + 0x220));
-    *(undefined8 *)(param_4 + 0x30) = uVar3;
-  }
-  if ((param_3 != (uint *)0x0) &&
-     ((bVar1 = (byte)param_3[1], bVar1 == 8 ||
-      (((bVar1 < 0x13 && ((0x66001U >> (bVar1 & 0x1f) & 1) != 0)) || ((byte)(bVar1 + 0x80) < 2))))))
-  {
-    *param_4 = *param_4 | 0x8000000;
-    param_4[0x32] = *param_3;
-  }
-  if ((*(int *)(param_1 + 0x28) == 6) && ((*(uint *)(param_1 + 0x30) & 0x10) == 0)) {
-    *(undefined8 *)(param_4 + 0x7e) = *(undefined8 *)(param_1 + 0x160);
-  }
-  if (param_2 == 0) {
-    if (*(longlong *)(param_1 + 0x1c0) != 0) {
-      *param_4 = *param_4 | 0x40000000;
-      *(undefined8 *)(param_4 + 0x36) = *(undefined8 *)(param_1 + 0x1c0);
-    }
-  }
-  else {
-    *param_4 = *param_4 | 0x40000000;
-    *(longlong *)(param_4 + 0x36) = param_2;
-  }
-  *(longlong *)(param_4 + 0x8c) = param_1;
-  return;
-}
-

```


## FUN_1401c418a

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401c418a|
|fullname|FUN_1401c418a|
|refcount|2|
|length|320|
|called|WPP_SF_S_IPV4_d_IPV4_dd<br>WPP_SF_S_IPV6_d_IPV6_dd|
|calling|WfpAleAuthorizeSend|
|paramcount|0|
|address|1401c418a|
|sig|undefined FUN_1401c418a(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401c418a
+++ FUN_1401c418a
@@ -1,181 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-ulonglong FUN_1401c418a(longlong param_1)
-
-{
-  char cVar1;
-  undefined2 uVar2;
-  int iVar3;
-  undefined8 uVar4;
-  longlong lVar5;
-  ulonglong uVar6;
-  undefined8 uVar7;
-  undefined8 uVar8;
-  longlong unaff_RBX;
-  longlong unaff_RBP;
-  longlong lVar9;
-  short sVar10;
-  uint unaff_R12D;
-  char unaff_R14B;
-  longlong *unaff_R15;
-  bool bVar11;
-  undefined4 uVar12;
-  
-  if ((*(int *)(unaff_RBX + 0x28) == 6) && ((*(uint *)(unaff_RBX + 0x30) & 0x10) == 0)) {
-    *(longlong *)(*unaff_R15 + 0x1c0) = param_1;
-    LOCK();
-    *(int *)(param_1 + 0x1f0) = *(int *)(param_1 + 0x1f0) + 1;
-    UNLOCK();
-  }
-  lVar9 = *unaff_R15;
-  lVar5 = 0;
-  bVar11 = gAleDebugEnabled == '\x01';
-  *(undefined8 *)(lVar9 + 0x10) = 0;
-  if (bVar11) {
-    lVar5 = *(longlong *)(lVar9 + 0x18);
-    *(undefined8 *)(lVar9 + 0x18) = 0;
-  }
-  KeReleaseInStackQueuedSpinLock(unaff_RBP + 0x10);
-  if ((gAleDebugEnabled == '\x01') && (lVar5 != 0)) {
-    ExFreePoolWithTag(lVar5,0);
-  }
-  LOCK();
-  *(uint *)(unaff_RBX + 0x34) = *(uint *)(unaff_RBX + 0x34) | 0x80;
-  UNLOCK();
-  if ((unaff_R14B != '\0') && (*(char *)(unaff_RBP + -0x79) == '\0')) {
-    lVar9 = *(longlong *)(unaff_RBP + 400);
-    *(undefined8 *)(unaff_RBP + 0x38) = 0;
-    *(undefined8 *)(unaff_RBP + 0x28) = 0;
-    *(undefined8 *)(unaff_RBP + 0x30) = 0;
-    uVar12 = WfpAcquireSpinLock(lVar9,unaff_RBP + 0x28);
-    cVar1 = *(char *)(lVar9 + 0x148);
-    *(longlong *)(lVar9 + 0x10) = *unaff_R15;
-    WfpReleaseSpinLock(uVar12,unaff_RBP + 0x28);
-    if (cVar1 != '\0') {
-      WfpAleHandleSendCompletion(lVar9,*(undefined8 *)(lVar9 + 0x10));
-      return 0x103;
-    }
-  }
-  uVar4 = *(undefined8 *)(unaff_RBP + -0x30);
-  if (unaff_R14B != '\0') {
-    return 0x103;
-  }
-  WfpAlepAuthTelemetry(unaff_RBP + 0x40,0,0,5);
-  if (*(int *)(unaff_RBP + 0x1a0) == 0x1001) {
-    LOCK();
-    **(int **)(unaff_RBP + 0x78) = **(int **)(unaff_RBP + 0x78) + 1;
-    UNLOCK();
-    sVar10 = *(short *)(unaff_RBP + -0x7e);
-    if (*(int *)(*(longlong *)(unaff_RBP + -0x68) + 0x18) == 1) {
-      if (sVar10 == 2) {
-        if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-           (4 < (byte)WPP_GLOBAL_Control[0x29])) {
-          uVar6 = FUN_1401c41b5();
-          return uVar6;
-        }
-        goto LAB_14000d310;
-      }
-      if (((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
-         ((byte)WPP_GLOBAL_Control[0x29] < 5)) goto LAB_14000d310;
-      lVar9 = *(longlong *)(unaff_RBP + -0x78);
-      if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x10000) != 0) {
-        WPP_SF_S_IPV6_d_IPV6_dd
-                  (*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0xf,
-                   &WPP_ff5f03a18eb831a6e9acaab9d252ccb7_Traceguids,
-                   *(undefined8 *)(*(longlong *)(lVar9 + 0x1e0) + 0x10),
-                   **(undefined8 **)(*(longlong *)(unaff_RBP + -0x68) + 0x10));
-        sVar10 = *(short *)(unaff_RBP + -0x7e);
-      }
-    }
-    else {
-LAB_14000d310:
-      lVar9 = *(longlong *)(unaff_RBP + -0x78);
-    }
-    if (DAT_1402308a9 == '\0') goto LAB_14000d228;
-    iVar3 = *(int *)(unaff_RBP + -0x70);
-    if (sVar10 == 2) {
-      if (iVar3 != 1) goto LAB_1401c42e6;
-LAB_1401c42d6:
-      lVar5 = *(longlong *)(unaff_RBP + -0x50);
-    }
-    else {
-      if ((sVar10 == 0x17) && (iVar3 == 0x3a)) goto LAB_1401c42d6;
-LAB_1401c42e6:
-      lVar5 = *(longlong *)(unaff_RBP + -0x50);
-    }
-    if (sVar10 == 2) {
-      if (iVar3 == 1) {
-LAB_1401c4309:
-        *(ushort *)(unaff_RBP + -0x80) = (ushort)*(byte *)(lVar5 + 4) << 8;
-      }
-    }
-    else if ((sVar10 == 0x17) && (iVar3 == 0x3a)) goto LAB_1401c4309;
-    uVar8 = 0x10;
-    lVar9 = *(longlong *)(lVar9 + 0x1e0);
-    uVar2 = *(undefined2 *)(lVar9 + 10);
-    uVar7 = 0x1425;
-  }
-  else {
-    sVar10 = *(short *)(unaff_RBP + -0x7e);
-    if (sVar10 == 2) {
-      if (((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
-         ((byte)WPP_GLOBAL_Control[0x29] < 6)) goto LAB_14000d213;
-      lVar9 = *(longlong *)(unaff_RBP + -0x78);
-      if ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x10000) != 0) {
-        WPP_SF_S_IPV4_d_IPV4_dd
-                  (*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x10,
-                   &WPP_ff5f03a18eb831a6e9acaab9d252ccb7_Traceguids,
-                   *(undefined8 *)(*(longlong *)(lVar9 + 0x1e0) + 0x10),
-                   **(undefined8 **)(*(longlong *)(unaff_RBP + -0x68) + 0x10));
-        sVar10 = *(short *)(unaff_RBP + -0x7e);
-      }
-    }
-    else {
-      if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-         (5 < (byte)WPP_GLOBAL_Control[0x29])) {
-        uVar6 = FUN_1401c4422();
-        return uVar6;
-      }
-LAB_14000d213:
-      lVar9 = *(longlong *)(unaff_RBP + -0x78);
-    }
-    if (auditInformation == '\0') goto LAB_14000d228;
-    iVar3 = *(int *)(unaff_RBP + -0x70);
-    if (sVar10 == 2) {
-      if (iVar3 != 1) goto LAB_14000d398;
-      lVar5 = *(longlong *)(unaff_RBP + -0x50);
-    }
-    else {
-      if ((sVar10 == 0x17) && (iVar3 == 0x3a)) {
-        uVar6 = FUN_1401c449c();
-        return uVar6;
-      }
-LAB_14000d398:
-      lVar5 = *(longlong *)(unaff_RBP + -0x50);
-    }
-    if (sVar10 == 2) {
-      if (iVar3 == 1) {
-        *(ushort *)(unaff_RBP + -0x80) = (ushort)*(byte *)(lVar5 + 4) << 8;
-      }
-    }
-    else if ((sVar10 == 0x17) && (iVar3 == 0x3a)) {
-      uVar6 = FUN_1401c44ad();
-      return uVar6;
-    }
-    uVar8 = 8;
-    lVar9 = *(longlong *)(lVar9 + 0x1e0);
-    uVar2 = *(undefined2 *)(lVar9 + 10);
-    uVar7 = 0x1424;
-  }
-  WfpAleAuditEvent(uVar7,uVar8,*(undefined2 *)(unaff_RBP + -0x60),*(undefined8 *)(lVar9 + 0x10),
-                   uVar2);
-LAB_14000d228:
-  IpNlpDereferenceNextHop(uVar4);
-  IppDereferenceInterface();
-  if ((int)unaff_R12D < 0) {
-    WfpReportStatus(unaff_R12D,"WfpAleAuthorizeSend",0xba0);
-  }
-  return (ulonglong)unaff_R12D;
-}
-

```


## FUN_1401c41b5

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401c41b5|
|fullname|FUN_1401c41b5|
|refcount|1|
|length|344|
|called|WPP_SF_S_IPV4_d_IPV4_dd|
|calling|WfpAleAuthorizeSend|
|paramcount|0|
|address|1401c41b5|
|sig|undefined FUN_1401c41b5(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401c41b5
+++ FUN_1401c41b5
@@ -1,52 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-int FUN_1401c41b5(longlong param_1,undefined8 param_2,short param_3)
-
-{
-  int iVar1;
-  longlong lVar2;
-  longlong lVar3;
-  int unaff_EBX;
-  longlong unaff_RBP;
-  longlong in_R10;
-  
-  lVar2 = *(longlong *)(unaff_RBP + -0x78);
-  if ((*(uint *)(param_1 + 0x2c) & 0x10000) != 0) {
-    WPP_SF_S_IPV4_d_IPV4_dd
-              (*(undefined8 *)(param_1 + 0x18),0xe,&WPP_ff5f03a18eb831a6e9acaab9d252ccb7_Traceguids,
-               *(undefined8 *)(*(longlong *)(lVar2 + 0x1e0) + 0x10),**(undefined8 **)(in_R10 + 0x10)
-              );
-    param_3 = *(short *)(unaff_RBP + -0x7e);
-  }
-  if (DAT_1402308a9 == '\0') goto LAB_14000d228;
-  iVar1 = *(int *)(unaff_RBP + -0x70);
-  if (param_3 == 2) {
-    if (iVar1 != 1) goto LAB_1401c42e6;
-LAB_1401c42d6:
-    lVar3 = *(longlong *)(unaff_RBP + -0x50);
-  }
-  else {
-    if ((param_3 == 0x17) && (iVar1 == 0x3a)) goto LAB_1401c42d6;
-LAB_1401c42e6:
-    lVar3 = *(longlong *)(unaff_RBP + -0x50);
-  }
-  if (param_3 == 2) {
-    if (iVar1 == 1) {
-LAB_1401c4309:
-      *(ushort *)(unaff_RBP + -0x80) = (ushort)*(byte *)(lVar3 + 4) << 8;
-    }
-  }
-  else if ((param_3 == 0x17) && (iVar1 == 0x3a)) goto LAB_1401c4309;
-  lVar2 = *(longlong *)(lVar2 + 0x1e0);
-  WfpAleAuditEvent(0x1425,0x10,*(undefined2 *)(unaff_RBP + -0x60),*(undefined8 *)(lVar2 + 0x10),
-                   *(undefined2 *)(lVar2 + 10));
-LAB_14000d228:
-  IpNlpDereferenceNextHop();
-  IppDereferenceInterface();
-  if (unaff_EBX < 0) {
-    WfpReportStatus(unaff_EBX,"WfpAleAuthorizeSend",0xba0);
-  }
-  return unaff_EBX;
-}
-

```


## FUN_1401c449c

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401c449c|
|fullname|FUN_1401c449c|
|refcount|2|
|length|17|
|called||
|calling|WfpAleAuthorizeSend|
|paramcount|0|
|address|1401c449c|
|sig|undefined FUN_1401c449c(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401c449c
+++ FUN_1401c449c
@@ -1,32 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-ulonglong FUN_1401c449c(undefined8 param_1,int param_2)
-
-{
-  ulonglong uVar1;
-  uint unaff_EBX;
-  longlong unaff_RBP;
-  short in_R10W;
-  longlong unaff_R14;
-  
-  if (in_R10W == 2) {
-    if (param_2 == 1) {
-      *(ushort *)(unaff_RBP + -0x80) = (ushort)*(byte *)(*(longlong *)(unaff_RBP + -0x50) + 4) << 8;
-    }
-  }
-  else if ((in_R10W == 0x17) && (param_2 == 0x3a)) {
-    uVar1 = FUN_1401c44ad();
-    return uVar1;
-  }
-  WfpAleAuditEvent(0x1424,8,*(undefined2 *)(unaff_RBP + -0x60),
-                   *(undefined8 *)(*(longlong *)(unaff_R14 + 0x1e0) + 0x10),
-                   *(undefined2 *)(*(longlong *)(unaff_R14 + 0x1e0) + 10));
-  IpNlpDereferenceNextHop();
-  IppDereferenceInterface();
-  if ((int)unaff_EBX < 0) {
-    WfpReportStatus(unaff_EBX,"WfpAleAuthorizeSend",0xba0);
-  }
-  return (ulonglong)unaff_EBX;
-}
-

```


## FUN_1401c44ad

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401c44ad|
|fullname|FUN_1401c44ad|
|refcount|2|
|length|17|
|called||
|calling|WfpAleAuthorizeSend|
|paramcount|0|
|address|1401c44ad|
|sig|undefined FUN_1401c44ad(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401c44ad
+++ FUN_1401c44ad
@@ -1,46 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-int FUN_1401c44ad(undefined2 param_1)
-
-{
-  longlong lVar1;
-  longlong in_RAX;
-  int unaff_EBX;
-  longlong unaff_RBP;
-  longlong unaff_R14;
-  undefined2 uStack0000000000000038;
-  undefined2 uStack0000000000000048;
-  undefined2 uStack0000000000000050;
-  undefined8 uStack0000000000000058;
-  undefined8 uStack0000000000000060;
-  undefined8 uStack0000000000000068;
-  undefined8 uStack0000000000000070;
-  undefined4 uStack0000000000000078;
-  undefined4 uStack0000000000000080;
-  undefined4 uStack0000000000000088;
-  undefined1 uStack0000000000000090;
-  
-  *(ushort *)(unaff_RBP + -0x80) = (ushort)*(byte *)(in_RAX + 4) << 8;
-  uStack0000000000000090 = *(undefined1 *)(unaff_RBP + -0x7a);
-  lVar1 = *(longlong *)(unaff_R14 + 0x1e0);
-  uStack0000000000000088 = *(undefined4 *)(unaff_RBP + -0x5c);
-  uStack0000000000000080 = *(undefined4 *)(unaff_RBP + -0x58);
-  uStack0000000000000078 = *(undefined4 *)(unaff_RBP + 0x1a0);
-  uStack0000000000000070 = *(undefined8 *)(unaff_RBP + 0x1b0);
-  uStack0000000000000068 = 0;
-  uStack0000000000000060 = 0;
-  uStack0000000000000058 = *(undefined8 *)(lVar1 + 0x20);
-  uStack0000000000000050 = *(undefined2 *)(unaff_R14 + 0x28);
-  uStack0000000000000038 = *(undefined2 *)(unaff_RBP + -0x80);
-  uStack0000000000000048 = param_1;
-  WfpAleAuditEvent(0x1424,8,*(undefined2 *)(unaff_RBP + -0x60),*(undefined8 *)(lVar1 + 0x10),
-                   *(undefined2 *)(lVar1 + 10));
-  IpNlpDereferenceNextHop();
-  IppDereferenceInterface();
-  if (unaff_EBX < 0) {
-    WfpReportStatus(unaff_EBX,"WfpAleAuthorizeSend",0xba0);
-  }
-  return unaff_EBX;
-}
-

```


## FUN_1401c647f

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401c647f|
|fullname|FUN_1401c647f|
|refcount|1|
|length|150|
|called|NETIO.SYS::NetioPhFillUInt16AtOffset|
|calling|IppFragmentPackets|
|paramcount|0|
|address|1401c647f|
|sig|undefined FUN_1401c647f(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401c647f
+++ FUN_1401c647f
@@ -1,185 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-
-void FUN_1401c647f(void)
-
-{
-  longlong *plVar1;
-  ulonglong uVar2;
-  undefined8 *puVar3;
-  bool bVar4;
-  char cVar5;
-  undefined1 uVar6;
-  uint uVar7;
-  uint in_EAX;
-  ushort uVar8;
-  longlong lVar9;
-  undefined2 uVar10;
-  undefined2 uVar11;
-  undefined8 uVar12;
-  longlong unaff_RBX;
-  undefined8 *unaff_RBP;
-  longlong unaff_RSI;
-  longlong unaff_RDI;
-  int iVar13;
-  uint in_R11D;
-  int unaff_R12D;
-  longlong unaff_R13;
-  int unaff_R14D;
-  undefined1 *unaff_R15;
-  undefined8 uStack0000000000000068;
-  
-  iVar13 = *(int *)(*(longlong *)(unaff_RDI + 8) + 0x18) - (in_EAX >> 0x14 & in_R11D);
-  *(short *)(unaff_RDI + 0x11a) = (short)in_EAX;
-  *(longlong *)(unaff_RDI + 0x140) = unaff_R13;
-  *(short *)(unaff_RDI + 0x118) = (short)((iVar13 + -9 + (in_EAX & 0xffff)) / (in_EAX & 0xffff));
-  NetioPhFillUInt16AtOffset
-            (CONCAT22((short)((uint)iVar13 >> 0x10),(ushort)iVar13 >> 8 | (ushort)iVar13 << 8),
-             ((ushort)(in_EAX >> 0x14) & (ushort)in_R11D) + 4);
-  uVar8 = *(ushort *)(*(longlong *)(unaff_RDI + 8) + 0x18);
-  if (unaff_R15 == &Ipv4Global) {
-    uVar12 = 2;
-  }
-  else {
-    uVar8 = uVar8 - *(short *)(unaff_R15 + 0x28);
-    uVar12 = 4;
-  }
-  NetioPhFillUInt16AtOffset(uVar8 >> 8 | uVar8 << 8,uVar12);
-LAB_14002a616:
-  do {
-    if ((Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_featureState & 0x10) == 0)
-    {
-      uVar7 = Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline
-                        ();
-    }
-    else {
-      uVar7 = Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_featureState & 1;
-    }
-    if ((((uVar7 != 0) && (*(int *)(unaff_RDI + 0x140) == 0)) && (*(int *)(unaff_RDI + 0xa0) == 0))
-       && ((unaff_R15 == &Ipv4Global && (cVar5 = KfdAreAllIpv4InLayersEmpty(), cVar5 == '\0')))) {
-      for (puVar3 = *(undefined8 **)(unaff_RDI + 8); puVar3 != (undefined8 *)0x0;
-          puVar3 = (undefined8 *)*puVar3) {
-        Ipv4pFillPacketChecksum(puVar3);
-      }
-    }
-    unaff_R12D = unaff_R12D + 1;
-    *(ulonglong *)(*(longlong *)(unaff_RBX + 8) + 0x110) = (ulonglong)*(uint *)(unaff_RSI + 8);
-    *(longlong *)unaff_RBP[-5] = unaff_RBX;
-    lVar9 = unaff_RBP[-0xc];
-    unaff_RBP[-5] = unaff_RBX;
-    if (lVar9 != 0) goto LAB_14002a595;
-    do {
-      if (unaff_RBP[-6] != 0) {
-        iVar13 = *(int *)(unaff_R15 + 0x4d18);
-        *(undefined4 *)(unaff_RBP + -0x10) = *(undefined4 *)(unaff_RBP + -6);
-        *(undefined4 *)((longlong)unaff_RBP + -0x7c) = *(undefined4 *)((longlong)unaff_RBP + -0x2c);
-        *(undefined4 *)(unaff_RBP + -0xf) = *(undefined4 *)(unaff_RBP + -5);
-        *(undefined4 *)((longlong)unaff_RBP + -0x74) = *(undefined4 *)((longlong)unaff_RBP + -0x24);
-        if (iVar13 == 0) {
-          unaff_RBP[-2] = 0;
-          unaff_RBP[-1] = 0;
-          *unaff_RBP = 0;
-          while (unaff_RBP[-0x10] != 0) {
-            uVar6 = KfRaiseIrql(2);
-            lVar9 = *(longlong *)
-                     (*(longlong *)(unaff_R15 + 0x4ee0) + (ulonglong)SystemReserved1[0x12]._4_4_ * 8
-                     );
-            KeAcquireSpinLockAtDpcLevel(lVar9);
-            plVar1 = (longlong *)(lVar9 + 8);
-            if (unaff_RBP[-0x10] != 0) {
-              **(longlong **)(lVar9 + 0x10) = unaff_RBP[-0x10];
-              *(undefined8 *)(lVar9 + 0x10) = unaff_RBP[-0xf];
-            }
-            unaff_RBP[-0x10] = unaff_R13;
-            unaff_RBP[-0xf] = unaff_RBP + -0x10;
-            if (*(char *)(lVar9 + 0x1c) == '\0') {
-              *(undefined1 *)(lVar9 + 0x1c) = 1;
-              unaff_RBP[-2] = lVar9;
-              unaff_RBP[-1] = unaff_R13;
-              *(undefined1 *)unaff_RBP = uVar6;
-              KeExpandKernelStackAndCalloutEx
-                        (IppLbTransmitStackCallout,unaff_RBP + -2,0x4800,0,
-                         *(undefined8 *)(lVar9 + 0x20));
-              if (*plVar1 != 0) {
-                *(longlong *)unaff_RBP[-0xf] = *plVar1;
-                unaff_RBP[-0xf] = *(undefined8 *)(lVar9 + 0x10);
-              }
-              *plVar1 = unaff_R13;
-              *(longlong **)(lVar9 + 0x10) = plVar1;
-              *(byte *)(lVar9 + 0x1c) = *(byte *)(lVar9 + 0x1c) & 0xfe;
-            }
-            KeReleaseSpinLockFromDpcLevel(lVar9);
-            KeLowerIrql(uVar6);
-          }
-        }
-        else {
-          IppLbEnqueueAdaptiveOrWorkerMode
-                    (*(undefined4 *)(unaff_RBP + -6),unaff_RBP + -0x10,unaff_R12D,unaff_R14D);
-        }
-        lVar9 = unaff_RBP[-0xc];
-      }
-      if (lVar9 == 0) {
-        return;
-      }
-      unaff_RBP[-6] = unaff_R13;
-      unaff_RBP[-5] = unaff_RBP + -6;
-      unaff_R14D = *(int *)(*(longlong *)(lVar9 + 8) + 0xd0);
-LAB_14002a595:
-    } while ((*(int *)(unaff_R15 + 0x4d18) != 0) &&
-            (*(int *)(*(longlong *)(lVar9 + 8) + 0xd0) != unaff_R14D));
-    unaff_RSI = *(longlong *)(*(longlong *)(lVar9 + 0xd8) + 8);
-    *(byte *)(lVar9 + 0xb9) = *(byte *)(lVar9 + 0xb9) & 0xbf;
-    plVar1 = (longlong *)unaff_RBP[-0xc];
-    if (plVar1 != (longlong *)0x0) {
-      unaff_RBP[-0xc] = *plVar1;
-      *plVar1 = unaff_R13;
-      if ((longlong *)unaff_RBP[-0xb] == plVar1) {
-        unaff_RBP[-0xb] = unaff_RBP + -0xc;
-      }
-    }
-    if (DAT_1402375ac < '\0') {
-      memset(unaff_RBP + 2,0,0x80);
-      memset(unaff_RBP + 0x12,0,0x80);
-      uVar11 = (undefined2)unaff_R13;
-      if ((*(int *)(lVar9 + 0x20) == 6) || (*(int *)(lVar9 + 0x20) == 0x11)) {
-        bVar4 = true;
-        uVar10 = *(undefined2 *)(lVar9 + 0xbe);
-      }
-      else {
-        bVar4 = false;
-        uVar10 = uVar11;
-      }
-      INETADDR_SETSOCKADDR
-                (*(undefined2 *)(*(longlong *)(*(longlong *)(lVar9 + 200) + 0x28) + 0x1c),
-                 unaff_RBP + 0x12,lVar9 + 0xe8,0,uVar10);
-      if (bVar4) {
-        uVar11 = *(undefined2 *)(lVar9 + 0xbc);
-      }
-      INETADDR_SETSOCKADDR
-                (*(undefined2 *)(*(longlong *)(*(longlong *)(lVar9 + 200) + 0x28) + 0x1c),
-                 unaff_RBP + 2,**(undefined8 **)(*(longlong *)(lVar9 + 0xe0) + 0x10),0,uVar11);
-      if (DAT_1402375ac < '\0') {
-        SOCKADDR_SIZE(*(undefined2 *)(*(longlong *)(*(longlong *)(lVar9 + 200) + 0x28) + 0x1c));
-        McTemplateK0pqqqbr3br3q_EtwWriteTransfer();
-      }
-    }
-    unaff_RDI = *(longlong *)(lVar9 + 8);
-    uVar2 = *(ulonglong *)(unaff_RDI + 0x90);
-    iVar13 = (int)*(undefined8 *)(unaff_RDI + 0x140);
-    unaff_RBX = lVar9;
-    if ((uVar2 & 4) == 0) {
-      if (((uVar2 & 8) == 0) && (iVar13 == 0)) goto LAB_14002a616;
-      uVar7 = (uint)uVar2 & 0xfffffff4 | 0x110;
-    }
-    else {
-      uVar7 = (uint)uVar2 & 0xfffffff8 | 0x108;
-    }
-    uStack0000000000000068 = CONCAT44((int)(uVar2 >> 0x20),uVar7);
-    *(undefined8 *)(unaff_RDI + 0x90) = uStack0000000000000068;
-    if (iVar13 != 0) {
-      FUN_1401c647f();
-      return;
-    }
-  } while( true );
-}
-

```


## FUN_1401d02ee

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401d02ee|
|fullname|FUN_1401d02ee|
|refcount|4|
|length|40|
|called||
|calling|Ipv6pHandleNeighborSolicitation|
|paramcount|0|
|address|1401d02ee|
|sig|undefined FUN_1401d02ee(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401d02ee
+++ FUN_1401d02ee
@@ -1,97 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x0001401d0384) */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
-/* PDB: Separated code (from the compiler): 1401d02ee - 1401d03be for parent address: 14009bf04 */
-
-void FUN_1401d02ee(longlong param_1,longlong param_2)
-
-{
-  longlong *plVar1;
-  code *pcVar2;
-  undefined1 auVar3 [16];
-  undefined4 uVar4;
-  undefined4 uVar5;
-  int iVar6;
-  longlong lVar7;
-  longlong lVar8;
-  longlong lVar9;
-  undefined4 uVar10;
-  longlong unaff_RBX;
-  longlong unaff_RDI;
-  undefined4 *unaff_R14;
-  undefined4 extraout_XMM0_Da;
-  undefined4 extraout_XMM0_Da_00;
-  undefined4 *puVar11;
-  undefined4 in_stack_00000040;
-  longlong in_stack_00000050;
-  longlong in_stack_00000058;
-  
-  if (param_1 == 0) {
-    if (param_2 == 0) {
-      puVar11 = &stack0x00000040;
-      lVar7 = IppHandleNeighborSolicitation();
-      if (lVar7 != 0) {
-        uVar10 = extraout_XMM0_Da;
-        if ((*(int *)(lVar7 + 0x18) == 1) ||
-           (lVar8 = ExAllocatePool2(0x40,0x48,0x61613649), uVar10 = extraout_XMM0_Da_00, lVar8 == 0)
-           ) {
-          Ipv6pSendNeighborAdvertisement(uVar10,0);
-        }
-        else {
-          *(longlong *)(lVar8 + 0x28) = unaff_RBX;
-          LOCK();
-          plVar1 = (longlong *)(unaff_RBX + 0x40);
-          lVar9 = *plVar1;
-          *plVar1 = *plVar1 + 1;
-          UNLOCK();
-          if (lVar9 + 1 < 2) {
-            pcVar2 = (code *)swi(0x29);
-            (*pcVar2)(0xe);
-            FUN_1401d0316();
-            return;
-          }
-          *(longlong *)(lVar8 + 0x30) = lVar7;
-          CarAcquireCacheAwareReference(*(undefined8 *)(lVar7 + 0x20),1);
-          uVar10 = unaff_R14[1];
-          uVar4 = unaff_R14[2];
-          uVar5 = unaff_R14[3];
-          *(undefined4 *)(lVar8 + 0x38) = *unaff_R14;
-          *(undefined4 *)(lVar8 + 0x3c) = uVar10;
-          *(undefined4 *)(lVar8 + 0x40) = uVar4;
-          *(undefined4 *)(lVar8 + 0x44) = uVar5;
-          TtInitializeTimer(lVar8);
-          auVar3._8_8_ = 0;
-          auVar3._0_8_ = _DAT_fffff78000000008 / 10000;
-          lVar9 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar3,8);
-          IppRandomValue = IppRandomValue * 0x19660d + 0x3c6ef35f;
-          LOCK();
-          UNLOCK();
-          uVar10 = (undefined4)((_DAT_fffff78000000008 / 10000 - lVar9 >> 1) + lVar9 >> 8);
-          iVar6 = TtStartTimerEx(*(undefined8 *)(in_stack_00000050 + 0x2c8),lVar8,uVar10,1,puVar11);
-          if (iVar6 != 0) {
-            IppTimerUpdateNextExpirationTick(uVar10,iVar6);
-          }
-        }
-        IppDereferenceLocalAddress(lVar7);
-        *(undefined4 *)(*(longlong *)(unaff_RDI + 8) + 0x8c) = 0;
-        return;
-      }
-      iVar6 = IppPktMonToIcmpDropReason(in_stack_00000040);
-      if (iVar6 == 0x2c) {
-        return;
-      }
-    }
-    else {
-      iVar6 = 0x15;
-    }
-  }
-  else {
-    iVar6 = 0x20;
-  }
-  *(undefined4 *)(*(longlong *)(unaff_RDI + 8) + 0x8c) = 0xc000021b;
-  LogIcmpReceiveDrop(&Ipv6Global,0x87,*(undefined1 *)(in_stack_00000058 + 1),iVar6,
-                     *(undefined4 *)(*(longlong *)(unaff_RDI + 8) + 0x8c));
-  return;
-}
-

```


## FUN_1401d0316

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401d0316|
|fullname|FUN_1401d0316|
|refcount|2|
|length|169|
|called|CarAcquireCacheAwareReference<br>IppTimerUpdateNextExpirationTick<br>TtInitializeTimer<br>TtStartTimerEx|
|calling|Ipv6pHandleNeighborSolicitation|
|paramcount|0|
|address|1401d0316|
|sig|undefined FUN_1401d0316(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401d0316
+++ FUN_1401d0316
@@ -1,49 +0,0 @@
-
-/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x0001401d0384) */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
-
-void FUN_1401d0316(void)
-
-{
-  undefined1 auVar1 [16];
-  undefined4 uVar2;
-  undefined4 uVar3;
-  undefined4 uVar4;
-  int iVar5;
-  longlong in_RAX;
-  longlong lVar6;
-  ulonglong uVar7;
-  longlong unaff_RBP;
-  longlong unaff_RSI;
-  longlong unaff_RDI;
-  undefined4 *unaff_R14;
-  undefined4 unaff_R15D;
-  longlong in_stack_00000050;
-  
-  *(longlong *)(in_RAX + 0x30) = unaff_RSI;
-  CarAcquireCacheAwareReference(*(undefined8 *)(unaff_RSI + 0x20),unaff_R15D);
-  uVar2 = unaff_R14[1];
-  uVar3 = unaff_R14[2];
-  uVar4 = unaff_R14[3];
-  *(undefined4 *)(unaff_RBP + 0x38) = *unaff_R14;
-  *(undefined4 *)(unaff_RBP + 0x3c) = uVar2;
-  *(undefined4 *)(unaff_RBP + 0x40) = uVar3;
-  *(undefined4 *)(unaff_RBP + 0x44) = uVar4;
-  TtInitializeTimer();
-  uVar7 = _DAT_fffff78000000008 / 10000;
-  auVar1._8_8_ = 0;
-  auVar1._0_8_ = uVar7;
-  lVar6 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar1,8);
-  IppRandomValue = IppRandomValue * 0x19660d + 0x3c6ef35f;
-  LOCK();
-  UNLOCK();
-  iVar5 = TtStartTimerEx(*(undefined8 *)(in_stack_00000050 + 0x2c8));
-  if (iVar5 != 0) {
-    IppTimerUpdateNextExpirationTick((uVar7 - lVar6 >> 1) + lVar6 >> 8 & 0xffffffff,iVar5);
-  }
-  IppDereferenceLocalAddress();
-  *(undefined4 *)(*(longlong *)(unaff_RDI + 8) + 0x8c) = 0;
-  return;
-}
-

```


## FUN_1401d41fa

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401d41fa|
|fullname|FUN_1401d41fa|
|refcount|3|
|length|77|
|called|NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|
|calling|UdpSendMessagesDatagramsComplete|
|paramcount|0|
|address|1401d41fa|
|sig|undefined FUN_1401d41fa(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401d41fa
+++ FUN_1401d41fa
@@ -1,135 +0,0 @@
-
-/* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
-/* PDB: Separated code (from the compiler): 1401d41fa - 1401d4246 for parent address: 1400cac50 */
-
-void FUN_1401d41fa(void)
-
-{
-  longlong lVar1;
-  undefined4 uVar2;
-  longlong *plVar3;
-  undefined8 uVar4;
-  undefined8 *puVar5;
-  undefined8 uVar6;
-  code *pcVar7;
-  undefined8 *puVar8;
-  undefined8 *puVar9;
-  longlong *unaff_RBX;
-  undefined8 *puVar10;
-  undefined8 *unaff_RSI;
-  undefined8 *unaff_RDI;
-  undefined1 unaff_R13B;
-  undefined8 *unaff_R14;
-  longlong unaff_R15;
-  undefined8 uStack_8;
-  
-  do {
-    *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1401d4206;
-    KeReleaseInStackQueuedSpinLock((undefined1 *)((longlong)register0x00000020 + 0x20));
-    do {
-      do {
-        plVar3 = (longlong *)*unaff_RBX;
-        *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cacc0;
-        NetioRestoreNetBuffer(unaff_RBX);
-        puVar10 = *(undefined8 **)unaff_RBX[4];
-        if ((*(uint *)((longlong)unaff_RBX + 0x5c) & 0x40) != 0) {
-          puVar5 = (undefined8 *)*puVar10;
-          *puVar10 = 0;
-          uVar6 = *(undefined8 *)unaff_RBX[4];
-          *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400caddd;
-          IoFreeMdl(uVar6);
-          puVar10 = puVar5;
-        }
-        *(undefined8 *)unaff_RBX[4] = 0;
-        if ((char)*(undefined4 *)((longlong)unaff_RBX + 0x5c) < '\0') {
-          puVar9 = (undefined8 *)*puVar10;
-          puVar5 = (undefined8 *)unaff_RBX[4];
-          while (puVar8 = puVar9, puVar8 != (undefined8 *)0x0) {
-            puVar5 = puVar10;
-            puVar10 = puVar8;
-            puVar9 = (undefined8 *)*puVar8;
-          }
-          *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1401d422c;
-          NetioFreeMdl(puVar10);
-          *puVar5 = 0;
-          unaff_R13B = *(undefined1 *)((longlong)register0x00000020 + 0x80);
-        }
-        if (unaff_RBX != (longlong *)unaff_RSI[1]) {
-          *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cada8;
-          NetioFreeNetBuffer(unaff_RBX,unaff_R13B);
-        }
-        unaff_RBX = plVar3;
-        puVar10 = unaff_RSI;
-      } while (plVar3 != (longlong *)0x0);
-      do {
-        unaff_RSI = unaff_R14;
-        if (*(int *)((longlong)puVar10 + 0x8c) < 0) {
-          *(int *)(unaff_RDI + 6) = *(int *)((longlong)puVar10 + 0x8c);
-        }
-        if ((undefined8 *)unaff_RDI[4] != puVar10) {
-          *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cae56;
-          NetioFreeNetBufferList(puVar10,unaff_R13B);
-        }
-        LOCK();
-        plVar3 = unaff_RDI + 5;
-        lVar1 = *plVar3;
-        *plVar3 = *plVar3 + -1;
-        UNLOCK();
-        if (lVar1 < 2) {
-          if (lVar1 == 1) {
-            pcVar7 = (code *)*unaff_RDI;
-            uVar6 = unaff_RDI[3];
-            uVar2 = *(undefined4 *)(unaff_RDI + 6);
-            uVar4 = unaff_RDI[1];
-            *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cad49;
-            (*pcVar7)(uVar4,uVar2,uVar6);
-            uVar6 = unaff_RDI[4];
-            *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cad58;
-            NetioFreeNetBufferList(uVar6,unaff_R13B);
-            LOCK();
-            plVar3 = (longlong *)(unaff_R15 + 0x10);
-            lVar1 = *plVar3;
-            *plVar3 = *plVar3 + -1;
-            UNLOCK();
-            if (lVar1 < 2) {
-              if (lVar1 != 1) goto LAB_1400cad2d;
-              *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cadc3;
-              UdpCleanupEndpoint(unaff_R15);
-            }
-          }
-          else {
-LAB_1400cad2d:
-            pcVar7 = (code *)swi(0x29);
-            (*pcVar7)(0xe);
-            register0x00000020 = (BADSPACEBASE *)((longlong)register0x00000020 + 8);
-          }
-        }
-        if (unaff_RSI == (undefined8 *)0x0) {
-          return;
-        }
-        unaff_R14 = (undefined8 *)*unaff_RSI;
-        *(undefined8 *)((longlong)register0x00000020 + 0x30) = 0;
-        *(undefined8 *)((longlong)register0x00000020 + 0x20) = 0;
-        *(undefined8 *)((longlong)register0x00000020 + 0x28) = 0;
-        unaff_RBX = (longlong *)unaff_RSI[1];
-        unaff_RDI = *(undefined8 **)
-                     ((ulonglong)*(ushort *)(unaff_RSI[2] + 10) + 0x10 + unaff_RSI[2]);
-        unaff_R15 = unaff_RDI[2];
-        puVar10 = unaff_RSI;
-      } while (unaff_RBX == (longlong *)0x0);
-    } while ((*(longlong *)(unaff_R15 + 0x168) == 0) ||
-            ((*(uint *)(unaff_RSI + 0x10) & 0x10000) == 0));
-    *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cae0c;
-    RtlAcquireWriteLock(unaff_R15,(undefined1 *)((longlong)register0x00000020 + 0x20));
-    lVar1 = *(longlong *)(unaff_R15 + 0x168);
-    if (lVar1 != 0) {
-      uVar6 = unaff_RSI[0x2c];
-      uVar2 = *(undefined4 *)((longlong)unaff_RDI + 0x34);
-      *(undefined8 *)((longlong)register0x00000020 + -8) = 0x1400cae2c;
-      UdpEnqueueTimestamp(lVar1,uVar6,uVar2);
-      FUN_1401d41fa();
-      return;
-    }
-  } while( true );
-}
-

```


## FUN_1401dc320

### Function Meta



|Key|tcpip-06.sys|
| :---: | :---: |
|name|FUN_1401dc320|
|fullname|FUN_1401dc320|
|refcount|6|
|length|10|
|called||
|calling|OlmTryToEnableRscOnInterface|
|paramcount|0|
|address|1401dc320|
|sig|undefined FUN_1401dc320(void)|
|sym_type|Function|
|sym_source|DEFAULT|
|external|False|


```diff
--- FUN_1401dc320
+++ FUN_1401dc320
@@ -1,9 +0,0 @@
-
-/* PDB: Separated code (from the compiler): 1401dc320 - 1401dc341 for parent address: 140110910 */
-
-undefined8 FUN_1401dc320(void)
-
-{
-  return 0xc00000bb;
-}
-

```


# Added

## InetInspectConnectRequest

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|InetInspectConnectRequest|
|fullname|InetInspectConnectRequest|
|refcount|2|
|length|245|
|called|AleInspectConnectRequest<br>McTemplateK0ppqqq_EtwWriteTransfer<br>__security_check_cookie|
|calling|UdpConnectRedirectObsolete|
|paramcount|0|
|address|14002fce0|
|sig|undefined InetInspectConnectRequest(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- InetInspectConnectRequest
+++ InetInspectConnectRequest
@@ -0,0 +1,47 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+
+ulonglong InetInspectConnectRequest
+                    (undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4,
+                    undefined8 param_5,undefined8 param_6,undefined8 param_7,undefined8 param_8,
+                    undefined8 param_9,undefined8 param_10)
+
+{
+  ulonglong uVar1;
+  undefined1 auStack_a8 [32];
+  undefined8 local_88;
+  undefined4 local_80;
+  undefined8 local_78;
+  undefined8 local_70;
+  undefined8 local_68;
+  undefined8 local_60;
+  undefined8 local_58;
+  undefined8 local_50;
+  undefined8 local_48;
+  undefined8 local_40;
+  ulonglong local_38;
+  
+  local_38 = __security_cookie ^ (ulonglong)auStack_a8;
+  local_50 = 0;
+  local_58 = param_10;
+  local_60 = param_9;
+  local_68 = param_7;
+  local_70 = param_6;
+  local_78 = 0;
+  local_88 = param_3;
+  local_80 = param_4;
+  uVar1 = AleInspectConnectRequest(param_5,0,0,param_2);
+  if ((DAT_14022d1d4 != 0) && ((DAT_14023758c & 8) != 0)) {
+    local_70 = CONCAT44(local_70._4_4_,(uint)uVar1);
+    local_40 = 0;
+    local_78 = CONCAT44(local_78._4_4_,~(uint)uVar1 >> 0x1f);
+    local_80 = 0xf;
+    local_88 = param_5;
+    local_48 = param_1;
+    McTemplateK0ppqqq_EtwWriteTransfer
+              (&MICROSOFT_TCPIP_PROVIDER_Context,&INET_INSPECT,&local_48,param_1);
+    uVar1 = uVar1 & 0xffffffff;
+  }
+  return uVar1;
+}
+

```


## IppTranslateTransmitToReceiveNbl

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|IppTranslateTransmitToReceiveNbl|
|fullname|IppTranslateTransmitToReceiveNbl|
|refcount|3|
|length|363|
|called|Ipv4pFillPacketChecksum<br>NETIO.SYS::KfdAreAllIpv4InLayersEmpty<br>NETIO.SYS::NetioPhFillUInt16AtOffset|
|calling|IppFragmentPackets<br>IppLoopbackEnqueue|
|paramcount|0|
|address|14007a270|
|sig|undefined IppTranslateTransmitToReceiveNbl(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- IppTranslateTransmitToReceiveNbl
+++ IppTranslateTransmitToReceiveNbl
@@ -0,0 +1,56 @@
+
+void IppTranslateTransmitToReceiveNbl(undefined1 *param_1,longlong param_2)
+
+{
+  ulonglong uVar1;
+  undefined8 *puVar2;
+  char cVar3;
+  ushort uVar4;
+  undefined8 uVar5;
+  uint uVar6;
+  int iVar7;
+  ulonglong uVar8;
+  undefined8 local_res10;
+  
+  uVar8 = *(ulonglong *)(param_2 + 0x90);
+  uVar1 = *(ulonglong *)(param_2 + 0x140);
+  if ((uVar8 & 4) == 0) {
+    if (((uVar8 & 8) == 0) && ((int)uVar1 == 0)) goto LAB_14007a37b;
+    uVar6 = (uint)uVar8 & 0xfffffff4 | 0x110;
+  }
+  else {
+    uVar6 = (uint)uVar8 & 0xfffffff8 | 0x108;
+  }
+  local_res10 = CONCAT44((int)(uVar8 >> 0x20),uVar6);
+  *(undefined8 *)(param_2 + 0x90) = local_res10;
+  if ((int)uVar1 != 0) {
+    uVar8 = uVar1 >> 0x14 & 0xfff;
+    iVar7 = *(int *)(*(longlong *)(param_2 + 8) + 0x18) - ((uint)uVar8 & 0x3ff);
+    *(short *)(param_2 + 0x11a) = (short)uVar1;
+    *(undefined8 *)(param_2 + 0x140) = 0;
+    *(short *)(param_2 + 0x118) =
+         (short)((ulonglong)(uint)((int)(uVar1 & 0xffff) + iVar7 + -9) / (uVar1 & 0xffff));
+    NetioPhFillUInt16AtOffset
+              (CONCAT22((short)((uint)iVar7 >> 0x10),(ushort)iVar7 >> 8 | (ushort)iVar7 << 8),
+               ((ushort)uVar8 & 0x3ff) + 4);
+    uVar4 = *(ushort *)(*(longlong *)(param_2 + 8) + 0x18);
+    if (param_1 == &Ipv4Global) {
+      uVar5 = 2;
+    }
+    else {
+      uVar4 = uVar4 - *(short *)(param_1 + 0x28);
+      uVar5 = 4;
+    }
+    NetioPhFillUInt16AtOffset(uVar4 >> 8 | uVar4 << 8,uVar5);
+  }
+LAB_14007a37b:
+  if ((((*(int *)(param_2 + 0x140) == 0) && (*(int *)(param_2 + 0xa0) == 0)) &&
+      (param_1 == &Ipv4Global)) && (cVar3 = KfdAreAllIpv4InLayersEmpty(param_2), cVar3 == '\0')) {
+    for (puVar2 = *(undefined8 **)(param_2 + 8); puVar2 != (undefined8 *)0x0;
+        puVar2 = (undefined8 *)*puVar2) {
+      Ipv4pFillPacketChecksum(puVar2);
+    }
+  }
+  return;
+}
+

```


## IppBuildNextHeader

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|IppBuildNextHeader|
|fullname|IppBuildNextHeader|
|refcount|2|
|length|203|
|called|Feature_DPT_K2_IppBuildHeaderCleanup__private_IsEnabledDeviceUsageNoInline<br>NDIS.SYS::NdisAdvanceNetBufferDataStart<br>NDIS.SYS::NdisRetreatNetBufferDataStart<br>NetioGetDataBufferIfSafe<br>_guard_dispatch_icall<br>memmove|
|calling|IppPacketizeDatagramsForHeaderBuild|
|paramcount|0|
|address|1400b5e60|
|sig|undefined IppBuildNextHeader(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- IppBuildNextHeader
+++ IppBuildNextHeader
@@ -0,0 +1,36 @@
+
+/* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
+
+undefined8
+IppBuildNextHeader(undefined4 param_1,undefined8 param_2,longlong param_3,undefined8 param_4,
+                  void *param_5,uint param_6)
+
+{
+  uint uVar1;
+  undefined8 uVar2;
+  void *_Dst;
+  
+  uVar2 = NdisRetreatNetBufferDataStart(param_2,param_6,param_1,0);
+  if (-1 < (int)uVar2) {
+    _Dst = (void *)NetioGetDataBufferIfSafe(param_2,param_6,*(undefined2 *)(param_3 + 0x2a));
+    if (_Dst == (void *)0x0) {
+      if ((Feature_DPT_K2_IppBuildHeaderCleanup__private_featureState & 0x10) == 0) {
+        uVar1 = Feature_DPT_K2_IppBuildHeaderCleanup__private_IsEnabledDeviceUsageNoInline();
+      }
+      else {
+        uVar1 = Feature_DPT_K2_IppBuildHeaderCleanup__private_featureState & 1;
+      }
+      if (uVar1 != 0) {
+        NdisAdvanceNetBufferDataStart(param_2,param_6,1,0);
+      }
+      uVar2 = 0xc000009a;
+    }
+    else {
+      memmove(_Dst,param_5,(ulonglong)param_6);
+      (**(code **)(param_3 + 0x100))(param_4,_Dst,param_2);
+      uVar2 = 0;
+    }
+  }
+  return uVar2;
+}
+

```


## DestroyUdpConnectRedirectCallbackContext

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|DestroyUdpConnectRedirectCallbackContext|
|fullname|DestroyUdpConnectRedirectCallbackContext|
|refcount|3|
|length|61|
|called|NTOSKRNL.EXE::ExFreePoolWithTag|
|calling|ReleaseUdpConnectRedirectCallbackContext<br>UdpConnectRedirectCallbackContinue|
|paramcount|0|
|address|14010f004|
|sig|undefined DestroyUdpConnectRedirectCallbackContext(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- DestroyUdpConnectRedirectCallbackContext
+++ DestroyUdpConnectRedirectCallbackContext
@@ -0,0 +1,11 @@
+
+void DestroyUdpConnectRedirectCallbackContext(longlong param_1)
+
+{
+  if (*(longlong *)(param_1 + 0x18) != 0) {
+    ExFreePoolWithTag(*(longlong *)(param_1 + 0x18),0x74727543);
+  }
+  ExFreePoolWithTag(param_1,0x74727543);
+  return;
+}
+

```


## CreateUdpConnectRedirectCallbackContext

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|CreateUdpConnectRedirectCallbackContext|
|fullname|CreateUdpConnectRedirectCallbackContext|
|refcount|3|
|length|320|
|called|Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline<br>Feature_TCPIP_Stack_Var_To_Heap_Special_Pool__private_IsEnabledDeviceUsageNoInline<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>memmove|
|calling|UdpConnectRedirect<br>UdpConnectRedirectObsolete|
|paramcount|0|
|address|140141040|
|sig|undefined CreateUdpConnectRedirectCallbackContext(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- CreateUdpConnectRedirectCallbackContext
+++ CreateUdpConnectRedirectCallbackContext
@@ -0,0 +1,69 @@
+
+undefined8
+CreateUdpConnectRedirectCallbackContext(undefined8 *param_1,undefined8 *param_2,undefined8 param_3)
+
+{
+  uint uVar1;
+  undefined8 *puVar2;
+  void *_Dst;
+  undefined8 uVar3;
+  
+  *param_1 = 0;
+  if ((Feature_TCPIP_Stack_Var_To_Heap_Special_Pool__private_featureState & 0x10) == 0) {
+    uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Special_Pool__private_IsEnabledDeviceUsageNoInline();
+  }
+  else {
+    uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Special_Pool__private_featureState & 1;
+  }
+  uVar3 = 0x40;
+  if (uVar1 != 0) {
+    uVar3 = 0x100000040;
+  }
+  puVar2 = (undefined8 *)ExAllocatePool2(uVar3,0x128,0x74727543);
+  *param_1 = puVar2;
+  if (puVar2 == (undefined8 *)0x0) {
+LAB_1401410af:
+    uVar3 = 0xc0000017;
+  }
+  else {
+    if (param_2[5] != 0) {
+      _Dst = (void *)ExAllocatePool2(0x42,param_2[5],0x74727543);
+      puVar2 = (undefined8 *)*param_1;
+      puVar2[3] = _Dst;
+      if (_Dst == (void *)0x0) {
+        if (puVar2 != (undefined8 *)0x0) {
+          ExFreePoolWithTag(puVar2,0x74727543);
+          if ((Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 0x10) == 0) {
+            uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline();
+          }
+          else {
+            uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 1;
+          }
+          if (uVar1 == 0) {
+            return 0xc0000017;
+          }
+          *param_1 = 0;
+          return 0xc0000017;
+        }
+        goto LAB_1401410af;
+      }
+      memmove(_Dst,(void *)param_2[4],param_2[5]);
+    }
+    if ((Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 0x10) == 0) {
+      uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline();
+      puVar2 = (undefined8 *)*param_1;
+    }
+    else {
+      uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 1;
+    }
+    if (uVar1 != 0) {
+      *puVar2 = 1;
+    }
+    uVar3 = 0;
+    puVar2[1] = *param_2;
+    puVar2[2] = param_2[1];
+    puVar2[4] = param_3;
+  }
+  return uVar3;
+}
+

```


## wil_details_AreDependenciesEnabled

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|wil_details_AreDependenciesEnabled|
|fullname|wil_details_AreDependenciesEnabled|
|refcount|2|
|length|153|
|called|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|calling|wil_details_GetCurrentFeatureEnabledState|
|paramcount|0|
|address|1401536e8|
|sig|undefined wil_details_AreDependenciesEnabled(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_AreDependenciesEnabled
+++ wil_details_AreDependenciesEnabled
@@ -0,0 +1,46 @@
+
+int wil_details_AreDependenciesEnabled(longlong param_1)
+
+{
+  undefined8 *puVar1;
+  uint uVar2;
+  int iVar3;
+  int iVar4;
+  undefined8 *puVar5;
+  
+  puVar5 = *(undefined8 **)(param_1 + 0x20);
+  iVar3 = 1;
+  iVar4 = iVar3;
+  if (puVar5 != (undefined8 *)0x0) {
+    do {
+      while( true ) {
+        puVar1 = (undefined8 *)*puVar5;
+        if (puVar1 == (undefined8 *)0x0) {
+          return iVar3;
+        }
+        if ((*(char *)((longlong)puVar1 + 0x1e) == '\0') &&
+           (*(char *)((longlong)puVar1 + 0x1d) == '\0')) break;
+        if ((iVar3 == 0) || (*(char *)((longlong)puVar1 + 0x1f) == '\0')) {
+          return 0;
+        }
+        iVar3 = 1;
+        puVar5 = puVar5 + 1;
+      }
+      uVar2 = *(uint *)*puVar1;
+      if ((uVar2 & 2) == 0) {
+        uVar2 = wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+                          ((uint *)*puVar1,uVar2,puVar1);
+      }
+      if ((iVar3 == 0) || ((uVar2 & 1) == 0)) {
+        iVar3 = 0;
+      }
+      else {
+        iVar3 = 1;
+      }
+      puVar5 = puVar5 + 1;
+      iVar4 = 0;
+    } while (iVar3 != 0);
+  }
+  return iVar4;
+}
+

```


## ReleaseUdpConnectRedirectCallbackContext

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|ReleaseUdpConnectRedirectCallbackContext|
|fullname|ReleaseUdpConnectRedirectCallbackContext|
|refcount|2|
|length|43|
|called|DestroyUdpConnectRedirectCallbackContext|
|calling|UdpConnectRedirectCallbackContinue|
|paramcount|0|
|address|1401647a0|
|sig|undefined ReleaseUdpConnectRedirectCallbackContext(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- ReleaseUdpConnectRedirectCallbackContext
+++ ReleaseUdpConnectRedirectCallbackContext
@@ -0,0 +1,23 @@
+
+void ReleaseUdpConnectRedirectCallbackContext(longlong *param_1)
+
+{
+  longlong lVar1;
+  code *pcVar2;
+  
+  LOCK();
+  lVar1 = *param_1;
+  *param_1 = *param_1 + -1;
+  UNLOCK();
+  if (lVar1 < 2) {
+    if (lVar1 == 1) {
+      DestroyUdpConnectRedirectCallbackContext();
+    }
+    else {
+      pcVar2 = (code *)swi(0x29);
+      (*pcVar2)(0xe);
+    }
+  }
+  return;
+}
+

```


## WPP_SF__guid_DD

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|WPP_SF__guid_DD|
|fullname|WPP_SF__guid_DD|
|refcount|2|
|length|97|
|called|_guard_dispatch_icall|
|calling|FseProcessIncomingMessages|
|paramcount|0|
|address|1401bebc4|
|sig|undefined WPP_SF__guid_DD(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- WPP_SF__guid_DD
+++ WPP_SF__guid_DD
@@ -0,0 +1,15 @@
+
+/* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
+
+void WPP_SF__guid_DD(undefined8 param_1,undefined2 param_2,undefined8 param_3,undefined8 param_4)
+
+{
+  undefined4 local_18 [6];
+  
+  local_18[0] = 0x400;
+  (*pfnWppTraceMessage)
+            (param_1,0x2b,&WPP_4bb1603e2f8e3099d0d01551e318f38a_Traceguids,param_2,param_4,0x10,
+             &stack0x00000028,4,local_18,4,0);
+  return;
+}
+

```


## InetWakeRemovePortEntryIfPresent

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|InetWakeRemovePortEntryIfPresent|
|fullname|InetWakeRemovePortEntryIfPresent|
|refcount|3|
|length|46|
|called||
|calling|InetWakeAcquirePortAf<br>InetWakeReleasePortAf|
|paramcount|0|
|address|1401c0dbc|
|sig|undefined InetWakeRemovePortEntryIfPresent(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- InetWakeRemovePortEntryIfPresent
+++ InetWakeRemovePortEntryIfPresent
@@ -0,0 +1,26 @@
+
+void InetWakeRemovePortEntryIfPresent(longlong *param_1)
+
+{
+  longlong *plVar1;
+  longlong *plVar2;
+  code *pcVar3;
+  
+  plVar1 = (longlong *)*param_1;
+  if (plVar1 != param_1) {
+    if (((longlong *)plVar1[1] != param_1) ||
+       (plVar2 = (longlong *)param_1[1], (longlong *)*plVar2 != param_1)) {
+      pcVar3 = (code *)swi(0x29);
+      (*pcVar3)(3);
+      pcVar3 = (code *)swi(3);
+      (*pcVar3)();
+      return;
+    }
+    *plVar2 = (longlong)plVar1;
+    plVar1[1] = (longlong)plVar2;
+    param_1[1] = (longlong)param_1;
+    *param_1 = (longlong)param_1;
+  }
+  return;
+}
+

```


## NETIO.SYS::IoctlEnableAuditMode

### Function Meta



|Key|tcpip-07.sys|
| :---: | :---: |
|name|IoctlEnableAuditMode|
|fullname|NETIO.SYS::IoctlEnableAuditMode|
|refcount|2|
|length|0|
|called||
|calling|KfdDispatchDevCtl|
|paramcount|0|
|address|EXTERNAL:00000208|
|sig|undefined IoctlEnableAuditMode(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|True|


*No code available for NETIO.SYS::IoctlEnableAuditMode*
# Modified


*Modified functions contain code changes*
## IppRemoveAllDiscoveryContexts

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.12|
|i_ratio|0.8|
|m_ratio|0.91|
|b_ratio|0.91|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppRemoveAllDiscoveryContexts|IppRemoveAllDiscoveryContexts|
|fullname|IppRemoveAllDiscoveryContexts|IppRemoveAllDiscoveryContexts|
|refcount|3|3|
|`length`|238|200|
|called|IppUpdateDiscoveryContextHashValue|IppUpdateDiscoveryContextHashValue|
|calling|IppDiscoverPhysicalInterfaceRequestComplete|IppDiscoverPhysicalInterfaceRequestComplete|
|paramcount|0|0|
|`address`|1400c2a34|140070590|
|sig|undefined IppRemoveAllDiscoveryContexts(void)|undefined IppRemoveAllDiscoveryContexts(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppRemoveAllDiscoveryContexts Diff


```diff
--- IppRemoveAllDiscoveryContexts
+++ IppRemoveAllDiscoveryContexts
@@ -1,78 +1,160 @@
-
-/* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 undefined8
-IppRemoveAllDiscoveryContexts
-          (longlong param_1,undefined8 param_2,undefined4 *param_3,longlong param_4)
+IppRemoveAllDiscoveryContexts(longlong param_1,undefined8 param_2,longlong param_3,longlong param_4)
 
 {
-  longlong *plVar1;
-  undefined8 *puVar2;
-  longlong *plVar3;
-  code *pcVar4;
-  undefined4 uVar5;
+  undefined8 *puVar1;
+  longlong *plVar2;
+  code *pcVar3;
+  uint uVar4;
+  longlong *plVar5;
   longlong *plVar6;
-  undefined8 uVar7;
-  int iVar8;
-  ulonglong unaff_RBX;
-  ulonglong uVar9;
+  longlong lVar7;
+  undefined8 uVar8;
+  int iVar9;
+  undefined1 uVar10;
+  undefined1 *puVar11;
   longlong unaff_RBP;
-  longlong *plVar10;
-  longlong unaff_R14;
+  undefined8 unaff_RSI;
+  longlong *plVar12;
+  undefined *unaff_R13;
+  undefined8 unaff_R14;
+  undefined4 uVar13;
+  undefined4 extraout_XMM0_Da;
+  undefined1 auStack_60 [8];
+  undefined1 auStack_58 [16];
   undefined8 local_48;
-  undefined8 uStack_40;
-  undefined4 *local_38;
-  undefined8 uStack_30;
-  undefined8 local_28;
-  undefined8 uStack_20;
-  ulonglong local_18;
+  longlong local_38 [6];
   
-  uStack_30 = 0;
-  local_18 = 0;
-  uVar9 = unaff_RBX & 0xffffffffffffff00;
+  local_38[1] = 0;
+  local_38[4] = 0;
+  uVar10 = 0;
   local_48 = 0;
-  uStack_40 = 0;
-  local_28 = 0;
-  uStack_20 = 0;
-  local_38 = param_3;
-  IppUpdateDiscoveryContextHashValue(&local_38,param_2,&local_48);
-  iVar8 = (int)((local_18 & 0xffffffff) * 0x24924925 >> 0x20);
-  plVar10 = (longlong *)
+  local_38[2] = 0;
+  local_38[3] = 0;
+  local_38[0] = param_3;
+  IppUpdateDiscoveryContextHashValue(local_38,param_2,&local_48);
+  iVar9 = (int)((local_38[4] & 0xffffffffU) * 0x24924925 >> 0x20);
+  plVar12 = (longlong *)
             (param_1 +
-            (ulonglong)((int)local_18 + (((uint)((int)local_18 - iVar8) >> 1) + iVar8 >> 2) * -7) *
-            0x10);
-  plVar1 = (longlong *)*plVar10;
+            (ulonglong)
+            ((int)local_38[4] + (((uint)((int)local_38[4] - iVar9) >> 1) + iVar9 >> 2) * -7) * 0x10)
+  ;
+  plVar6 = (longlong *)*plVar12;
   while( true ) {
     do {
-      plVar6 = plVar1;
-      if (plVar6 == plVar10) {
-        return CONCAT71((int7)((ulonglong)plVar6 >> 8),(char)uVar9);
+      plVar5 = plVar6;
+      if (plVar5 == plVar12) {
+        return CONCAT71((int7)((ulonglong)plVar5 >> 8),uVar10);
       }
-      plVar1 = (longlong *)*plVar6;
-    } while ((undefined4 *)plVar6[2] != param_3);
-    uVar9 = CONCAT71((int7)(uVar9 >> 8),1);
-    if ((char)plVar6[5] != '\0') {
-      if (((longlong *)plVar1[1] != plVar6) ||
-         (puVar2 = (undefined8 *)plVar6[1], (longlong *)*puVar2 != plVar6)) break;
-      *puVar2 = plVar1;
-      plVar1[1] = (longlong)puVar2;
-      *(undefined1 *)(plVar6 + 5) = 0;
+      plVar6 = (longlong *)*plVar5;
+    } while (plVar5[2] != param_3);
+    uVar10 = 1;
+    if ((char)plVar5[5] != '\0') {
+      if (((longlong *)plVar6[1] != plVar5) ||
+         (puVar1 = (undefined8 *)plVar5[1], (longlong *)*puVar1 != plVar5)) break;
+      *puVar1 = plVar6;
+      plVar6[1] = (longlong)puVar1;
+      *(undefined1 *)(plVar5 + 5) = 0;
     }
-    plVar3 = *(longlong **)(param_4 + 8);
-    if (*plVar3 != param_4) break;
-    *plVar6 = param_4;
-    plVar6[1] = (longlong)plVar3;
-    *plVar3 = (longlong)plVar6;
-    *(longlong **)(param_4 + 8) = plVar6;
+    plVar2 = *(longlong **)(param_4 + 8);
+    if (*plVar2 != param_4) break;
+    *plVar5 = param_4;
+    plVar5[1] = (longlong)plVar2;
+    *plVar2 = (longlong)plVar5;
+    *(longlong **)(param_4 + 8) = plVar5;
   }
-  pcVar4 = (code *)swi(0x29);
-  uVar5 = (*pcVar4)(3);
-  *(undefined4 *)(unaff_RBP + -0x10) = uVar5;
-  *(undefined4 *)(unaff_RBP + -8) = *param_3;
-  (**(code **)(*(longlong *)(unaff_R14 + 8) + 8))(unaff_RBP + -0x40);
-  IppDereferenceNsiClientContext();
-  IppDereferenceCompartment(param_3);
-  uVar7 = ExFreePoolWithTag(uVar9,0);
-  return uVar7;
+  pcVar3 = (code *)swi(0x29);
+  (*pcVar3)(3);
+  puVar11 = auStack_60;
+  plVar6 = (longlong *)ExAllocateFromNPagedLookasideList(&EQoSpQoSFlowUnitLookaside);
+  if (plVar6 == (longlong *)0x0) {
+    KeReleaseInStackQueuedSpinLockFromDpcLevel(unaff_RBP + -0x20);
+    if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+        (1 < (byte)WPP_GLOBAL_Control[0x29])) &&
+       ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x40000) != 0)) {
+      WPP_SF_Iq(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0xc);
+    }
+  }
+  else {
+    *plVar6 = 0;
+    plVar6[1] = 0;
+    plVar6[2] = 2;
+    plVar6[4] = 0;
+    lVar7 = *(longlong *)(unaff_RBP + 0x40);
+    plVar6[3] = param_3;
+    plVar12 = *(longlong **)(lVar7 + 8);
+    if (*plVar12 != lVar7) {
+      plVar12 = (longlong *)0x3;
+      pcVar3 = (code *)swi(0x29);
+      lVar7 = (*pcVar3)();
+      puVar11 = auStack_58;
+    }
+    *plVar6 = lVar7;
+    plVar6[1] = (longlong)plVar12;
+    *plVar12 = (longlong)plVar6;
+    *(longlong **)(lVar7 + 8) = plVar6;
+    plVar6[4] = -1;
+    *(undefined8 *)(puVar11 + -8) = 0x1401cbef8;
+    uVar13 = KeReleaseInStackQueuedSpinLockFromDpcLevel(unaff_RBP + -0x20);
+    uVar4 = 0;
+    while (*(uint *)(unaff_RBP + 0x50) = uVar4, uVar4 < 2) {
+      *(undefined8 *)(puVar11 + -8) = 0x1401cbf19;
+      lVar7 = EQoSpCreateQoSFlow(uVar13,param_3);
+      *(undefined8 *)(puVar11 + -8) = 0x1401cbf28;
+      RtlAcquireWriteLockAtDpcLevel(extraout_XMM0_Da,unaff_RBP + -0x20);
+      if ((*(uint *)((longlong)plVar6 + 0x14) & 2) == 0) {
+        if (lVar7 == 0) {
+          plVar6[4] = 0;
+        }
+        else {
+          plVar6[4] = lVar7;
+          *(undefined8 *)(puVar11 + -8) = 0x1401cbfa6;
+          EQoSReferenceQoSFlow(lVar7);
+        }
+        *(undefined8 *)(puVar11 + -8) = 0x1401cbfb1;
+        KeReleaseInStackQueuedSpinLockFromDpcLevel(unaff_RBP + -0x20);
+        uVar8 = FUN_140070858();
+        return uVar8;
+      }
+      *(uint *)((longlong)plVar6 + 0x14) = *(uint *)((longlong)plVar6 + 0x14) & 0xfffffffd;
+      *(undefined8 *)(puVar11 + -8) = 0x1401cbf40;
+      uVar13 = KeReleaseInStackQueuedSpinLockFromDpcLevel(unaff_RBP + -0x20);
+      if (lVar7 != 0) {
+        *(undefined8 *)(puVar11 + -8) = 0x1401cbf52;
+        uVar13 = EQoSDeleteQoSFlow(lVar7);
+      }
+      if (((WPP_GLOBAL_Control != unaff_R13) && (4 < (byte)WPP_GLOBAL_Control[0x29])) &&
+         ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x40000) != 0)) {
+        uVar8 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+        *(undefined4 *)(puVar11 + 0x28) = *(undefined4 *)(unaff_RBP + 0x50);
+        *(undefined8 *)(puVar11 + 0x20) = unaff_R14;
+        *(undefined8 *)(puVar11 + -8) = 0x1401cbf85;
+        uVar13 = WPP_SF_IqD(uVar8);
+      }
+      uVar4 = *(int *)(unaff_RBP + 0x50) + 1;
+    }
+    *(undefined8 *)(puVar11 + -8) = 0x1401cbfc8;
+    RtlAcquireWriteLockAtDpcLevel(uVar13,unaff_RBP + -0x20);
+    plVar6[4] = 0;
+    *(uint *)((longlong)plVar6 + 0x14) = *(uint *)((longlong)plVar6 + 0x14) & 0xfffffffd | 4;
+    *(undefined8 *)(puVar11 + -8) = 0x1401cbfe7;
+    KeReleaseInStackQueuedSpinLockFromDpcLevel(unaff_RBP + -0x20);
+    unaff_RSI = 0xffffffffffffffff;
+    if (((WPP_GLOBAL_Control != unaff_R13) && (2 < (byte)WPP_GLOBAL_Control[0x29])) &&
+       ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x40000) != 0)) {
+      uVar8 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+      *(undefined8 *)(puVar11 + 0x20) = unaff_R14;
+      *(undefined8 *)(puVar11 + -8) = 0x1401cc02b;
+      WPP_SF_Iq(uVar8,0xf);
+      uVar8 = FUN_140070858();
+      return uVar8;
+    }
+    if (plVar6 != (longlong *)0x0) {
+      *(undefined8 *)(puVar11 + -8) = 0x140070845;
+      EQoSpDereferenceFlowUnit(plVar6);
+    }
+  }
+  return unaff_RSI;
 }
 

```


## InetWakeAcquirePortAf

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.24|
|i_ratio|0.45|
|m_ratio|0.86|
|b_ratio|0.45|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|InetWakeAcquirePortAf|InetWakeAcquirePortAf|
|fullname|InetWakeAcquirePortAf|InetWakeAcquirePortAf|
|refcount|3|3|
|`length`|686|913|
|`called`|InetSetInterfacePropertyAf<br>InetWakeLookupPort<br>IsPortWithinRange<br>McTemplateK0qhqqq_EtwWriteTransfer<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>__security_check_cookie<br>memset|<details><summary>Expand for full list:<br>Feature_2930222395__private_IsEnabledDeviceUsageNoInline<br>InetSetInterfacePropertyAf<br>InetWakeLookupPort<br>InetWakeRemovePortEntryIfPresent<br>IsPortWithinRange<br>McTemplateK0qhqqq_EtwWriteTransfer<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>__security_check_cookie</summary>memset</details>|
|calling|InetWakeAcquirePort|InetWakeAcquirePort|
|paramcount|0|0|
|`address`|1401c0424|1401c089c|
|sig|undefined InetWakeAcquirePortAf(void)|undefined InetWakeAcquirePortAf(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### InetWakeAcquirePortAf Called Diff


```diff
--- InetWakeAcquirePortAf called
+++ InetWakeAcquirePortAf called
@@ -0,0 +1 @@
+Feature_2930222395__private_IsEnabledDeviceUsageNoInline
@@ -2,0 +4 @@
+InetWakeRemovePortEntryIfPresent
```


### InetWakeAcquirePortAf Diff


```diff
--- InetWakeAcquirePortAf
+++ InetWakeAcquirePortAf
@@ -1,123 +1,182 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 ulonglong InetWakeAcquirePortAf
                     (ushort param_1,longlong param_2,undefined8 *param_3,longlong param_4)
 
 {
   longlong *plVar1;
   code *pcVar2;
   char cVar3;
   uint uVar4;
-  longlong lVar5;
-  longlong *plVar6;
-  ulonglong uVar7;
-  undefined4 uVar8;
-  undefined1 auStack_188 [32];
-  undefined4 local_168;
-  undefined1 *local_160;
+  uint uVar5;
+  longlong lVar6;
+  longlong *plVar7;
+  ulonglong uVar8;
+  undefined4 uVar9;
+  undefined1 auStack_178 [32];
   undefined4 local_158;
-  undefined4 local_150;
-  undefined1 local_148;
-  undefined1 local_138 [36];
-  ushort local_114;
-  undefined4 local_110;
-  undefined4 local_70;
-  undefined4 local_68;
-  ulonglong local_58;
+  undefined1 *local_150;
+  undefined4 local_148;
+  undefined4 local_140;
+  undefined1 local_138;
+  longlong local_130;
+  undefined1 local_128 [36];
+  ushort local_104;
+  undefined4 local_100;
+  undefined4 local_60;
+  undefined4 local_58;
+  ulonglong local_48;
   
-  local_58 = __security_cookie ^ (ulonglong)auStack_188;
-  uVar8 = 0;
-  uVar4 = 0;
-  local_148 = KeAcquireSpinLockRaiseToDpc(param_4);
-  lVar5 = InetWakeLookupPort(param_1,param_2,param_3,param_4);
-  if (lVar5 == 0) {
-    plVar6 = (longlong *)ExAllocatePool2(0x40,0x30,0x50576e49);
-    if (plVar6 == (longlong *)0x0) {
-      uVar4 = 0xc0000017;
+  local_48 = __security_cookie ^ (ulonglong)auStack_178;
+  uVar9 = 0;
+  uVar5 = 0;
+  local_130 = param_2;
+  local_138 = KeAcquireSpinLockRaiseToDpc(param_4);
+  lVar6 = InetWakeLookupPort(param_1,param_2,param_3,param_4);
+  if (lVar6 == 0) {
+    plVar7 = (longlong *)ExAllocatePool2(0x40,0x30,0x50576e49);
+    if (plVar7 == (longlong *)0x0) {
+      uVar5 = 0xc0000017;
     }
     else {
-      *(undefined4 *)(plVar6 + 2) = 1;
-      *(ushort *)(plVar6 + 3) = param_1;
-      plVar6[4] = param_2;
-      plVar6[5] = (longlong)param_3;
+      *(undefined4 *)(plVar7 + 2) = 1;
+      if ((Feature_2930222395__private_featureState & 0x10) == 0) {
+        uVar4 = Feature_2930222395__private_IsEnabledDeviceUsageNoInline();
+      }
+      else {
+        uVar4 = Feature_2930222395__private_featureState & 1;
+      }
+      if (uVar4 != 0) {
+        *(undefined4 *)((longlong)plVar7 + 0x14) = 0;
+      }
       plVar1 = (longlong *)(param_4 + 0x10);
-      lVar5 = *plVar1;
-      if (*(longlong **)(lVar5 + 8) != plVar1) goto LAB_0;
-      *plVar6 = lVar5;
-      plVar6[1] = (longlong)plVar1;
-      *(longlong **)(lVar5 + 8) = plVar6;
-      *plVar1 = (longlong)plVar6;
+      *(ushort *)((longlong)plVar7 + 0x1c) = param_1;
+      plVar7[4] = param_2;
+      plVar7[5] = (longlong)param_3;
+      lVar6 = *plVar1;
+      if (*(longlong **)(lVar6 + 8) != plVar1) goto LAB_0;
+      *plVar7 = lVar6;
+      plVar7[1] = (longlong)plVar1;
+      *(longlong **)(lVar6 + 8) = plVar7;
+      *plVar1 = (longlong)plVar7;
       cVar3 = IsPortWithinRange(param_1,param_4 + 0x20);
       if (cVar3 == '\0') {
-        *(int *)(plVar6 + 2) = (int)plVar6[2] + 1;
+        if ((Feature_2930222395__private_featureState & 0x10) == 0) {
+          uVar5 = Feature_2930222395__private_IsEnabledDeviceUsageNoInline();
+        }
+        else {
+          uVar5 = Feature_2930222395__private_featureState & 1;
+        }
+        if (uVar5 == 0) {
+          *(int *)(plVar7 + 2) = (int)plVar7[2] + 1;
+        }
+        else {
+          *(undefined4 *)((longlong)plVar7 + 0x14) = 1;
+        }
         KeReleaseSpinLock(param_4);
-        memset(local_138,0,0xd8);
-        local_110 = *(undefined4 *)(param_4 + 8);
-        local_160 = local_138;
-        local_158 = 0xd8;
-        local_168 = 0;
-        local_70 = 3;
-        local_114 = param_1;
-        uVar4 = InetSetInterfacePropertyAf(param_2,param_3,0,0x12);
-        local_148 = KeAcquireSpinLockRaiseToDpc(param_4);
-        plVar1 = plVar6 + 2;
-        *(int *)plVar1 = (int)*plVar1 + -1;
-        if ((int)*plVar1 == 0) {
-          if (-1 < (int)uVar4) {
-            KeReleaseSpinLock(param_4,local_148);
-            local_160 = local_138;
-            local_158 = 0xd8;
-            local_168 = 0;
+        memset(local_128,0,0xd8);
+        local_100 = *(undefined4 *)(param_4 + 8);
+        local_150 = local_128;
+        local_148 = 0xd8;
+        local_158 = 0;
+        local_60 = 3;
+        local_104 = param_1;
+        uVar5 = InetSetInterfacePropertyAf(param_2,param_3,0,0x12);
+        local_138 = KeAcquireSpinLockRaiseToDpc(param_4);
+        if ((Feature_2930222395__private_featureState & 0x10) == 0) {
+          uVar4 = Feature_2930222395__private_IsEnabledDeviceUsageNoInline();
+        }
+        else {
+          uVar4 = Feature_2930222395__private_featureState & 1;
+        }
+        if (uVar4 == 0) {
+          plVar1 = plVar7 + 2;
+          *(int *)plVar1 = (int)*plVar1 + -1;
+          if ((int)*plVar1 == 0) {
+            if (-1 < (int)uVar5) {
+              KeReleaseSpinLock(param_4,local_138);
+              local_150 = local_128;
+              local_148 = 0xd8;
+              local_158 = 0;
+              InetSetInterfacePropertyAf(param_2,param_3,0,0x13);
+              lVar6 = *plVar7;
+              if ((*(longlong **)(lVar6 + 8) != plVar7) ||
+                 (plVar1 = (longlong *)plVar7[1], (longlong *)*plVar1 != plVar7))
+              goto LAB_0;
+              *plVar1 = lVar6;
+              *(longlong **)(lVar6 + 8) = plVar1;
+LAB_1:
+              ExFreePoolWithTag(plVar7,0);
+              goto LAB_2;
+            }
+          }
+          else {
+LAB_3:
+            if (-1 < (int)uVar5) {
+              *(undefined4 *)(plVar7 + 3) = local_58;
+              goto LAB_4;
+            }
+          }
+        }
+        else {
+          *(undefined4 *)((longlong)plVar7 + 0x14) = 0;
+          if ((int)plVar7[2] != 0) goto LAB_3;
+          if (-1 < (int)uVar5) {
+            KeReleaseSpinLock(param_4,local_138);
+            local_150 = local_128;
+            local_148 = 0xd8;
+            local_158 = 0;
             InetSetInterfacePropertyAf(param_2,param_3,0,0x13);
-            lVar5 = *plVar6;
-            if ((*(longlong **)(lVar5 + 8) != plVar6) ||
-               (plVar1 = (longlong *)plVar6[1], (longlong *)*plVar1 != plVar6)) goto LAB_0;
-            *plVar1 = lVar5;
-            *(longlong **)(lVar5 + 8) = plVar1;
-            ExFreePoolWithTag(plVar6,0);
             goto LAB_1;
           }
         }
-        else if (-1 < (int)uVar4) {
-          *(undefined4 *)((longlong)plVar6 + 0x14) = local_68;
-          goto LAB_2;
+        if ((Feature_2930222395__private_featureState & 0x10) == 0) {
+          uVar4 = Feature_2930222395__private_IsEnabledDeviceUsageNoInline();
         }
-        lVar5 = *plVar6;
-        if ((*(longlong **)(lVar5 + 8) != plVar6) ||
-           (plVar1 = (longlong *)plVar6[1], (longlong *)*plVar1 != plVar6)) {
+        else {
+          uVar4 = Feature_2930222395__private_featureState & 1;
+        }
+        if (uVar4 == 0) {
+          lVar6 = *plVar7;
+          if ((*(longlong **)(lVar6 + 8) != plVar7) ||
+             (plVar1 = (longlong *)plVar7[1], (longlong *)*plVar1 != plVar7)) {
 LAB_0:
-          pcVar2 = (code *)swi(0x29);
-          (*pcVar2)(3);
-          pcVar2 = (code *)swi(3);
-          uVar7 = (*pcVar2)();
-          return uVar7;
+            pcVar2 = (code *)swi(0x29);
+            (*pcVar2)(3);
+            pcVar2 = (code *)swi(3);
+            uVar8 = (*pcVar2)();
+            return uVar8;
+          }
+          *plVar1 = lVar6;
+          *(longlong **)(lVar6 + 8) = plVar1;
         }
-        *plVar1 = lVar5;
-        *(longlong **)(lVar5 + 8) = plVar1;
-        ExFreePoolWithTag(plVar6,0);
+        else {
+          InetWakeRemovePortEntryIfPresent(plVar7);
+        }
+        ExFreePoolWithTag(plVar7,0);
       }
     }
   }
   else {
-    *(int *)(lVar5 + 0x10) = *(int *)(lVar5 + 0x10) + 1;
+    *(int *)(lVar6 + 0x10) = *(int *)(lVar6 + 0x10) + 1;
   }
+LAB_4:
+  KeReleaseSpinLock(param_4,local_138);
 LAB_2:
-  KeReleaseSpinLock(param_4,local_148);
-LAB_1:
   if ((Microsoft_Windows_TCPIPEnableBits & 8) != 0) {
     if (param_3 == (undefined8 *)0x0) {
-      local_150 = 0;
+      local_140 = 0;
     }
     else {
-      uVar8 = *(undefined4 *)(param_3 + 1);
-      local_150 = *(undefined4 *)*param_3;
+      uVar9 = *(undefined4 *)(param_3 + 1);
+      local_140 = *(undefined4 *)*param_3;
     }
-    local_160 = (undefined1 *)CONCAT44(local_160._4_4_,(uint)*(ushort *)(param_2 + 0x18));
-    local_168 = CONCAT22(local_168._2_2_,param_1 >> 8 | param_1 << 8);
-    local_158 = uVar8;
+    local_150 = (undefined1 *)CONCAT44(local_150._4_4_,(uint)*(ushort *)(local_130 + 0x18));
+    local_158 = CONCAT22(local_158._2_2_,param_1 >> 8 | param_1 << 8);
+    local_148 = uVar9;
     McTemplateK0qhqqq_EtwWriteTransfer();
   }
-  return (ulonglong)uVar4;
+  return (ulonglong)uVar5;
 }
 

```


## IppNotifyMfeChangeWorker

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.82|
|i_ratio|0.79|
|m_ratio|0.99|
|b_ratio|0.99|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppNotifyMfeChangeWorker|IppNotifyMfeChangeWorker|
|fullname|IppNotifyMfeChangeWorker|IppNotifyMfeChangeWorker|
|refcount|4|4|
|`length`|289|281|
|`called`|IppDereferenceCompartment<br>IppDereferenceNsiClientContext<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoFreeWorkItem<br>_guard_dispatch_icall<br>memset|FUN_1401dfb22<br>IppDereferenceCompartment<br>IppDereferenceNsiClientContext<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoFreeWorkItem<br>_guard_dispatch_icall<br>memset|
|calling|||
|paramcount|0|0|
|`address`|1400c3140|14012ea30|
|sig|undefined IppNotifyMfeChangeWorker(void)|undefined IppNotifyMfeChangeWorker(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppNotifyMfeChangeWorker Called Diff


```diff
--- IppNotifyMfeChangeWorker called
+++ IppNotifyMfeChangeWorker called
@@ -0,0 +1 @@
+FUN_1401dfb22
```


### IppNotifyMfeChangeWorker Diff


```diff
--- IppNotifyMfeChangeWorker
+++ IppNotifyMfeChangeWorker
@@ -1,49 +1,51 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 void IppNotifyMfeChangeWorker(undefined8 param_1,undefined8 *param_2)
 
 {
   undefined4 *puVar1;
   undefined1 *puVar2;
   undefined8 *puVar3;
   undefined8 local_48;
   undefined2 local_40;
   undefined4 local_30;
   undefined4 local_28;
   int *local_20;
-  int local_18;
+  undefined4 local_18;
   undefined4 local_14;
   undefined4 local_10;
   
   memset(&local_48,0,0x40);
   puVar1 = (undefined4 *)param_2[1];
   puVar2 = *(undefined1 **)(puVar1 + 10);
   puVar3 = *(undefined8 **)(puVar2 + 0x4c48);
   IoFreeWorkItem(*param_2);
   local_48 = *puVar3;
   local_40 = 0x17;
   local_20 = (int *)(param_2 + 2);
   local_30 = 0;
   local_28 = 1;
   local_14 = 0;
   if (puVar2 == &Ipv4Global) {
     local_18 = 0x148;
-    if ((*local_20 != 1) || (*(uint *)((longlong)param_2 + 0x14) < 0x15)) goto LAB_0;
-    local_18 = *(uint *)((longlong)param_2 + 0x14) << 4;
+    if ((*local_20 == 1) && (0x14 < *(uint *)((longlong)param_2 + 0x14))) {
+      FUN_1401dfb22();
+      return;
+    }
   }
   else {
     local_18 = 0x328;
-    if ((*local_20 != 1) || (*(uint *)((longlong)param_2 + 0x14) < 0x15)) goto LAB_0;
-    local_18 = *(uint *)((longlong)param_2 + 0x14) * 0x28;
+    if ((*local_20 == 1) && (0x14 < *(uint *)((longlong)param_2 + 0x14))) {
+      FUN_1401dfb22();
+      return;
+    }
   }
-  local_18 = local_18 + 8;
-LAB_0:
   local_10 = *puVar1;
   (**(code **)(puVar3[1] + 8))(&local_48);
   IppDereferenceNsiClientContext(puVar2);
   IppDereferenceCompartment(puVar1);
   ExFreePoolWithTag(param_2,0);
   return;
 }
 

```


## FlpSetIpAddress

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.98|
|i_ratio|0.53|
|m_ratio|0.97|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlpSetIpAddress|FlpSetIpAddress|
|fullname|FlpSetIpAddress|FlpSetIpAddress|
|refcount|2|2|
|`length`|856|810|
|`called`|Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>FlpFlushQueuedPmRemoveOids<br>FlpSetAddressWolPattern<br>FlpSetArpNDOffload<br>FlpTryToEnqueuePmRemoveOid<br>McTemplateK0qqqq_EtwWriteTransfer<br>NETIO.SYS::NetioNcmActiveReferenceRequest|FlpFlushQueuedPmRemoveOids<br>FlpSetAddressWolPattern<br>FlpSetArpNDOffload<br>FlpTryToEnqueuePmRemoveOid<br>McTemplateK0qqqq_EtwWriteTransfer<br>NETIO.SYS::NetioNcmActiveReferenceRequest|
|calling|FlSetInterface|FlSetInterface|
|paramcount|0|0|
|`address`|14014b29c|14014ac2c|
|sig|undefined FlpSetIpAddress(void)|undefined FlpSetIpAddress(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlpSetIpAddress Called Diff


```diff
--- FlpSetIpAddress called
+++ FlpSetIpAddress called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### FlpSetIpAddress Diff


```diff
--- FlpSetIpAddress
+++ FlpSetIpAddress
@@ -1,131 +1,125 @@
 
 int FlpSetIpAddress(longlong param_1)
 
 {
   short sVar1;
   longlong lVar2;
   longlong lVar3;
   uint uVar4;
   int iVar5;
   int iVar6;
   undefined8 uVar7;
   undefined8 uVar8;
   bool bVar9;
   undefined8 local_res10;
   
   iVar6 = 0;
   lVar2 = *(longlong *)(param_1 + 0x28);
   iVar5 = -0x3fffffff;
   local_res10 = 0;
   lVar3 = *(longlong *)(*(longlong *)(param_1 + 0x10) + 0x48);
   sVar1 = *(short *)(*(longlong *)(lVar3 + 0x20) + 0x5c);
   if (((*(uint *)(lVar3 + 0x4a4) & 0x400) == 0) || (*(int *)(lVar3 + 0x138) != 0)) {
     return -0x3fffffff;
   }
   if (*(int *)(param_1 + 0x1c) == 3) {
     if ((*(uint *)(lVar3 + 0x328) & 1) == 0) {
       if (sVar1 == 2) {
         uVar4 = *(uint *)(lVar3 + 0x33c) & 1;
       }
       else {
         uVar4 = *(uint *)(lVar3 + 0x33c) & 2;
       }
       if (uVar4 == 0) {
         return -0x3fffff45;
       }
     }
     if ((*(byte *)(lVar2 + 0x30) & 1) == 0) {
       if (sVar1 == 2) {
         uVar4 = *(uint *)(lVar3 + 0x33c) & 1;
       }
       else {
         uVar4 = *(uint *)(lVar3 + 0x33c) & 2;
       }
       if (uVar4 == 0) {
         return -0x3fffff45;
       }
     }
     iVar5 = NetioNcmActiveReferenceRequest(*(undefined8 *)(lVar3 + 0x440),10,3,0,&local_res10);
     if ((iVar5 < 0) && ((DAT_0 & 2) != 0)) {
       McTemplateK0qqqq_EtwWriteTransfer
                 (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_ACTIVE_REF_FAILURE,
                  &MICROSOFT_TCPIP_PROVIDER,0,*(undefined4 *)(lVar3 + 0x448),3,iVar5);
     }
-    if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-      Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
     if ((*(uint *)(lVar3 + 0xc4) & 0xc) == 0) {
       FlpFlushQueuedPmRemoveOids(lVar3);
       if (sVar1 == 2) {
         uVar4 = *(uint *)(lVar3 + 0x33c) & 1;
       }
       else {
         uVar4 = *(uint *)(lVar3 + 0x33c) & 2;
       }
       if (uVar4 != 0) {
         iVar6 = FlpSetArpNDOffload(lVar3,sVar1,0xfd01010d,lVar2);
       }
       if ((*(byte *)(lVar2 + 0x30) & 1) != 0) {
         if (sVar1 == 2) {
           uVar4 = *(uint *)(lVar3 + 0x33c) & 1;
         }
         else {
           uVar4 = *(uint *)(lVar3 + 0x33c) & 2;
         }
         if (((uVar4 == 0) || (iVar6 < 0)) &&
            (iVar6 = FlpSetAddressWolPattern(lVar3,sVar1,0xfd01010a,lVar2), -1 < iVar6)) {
           *(byte *)(lVar2 + 0x30) = *(byte *)(lVar2 + 0x30) | 2;
         }
       }
     }
     else {
       iVar6 = -0x3ffeffef;
     }
   }
   else {
     if (*(int *)(param_1 + 0x1c) != 4) {
       return 0;
-    }
-    if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-      Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
     }
     bVar9 = ((byte)*(undefined4 *)(lVar3 + 0xc4) & 0xc) != 4;
     if (*(int *)(lVar2 + 0x34) == 0) {
       return 0;
     }
     if (((bVar9) &&
         (iVar5 = NetioNcmActiveReferenceRequest(*(undefined8 *)(lVar3 + 0x440),10,3,0,&local_res10),
         iVar5 < 0)) && ((DAT_0 & 2) != 0)) {
       McTemplateK0qqqq_EtwWriteTransfer
                 (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_ACTIVE_REF_FAILURE,
                  &MICROSOFT_TCPIP_PROVIDER,0,*(undefined4 *)(lVar3 + 0x448),3,iVar5);
     }
     if ((*(byte *)(lVar2 + 0x30) & 2) == 0) {
       if (bVar9) {
         iVar6 = FlpSetArpNDOffload(lVar3,sVar1,0xfd01010f,lVar2);
         goto LAB_1;
       }
       uVar8 = 1;
       uVar7 = 0xfd01010f;
     }
     else {
       if (bVar9) {
         iVar6 = FlpSetAddressWolPattern(lVar3,sVar1,0xfd01010b,lVar2);
         goto LAB_1;
       }
       uVar8 = 0;
       uVar7 = 0xfd01010b;
     }
     iVar6 = FlpTryToEnqueuePmRemoveOid(lVar3,uVar7,*(undefined4 *)(lVar2 + 0x34),uVar8);
   }
 LAB_1:
   if (((-1 < iVar5) &&
       (iVar5 = NetioNcmActiveReferenceRequest(*(undefined8 *)(lVar3 + 0x440),10,3,1,&local_res10),
       iVar5 < 0)) && ((DAT_0 & 2) != 0)) {
     McTemplateK0qqqq_EtwWriteTransfer
               (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_ACTIVE_REF_FAILURE,&MICROSOFT_TCPIP_PROVIDER
                ,1,*(undefined4 *)(lVar3 + 0x448),3,iVar5);
   }
   return iVar6;
 }
 

```


## FlpMulticastListSet

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.95|
|i_ratio|0.62|
|m_ratio|0.98|
|b_ratio|0.9|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlpMulticastListSet|FlpMulticastListSet|
|fullname|FlpMulticastListSet|FlpMulticastListSet|
|refcount|3|3|
|`length`|654|634|
|`called`|Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>FlpCoalesceMulticastSet<br>FlpNdisRequestUnderReference<br>FlpPCFLogEvent<br>NDIS.SYS::NdisAcquireRWLockRead<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>_guard_dispatch_icall|FlpCoalesceMulticastSet<br>FlpNdisRequestUnderReference<br>FlpPCFLogEvent<br>NDIS.SYS::NdisAcquireRWLockRead<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>_guard_dispatch_icall|
|calling|FlpSerializedNdisAddGroupWorker<br>FlpSerializedNdisDeleteGroupWorker|FlpSerializedNdisAddGroupWorker<br>FlpSerializedNdisDeleteGroupWorker|
|paramcount|0|0|
|`address`|1401209dc|1401028bc|
|sig|undefined FlpMulticastListSet(void)|undefined FlpMulticastListSet(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlpMulticastListSet Called Diff


```diff
--- FlpMulticastListSet called
+++ FlpMulticastListSet called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### FlpMulticastListSet Diff


```diff
--- FlpMulticastListSet
+++ FlpMulticastListSet
@@ -1,93 +1,90 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 undefined8 FlpMulticastListSet(longlong param_1)
 
 {
   byte bVar1;
   uint uVar2;
   int iVar3;
   longlong lVar4;
   undefined8 uVar5;
   bool bVar6;
   undefined2 local_res8;
   undefined1 local_resa;
   uint local_res10 [2];
   
   bVar1 = *(byte *)(param_1 + 0x48a);
+  local_res8 = 0;
+  iVar3 = 0;
+  local_resa = 0;
   lVar4 = 0;
-  local_res8 = 0;
-  local_resa = 0;
-  iVar3 = 0;
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
   if ((*(uint *)(param_1 + 0xc4) & 8) != 0) {
     return 0xc0000056;
   }
   bVar6 = true;
   if ((*(uint *)(param_1 + 0x3d0) & 1) != 0) {
     (**(code **)(*(longlong *)(param_1 + 0x20) + 0x278))(param_1,2);
   }
   NdisAcquireRWLockRead(*(undefined8 *)(param_1 + 0x28),&local_res8,0);
   uVar2 = *(uint *)(param_1 + 0x148);
   if ((*(int *)(param_1 + 0x3ac) == 0) || (*(uint *)(param_1 + 0x140) < uVar2)) {
     bVar6 = false;
   }
   else if (uVar2 != 0) {
     lVar4 = FlpCoalesceMulticastSet(param_1,bVar1);
     bVar6 = lVar4 != 0;
   }
   NdisReleaseRWLock(*(undefined8 *)(param_1 + 0x28),&local_res8);
   if ((bVar6) &&
      (iVar3 = FlpNdisRequestUnderReference
                         (param_1,0,1,*(undefined4 *)(param_1 + 0x3ac),lVar4,bVar1 * uVar2,0),
      uVar2 != 0)) {
     ExFreePoolWithTag(lVar4,0);
   }
   if ((*(uint *)(param_1 + 0x3d0) & 1) == 0) {
 LAB_0:
     if ((bVar6) && (-1 < iVar3)) goto LAB_1;
   }
   else {
     if ((*(uint *)(param_1 + 0x140) < uVar2) || (!bVar6)) {
 LAB_2:
       FlpPCFLogEvent(param_1,0x800010c2,iVar3,uVar2);
       goto LAB_0;
     }
     if (-1 < iVar3) goto LAB_1;
     if ((*(uint *)(param_1 + 0xc4) & 4) == 0) goto LAB_2;
   }
   if (uVar2 != 0) {
     if (*(int *)(param_1 + 0x13c) != 0) {
       return 0;
     }
     if ((*(uint *)(param_1 + 0x4a8) & 0x24) != 0) {
       *(undefined4 *)(param_1 + 0x13c) = 1;
       return 0;
     }
     local_res10[0] = *(uint *)(param_1 + 0x4a8) | 4;
     *(undefined4 *)(param_1 + 0x13c) = 4;
     uVar5 = FlpNdisRequestUnderReference(param_1,0,1,0x1010e,local_res10,4,0);
     if (-1 < (int)uVar5) {
       return uVar5;
     }
     local_res10[0] = *(uint *)(param_1 + 0x4a8) | 0x20;
     *(undefined4 *)(param_1 + 0x13c) = 0x20;
     uVar5 = FlpNdisRequestUnderReference(param_1,0,1,0x1010e,local_res10,4,0);
     if ((int)uVar5 < 0) {
       *(undefined4 *)(param_1 + 0x13c) = 0;
       return uVar5;
     }
     return uVar5;
   }
 LAB_1:
   if (((*(uint *)(param_1 + 0x13c) & 0x10024) != 0) &&
      (((*(uint *)(param_1 + 0x4a8) & *(uint *)(param_1 + 0x13c)) != 0 ||
       (iVar3 = FlpNdisRequestUnderReference(param_1,0,1,0x1010e,(uint *)(param_1 + 0x4a8),4,0),
       -1 < iVar3)))) {
     *(undefined4 *)(param_1 + 0x13c) = 0;
   }
   return 0;
 }
 

```


## WfpAleAuthorizeSend

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.26|
|i_ratio|0.2|
|m_ratio|0.76|
|b_ratio|0.24|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WfpAleAuthorizeSend|WfpAleAuthorizeSend|
|fullname|WfpAleAuthorizeSend|WfpAleAuthorizeSend|
|`refcount`|3|2|
|`length`|2150|3362|
|`called`|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleGetTickCount<br>FUN_1401c418a<br>FUN_1401c41b5<br>FUN_1401c4422<br>FUN_1401c449c<br>FUN_1401c44ad<br>Feature_Localhost_ConnectRedirect_BugFixes_25B__private_IsEnabledDeviceUsageNoInline<br>IpNlpDereferenceNextHop<br>IpNlpReferenceNextHop<br>IppDereferenceInterface</summary>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>WfpAcquireSpinLock<br>WfpAleAuditEvent<br>WfpAleHandleSendCompletion<br>WfpAleInsertEndpoint<br>WfpAlepAuthTelemetry<br>WfpAlepAuthorizeSend<br>WfpReleaseSpinLock<br>WfpReportStatus<br>__security_check_cookie<br>memset</details>|<details><summary>Expand for full list:<br>IpNlpDereferenceNextHop<br>IpNlpReferenceNextHop<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoQueueWorkItem<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>NTOSKRNL.EXE::KeQueryInterruptTimePrecise<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>WPP_SF_S_IPV4_d_IPV4_dd<br>WPP_SF_S_IPV6_d_IPV6_dd</summary>WPP_SF_sD<br>WPP_SF_sDd<br>WfpAcquireSpinLock<br>WfpAleAuditEvent<br>WfpAleHandleSendCompletion<br>WfpAleInsertEndpoint<br>WfpAlepAuthTelemetry<br>WfpAlepAuthorizeSend<br>__security_check_cookie<br>memset</details>|
|calling|WfpAleConnectAcceptIndicate|WfpAleConnectAcceptIndicate|
|paramcount|0|0|
|`address`|14000cd50|140039090|
|sig|undefined WfpAleAuthorizeSend(void)|undefined WfpAleAuthorizeSend(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WfpAleAuthorizeSend Called Diff


```diff
--- WfpAleAuthorizeSend called
+++ WfpAleAuthorizeSend called
@@ -1,8 +0,0 @@
-AleAcquireEndpointLockEx
-AleGetTickCount
-FUN_1401c418a
-FUN_1401c41b5
-FUN_1401c4422
-FUN_1401c449c
-FUN_1401c44ad
-Feature_Localhost_ConnectRedirect_BugFixes_25B__private_IsEnabledDeviceUsageNoInline
@@ -11 +3 @@
-IppDereferenceInterface
+NTOSKRNL.EXE::ExAllocatePool2
@@ -12,0 +5,4 @@
+NTOSKRNL.EXE::IoQueueWorkItem
+NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock
+NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx
+NTOSKRNL.EXE::KeQueryInterruptTimePrecise
@@ -13,0 +10,4 @@
+WPP_SF_S_IPV4_d_IPV4_dd
+WPP_SF_S_IPV6_d_IPV6_dd
+WPP_SF_sD
+WPP_SF_sDd
@@ -20,2 +19,0 @@
-WfpReleaseSpinLock
-WfpReportStatus
```


### WfpAleAuthorizeSend Diff


```diff
--- WfpAleAuthorizeSend
+++ WfpAleAuthorizeSend
@@ -1,478 +1,589 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
-ulonglong WfpAleAuthorizeSend(longlong param_1,short param_2,int param_3,longlong param_4,
-                             ushort param_5,uint *param_6,ushort param_7,undefined8 *param_8,
-                             longlong param_9,undefined4 param_10,undefined1 param_11,
-                             longlong param_12,undefined4 param_13,undefined4 param_14,
-                             undefined8 param_15,undefined8 param_16,undefined8 param_17,
-                             undefined4 *param_18,longlong *param_19,char *param_20)
+int WfpAleAuthorizeSend(longlong param_1,short param_2,int param_3,longlong param_4,ushort param_5,
+                       uint *param_6,ushort param_7,undefined8 *param_8,longlong param_9,
+                       undefined4 param_10,undefined1 param_11,longlong param_12,undefined4 param_13
+                       ,undefined4 param_14,undefined8 param_15,undefined8 param_16,
+                       undefined8 param_17,undefined4 *param_18,longlong *param_19,char *param_20)
 
 {
   longlong *plVar1;
   char cVar2;
   ushort uVar3;
   uint uVar4;
-  int iVar5;
-  longlong lVar6;
-  undefined8 uVar7;
-  undefined8 *puVar8;
-  code *pcVar9;
-  short sVar10;
-  uint uVar11;
+  undefined8 *puVar5;
+  undefined8 uVar6;
+  int *piVar7;
+  code *pcVar8;
+  uint *puVar9;
+  longlong lVar10;
+  int iVar11;
   undefined8 uVar12;
-  longlong lVar13;
-  ulonglong uVar14;
-  longlong lVar15;
-  undefined8 uVar16;
+  char *pcVar13;
+  char *pcVar14;
+  undefined8 uVar15;
+  int iVar16;
   undefined *puVar17;
-  undefined1 *puVar18;
-  longlong lVar19;
+  longlong lVar18;
+  undefined1 *puVar19;
   ushort uVar20;
-  bool bVar21;
-  undefined4 uVar22;
+  longlong lVar21;
+  ushort uVar22;
+  longlong lVar23;
+  bool bVar24;
+  undefined8 uStack_390;
   undefined1 auStack_388 [8];
-  undefined1 auStack_380 [232];
-  ushort local_298;
-  short local_296;
-  ushort local_294;
-  undefined1 local_292;
-  char local_291;
-  longlong local_290;
+  undefined1 auStack_380 [24];
+  int aiStack_368 [52];
+  undefined1 local_298;
+  ushort uStack_296;
+  char cStack_294;
+  char cStack_293;
+  ushort uStack_292;
+  uint *local_290;
   int local_288;
   longlong local_280;
   undefined4 local_278;
   undefined4 local_274;
-  undefined4 local_270 [2];
+  ulonglong local_270;
   undefined8 *local_268;
   longlong local_260;
-  undefined4 local_258;
-  undefined4 local_254;
-  char *local_250;
-  undefined8 local_248;
-  undefined4 local_240;
-  undefined4 local_23c;
-  uint *local_238;
+  longlong local_258;
+  longlong *local_250;
+  char *local_248;
+  undefined8 local_240;
+  longlong local_238;
   undefined4 local_230;
   undefined4 local_22c;
-  undefined8 local_228;
-  undefined8 local_220;
+  uint *local_228;
+  undefined4 local_220;
+  undefined4 local_21c;
   undefined8 local_218;
   undefined4 *local_210;
   undefined8 local_208;
   undefined8 uStack_200;
   undefined8 local_1f8;
   undefined8 local_1f0;
   undefined8 uStack_1e8;
   undefined8 local_1e0;
   undefined1 local_1d8 [12];
   undefined4 local_1cc;
   undefined8 local_1c8;
   code *local_1c0;
   undefined8 local_1b8;
   undefined8 local_1b0;
   undefined4 *local_1a8;
   int *local_1a0;
   undefined *local_198;
   undefined8 local_190;
   undefined1 local_188;
   char local_187;
   longlong local_100;
   ushort local_f8;
   uint local_f6;
   uint uStack_f2;
   uint uStack_ee;
   uint uStack_ea;
   ushort local_e6;
   undefined8 local_e4;
   longlong local_d8;
   undefined4 local_d0;
   undefined8 local_c8;
   longlong local_98;
   undefined1 local_90;
   longlong local_88;
   ulonglong local_78 [4];
   undefined8 local_58;
   ulonglong local_50;
   
-  puVar18 = auStack_388;
+  puVar19 = auStack_388;
   local_50 = __security_cookie ^ (ulonglong)auStack_388;
-  local_298 = param_5;
-  local_294 = param_7;
+  uStack_296 = param_5;
+  local_290 = param_6;
+  uStack_292 = param_7;
+  local_298 = param_11;
+  local_258 = param_12;
+  local_240 = param_15;
+  local_210 = param_18;
+  local_250 = param_19;
   local_268 = param_8;
-  local_292 = param_11;
-  local_260 = param_12;
-  local_254 = param_13;
-  local_258 = param_14;
-  local_218 = param_16;
-  local_220 = param_17;
-  local_210 = param_18;
-  local_250 = param_20;
+  local_248 = param_20;
+  local_238 = param_9;
+  local_21c = 0;
   local_22c = 0;
-  local_23c = 0;
-  local_248 = param_15;
   local_78[0] = (ulonglong)(uint)local_78[0];
-  local_291 = '\0';
-  local_296 = param_2;
-  local_290 = param_1;
+  cStack_294 = '\0';
+  local_270 = 0;
+  uVar12 = _DAT_0;
   local_288 = param_3;
   local_280 = param_4;
-  uVar12 = AleGetTickCount(DAT_0 != 0);
-  local_270[0] = 0;
+  local_260 = param_1;
+  if (DAT_1 != 0) {
+    uVar12 = KeQueryInterruptTimePrecise();
+  }
   local_274 = 0;
+  local_278 = 0;
   memset(local_1d8,0,0x158);
-  local_1cc = 4;
   local_1c8 = 0;
   local_1b0 = 0;
   local_1b8 = 0;
   local_100 = local_280;
-  local_f8 = local_298;
-  if (local_296 == 2) {
-    local_f6 = *param_6;
+  local_f8 = uStack_296;
+  local_1cc = 4;
+  if (param_2 == 2) {
+    local_f6 = *local_290;
   }
   else {
-    local_f6 = *param_6;
-    uStack_f2 = param_6[1];
-    uStack_ee = param_6[2];
-    uStack_ea = param_6[3];
-  }
-  local_e6 = local_294;
+    local_f6 = *local_290;
+    uStack_f2 = local_290[1];
+    uStack_ee = local_290[2];
+    uStack_ea = local_290[3];
+  }
+  local_e6 = uStack_292;
   if (local_268 != (undefined8 *)0x0) {
     local_e4 = *local_268;
   }
-  local_d8 = param_9;
+  local_d8 = local_238;
   LOCK();
-  plVar1 = (longlong *)(param_9 + 0x98);
-  lVar13 = *plVar1;
+  plVar1 = (longlong *)(local_238 + 0x98);
+  lVar23 = *plVar1;
   *plVar1 = *plVar1 + 1;
   UNLOCK();
-  if (lVar13 + 1 < 2) {
-    pcVar9 = (code *)swi(0x29);
-    (*pcVar9)(0xe);
-    puVar18 = auStack_380;
-  }
-  local_c8 = param_15;
-  *(undefined8 *)(puVar18 + -8) = 0x14000cef4;
-  IpNlpReferenceNextHop(param_15);
-  sVar10 = local_296;
-  local_98 = local_260;
+  if (lVar23 + 1 < 2) {
+    pcVar8 = (code *)swi(0x29);
+    (*pcVar8)(0xe);
+    puVar19 = auStack_380;
+  }
+  local_c8 = local_240;
+  *(undefined8 *)(puVar19 + -8) = 0x140039264;
+  IpNlpReferenceNextHop(local_240);
+  local_98 = local_258;
   local_1c0 = WfpAlepAuthorizeSendCompletion;
   local_d0 = param_10;
   local_90 = 0;
   local_188 = 1;
-  if (local_296 == 2) {
+  if (param_2 == 2) {
+    local_220 = 3;
+    local_1a0 = &DAT_2;
+    puVar17 = &DAT_3;
+    local_270 = CONCAT44(local_270._4_4_,0x30);
+    local_1a8 = &DAT_4;
+    local_198 = &DAT_5;
+    uVar4 = *(uint *)**(undefined8 **)(local_280 + 0x10);
+    local_218 = CONCAT44(local_218._4_4_,
+                         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
+                         uVar4 << 0x18);
     local_230 = 3;
-    local_1a0 = &DAT_1;
-    puVar17 = &DAT_2;
-    local_278 = 0x30;
-    local_1a8 = &DAT_3;
-    local_198 = &DAT_4;
-    uVar11 = *(uint *)**(undefined8 **)(local_280 + 0x10);
-    uVar4 = *param_6;
-    local_238 = (uint *)CONCAT44(local_238._4_4_,
+    uVar4 = *local_290;
+    local_228 = (uint *)CONCAT44(local_228._4_4_,
                                  uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 |
                                  uVar4 << 0x18);
-    local_228 = CONCAT44(local_228._4_4_,
-                         uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |
-                         uVar11 << 0x18);
-    local_240 = 3;
   }
   else {
+    local_220 = 0xb;
+    local_270 = CONCAT62(local_270._2_6_,0x32);
+    puVar17 = &DAT_6;
+    local_1a0 = &DAT_7;
+    local_1a8 = &DAT_8;
+    local_198 = &DAT_9;
+    local_218 = **(undefined8 **)(local_280 + 0x10);
+    local_228 = local_290;
     local_230 = 0xb;
-    local_278 = CONCAT22(local_278._2_2_,0x32);
-    puVar17 = &DAT_5;
-    local_1a0 = &DAT_6;
-    local_1a8 = &DAT_7;
-    local_198 = &DAT_8;
-    local_228 = **(undefined8 **)(local_280 + 0x10);
-    local_240 = 0xb;
-    local_238 = param_6;
-  }
-  *(undefined8 *)(puVar18 + -8) = 0x14000cf9a;
+  }
+  *(undefined8 *)(puVar19 + -8) = 0x140039355;
   local_190 = uVar12;
-  WfpAleInsertEndpoint(local_290);
-  *(undefined4 **)(puVar18 + 0xe8) = &local_274;
+  WfpAleInsertEndpoint(local_260);
+  lVar10 = local_260;
+  iVar11 = local_288;
+  *(undefined4 **)(puVar19 + 0xe8) = &local_278;
+  uVar20 = uStack_292;
+  uVar22 = uStack_296;
   local_58 = 0;
-  *(undefined4 **)(puVar18 + 0xe0) = local_270;
-  lVar13 = *(longlong *)(local_280 + 8);
-  *(char **)(puVar18 + 0xd8) = &local_291;
-  *(char **)(puVar18 + 0xd0) = local_250;
-  *(longlong **)(puVar18 + 200) = param_19;
-  *(ulonglong **)(puVar18 + 0xc0) = local_78;
-  *(undefined8 *)(puVar18 + 0xb8) = local_220;
-  *(undefined8 *)(puVar18 + 0xb0) = local_218;
-  *(undefined8 *)(puVar18 + 0xa8) = param_15;
-  *(undefined4 *)(puVar18 + 0xa0) = local_258;
-  *(undefined4 *)(puVar18 + 0x98) = local_254;
-  *(undefined1 **)(puVar18 + 0x90) = local_1d8;
-  *(longlong *)(puVar18 + 0x88) = local_260;
-  puVar18[0x80] = local_292;
-  *(undefined4 *)(puVar18 + 0x78) = param_10;
-  *(longlong *)(puVar18 + 0x70) = param_9;
-  *(undefined8 **)(puVar18 + 0x68) = local_268;
-  *(ushort *)(puVar18 + 0x60) = local_294;
-  *(undefined4 **)(puVar18 + 0x58) = &local_240;
-  *(uint **)(puVar18 + 0x50) = param_6;
+  *(undefined4 **)(puVar19 + 0xe0) = &local_274;
+  lVar23 = *(longlong *)(local_280 + 8);
+  *(char **)(puVar19 + 0xd8) = &cStack_294;
+  *(char **)(puVar19 + 0xd0) = local_248;
+  *(longlong **)(puVar19 + 200) = local_250;
+  *(ulonglong **)(puVar19 + 0xc0) = local_78;
+  *(undefined8 *)(puVar19 + 0xb8) = param_17;
+  *(undefined8 *)(puVar19 + 0xb0) = param_16;
+  *(undefined8 *)(puVar19 + 0xa8) = local_240;
+  *(undefined4 *)(puVar19 + 0xa0) = param_14;
+  *(undefined4 *)(puVar19 + 0x98) = param_13;
+  *(undefined1 **)(puVar19 + 0x90) = local_1d8;
+  *(longlong *)(puVar19 + 0x88) = local_258;
+  puVar19[0x80] = local_298;
+  *(undefined4 *)(puVar19 + 0x78) = param_10;
+  *(longlong *)(puVar19 + 0x70) = local_238;
+  *(undefined8 **)(puVar19 + 0x68) = local_268;
+  *(ushort *)(puVar19 + 0x60) = uStack_292;
+  *(undefined4 **)(puVar19 + 0x58) = &local_230;
+  *(uint **)(puVar19 + 0x50) = local_290;
   local_78[0] = 0;
   local_78[1] = 0;
   local_78[2] = 0;
   local_78[3] = 0;
-  *(undefined8 *)(puVar18 + 0x48) = *(undefined8 *)(lVar13 + 0x10);
-  puVar18[0x40] = *(undefined1 *)(local_280 + 0x18);
-  *(ushort *)(puVar18 + 0x38) = local_298;
-  *(undefined4 **)(puVar18 + 0x30) = &local_230;
-  *(longlong *)(puVar18 + 0x28) = local_280;
-  *(int *)(puVar18 + 0x20) = local_288;
-  *(undefined8 *)(puVar18 + -8) = 0x14000d0c7;
-  lVar13 = WfpAlepAuthorizeSend(local_290,(undefined2)local_278,puVar17,sVar10);
+  *(undefined8 *)(puVar19 + 0x48) = *(undefined8 *)(lVar23 + 0x10);
+  puVar19[0x40] = *(undefined1 *)(local_280 + 0x18);
+  *(ushort *)(puVar19 + 0x38) = uStack_296;
+  *(undefined4 **)(puVar19 + 0x30) = &local_220;
+  *(longlong *)(puVar19 + 0x28) = local_280;
+  *(int *)(puVar19 + 0x20) = local_288;
+  *(undefined8 *)(puVar19 + -8) = 0x140039489;
+  local_260 = WfpAlepAuthorizeSend(local_260,local_270 & 0xffff,puVar17,param_2);
+  plVar1 = local_250;
   *local_210 = (undefined4)local_58;
-  if (local_187 != '\0') {
-LAB_9:
-    lVar6 = *param_19;
-    if (lVar6 == 0) {
+  cStack_293 = local_187;
+  if (local_187 == '\0') {
+    if (((*local_250 == 0) || (*local_248 != '\0')) ||
+       ((*(uint *)(*local_250 + 0x30) >> 0xf & 1) == 0)) {
+      if (local_260 == 0) goto LAB_10;
+      goto LAB_11;
+    }
+    iVar16 = -0x3fffffde;
+  }
+  else {
 LAB_10:
-      uVar11 = (uint)lVar13;
-      if (local_187 == '\0') goto LAB_11;
-    }
-    else {
+    lVar23 = *local_250;
+    uVar22 = uStack_296;
+    if (lVar23 != 0) {
+      lVar21 = 0;
+      pcVar13 = (char *)0x0;
       local_1f8 = 0;
       local_208 = 0;
       uStack_200 = 0;
-      *(undefined8 *)(puVar18 + -8) = 0x14000d12d;
-      AleAcquireEndpointLockEx(lVar6,&local_208,"WfpAleAuthorizeSend");
-      if ((Feature_Localhost_ConnectRedirect_BugFixes_25B__private_featureState & 0x10) == 0) {
-        *(undefined8 *)(puVar18 + -8) = 0x14000d26b;
-        uVar11 = Feature_Localhost_ConnectRedirect_BugFixes_25B__private_IsEnabledDeviceUsageNoInline
-                           ();
-      }
-      else {
-        uVar11 = Feature_Localhost_ConnectRedirect_BugFixes_25B__private_featureState & 1;
-      }
-      if (uVar11 == 0) {
-        if (((*(uint *)(local_290 + 0x30) & 0x10) == 0) &&
-           ((*(int *)(local_290 + 0x28) != 0x11 && ((*(uint *)(local_290 + 0x34) & 0x2000) != 0))))
-        goto LAB_12;
-joined_r0x0001401c417f:
-        if (local_260 != 0) goto LAB_12;
-      }
-      else {
-        if ((((*(uint *)(local_290 + 0x30) & 0x10) != 0) ||
-            (iVar5 = *(int *)(local_290 + 0x28), iVar5 == 0x11)) ||
-           ((iVar5 == 1 || ((iVar5 == 0x3a || ((*(uint *)(local_290 + 0x34) & 0x2000) == 0))))))
-        goto joined_r0x0001401c417f;
+      if (gAleDebugEnabled != '\0') {
+        lVar18 = 0x14;
+        *(undefined8 *)(puVar19 + -8) = 0x140039602;
+        pcVar13 = (char *)ExAllocatePool2(0x40,0x14,0x4c656c41);
+        if (pcVar13 == (char *)0x0) {
+          lVar21 = -0x3fffffe9;
+          if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+              (1 < (byte)WPP_GLOBAL_Control[0x29])) &&
+             ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) != 0)) {
+            uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+            *(undefined4 *)(puVar19 + 0x20) = 0xc0000017;
+            *(undefined8 *)(puVar19 + -8) = 0x14003965c;
+            WPP_SF_sD(uVar12,10,&WPP_dc97c17fd6903ad537f842808d057dba_Traceguids,"ExAllocatePool2");
+          }
+          if ((((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
+              ((byte)WPP_GLOBAL_Control[0x29] < 2)) ||
+             ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) == 0)) {
+            lVar21 = -0x3fffffe9;
+          }
+          else {
+            uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+            *(undefined4 *)(puVar19 + 0x20) = 0xc0000017;
+            *(undefined8 *)(puVar19 + -8) = 0x1400396a3;
+            WPP_SF_sD(uVar12,0xf,&WPP_dc97c17fd6903ad537f842808d057dba_Traceguids,
+                      "WfpPoolAllocNonPaged");
+          }
+        }
+        else {
+          lVar21 = 0;
+          pcVar14 = pcVar13;
+          do {
+            if (lVar18 == -0x7fffffea) {
 LAB_12:
+              *pcVar14 = '\0';
+              goto LAB_13;
+            }
+            if (pcVar14[(longlong)"WfpAleAuthorizeSend" - (longlong)pcVar13] == '\0') {
+              if (lVar18 != 0) goto LAB_12;
+              break;
+            }
+            *pcVar14 = pcVar14[(longlong)"WfpAleAuthorizeSend" - (longlong)pcVar13];
+            pcVar14 = pcVar14 + 1;
+            lVar18 = lVar18 + -1;
+          } while (lVar18 != 0);
+          pcVar14[-1] = '\0';
+          if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+              (1 < (byte)WPP_GLOBAL_Control[0x29])) &&
+             ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) != 0)) {
+            uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+            *(undefined4 *)(puVar19 + 0x20) = 0x8007007a;
+            *(undefined8 *)(puVar19 + -8) = 0x140039748;
+            WPP_SF_sD(uVar12,0xd,&WPP_dc97c17fd6903ad537f842808d057dba_Traceguids,"StringCchCopyA");
+          }
+          if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+              (1 < (byte)WPP_GLOBAL_Control[0x29])) &&
+             ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) != 0)) {
+            uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+            *(undefined4 *)(puVar19 + 0x20) = 0x8007007a;
+            *(undefined8 *)(puVar19 + -8) = 0x140039787;
+            WPP_SF_sD(uVar12,0xf,&WPP_dc97c17fd6903ad537f842808d057dba_Traceguids,
+                      "WfpStringCchCopyA");
+          }
+        }
+      }
+LAB_13:
+      *(undefined8 *)(puVar19 + -8) = 0x14003979a;
+      KeAcquireInStackQueuedSpinLock(lVar23,&local_208);
+      do {
+      } while (*(int *)(lVar23 + 8) != 0);
+      bVar24 = gAleDebugEnabled == '\x01';
+      *(void **)(lVar23 + 0x10) = SystemReserved1[0xf];
+      if ((bVar24) && (lVar21 == 0)) {
+        *(char **)(lVar23 + 0x18) = pcVar13;
+      }
+      if ((((((*(uint *)(lVar10 + 0x30) & 0x10) == 0) &&
+            (iVar11 = *(int *)(lVar10 + 0x28), iVar11 != 0x11)) && (iVar11 != 1)) &&
+          ((iVar11 != 0x3a && ((*(uint *)(lVar10 + 0x34) >> 0xd & 1) != 0)))) || (local_258 != 0)) {
         LOCK();
-        *(uint *)(*param_19 + 0x34) = *(uint *)(*param_19 + 0x34) | 0x2000;
+        *(uint *)(*plVar1 + 0x34) = *(uint *)(*plVar1 + 0x34) | 0x2000;
         UNLOCK();
-        if (local_260 != 0) {
-          if (local_250 == (char *)0x0) {
-            if (*(longlong *)(*param_19 + 0x1c0) == 0) {
-              uVar14 = FUN_1401c418a();
-              return uVar14;
-            }
+        if (((local_258 != 0) &&
+            ((local_248 != (char *)0x0 || (*(longlong *)(*plVar1 + 0x1c0) == 0)))) &&
+           ((*(int *)(lVar23 + 0x28) == 6 && ((*(uint *)(lVar23 + 0x30) & 0x10) == 0)))) {
+          *(longlong *)(*plVar1 + 0x1c0) = local_258;
+          LOCK();
+          *(int *)(local_258 + 0x1f0) = *(int *)(local_258 + 0x1f0) + 1;
+          UNLOCK();
+        }
+      }
+      lVar21 = *plVar1;
+      lVar18 = 0;
+      bVar24 = gAleDebugEnabled == '\x01';
+      *(undefined8 *)(lVar21 + 0x10) = 0;
+      if (bVar24) {
+        lVar18 = *(longlong *)(lVar21 + 0x18);
+        *(undefined8 *)(lVar21 + 0x18) = 0;
+      }
+      *(undefined8 *)(puVar19 + -8) = 0x14003986d;
+      KeReleaseInStackQueuedSpinLock(&local_208);
+      if ((gAleDebugEnabled == '\x01') && (lVar18 != 0)) {
+        *(undefined8 *)(puVar19 + -8) = 0x14003988c;
+        ExFreePoolWithTag(lVar18,0);
+      }
+      LOCK();
+      *(uint *)(lVar23 + 0x34) = *(uint *)(lVar23 + 0x34) | 0x80;
+      UNLOCK();
+      iVar11 = local_288;
+      uVar22 = uStack_296;
+      uVar20 = uStack_292;
+      if ((cStack_293 != '\0') && (cStack_294 == '\0')) {
+        local_1e0 = 0;
+        local_1f0 = 0;
+        uStack_1e8 = 0;
+        *(undefined8 *)(puVar19 + -8) = 0x1400398cd;
+        WfpAcquireSpinLock(local_88,&local_1f0);
+        bVar24 = gWfpPerProContext != 0;
+        cVar2 = *(char *)(local_88 + 0x148);
+        *(longlong *)(local_88 + 0x10) = *plVar1;
+        if (bVar24) {
+          *(undefined8 *)(puVar19 + -8) = 0x1400398ef;
+          iVar11 = KeGetCurrentProcessorNumberEx(0);
+          piVar7 = *(int **)((ulonglong)(uint)(iVar11 * 0x48) + gWfpPerProContext);
+          if (*piVar7 == 4) {
+            *piVar7 = 0;
           }
-          else if ((*(int *)(lVar6 + 0x28) == 6) && ((*(uint *)(lVar6 + 0x30) & 0x10) == 0)) {
-            *(longlong *)(*param_19 + 0x1c0) = local_260;
-            LOCK();
-            *(int *)(local_260 + 0x1f0) = *(int *)(local_260 + 0x1f0) + 1;
-            UNLOCK();
-          }
-        }
-      }
-      lVar19 = *param_19;
-      lVar15 = 0;
-      bVar21 = gAleDebugEnabled == '\x01';
-      *(undefined8 *)(lVar19 + 0x10) = 0;
-      if (bVar21) {
-        lVar15 = *(longlong *)(lVar19 + 0x18);
-        *(undefined8 *)(lVar19 + 0x18) = 0;
-      }
-      *(undefined8 *)(puVar18 + -8) = 0x14000d192;
-      KeReleaseInStackQueuedSpinLock(&local_208);
-      if ((gAleDebugEnabled == '\x01') && (lVar15 != 0)) {
-        *(undefined8 *)(puVar18 + -8) = 0x14000d46b;
-        ExFreePoolWithTag(lVar15,0);
-      }
-      LOCK();
-      *(uint *)(lVar6 + 0x34) = *(uint *)(lVar6 + 0x34) | 0x80;
-      UNLOCK();
-      param_15 = local_248;
-      if ((local_187 == '\0') || (local_291 != '\0')) goto LAB_10;
-      local_1e0 = 0;
-      local_1f0 = 0;
-      uStack_1e8 = 0;
-      *(undefined8 *)(puVar18 + -8) = 0x14000d49f;
-      uVar22 = WfpAcquireSpinLock(local_88,&local_1f0);
-      cVar2 = *(char *)(local_88 + 0x148);
-      *(longlong *)(local_88 + 0x10) = *param_19;
-      *(undefined8 *)(puVar18 + -8) = 0x14000d4b6;
-      WfpReleaseSpinLock(uVar22,&local_1f0);
-      param_15 = local_248;
-      if (cVar2 == '\0') goto LAB_10;
-      uVar12 = *(undefined8 *)(local_88 + 0x10);
-      *(undefined8 *)(puVar18 + -8) = 0x14000d4ca;
-      WfpAleHandleSendCompletion(local_88,uVar12);
-    }
-    uVar14 = 0x103;
-    goto LAB_13;
-  }
-  if (((*param_19 == 0) || (*local_250 != '\0')) || ((*(uint *)(*param_19 + 0x30) >> 0xf & 1) == 0))
-  {
-    if (lVar13 == 0) goto LAB_9;
-    goto LAB_10;
-  }
-  uVar11 = 0xc0000022;
+        }
+        *(undefined8 *)(puVar19 + -8) = 0x14003991b;
+        KeReleaseInStackQueuedSpinLock(&local_1f0);
+        iVar11 = local_288;
+        uVar22 = uStack_296;
+        uVar20 = uStack_292;
+        if (cVar2 != '\0') {
+          uVar12 = *(undefined8 *)(local_88 + 0x10);
+          *(undefined8 *)(puVar19 + -8) = 0x140039931;
+          WfpAleHandleSendCompletion(local_88,uVar12);
+          iVar16 = 0x103;
+          goto LAB_14;
+        }
+      }
+    }
 LAB_11:
-  *(undefined8 *)(puVar18 + -8) = 0x14000d1d6;
+    iVar16 = (int)local_260;
+    if (cStack_293 != '\0') {
+      iVar16 = 0x103;
+      goto LAB_14;
+    }
+  }
+  *(undefined8 *)(puVar19 + -8) = 0x1400394ee;
   WfpAlepAuthTelemetry(local_1d8,0,0,5);
-  lVar6 = local_280;
-  lVar13 = local_290;
+  puVar9 = local_290;
   if ((uint)local_78[0] == 0x1001) {
     LOCK();
     *local_1a0 = *local_1a0 + 1;
     UNLOCK();
     if (*(int *)(local_280 + 0x18) == 1) {
-      if (local_296 == 2) {
-        if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-           (4 < (byte)WPP_GLOBAL_Control[0x29])) {
-          uVar14 = FUN_1401c41b5();
-          return uVar14;
+      if (param_2 == 2) {
+        if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+            (4 < (byte)WPP_GLOBAL_Control[0x29])) &&
+           ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x10000) != 0)) {
+          puVar5 = *(undefined8 **)(local_280 + 0x10);
+          uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+          uVar15 = *(undefined8 *)(*(longlong *)(lVar10 + 0x1e0) + 0x10);
+          *(undefined4 *)(puVar19 + 0x40) = *(undefined4 *)(lVar10 + 0x28);
+          uVar6 = *puVar5;
+          *(uint *)(puVar19 + 0x38) = (uint)(ushort)(uVar20 >> 8 | uVar20 << 8);
+          *(uint **)(puVar19 + 0x30) = local_290;
+          *(uint *)(puVar19 + 0x28) = (uint)(ushort)(uVar22 >> 8 | uVar22 << 8);
+          *(undefined8 *)(puVar19 + 0x20) = uVar6;
+          *(undefined8 *)(puVar19 + -8) = 0x1400395aa;
+          WPP_SF_S_IPV4_d_IPV4_dd
+                    (uVar12,0xe,&WPP_10927bcf57dc394d9f0dac5638d374bf_Traceguids,uVar15);
         }
       }
       else if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
                (4 < (byte)WPP_GLOBAL_Control[0x29])) &&
               ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x10000) != 0)) {
-        puVar8 = *(undefined8 **)(local_280 + 0x10);
+        puVar5 = *(undefined8 **)(local_280 + 0x10);
         uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-        uVar16 = *(undefined8 *)(*(longlong *)(local_290 + 0x1e0) + 0x10);
-        *(undefined4 *)(puVar18 + 0x40) = *(undefined4 *)(local_290 + 0x28);
-        uVar7 = *puVar8;
-        *(uint *)(puVar18 + 0x38) = (uint)(ushort)(local_294 >> 8 | local_294 << 8);
-        *(uint **)(puVar18 + 0x30) = param_6;
-        *(uint *)(puVar18 + 0x28) = (uint)(ushort)(local_298 >> 8 | local_298 << 8);
-        *(undefined8 *)(puVar18 + 0x20) = uVar7;
-        *(undefined8 *)(puVar18 + -8) = 0x1401c42bc;
-        WPP_SF_S_IPV6_d_IPV6_dd(uVar12,0xf,&WPP_ff5f03a18eb831a6e9acaab9d252ccb7_Traceguids,uVar16);
-      }
-    }
-    if (DAT_14 != '\0') {
-      uVar20 = local_294;
-      if (local_296 == 2) {
-        if (local_288 == 1) {
-LAB_15:
+        uVar15 = *(undefined8 *)(*(longlong *)(lVar10 + 0x1e0) + 0x10);
+        *(undefined4 *)(puVar19 + 0x40) = *(undefined4 *)(lVar10 + 0x28);
+        uVar6 = *puVar5;
+        *(uint *)(puVar19 + 0x38) = (uint)(ushort)(uVar20 >> 8 | uVar20 << 8);
+        *(uint **)(puVar19 + 0x30) = local_290;
+        *(uint *)(puVar19 + 0x28) = (uint)(ushort)(uVar22 >> 8 | uVar22 << 8);
+        *(undefined8 *)(puVar19 + 0x20) = uVar6;
+        *(undefined8 *)(puVar19 + -8) = 0x1400399dd;
+        WPP_SF_S_IPV6_d_IPV6_dd(uVar12,0xf,&WPP_10927bcf57dc394d9f0dac5638d374bf_Traceguids,uVar15);
+      }
+    }
+    if (DAT_15 != '\0') {
+      if (param_2 == 2) {
+        if (iVar11 == 1) {
+LAB_16:
           uVar20 = (ushort)*(byte *)((longlong)local_268 + 5) << 8;
         }
       }
-      else if ((local_296 == 0x17) && (local_288 == 0x3a)) goto LAB_15;
-      if (local_296 == 2) {
-        if (local_288 == 1) {
-LAB_16:
-          local_298 = (ushort)*(byte *)((longlong)local_268 + 4) << 8;
-        }
-      }
-      else if ((local_296 == 0x17) && (local_288 == 0x3a)) goto LAB_16;
-      uVar16 = 0x10;
-      lVar19 = *(longlong *)(lVar13 + 0x1e0);
-      puVar18[0x90] = local_292;
-      *(undefined4 *)(puVar18 + 0x88) = local_274;
-      uVar3 = *(ushort *)(lVar19 + 10);
-      *(undefined4 *)(puVar18 + 0x80) = local_270[0];
-      *(uint *)(puVar18 + 0x78) = (uint)local_78[0];
-      *(ulonglong *)(puVar18 + 0x70) = local_78[2];
-      *(undefined8 *)(puVar18 + 0x68) = 0;
-      *(undefined8 *)(puVar18 + 0x60) = 0;
-      *(undefined8 *)(puVar18 + 0x58) = *(undefined8 *)(lVar19 + 0x20);
-      *(undefined2 *)(puVar18 + 0x50) = *(undefined2 *)(lVar13 + 0x28);
-      *(ushort *)(puVar18 + 0x48) = uVar20;
-      *(uint **)(puVar18 + 0x40) = param_6;
-      *(ushort *)(puVar18 + 0x38) = local_298;
-      *(longlong *)(puVar18 + 0x30) = local_280;
-      *(short *)(puVar18 + 0x28) = local_296;
-      *(ulonglong *)(puVar18 + 0x20) = (ulonglong)uVar3;
+      else if ((param_2 == 0x17) && (iVar11 == 0x3a)) goto LAB_16;
+      if (param_2 == 2) {
+        if (iVar11 == 1) {
+LAB_17:
+          uVar22 = (ushort)*(byte *)((longlong)local_268 + 4) << 8;
+        }
+      }
+      else if ((param_2 == 0x17) && (iVar11 == 0x3a)) goto LAB_17;
+      uVar15 = 0x10;
+      lVar23 = *(longlong *)(lVar10 + 0x1e0);
+      puVar19[0x90] = local_298;
+      *(undefined4 *)(puVar19 + 0x88) = local_278;
+      uVar3 = *(ushort *)(lVar23 + 10);
+      *(undefined4 *)(puVar19 + 0x80) = local_274;
+      *(uint *)(puVar19 + 0x78) = (uint)local_78[0];
+      *(ulonglong *)(puVar19 + 0x70) = local_78[2];
+      *(undefined8 *)(puVar19 + 0x68) = 0;
+      *(undefined8 *)(puVar19 + 0x60) = 0;
+      *(undefined8 *)(puVar19 + 0x58) = *(undefined8 *)(lVar23 + 0x20);
+      *(undefined2 *)(puVar19 + 0x50) = *(undefined2 *)(lVar10 + 0x28);
+      *(ushort *)(puVar19 + 0x48) = uVar20;
+      *(uint **)(puVar19 + 0x40) = puVar9;
+      *(ushort *)(puVar19 + 0x38) = uVar22;
+      *(longlong *)(puVar19 + 0x30) = local_280;
+      *(short *)(puVar19 + 0x28) = param_2;
+      *(ulonglong *)(puVar19 + 0x20) = (ulonglong)uVar3;
       uVar12 = 0x1425;
-      goto LAB_17;
+LAB_18:
+      uVar6 = *(undefined8 *)(lVar23 + 0x10);
+      *(undefined8 *)(puVar19 + -8) = 0x140039cf2;
+      WfpAleAuditEvent(uVar12,uVar15,local_270 & 0xffff,uVar6);
     }
   }
   else {
-    if (local_296 == 2) {
+    if (param_2 == 2) {
       if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
           (5 < (byte)WPP_GLOBAL_Control[0x29])) &&
          ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x10000) != 0)) {
-        puVar8 = *(undefined8 **)(local_280 + 0x10);
         uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
-        uVar16 = *(undefined8 *)(*(longlong *)(local_290 + 0x1e0) + 0x10);
-        *(undefined4 *)(puVar18 + 0x40) = *(undefined4 *)(local_290 + 0x28);
-        uVar7 = *puVar8;
-        *(uint *)(puVar18 + 0x38) = (uint)(ushort)(local_294 >> 8 | local_294 << 8);
-        *(uint **)(puVar18 + 0x30) = param_6;
-        *(uint *)(puVar18 + 0x28) = (uint)(ushort)(local_298 >> 8 | local_298 << 8);
-        *(undefined8 *)(puVar18 + 0x20) = uVar7;
-        *(undefined8 *)(puVar18 + -8) = 0x1401c4418;
-        WPP_SF_S_IPV4_d_IPV4_dd(uVar12,0x10,&WPP_ff5f03a18eb831a6e9acaab9d252ccb7_Traceguids,uVar16)
+        uVar15 = *(undefined8 *)(*(longlong *)(lVar10 + 0x1e0) + 0x10);
+        puVar5 = *(undefined8 **)(local_280 + 0x10);
+        *(undefined4 *)(puVar19 + 0x40) = *(undefined4 *)(lVar10 + 0x28);
+        *(uint *)(puVar19 + 0x38) = (uint)(ushort)(uVar20 >> 8 | uVar20 << 8);
+        uVar6 = *puVar5;
+        *(uint **)(puVar19 + 0x30) = local_290;
+        *(uint *)(puVar19 + 0x28) = (uint)(ushort)(uVar22 >> 8 | uVar22 << 8);
+        *(undefined8 *)(puVar19 + 0x20) = uVar6;
+        *(undefined8 *)(puVar19 + -8) = 0x140039b6c;
+        WPP_SF_S_IPV4_d_IPV4_dd(uVar12,0x10,&WPP_10927bcf57dc394d9f0dac5638d374bf_Traceguids,uVar15)
         ;
       }
     }
-    else if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
-            (5 < (byte)WPP_GLOBAL_Control[0x29])) {
-      uVar14 = FUN_1401c4422();
-      return uVar14;
+    else if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+             (5 < (byte)WPP_GLOBAL_Control[0x29])) &&
+            ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x10000) != 0)) {
+      uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+      uVar15 = *(undefined8 *)(*(longlong *)(lVar10 + 0x1e0) + 0x10);
+      puVar5 = *(undefined8 **)(local_280 + 0x10);
+      *(undefined4 *)(puVar19 + 0x40) = *(undefined4 *)(lVar10 + 0x28);
+      *(uint *)(puVar19 + 0x38) = (uint)(ushort)(uVar20 >> 8 | uVar20 << 8);
+      uVar6 = *puVar5;
+      *(uint **)(puVar19 + 0x30) = local_290;
+      *(uint *)(puVar19 + 0x28) = (uint)(ushort)(uVar22 >> 8 | uVar22 << 8);
+      *(undefined8 *)(puVar19 + 0x20) = uVar6;
+      *(undefined8 *)(puVar19 + -8) = 0x140039bf4;
+      WPP_SF_S_IPV6_d_IPV6_dd(uVar12,0x11,&WPP_10927bcf57dc394d9f0dac5638d374bf_Traceguids,uVar15);
     }
     if (auditInformation != '\0') {
-      uVar20 = local_294;
-      if (local_296 == 2) {
-        if (local_288 == 1) {
+      if (param_2 == 2) {
+        if (iVar11 == 1) {
+LAB_19:
           uVar20 = (ushort)*(byte *)((longlong)local_268 + 5) << 8;
         }
       }
-      else if ((local_296 == 0x17) && (local_288 == 0x3a)) {
-        uVar14 = FUN_1401c449c();
-        return uVar14;
-      }
-      if (local_296 == 2) {
-        if (local_288 == 1) {
-          local_298 = (ushort)*(byte *)((longlong)local_268 + 4) << 8;
-        }
-      }
-      else if ((local_296 == 0x17) && (local_288 == 0x3a)) {
-        uVar14 = FUN_1401c44ad();
-        return uVar14;
-      }
-      uVar16 = 8;
-      lVar19 = *(longlong *)(lVar13 + 0x1e0);
-      puVar18[0x90] = local_292;
-      *(undefined4 *)(puVar18 + 0x88) = local_274;
-      uVar3 = *(ushort *)(lVar19 + 10);
-      *(undefined4 *)(puVar18 + 0x80) = local_270[0];
-      *(uint *)(puVar18 + 0x78) = (uint)local_78[0];
-      *(ulonglong *)(puVar18 + 0x70) = local_78[2];
-      *(undefined8 *)(puVar18 + 0x68) = 0;
-      *(undefined8 *)(puVar18 + 0x60) = 0;
-      *(undefined8 *)(puVar18 + 0x58) = *(undefined8 *)(lVar19 + 0x20);
-      *(undefined2 *)(puVar18 + 0x50) = *(undefined2 *)(lVar13 + 0x28);
-      *(ushort *)(puVar18 + 0x48) = uVar20;
+      else if ((param_2 == 0x17) && (iVar11 == 0x3a)) goto LAB_19;
+      if (param_2 == 2) {
+        if (iVar11 == 1) {
+LAB_20:
+          uVar22 = (ushort)*(byte *)((longlong)local_268 + 4) << 8;
+        }
+      }
+      else if ((param_2 == 0x17) && (iVar11 == 0x3a)) goto LAB_20;
+      uVar15 = 8;
+      lVar23 = *(longlong *)(lVar10 + 0x1e0);
       uVar12 = 0x1424;
-      *(uint **)(puVar18 + 0x40) = param_6;
-      *(ushort *)(puVar18 + 0x38) = local_298;
-      *(longlong *)(puVar18 + 0x30) = lVar6;
-      *(short *)(puVar18 + 0x28) = local_296;
-      *(ulonglong *)(puVar18 + 0x20) = (ulonglong)uVar3;
-LAB_17:
-      uVar7 = *(undefined8 *)(lVar19 + 0x10);
-      *(undefined8 *)(puVar18 + -8) = 0x14000d451;
-      WfpAleAuditEvent(uVar12,uVar16,(undefined2)local_278,uVar7);
-    }
-  }
-  *(undefined8 *)(puVar18 + -8) = 0x14000d230;
-  IpNlpDereferenceNextHop(param_15);
-  *(undefined8 *)(puVar18 + -8) = 0x14000d238;
-  IppDereferenceInterface(param_9);
-  if ((int)uVar11 < 0) {
-    *(undefined8 *)(puVar18 + -8) = 0x14000d351;
-    WfpReportStatus(uVar11,"WfpAleAuthorizeSend",0xba0);
-  }
-  uVar14 = (ulonglong)uVar11;
-LAB_13:
-  *(undefined8 *)(puVar18 + -8) = 0x14000d251;
-  return uVar14;
+      puVar19[0x90] = local_298;
+      *(undefined4 *)(puVar19 + 0x88) = local_278;
+      uVar3 = *(ushort *)(lVar23 + 10);
+      *(undefined4 *)(puVar19 + 0x80) = local_274;
+      *(uint *)(puVar19 + 0x78) = (uint)local_78[0];
+      *(ulonglong *)(puVar19 + 0x70) = local_78[2];
+      *(undefined8 *)(puVar19 + 0x68) = 0;
+      *(undefined8 *)(puVar19 + 0x60) = 0;
+      *(undefined8 *)(puVar19 + 0x58) = *(undefined8 *)(lVar23 + 0x20);
+      *(undefined2 *)(puVar19 + 0x50) = *(undefined2 *)(lVar10 + 0x28);
+      *(ushort *)(puVar19 + 0x48) = uVar20;
+      *(uint **)(puVar19 + 0x40) = puVar9;
+      *(ushort *)(puVar19 + 0x38) = uVar22;
+      *(longlong *)(puVar19 + 0x30) = local_280;
+      *(short *)(puVar19 + 0x28) = param_2;
+      *(ulonglong *)(puVar19 + 0x20) = (ulonglong)uVar3;
+      goto LAB_18;
+    }
+  }
+  *(undefined8 *)(puVar19 + -8) = 0x140039cfb;
+  IpNlpDereferenceNextHop(local_240);
+  LOCK();
+  plVar1 = (longlong *)(local_238 + 0x98);
+  lVar23 = *plVar1;
+  *plVar1 = *plVar1 + -1;
+  UNLOCK();
+  if (lVar23 < 2) {
+    if (lVar23 == 1) {
+      uVar12 = *(undefined8 *)(local_238 + 0x90);
+      *(undefined8 *)(puVar19 + -8) = 0x140039d41;
+      IoQueueWorkItem(uVar12,IppCleanupInterfaceWorkerRoutine,1,local_238);
+    }
+    else {
+      pcVar8 = (code *)swi(0x29);
+      (*pcVar8)(0xe);
+      puVar19 = puVar19 + 8;
+    }
+  }
+  if ((((iVar16 < 0) && ((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control)) &&
+      (1 < (byte)WPP_GLOBAL_Control[0x29])) &&
+     ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) != 0)) {
+    uVar12 = *(undefined8 *)(WPP_GLOBAL_Control + 0x18);
+    *(int *)(puVar19 + 0x28) = iVar16;
+    *(undefined4 *)(puVar19 + 0x20) = 0xb95;
+    *(undefined8 *)(puVar19 + -8) = 0x140039d8d;
+    WPP_SF_sDd(uVar12,0x10);
+  }
+LAB_14:
+  *(undefined8 *)(puVar19 + -8) = 0x140039d9e;
+  return iVar16;
 }
 

```


## Ipv6pFragmentPacketHelper

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.6|
|i_ratio|0.63|
|m_ratio|0.99|
|b_ratio|0.96|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv6pFragmentPacketHelper|Ipv6pFragmentPacketHelper|
|fullname|Ipv6pFragmentPacketHelper|Ipv6pFragmentPacketHelper|
|refcount|3|3|
|`length`|5396|5297|
|`called`|<details><summary>Expand for full list:<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IPsecProcessOutboundFragList<br>IppGetPacketCount<br>IppInspectLocalPacketsOut<br>IppLogPacketDiscard<br>IppSendErrorList<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>McTemplateK0z_EtwWriteTransfer<br>NDIS.SYS::NdisAdvanceNetBufferDataStart<br>NDIS.SYS::NdisGetDataBuffer</summary>NDIS.SYS::NdisRetreatNetBufferDataStart<br>NETIO.SYS::NetioAdvanceNetBufferList<br>NETIO.SYS::NetioAllocateAndReferenceFragmentNetBufferList<br>NETIO.SYS::NetioDereferenceNetBufferList<br>NETIO.SYS::RtlCopyMdlToMdl<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NTOSKRNL.EXE::PsGetCurrentProcess<br>NTOSKRNL.EXE::PsGetProcessImageFileName<br>NetioRetreatNetBuffer<br>__security_check_cookie<br>_tlgWriteAgg</details>|<details><summary>Expand for full list:<br>IPsecProcessOutboundFragList<br>IppGetPacketCount<br>IppInspectLocalPacketsOut<br>IppLogPacketDiscard<br>IppSendErrorList<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>McTemplateK0z_EtwWriteTransfer<br>NDIS.SYS::NdisAdvanceNetBufferDataStart<br>NDIS.SYS::NdisGetDataBuffer<br>NDIS.SYS::NdisRetreatNetBufferDataStart</summary>NETIO.SYS::NetioAdvanceNetBufferList<br>NETIO.SYS::NetioAllocateAndReferenceFragmentNetBufferList<br>NETIO.SYS::NetioDereferenceNetBufferList<br>NETIO.SYS::RtlCopyMdlToMdl<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NTOSKRNL.EXE::PsGetCurrentProcess<br>NTOSKRNL.EXE::PsGetProcessImageFileName<br>NetioRetreatNetBuffer<br>__security_check_cookie<br>_tlgWriteAgg</details>|
|calling|||
|paramcount|0|0|
|`address`|140148310|1401478b0|
|sig|undefined Ipv6pFragmentPacketHelper(void)|undefined Ipv6pFragmentPacketHelper(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv6pFragmentPacketHelper Called Diff


```diff
--- Ipv6pFragmentPacketHelper called
+++ Ipv6pFragmentPacketHelper called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### Ipv6pFragmentPacketHelper Diff


```diff
--- Ipv6pFragmentPacketHelper
+++ Ipv6pFragmentPacketHelper
@@ -1,876 +1,852 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void Ipv6pFragmentPacketHelper(ulonglong param_1,longlong param_2)
 
 {
   byte bVar1;
   undefined1 *puVar2;
   undefined8 *puVar3;
   undefined8 *puVar4;
   undefined1 auVar5 [16];
   undefined1 auVar6 [16];
   undefined1 auVar7 [16];
   uint uVar8;
   uint uVar9;
   int iVar10;
   uint uVar11;
-  undefined8 uVar13;
-  byte *pbVar14;
-  uint *puVar15;
-  byte *pbVar16;
-  ushort uVar17;
-  int *piVar18;
-  ulonglong uVar19;
-  uint uVar20;
+  uint uVar12;
+  byte *pbVar13;
+  undefined8 uVar14;
+  byte *pbVar15;
+  uint *puVar16;
+  byte *pbVar17;
+  ushort uVar18;
+  int *piVar19;
+  ulonglong uVar20;
   longlong lVar21;
   longlong lVar22;
   longlong *plVar23;
   longlong lVar24;
-  undefined8 uVar25;
+  longlong *plVar25;
   longlong *plVar26;
-  longlong *plVar27;
-  longlong *plVar28;
-  undefined4 uVar29;
-  ulonglong unaff_R13;
-  ushort uVar30;
+  undefined4 uVar27;
+  undefined8 uVar28;
+  ushort uVar29;
+  longlong *plVar30;
   undefined1 auStack_248 [32];
   undefined8 local_228;
   undefined1 *local_220;
   uint local_218;
   longlong local_210;
   undefined8 local_208;
   uint local_200;
   uint local_1f8;
   undefined4 local_1e8;
   longlong *local_1e0;
   byte local_1d8 [2];
   undefined2 local_1d6;
   uint local_1d4;
   uint local_1d0;
   longlong *local_1c8;
   int local_1c0 [2];
-  longlong *local_1b8;
-  ulonglong local_1b0;
+  ulonglong local_1b8;
+  longlong *local_1b0;
   undefined8 local_1a8;
   ulonglong local_1a0;
   ulonglong local_198;
   longlong *local_190;
   longlong local_188;
   longlong *local_180;
   longlong local_178;
   undefined1 local_170 [8];
   undefined8 local_168;
   undefined8 uStack_160;
   undefined8 local_158;
   undefined1 local_138 [32];
   longlong *local_118;
   undefined8 local_110;
   longlong **local_108;
   undefined8 local_100;
   longlong **local_f8;
   undefined8 local_f0;
   longlong **local_e8;
   undefined8 local_e0;
   ulonglong *local_d8;
   undefined8 local_d0;
   ulonglong *local_c8;
   undefined8 local_c0;
   ulonglong *local_b8;
   undefined8 local_b0;
   undefined8 *local_a8;
   undefined8 local_a0;
   char *local_98;
   int local_90;
   undefined4 local_8c;
   byte *local_88;
   undefined8 local_80;
   int *local_78;
   undefined8 local_70;
   undefined2 *local_68;
   undefined8 local_60;
   uint *local_58;
   undefined8 local_50;
   ulonglong local_48;
-  byte *pbVar12;
   
   local_48 = __security_cookie ^ (ulonglong)auStack_248;
-  local_1b8 = *(longlong **)(param_1 + 8);
-  uVar19 = unaff_R13 & 0xffffffffffffff00;
+  local_1b0 = *(longlong **)(param_1 + 8);
+  pbVar13 = (byte *)0x0;
   local_1c8 = *(longlong **)(param_2 + 8);
-  pbVar12 = (byte *)0x0;
-  local_1a8 = CONCAT44(local_1a8._4_4_,(int)uVar19);
+  local_1a8 = local_1a8 & 0xffffffffffffff00;
   uVar9 = 0;
   local_1a0 = param_1;
   if ((*(byte *)(param_1 + 0xb8) & 0x10) == 0) {
-    if (((int)local_1b8[0x14] == 0) &&
-       ((uVar20 = *(uint *)(param_2 + 0x5c), (*(byte *)(local_1c8 + 0x31) & 1) != 0 ||
-        (uVar20 < *(uint *)(local_1b8[1] + 0x18))))) {
-      *(undefined4 *)((longlong)local_1b8 + 0x8c) = 0xc0000206;
-      uVar11 = *(uint *)(local_1b8[1] + 0x5c);
+    if (((int)local_1b0[0x14] == 0) &&
+       ((uVar11 = *(uint *)(param_2 + 0x5c), (*(byte *)(local_1c8 + 0x31) & 1) != 0 ||
+        (uVar11 < *(uint *)(local_1b0[1] + 0x18))))) {
+      *(undefined4 *)((longlong)local_1b0 + 0x8c) = 0xc0000206;
+      uVar12 = *(uint *)(local_1b0[1] + 0x5c);
       puVar2 = *(undefined1 **)(*local_1c8 + 0x28);
       lVar21 = *(longlong *)(param_1 + 8);
-      uVar19 = *(ulonglong *)(lVar21 + 0xa0);
+      uVar20 = *(ulonglong *)(lVar21 + 0xa0);
       puVar3 = *(undefined8 **)(lVar21 + 8);
-      if (((int)uVar19 == 0) && (pbVar14 = pbVar12, uVar8 = uVar9, *(int *)(lVar21 + 0x140) == 0)) {
+      if (((int)uVar20 == 0) && (pbVar15 = pbVar13, uVar8 = uVar9, *(int *)(lVar21 + 0x140) == 0)) {
         for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-          uVar8 = (int)pbVar14 + 1;
-          pbVar14 = (byte *)(ulonglong)uVar8;
+          uVar8 = (int)pbVar15 + 1;
+          pbVar15 = (byte *)(ulonglong)uVar8;
         }
       }
       else {
-        if (uVar19 == 0) {
-          uVar19 = (ulonglong)*(uint *)(lVar21 + 0x140);
-        }
-        uVar8 = (uint)uVar19 & 0xfffff;
+        if (uVar20 == 0) {
+          uVar20 = (ulonglong)*(uint *)(lVar21 + 0x140);
+        }
+        uVar8 = (uint)uVar20 & 0xfffff;
         uVar8 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar8) / uVar8;
       }
       lVar21 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + *(longlong *)(puVar2 + 0x4f28);
       *(uint *)(lVar21 + 0x98) = uVar8 + *(int *)(lVar21 + 0x98);
       if ((DAT_0 < '\0') || (DAT_140232a80 != '\0')) {
         local_210 = *(longlong *)(param_1 + 8);
-        uVar19 = *(ulonglong *)(local_210 + 0xa0);
+        uVar20 = *(ulonglong *)(local_210 + 0xa0);
         local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
         puVar3 = *(undefined8 **)(local_210 + 8);
-        if (((int)uVar19 == 0) && (pbVar14 = pbVar12, *(int *)(local_210 + 0x140) == 0)) {
+        if (((int)uVar20 == 0) && (pbVar15 = pbVar13, *(int *)(local_210 + 0x140) == 0)) {
           for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-            uVar9 = (int)pbVar14 + 1;
-            pbVar14 = (byte *)(ulonglong)uVar9;
+            uVar9 = (int)pbVar15 + 1;
+            pbVar15 = (byte *)(ulonglong)uVar9;
           }
         }
         else {
-          if (uVar19 == 0) {
-            uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
-          }
-          uVar9 = (uint)uVar19 & 0xfffff;
+          if (uVar20 == 0) {
+            uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
+          }
+          uVar9 = (uint)uVar20 & 0xfffff;
           uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
         }
         local_1f8 = 0xe0004126;
         local_200 = 3;
         local_218 = 0;
         local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
         local_228 = (longlong *)CONCAT44(local_228._4_4_,0x102);
         IppLogPacketDiscard(*(undefined2 *)(puVar2 + 0x1c),*(undefined2 *)(param_1 + 0x68),
                             *(undefined8 *)(param_1 + 0x108),*(undefined8 *)(param_1 + 0xf8));
       }
-      if ((uVar11 & 0x10) != 0) {
+      if ((uVar12 & 0x10) != 0) {
         return;
       }
       local_220 = (undefined1 *)
                   CONCAT44(local_220._4_4_,
-                           uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 |
-                           uVar20 << 0x18);
-      pbVar14 = (byte *)0x4;
+                           uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |
+                           uVar11 << 0x18);
+      pbVar15 = (byte *)0x4;
       if (puVar2 != &Ipv4Global) {
-        pbVar14 = pbVar12;
-      }
-      local_228 = (longlong *)CONCAT71(local_228._1_7_,(char)pbVar14);
+        pbVar15 = pbVar13;
+      }
+      local_228 = (longlong *)CONCAT71(local_228._1_7_,(char)pbVar15);
       IppSendErrorList(0,puVar2,param_1,(puVar2 == &Ipv4Global) + '\x02');
       return;
     }
     goto LAB_1;
   }
-  plVar27 = *(longlong **)(param_1 + 0xd0);
-  if (plVar27 == (longlong *)0x0) {
-    uVar20 = *(uint *)(param_2 + 0x5c);
+  plVar30 = *(longlong **)(param_1 + 0xd0);
+  if (plVar30 == (longlong *)0x0) {
+    uVar11 = *(uint *)(param_2 + 0x5c);
   }
   else {
-    plVar26 = *(longlong **)(*plVar27 + 8);
-    if ((*(uint *)(plVar27 + 0xe) < *(uint *)(param_2 + 0x5c)) &&
+    plVar26 = *(longlong **)(*plVar30 + 8);
+    if ((*(uint *)(plVar30 + 0xe) < *(uint *)(param_2 + 0x5c)) &&
        (auVar5._8_8_ = 0, auVar5._0_8_ = _DAT_2 / 10000,
        lVar21 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar5,8),
        *(uint *)((longlong)plVar26 + 0x1bc) <=
        (uint)((int)((_DAT_2 / 10000 - lVar21 >> 1) + lVar21 >> 8) -
-             *(int *)((longlong)plVar27 + 0x74)))) {
+             *(int *)((longlong)plVar30 + 0x74)))) {
       local_158 = 0;
       local_168 = 0;
       uStack_160 = 0;
-      if ((*(uint *)(plVar27 + 0xe) < *(uint *)(param_2 + 0x5c)) &&
+      if ((*(uint *)(plVar30 + 0xe) < *(uint *)(param_2 + 0x5c)) &&
          (auVar6._8_8_ = 0, auVar6._0_8_ = _DAT_2 / 10000,
          lVar21 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar6,8),
          *(uint *)((longlong)plVar26 + 0x1bc) <=
          (uint)((int)((_DAT_2 / 10000 - lVar21 >> 1) + lVar21 >> 8) -
-               *(int *)((longlong)plVar27 + 0x74)))) {
+               *(int *)((longlong)plVar30 + 0x74)))) {
         lVar21 = *plVar26;
         KeAcquireInStackQueuedSpinLock(lVar21 + 0x340,&local_168);
         if (-1 < *(int *)(lVar21 + 0x348)) {
-          piVar18 = (int *)(lVar21 + 0x380);
-          pbVar14 = pbVar12;
+          piVar19 = (int *)(lVar21 + 0x380);
+          pbVar15 = pbVar13;
           do {
             do {
-            } while (*piVar18 != 0);
-            uVar20 = (int)pbVar14 + 1;
-            pbVar14 = (byte *)(ulonglong)uVar20;
-            piVar18 = piVar18 + 0x10;
-          } while ((int)uVar20 <= *(int *)(lVar21 + 0x348));
-        }
-        if ((*(uint *)(plVar27 + 0xe) < *(uint *)(param_2 + 0x5c)) &&
+            } while (*piVar19 != 0);
+            uVar11 = (int)pbVar15 + 1;
+            pbVar15 = (byte *)(ulonglong)uVar11;
+            piVar19 = piVar19 + 0x10;
+          } while ((int)uVar11 <= *(int *)(lVar21 + 0x348));
+        }
+        if ((*(uint *)(plVar30 + 0xe) < *(uint *)(param_2 + 0x5c)) &&
            (auVar7._8_8_ = 0, auVar7._0_8_ = _DAT_2 / 10000,
            lVar22 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar7,8),
            *(uint *)((longlong)plVar26 + 0x1bc) <=
            (uint)((int)((_DAT_2 / 10000 - lVar22 >> 1) + lVar22 >> 8) -
-                 *(int *)((longlong)plVar27 + 0x74)))) {
-          uVar29 = *(undefined4 *)(param_2 + 0x5c);
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar20 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar20 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar20 == 0) {
-            *(byte *)(plVar27 + 5) = *(byte *)(plVar27 + 5) & 0xef;
-          }
-          else {
-            local_1b0 = CONCAT44(local_1b0._4_4_,(int)plVar27[5]);
-            local_1b0 = CONCAT71(local_1b0._1_7_,(char)(int)plVar27[5]) & 0xffffffffffffffef;
-            *(uint *)(plVar27 + 5) = (uint)local_1b0;
-          }
-          IppUpdatePathMtu(plVar27,uVar29);
+                 *(int *)((longlong)plVar30 + 0x74)))) {
+          uVar27 = *(undefined4 *)(param_2 + 0x5c);
+          local_1b8 = CONCAT44(local_1b8._4_4_,(int)plVar30[5]);
+          local_1b8 = CONCAT71(local_1b8._1_7_,(char)(int)plVar30[5]) & 0xffffffffffffffef;
+          *(uint *)(plVar30 + 5) = (uint)local_1b8;
+          IppUpdatePathMtu(plVar30,uVar27);
           KeReleaseInStackQueuedSpinLock(&local_168);
-          IppUpdatePathNotification(lVar21,plVar27);
+          IppUpdatePathNotification(lVar21,plVar30);
         }
         else {
           KeReleaseInStackQueuedSpinLock(&local_168);
         }
       }
     }
-    uVar20 = *(uint *)(plVar27 + 0xe);
-    if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-      uVar11 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar11 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-    }
-    if (uVar11 == 0) {
-      uVar19 = (ulonglong)*(byte *)(*(longlong *)(param_1 + 0xd0) + 0x28);
-    }
-    else {
-      uVar19 = (ulonglong)*(uint *)(*(longlong *)(param_1 + 0xd0) + 0x28);
-    }
-    uVar19 = CONCAT71((int7)(uVar19 >> 8),(byte)uVar19 >> 4) & 0xffffffffffffff01;
-    local_1a8 = CONCAT44(local_1a8._4_4_,(int)uVar19);
+    uVar11 = *(uint *)(plVar30 + 0xe);
+    uVar27 = *(undefined4 *)(*(longlong *)(param_1 + 0xd0) + 0x28);
+    local_1a8 = CONCAT44(local_1a8._4_4_,CONCAT31((int3)((uint)uVar27 >> 8),(byte)uVar27 >> 4)) &
+                0xffffffffffffff01;
   }
-  plVar27 = local_1b8;
-  uVar11 = uVar20;
+  plVar30 = local_1b0;
+  uVar12 = uVar11;
   if (((*(byte *)(param_1 + 0x5a) & 0x30) - 0x20 & 0xef) == 0) {
-    uVar11 = *(uint *)(param_2 + 0x5c);
+    uVar12 = *(uint *)(param_2 + 0x5c);
   }
   uVar8 = *(uint *)(param_1 + 0x6c);
-  if (uVar11 < *(uint *)(param_1 + 0x6c)) {
-    uVar8 = uVar11;
+  if (uVar12 < *(uint *)(param_1 + 0x6c)) {
+    uVar8 = uVar12;
   }
   local_1e8 = *(undefined4 *)(param_1 + 0xc4);
-  local_1e0 = local_1b8;
   local_1f8 = CONCAT31(local_1f8._1_3_,*(byte *)(param_1 + 0x58) >> 2) & 0xffffff01;
   local_208 = CONCAT44(local_208._4_4_,(uint)*(ushort *)(param_1 + 0x3c));
   local_218 = local_218 & 0xffffff00;
   local_220 = (undefined1 *)CONCAT44(local_220._4_4_,*(undefined4 *)(param_2 + 0x18));
   local_228 = local_1c8;
   local_200 = uVar8;
+  local_1e0 = local_1b0;
   local_1d0 = uVar8;
   iVar10 = IppInspectLocalPacketsOut(0x29,*(undefined8 *)(param_1 + 0xe0),param_1 + 0xe8);
-  uVar11 = 0;
   if (0 < iVar10) {
     if (iVar10 - 1U < 2) {
-      uVar19 = plVar27[0x14];
-      puVar3 = (undefined8 *)plVar27[1];
-      if (((int)uVar19 == 0) && (pbVar14 = pbVar12, uVar9 = uVar11, (int)plVar27[0x28] == 0)) {
+      uVar20 = plVar30[0x14];
+      puVar3 = (undefined8 *)plVar30[1];
+      if (((int)uVar20 == 0) && (pbVar15 = pbVar13, uVar11 = uVar9, (int)plVar30[0x28] == 0)) {
         for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-          uVar9 = (int)pbVar14 + 1;
-          pbVar14 = (byte *)(ulonglong)uVar9;
+          uVar11 = (int)pbVar15 + 1;
+          pbVar15 = (byte *)(ulonglong)uVar11;
         }
       }
       else {
-        if (uVar19 == 0) {
-          uVar19 = (ulonglong)*(uint *)(plVar27 + 0x28);
-        }
-        uVar9 = (uint)uVar19 & 0xfffff;
-        uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
-      }
-      piVar18 = (int *)((ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + DAT_3 + 0xac);
-      *piVar18 = *piVar18 + uVar9;
+        if (uVar20 == 0) {
+          uVar20 = (ulonglong)*(uint *)(plVar30 + 0x28);
+        }
+        uVar11 = (uint)uVar20 & 0xfffff;
+        uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
+      }
+      piVar19 = (int *)((ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + DAT_3 + 0xac);
+      *piVar19 = *piVar19 + uVar11;
       *(undefined4 *)(*(longlong *)(param_1 + 8) + 0x8c) = 0xc000021b;
-      uVar29 = 9;
+      uVar27 = 9;
       if (iVar10 != 1) {
-        uVar29 = 0xb;
+        uVar27 = 0xb;
       }
       lVar21 = *(longlong *)(*local_1c8 + 0x28);
       lVar22 = *(longlong *)(param_1 + 8);
-      uVar19 = *(ulonglong *)(lVar22 + 0xa0);
+      uVar20 = *(ulonglong *)(lVar22 + 0xa0);
       puVar3 = *(undefined8 **)(lVar22 + 8);
-      if (((int)uVar19 == 0) && (pbVar14 = pbVar12, uVar9 = uVar11, *(int *)(lVar22 + 0x140) == 0))
+      if (((int)uVar20 == 0) && (pbVar15 = pbVar13, uVar11 = uVar9, *(int *)(lVar22 + 0x140) == 0))
       {
         for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-          uVar9 = (int)pbVar14 + 1;
-          pbVar14 = (byte *)(ulonglong)uVar9;
+          uVar11 = (int)pbVar15 + 1;
+          pbVar15 = (byte *)(ulonglong)uVar11;
         }
       }
       else {
-        if (uVar19 == 0) {
-          uVar19 = (ulonglong)*(uint *)(lVar22 + 0x140);
-        }
-        uVar9 = (uint)uVar19 & 0xfffff;
-        uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
+        if (uVar20 == 0) {
+          uVar20 = (ulonglong)*(uint *)(lVar22 + 0x140);
+        }
+        uVar11 = (uint)uVar20 & 0xfffff;
+        uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
       }
       lVar22 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + *(longlong *)(lVar21 + 0x4f28);
-      *(uint *)(lVar22 + 0x98) = uVar9 + *(int *)(lVar22 + 0x98);
+      *(uint *)(lVar22 + 0x98) = uVar11 + *(int *)(lVar22 + 0x98);
       if ((-1 < DAT_0) && (DAT_140232a80 == '\0')) {
         return;
       }
       local_210 = *(longlong *)(param_1 + 8);
-      uVar19 = *(ulonglong *)(local_210 + 0xa0);
+      uVar20 = *(ulonglong *)(local_210 + 0xa0);
       local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
       puVar3 = *(undefined8 **)(local_210 + 8);
-      if (((int)uVar19 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
+      if (((int)uVar20 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
         for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-          uVar11 = (int)pbVar12 + 1;
-          pbVar12 = (byte *)(ulonglong)uVar11;
+          uVar9 = (int)pbVar13 + 1;
+          pbVar13 = (byte *)(ulonglong)uVar9;
         }
       }
       else {
-        if (uVar19 == 0) {
-          uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
-        }
-        uVar11 = (uint)uVar19 & 0xfffff;
-        uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
+        if (uVar20 == 0) {
+          uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
+        }
+        uVar9 = (uint)uVar20 & 0xfffff;
+        uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
       }
       local_1f8 = 0xe000412c;
       local_200 = 3;
       local_218 = 0;
-      local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar11);
-      local_228 = (longlong *)CONCAT44(local_228._4_4_,uVar29);
+      local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
+      local_228 = (longlong *)CONCAT44(local_228._4_4_,uVar27);
       IppLogPacketDiscard(*(undefined2 *)(lVar21 + 0x1c),*(undefined2 *)(param_1 + 0x68),
                           *(undefined8 *)(param_1 + 0x108),*(undefined8 *)(param_1 + 0xf8));
       return;
     }
     lVar21 = *(longlong *)(param_1 + 8);
 LAB_4:
     NetioDereferenceNetBufferList(lVar21,0);
     *(undefined8 *)(param_1 + 8) = 0;
     return;
   }
   if ((*(byte *)(local_1c8 + 0x31) & 1) == 0) {
-    if ((char)uVar19 == '\0') {
-      if (((int)plVar27[0x14] == 0) && ((int)plVar27[0x28] == 0)) {
-        for (puVar3 = (undefined8 *)plVar27[1]; puVar3 != (undefined8 *)0x0;
+    uVar9 = 0;
+    if ((char)local_1a8 == '\0') {
+      if (((int)plVar30[0x14] == 0) && ((int)plVar30[0x28] == 0)) {
+        for (puVar3 = (undefined8 *)plVar30[1]; puVar3 != (undefined8 *)0x0;
             puVar3 = (undefined8 *)*puVar3) {
           if (uVar8 < *(uint *)(puVar3 + 3)) {
-            plVar27 = local_1b8;
             if ((*(byte *)(param_1 + 0x58) & 4) != 0) {
-              *(undefined4 *)((longlong)local_1b8 + 0x8c) = 0xc0000206;
+              *(undefined4 *)((longlong)plVar30 + 0x8c) = 0xc0000206;
               lVar21 = *(longlong *)(*local_1c8 + 0x28);
               lVar22 = *(longlong *)(param_1 + 8);
-              uVar19 = *(ulonglong *)(lVar22 + 0xa0);
+              uVar20 = *(ulonglong *)(lVar22 + 0xa0);
               puVar4 = *(undefined8 **)(lVar22 + 8);
-              if (((int)uVar19 == 0) &&
-                 (pbVar14 = pbVar12, uVar9 = uVar11, *(int *)(lVar22 + 0x140) == 0)) {
+              if (((int)uVar20 == 0) &&
+                 (pbVar15 = pbVar13, uVar12 = uVar9, *(int *)(lVar22 + 0x140) == 0)) {
                 for (; puVar4 != (undefined8 *)0x0; puVar4 = (undefined8 *)*puVar4) {
-                  uVar9 = (int)pbVar14 + 1;
-                  pbVar14 = (byte *)(ulonglong)uVar9;
+                  uVar12 = (int)pbVar15 + 1;
+                  pbVar15 = (byte *)(ulonglong)uVar12;
                 }
               }
               else {
-                if (uVar19 == 0) {
-                  uVar19 = (ulonglong)*(uint *)(lVar22 + 0x140);
+                if (uVar20 == 0) {
+                  uVar20 = (ulonglong)*(uint *)(lVar22 + 0x140);
                 }
-                uVar9 = (uint)uVar19 & 0xfffff;
-                uVar9 = (*(int *)((longlong)puVar4 + 0x54) + -1 + uVar9) / uVar9;
+                uVar12 = (uint)uVar20 & 0xfffff;
+                uVar12 = (*(int *)((longlong)puVar4 + 0x54) + -1 + uVar12) / uVar12;
               }
               lVar22 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 +
                        *(longlong *)(lVar21 + 0x4f28);
-              *(uint *)(lVar22 + 0x98) = uVar9 + *(int *)(lVar22 + 0x98);
+              *(uint *)(lVar22 + 0x98) = uVar12 + *(int *)(lVar22 + 0x98);
               if ((DAT_0 < '\0') || (DAT_140232a80 != '\0')) {
                 local_210 = *(longlong *)(param_1 + 8);
-                uVar19 = *(ulonglong *)(local_210 + 0xa0);
+                uVar20 = *(ulonglong *)(local_210 + 0xa0);
                 local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
                 puVar4 = *(undefined8 **)(local_210 + 8);
-                if (((int)uVar19 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
+                if (((int)uVar20 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
                   for (; puVar4 != (undefined8 *)0x0; puVar4 = (undefined8 *)*puVar4) {
-                    uVar11 = (int)pbVar12 + 1;
-                    pbVar12 = (byte *)(ulonglong)uVar11;
+                    uVar9 = (int)pbVar13 + 1;
+                    pbVar13 = (byte *)(ulonglong)uVar9;
                   }
                 }
                 else {
-                  if (uVar19 == 0) {
-                    uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
+                  if (uVar20 == 0) {
+                    uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
                   }
-                  uVar11 = (uint)uVar19 & 0xfffff;
-                  uVar11 = (*(int *)((longlong)puVar4 + 0x54) + -1 + uVar11) / uVar11;
+                  uVar9 = (uint)uVar20 & 0xfffff;
+                  uVar9 = (*(int *)((longlong)puVar4 + 0x54) + -1 + uVar9) / uVar9;
                 }
                 local_1f8 = 0xe0004128;
                 local_200 = 3;
                 local_218 = 0;
-                local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar11);
+                local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
                 local_228 = (longlong *)CONCAT44(local_228._4_4_,0x102);
                 IppLogPacketDiscard(*(undefined2 *)(lVar21 + 0x1c),*(undefined2 *)(param_1 + 0x68),
                                     *(undefined8 *)(param_1 + 0x108),*(undefined8 *)(param_1 + 0xf8)
                                    );
               }
               if (*(int *)(param_1 + 0x6c) == -1) {
                 return;
               }
               if (DAT_5 < 6) {
                 return;
               }
               if ((_DAT_6 & 0x400000000000) == 0) {
                 return;
               }
               if ((DAT_7 & 0x400000000000) != DAT_7) {
                 return;
               }
               local_118 = &local_188;
               local_188 = 1;
               local_108 = &local_190;
               local_1c8 = (longlong *)(ulonglong)*(uint *)(puVar3 + 3);
               local_e8 = &local_1c8;
-              local_f8 = &local_1b8;
-              local_1b0 = (ulonglong)uVar20;
-              local_b8 = &local_1b0;
+              local_f8 = &local_1b0;
+              local_1b8 = (ulonglong)uVar11;
+              local_b8 = &local_1b8;
               local_d8 = &local_1a0;
               local_a8 = &local_1a8;
               local_c8 = &local_198;
               local_110 = 8;
               local_100 = 8;
               local_f0 = 8;
               local_e0 = 8;
               local_d0 = 8;
               local_c0 = 8;
               local_b0 = 8;
               local_1a8 = 0x2000000;
               local_a0 = 8;
-              local_1b8 = local_1c8;
-              local_1a0 = local_1b0;
-              local_198 = local_1b0;
+              local_1b0 = local_1c8;
+              local_1a0 = local_1b8;
+              local_198 = local_1b8;
               local_190 = local_1c8;
-              uVar13 = PsGetCurrentProcess();
-              local_98 = (char *)PsGetProcessImageFileName(uVar13);
+              uVar14 = PsGetCurrentProcess();
+              local_98 = (char *)PsGetProcessImageFileName(uVar14);
               if (local_98 == (char *)0x0) {
                 local_98 = "";
                 local_90 = 1;
               }
               else {
                 lVar21 = -1;
                 do {
                   lVar21 = lVar21 + 1;
                 } while (local_98[lVar21] != '\0');
                 local_90 = (int)lVar21 + 1;
               }
               local_88 = local_1d8;
               local_1c0[0] = *(int *)(param_1 + 0x6c);
               local_78 = local_1c0;
               local_8c = 0;
               local_1d6 = CONCAT11(local_1d6._1_1_,*(byte *)(param_1 + 0x5a) >> 4) & 0xff03;
               local_68 = &local_1d6;
               local_1d4 = CONCAT22(local_1d4._2_2_,*(undefined2 *)(param_1 + 0x68));
               local_58 = &local_1d4;
               local_228 = (longlong *)local_138;
               local_1d8[0] = 0x17;
               local_80 = 1;
               local_70 = 4;
               local_60 = 1;
               local_50 = 2;
-              _tlgWriteAgg(&DAT_5,&DAT_1401fddc0);
+              _tlgWriteAgg(&DAT_5,&DAT_1401fdd5a);
               return;
             }
             goto LAB_8;
           }
         }
       }
     }
     else {
 LAB_8:
       local_190 = *(longlong **)
                    (*(longlong *)(param_2 + 0x68) + (ulonglong)SystemReserved1[0x12]._4_4_ * 8);
       local_188 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 +
                   *(longlong *)(*(longlong *)(*local_1c8 + 0x28) + 0x4f28);
-      plVar28 = local_1c8;
-      local_1c0[0] = IppGetPacketCount(plVar27);
-      plVar26 = (longlong *)plVar27[1];
+      plVar25 = local_1c8;
+      local_1c0[0] = IppGetPacketCount(plVar30);
+      plVar26 = (longlong *)plVar30[1];
       if (0xffff < (ulonglong)*(uint *)(plVar26 + 3) - 0x28) {
-        *(undefined4 *)((longlong)plVar27 + 0x8c) = 0xc000021b;
-        lVar21 = *(longlong *)(*plVar28 + 0x28);
+        *(undefined4 *)((longlong)plVar30 + 0x8c) = 0xc000021b;
+        lVar21 = *(longlong *)(*plVar25 + 0x28);
         lVar22 = *(longlong *)(param_1 + 8);
-        uVar19 = *(ulonglong *)(lVar22 + 0xa0);
+        uVar20 = *(ulonglong *)(lVar22 + 0xa0);
         puVar3 = *(undefined8 **)(lVar22 + 8);
-        if (((int)uVar19 == 0) && (pbVar14 = pbVar12, *(int *)(lVar22 + 0x140) == 0)) {
+        if (((int)uVar20 == 0) && (pbVar15 = pbVar13, uVar11 = uVar9, *(int *)(lVar22 + 0x140) == 0)
+           ) {
           for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-            uVar11 = (int)pbVar14 + 1;
-            pbVar14 = (byte *)(ulonglong)uVar11;
+            uVar11 = (int)pbVar15 + 1;
+            pbVar15 = (byte *)(ulonglong)uVar11;
           }
         }
         else {
-          if (uVar19 == 0) {
-            uVar19 = (ulonglong)*(uint *)(lVar22 + 0x140);
-          }
-          uVar11 = (uint)uVar19 & 0xfffff;
+          if (uVar20 == 0) {
+            uVar20 = (ulonglong)*(uint *)(lVar22 + 0x140);
+          }
+          uVar11 = (uint)uVar20 & 0xfffff;
           uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
         }
         lVar22 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + *(longlong *)(lVar21 + 0x4f28);
         *(uint *)(lVar22 + 0x98) = uVar11 + *(int *)(lVar22 + 0x98);
         if ((-1 < DAT_0) && (DAT_140232a80 == '\0')) {
           return;
         }
         local_210 = *(longlong *)(param_1 + 8);
-        uVar13 = *(undefined8 *)(param_1 + 0x108);
-        uVar25 = *(undefined8 *)(param_1 + 0xf8);
-        uVar19 = *(ulonglong *)(local_210 + 0xa0);
+        uVar14 = *(undefined8 *)(param_1 + 0x108);
+        uVar28 = *(undefined8 *)(param_1 + 0xf8);
+        uVar20 = *(ulonglong *)(local_210 + 0xa0);
         local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
         puVar3 = *(undefined8 **)(local_210 + 8);
-        if (((int)uVar19 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
+        if (((int)uVar20 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
           for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-            uVar9 = (int)pbVar12 + 1;
-            pbVar12 = (byte *)(ulonglong)uVar9;
+            uVar9 = (int)pbVar13 + 1;
+            pbVar13 = (byte *)(ulonglong)uVar9;
           }
         }
         else {
-          if (uVar19 == 0) {
-            uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
-          }
-          uVar9 = (uint)uVar19 & 0xfffff;
+          if (uVar20 == 0) {
+            uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
+          }
+          uVar9 = (uint)uVar20 & 0xfffff;
           uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
         }
         local_1f8 = 0xe0004129;
         local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
         local_228 = (longlong *)CONCAT44(local_228._4_4_,0x103);
         goto LAB_9;
       }
       local_228 = (longlong *)((ulonglong)local_228._4_4_ << 0x20);
       lVar21 = NdisGetDataBuffer(plVar26,0x28,&local_168,1);
-      uVar9 = (int)plVar26[2] + 0x28;
-      uVar30 = 0x28;
+      uVar11 = (int)plVar26[2] + 0x28;
+      uVar29 = 0x28;
       local_1d6 = 0x28;
       local_198 = CONCAT44(local_198._4_4_,6);
       bVar1 = *(byte *)(lVar21 + 6);
-      if (uVar9 < *(uint *)(plVar26[1] + 0x28)) {
+      if (uVar11 < *(uint *)(plVar26[1] + 0x28)) {
         *(int *)(plVar26 + 5) = (int)plVar26[5] + 0x28;
         *(int *)(plVar26 + 3) = (int)plVar26[3] + -0x28;
-        *(uint *)(plVar26 + 2) = uVar9;
+        *(uint *)(plVar26 + 2) = uVar11;
       }
       else {
         NdisAdvanceNetBufferDataStart(plVar26,0x28,0,0);
       }
       while ((bVar1 < 0x3d && ((0x1000080000000001U >> ((ulonglong)bVar1 & 0x3f) & 1) != 0))) {
         local_1d4 = local_1d4 & 0xffff0000;
         local_228 = (longlong *)((ulonglong)local_228 & 0xffffffff00000000);
-        pbVar14 = (byte *)NdisGetDataBuffer(plVar26,2,&local_1d4,1);
-        uVar17 = (pbVar14[1] + 1) * 8;
-        uVar9 = (int)plVar26[2] + (uint)uVar17;
-        uVar20 = (uint)uVar17;
-        if (uVar9 < *(uint *)(plVar26[1] + 0x28)) {
-          *(uint *)(plVar26 + 5) = (int)plVar26[5] + uVar20;
-          *(uint *)(plVar26 + 3) = (int)plVar26[3] - uVar20;
-          *(uint *)(plVar26 + 2) = uVar9;
+        pbVar15 = (byte *)NdisGetDataBuffer(plVar26,2,&local_1d4,1);
+        uVar18 = (pbVar15[1] + 1) * 8;
+        uVar11 = (int)plVar26[2] + (uint)uVar18;
+        uVar12 = (uint)uVar18;
+        if (uVar11 < *(uint *)(plVar26[1] + 0x28)) {
+          *(uint *)(plVar26 + 5) = (int)plVar26[5] + uVar12;
+          *(uint *)(plVar26 + 3) = (int)plVar26[3] - uVar12;
+          *(uint *)(plVar26 + 2) = uVar11;
         }
         else {
-          NdisAdvanceNetBufferDataStart(plVar26,(uint)uVar17,0,0);
-        }
-        uVar30 = uVar30 + uVar17;
+          NdisAdvanceNetBufferDataStart(plVar26,(uint)uVar18,0,0);
+        }
+        uVar29 = uVar29 + uVar18;
         if (bVar1 != 0x3c) {
-          local_198 = CONCAT44(local_198._4_4_,uVar30 - uVar20);
-          local_1d6 = uVar30;
-        }
-        bVar1 = *pbVar14;
+          local_198 = CONCAT44(local_198._4_4_,uVar29 - uVar12);
+          local_1d6 = uVar29;
+        }
+        bVar1 = *pbVar15;
       }
       local_1d8[0] = bVar1;
-      NetioRetreatNetBuffer(plVar26,uVar30,0);
+      NetioRetreatNetBuffer(plVar26,uVar29,0);
       param_1 = local_1a0;
-      plVar27 = local_1b8;
-      uVar9 = local_1d6 + 8;
+      plVar30 = local_1b0;
+      uVar11 = local_1d6 + 8;
       if (local_1d0 < local_1d6 + 0x10) {
         local_1f8 = 0xe000412a;
 LAB_10:
         lVar21 = *(longlong *)(*local_1c8 + 0x28);
         lVar22 = *(longlong *)(param_1 + 8);
-        uVar19 = *(ulonglong *)(lVar22 + 0xa0);
+        uVar20 = *(ulonglong *)(lVar22 + 0xa0);
         puVar3 = *(undefined8 **)(lVar22 + 8);
-        if (((int)uVar19 == 0) && (pbVar14 = pbVar12, uVar9 = uVar11, *(int *)(lVar22 + 0x140) == 0)
+        if (((int)uVar20 == 0) && (pbVar15 = pbVar13, uVar11 = uVar9, *(int *)(lVar22 + 0x140) == 0)
            ) {
           for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-            uVar9 = (int)pbVar14 + 1;
-            pbVar14 = (byte *)(ulonglong)uVar9;
+            uVar11 = (int)pbVar15 + 1;
+            pbVar15 = (byte *)(ulonglong)uVar11;
           }
         }
         else {
-          if (uVar19 == 0) {
-            uVar19 = (ulonglong)*(uint *)(lVar22 + 0x140);
-          }
-          uVar9 = (uint)uVar19 & 0xfffff;
-          uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
+          if (uVar20 == 0) {
+            uVar20 = (ulonglong)*(uint *)(lVar22 + 0x140);
+          }
+          uVar11 = (uint)uVar20 & 0xfffff;
+          uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
         }
         lVar22 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + *(longlong *)(lVar21 + 0x4f28);
-        *(uint *)(lVar22 + 0x98) = uVar9 + *(int *)(lVar22 + 0x98);
+        *(uint *)(lVar22 + 0x98) = uVar11 + *(int *)(lVar22 + 0x98);
         if ((DAT_0 < '\0') || (DAT_140232a80 != '\0')) {
           local_210 = *(longlong *)(param_1 + 8);
-          uVar19 = *(ulonglong *)(local_210 + 0xa0);
+          uVar20 = *(ulonglong *)(local_210 + 0xa0);
           local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
           puVar3 = *(undefined8 **)(local_210 + 8);
-          if (((int)uVar19 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
+          if (((int)uVar20 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
             for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-              uVar11 = (int)pbVar12 + 1;
-              pbVar12 = (byte *)(ulonglong)uVar11;
+              uVar9 = (int)pbVar13 + 1;
+              pbVar13 = (byte *)(ulonglong)uVar9;
             }
           }
           else {
-            if (uVar19 == 0) {
-              uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
-            }
-            uVar11 = (uint)uVar19 & 0xfffff;
-            uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
+            if (uVar20 == 0) {
+              uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
+            }
+            uVar9 = (uint)uVar20 & 0xfffff;
+            uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
           }
           local_200 = 3;
           local_218 = 0;
-          local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar11);
+          local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
           local_228 = (longlong *)CONCAT44(local_228._4_4_,0x103);
           IppLogPacketDiscard(*(undefined2 *)(lVar21 + 0x1c),*(undefined2 *)(param_1 + 0x68),
                               *(undefined8 *)(param_1 + 0x108),*(undefined8 *)(param_1 + 0xf8));
         }
-        *(undefined4 *)((longlong)local_1b8 + 0x8c) = 0xc000009a;
+        *(undefined4 *)((longlong)local_1b0 + 0x8c) = 0xc000009a;
         *(int *)(local_190 + 10) = (int)local_190[10] + local_1c0[0];
         *(int *)(local_188 + 0xa0) = *(int *)(local_188 + 0xa0) + local_1c0[0];
         return;
       }
-      if (((int)local_1b8[0x14] == 0) && ((int)local_1b8[0x28] == 0)) {
+      if (((int)local_1b0[0x14] == 0) && ((int)local_1b0[0x28] == 0)) {
         local_1d0 = (local_1d0 - local_1d6) - 8 & 0xfff8;
       }
       else {
         local_1d0 = *(uint *)(plVar26 + 3);
       }
       local_220 = (undefined1 *)((ulonglong)local_220 & 0xffffffffffffff00);
       local_228 = (longlong *)
                   CONCAT44(local_228._4_4_,(uint)*(ushort *)((longlong)local_1c8 + 0x82));
-      lVar21 = NetioAllocateAndReferenceFragmentNetBufferList(local_1b8,local_1d6,local_1d0,uVar9);
+      lVar21 = NetioAllocateAndReferenceFragmentNetBufferList(local_1b0,local_1d6,local_1d0,uVar11);
       local_178 = lVar21;
       if (lVar21 == 0) {
         if (DAT_11 < '\0') {
           McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
         }
         local_1f8 = 0xe000412b;
         goto LAB_10;
       }
-      pbVar14 = (byte *)(ulonglong)(ushort)((short)plVar26[3] - local_1d6);
+      pbVar15 = (byte *)(ulonglong)(ushort)((short)plVar26[3] - local_1d6);
       local_1d4 = 0;
-      NetioAdvanceNetBufferList(lVar21,uVar9 & 0xffff);
+      NetioAdvanceNetBufferList(lVar21,uVar11 & 0xffff);
       if (*(longlong *)(param_1 + 0xd0) == 0) {
-        puVar15 = (uint *)(local_1c8 + 0x7d);
+        puVar16 = (uint *)(local_1c8 + 0x7d);
       }
       else {
-        puVar15 = (uint *)(*(longlong *)(param_1 + 0xd0) + 0x80);
+        puVar16 = (uint *)(*(longlong *)(param_1 + 0xd0) + 0x80);
       }
       LOCK();
-      uVar9 = *puVar15;
-      *puVar15 = *puVar15 + 1;
+      uVar11 = *puVar16;
+      *puVar16 = *puVar16 + 1;
       UNLOCK();
-      plVar28 = *(longlong **)(lVar21 + 8);
+      plVar25 = *(longlong **)(lVar21 + 8);
       local_1a0 = CONCAT44(local_1a0._4_4_,
-                           uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |
-                           uVar9 << 0x18);
-      if (plVar28 != (longlong *)0x0) {
+                           uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 |
+                           uVar11 << 0x18);
+      if (plVar25 != (longlong *)0x0) {
         plVar23 = (longlong *)(ulonglong)local_1d6;
-        local_1b0 = CONCAT44(local_1b0._4_4_,(uint)local_1d6);
+        local_1b8 = CONCAT44(local_1b8._4_4_,(uint)local_1d6);
         local_180 = plVar23;
         do {
-          uVar30 = *(ushort *)(plVar28 + 3);
+          uVar29 = *(ushort *)(plVar25 + 3);
           if ((local_1d0 < (uint)((int)plVar26[3] - (int)plVar23)) ||
-             (pbVar16 = pbVar12, (char)local_1a8 != '\0')) {
-            if (*(uint *)(plVar28 + 2) < 8) {
-              NdisRetreatNetBufferDataStart(plVar28,8,0,NetioAllocateMdl_exref);
+             (pbVar17 = pbVar13, (char)local_1a8 != '\0')) {
+            if (*(uint *)(plVar25 + 2) < 8) {
+              NdisRetreatNetBufferDataStart(plVar25,8,0,NetioAllocateMdl_exref);
             }
             else {
-              *(int *)(plVar28 + 5) = (int)plVar28[5] + -8;
-              *(int *)(plVar28 + 3) = (int)plVar28[3] + 8;
-              *(uint *)(plVar28 + 2) = *(uint *)(plVar28 + 2) - 8;
+              *(int *)(plVar25 + 5) = (int)plVar25[5] + -8;
+              *(int *)(plVar25 + 3) = (int)plVar25[3] + 8;
+              *(uint *)(plVar25 + 2) = *(uint *)(plVar25 + 2) - 8;
             }
             local_228 = (longlong *)((ulonglong)local_228 & 0xffffffff00000000);
-            pbVar16 = (byte *)NdisGetDataBuffer(plVar28,8,0,1);
-            plVar23 = (longlong *)(local_1b0 & 0xffffffff);
-            *pbVar16 = local_1d8[0];
-            *(undefined4 *)(pbVar16 + 4) = (undefined4)local_1a0;
-            pbVar16[1] = 0;
-            *(ushort *)(pbVar16 + 2) = (ushort)local_1d4 >> 8 | (ushort)local_1d4 << 8;
-          }
-          uVar9 = (uint)plVar23;
-          if (*(uint *)(plVar28 + 2) < uVar9) {
-            NdisRetreatNetBufferDataStart(plVar28,plVar23,0,NetioAllocateMdl_exref);
+            pbVar17 = (byte *)NdisGetDataBuffer(plVar25,8,0,1);
+            plVar23 = (longlong *)(local_1b8 & 0xffffffff);
+            *pbVar17 = local_1d8[0];
+            *(undefined4 *)(pbVar17 + 4) = (undefined4)local_1a0;
+            pbVar17[1] = 0;
+            *(ushort *)(pbVar17 + 2) = (ushort)local_1d4 >> 8 | (ushort)local_1d4 << 8;
+          }
+          uVar11 = (uint)plVar23;
+          if (*(uint *)(plVar25 + 2) < uVar11) {
+            NdisRetreatNetBufferDataStart(plVar25,plVar23,0,NetioAllocateMdl_exref);
           }
           else {
-            *(uint *)(plVar28 + 5) = (int)plVar28[5] - uVar9;
-            *(uint *)(plVar28 + 3) = (int)plVar28[3] + uVar9;
-            *(uint *)(plVar28 + 2) = *(uint *)(plVar28 + 2) - uVar9;
+            *(uint *)(plVar25 + 5) = (int)plVar25[5] - uVar11;
+            *(uint *)(plVar25 + 3) = (int)plVar25[3] + uVar11;
+            *(uint *)(plVar25 + 2) = *(uint *)(plVar25 + 2) - uVar11;
           }
           local_220 = local_170;
           local_228 = local_180;
-          RtlCopyMdlToMdl(plVar26[4],(int)plVar26[5],plVar28[4],(int)plVar28[5]);
-          if ((local_1d0 < (int)plVar26[3] - (uint)local_1b0) || ((char)local_1a8 != '\0')) {
+          RtlCopyMdlToMdl(plVar26[4],(int)plVar26[5],plVar25[4],(int)plVar25[5]);
+          if ((local_1d0 < (int)plVar26[3] - (uint)local_1b8) || ((char)local_1a8 != '\0')) {
             local_228 = (longlong *)((ulonglong)local_228 & 0xffffffff00000000);
-            lVar21 = NdisGetDataBuffer(plVar28,0x28,0,1);
-            uVar17 = (uVar30 - 0x20) + local_1d6;
-            *(ushort *)(lVar21 + 4) = uVar17 >> 8 | uVar17 * 0x100;
+            lVar21 = NdisGetDataBuffer(plVar25,0x28,0,1);
+            uVar18 = (uVar29 - 0x20) + local_1d6;
+            *(ushort *)(lVar21 + 4) = uVar18 >> 8 | uVar18 * 0x100;
             *(undefined1 *)((local_198 & 0xffffffff) + lVar21) = 0x2c;
           }
-          plVar23 = (longlong *)(ulonglong)(uint)local_1b0;
-          if ((ushort)pbVar14 == uVar30) {
+          plVar23 = (longlong *)(ulonglong)(uint)local_1b8;
+          if ((ushort)pbVar15 == uVar29) {
             plVar26 = (longlong *)*plVar26;
             local_1d4 = 0;
-            pbVar14 = pbVar12;
+            pbVar15 = pbVar13;
             if (plVar26 != (longlong *)0x0) {
-              pbVar14 = (byte *)(ulonglong)(ushort)(*(short *)(plVar26 + 3) - local_1d6);
+              pbVar15 = (byte *)(ulonglong)(ushort)(*(short *)(plVar26 + 3) - local_1d6);
             }
           }
           else {
-            *(ushort *)(pbVar16 + 2) = *(ushort *)(pbVar16 + 2) | 0x100;
-            local_1d4 = local_1d4 + uVar30;
-            pbVar14 = (byte *)(ulonglong)(ushort)((ushort)pbVar14 - uVar30);
-          }
-          if ((pbVar16 == (byte *)0x0) || ((*(ushort *)(pbVar16 + 2) & 0x100) == 0)) {
+            *(ushort *)(pbVar17 + 2) = *(ushort *)(pbVar17 + 2) | 0x100;
+            local_1d4 = local_1d4 + uVar29;
+            pbVar15 = (byte *)(ulonglong)(ushort)((ushort)pbVar15 - uVar29);
+          }
+          if ((pbVar17 == (byte *)0x0) || ((*(ushort *)(pbVar17 + 2) & 0x100) == 0)) {
             if (*(longlong *)(param_1 + 0xd0) == 0) {
-              puVar15 = (uint *)(local_1c8 + 0x7d);
+              puVar16 = (uint *)(local_1c8 + 0x7d);
             }
             else {
-              puVar15 = (uint *)(*(longlong *)(param_1 + 0xd0) + 0x80);
+              puVar16 = (uint *)(*(longlong *)(param_1 + 0xd0) + 0x80);
             }
             LOCK();
-            uVar9 = *puVar15;
-            *puVar15 = *puVar15 + 1;
+            uVar11 = *puVar16;
+            *puVar16 = *puVar16 + 1;
             UNLOCK();
             local_1a0 = CONCAT44(local_1a0._4_4_,
-                                 uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 |
-                                 uVar9 << 0x18);
-          }
-          plVar28 = (longlong *)*plVar28;
+                                 uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8
+                                 | uVar11 << 0x18);
+          }
+          plVar25 = (longlong *)*plVar25;
           lVar21 = local_178;
-          plVar27 = local_1b8;
-        } while (plVar28 != (longlong *)0x0);
-      }
-      uVar9 = (uint)*(undefined8 *)(lVar21 + 0xa0);
-      if (uVar9 == 0) {
-        uVar9 = (uint)*(undefined8 *)(lVar21 + 0x140);
-        if (uVar9 != 0) {
-          *(uint *)(lVar21 + 0x140) = (uVar9 + 0x800000 ^ uVar9) & 0x3ff00000 ^ uVar9;
+          plVar30 = local_1b0;
+        } while (plVar25 != (longlong *)0x0);
+      }
+      uVar11 = (uint)*(undefined8 *)(lVar21 + 0xa0);
+      if (uVar11 == 0) {
+        uVar11 = (uint)*(undefined8 *)(lVar21 + 0x140);
+        if (uVar11 != 0) {
+          *(uint *)(lVar21 + 0x140) = (uVar11 + 0x800000 ^ uVar11) & 0x3ff00000 ^ uVar11;
         }
       }
       else {
-        *(uint *)(lVar21 + 0xa0) = (uVar9 + 0x800000 ^ uVar9) & 0x3ff00000 ^ uVar9;
+        *(uint *)(lVar21 + 0xa0) = (uVar11 + 0x800000 ^ uVar11) & 0x3ff00000 ^ uVar11;
       }
       *(int *)((longlong)local_190 + 0x4c) = *(int *)((longlong)local_190 + 0x4c) + local_1c0[0];
       *(int *)(local_188 + 0x9c) = *(int *)(local_188 + 0x9c) + local_1c0[0];
       lVar22 = local_188;
       plVar26 = local_190;
       iVar10 = IppGetPacketCount(lVar21);
       *(int *)((longlong)plVar26 + 0x54) = *(int *)((longlong)plVar26 + 0x54) + iVar10;
       *(int *)(lVar22 + 0xa4) = iVar10 + *(int *)(lVar22 + 0xa4);
-      iVar10 = IPsecProcessOutboundFragList(0x29,plVar27,lVar21);
+      iVar10 = IPsecProcessOutboundFragList(0x29,plVar30,lVar21);
       if (0 < iVar10) {
         if (iVar10 == 1) {
           lVar22 = *(longlong *)(*local_1c8 + 0x28);
           lVar24 = *(longlong *)(param_1 + 8);
-          uVar19 = *(ulonglong *)(lVar24 + 0xa0);
+          uVar20 = *(ulonglong *)(lVar24 + 0xa0);
           puVar3 = *(undefined8 **)(lVar24 + 8);
-          if (((int)uVar19 == 0) &&
-             (pbVar14 = pbVar12, uVar9 = uVar11, *(int *)(lVar24 + 0x140) == 0)) {
+          if (((int)uVar20 == 0) &&
+             (pbVar15 = pbVar13, uVar11 = uVar9, *(int *)(lVar24 + 0x140) == 0)) {
             for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-              uVar9 = (int)pbVar14 + 1;
-              pbVar14 = (byte *)(ulonglong)uVar9;
+              uVar11 = (int)pbVar15 + 1;
+              pbVar15 = (byte *)(ulonglong)uVar11;
             }
           }
           else {
-            if (uVar19 == 0) {
-              uVar19 = (ulonglong)*(uint *)(lVar24 + 0x140);
-            }
-            uVar9 = (uint)uVar19 & 0xfffff;
-            uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
+            if (uVar20 == 0) {
+              uVar20 = (ulonglong)*(uint *)(lVar24 + 0x140);
+            }
+            uVar11 = (uint)uVar20 & 0xfffff;
+            uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
           }
           lVar24 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + *(longlong *)(lVar22 + 0x4f28);
-          *(uint *)(lVar24 + 0x98) = uVar9 + *(int *)(lVar24 + 0x98);
+          *(uint *)(lVar24 + 0x98) = uVar11 + *(int *)(lVar24 + 0x98);
           if ((DAT_0 < '\0') || (DAT_140232a80 != '\0')) {
             local_210 = *(longlong *)(param_1 + 8);
-            uVar19 = *(ulonglong *)(local_210 + 0xa0);
+            uVar20 = *(ulonglong *)(local_210 + 0xa0);
             local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
             puVar3 = *(undefined8 **)(local_210 + 8);
-            if (((int)uVar19 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
+            if (((int)uVar20 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
               for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-                uVar11 = (int)pbVar12 + 1;
-                pbVar12 = (byte *)(ulonglong)uVar11;
+                uVar9 = (int)pbVar13 + 1;
+                pbVar13 = (byte *)(ulonglong)uVar9;
               }
             }
             else {
-              if (uVar19 == 0) {
-                uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
-              }
-              uVar11 = (uint)uVar19 & 0xfffff;
-              uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
+              if (uVar20 == 0) {
+                uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
+              }
+              uVar9 = (uint)uVar20 & 0xfffff;
+              uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
             }
             local_1f8 = 0xe000412d;
             local_200 = 3;
             local_218 = 0;
-            local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar11);
+            local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
             local_228 = (longlong *)CONCAT44(local_228._4_4_,9);
             IppLogPacketDiscard(*(undefined2 *)(lVar22 + 0x1c),*(undefined2 *)(param_1 + 0x68),
                                 *(undefined8 *)(param_1 + 0x108),*(undefined8 *)(param_1 + 0xf8));
-            plVar27 = local_1b8;
-          }
-        }
-        NetioDereferenceNetBufferList(plVar27,0);
+            plVar30 = local_1b0;
+          }
+        }
+        NetioDereferenceNetBufferList(plVar30,0);
         goto LAB_4;
       }
-      NetioDereferenceNetBufferList(plVar27,0);
+      NetioDereferenceNetBufferList(plVar30,0);
       *(longlong *)(param_1 + 8) = lVar21;
     }
 LAB_1:
     *(undefined4 *)(*(longlong *)(param_1 + 8) + 0x8c) = 0;
   }
   else {
     *(undefined4 *)(*(longlong *)(param_1 + 8) + 0x8c) = 0xc000021b;
     lVar21 = *(longlong *)(*local_1c8 + 0x28);
     lVar22 = *(longlong *)(param_1 + 8);
-    uVar19 = *(ulonglong *)(lVar22 + 0xa0);
+    uVar20 = *(ulonglong *)(lVar22 + 0xa0);
     puVar3 = *(undefined8 **)(lVar22 + 8);
-    if (((int)uVar19 == 0) && (pbVar14 = pbVar12, uVar9 = uVar11, *(int *)(lVar22 + 0x140) == 0)) {
+    if (((int)uVar20 == 0) && (pbVar15 = pbVar13, uVar11 = uVar9, *(int *)(lVar22 + 0x140) == 0)) {
       for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-        uVar9 = (int)pbVar14 + 1;
-        pbVar14 = (byte *)(ulonglong)uVar9;
+        uVar11 = (int)pbVar15 + 1;
+        pbVar15 = (byte *)(ulonglong)uVar11;
       }
     }
     else {
-      if (uVar19 == 0) {
-        uVar19 = (ulonglong)*(uint *)(lVar22 + 0x140);
-      }
-      uVar9 = (uint)uVar19 & 0xfffff;
-      uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
+      if (uVar20 == 0) {
+        uVar20 = (ulonglong)*(uint *)(lVar22 + 0x140);
+      }
+      uVar11 = (uint)uVar20 & 0xfffff;
+      uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
     }
     lVar22 = (ulonglong)SystemReserved1[0x12]._4_4_ * 0xc0 + *(longlong *)(lVar21 + 0x4f28);
-    *(uint *)(lVar22 + 0x98) = uVar9 + *(int *)(lVar22 + 0x98);
+    *(uint *)(lVar22 + 0x98) = uVar11 + *(int *)(lVar22 + 0x98);
     if ((-1 < DAT_0) && (DAT_140232a80 == '\0')) {
       return;
     }
     local_210 = *(longlong *)(param_1 + 8);
-    uVar13 = *(undefined8 *)(param_1 + 0x108);
-    uVar25 = *(undefined8 *)(param_1 + 0xf8);
-    uVar19 = *(ulonglong *)(local_210 + 0xa0);
+    uVar14 = *(undefined8 *)(param_1 + 0x108);
+    uVar28 = *(undefined8 *)(param_1 + 0xf8);
+    uVar20 = *(ulonglong *)(local_210 + 0xa0);
     local_208 = *(undefined8 *)(*(longlong *)(param_1 + 0xe0) + 8);
     puVar3 = *(undefined8 **)(local_210 + 8);
-    if (((int)uVar19 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
+    if (((int)uVar20 == 0) && (*(int *)(local_210 + 0x140) == 0)) {
       for (; puVar3 != (undefined8 *)0x0; puVar3 = (undefined8 *)*puVar3) {
-        uVar11 = (int)pbVar12 + 1;
-        pbVar12 = (byte *)(ulonglong)uVar11;
+        uVar9 = (int)pbVar13 + 1;
+        pbVar13 = (byte *)(ulonglong)uVar9;
       }
     }
     else {
-      if (uVar19 == 0) {
-        uVar19 = (ulonglong)*(uint *)(local_210 + 0x140);
-      }
-      uVar11 = (uint)uVar19 & 0xfffff;
-      uVar11 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar11) / uVar11;
+      if (uVar20 == 0) {
+        uVar20 = (ulonglong)*(uint *)(local_210 + 0x140);
+      }
+      uVar9 = (uint)uVar20 & 0xfffff;
+      uVar9 = (*(int *)((longlong)puVar3 + 0x54) + -1 + uVar9) / uVar9;
     }
     local_1f8 = 0xe0004127;
-    local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar11);
+    local_220 = (undefined1 *)CONCAT44(local_220._4_4_,uVar9);
     local_228 = (longlong *)CONCAT44(local_228._4_4_,0x122);
 LAB_9:
     local_200 = 3;
     local_218 = 0;
-    IppLogPacketDiscard(*(undefined2 *)(lVar21 + 0x1c),*(undefined2 *)(param_1 + 0x68),uVar13,uVar25
+    IppLogPacketDiscard(*(undefined2 *)(lVar21 + 0x1c),*(undefined2 *)(param_1 + 0x68),uVar14,uVar28
                        );
   }
   return;
 }
 

```


## UdpConnectRedirect

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.17|
|i_ratio|0.09|
|m_ratio|0.95|
|b_ratio|0.13|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|UdpConnectRedirect|UdpConnectRedirect|
|fullname|UdpConnectRedirect|UdpConnectRedirect|
|`refcount`|10|4|
|`length`|998|910|
|`called`|<details><summary>Expand for full list:<br>AleInspectConnectRequest<br>IN6ADDR_SETV4MAPPED<br>IN6_IS_ADDR_V4MAPPED<br>INETADDR_ISEQUAL<br>INETADDR_SETSOCKADDR<br>McTemplateK0ppqqq_EtwWriteTransfer<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>UdpConnectRedirectCallbackContinue</summary>UdpSetDestinationEndpoint<br>__security_check_cookie<br>memmove<br>memset</details>|<details><summary>Expand for full list:<br>AleInspectConnectRequest<br>CreateUdpConnectRedirectCallbackContext<br>Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline<br>INETADDR_SETSOCKADDR<br>McTemplateK0ppqqq_EtwWriteTransfer<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>UdpConnectRedirectCallback<br>UdpConnectRedirectObsolete<br>UdpSetDestinationEndpoint</summary>__security_check_cookie<br>memmove</details>|
|calling|UdpIoControlEndpoint|UdpIoControlEndpoint|
|paramcount|0|0|
|`address`|140002e40|140029d20|
|sig|undefined UdpConnectRedirect(void)|undefined UdpConnectRedirect(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### UdpConnectRedirect Called Diff


```diff
--- UdpConnectRedirect called
+++ UdpConnectRedirect called
@@ -2,3 +2,2 @@
-IN6ADDR_SETV4MAPPED
-IN6_IS_ADDR_V4MAPPED
-INETADDR_ISEQUAL
+CreateUdpConnectRedirectCallbackContext
+Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline
@@ -7 +5,0 @@
-NTOSKRNL.EXE::ExAllocatePool2
@@ -11 +9,2 @@
-UdpConnectRedirectCallbackContinue
+UdpConnectRedirectCallback
+UdpConnectRedirectObsolete
@@ -15 +13,0 @@
-memset
```


### UdpConnectRedirect Diff


```diff
--- UdpConnectRedirect
+++ UdpConnectRedirect
@@ -1,190 +1,176 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* WARNING: Type propagation algorithm not settling */
 
-ulonglong UdpConnectRedirect(undefined8 *param_1,longlong param_2)
+ulonglong UdpConnectRedirect(longlong param_1,longlong param_2)
 
 {
   longlong *plVar1;
-  undefined8 uVar2;
-  code *pcVar3;
-  char cVar4;
-  uint uVar5;
-  undefined8 *puVar6;
-  void *pvVar7;
-  ulonglong uVar8;
-  short *psVar9;
-  short *psVar10;
+  longlong lVar2;
+  undefined4 uVar3;
+  short *_Src;
+  undefined8 uVar4;
+  undefined8 *puVar5;
+  code *pcVar6;
+  longlong *plVar7;
+  uint uVar8;
+  ulonglong uVar9;
+  longlong lVar10;
   undefined1 *puVar11;
   size_t _Size;
-  short sVar12;
-  longlong lVar13;
-  size_t _Size_00;
-  undefined1 auStack_208 [8];
-  undefined1 auStack_200 [24];
-  undefined2 local_1e8;
-  undefined1 local_1a8;
-  undefined8 local_1a0;
-  undefined8 local_198;
-  undefined8 uStack_190;
-  undefined8 local_188;
-  short local_180 [16];
-  longlong local_160 [3];
-  short local_148;
-  short local_146;
-  undefined4 local_144;
-  undefined8 local_140;
-  short local_c8;
-  undefined2 local_c6;
-  ulonglong local_48;
+  undefined8 uStack_d0;
+  undefined1 auStack_c8 [8];
+  undefined1 auStack_c0 [24];
+  undefined2 local_a8 [4];
+  undefined8 uStack_a0;
+  uint local_98 [2];
+  longlong local_90 [5];
+  undefined1 local_68 [8];
+  longlong *local_60 [6];
+  ulonglong local_30;
   
-  puVar11 = auStack_208;
-  local_48 = __security_cookie ^ (ulonglong)auStack_208;
-  memset(&local_c8,0,0x80);
-  local_1a0 = 0;
-  local_1a8 = 0;
-  memset(&local_148,0,0x80);
-  psVar10 = (short *)param_1[4];
-  local_188 = 0;
-  local_198 = 0;
-  uStack_190 = 0;
-  if (param_1[5] == 0) {
-    uVar8 = UdpSetDestinationEndpoint(param_2,psVar10,1);
-    puVar11 = auStack_208;
+  puVar11 = auStack_c8;
+  local_30 = __security_cookie ^ (ulonglong)auStack_c8;
+  if ((Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 0x10) == 0) {
+    uVar8 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline();
+  }
+  else {
+    uVar8 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 1;
+  }
+  if (uVar8 == 0) {
+    uVar9 = UdpConnectRedirectObsolete(param_1,param_2);
+    puVar11 = auStack_c8;
     goto LAB_0;
   }
-  _Size_00 = 0x1c;
-  if (((*(uint *)(param_2 + 0x18) & 0x20) == 0) || (*psVar10 != 0x17)) {
-    _Size = 0x1c;
-    if (*psVar10 != 0x17) {
-      _Size = 0x10;
+  _Src = *(short **)(param_1 + 0x20);
+  local_60[0] = (longlong *)0x0;
+  local_68[0] = 0;
+  local_60[1] = (longlong *)0x0;
+  local_60[2] = (longlong *)0x0;
+  local_60[3] = (longlong *)0x0;
+  local_60[4] = (longlong *)0x0;
+  if (*(longlong *)(param_1 + 0x28) == 0) {
+    uVar8 = UdpSetDestinationEndpoint(param_2,_Src,1);
+    uVar9 = (ulonglong)uVar8;
+    goto LAB_0;
+  }
+  uVar8 = CreateUdpConnectRedirectCallbackContext(local_60 + 4,param_1,param_2);
+  plVar7 = local_60[4];
+  uVar9 = (ulonglong)uVar8;
+  puVar11 = auStack_c8;
+  if (uVar8 == 0) {
+    if (((*(uint *)(param_2 + 0x18) & 0x20) == 0) || (*_Src != 0x17)) {
+      _Size = 0x1c;
+      if (*_Src != 0x17) {
+        _Size = 0x10;
+      }
+      memmove(local_60[4] + 0x15,_Src,_Size);
     }
-    memmove(&local_148,psVar10,_Size);
-  }
-  else {
-    psVar9 = psVar10 + 4;
-    cVar4 = IN6_IS_ADDR_V4MAPPED();
-    if (cVar4 == '\0') {
-      uVar8 = 0xc0000207;
-      puVar11 = auStack_208;
-      goto LAB_0;
-    }
-    local_146 = psVar10[1];
-    local_144 = *(undefined4 *)(psVar9 + 6);
-    local_140 = 0;
-    local_148 = 2;
-  }
-  KeAcquireInStackQueuedSpinLock(param_2,&local_198);
-  do {
-  } while (*(int *)(param_2 + 8) != 0);
-  uVar2 = *(undefined8 *)(param_2 + 0x48);
-  if (*(longlong *)(param_2 + 0x68) == 0) {
-    local_c8 = local_148;
-    local_c6 = *(undefined2 *)(param_2 + 0xa8);
-  }
-  else {
-    puVar6 = *(undefined8 **)(*(longlong *)(param_2 + 0x68) + 0x10);
-    local_1e8 = *(undefined2 *)(param_2 + 0xa8);
-    INETADDR_SETSOCKADDR
-              (*(undefined2 *)(*(longlong *)(param_2 + 0x70) + 0x18),&local_c8,*puVar6,
-               *(undefined4 *)(puVar6 + 1));
-  }
-  KeReleaseInStackQueuedSpinLock(&local_198);
-  puVar6 = (undefined8 *)ExAllocatePool2(0x40,0x20,0x74727543);
-  if (puVar6 == (undefined8 *)0x0) {
-LAB_1:
-    uVar8 = 0xc0000017;
-    puVar11 = auStack_208;
-  }
-  else {
-    if (param_1[5] != 0) {
-      pvVar7 = (void *)ExAllocatePool2(0x42,param_1[5],0x74727543);
-      puVar6[2] = pvVar7;
-      if (pvVar7 == (void *)0x0) {
-        ExFreePoolWithTag(puVar6,0x74727543);
+    else {
+      if (((((_Src[4] != 0) || (_Src[5] != 0)) || (_Src[6] != 0)) ||
+          ((_Src[7] != 0 || (_Src[8] != 0)))) || (_Src[9] != -1)) {
+        uVar9 = 0xc0000207;
+        puVar11 = auStack_c8;
         goto LAB_1;
       }
-      memmove(pvVar7,(void *)param_1[4],param_1[5]);
+      uVar3 = *(undefined4 *)(_Src + 10);
+      *(short *)((longlong)local_60[4] + 0xaa) = _Src[1];
+      *(undefined2 *)(local_60[4] + 0x15) = 2;
+      *(undefined4 *)((longlong)local_60[4] + 0xac) = uVar3;
+      local_60[4][0x16] = 0;
     }
-    *puVar6 = *param_1;
-    puVar6[1] = param_1[1];
-    puVar6[3] = param_2;
+    KeAcquireInStackQueuedSpinLock(param_2,local_60 + 1);
+    do {
+    } while (*(int *)(param_2 + 8) != 0);
+    uVar4 = *(undefined8 *)(param_2 + 0x48);
+    if (*(longlong *)(param_2 + 0x68) == 0) {
+      *(short *)(plVar7 + 5) = (short)plVar7[0x15];
+      *(undefined2 *)((longlong)plVar7 + 0x2a) = *(undefined2 *)(param_2 + 0xa8);
+    }
+    else {
+      puVar5 = *(undefined8 **)(*(longlong *)(param_2 + 0x68) + 0x10);
+      local_a8[0] = *(undefined2 *)(param_2 + 0xa8);
+      INETADDR_SETSOCKADDR
+                (*(undefined2 *)(*(longlong *)(param_2 + 0x70) + 0x18),plVar7 + 5,*puVar5,
+                 *(undefined4 *)(puVar5 + 1));
+    }
+    KeReleaseInStackQueuedSpinLock(local_60 + 1);
+    lVar10 = 1;
     LOCK();
     plVar1 = (longlong *)(param_2 + 0x10);
-    lVar13 = *plVar1;
+    lVar2 = *plVar1;
     *plVar1 = *plVar1 + 1;
     UNLOCK();
-    if (lVar13 + 1 < 2) {
-      pcVar3 = (code *)swi(0x29);
-      (*pcVar3)(0xe);
-      puVar11 = auStack_200;
+    puVar11 = auStack_c8;
+    if (lVar2 + 1 < 2) {
+      pcVar6 = (code *)swi(0x29);
+      (*pcVar6)(0xe);
+      puVar11 = auStack_c0;
+    }
+    LOCK();
+    lVar2 = *plVar7;
+    *plVar7 = *plVar7 + lVar10;
+    UNLOCK();
+    if (lVar2 + 1 < 2) {
+      pcVar6 = (code *)swi(0x29);
+      (*pcVar6)(0xe);
+      puVar11 = puVar11 + 8;
     }
     *(undefined8 *)(puVar11 + 0x58) = 0;
     *(undefined1 **)(puVar11 + 0x50) = puVar11 + 0x60;
     *(undefined1 **)(puVar11 + 0x48) = puVar11 + 0x68;
-    *(short **)(puVar11 + 0x40) = &local_148;
-    *(short **)(puVar11 + 0x38) = &local_c8;
+    *(longlong **)(puVar11 + 0x40) = plVar7 + 0x15;
+    *(longlong **)(puVar11 + 0x38) = plVar7 + 5;
     *(undefined8 *)(puVar11 + 0x30) = 0;
     *(undefined4 *)(puVar11 + 0x28) = 0x11;
-    *(undefined8 **)(puVar11 + 0x20) = puVar6;
-    *(undefined8 *)(puVar11 + -8) = 0x140003032;
-    uVar5 = AleInspectConnectRequest(uVar2,0,0,UdpConnectRedirectCallback);
-    uVar8 = (ulonglong)uVar5;
-    if ((DAT_2 != 0) && ((DAT_1402375ac & 8) != 0)) {
-      *(uint *)(puVar11 + 0x38) = uVar5;
-      local_160[1] = 0;
-      *(uint *)(puVar11 + 0x30) = ~uVar5 >> 0x1f;
+    *(longlong **)(puVar11 + 0x20) = plVar7;
+    *(undefined8 *)(puVar11 + -8) = 0x140029f7a;
+    uVar8 = AleInspectConnectRequest(uVar4,0,0,UdpConnectRedirectCallback);
+    uVar9 = (ulonglong)uVar8;
+    if ((DAT_2 != 0) && ((DAT_14023758c & 8) != 0)) {
+      *(uint *)(puVar11 + 0x38) = uVar8;
+      *(undefined8 *)(puVar11 + 0x90) = 0;
+      *(uint *)(puVar11 + 0x30) = ~uVar8 >> 0x1f;
       *(undefined4 *)(puVar11 + 0x28) = 0xf;
-      *(undefined8 *)(puVar11 + 0x20) = uVar2;
-      *(undefined8 *)(puVar11 + -8) = 0x140003139;
-      local_160[0] = param_2;
+      *(undefined8 *)(puVar11 + 0x20) = uVar4;
+      *(longlong *)(puVar11 + 0x88) = param_2;
+      *(undefined8 *)(puVar11 + -8) = 0x140029fd6;
       McTemplateK0ppqqq_EtwWriteTransfer
-                (&MICROSOFT_TCPIP_PROVIDER_Context,&INET_INSPECT,local_160,param_2);
+                (&MICROSOFT_TCPIP_PROVIDER_Context,&INET_INSPECT,puVar11 + 0x88,param_2);
     }
-    if (uVar5 != 0x103) {
-      local_180[8] = 0;
-      local_180[9] = 0;
-      local_180[10] = 0;
-      local_180[0xb] = 0;
-      local_180[0xc] = 0;
-      local_180[0xd] = 0;
-      local_180[0] = 0;
-      local_180[1] = 0;
-      local_180[2] = 0;
-      local_180[3] = 0;
-      local_180[4] = 0;
-      local_180[5] = 0;
-      local_180[6] = 0;
-      local_180[7] = 0;
-      if ((-1 < (int)uVar5) && (puVar11[0x60] != '\0')) {
-        lVar13 = puVar6[2];
-        if (((*(uint *)(puVar6[3] + 0x18) & 0x20) == 0) || (local_148 != 2)) {
-          psVar10 = &local_148;
-          sVar12 = local_148;
+    if (uVar8 != 0x103) {
+      *(undefined8 *)(puVar11 + 0x28) = *(undefined8 *)(puVar11 + 0x68);
+      *(longlong **)(puVar11 + 0x20) = plVar7 + 0x15;
+      *(undefined8 *)(puVar11 + -8) = 0x14002a000;
+      UdpConnectRedirectCallback(plVar7,uVar9,puVar11[0x60],plVar7 + 5);
+      uVar9 = 0x103;
+    }
+  }
+LAB_1:
+  if (plVar7 != (longlong *)0x0) {
+    LOCK();
+    lVar2 = *plVar7;
+    *plVar7 = *plVar7 + -1;
+    UNLOCK();
+    if (lVar2 < 2) {
+      if (lVar2 == 1) {
+        lVar2 = plVar7[3];
+        if (lVar2 != 0) {
+          *(undefined8 *)(puVar11 + -8) = 0x14002a04f;
+          ExFreePoolWithTag(lVar2,0x74727543);
         }
-        else {
-          *(undefined8 *)(puVar11 + -8) = 0x140003209;
-          IN6ADDR_SETV4MAPPED(local_180,&local_144,0,local_146);
-          psVar10 = local_180;
-          sVar12 = local_180[0];
-        }
-        *(undefined8 *)(puVar11 + -8) = 0x14000318c;
-        cVar4 = INETADDR_ISEQUAL(lVar13);
-        if ((cVar4 == '\0') || (*(short *)(lVar13 + 2) != psVar10[1])) {
-          pvVar7 = (void *)puVar6[2];
-          if (sVar12 != 0x17) {
-            _Size_00 = 0x10;
-          }
-          *(undefined8 *)(puVar11 + -8) = 0x1400031b4;
-          memmove(pvVar7,psVar10,_Size_00);
-        }
+        *(undefined8 *)(puVar11 + -8) = 0x14002a063;
+        ExFreePoolWithTag(plVar7,0x74727543);
       }
-      *(undefined8 *)(puVar11 + -8) = 0x14000307a;
-      UdpConnectRedirectCallbackContinue(puVar6,uVar8);
-      uVar8 = 0x103;
+      else {
+        pcVar6 = (code *)swi(0x29);
+        (*pcVar6)(0xe);
+        puVar11 = puVar11 + 8;
+      }
     }
   }
 LAB_0:
-  *(undefined8 *)(puVar11 + -8) = 0x1400030ae;
-  return uVar8;
+  *(undefined8 *)(puVar11 + -8) = 0x14002a0a4;
+  return uVar9;
 }
 

```


## wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.31|
|i_ratio|0.29|
|m_ratio|0.85|
|b_ratio|0.78|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState|wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState|
|fullname|wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState|wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState|
|refcount|2|2|
|`length`|199|268|
|called|wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState|wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState|
|calling|wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState|wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState|
|paramcount|0|0|
|`address`|140267eb0|1402680a0|
|sig|undefined wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState(void)|undefined wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState Diff


```diff
--- wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState
+++ wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState
@@ -1,57 +1,74 @@
 
 uint wil_details_EvaluateFeatureDependencies_ReevaluateCachedFeatureEnabledState
                (uint *param_1,uint param_2,longlong param_3)
 
 {
-  uint uVar1;
-  undefined8 *puVar2;
-  uint uVar3;
-  ulonglong uVar4;
-  longlong *plVar5;
+  undefined8 *puVar1;
+  bool bVar2;
+  byte bVar3;
+  uint uVar4;
+  uint uVar5;
   uint uVar6;
-  bool bVar7;
+  longlong *plVar7;
+  bool bVar8;
+  bool bVar9;
   
   uVar6 = param_2 >> 6 & 1;
-  if ((uVar6 != 0) && (plVar5 = *(longlong **)(param_3 + 0x20), plVar5 != (longlong *)0x0)) {
-    do {
-      while( true ) {
-        puVar2 = (undefined8 *)*plVar5;
-        if (puVar2 == (undefined8 *)0x0) goto LAB_0;
-        if ((*(char *)((longlong)puVar2 + 0x1e) == '\0') &&
-           (*(char *)((longlong)puVar2 + 0x1d) == '\0')) break;
-        if ((uVar6 == 0) || (*(char *)((longlong)puVar2 + 0x1f) == '\0')) {
-          uVar6 = 0;
-          goto LAB_0;
+  if (((param_2 & 0xc00) == 0xc00) || (bVar8 = false, bVar2 = true, uVar6 != 0)) {
+    plVar7 = *(longlong **)(param_3 + 0x20);
+    bVar8 = (param_2 & 0xc00) == 0xc00;
+    bVar9 = true;
+    bVar2 = true;
+    if (plVar7 != (longlong *)0x0) {
+      do {
+        while( true ) {
+          puVar1 = (undefined8 *)*plVar7;
+          if (puVar1 == (undefined8 *)0x0) goto LAB_0;
+          if ((*(char *)((longlong)puVar1 + 0x1e) == '\0') &&
+             (*(char *)((longlong)puVar1 + 0x1d) == '\0')) break;
+          if ((!bVar9) || (*(char *)((longlong)puVar1 + 0x1f) == '\0')) {
+            bVar9 = false;
+            goto LAB_0;
+          }
+          plVar7 = plVar7 + 1;
+          bVar9 = true;
         }
-        uVar6 = 1;
-        plVar5 = plVar5 + 1;
-      }
-      uVar4 = wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState(*puVar2,puVar2);
-      if ((uVar6 == 0) || ((uVar4 & 1) == 0)) {
+        bVar3 = wil_details_EvaluateFeatureDependencies_GetCachedFeatureEnabledState(*puVar1,puVar1)
+        ;
+        if ((!bVar9) || (bVar9 = true, (bVar3 & 1) == 0)) {
+          bVar9 = false;
+        }
+        plVar7 = plVar7 + 1;
+      } while (bVar9);
+LAB_0:
+      bVar2 = bVar9;
+      if ((uVar6 == 0) || (!bVar9)) {
         uVar6 = 0;
       }
       else {
         uVar6 = 1;
       }
-      plVar5 = plVar5 + 1;
-    } while (uVar6 != 0);
+    }
   }
-LAB_0:
   do {
-    uVar3 = param_2 & 0xffffffce;
+    uVar5 = param_2 & 0xfffffffe | uVar6;
+    if ((bVar8) && (!bVar2)) {
+      uVar5 = param_2 & 0xfffffbfe | uVar6;
+    }
+    uVar4 = uVar5 & 0xffffffcf;
     if ((param_2 & 1) == uVar6) {
-      uVar3 = param_2 & 0xfffffffe;
+      uVar4 = uVar5;
     }
     LOCK();
-    uVar1 = *param_1;
-    bVar7 = param_2 == uVar1;
-    if (bVar7) {
-      *param_1 = uVar3 & 0xfffffdff | uVar6;
-      uVar1 = param_2;
+    uVar5 = *param_1;
+    bVar9 = param_2 == uVar5;
+    if (bVar9) {
+      *param_1 = uVar4 & 0xfffffdff;
+      uVar5 = param_2;
     }
-    param_2 = uVar1;
+    param_2 = uVar5;
     UNLOCK();
-  } while (!bVar7);
-  return uVar3 & 0xfffffdff | uVar6;
+  } while (!bVar9);
+  return uVar4 & 0xfffffdff;
 }
 

```


## wil_details_RegisterFeatureUsageProvider

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length|
|ratio|0.9|
|i_ratio|0.6|
|m_ratio|0.95|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|wil_details_RegisterFeatureUsageProvider|wil_details_RegisterFeatureUsageProvider|
|fullname|wil_details_RegisterFeatureUsageProvider|wil_details_RegisterFeatureUsageProvider|
|refcount|2|2|
|`length`|107|123|
|called|NTOSKRNL.EXE::RtlRegisterFeatureUsageProvider<br>wil_details_FeatureDescriptors_SkipPadding|NTOSKRNL.EXE::RtlRegisterFeatureUsageProvider<br>wil_details_FeatureDescriptors_SkipPadding|
|calling|wil_InitializeFeatureStaging|wil_InitializeFeatureStaging|
|paramcount|0|0|
|address|14025bbb4|14025bbb4|
|sig|undefined wil_details_RegisterFeatureUsageProvider(void)|undefined wil_details_RegisterFeatureUsageProvider(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_RegisterFeatureUsageProvider Diff


```diff
--- wil_details_RegisterFeatureUsageProvider
+++ wil_details_RegisterFeatureUsageProvider
@@ -1,22 +1,26 @@
 
 void wil_details_RegisterFeatureUsageProvider(void)
 
 {
   int iVar1;
   undefined8 local_28;
   undefined *local_20;
   undefined8 local_18;
+  undefined4 local_10;
+  undefined4 local_c;
   
+  local_c = 0;
   g_wil_details_recordFeatureUsage = wil_details_RecordFeatureUsageReporting;
   local_28 = wil_details_FeatureDescriptors_SkipPadding(&wil_details_featureDescriptors_a);
   local_18 = 0;
   local_20 = &wil_details_featureDescriptors_z;
+  local_10 = 1;
   iVar1 = RtlRegisterFeatureUsageProvider
                     (wil_details_OnFeatureUsageProviderFlushNotification,&local_28,
                      &g_wil_details_featureUsageProvider);
   if (iVar1 != 0) {
     g_wil_details_featureUsageProvider = 0;
   }
   return;
 }
 

```


## IpNlpFastContinueSendLoopbackDatagrams

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.46|
|i_ratio|0.54|
|m_ratio|0.96|
|b_ratio|0.67|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpNlpFastContinueSendLoopbackDatagrams|IpNlpFastContinueSendLoopbackDatagrams|
|fullname|IpNlpFastContinueSendLoopbackDatagrams|IpNlpFastContinueSendLoopbackDatagrams|
|refcount|5|5|
|`length`|1468|1621|
|`called`|<details><summary>Expand for full list:<br>Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>IppCompleteAndFreePacketList<br>IppCreateLoopbackSplitList<br>IppFillIpHeaderForFastSend<br>IppFillIpHeaderForFastSend_scrap<br>IppLoopbackEnqueue<br>IppProcessDefaults<br>IppSlowSendDatagrams<br>NDIS.SYS::NdisRetreatNetBufferDataStart<br>NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>WfpTlShimInspectFastLoopbackSendDatagram</summary>memmove<br>memset</details>|<details><summary>Expand for full list:<br>Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>IppCompleteAndFreePacketList<br>IppCreateLoopbackSplitList<br>IppFillIpHeaderForFastSend<br>IppFillIpHeaderForFastSend_scrap<br>IppLoopbackEnqueue<br>IppSlowSendDatagrams<br>NDIS.SYS::NdisRetreatNetBufferDataStart<br>NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>WfpTlShimInspectFastLoopbackSendDatagram<br>memmove</summary>memset</details>|
|calling|IpNlpFastSendDatagram<br>IppSendDatagramsCommon|IpNlpFastSendDatagram<br>IppSendDatagramsCommon|
|paramcount|0|0|
|`address`|1400fc7d0|1400fb0f0|
|sig|undefined IpNlpFastContinueSendLoopbackDatagrams(void)|undefined IpNlpFastContinueSendLoopbackDatagrams(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpNlpFastContinueSendLoopbackDatagrams Called Diff


```diff
--- IpNlpFastContinueSendLoopbackDatagrams called
+++ IpNlpFastContinueSendLoopbackDatagrams called
@@ -7 +6,0 @@
-IppProcessDefaults
```


### IpNlpFastContinueSendLoopbackDatagrams Diff


```diff
--- IpNlpFastContinueSendLoopbackDatagrams
+++ IpNlpFastContinueSendLoopbackDatagrams
@@ -1,176 +1,192 @@
 
 void IpNlpFastContinueSendLoopbackDatagrams
                (longlong param_1,uint param_2,undefined8 param_3,undefined8 *param_4,
                undefined1 *param_5,char param_6,undefined8 param_7,int *param_8,int *param_9)
 
 {
   undefined2 uVar1;
-  undefined8 uVar2;
-  longlong *plVar3;
-  undefined8 uVar4;
-  byte bVar5;
-  char cVar6;
-  short sVar7;
-  int iVar8;
-  uint uVar9;
-  longlong lVar10;
-  uint uVar11;
-  longlong *plVar12;
-  byte bVar13;
-  longlong lVar14;
+  longlong *plVar2;
+  undefined8 uVar3;
+  byte bVar4;
+  char cVar5;
+  short sVar6;
+  int iVar7;
+  uint uVar8;
+  longlong lVar9;
+  uint uVar10;
+  longlong *plVar11;
+  byte bVar12;
+  longlong lVar13;
+  undefined8 *puVar14;
   undefined8 *puVar15;
-  undefined8 *puVar16;
-  bool bVar17;
+  bool bVar16;
   longlong local_58;
   longlong *local_50;
   longlong local_48;
   longlong *plStack_40;
   
-  bVar17 = param_9 == (int *)0x0;
-  uVar2 = param_4[5];
-  plVar3 = (longlong *)param_4[4];
+  plVar2 = (longlong *)param_4[4];
+  uVar3 = param_4[5];
+  local_50 = &local_58;
   uVar1 = *(undefined2 *)(param_5 + 0x1c);
-  local_50 = &local_58;
-  puVar15 = (undefined8 *)*param_4;
+  puVar14 = (undefined8 *)*param_4;
+  local_58 = 0;
   local_48 = 0;
   plStack_40 = (longlong *)0x0;
-  local_58 = 0;
-  if (bVar17) {
+  bVar16 = param_9 == (int *)0x0;
+  if (bVar16) {
     param_9 = param_8 + (longlong)*param_8 * 0x54 + 2;
     *param_8 = *param_8 + 1;
   }
-  if (puVar15 != (undefined8 *)0x0) {
+  if (puVar14 != (undefined8 *)0x0) {
     do {
-      plVar12 = (longlong *)puVar15[1];
-      lVar14 = 0;
+      plVar11 = (longlong *)puVar14[1];
+      lVar13 = 0;
       if ((param_1 == 0) ||
-         (iVar8 = WfpTlShimInspectFastLoopbackSendDatagram(param_4[1],uVar1,puVar15), iVar8 == 0)) {
-        uVar11 = (uint)puVar15[0x28];
-        if (uVar11 != 0) {
-          *(uint *)(puVar15 + 0x28) = (param_2 << 0x14 ^ uVar11) & 0x3ff00000 ^ uVar11;
+         (iVar7 = WfpTlShimInspectFastLoopbackSendDatagram(param_4[1],uVar1,puVar14), iVar7 == 0)) {
+        uVar10 = (uint)puVar14[0x28];
+        if (uVar10 != 0) {
+          *(uint *)(puVar14 + 0x28) = (param_2 << 0x14 ^ uVar10) & 0x3ff00000 ^ uVar10;
         }
-        if (plVar12 == (longlong *)0x0) {
-          sVar7 = *(short *)(param_4 + 7);
+        if (plVar11 == (longlong *)0x0) {
+          sVar6 = *(short *)(param_4 + 7);
         }
         else {
           do {
-            if (*(uint *)(plVar12 + 2) < param_2) {
-              NdisRetreatNetBufferDataStart(plVar12,(ulonglong)param_2,0,NetioAllocateMdl_exref);
+            if (*(uint *)(plVar11 + 2) < param_2) {
+              NdisRetreatNetBufferDataStart(plVar11,(ulonglong)param_2,0,NetioAllocateMdl_exref);
             }
             else {
-              *(uint *)(plVar12 + 5) = (int)plVar12[5] - param_2;
-              *(uint *)(plVar12 + 2) = *(uint *)(plVar12 + 2) - param_2;
-              *(uint *)(plVar12 + 3) = (int)plVar12[3] + param_2;
+              *(uint *)(plVar11 + 5) = (int)plVar11[5] - param_2;
+              *(uint *)(plVar11 + 2) = *(uint *)(plVar11 + 2) - param_2;
+              *(uint *)(plVar11 + 3) = (int)plVar11[3] + param_2;
             }
-            lVar10 = plVar12[1];
-            if ((*(byte *)(lVar10 + 10) & 5) == 0) {
-              lVar10 = MmMapLockedPagesSpecifyCache(lVar10,0,1,0,0,0x40000000);
+            lVar9 = plVar11[1];
+            if ((*(byte *)(lVar9 + 10) & 5) == 0) {
+              lVar9 = MmMapLockedPagesSpecifyCache(lVar9,0,1,0,0,0x40000000);
             }
             else {
-              lVar10 = *(longlong *)(lVar10 + 0x18);
+              lVar9 = *(longlong *)(lVar9 + 0x18);
             }
-            uVar11 = *(uint *)(plVar12 + 2);
-            if (lVar14 == 0) {
-              lVar14 = (ulonglong)uVar11 + lVar10;
+            uVar10 = *(uint *)(plVar11 + 2);
+            if (lVar13 == 0) {
+              lVar13 = (ulonglong)uVar10 + lVar9;
             }
             if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
-              uVar9 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
+              uVar8 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
             }
             else {
-              uVar9 = Feature_5988_5730__private_featureState & 1;
+              uVar8 = Feature_5988_5730__private_featureState & 1;
             }
-            if (uVar9 == 0) {
+            if (uVar8 == 0) {
               IppFillIpHeaderForFastSend_scrap(param_5);
             }
             else {
               IppFillIpHeaderForFastSend(param_5);
             }
-            sVar7 = *(short *)(param_4 + 7);
-            plVar12 = (longlong *)*plVar12;
-            if (((sVar7 == 0x11) && (sVar7 = 0x11, param_5 == &Ipv6Global)) && (bVar17)) {
-              *(undefined2 *)((ulonglong)param_2 + 6 + (ulonglong)uVar11 + lVar10) = 0xffff;
-              sVar7 = *(short *)(param_4 + 7);
+            sVar6 = *(short *)(param_4 + 7);
+            plVar11 = (longlong *)*plVar11;
+            if (((sVar6 == 0x11) && (sVar6 = 0x11, param_5 == &Ipv6Global)) && (bVar16)) {
+              *(undefined2 *)((ulonglong)param_2 + 6 + (ulonglong)uVar10 + lVar9) = 0xffff;
+              sVar6 = *(short *)(param_4 + 7);
             }
-          } while (plVar12 != (longlong *)0x0);
+          } while (plVar11 != (longlong *)0x0);
         }
-        if (bVar17) {
-          if (sVar7 == 6) {
-            *(uint *)(puVar15 + 0x12) = *(uint *)(puVar15 + 0x12) | 4;
+        if (bVar16) {
+          if (sVar6 == 6) {
+            *(uint *)(puVar14 + 0x12) = *(uint *)(puVar14 + 0x12) | 4;
           }
-          else if (sVar7 == 0x11) {
-            *(uint *)(puVar15 + 0x12) = *(uint *)(puVar15 + 0x12) | 8;
+          else if (sVar6 == 0x11) {
+            *(uint *)(puVar14 + 0x12) = *(uint *)(puVar14 + 0x12) | 8;
           }
         }
-        if (*(int *)(puVar15 + 0x1a) == 0) {
-          puVar15[0x1a] = (ulonglong)*(uint *)((longlong)plVar3 + 0xc);
+        if (*(int *)(puVar14 + 0x1a) == 0) {
+          puVar14[0x1a] = (ulonglong)*(uint *)((longlong)plVar2 + 0xc);
         }
-        puVar16 = (undefined8 *)*puVar15;
-        *puVar15 = 0;
+        puVar15 = (undefined8 *)*puVar14;
+        *puVar14 = 0;
         memset(param_9,0,0x150);
-        bVar5 = param_6 * '\x02';
         *(byte *)(param_9 + 0x2e) = *(byte *)(param_9 + 0x2e) | 0x10;
-        *(undefined8 **)(param_9 + 2) = puVar15;
+        bVar4 = param_6 * '\x02';
+        *(undefined8 **)(param_9 + 2) = puVar14;
         param_9[9] = -1;
+        param_9[10] = 0xff;
         *(byte *)(param_9 + 0x16) =
-             (*(byte *)(param_9 + 0x16) ^ bVar5) & 4 ^ *(byte *)(param_9 + 0x16);
-        param_9[10] = 0xff;
-        bVar13 = *(byte *)((longlong)param_9 + 0xb9) | 0x40;
+             (bVar4 ^ *(byte *)(param_9 + 0x16)) & 4 ^ *(byte *)(param_9 + 0x16);
         param_9[0x1b] = -1;
-        *(byte *)((longlong)param_9 + 0xb9) = (bVar13 ^ bVar5) & 8 ^ bVar13;
+        bVar12 = *(byte *)((longlong)param_9 + 0xb9) | 0x40;
+        *(byte *)((longlong)param_9 + 0xb9) = (bVar4 ^ bVar12) & 8 ^ bVar12;
         *(byte *)((longlong)param_9 + 0xba) =
-             (*(byte *)((longlong)param_9 + 0xba) ^ bVar5) & 0x40 ^
+             (bVar4 ^ *(byte *)((longlong)param_9 + 0xba)) & 0x40 ^
              *(byte *)((longlong)param_9 + 0xba);
         param_9[0x2f] = *(int *)param_4[2];
         param_9[0x31] = *(int *)((longlong)param_4 + 0x3c);
-        memmove(param_9 + 0x3a,(void *)plVar3[2],
+        memmove(param_9 + 0x3a,(void *)plVar2[2],
                 (ulonglong)*(ushort *)(*(longlong *)(param_5 + 0x10) + 6));
         *(int **)(param_9 + 0x3e) = param_9 + 0x3a;
         param_9[0x40] = 1;
         param_9[8] = (uint)*(ushort *)(param_4 + 7);
-        *(longlong **)(param_9 + 0x34) = plVar3;
-        lVar10 = *plVar3;
-        *(longlong *)(param_9 + 0x38) = lVar10;
-        *(undefined8 *)(param_9 + 0x36) = uVar2;
-        uVar4 = **(undefined8 **)(lVar10 + 8);
-        *(undefined8 *)(param_9 + 0x32) = uVar4;
-        *(longlong *)(param_9 + 0x46) = lVar14;
+        *(longlong **)(param_9 + 0x34) = plVar2;
+        lVar9 = *plVar2;
+        *(longlong *)(param_9 + 0x38) = lVar9;
+        *(undefined8 *)(param_9 + 0x36) = uVar3;
+        *(undefined8 *)(param_9 + 0x32) = **(undefined8 **)(lVar9 + 8);
+        *(longlong *)(param_9 + 0x46) = lVar13;
         if (param_5 == &Ipv4Global) {
-          lVar14 = lVar14 + 0xc;
+          lVar13 = lVar13 + 0xc;
         }
         else {
-          lVar14 = lVar14 + 8;
+          lVar13 = lVar13 + 8;
         }
-        *(longlong *)(param_9 + 0x42) = lVar14;
-        IppProcessDefaults(uVar4,0,*(undefined2 *)(param_4 + 7),param_9);
+        *(longlong *)(param_9 + 0x42) = lVar13;
+        if ((plVar2 != (longlong *)0x0) && ((*(uint *)(plVar2 + 5) & 0x10) != 0)) {
+          *(byte *)(param_9 + 0x16) = *(byte *)(param_9 + 0x16) & 0xfb;
+          *(byte *)((longlong)param_9 + 0x59) = *(byte *)((longlong)param_9 + 0x59) | 8;
+        }
+        if (param_9[9] == -1) {
+          if (param_9[0x40] == 3) {
+            param_9[9] = 1;
+          }
+          else {
+            bVar4 = *(byte *)(*(longlong *)(*(longlong *)(param_9 + 0x36) + 8) + 0x1c0);
+            if (bVar4 == 0) {
+              bVar4 = *(byte *)(*(longlong *)(param_9 + 0x32) + 0x41);
+            }
+            param_9[9] = (uint)bVar4;
+          }
+        }
+        if (param_9[10] == 0xff) {
+          param_9[10] = 0;
+        }
         *(undefined2 *)(param_9 + 0xf) = *(undefined2 *)(param_5 + 0x28);
-        cVar6 = IppCreateLoopbackSplitList(param_9,0);
-        if (cVar6 != '\0') {
+        cVar5 = IppCreateLoopbackSplitList(param_9,0);
+        if (cVar5 != '\0') {
           IppCompleteAndFreePacketList(param_9,0);
         }
         if (local_48 != 0) {
           *local_50 = local_48;
           local_50 = plStack_40;
         }
       }
       else {
         if (local_58 != 0) {
           IppLoopbackEnqueue(&local_58,param_5,0);
         }
+        *param_4 = puVar14;
+        puVar15 = (undefined8 *)*puVar14;
+        *puVar14 = 0;
+        IppSlowSendDatagrams(param_1,param_4);
         *param_4 = puVar15;
-        puVar16 = (undefined8 *)*puVar15;
-        *puVar15 = 0;
-        IppSlowSendDatagrams(param_1,param_4);
-        *param_4 = puVar16;
       }
-      puVar15 = puVar16;
-    } while (puVar16 != (undefined8 *)0x0);
+      puVar14 = puVar15;
+    } while (puVar15 != (undefined8 *)0x0);
     if (local_58 != 0) {
       IppLoopbackEnqueue(&local_58,param_5,0);
     }
   }
-  if (bVar17) {
+  if (bVar16) {
     *param_8 = *param_8 + -1;
   }
   return;
 }
 

```


## IppInitializeSessionState

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.8|
|i_ratio|0.63|
|m_ratio|0.84|
|b_ratio|0.67|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppInitializeSessionState|IppInitializeSessionState|
|fullname|IppInitializeSessionState|IppInitializeSessionState|
|refcount|10|10|
|`length`|173|137|
|`called`|Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>NTOSKRNL.EXE::KeInitializeSpinLock<br>memset|Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>NTOSKRNL.EXE::KeInitializeSpinLock<br>memset|
|calling|InetInitializeSessionInformationAf<br>IpNlpInitializeSessionInfo<br>IppInspectInitializeRawSendSessionInfo<br>IppInspectInjectRawSend<br>IppStartSessionManager<br>Ipv4pStartNextHeaderProcessor<br>Ipv6pStartNextHeaderProcessor|InetInitializeSessionInformationAf<br>IpNlpInitializeSessionInfo<br>IppInspectInitializeRawSendSessionInfo<br>IppInspectInjectRawSend<br>IppStartSessionManager<br>Ipv4pStartNextHeaderProcessor<br>Ipv6pStartNextHeaderProcessor|
|paramcount|0|0|
|`address`|140086644|1400234d4|
|sig|undefined IppInitializeSessionState(void)|undefined IppInitializeSessionState(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppInitializeSessionState Called Diff


```diff
--- IppInitializeSessionState called
+++ IppInitializeSessionState called
@@ -2 +1,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IppInitializeSessionState Diff


```diff
--- IppInitializeSessionState
+++ IppInitializeSessionState
@@ -1,41 +1,30 @@
 
 void IppInitializeSessionState(void *param_1)
 
 {
   longlong lVar1;
   uint uVar2;
   
   memset(param_1,0,0x80);
   *(undefined2 *)((longlong)param_1 + 0x2a) = 0xffff;
   *(undefined2 *)((longlong)param_1 + 0x28) = 0xffff;
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar2 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar2 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  if (uVar2 == 0) {
-    *(byte *)((longlong)param_1 + 0x2c) = *(byte *)((longlong)param_1 + 0x2c) | 0x82;
-  }
-  else {
-    *(undefined4 *)((longlong)param_1 + 0x2c) = 0x82;
-  }
+  *(undefined4 *)((longlong)param_1 + 0x2c) = 0x82;
   *(undefined1 *)((longlong)param_1 + 0x30) = 10;
   *(undefined4 *)((longlong)param_1 + 0x6c) = 0xffffffff;
   if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
     uVar2 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
   }
   else {
     uVar2 = Feature_5988_5730__private_featureState & 1;
   }
   if (uVar2 != 0) {
     *(undefined1 *)((longlong)param_1 + 0x31) = 0xff;
   }
   lVar1 = (longlong)param_1 + 0x58;
   *(longlong *)((longlong)param_1 + 0x60) = lVar1;
   *(longlong *)lVar1 = lVar1;
   KeInitializeSpinLock((longlong)param_1 + 0x70);
   *(undefined4 *)((longlong)param_1 + 0x78) = 0;
   return;
 }
 

```


## wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,calling|
|ratio|0.4|
|i_ratio|0.24|
|m_ratio|0.98|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|fullname|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|refcount|3|3|
|`length`|256|280|
|called|_guard_dispatch_icall<br>wil_details_GetCurrentFeatureEnabledState|_guard_dispatch_icall<br>wil_details_GetCurrentFeatureEnabledState|
|`calling`|wil_details_GetCurrentFeatureEnabledState<br>wil_details_IsEnabledFallback|wil_details_AreDependenciesEnabled<br>wil_details_IsEnabledFallback|
|paramcount|0|0|
|`address`|140153e34|140153c74|
|sig|undefined wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState(void)|undefined wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState Calling Diff


```diff
--- wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState calling
+++ wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState calling
@@ -1 +1 @@
-wil_details_GetCurrentFeatureEnabledState
+wil_details_AreDependenciesEnabled
```


### wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState Diff


```diff
--- wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+++ wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
@@ -1,67 +1,71 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 ulonglong wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
                     (uint *param_1,ulonglong param_2,longlong param_3)
 
 {
-  int iVar1;
-  uint uVar2;
-  ulonglong uVar3;
+  undefined4 uVar1;
+  int iVar2;
+  uint uVar3;
   uint uVar4;
-  uint uVar5;
+  ulonglong uVar5;
   uint uVar6;
   uint uVar7;
-  bool bVar8;
+  ulonglong uVar8;
+  bool bVar9;
   uint local_res8 [2];
   undefined8 local_res10;
   
-  iVar1 = 0;
+  iVar2 = 0;
   local_res8[0] = 0;
   local_res10 = param_2;
   if (g_wil_details_ensureSubscribedToFeatureConfigurationChanges != (code *)0x0) {
-    iVar1 = (*g_wil_details_ensureSubscribedToFeatureConfigurationChanges)();
+    iVar2 = (*g_wil_details_ensureSubscribedToFeatureConfigurationChanges)();
   }
-  uVar2 = wil_details_GetCurrentFeatureEnabledState(param_3,local_res8);
-  uVar7 = local_res8[0];
+  uVar3 = wil_details_GetCurrentFeatureEnabledState(param_3,local_res8);
+  uVar6 = local_res8[0];
   if (*(char *)(param_3 + 0x1c) == '\0') {
-    uVar7 = -(uint)(iVar1 != 0) & local_res8[0];
+    uVar6 = -(uint)(iVar2 != 0) & local_res8[0];
   }
-  uVar3 = param_2 & 0xffffffff;
-  while( true ) {
-    uVar6 = (uint)param_2;
-    local_res10 = CONCAT44(local_res10._4_4_,uVar6);
-    uVar4 = (uint)uVar3;
-    if ((uVar7 != 0) && (local_res10 = CONCAT44(local_res10._4_4_,uVar6), (uVar3 & 2) == 0)) {
-      uVar5 = uVar4 & 0xfffff63e | uVar2 & 0x9c1;
-      uVar6 = uVar5 | 2;
-      local_res10 = CONCAT44(local_res10._4_4_,uVar5) | 2;
+  uVar5 = param_2 & 0xffffffff;
+  do {
+    uVar8 = param_2;
+    uVar7 = (uint)uVar5;
+    uVar4 = uVar7 | 0x40000;
+    uVar1 = local_res10._4_4_;
+    local_res10 = CONCAT44(local_res10._4_4_,uVar7) | 0x40000;
+    if ((uVar6 != 0) && ((uVar5 & 2) == 0)) {
+      uVar7 = uVar7 & 0xfffff63e | 0x40000 | uVar3 & 0x9c1;
+      uVar4 = uVar7 | 2;
+      local_res10 = CONCAT44(uVar1,uVar7) | 2;
     }
-    if ((uVar3 & 4) == 0) {
-      uVar5 = uVar2 & 0x400 | uVar6 & 0xfffffbff;
-      uVar6 = uVar5 | 4;
-      local_res10 = CONCAT44(local_res10._4_4_,uVar5) | 4;
+    if ((uVar8 & 4) == 0) {
+      uVar7 = uVar3 & 0x400 | uVar4 & 0xfffffbff;
+      uVar4 = uVar7 | 4;
+      local_res10 = CONCAT44(local_res10._4_4_,uVar7) | 4;
     }
+    uVar5 = uVar8 & 0xffffffff;
     LOCK();
-    uVar5 = *param_1;
-    bVar8 = uVar4 == uVar5;
-    if (bVar8) {
-      *param_1 = uVar6;
-      uVar5 = uVar4;
+    uVar7 = *param_1;
+    bVar9 = (uint)uVar8 == uVar7;
+    if (bVar9) {
+      *param_1 = uVar4;
+    }
+    else {
+      uVar5 = (ulonglong)uVar7;
     }
     UNLOCK();
-    if (bVar8) break;
-    param_2 = (ulonglong)uVar5;
-    uVar3 = (ulonglong)uVar5;
-  }
-  if (((uVar3 & 4) == 0) &&
+    param_2 = uVar5;
+  } while (!bVar9);
+  if (((uVar8 & 4) == 0) &&
      (g_wil_details_subscribeFeatureStateCacheToConfigurationChanges != (code *)0x0)) {
     (*g_wil_details_subscribeFeatureStateCacheToConfigurationChanges)
-              (param_1,*(undefined1 *)(param_3 + 0x1c),iVar1);
+              (param_1,*(undefined1 *)(param_3 + 0x1c),iVar2);
   }
-  if (uVar7 == 0) {
-    local_res10 = (ulonglong)(uVar2 & 0x9c1 | uVar6 & 0xfffff63e);
+  if (uVar6 == 0) {
+    local_res10 = (ulonglong)(uVar3 & 0x9c1 | uVar4 & 0xfffff63e);
   }
   return local_res10;
 }
 

```


## wil_details_GetCurrentFeatureEnabledState

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.3|
|i_ratio|0.36|
|m_ratio|0.94|
|b_ratio|0.55|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|wil_details_GetCurrentFeatureEnabledState|wil_details_GetCurrentFeatureEnabledState|
|fullname|wil_details_GetCurrentFeatureEnabledState|wil_details_GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|337|277|
|`called`|wil_RtlStagingConfig_QueryFeatureState<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|wil_RtlStagingConfig_QueryFeatureState<br>wil_details_AreDependenciesEnabled|
|calling|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|paramcount|0|0|
|`address`|140153f98|140153df0|
|sig|undefined wil_details_GetCurrentFeatureEnabledState(void)|undefined wil_details_GetCurrentFeatureEnabledState(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_GetCurrentFeatureEnabledState Called Diff


```diff
--- wil_details_GetCurrentFeatureEnabledState called
+++ wil_details_GetCurrentFeatureEnabledState called
@@ -2 +2 @@
-wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+wil_details_AreDependenciesEnabled
```


### wil_details_GetCurrentFeatureEnabledState Diff


```diff
--- wil_details_GetCurrentFeatureEnabledState
+++ wil_details_GetCurrentFeatureEnabledState
@@ -1,61 +1,60 @@
 
 uint wil_details_GetCurrentFeatureEnabledState(longlong param_1,undefined4 *param_2)
 
 {
-  undefined8 *puVar1;
+  bool bVar1;
   int iVar2;
   uint uVar3;
   uint uVar4;
   uint uVar5;
-  undefined8 *puVar6;
+  uint uVar6;
+  uint uVar7;
+  uint uVar8;
+  undefined8 local_38;
+  undefined8 uStack_30;
   undefined8 local_28;
-  undefined8 uStack_20;
-  undefined8 local_18;
   
+  uVar6 = 1;
   *param_2 = 1;
-  local_18 = 0;
   local_28 = 0;
-  uStack_20 = 0;
-  iVar2 = wil_RtlStagingConfig_QueryFeatureState(&local_28);
-  uVar3 = -(uint)(iVar2 != 0) & (uint)local_28 & 3;
+  local_38 = 0;
+  uStack_30 = 0;
+  iVar2 = wil_RtlStagingConfig_QueryFeatureState(&local_38);
+  uVar7 = -(uint)(local_28._4_4_ != 0) & 0x800;
+  uVar8 = uVar7 | -(uint)((int)local_28 != 0) & 0x400;
+  uVar3 = -(uint)(iVar2 != 0) & (uint)local_38 & 3;
+  uVar4 = uVar3 << 7;
   if (uVar3 == 0) {
-    uVar5 = -(uint)(*(char *)(param_1 + 0x1f) != '\0') & 0x40;
+    uVar3 = -(uint)(*(char *)(param_1 + 0x1f) != '\0') & 0x40;
   }
   else {
-    uVar5 = 0;
-    if ((uint)local_28 == 2) {
-      uVar5 = 0x40;
+    uVar3 = 0;
+    if ((uint)local_38 == 2) {
+      uVar3 = 0x40;
     }
   }
-  uVar3 = uVar5 >> 6 |
-          uVar5 | uVar3 << 7 |
-                  -(uint)(local_18._4_4_ != 0) & 0x800 | -(uint)((int)local_18 != 0) & 0x400;
-  if ((uVar5 >> 6 != 0) && (puVar6 = *(undefined8 **)(param_1 + 0x20), puVar6 != (undefined8 *)0x0))
-  {
-    for (; ((uVar3 & 1) != 0 && (puVar1 = (undefined8 *)*puVar6, puVar1 != (undefined8 *)0x0));
-        puVar6 = puVar6 + 1) {
-      if ((*(char *)((longlong)puVar1 + 0x1e) == '\0') &&
-         (*(char *)((longlong)puVar1 + 0x1d) == '\0')) {
-        uVar4 = *(uint *)*puVar1;
-        if ((uVar4 & 2) == 0) {
-          uVar4 = wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
-                            ((uint *)*puVar1,uVar4,puVar1);
-        }
-        uVar5 = uVar3 & 0xfffffffe;
-        uVar3 = (uint)((uVar4 & uVar3 & 1) != 0);
-      }
-      else {
-        if (((uVar3 & 1) == 0) || (*(char *)((longlong)puVar1 + 0x1f) == '\0')) {
-          uVar5 = 0;
-        }
-        else {
-          uVar5 = 1;
-        }
-        uVar3 = uVar3 & 0xfffffffe;
-      }
-      uVar3 = uVar3 | uVar5;
-    }
+  uVar5 = uVar4 | uVar8 | uVar3;
+  iVar2 = 0;
+  if (uVar8 == 0xc00) {
+    bVar1 = true;
   }
-  return uVar3;
+  else {
+    bVar1 = false;
+    if (uVar3 == 0) goto LAB_0;
+  }
+  if (*(longlong *)(param_1 + 0x20) == 0) {
+    iVar2 = 1;
+  }
+  else {
+    iVar2 = wil_details_AreDependenciesEnabled(param_1);
+  }
+  if ((bVar1) && (iVar2 == 0)) {
+    uVar5 = uVar4 | uVar7 | uVar3;
+  }
+LAB_0:
+  if (((uVar5 & 0x40) == 0) || (iVar2 == 0)) {
+    uVar6 = 0;
+  }
+  return uVar5 | uVar6;
 }
 

```


## IppFragmentPackets

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.74|
|i_ratio|0.56|
|m_ratio|0.97|
|b_ratio|0.93|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppFragmentPackets|IppFragmentPackets|
|fullname|IppFragmentPackets|IppFragmentPackets|
|refcount|22|22|
|`length`|3115|2914|
|`called`|<details><summary>Expand for full list:<br>FUN_1401c647f<br>Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline<br>FlSendPackets<br>FlpSendPacketsHelper<br>INETADDR_SETSOCKADDR<br>IPSecIsInboundContextTunnel<br>IppCreateLocalAddress<br>IppCreateStrongClonePacket<br>IppDereferenceLocalAddress<br>IppDoesNeighborNeedResolution<br>IppFreePacket</summary>IppFreePacketList<br>IppGroupFragments<br>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbLogAndDropPackets<br>IppResolveNeighbor<br>Ipv4pFillPacketChecksum<br>McTemplateK0pqqqbr3br3q_EtwWriteTransfer<br>NETIO.SYS::KfdAreAllIpv4InLayersEmpty<br>NETIO.SYS::NetioDereferenceNetBufferListChain<br>NETIO.SYS::WfpNblInfoGet<br>NTOSKRNL.EXE::KeAcquireSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeExpandKernelStackAndCalloutEx<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeReleaseSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KfRaiseIrql<br>SOCKADDR_SIZE<br>__security_check_cookie<br>_guard_dispatch_icall<br>memset</details>|<details><summary>Expand for full list:<br>FlSendPackets<br>FlpSendPacketsHelper<br>INETADDR_SETSOCKADDR<br>IPSecIsInboundContextTunnel<br>IppCreateLocalAddress<br>IppCreateStrongClonePacket<br>IppDereferenceLocalAddress<br>IppDoesNeighborNeedResolution<br>IppFreePacket<br>IppFreePacketList<br>IppGroupFragments</summary>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbLogAndDropPackets<br>IppResolveNeighbor<br>IppTranslateTransmitToReceiveNbl<br>McTemplateK0pqqqbr3br3q_EtwWriteTransfer<br>NETIO.SYS::NetioDereferenceNetBufferListChain<br>NETIO.SYS::WfpNblInfoGet<br>NTOSKRNL.EXE::KeAcquireSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeExpandKernelStackAndCalloutEx<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeReleaseSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KfRaiseIrql<br>SOCKADDR_SIZE<br>__security_check_cookie<br>_guard_dispatch_icall<br>memset</details>|
|calling|<details><summary>Expand for full list:<br>IppBatchDpcSendWorker<br>IppDequeueForwardInjectedPacketsAtDpc<br>IppDispatchMfeQueuedPackets<br>IppDispatchSendPacketHelper<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInspectInjectForward<br>IppIpsL3ForwardNbl<br>IppReceivePackets<br>IppSetAllNeighborParametersHelper<br>Ipv4pReceiveRoutingHeader</summary>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation</details>|<details><summary>Expand for full list:<br>IppBatchDpcSendWorker<br>IppDequeueForwardInjectedPacketsAtDpc<br>IppDispatchMfeQueuedPackets<br>IppDispatchSendPacketHelper<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInspectInjectForward<br>IppIpsL3ForwardNbl<br>IppReceivePackets<br>IppSetAllNeighborParametersHelper<br>Ipv4pReceiveRoutingHeader</summary>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation</details>|
|paramcount|0|0|
|`address`|14002a190|1400794e0|
|sig|undefined IppFragmentPackets(void)|undefined IppFragmentPackets(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppFragmentPackets Called Diff


```diff
--- IppFragmentPackets called
+++ IppFragmentPackets called
@@ -1,2 +0,0 @@
-FUN_1401c647f
-Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline
@@ -17 +15 @@
-Ipv4pFillPacketChecksum
+IppTranslateTransmitToReceiveNbl
@@ -19 +16,0 @@
-NETIO.SYS::KfdAreAllIpv4InLayersEmpty
```


### IppFragmentPackets Diff


```diff
--- IppFragmentPackets
+++ IppFragmentPackets
@@ -1,466 +1,430 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Type propagation algorithm not settling */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
-void IppFragmentPackets(undefined1 *param_1,longlong ******param_2)
+void IppFragmentPackets(longlong param_1,longlong ******param_2)
 
 {
   int iVar1;
   longlong ****pppplVar2;
   longlong ****pppplVar3;
   longlong **pplVar4;
   longlong ***ppplVar5;
   longlong *plVar6;
   code *pcVar7;
   longlong *****ppppplVar8;
   undefined1 auVar9 [16];
-  char cVar10;
-  undefined1 uVar11;
-  byte bVar12;
+  undefined1 uVar10;
+  byte bVar11;
+  char cVar12;
   longlong lVar13;
   longlong *****ppppplVar14;
   longlong *****ppppplVar15;
   longlong *******ppppppplVar16;
   ulonglong uVar17;
   longlong ******pppppplVar18;
   ulonglong uVar19;
   longlong ****pppplVar20;
   ulonglong uVar21;
   longlong *******ppppppplVar22;
   uint uVar23;
   ushort uVar24;
   int iVar25;
   undefined2 uVar26;
   longlong ****pppplVar27;
   bool bVar28;
-  undefined1 auStack_258 [32];
-  undefined8 local_238;
-  undefined4 local_230;
-  uint local_228;
-  undefined1 *local_220;
-  undefined1 *local_218;
-  uint local_210;
-  undefined1 local_208;
-  byte local_1f8;
-  undefined8 local_1f0;
-  ushort local_1e8;
+  undefined1 auStack_248 [32];
+  undefined8 local_228;
+  undefined4 local_220;
+  uint local_218;
+  undefined1 *local_210;
+  undefined1 *local_208;
+  uint local_200;
+  undefined1 local_1f8;
+  byte local_1e8;
+  ushort local_1e6;
   longlong ******local_1d8;
   longlong *******ppppppplStack_1d0;
   longlong *****local_1c8;
   longlong ******local_1c0;
-  longlong *******local_1b8;
+  longlong ******local_1b8;
   longlong *******local_1b0;
-  longlong *****local_1a8;
-  longlong ******local_1a0;
-  longlong *******ppppppplStack_198;
+  longlong *******local_1a8;
+  longlong *****local_1a0;
+  longlong ******local_198;
+  longlong *******ppppppplStack_190;
   longlong ******local_188;
   longlong *******ppppppplStack_180;
   longlong *****local_178;
   longlong ******local_170;
   longlong local_168;
   undefined8 uStack_160;
   undefined8 local_158;
   undefined1 local_148 [128];
   undefined1 local_c8 [128];
   ulonglong local_48;
   
-  local_48 = __security_cookie ^ (ulonglong)auStack_258;
+  local_48 = __security_cookie ^ (ulonglong)auStack_248;
   pppplVar20 = (longlong ****)0x0;
-  local_1a0 = (longlong ******)0x0;
-  ppppppplStack_198 = (longlong *******)0x0;
+  local_198 = (longlong ******)0x0;
+  ppppppplStack_190 = (longlong *******)0x0;
   uVar24 = *(ushort *)(*(longlong *)(param_1 + 0x10) + 6);
   local_170 = &local_178;
   local_1c0 = &local_1c8;
-  local_1b0 = (longlong *******)&local_1b8;
+  local_1a8 = (longlong *******)&local_1b0;
   local_178 = (longlong *****)0x0;
   local_1c8 = (longlong *****)0x0;
-  local_1b8 = (longlong *******)0x0;
-  local_1e8 = uVar24;
+  local_1b0 = (longlong *******)0x0;
+  local_1e6 = uVar24;
   if (param_2 != (longlong ******)0x0) {
     do {
-      local_1f0 = (longlong ******)*param_2;
+      local_1b8 = (longlong ******)*param_2;
       bVar28 = false;
       *param_2 = (longlong *****)0x0;
       if ((((((ulonglong)param_2[0x19][8] & 0x10) == 0) || (((ulonglong)param_2[0x17] & 0x10) != 0))
           || ((*(byte *)((longlong)param_2 + 0xb9) & 0x20) != 0)) ||
-         (cVar10 = IppGroupFragments(param_1,param_2), pppppplVar18 = local_1f0, cVar10 == '\0')) {
-        pppppplVar18 = local_1f0;
+         (cVar12 = IppGroupFragments(param_1,param_2), pppppplVar18 = local_1b8, cVar12 == '\0')) {
+        pppppplVar18 = local_1b8;
         pppplVar2 = param_2[0x1b][2];
         if ((((((ulonglong)param_2[0x17] & 0x10) == 0) ||
              (((ulonglong)param_2[1][0x11] & 0x400000) == 0)) ||
             ((lVar13 = WfpNblInfoGet(), lVar13 == 0 ||
              ((lVar13 == *(longlong *)MmBadPointer_exref || (*(longlong *)(lVar13 + 0x18) == 0))))))
            || (iVar25 = IPSecIsInboundContextTunnel(), iVar25 == 0)) {
           ppppplVar15 = param_2[0x1b];
           auVar9._8_8_ = 0;
           auVar9._0_8_ = _DAT_0 / 10000;
           lVar13 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar9,8);
           iVar25 = (int)((_DAT_0 / 10000 - lVar13 >> 1) + lVar13 >> 8);
           if (*(int *)((longlong)ppppplVar15 + 0x1c) == 5) {
             if ((uint)(iVar25 - *(int *)((longlong)ppppplVar15 + 0x24)) <=
                 *(uint *)((longlong)pppplVar2[1] + 0x1b4)) goto LAB_1;
 LAB_2:
-            cVar10 = IppResolveNeighbor(param_2[0x1b],param_2,0,0);
-            if (cVar10 == '\0') goto LAB_3;
+            cVar12 = IppResolveNeighbor(param_2[0x1b],param_2,0,0);
+            if (cVar12 == '\0') goto LAB_3;
           }
           else {
             if (*(int *)((longlong)ppppplVar15 + 0x1c) != 6) goto LAB_2;
 LAB_1:
             *(int *)(ppppplVar15 + 0xd) = iVar25;
           }
           param_2[2] = (longlong *****)((ulonglong)uVar24 + 0xa8 + (longlong)param_2[0x1b]);
         }
         else {
           bVar28 = true;
         }
         (**(code **)(param_1 + 0xd0))(param_2,pppplVar2);
         if ((param_2[1] == (longlong *****)0x0) || (*(int *)((longlong)param_2[1] + 0x8c) < 0)) {
           *local_170 = (longlong *****)param_2;
           local_170 = param_2;
         }
         else {
           if (bVar28) {
-            cVar10 = IppDoesNeighborNeedResolution(param_2[0x1b],pppplVar2[1]);
-            if ((cVar10 != '\0') &&
-               (cVar10 = IppResolveNeighbor(param_2[0x1b],param_2,0,0), cVar10 == '\0'))
+            cVar12 = IppDoesNeighborNeedResolution(param_2[0x1b],pppplVar2[1]);
+            if ((cVar12 != '\0') &&
+               (cVar12 = IppResolveNeighbor(param_2[0x1b],param_2,0,0), cVar12 == '\0'))
             goto LAB_3;
             param_2[2] = (longlong *****)((ulonglong)uVar24 + 0xa8 + (longlong)param_2[0x1b]);
           }
           if ((*(int *)(param_2[0x1b][1] + 0x34) != 0) && (((ulonglong)param_2[0x17] & 0x10) != 0))
           {
-            local_208 = 0;
-            local_210 = local_210 & 0xffffff00;
-            local_218 = (undefined1 *)0x0;
-            local_220 = (undefined1 *)
-                        CONCAT44(local_220._4_4_,
+            local_1f8 = 0;
+            local_200 = local_200 & 0xffffff00;
+            local_208 = (undefined1 *)0x0;
+            local_210 = (undefined1 *)
+                        CONCAT44(local_210._4_4_,
                                  (uint)*(ushort *)(*(longlong *)(param_1 + 0x10) + 6) << 3);
-            local_228 = 0xffffffff;
-            local_230 = 0xffffffff;
-            local_238 = CONCAT71(local_238._1_7_,0x11);
+            local_218 = 0xffffffff;
+            local_220 = 0xffffffff;
+            local_228 = CONCAT71(local_228._1_7_,0x11);
             ppppplVar15 = (longlong *****)IppCreateLocalAddress(param_1,param_2[0x1f]);
             if (ppppplVar15 != (longlong *****)0x0) {
-              local_1f8 = *(byte *)(param_2 + 0x17);
+              local_1e8 = *(byte *)(param_2 + 0x17);
               local_1d8 = (longlong ******)param_2[0x1b];
               param_2[0x1b] = ppppplVar15;
-              *(byte *)(param_2 + 0x17) = local_1f8 | 0x84;
-              local_1a8 = param_2[1];
-              local_1a0 = (longlong ******)0x0;
-              if ((((ulonglong)local_1a8[0x12] & 0xc) != 0) && (*(int *)(param_2 + 0x20) == 1)) {
+              *(byte *)(param_2 + 0x17) = local_1e8 | 0x84;
+              local_1a0 = param_2[1];
+              local_198 = (longlong ******)0x0;
+              if ((((ulonglong)local_1a0[0x12] & 0xc) != 0) && (*(int *)(param_2 + 0x20) == 1)) {
                 *(byte *)((longlong)param_2 + 0xba) = *(byte *)((longlong)param_2 + 0xba) | 8;
               }
-              local_1f0 = (longlong ******)local_1a8[1];
-              ppppppplStack_198 = &local_1a0;
-              local_188 = local_1f0;
-              for (; local_1f0 != (longlong ******)0x0; local_1f0 = (longlong ******)*local_1f0) {
-                ppppplVar14 = *local_1f0;
-                *local_1f0 = (longlong *****)0x0;
-                local_1a8[1] = (longlong ****)local_1f0;
+              local_1b8 = (longlong ******)local_1a0[1];
+              ppppppplStack_190 = &local_198;
+              local_188 = local_1b8;
+              for (; local_1b8 != (longlong ******)0x0; local_1b8 = (longlong ******)*local_1b8) {
+                ppppplVar14 = *local_1b8;
+                *local_1b8 = (longlong *****)0x0;
+                local_1a0[1] = (longlong ****)local_1b8;
                 ppppppplVar16 = (longlong *******)IppCreateStrongClonePacket(param_2);
-                *local_1f0 = ppppplVar14;
-                local_1a8[1] = (longlong ****)local_188;
+                *local_1b8 = ppppplVar14;
+                local_1a0[1] = (longlong ****)local_188;
                 if (ppppppplVar16 == (longlong *******)0x0) {
-                  if (local_1a0 != (longlong ******)0x0) {
-                    IppLbLogAndDropPackets(param_1,local_1a0,0x108,0xe000413f);
-                    ppppppplStack_198 = &local_1a0;
-                    local_1a0 = (longlong ******)0x0;
+                  if (local_198 != (longlong ******)0x0) {
+                    IppLbLogAndDropPackets(param_1,local_198,0x108,0xe000413f);
+                    ppppppplStack_190 = &local_198;
+                    local_198 = (longlong ******)0x0;
                   }
                   goto LAB_4;
                 }
                 ppppppplVar16[2] = (longlong ******)0x0;
                 ppppppplVar16[3] = (longlong ******)0x0;
-                *ppppppplStack_198 = (longlong ******)ppppppplVar16;
-                ppppppplStack_198 = ppppppplVar16;
-              }
-              if (local_1a0 != (longlong ******)0x0) {
-                *local_1b0 = local_1a0;
-                local_1b0 = ppppppplStack_198;
+                *ppppppplStack_190 = (longlong ******)ppppppplVar16;
+                ppppppplStack_190 = ppppppplVar16;
+              }
+              if (local_198 != (longlong ******)0x0) {
+                *local_1a8 = local_198;
+                local_1a8 = ppppppplStack_190;
               }
 LAB_4:
               param_2[0x1b] = (longlong *****)local_1d8;
-              *(byte *)(param_2 + 0x17) = *(byte *)(param_2 + 0x17) & 0x7b ^ local_1f8 & 0x80;
+              *(byte *)(param_2 + 0x17) = *(byte *)(param_2 + 0x17) & 0x7b ^ local_1e8 & 0x80;
               IppDereferenceLocalAddress(ppppplVar15);
             }
           }
           if ((*(int *)(param_2[1] + 0x1a) == 0) && (param_2[0x1a] != (longlong *****)0x0)) {
             param_2[1][0x1a] = (longlong ****)(ulonglong)*(uint *)((longlong)param_2[0x1a] + 0xc);
           }
           pppplVar27 = pppplVar20;
           if ((pppplVar2 != pppplVar20) &&
              (pppplVar27 = pppplVar2, pppplVar20 != (longlong ****)0x0)) {
             if ((code *)pppplVar20[1][0xf][3][7] == FlSendPackets) {
               FlSendPackets(pppplVar20[4],0);
             }
             else {
               (*(code *)pppplVar20[1][0xf][3][7])(pppplVar20[4],0);
             }
             IppFreePacketList(local_1c8);
             local_1c0 = &local_1c8;
             local_1c8 = (longlong *****)0x0;
           }
           ppppplVar14 = param_2[1];
           uVar21 = 0;
           uVar23 = 0;
           iVar25 = 0;
           pppplVar20 = ppppplVar14[0x14];
           ppppplVar15 = ppppplVar14 + 0x28;
           pppplVar3 = ppppplVar14[1];
           if (((int)pppplVar20 == 0) && (*(int *)ppppplVar15 == 0)) {
             for (; iVar25 = 0, pppplVar3 != (longlong ****)0x0;
                 pppplVar3 = (longlong ****)*pppplVar3) {
               uVar21 = (ulonglong)(uint)((int)uVar21 + *(int *)(pppplVar3 + 3));
               uVar23 = uVar23 + 1;
             }
           }
           else {
             if (((ulonglong)pppplVar20 & 0xffffffff) == 0) {
               if (*(int *)ppppplVar15 != 0) {
                 iVar25 = 3;
               }
             }
             else if (((ulonglong)pppplVar20 >> 0x1e & 1) == 0) {
               iVar25 = 1;
             }
             else if (((uint)((ulonglong)pppplVar20 >> 0x1e) & 1) == 1) {
               iVar25 = 2;
             }
             iVar1 = *(int *)((longlong)pppplVar3 + 0x54);
             if (pppplVar20 == (longlong ****)0x0) {
               pppplVar20 = *ppppplVar15;
             }
             uVar23 = (uint)pppplVar20 & 0xfffff;
             uVar23 = ((uVar23 - 1) + iVar1) / uVar23;
             uVar21 = (ulonglong)(uVar23 * (*(int *)(pppplVar3 + 3) - iVar1) + iVar1);
           }
           uVar19 = (ulonglong)SystemReserved1[0x12]._4_4_;
           uVar17 = (ulonglong)uVar23;
           pplVar4 = pppplVar2[0xd][uVar19];
           *pplVar4 = (longlong *)((longlong)*pplVar4 + uVar17);
           pplVar4[1] = (longlong *)((longlong)pplVar4[1] + uVar21);
           if ((iVar25 == 1) || (iVar25 == 2)) {
             pplVar4[2] = (longlong *)((longlong)pplVar4[2] + 1);
             pplVar4[3] = (longlong *)((longlong)pplVar4[3] + uVar21);
           }
           else if (iVar25 == 3) {
             pplVar4[4] = (longlong *)((longlong)pplVar4[4] + 1);
             pplVar4[5] = (longlong *)((longlong)pplVar4[5] + uVar21);
           }
           lVar13 = uVar19 * 0xc0 + *(longlong *)(param_1 + 0x4f28);
           *(ulonglong *)(lVar13 + 0x30) = *(longlong *)(lVar13 + 0x30) + uVar17;
           *(ulonglong *)(lVar13 + 0x38) = *(longlong *)(lVar13 + 0x38) + uVar21;
           if (*(int *)(param_2 + 0x20) == 3) {
             *(ulonglong *)(lVar13 + 0x50) = *(longlong *)(lVar13 + 0x50) + uVar17;
             *(ulonglong *)(lVar13 + 0x58) = *(longlong *)(lVar13 + 0x58) + uVar21;
           }
           else if (*(int *)(param_2 + 0x20) == 4) {
             *(ulonglong *)(lVar13 + 0x68) = *(longlong *)(lVar13 + 0x68) + uVar17;
           }
           *local_1c0 = (longlong *****)param_2;
           pppplVar20 = pppplVar27;
-          uVar24 = local_1e8;
+          uVar24 = local_1e6;
           local_1c0 = param_2;
         }
       }
 LAB_3:
       param_2 = pppppplVar18;
     } while (pppppplVar18 != (longlong ******)0x0);
     if (local_1c8 != (longlong *****)0x0) {
       if ((code *)pppplVar20[1][0xf][3][7] == FlSendPackets) {
         ppplVar5 = pppplVar20[4];
         pplVar4 = ppplVar5[9];
         plVar6 = pplVar4[4];
         pcVar7 = (code *)plVar6[0x35];
         uVar26 = 0x800;
         if (*(short *)((longlong)plVar6 + 0x5c) != 2) {
           uVar26 = 0x86dd;
         }
         ppppplVar14 = local_1c8;
         if (pcVar7 != (code *)0x0) {
           ppppplVar14 = (longlong *****)(*pcVar7)(pplVar4,0,local_1c8);
         }
         ppppplVar15 = local_1c8;
         if (ppppplVar14 != (longlong *****)0x0) {
           FlpSendPacketsHelper(ppplVar5,0,uVar26,ppppplVar14);
           ppppplVar15 = local_1c8;
         }
       }
       else {
         (*(code *)pppplVar20[1][0xf][3][7])(pppplVar20[4],0,local_1c8);
         ppppplVar15 = local_1c8;
       }
       while (ppppplVar15 != (longlong *****)0x0) {
         ppppplVar15 = (longlong *****)*ppppplVar15;
         IppFreePacket();
       }
     }
     if (local_178 != (longlong *****)0x0) {
-      local_1a8 = (longlong *****)0x0;
-      ppppplVar15 = (longlong *****)&local_1a8;
+      local_1a0 = (longlong *****)0x0;
+      ppppplVar15 = (longlong *****)&local_1a0;
       ppppplVar14 = local_178;
       do {
         ppppplVar8 = (longlong *****)ppppplVar14[1];
         ppppplVar14 = (longlong *****)*ppppplVar14;
         if (ppppplVar8 != (longlong *****)0x0) {
           *ppppplVar15 = (longlong ****)ppppplVar8;
           ppppplVar15 = ppppplVar8;
         }
         IppFreePacket();
       } while (ppppplVar14 != (longlong *****)0x0);
-      if (local_1a8 != (longlong *****)0x0) {
-        NetioDereferenceNetBufferListChain(local_1a8,0);
+      if (local_1a0 != (longlong *****)0x0) {
+        NetioDereferenceNetBufferListChain(local_1a0,0);
       }
     }
-    if (local_1b8 != (longlong *******)0x0) {
+    if (local_1b0 != (longlong *******)0x0) {
       iVar25 = 0;
-      ppppppplVar16 = local_1b8;
+      ppppppplVar16 = local_1b0;
       while (ppppppplVar16 != (longlong *******)0x0) {
         local_188 = (longlong ******)0x0;
         iVar1 = *(int *)(ppppppplVar16[1] + 0x1a);
         ppppppplStack_180 = &local_188;
         do {
           ppppppplVar22 = ppppppplVar16;
           if ((*(int *)(param_1 + 0x4d18) != 0) &&
              (ppppppplVar16 = ppppppplVar22, *(int *)(ppppppplVar22[1] + 0x1a) != iVar1)) break;
           ppppplVar15 = ppppppplVar22[0x1b][1];
           *(byte *)((longlong)ppppppplVar22 + 0xb9) =
                *(byte *)((longlong)ppppppplVar22 + 0xb9) & 0xbf;
-          if (local_1b8 != (longlong *******)0x0) {
-            ppppppplVar16 = (longlong *******)*local_1b8;
-            *local_1b8 = (longlong ******)0x0;
-            bVar28 = local_1b0 == local_1b8;
-            local_1b8 = ppppppplVar16;
+          if (local_1b0 != (longlong *******)0x0) {
+            ppppppplVar16 = (longlong *******)*local_1b0;
+            *local_1b0 = (longlong ******)0x0;
+            bVar28 = local_1a8 == local_1b0;
+            local_1b0 = ppppppplVar16;
             if (bVar28) {
-              local_1b0 = (longlong *******)&local_1b8;
+              local_1a8 = (longlong *******)&local_1b0;
             }
           }
           if (DAT_5 < '\0') {
             memset(local_148,0,0x80);
             memset(local_c8,0,0x80);
             if ((*(int *)(ppppppplVar22 + 4) == 6) || (*(int *)(ppppppplVar22 + 4) == 0x11)) {
               uVar26 = *(undefined2 *)((longlong)ppppppplVar22 + 0xbe);
               bVar28 = true;
             }
             else {
               bVar28 = false;
               uVar26 = 0;
             }
-            local_238._0_2_ = uVar26;
+            local_228._0_2_ = uVar26;
             INETADDR_SETSOCKADDR
                       (*(undefined2 *)((longlong)ppppppplVar22[0x19][5] + 0x1c),local_c8,
                        ppppppplVar22 + 0x1d,0);
             if (bVar28) {
               uVar26 = *(undefined2 *)((longlong)ppppppplVar22 + 0xbc);
             }
             else {
               uVar26 = 0;
             }
-            local_238 = CONCAT62(local_238._2_6_,uVar26);
+            local_228 = CONCAT62(local_228._2_6_,uVar26);
             INETADDR_SETSOCKADDR
                       (*(undefined2 *)((longlong)ppppppplVar22[0x19][5] + 0x1c),local_148,
                        *ppppppplVar22[0x1c][2],0);
             if (DAT_5 < '\0') {
               pppppplVar18 = ppppppplVar22[0x19];
-              bVar12 = SOCKADDR_SIZE(*(undefined2 *)((longlong)pppppplVar18[5] + 0x1c));
-              local_210 = *(uint *)(ppppppplVar22 + 4);
-              local_218 = local_148;
-              local_220 = local_c8;
-              local_230 = *(undefined4 *)pppppplVar18;
-              local_228 = (uint)bVar12;
-              local_238 = CONCAT44(local_238._4_4_,*(undefined4 *)(ppppppplVar22[0x1b][1] + 1));
+              bVar11 = SOCKADDR_SIZE(*(undefined2 *)((longlong)pppppplVar18[5] + 0x1c));
+              local_200 = *(uint *)(ppppppplVar22 + 4);
+              local_210 = local_c8;
+              local_220 = *(undefined4 *)pppppplVar18;
+              local_218 = (uint)bVar11;
+              local_228 = CONCAT44(local_228._4_4_,*(undefined4 *)(ppppppplVar22[0x1b][1] + 1));
+              local_208 = local_148;
               McTemplateK0pqqqbr3br3q_EtwWriteTransfer();
             }
           }
-          pppppplVar18 = ppppppplVar22[1];
-          local_1f0 = (longlong ******)pppppplVar18[0x12];
-          if (((ulonglong)local_1f0 & 4) == 0) {
-            if ((((ulonglong)local_1f0 & 8) != 0) || ((int)pppppplVar18[0x28] != 0)) {
-              uVar23 = (uint)local_1f0 & 0xfffffff4 | 0x110;
-              goto LAB_6;
-            }
-          }
-          else {
-            uVar23 = (uint)local_1f0 & 0xfffffff8 | 0x108;
-LAB_6:
-            uVar21 = (ulonglong)local_1f0 >> 0x20;
-            local_1f0 = (longlong ******)CONCAT44((int)uVar21,uVar23);
-            pppppplVar18[0x12] = (longlong *****)local_1f0;
-            if ((int)pppppplVar18[0x28] != 0) {
-              FUN_1401c647f();
-              return;
-            }
-          }
-          if ((Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_featureState & 0x10)
-              == 0) {
-            uVar23 = Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline
-                               ();
-          }
-          else {
-            uVar23 = Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_featureState &
-                     1;
-          }
-          if ((((uVar23 != 0) && (*(int *)(pppppplVar18 + 0x28) == 0)) &&
-              (*(int *)(pppppplVar18 + 0x14) == 0)) &&
-             ((param_1 == &Ipv4Global && (cVar10 = KfdAreAllIpv4InLayersEmpty(), cVar10 == '\0'))))
-          {
-            for (ppppplVar14 = pppppplVar18[1]; ppppplVar14 != (longlong *****)0x0;
-                ppppplVar14 = (longlong *****)*ppppplVar14) {
-              Ipv4pFillPacketChecksum(ppppplVar14);
-            }
-          }
+          IppTranslateTransmitToReceiveNbl(param_1,ppppppplVar22[1]);
           iVar25 = iVar25 + 1;
           ppppppplVar22[1][0x22] = (longlong *****)(ulonglong)*(uint *)(ppppplVar15 + 1);
           *ppppppplStack_180 = (longlong ******)ppppppplVar22;
-          ppppppplVar16 = local_1b8;
+          ppppppplVar16 = local_1b0;
           ppppppplStack_180 = ppppppplVar22;
-        } while (local_1b8 != (longlong *******)0x0);
+        } while (local_1b0 != (longlong *******)0x0);
         if (local_188 != (longlong ******)0x0) {
           local_1d8 = local_188;
           ppppppplStack_1d0 = ppppppplStack_180;
           if (*(int *)(param_1 + 0x4d18) == 0) {
             local_168 = 0;
             uStack_160 = 0;
             local_158 = 0;
-            while (ppppppplVar16 = local_1b8, local_1d8 != (longlong ******)0x0) {
-              uVar11 = KfRaiseIrql(2);
+            while (ppppppplVar16 = local_1b0, local_1d8 != (longlong ******)0x0) {
+              uVar10 = KfRaiseIrql(2);
               lVar13 = *(longlong *)
                         (*(longlong *)(param_1 + 0x4ee0) +
                         (ulonglong)SystemReserved1[0x12]._4_4_ * 8);
               KeAcquireSpinLockAtDpcLevel(lVar13);
               plVar6 = (longlong *)(lVar13 + 8);
               if (local_1d8 != (longlong ******)0x0) {
                 **(undefined8 **)(lVar13 + 0x10) = local_1d8;
                 *(longlong ********)(lVar13 + 0x10) = ppppppplStack_1d0;
               }
               ppppppplStack_1d0 = &local_1d8;
               local_1d8 = (longlong ******)0x0;
               if (*(char *)(lVar13 + 0x1c) == '\0') {
                 *(undefined1 *)(lVar13 + 0x1c) = 1;
                 uStack_160 = 0;
-                local_158 = CONCAT71(local_158._1_7_,uVar11);
-                local_238 = *(undefined8 *)(lVar13 + 0x20);
+                local_158 = CONCAT71(local_158._1_7_,uVar10);
+                local_228 = *(undefined8 *)(lVar13 + 0x20);
                 local_168 = lVar13;
                 KeExpandKernelStackAndCalloutEx(IppLbTransmitStackCallout,&local_168,0x4800,0);
                 if ((longlong ******)*plVar6 != (longlong ******)0x0) {
                   *ppppppplStack_1d0 = (longlong ******)*plVar6;
                   ppppppplStack_1d0 = *(longlong ********)(lVar13 + 0x10);
                 }
                 *plVar6 = 0;
                 *(longlong **)(lVar13 + 0x10) = plVar6;
                 *(byte *)(lVar13 + 0x1c) = *(byte *)(lVar13 + 0x1c) & 0xfe;
               }
               KeReleaseSpinLockFromDpcLevel(lVar13);
-              KeLowerIrql(uVar11);
+              KeLowerIrql(uVar10);
             }
           }
           else {
             IppLbEnqueueAdaptiveOrWorkerMode(param_1,&local_1d8,iVar25,iVar1);
-            ppppppplVar16 = local_1b8;
+            ppppppplVar16 = local_1b0;
           }
         }
       }
     }
   }
   return;
 }
 

```


## Ipv4pUpdatePathMtu

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.35|
|i_ratio|0.42|
|m_ratio|0.92|
|b_ratio|0.81|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv4pUpdatePathMtu|Ipv4pUpdatePathMtu|
|fullname|Ipv4pUpdatePathMtu|Ipv4pUpdatePathMtu|
|refcount|2|2|
|`length`|543|462|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppFindPath<br>IppGetScopeId<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableWriteLock<br>_IppDereferencePath|IppFindPath<br>IppGetScopeId<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableWriteLock<br>_IppDereferencePath|
|calling|Icmpv4pHandleError|Icmpv4pHandleError|
|paramcount|0|0|
|`address`|1400980a8|1400a8e68|
|sig|undefined Ipv4pUpdatePathMtu(void)|undefined Ipv4pUpdatePathMtu(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv4pUpdatePathMtu Called Diff


```diff
--- Ipv4pUpdatePathMtu called
+++ Ipv4pUpdatePathMtu called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### Ipv4pUpdatePathMtu Diff


```diff
--- Ipv4pUpdatePathMtu
+++ Ipv4pUpdatePathMtu
@@ -1,106 +1,82 @@
 
 undefined8 Ipv4pUpdatePathMtu(longlong param_1,longlong param_2,byte *param_3)
 
 {
-  longlong *plVar1;
-  longlong lVar2;
-  bool bVar3;
-  ushort uVar4;
-  undefined4 uVar5;
-  uint uVar6;
+  uint uVar1;
+  longlong *plVar2;
+  longlong lVar3;
+  bool bVar4;
+  ushort uVar5;
+  undefined4 uVar6;
   uint uVar7;
   longlong lVar8;
   uint uVar9;
   uint *puVar10;
   byte bVar11;
   uint uVar12;
-  uint uVar13;
-  char cVar14;
-  undefined4 local_res18;
-  undefined8 local_58;
-  undefined8 uStack_50;
+  byte bVar13;
+  undefined4 local_res8;
   undefined8 local_48;
+  undefined8 uStack_40;
+  undefined8 local_38;
   
-  plVar1 = *(longlong **)(param_1 + 8);
-  bVar3 = false;
-  cVar14 = '\0';
+  plVar2 = *(longlong **)(param_1 + 8);
+  bVar4 = false;
   bVar11 = 0;
-  lVar2 = *plVar1;
+  lVar3 = *plVar2;
   local_48 = 0;
-  local_58 = 0;
-  uStack_50 = 0;
+  uStack_40 = 0;
+  local_38 = 0;
   if (*(int *)**(undefined8 **)(param_1 + 0x10) != *(int *)(param_3 + 0xc)) {
     return 0xc000021b;
   }
-  uVar5 = IppGetScopeId(plVar1,param_3 + 0x10);
-  lVar8 = IppFindPath(lVar2,0,param_3 + 0x10,uVar5,plVar1,param_1);
+  uVar6 = IppGetScopeId(plVar2,param_3 + 0x10);
+  lVar8 = IppFindPath(lVar3,0,param_3 + 0x10,uVar6,plVar2,param_1);
   if (lVar8 == 0) {
     return 0xc0000225;
   }
-  uVar7 = *(uint *)(lVar8 + 0x70);
-  uVar4 = *(ushort *)(param_2 + 6) >> 8 | *(ushort *)(param_2 + 6) << 8;
-  uVar12 = (uint)uVar4;
+  uVar1 = *(uint *)(lVar8 + 0x70);
+  uVar5 = *(ushort *)(param_2 + 6) >> 8 | *(ushort *)(param_2 + 6) << 8;
   uVar9 = (uint)(ushort)(*(ushort *)(param_3 + 2) >> 8 | *(ushort *)(param_3 + 2) << 8);
-  if (uVar4 == 0) {
-    if ((uVar9 < uVar7) ||
-       (uVar9 = uVar9 - (byte)((*param_3 & 0xf) << 2), uVar13 = uVar7, uVar9 <= uVar7)) {
-      uVar6 = 0;
+  if (uVar5 == 0) {
+    if ((uVar9 < uVar1) ||
+       (uVar9 = uVar9 - (byte)((*param_3 & 0xf) << 2), uVar12 = uVar1, uVar9 <= uVar1)) {
+      uVar7 = 0;
       puVar10 = &Ipv4pMtuTable;
       do {
-        uVar13 = *puVar10;
+        uVar12 = *puVar10;
         if (*puVar10 < uVar9) break;
-        uVar6 = uVar6 + 1;
+        uVar7 = uVar7 + 1;
         puVar10 = puVar10 + 1;
-        uVar13 = uVar12;
-      } while (uVar6 < 9);
+        uVar12 = (uint)uVar5;
+      } while (uVar7 < 9);
     }
   }
-  else if ((uVar12 < 0x44) || (uVar13 = uVar12, uVar9 <= uVar12)) goto LAB_0;
-  if (uVar13 < DAT_1 + 0x14) {
-    cVar14 = '\x01';
-    if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-      uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+  else if ((uVar5 < 0x44) || (uVar12 = (uint)uVar5, uVar9 <= uVar5)) goto LAB_0;
+  if (uVar12 < DAT_1 + 0x14) {
+    bVar13 = 0x10;
+    uVar12 = DAT_1 + 0x14;
+    bVar11 = ~((byte)*(undefined4 *)(lVar8 + 0x28) >> 4) & 1;
+  }
+  else {
+    bVar13 = 0;
+  }
+  if ((uVar12 < uVar1) || (bVar11 != 0)) {
+    RtlAcquireScalableWriteLock(lVar3 + 0x340,&local_48);
+    if ((uVar12 < *(uint *)(lVar8 + 0x70)) || (bVar11 != 0)) {
+      bVar4 = true;
+      local_res8 = CONCAT31((int3)((uint)*(undefined4 *)(lVar8 + 0x28) >> 8),
+                            (byte)*(undefined4 *)(lVar8 + 0x28) & 0xef | bVar13);
+      *(undefined4 *)(lVar8 + 0x28) = local_res8;
+      IppUpdatePathMtu(lVar8,uVar12);
     }
-    else {
-      uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-    }
-    if (uVar9 == 0) {
-      if ((*(byte *)(lVar8 + 0x28) & 0x10) == 0) {
-        bVar11 = 1;
-      }
-    }
-    else {
-      bVar11 = ~((byte)*(undefined4 *)(lVar8 + 0x28) >> 4) & 1;
-    }
-    uVar13 = DAT_1 + 0x14;
-  }
-  if ((uVar13 < uVar7) || (bVar11 != 0)) {
-    RtlAcquireScalableWriteLock(lVar2 + 0x340,&local_58);
-    if ((uVar13 < *(uint *)(lVar8 + 0x70)) || (bVar11 != 0)) {
-      bVar3 = true;
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar7 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar7 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar7 == 0) {
-        *(byte *)(lVar8 + 0x28) = *(byte *)(lVar8 + 0x28) & 0xef | cVar14 << 4;
-      }
-      else {
-        local_res18 = CONCAT31((int3)((uint)*(undefined4 *)(lVar8 + 0x28) >> 8),
-                               (byte)*(undefined4 *)(lVar8 + 0x28) & 0xef | cVar14 << 4);
-        *(undefined4 *)(lVar8 + 0x28) = local_res18;
-      }
-      IppUpdatePathMtu(lVar8,uVar13);
-    }
-    KeReleaseInStackQueuedSpinLock(&local_58);
-    if (bVar3) {
-      IppUpdatePathNotification(lVar2,lVar8);
+    KeReleaseInStackQueuedSpinLock(&local_48);
+    if (bVar4) {
+      IppUpdatePathNotification(lVar3,lVar8);
     }
   }
 LAB_0:
   _IppDereferencePath(lVar8);
   return 0;
 }
 

```


## FlRdmaUnbindAdapter

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.95|
|i_ratio|0.76|
|m_ratio|0.96|
|b_ratio|0.8|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlRdmaUnbindAdapter|FlRdmaUnbindAdapter|
|fullname|FlRdmaUnbindAdapter|FlRdmaUnbindAdapter|
|refcount|3|3|
|`length`|309|289|
|`called`|<details><summary>Expand for full list:<br>Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>FlRdmapLogInterfaceEvent<br>FlRdmapNsiInitNotification<br>FlpDereferenceInterface<br>FlpRemoveInterface<br>FlpUninitializeProviderInterfaces<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisCloseAdapterEx<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::IoQueueWorkItem<br>NTOSKRNL.EXE::KeWaitForSingleObject</summary></details>|FlRdmapLogInterfaceEvent<br>FlRdmapNsiInitNotification<br>FlpDereferenceInterface<br>FlpRemoveInterface<br>FlpUninitializeProviderInterfaces<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisCloseAdapterEx<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::IoQueueWorkItem<br>NTOSKRNL.EXE::KeWaitForSingleObject|
|calling|||
|paramcount|0|0|
|`address`|1401b0520|1401b0720|
|sig|undefined FlRdmaUnbindAdapter(void)|undefined FlRdmaUnbindAdapter(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlRdmaUnbindAdapter Called Diff


```diff
--- FlRdmaUnbindAdapter called
+++ FlRdmaUnbindAdapter called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### FlRdmaUnbindAdapter Diff


```diff
--- FlRdmaUnbindAdapter
+++ FlRdmaUnbindAdapter
@@ -1,35 +1,32 @@
 
 undefined8 FlRdmaUnbindAdapter(undefined8 param_1,longlong param_2)
 
 {
   longlong lVar1;
   char cVar2;
   int iVar3;
   undefined2 local_res10;
   undefined1 local_res12;
   
   lVar1 = *(longlong *)(param_2 + 0x20);
   local_res10 = 0;
   local_res12 = 0;
   NdisAcquireRWLockWrite(*(undefined8 *)(param_2 + 0x28),&local_res10,0);
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
   *(uint *)(param_2 + 0xc4) = *(uint *)(param_2 + 0xc4) | 8;
   cVar2 = FlRdmapNsiInitNotification(param_2,2);
   NdisReleaseRWLock(*(undefined8 *)(param_2 + 0x28),&local_res10);
   FlRdmapLogInterfaceEvent(param_2,1);
   if (cVar2 != '\0') {
     IoQueueWorkItem(*(undefined8 *)(param_2 + 0x60),FlRdmapNSINotificationWorkerRoutine,1,param_2);
   }
   FlpUninitializeProviderInterfaces(param_2);
   FlRdmapLogInterfaceEvent(param_2,2);
   iVar3 = NdisCloseAdapterEx(*(undefined8 *)(param_2 + 0x4b0));
   if (iVar3 == 0x103) {
     KeWaitForSingleObject(param_2 + 0xa8,6,0,0,0);
   }
   FlpRemoveInterface(lVar1 + 0x1b8,param_2);
   FlpDereferenceInterface(param_2);
   return 0;
 }
 

```


## IpNlpFilterDatagramBySessionInformation

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.69|
|i_ratio|0.71|
|m_ratio|0.96|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpNlpFilterDatagramBySessionInformation|IpNlpFilterDatagramBySessionInformation|
|fullname|IpNlpFilterDatagramBySessionInformation|IpNlpFilterDatagramBySessionInformation|
|refcount|13|13|
|`length`|404|385|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>Ipv6AddressScope<br>Ipv6SitePrefixMatch<br>RtlAcquireReadLockAtDpcLevel<br>memcmp|Ipv6AddressScope<br>Ipv6SitePrefixMatch<br>RtlAcquireReadLockAtDpcLevel<br>memcmp|
|calling|InetFilterDatagramBySessionInformationAf<br>RawDeliverDatagrams<br>TcpInspectListenerReceive|InetFilterDatagramBySessionInformationAf<br>RawDeliverDatagrams<br>TcpInspectListenerReceive|
|paramcount|0|0|
|`address`|14005b9b0|14002e400|
|sig|undefined IpNlpFilterDatagramBySessionInformation(void)|undefined IpNlpFilterDatagramBySessionInformation(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpNlpFilterDatagramBySessionInformation Called Diff


```diff
--- IpNlpFilterDatagramBySessionInformation called
+++ IpNlpFilterDatagramBySessionInformation called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IpNlpFilterDatagramBySessionInformation Diff


```diff
--- IpNlpFilterDatagramBySessionInformation
+++ IpNlpFilterDatagramBySessionInformation
@@ -1,97 +1,83 @@
 
 bool IpNlpFilterDatagramBySessionInformation(longlong *param_1)
 
 {
   ushort uVar1;
   longlong lVar2;
   longlong lVar3;
   longlong lVar4;
   void *_Buf2;
   longlong *plVar5;
   undefined8 uVar6;
   longlong lVar7;
-  uint uVar8;
-  int iVar9;
-  longlong *plVar10;
-  bool bVar11;
+  int iVar8;
+  longlong *plVar9;
   
   lVar2 = param_1[1];
   lVar3 = *param_1;
   lVar4 = *(longlong *)(lVar2 + 0x20);
-  iVar9 = *(int *)(lVar4 + 0x18);
+  iVar8 = *(int *)(lVar4 + 0x18);
   if (lVar3 == 0) {
-    if (iVar9 == 3) {
+    if (iVar8 == 3) {
       return false;
     }
   }
   else {
     if (*(longlong *)(lVar3 + 0x18) == *(longlong *)(lVar4 + 8)) {
       return (bool)2;
     }
-    if (iVar9 == 3) {
+    if (iVar8 == 3) {
       if (*(longlong *)(lVar3 + 0x20) == *(longlong *)(lVar4 + 8)) {
         return (bool)2;
       }
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar8 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar8 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar8 == 0) {
-        bVar11 = (*(byte *)(lVar3 + 0x2c) & 2) == 0;
-      }
-      else {
-        bVar11 = (*(uint *)(lVar3 + 0x2c) & 2) == 0;
-      }
-      if ((bVar11) && ((*(byte *)(lVar2 + 0x10) & 1) != 0)) {
+      if (((*(uint *)(lVar3 + 0x2c) & 2) == 0) && ((*(byte *)(lVar2 + 0x10) & 1) != 0)) {
         return false;
       }
       _Buf2 = *(void **)(lVar2 + 0x18);
-      plVar10 = (longlong *)(lVar3 + 0x58);
+      plVar9 = (longlong *)(lVar3 + 0x58);
       uVar1 = *(ushort *)
                (*(longlong *)(*(longlong *)(**(longlong **)(lVar4 + 8) + 0x28) + 0x10) + 6);
-      if ((longlong *)*plVar10 == plVar10) {
+      if ((longlong *)*plVar9 == plVar9) {
         return false;
       }
       RtlAcquireReadLockAtDpcLevel(lVar3 + 0x70);
-      plVar5 = (longlong *)*plVar10;
+      plVar5 = (longlong *)*plVar9;
       while( true ) {
-        if (plVar5 == plVar10) {
+        if (plVar5 == plVar9) {
           LOCK();
           *(int *)(lVar3 + 0x78) = *(int *)(lVar3 + 0x78) + -1;
           UNLOCK();
           return false;
         }
         if (lVar4 == plVar5[7]) break;
         plVar5 = (longlong *)*plVar5;
       }
-      for (plVar10 = (longlong *)plVar5[4]; plVar10 != plVar5 + 4; plVar10 = (longlong *)*plVar10) {
-        iVar9 = memcmp(plVar10 + 2,_Buf2,(ulonglong)uVar1);
-        if (iVar9 == 0) goto LAB_0;
+      for (plVar9 = (longlong *)plVar5[4]; plVar9 != plVar5 + 4; plVar9 = (longlong *)*plVar9) {
+        iVar8 = memcmp(plVar9 + 2,_Buf2,(ulonglong)uVar1);
+        if (iVar8 == 0) goto LAB_0;
       }
-      plVar10 = (longlong *)0x0;
+      plVar9 = (longlong *)0x0;
 LAB_0:
       lVar7 = plVar5[3];
       LOCK();
       *(int *)(lVar3 + 0x78) = *(int *)(lVar3 + 0x78) + -1;
       UNLOCK();
-      if (((int)lVar7 == 1) == (plVar10 != (longlong *)0x0)) {
+      if (((int)lVar7 == 1) == (plVar9 != (longlong *)0x0)) {
         return false;
       }
     }
-    else if ((iVar9 == 4) && (-1 < *(char *)(lVar3 + 0x2c))) {
+    else if ((iVar8 == 4) && (-1 < *(char *)(lVar3 + 0x2c))) {
       return false;
     }
     if (*(char *)(lVar3 + 0x30) == '\x1e') {
       uVar6 = *(undefined8 *)(lVar2 + 0x18);
-      iVar9 = Ipv6AddressScope(uVar6);
-      if (5 < iVar9) {
-        iVar9 = Ipv6SitePrefixMatch(**(undefined8 **)(lVar4 + 8),uVar6);
-        return iVar9 != 0;
+      iVar8 = Ipv6AddressScope(uVar6);
+      if (5 < iVar8) {
+        iVar8 = Ipv6SitePrefixMatch(**(undefined8 **)(lVar4 + 8),uVar6);
+        return iVar8 != 0;
       }
     }
   }
   return true;
 }
 

```


## Fl68MapAddress

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.4|
|i_ratio|0.15|
|m_ratio|0.78|
|b_ratio|0.75|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Fl68MapAddress|Fl68MapAddress|
|fullname|Fl68MapAddress|Fl68MapAddress|
|refcount|3|3|
|`length`|167|110|
|`called`|Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>Fl68pMapMulticastAddress|Fl68pMapMulticastAddress|
|calling|||
|paramcount|0|0|
|`address`|14014b600|14014af60|
|sig|undefined Fl68MapAddress(void)|undefined Fl68MapAddress(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Fl68MapAddress Called Diff


```diff
--- Fl68MapAddress called
+++ Fl68MapAddress called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### Fl68MapAddress Diff


```diff
--- Fl68MapAddress
+++ Fl68MapAddress
@@ -1,43 +1,28 @@
 
 undefined8 Fl68MapAddress(longlong *param_1)
 
 {
   int iVar1;
   longlong lVar2;
   longlong lVar3;
-  uint uVar4;
-  undefined8 uVar5;
+  undefined8 uVar4;
   
   lVar2 = *param_1;
   lVar3 = *(longlong *)(lVar2 + 0x48);
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    uVar4 = Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
+  if (((*(byte *)(lVar2 + 0x40) & 1) == 0) && ((*(uint *)(lVar3 + 0xc4) & 8) == 0)) {
+    param_1[3] = *(longlong *)(lVar2 + 0x90);
+    iVar1 = *(int *)(lVar3 + 0x138);
+    if (((iVar1 == 9) || (iVar1 == 0x12)) || (iVar1 == 0x13)) {
+      return 0;
+    }
+    if (*(char *)param_1[1] == -1) {
+      uVar4 = Fl68pMapMulticastAddress(param_1[2]);
+      return uVar4;
+    }
   }
   else {
-    uVar4 = Feature_TCPIP_58629296_Fix__private_featureState & 1;
+    param_1[3] = 0;
   }
-  if (uVar4 == 0) {
-    if ((*(byte *)(lVar2 + 0x40) & 1) != 0) goto LAB_0;
-    uVar4 = *(uint *)(lVar3 + 0xc4);
-  }
-  else {
-    uVar4 = *(uint *)(lVar3 + 0xc4);
-    if ((*(byte *)(lVar2 + 0x40) & 1) != 0) goto LAB_0;
-  }
-  if ((uVar4 & 8) == 0) {
-    param_1[3] = *(longlong *)(lVar2 + 0x90);
-    iVar1 = *(int *)(lVar3 + 0x138);
-    if (((iVar1 != 9) && (iVar1 != 0x12)) && (iVar1 != 0x13)) {
-      if (*(char *)param_1[1] != -1) {
-        return 1;
-      }
-      uVar5 = Fl68pMapMulticastAddress(param_1[2],(char *)param_1[1],lVar3);
-      return uVar5;
-    }
-    return 0;
-  }
-LAB_0:
-  param_1[3] = 0;
   return 1;
 }
 

```


## FseProcessIncomingMessages

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.23|
|i_ratio|0.12|
|m_ratio|0.81|
|b_ratio|0.26|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FseProcessIncomingMessages|FseProcessIncomingMessages|
|fullname|FseProcessIncomingMessages|FseProcessIncomingMessages|
|refcount|2|2|
|`length`|754|1122|
|`called`|FseProcessIncomingMessage<br>WPP_SF_<br>WPP_SF__guid_<br>WPP_SF__guid_DDD<br>WPP_SF__guid_d<br>__security_check_cookie<br>memmove|Feature_3722700091__private_IsEnabledDeviceUsageNoInline<br>FseProcessIncomingMessage<br>WPP_SF_<br>WPP_SF__guid_<br>WPP_SF__guid_DD<br>WPP_SF__guid_DDD<br>WPP_SF__guid_d<br>__security_check_cookie<br>memmove|
|calling|OnReceiveComplete|OnReceiveComplete|
|paramcount|0|0|
|`address`|1401bd4c0|1401bd708|
|sig|undefined FseProcessIncomingMessages(void)|undefined FseProcessIncomingMessages(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FseProcessIncomingMessages Called Diff


```diff
--- FseProcessIncomingMessages called
+++ FseProcessIncomingMessages called
@@ -0,0 +1 @@
+Feature_3722700091__private_IsEnabledDeviceUsageNoInline
@@ -3,0 +5 @@
+WPP_SF__guid_DD
```


### FseProcessIncomingMessages Diff


```diff
--- FseProcessIncomingMessages
+++ FseProcessIncomingMessages
@@ -1,141 +1,196 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 undefined8 FseProcessIncomingMessages(longlong param_1,longlong param_2)
 
 {
-  uint uVar1;
-  longlong lVar2;
-  void *pvVar3;
-  undefined8 uVar4;
-  uint uVar5;
-  uint *_Src;
+  longlong lVar1;
+  int iVar2;
+  int iVar3;
+  void *_Dst;
+  uint uVar4;
+  undefined8 uVar5;
   uint uVar6;
   size_t _Size;
-  ulonglong _Size_00;
-  undefined1 auStack_a8 [32];
-  uint local_88;
-  uint local_68 [8];
-  ulonglong local_48;
+  uint *_Src;
+  undefined1 auStack_98 [32];
+  uint local_78;
+  undefined8 local_50;
+  undefined8 uStack_48;
+  ulonglong local_30;
   
-  local_48 = __security_cookie ^ (ulonglong)auStack_a8;
+  local_30 = __security_cookie ^ (ulonglong)auStack_98;
   _Src = *(uint **)(param_1 + 0x30);
   uVar6 = *(uint *)(param_2 + 0x38);
   _Size = (size_t)uVar6;
-  lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x20) + 0xa8);
+  lVar1 = *(longlong *)(*(longlong *)(param_1 + 0x20) + 0xa8);
   if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
      (4 < (byte)WPP_GLOBAL_Control[0x29])) {
-    local_88 = uVar6;
+    local_78 = uVar6;
     WPP_SF__guid_d(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x26,
-                   &WPP_cfb8f2bb81d436f03786b7d00549e435_Traceguids,lVar2 + 0x18);
+                   &WPP_4bb1603e2f8e3099d0d01551e318f38a_Traceguids,lVar1 + 0x18);
   }
-  if (*(int *)(lVar2 + 0x488) == 0) {
+  if (*(int *)(lVar1 + 0x488) == 0) {
 LAB_0:
-    while (uVar6 = (uint)_Size, uVar6 != 0) {
-      if ((uVar6 < 0x21) || (uVar6 < *_Src)) {
-        memmove((void *)(lVar2 + 0x88),_Src,_Size);
-        *(uint *)(lVar2 + 0x488) = uVar6;
-        return 1;
+    uVar6 = (uint)_Size;
+    while (uVar6 != 0) {
+      uVar6 = (uint)_Size;
+      if (uVar6 < 0x21) {
+        Feature_3722700091__private_IsEnabledDeviceUsageNoInline();
+LAB_1:
+        memmove((void *)(lVar1 + 0x88),_Src,_Size);
+        *(uint *)(lVar1 + 0x488) = uVar6;
+        break;
       }
-      FseProcessIncomingMessage(lVar2);
-      uVar1 = *_Src;
-      _Src = (uint *)((longlong)_Src + (ulonglong)uVar1);
-      _Size = (size_t)(uVar6 - uVar1);
+      if (uVar6 < *_Src) {
+        iVar3 = Feature_3722700091__private_IsEnabledDeviceUsageNoInline();
+        if ((iVar3 == 0) || ((*_Src < 0x401 && (uVar6 < 0x401)))) goto LAB_1;
+        if (((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
+           ((byte)WPP_GLOBAL_Control[0x29] < 2)) goto LAB_2;
+        uVar5 = 0x32;
+        local_78 = *_Src;
+        goto LAB_3;
+      }
+      FseProcessIncomingMessage(lVar1,_Src);
+      uVar4 = *_Src;
+      _Src = (uint *)((longlong)_Src + (ulonglong)uVar4);
+      uVar6 = uVar6 - uVar4;
+      _Size = (size_t)uVar6;
     }
+LAB_4:
+    uVar5 = 1;
   }
   else {
     if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
        (4 < (byte)WPP_GLOBAL_Control[0x29])) {
       WPP_SF__guid_(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0x27,
-                    &WPP_cfb8f2bb81d436f03786b7d00549e435_Traceguids,lVar2 + 0x18);
+                    &WPP_4bb1603e2f8e3099d0d01551e318f38a_Traceguids,lVar1 + 0x18);
     }
-    uVar1 = *(uint *)(lVar2 + 0x488);
-    _Size_00 = (ulonglong)uVar1;
-    if (uVar1 < 4) {
-      if (uVar6 < 0x20 - uVar1) {
-        memmove((void *)(lVar2 + 0x88 + _Size_00),_Src,_Size);
-        *(int *)(lVar2 + 0x488) = *(int *)(lVar2 + 0x488) + uVar6;
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return 1;
+    uVar4 = *(uint *)(lVar1 + 0x488);
+    if (uVar4 < 4) {
+      if (uVar6 < 0x20 - uVar4) {
+        iVar3 = Feature_3722700091__private_IsEnabledDeviceUsageNoInline();
+        if ((iVar3 == 0) ||
+           ((uVar4 = *(uint *)(lVar1 + 0x488) + uVar6, *(uint *)(lVar1 + 0x488) <= uVar4 &&
+            (uVar4 < 0x401)))) {
+          memmove((void *)((ulonglong)*(uint *)(lVar1 + 0x488) + 0x88 + lVar1),_Src,_Size);
+          *(int *)(lVar1 + 0x488) = *(int *)(lVar1 + 0x488) + uVar6;
+          if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+             (4 < (byte)WPP_GLOBAL_Control[0x29])) {
+            uVar5 = 0x2c;
+LAB_5:
+            WPP_SF_(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar5,
+                    &WPP_4bb1603e2f8e3099d0d01551e318f38a_Traceguids);
+          }
+          goto LAB_4;
         }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 5) {
-          return 1;
-        }
-        uVar4 = 0x2a;
+        if (((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
+           ((byte)WPP_GLOBAL_Control[0x29] < 2)) goto LAB_2;
+        uVar5 = 0x2b;
+        local_78 = uVar4;
+LAB_3:
+        WPP_SF__guid_DD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar5,local_78,lVar1 + 0x18);
       }
       else {
-        local_68[0] = 0;
-        local_68[1] = 0;
-        local_68[2] = 0;
-        local_68[3] = 0;
-        memmove(local_68,(void *)(lVar2 + 0x88),_Size_00);
-        memmove((void *)((longlong)local_68 + _Size_00),_Src,(ulonglong)(0x20 - uVar1));
-        uVar5 = local_68[0];
-        if (0x3df < local_68[0] - 0x21) {
-          if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-            return 0;
+        local_50 = 0;
+        uStack_48 = 0;
+        memmove(&local_50,(void *)(lVar1 + 0x88),(ulonglong)uVar4);
+        memmove((void *)((longlong)&local_50 + (ulonglong)uVar4),_Src,(ulonglong)(0x20 - uVar4));
+        iVar3 = Feature_3722700091__private_IsEnabledDeviceUsageNoInline();
+        if (iVar3 == 0) {
+          if ((int)local_50 - 0x21U < 0x3e0) {
+LAB_6:
+            uVar4 = (int)local_50 - *(uint *)(lVar1 + 0x488);
+            if (uVar4 <= uVar6) {
+              _Dst = (void *)((ulonglong)*(uint *)(lVar1 + 0x488) + 0x88 + lVar1);
+              iVar3 = (int)local_50;
+              goto LAB_7;
+            }
+            iVar3 = Feature_3722700091__private_IsEnabledDeviceUsageNoInline();
+            if ((iVar3 == 0) ||
+               ((uVar4 = *(uint *)(lVar1 + 0x488) + uVar6, *(uint *)(lVar1 + 0x488) <= uVar4 &&
+                (uVar4 < 0x401)))) {
+              memmove((void *)((ulonglong)*(uint *)(lVar1 + 0x488) + 0x88 + lVar1),_Src,_Size);
+              *(int *)(lVar1 + 0x488) = *(int *)(lVar1 + 0x488) + uVar6;
+              if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                 (4 < (byte)WPP_GLOBAL_Control[0x29])) {
+                uVar5 = 0x30;
+                goto LAB_5;
+              }
+              goto LAB_4;
+            }
+            if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+               (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+              uVar5 = 0x2f;
+              local_78 = uVar4;
+              goto LAB_3;
+            }
           }
-          if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-            return 0;
+          else if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+                  (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+            uVar5 = 0x2e;
+            local_78 = (int)local_50;
+            goto LAB_8;
           }
-          uVar4 = 0x2b;
-          local_88 = local_68[0];
-          goto LAB_1;
         }
-        pvVar3 = (void *)(lVar2 + 0x88 + _Size_00);
-        if (local_68[0] - uVar1 <= uVar6) {
-          memmove(pvVar3,_Src,(ulonglong)(local_68[0] - uVar1));
-          goto LAB_2;
+        else {
+          if ((int)local_50 - 0x21U < 0x3e0) goto LAB_6;
+          if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+             (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+            uVar5 = 0x2d;
+            local_78 = (int)local_50;
+            goto LAB_8;
+          }
         }
-        memmove(pvVar3,_Src,_Size);
-        *(int *)(lVar2 + 0x488) = *(int *)(lVar2 + 0x488) + uVar6;
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return 1;
-        }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 5) {
-          return 1;
-        }
-        uVar4 = 0x2c;
       }
     }
     else {
-      uVar5 = *(uint *)(lVar2 + 0x88);
-      if ((0x400 < uVar5) || (uVar5 < 0x21)) {
-        if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-          return 0;
+      iVar3 = *(int *)(lVar1 + 0x88);
+      iVar2 = Feature_3722700091__private_IsEnabledDeviceUsageNoInline();
+      if (iVar2 == 0) {
+        if (iVar3 - 0x21U < 0x3e0) {
+LAB_9:
+          _Dst = (void *)(lVar1 + 0x88 + (ulonglong)*(uint *)(lVar1 + 0x488));
+          uVar4 = iVar3 - *(uint *)(lVar1 + 0x488);
+          if (uVar6 < uVar4) {
+            memmove(_Dst,_Src,_Size);
+            *(int *)(lVar1 + 0x488) = *(int *)(lVar1 + 0x488) + uVar6;
+            if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+               (4 < (byte)WPP_GLOBAL_Control[0x29])) {
+              uVar5 = 0x2a;
+              goto LAB_5;
+            }
+            goto LAB_4;
+          }
+LAB_7:
+          memmove(_Dst,_Src,(ulonglong)uVar4);
+          _Src = (uint *)((longlong)_Src + (ulonglong)(uint)(iVar3 - *(int *)(lVar1 + 0x488)));
+          _Size = (size_t)(uVar6 + (*(int *)(lVar1 + 0x488) - iVar3));
+          FseProcessIncomingMessage(lVar1,lVar1 + 0x88,iVar3);
+          *(undefined4 *)(lVar1 + 0x488) = 0;
+          goto LAB_0;
         }
-        if ((byte)WPP_GLOBAL_Control[0x29] < 2) {
-          return 0;
+        if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+           (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+          uVar5 = 0x29;
+          local_78 = iVar3;
+LAB_8:
+          WPP_SF__guid_DDD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar5);
         }
-        uVar4 = 0x28;
-        local_88 = uVar5;
-LAB_1:
-        WPP_SF__guid_DDD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar4);
-        return 0;
       }
-      pvVar3 = (void *)(lVar2 + 0x88 + _Size_00);
-      if (uVar5 - uVar1 <= uVar6) {
-        memmove(pvVar3,_Src,(ulonglong)(uVar5 - uVar1));
+      else {
+        if (iVar3 - 0x21U < 0x3e0) goto LAB_9;
+        if (((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
+           (1 < (byte)WPP_GLOBAL_Control[0x29])) {
+          uVar5 = 0x28;
+          local_78 = iVar3;
+          goto LAB_8;
+        }
+      }
+    }
 LAB_2:
-        _Src = (uint *)((longlong)_Src + (ulonglong)(uVar5 - *(int *)(lVar2 + 0x488)));
-        _Size = (size_t)(uVar6 + (*(int *)(lVar2 + 0x488) - uVar5));
-        FseProcessIncomingMessage(lVar2,lVar2 + 0x88,uVar5);
-        *(undefined4 *)(lVar2 + 0x488) = 0;
-        goto LAB_0;
-      }
-      memmove(pvVar3,_Src,_Size);
-      *(int *)(lVar2 + 0x488) = *(int *)(lVar2 + 0x488) + uVar6;
-      if ((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) {
-        return 1;
-      }
-      if ((byte)WPP_GLOBAL_Control[0x29] < 5) {
-        return 1;
-      }
-      uVar4 = 0x29;
-    }
-    WPP_SF_(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),uVar4,
-            &WPP_cfb8f2bb81d436f03786b7d00549e435_Traceguids);
+    uVar5 = 0;
   }
-  return 1;
+  return uVar5;
 }
 

```


## IpNlpSetSessionInfo

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.05|
|i_ratio|0.36|
|m_ratio|0.92|
|b_ratio|0.5|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpNlpSetSessionInfo|IpNlpSetSessionInfo|
|fullname|IpNlpSetSessionInfo|IpNlpSetSessionInfo|
|refcount|21|21|
|`length`|11751|10093|
|`called`|<details><summary>Expand for full list:<br>Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppAddAllMulticastReference<br>IppAddPromiscuousReference<br>IppDereferenceCompartment<br>IppDereferenceInterface<br>IppFindInterfaceByIndex<br>IppFindMulticastSessionState<br>IppGetAncillaryDataLength<br>IppGetCompartment<br>IppGetInterface</summary>IppGetInterfaceIndexFromSocketOption<br>IppGetMulticastSessionStateSourceList<br>IppInspectIsEndpointAdminOrSystem<br>IppIsAdminRequiredForDscp<br>IppProcessAddSource<br>IppProcessBlockSource<br>IppProcessDropSource<br>IppProcessJoinRequest<br>IppProcessLeaveRequest<br>IppProcessSetMulticastFilter<br>IppProcessUnblockSource<br>IppRemoveAllMulticastReference<br>IppRemovePromiscuousReference<br>IppSortDestinationAddresses<br>McTemplateK0qq_EtwWriteTransfer<br>McTemplateK0qqq_EtwWriteTransfer<br>McTemplateK0z_EtwWriteTransfer<br>NETIO.SYS::NetioNrtGetIfIndex<br>NETIO.SYS::NetioNrtIsTrackerDevice<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoIs32bitProcess<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KeTestSpinLock<br>NTOSKRNL.EXE::ObReferenceObjectByHandle<br>NTOSKRNL.EXE::ObfDereferenceObject<br>NTOSKRNL.EXE::PsGetCurrentProcess<br>NTOSKRNL.EXE::PsGetProcessImageFileName<br>NTOSKRNL.EXE::RtlEnumerateGenericTableLikeADirectory<br>RtlAcquireReadLock<br>WfpAleAuthorizePromiscuousMode<br>__security_check_cookie<br>_guard_dispatch_icall<br>_tlgWriteAgg<br>memmove</details>|<details><summary>Expand for full list:<br>Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>IppAddAllMulticastReference<br>IppAddPromiscuousReference<br>IppDereferenceCompartment<br>IppDereferenceInterface<br>IppFindInterfaceByIndex<br>IppFindMulticastSessionState<br>IppGetAncillaryDataLength<br>IppGetCompartment<br>IppGetInterface<br>IppGetInterfaceIndexFromSocketOption</summary>IppGetMulticastSessionStateSourceList<br>IppInspectIsEndpointAdminOrSystem<br>IppIsAdminRequiredForDscp<br>IppProcessAddSource<br>IppProcessBlockSource<br>IppProcessDropSource<br>IppProcessJoinRequest<br>IppProcessLeaveRequest<br>IppProcessSetMulticastFilter<br>IppProcessUnblockSource<br>IppRemoveAllMulticastReference<br>IppRemovePromiscuousReference<br>IppSortDestinationAddresses<br>McTemplateK0qq_EtwWriteTransfer<br>McTemplateK0qqq_EtwWriteTransfer<br>McTemplateK0z_EtwWriteTransfer<br>NETIO.SYS::NetioNrtGetIfIndex<br>NETIO.SYS::NetioNrtIsTrackerDevice<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoIs32bitProcess<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KeTestSpinLock<br>NTOSKRNL.EXE::KfRaiseIrql<br>NTOSKRNL.EXE::ObReferenceObjectByHandle<br>NTOSKRNL.EXE::ObfDereferenceObject<br>NTOSKRNL.EXE::PsGetCurrentProcess<br>NTOSKRNL.EXE::PsGetProcessImageFileName<br>NTOSKRNL.EXE::RtlEnumerateGenericTableLikeADirectory<br>RtlAcquireReadLockAtDpcLevel<br>WfpAleAuthorizePromiscuousMode<br>__security_check_cookie<br>_guard_dispatch_icall<br>_tlgWriteAgg<br>memmove</details>|
|calling|ExitBHMode<br>InetSetSessionInformationAf<br>RawSetSockOptEndpoint<br>TcpSetSockOptEndpoint<br>TcpSetSockOptListener<br>TcpSetSockOptTcb<br>TcpTryToEnterBHMode<br>UdpSetSockOptEndpoint|ExitBHMode<br>InetSetSessionInformationAf<br>RawSetSockOptEndpoint<br>TcpSetSockOptEndpoint<br>TcpSetSockOptListener<br>TcpSetSockOptTcb<br>TcpTryToEnterBHMode<br>UdpSetSockOptEndpoint|
|paramcount|0|0|
|`address`|140102680|1400ec080|
|sig|undefined IpNlpSetSessionInfo(void)|undefined IpNlpSetSessionInfo(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpNlpSetSessionInfo Called Diff


```diff
--- IpNlpSetSessionInfo called
+++ IpNlpSetSessionInfo called
@@ -2 +1,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
@@ -39,0 +39 @@
+NTOSKRNL.EXE::KfRaiseIrql
@@ -45 +45 @@
-RtlAcquireReadLock
+RtlAcquireReadLockAtDpcLevel
```


### IpNlpSetSessionInfo Diff


```diff
--- IpNlpSetSessionInfo
+++ IpNlpSetSessionInfo
@@ -1,2316 +1,1968 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Type propagation algorithm not settling */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 longlong ******* IpNlpSetSessionInfo(longlong *param_1)
 
 {
-  short *psVar1;
-  short *psVar2;
-  ushort uVar3;
-  short sVar4;
-  undefined4 uVar5;
-  undefined4 *puVar6;
-  int *piVar7;
-  undefined4 uVar8;
-  undefined4 uVar9;
+  ushort uVar1;
+  short sVar2;
+  undefined4 uVar3;
+  longlong *plVar4;
+  int *piVar5;
+  undefined4 uVar6;
+  undefined4 uVar7;
+  undefined3 uVar8;
+  undefined1 uVar9;
   char cVar10;
   byte bVar11;
-  uint uVar12;
+  byte bVar12;
   int iVar13;
-  undefined4 *puVar14;
-  int *piVar15;
-  longlong *******ppppppplVar16;
+  uint uVar14;
+  undefined4 *puVar15;
+  int *piVar16;
   undefined8 uVar17;
   longlong lVar18;
-  longlong lVar19;
+  longlong *******ppppppplVar19;
   ushort uVar20;
   ushort uVar21;
-  uint uVar22;
+  longlong *******ppppppplVar22;
   void *_Dst;
-  undefined2 uVar23;
-  undefined8 *puVar24;
-  ulonglong uVar25;
+  undefined8 *puVar23;
+  ulonglong uVar24;
+  undefined2 uVar25;
   longlong *******ppppppplVar26;
-  longlong *******ppppppplVar27;
-  byte bVar28;
-  longlong *plVar29;
-  longlong ******pppppplVar30;
-  uint *puVar31;
-  longlong *plVar32;
-  longlong *****ppppplVar33;
-  longlong *plVar34;
+  longlong ******pppppplVar27;
+  uint *puVar28;
+  byte bVar29;
+  uint uVar30;
+  undefined4 *puVar31;
+  longlong lVar32;
+  longlong *plVar33;
+  longlong lVar34;
   uint uVar35;
-  bool bVar36;
+  longlong *plVar36;
+  bool bVar37;
   undefined1 auStack_1b8 [32];
   longlong *******local_198;
   undefined8 *local_190;
   longlong local_188;
   longlong *******local_180;
   longlong local_178;
   longlong local_170;
   longlong local_168;
-  longlong *local_160;
-  longlong *****local_158;
-  undefined4 local_150;
-  undefined8 local_14c;
-  longlong ******local_140;
-  uint local_138;
-  longlong *local_130;
+  longlong local_160;
+  undefined4 local_158;
+  undefined8 local_154;
+  longlong ******local_148;
+  uint local_140;
+  longlong *local_138;
+  longlong local_130;
   longlong *local_128;
   longlong *local_120;
-  undefined8 local_118;
-  undefined8 uStack_110;
-  undefined8 local_108;
+  longlong *****local_118;
+  undefined8 local_110;
+  undefined8 uStack_108;
   undefined8 local_100;
-  longlong *******ppppppplStack_f8;
-  undefined8 local_f0;
-  undefined8 uStack_e8;
+  undefined8 local_f8;
+  longlong *******ppppppplStack_f0;
+  undefined8 local_e8;
+  undefined8 uStack_e0;
   longlong ******local_d8 [4];
   longlong ******local_b8;
   undefined8 local_b0;
   longlong **local_a8;
   undefined8 local_a0;
   char *local_98;
   int local_90;
   undefined4 local_8c;
-  longlong **local_88;
+  longlong *local_88;
   undefined8 local_80;
   undefined4 *local_78;
   undefined8 local_70;
   longlong **local_68;
   undefined8 local_60;
   longlong ******local_58;
   undefined8 local_50;
   undefined4 *local_48;
   undefined8 local_40;
   ulonglong local_38;
   
   local_38 = __security_cookie ^ (ulonglong)auStack_1b8;
-  plVar32 = (longlong *)*param_1;
-  ppppppplVar27 = (longlong *******)0x0;
-  plVar34 = (longlong *)param_1[6];
-  local_108 = 0;
-  local_118 = 0;
-  uStack_110 = 0;
-  local_158 = (longlong *****)*plVar32;
+  plVar33 = (longlong *)*param_1;
+  plVar36 = (longlong *)param_1[6];
+  ppppppplVar22 = (longlong *******)0x0;
+  local_100 = 0;
+  local_110 = 0;
+  uStack_108 = 0;
+  local_168 = *plVar33;
   ppppppplVar26 = (longlong *******)0x0;
-  local_14c._0_4_ = 0;
-  local_138 = 0;
-  local_150 = 0;
-  uVar20 = *(ushort *)((longlong)local_158[2] + 6);
+  local_154._0_4_ = 0;
+  local_140 = 0;
+  uVar20 = *(ushort *)(*(longlong *)(local_168 + 0x10) + 6);
   iVar13 = (int)param_1[7];
-  local_130 = (longlong *)CONCAT44(local_130._4_4_,(uint)uVar20);
-  local_160 = plVar32;
-  local_120 = plVar34;
+  local_138 = plVar36;
+  local_120 = plVar33;
   if (iVar13 == 0) {
-    if (*(int *)(local_158 + 3) == 0) goto LAB_0;
-    ppppppplVar27 = (longlong *******)0xc000000d;
-    goto LAB_1;
+    if (*(int *)(local_168 + 0x18) != 0) {
+      ppppppplVar26 = (longlong *******)0xc000000d;
+      goto LAB_0;
+    }
   }
-  if ((iVar13 != 0x29) && (iVar13 != 0xfffc)) {
-    ppppppplVar27 = (longlong *******)0xc000000d;
-    goto LAB_1;
+  else if ((iVar13 != 0x29) && (iVar13 != 0xfffc)) {
+    ppppppplVar26 = (longlong *******)0xc000000d;
+    goto LAB_0;
   }
-LAB_0:
-  local_168 = IppGetCompartment(local_158,param_1 + 2);
-  if (local_168 == 0) {
-    ppppppplVar27 = (longlong *******)0xc000000d;
-    goto LAB_1;
+  local_160 = IppGetCompartment(local_168,param_1 + 2);
+  if (local_160 == 0) {
+    ppppppplVar26 = (longlong *******)0xc000000d;
+    goto LAB_0;
   }
+  uVar25 = 0;
   *(undefined2 *)(param_1 + 0x10) = 0;
-  KeAcquireInStackQueuedSpinLock(plVar34 + 0xe,&local_118);
+  KeAcquireInStackQueuedSpinLock(plVar36 + 0xe,&local_110);
+  lVar34 = local_160;
+  lVar32 = local_168;
   do {
-  } while ((int)plVar34[0xf] != 0);
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+  } while ((int)plVar36[0xf] != 0);
+  uVar14 = *(uint *)((longlong)plVar36 + 0x2c);
+  iVar13 = (int)param_1[7];
+  uVar35 = *(uint *)((longlong)param_1 + 0x3c);
+  uVar30 = uVar14 >> 8;
+  local_158._1_3_ = (undefined3)(uVar14 >> 8);
+  uVar8 = local_158._1_3_;
+  local_158._0_1_ = (byte)uVar14;
+  bVar11 = (byte)local_158;
+  local_158 = uVar14;
+  if (iVar13 == 0xfffc) {
+    if (uVar35 < 0x8800000b) {
+      if (uVar35 == 0x8800000a) goto switchD_1400ec1b8_caseD_a;
+      uVar30 = (uint)uVar20;
+      if (uVar35 < 0x8004747f) {
+        if (uVar35 == 0x8004747e) {
+          if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+            if (*(uint *)(param_1 + 9) < 0x90) {
+              ppppppplVar26 = (longlong *******)0xc000000d;
+            }
+            else {
+              lVar18 = param_1[8];
+              uVar14 = *(uint *)(lVar18 + 0x8c);
+              if (0x1fffffd < uVar14) goto LAB_1;
+              if ((ulonglong)*(uint *)(param_1 + 9) < (ulonglong)uVar14 * 0x80 + 0x90) {
+                ppppppplVar26 = (longlong *******)0xc000000d;
+              }
+              else {
+                ppppppplVar19 = ppppppplVar22;
+                if ((uVar14 != 0) &&
+                   (ppppppplVar19 =
+                         (longlong *******)ExAllocatePool2(0x40,uVar14 * uVar30,0x676e7049),
+                   ppppppplVar19 == (longlong *******)0x0)) goto joined_r0x0001400ede95;
+                uVar14 = 0;
+                if (*(int *)(lVar18 + 0x8c) != 0) {
+                  do {
+                    lVar32 = 0x94;
+                    if (*(short *)(lVar18 + 0x90 + (longlong)ppppppplVar22 * 0x80) != 2) {
+                      lVar32 = 0x98;
+                    }
+                    memmove((void *)((ulonglong)((int)ppppppplVar22 * uVar30) +
+                                    (longlong)ppppppplVar19),
+                            (void *)(lVar32 + (longlong)ppppppplVar22 * 0x80 + lVar18),
+                            (ulonglong)uVar20);
+                    uVar14 = *(uint *)(lVar18 + 0x8c);
+                    uVar35 = (int)ppppppplVar22 + 1;
+                    ppppppplVar22 = (longlong *******)(ulonglong)uVar35;
+                    plVar36 = local_138;
+                  } while (uVar35 < uVar14);
+                }
+                lVar34 = local_160;
+                lVar32 = 4;
+                if (*(short *)(lVar18 + 8) != 2) {
+                  lVar32 = 8;
+                }
+                local_198 = (longlong *******)(lVar32 + lVar18 + 8);
+                local_170 = param_1[0xd];
+                local_178 = param_1[0xc];
+                local_188 = CONCAT44(local_188._4_4_,uVar14);
+                local_190 = (undefined8 *)CONCAT44(local_190._4_4_,*(undefined4 *)(lVar18 + 0x88));
+                local_180 = ppppppplVar19;
+                uVar14 = IppProcessSetMulticastFilter(local_160,plVar36);
+                ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+                lVar32 = local_168;
+                if (*(int *)(lVar18 + 0x8c) != 0) {
+                  ExFreePoolWithTag(ppppppplVar19,0);
+                  lVar32 = local_168;
+                }
+              }
+            }
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+        else if (uVar35 == 0x4004747f) {
+          if (*(int *)(local_168 + 0x18) == 0) {
+            uVar14 = *(uint *)(param_1 + 0xb);
+            puVar28 = (uint *)param_1[10];
+            lVar32 = local_160 + 0x98;
+            local_128 = (longlong *)CONCAT44(local_128._4_4_,uVar14);
+            local_138 = (longlong *)(local_160 + 0xa8);
+            local_154._0_4_ = uVar14;
+            local_130 = lVar32;
+            uVar9 = KfRaiseIrql(2);
+            local_154._4_4_ = CONCAT31(local_154._5_3_,uVar9);
+            RtlAcquireReadLockAtDpcLevel(lVar32);
+            plVar33 = *(longlong **)(lVar34 + 0xa8);
+            if (plVar33 != (longlong *)(lVar34 + 0xa8)) {
+LAB_2:
+              local_f8 = 0;
+              ppppppplStack_f0 = (longlong *******)0x0;
+              local_e8 = 0;
+              LOCK();
+              *(int *)(plVar33 + 0x1a) = (int)plVar33[0x1a] + 1;
+              UNLOCK();
+              cVar10 = KeTestSpinLock(plVar33 + 0x19);
+              if (cVar10 == '\0') {
+                LOCK();
+                *(int *)(plVar33 + 0x1a) = (int)plVar33[0x1a] + -1;
+                UNLOCK();
+                KeAcquireInStackQueuedSpinLockAtDpcLevel(plVar33 + 0x19,&local_f8);
+                LOCK();
+                *(int *)(plVar33 + 0x1a) = (int)plVar33[0x1a] + 1;
+                UNLOCK();
+                KeReleaseInStackQueuedSpinLockFromDpcLevel(&local_f8);
+              }
+              local_f8 = 0;
+              ppppppplStack_f0 = (longlong *******)0x0;
+              local_e8 = 0;
+              uStack_e0 = 0;
+LAB_3:
+              ppppppplVar26 = (longlong *******)(plVar33 + 0x34);
+              if (plVar33[0x35] == 0) {
+                pppppplVar27 = *ppppppplVar26;
+                uVar14 = *(uint *)(pppppplVar27 + 10);
+                local_148 = (longlong ******)
+                            CONCAT44(local_148._4_4_,*(undefined4 *)(pppppplVar27 + 0xb));
+                local_188 = (longlong)&local_e8 - (ulonglong)uVar14;
+                local_190 = &local_f8;
+                local_198 = (longlong *******)&ppppppplStack_f0;
+                lVar32 = RtlEnumerateGenericTableLikeADirectory(pppppplVar27,0,0,1);
+                if (lVar32 == 0) goto LAB_4;
+                memmove(&local_e8,(void *)(lVar32 + (ulonglong)uVar14),
+                        (ulonglong)local_148 & 0xffffffff);
+                ppppppplVar26 = (longlong *******)(lVar32 + -0x20);
+              }
+              else {
+                if (ppppppplStack_f0 == (longlong *******)0x0) {
+                  ppppppplStack_f0 = (longlong *******)*ppppppplVar26;
+                }
+                if (ppppppplStack_f0 == ppppppplVar26) {
+                  ppppppplStack_f0 = (longlong *******)0x0;
+                  ppppppplVar26 = ppppppplVar22;
+                }
+                else {
+                  ppppppplVar26 = ppppppplStack_f0;
+                  ppppppplStack_f0 = (longlong *******)*ppppppplStack_f0;
+                }
+              }
+              if (ppppppplVar26 == (longlong *******)0x0) goto LAB_4;
+              if (2 < *(int *)(ppppppplVar26 + 4)) {
+                if ((uint)local_154 < 0x4c) {
+                  LOCK();
+                  *(int *)(plVar33 + 0x1a) = (int)plVar33[0x1a] + -1;
+                  UNLOCK();
+                  LOCK();
+                  *(int *)(local_130 + 8) = *(int *)(local_130 + 8) + -1;
+                  UNLOCK();
+                  KeLowerIrql(local_154._4_1_);
+                  ppppppplVar26 = (longlong *******)0xc0000023;
+                  lVar32 = local_168;
+                  lVar34 = local_160;
+                  goto LAB_5;
+                }
+                puVar28[0] = 0;
+                puVar28[1] = 0;
+                puVar28[2] = 0;
+                puVar28[3] = 0;
+                puVar28[4] = 0;
+                puVar28[5] = 0;
+                puVar28[6] = 0;
+                puVar28[7] = 0;
+                puVar28[8] = 0;
+                puVar28[9] = 0;
+                puVar28[10] = 0;
+                puVar28[0xb] = 0;
+                puVar28[0xc] = 0;
+                puVar28[0xd] = 0;
+                puVar28[0xe] = 0;
+                puVar28[0xf] = 0;
+                puVar28[0x10] = 0;
+                puVar28[0x11] = 0;
+                puVar28[0x12] = 0;
+                *(undefined2 *)(puVar28 + 1) = 2;
+                puVar28[2] = *(uint *)*ppppppplVar26[-7];
+                *(undefined2 *)(puVar28 + 0xd) = 2;
+                uVar14 = ~(uint)(0xffffffffL >>
+                                ((byte)*(undefined4 *)((longlong)ppppppplVar26 + 0x74) & 0x3f));
+                puVar28[0xe] = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 |
+                               uVar14 << 0x18;
+                iVar13 = *(int *)(plVar33[-0x10] + 8);
+                if (iVar13 == 1) {
+                  *puVar28 = 4;
+                }
+                else if (iVar13 == 2) {
+                  *puVar28 = 2;
+                  *(undefined2 *)(puVar28 + 7) = 2;
+                  puVar28[8] = 0xffffffff;
+                }
+                else if (iVar13 == 3) {
+                  *puVar28 = 8;
+                }
+                if ((*(uint *)(plVar33[-0x10] + 0x1c) & 2) != 0) {
+                  *puVar28 = *puVar28 | 0x10;
+                }
+                if ((int)plVar33[-0x11] != 0) {
+                  *puVar28 = *puVar28 | 1;
+                }
+                puVar28 = puVar28 + 0x13;
+                local_154._0_4_ = (uint)local_154 - 0x4c;
+              }
+              goto LAB_3;
+            }
+LAB_6:
+            LOCK();
+            *(int *)(local_130 + 8) = *(int *)(local_130 + 8) + -1;
+            UNLOCK();
+            KeLowerIrql(local_154._4_1_);
+            local_140 = (int)local_128 - uVar14;
+            ppppppplVar26 = ppppppplVar22;
+            lVar32 = local_168;
+            lVar34 = local_160;
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+        else if (uVar35 == 0x8004747c) {
+          if (*(int *)(local_168 + 0x18) == 0) {
+            if (*(uint *)(param_1 + 9) < 0x10) {
+              ppppppplVar26 = (longlong *******)0xc000000d;
+            }
+            else {
+              puVar15 = (undefined4 *)param_1[8];
+              uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,puVar15 + 1,&local_154);
+              ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+              lVar32 = local_168;
+              if (-1 < (int)uVar14) {
+                lVar18 = IppFindMulticastSessionState(plVar36,lVar34,puVar15,(uint)local_154);
+                lVar32 = local_168;
+                if (lVar18 == 0) {
+                  ppppppplVar26 = (longlong *******)0xc000000d;
+                }
+                else {
+                  iVar13 = *(int *)(lVar18 + 0x30);
+                  local_140 = iVar13 * 4 + 0x10;
+                  if (*(uint *)(param_1 + 0xb) < local_140) {
+                    ppppppplVar26 = (longlong *******)0xc0000023;
+                  }
+                  else {
+                    puVar31 = (undefined4 *)param_1[10];
+                    *puVar31 = *puVar15;
+                    puVar31[1] = puVar15[1];
+                    puVar31[2] = *(undefined4 *)(lVar18 + 0x18);
+                    puVar31[3] = iVar13;
+                    IppGetMulticastSessionStateSourceList(lVar18,puVar31 + 4);
+                    lVar32 = local_168;
+                  }
+                }
+              }
+            }
+          }
+          else {
+LAB_7:
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+        else {
+          if (uVar35 != 0x8004747d) goto switchD_1400ec1b8_caseD_5;
+          if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+            if ((*(uint *)(param_1 + 9) < 0x10) || (*(int *)(local_168 + 0x18) != 0))
+            goto LAB_7;
+            ppppppplVar22 = (longlong *******)param_1[8];
+            if (0x1fffffd < *(uint *)((longlong)ppppppplVar22 + 0xc)) goto LAB_1;
+            if ((ulonglong)*(uint *)(param_1 + 9) <
+                (ulonglong)*(uint *)((longlong)ppppppplVar22 + 0xc) * 4 + 0x10) {
+              ppppppplVar26 = (longlong *******)0xc000000d;
+            }
+            else {
+              uVar14 = IppGetInterfaceIndexFromSocketOption
+                                 (local_160,(longlong)ppppppplVar22 + 4,&local_154);
+              ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+              lVar32 = local_168;
+              if (-1 < (int)uVar14) {
+                local_170 = param_1[0xd];
+                local_180 = ppppppplVar22 + 2;
+                local_178 = param_1[0xc];
+                local_188 = CONCAT44(local_188._4_4_,*(undefined4 *)((longlong)ppppppplVar22 + 0xc))
+                ;
+                local_190 = (undefined8 *)
+                            CONCAT44(local_190._4_4_,*(undefined4 *)(ppppppplVar22 + 1));
+                local_198 = ppppppplVar22;
+                uVar14 = IppProcessSetMulticastFilter(lVar34,plVar36);
+                ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+                lVar32 = local_168;
+              }
+            }
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+      }
+      else {
+        if (uVar35 != 0x8004747f) {
+          if (uVar35 == 0x88000009) goto switchD_1400ec1b8_caseD_b;
+          goto switchD_1400ec1b8_caseD_5;
+        }
+        if (*(uint *)(param_1 + 9) < 0x90) {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          local_138 = (longlong *)(puVar15 + 2);
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            lVar32 = 8;
+          }
+          local_148 = (longlong ******)CONCAT44(local_148._4_4_,*puVar15);
+          local_118 = (longlong *****)
+                      IppFindMulticastSessionState
+                                (plVar36,local_160,lVar32 + (longlong)local_138,*puVar15);
+          lVar32 = local_168;
+          lVar34 = local_160;
+          if (local_118 == (longlong *****)0x0) {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+          else {
+            uVar14 = *(uint *)(local_118 + 6);
+            local_140 = uVar14 * 0x80 + 0x90;
+            if (*(uint *)(param_1 + 0xb) < local_140) {
+              ppppppplVar26 = (longlong *******)0xc0000023;
+            }
+            else {
+              puVar15 = (undefined4 *)param_1[10];
+              *puVar15 = local_148._0_4_;
+              lVar32 = local_138[1];
+              *(longlong *)(puVar15 + 2) = *local_138;
+              *(longlong *)(puVar15 + 4) = lVar32;
+              lVar32 = local_138[3];
+              *(longlong *)(puVar15 + 6) = local_138[2];
+              *(longlong *)(puVar15 + 8) = lVar32;
+              lVar32 = local_138[5];
+              *(longlong *)(puVar15 + 10) = local_138[4];
+              *(longlong *)(puVar15 + 0xc) = lVar32;
+              lVar32 = local_138[7];
+              *(longlong *)(puVar15 + 0xe) = local_138[6];
+              *(longlong *)(puVar15 + 0x10) = lVar32;
+              lVar32 = local_138[9];
+              *(longlong *)(puVar15 + 0x12) = local_138[8];
+              *(longlong *)(puVar15 + 0x14) = lVar32;
+              lVar32 = local_138[0xb];
+              *(longlong *)(puVar15 + 0x16) = local_138[10];
+              *(longlong *)(puVar15 + 0x18) = lVar32;
+              uVar3 = *(undefined4 *)((longlong)local_138 + 100);
+              lVar32 = local_138[0xd];
+              uVar6 = *(undefined4 *)((longlong)local_138 + 0x6c);
+              puVar15[0x1a] = (int)local_138[0xc];
+              puVar15[0x1b] = uVar3;
+              puVar15[0x1c] = (int)lVar32;
+              puVar15[0x1d] = uVar6;
+              uVar3 = *(undefined4 *)((longlong)local_138 + 0x74);
+              lVar32 = local_138[0xf];
+              uVar6 = *(undefined4 *)((longlong)local_138 + 0x7c);
+              puVar15[0x1e] = (int)local_138[0xe];
+              puVar15[0x1f] = uVar3;
+              puVar15[0x20] = (int)lVar32;
+              puVar15[0x21] = uVar6;
+              puVar15[0x22] = *(undefined4 *)(local_118 + 3);
+              puVar15[0x23] = uVar14;
+              local_148 = (longlong ******)ExAllocatePool2(0x40,uVar14 * uVar30,0x676e7049);
+              if (local_148 == (longlong ******)0x0) goto joined_r0x0001400ede95;
+              IppGetMulticastSessionStateSourceList(local_118,local_148);
+              lVar32 = local_168;
+              if (uVar14 != 0) {
+                puVar31 = puVar15 + 0x25;
+                puVar23 = (undefined8 *)(puVar15 + 0x24);
+                do {
+                  sVar2 = *(short *)(*(longlong *)(local_168 + 0x10) + 4);
+                  *puVar23 = 0;
+                  puVar23[1] = 0;
+                  puVar23[2] = 0;
+                  puVar23[3] = 0;
+                  puVar23[4] = 0;
+                  puVar23[5] = 0;
+                  puVar23[6] = 0;
+                  puVar23[7] = 0;
+                  puVar23[8] = 0;
+                  puVar23[9] = 0;
+                  puVar23[10] = 0;
+                  puVar23[0xb] = 0;
+                  puVar23[0xc] = 0;
+                  puVar23[0xd] = 0;
+                  uVar24 = (ulonglong)((int)ppppppplVar22 * uVar30);
+                  puVar23[0xe] = 0;
+                  puVar23[0xf] = 0;
+                  *(short *)(puVar31 + -1) = sVar2;
+                  if (sVar2 == 2) {
+                    *puVar31 = *(undefined4 *)(uVar24 + (longlong)local_148);
+                  }
+                  else {
+                    puVar15 = (undefined4 *)(uVar24 + (longlong)local_148);
+                    uVar3 = puVar15[1];
+                    uVar6 = puVar15[2];
+                    uVar7 = puVar15[3];
+                    puVar31[1] = *puVar15;
+                    puVar31[2] = uVar3;
+                    puVar31[3] = uVar6;
+                    puVar31[4] = uVar7;
+                  }
+                  uVar35 = (int)ppppppplVar22 + 1;
+                  ppppppplVar22 = (longlong *******)(ulonglong)uVar35;
+                  puVar23 = puVar23 + 0x10;
+                  puVar31 = puVar31 + 0x20;
+                } while (uVar35 < uVar14);
+              }
+              ExFreePoolWithTag(local_148,0);
+              lVar34 = local_160;
+            }
+          }
+        }
+      }
+    }
+    else if (uVar35 < 0x9800000e) {
+      if (uVar35 == 0x9800000d) {
+        if (*(uint *)(param_1 + 9) < 8) {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+        else {
+          uVar24 = *(ulonglong *)param_1[8];
+          if ((int)uVar24 < 4) {
+            lVar32 = IppFindInterfaceByIndex(local_160,uVar24 >> 0x20);
+LAB_8:
+            if (lVar32 == 0) goto LAB_9;
+            if (*(short *)(local_120[5] + 4) == 0x101) {
+              if ((plVar36[4] == 0) || (plVar36[4] == lVar32)) {
+                uVar14 = WfpAleAuthorizePromiscuousMode(param_1[0xf],uVar24 & 0xff);
+                ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+                if ((int)uVar14 < 0) {
+                  IppDereferenceInterface();
+                  lVar32 = local_168;
+                  lVar34 = local_160;
+                }
+                else {
+                  uVar14 = IppAddAllMulticastReference
+                                     (lVar32,uVar24 & 0xff,param_1[0xc],param_1[0xd]);
+                  ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+                  if (plVar36[4] != 0) {
+                    iVar13 = IppRemoveAllMulticastReference
+                                       (plVar36[4],*(undefined1 *)((longlong)plVar36 + 0x33),
+                                        param_1[0xc],param_1[0xd]);
+                    IppDereferenceInterface(plVar36[4]);
+                    if (iVar13 == 0x103) {
+                      ppppppplVar26 = (longlong *******)0x103;
+                    }
+                  }
+                  *(char *)((longlong)plVar36 + 0x33) = (char)uVar24;
+                  if ((char)uVar24 == '\0') {
+                    plVar36[4] = 0;
+                    IppDereferenceInterface(lVar32);
+                    lVar32 = local_168;
+                    lVar34 = local_160;
+                  }
+                  else {
+                    plVar36[4] = lVar32;
+                    lVar32 = local_168;
+                    lVar34 = local_160;
+                  }
+                }
+              }
+              else {
+                IppDereferenceInterface(lVar32);
+                ppppppplVar26 = (longlong *******)0xc000000d;
+                lVar32 = local_168;
+                lVar34 = local_160;
+              }
+            }
+            else {
+              ppppppplVar26 = (longlong *******)0xc000000d;
+              IppDereferenceInterface(lVar32);
+              lVar32 = local_168;
+              lVar34 = local_160;
+            }
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+      }
+      else if (uVar35 == 0x98000001) {
+        if ((int)param_1[9] == 0) {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+        else {
+          uVar24 = (ulonglong)*(byte *)param_1[8];
+          if (*(byte *)param_1[8] < 4) {
+            lVar32 = IppGetInterface(local_160,param_1 + 4);
+            if (lVar32 != 0) goto LAB_10;
+            ppppppplVar26 = (longlong *******)0xc0000225;
+            lVar32 = local_168;
+            lVar34 = local_160;
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+      }
+      else {
+        if (1 < uVar35 + 0x67fffffe) goto switchD_1400ec1b8_caseD_5;
+        if ((int)param_1[9] == 0) {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+        else {
+          uVar24 = (ulonglong)*(byte *)param_1[8];
+          if (*(byte *)param_1[8] < 4) {
+            lVar32 = IppGetInterface(local_160,param_1 + 4);
+            goto LAB_8;
+          }
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+      }
+    }
+    else if (uVar35 == 0x9800000e) {
+      if (*(uint *)(param_1 + 9) < 8) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else {
+        uVar24 = *(ulonglong *)param_1[8];
+        if ((int)uVar24 < 4) {
+          lVar32 = IppFindInterfaceByIndex(local_160,uVar24 >> 0x20);
+          if (lVar32 == 0) goto LAB_9;
+LAB_10:
+          if (*(short *)(local_120[5] + 4) == 0x101) {
+            if ((plVar36[3] == 0) || (plVar36[3] == lVar32)) {
+              uVar14 = WfpAleAuthorizePromiscuousMode(param_1[0xf],uVar24 & 0xff);
+              ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+              if ((int)uVar14 < 0) {
+                IppDereferenceInterface();
+                lVar32 = local_168;
+                lVar34 = local_160;
+              }
+              else {
+                uVar14 = IppAddPromiscuousReference(lVar32,uVar24 & 0xff,param_1[0xc],param_1[0xd]);
+                ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+                if (plVar36[3] != 0) {
+                  iVar13 = IppRemovePromiscuousReference
+                                     (plVar36[3],*(undefined1 *)((longlong)plVar36 + 0x32),
+                                      param_1[0xc],param_1[0xd]);
+                  IppDereferenceInterface(plVar36[3]);
+                  if (iVar13 == 0x103) {
+                    ppppppplVar26 = (longlong *******)0x103;
+                  }
+                }
+                *(char *)((longlong)plVar36 + 0x32) = (char)uVar24;
+                if ((char)uVar24 == '\0') {
+                  plVar36[3] = 0;
+                  IppDereferenceInterface(lVar32);
+                  lVar32 = local_168;
+                  lVar34 = local_160;
+                }
+                else {
+                  plVar36[3] = lVar32;
+                  lVar32 = local_168;
+                  lVar34 = local_160;
+                }
+              }
+            }
+            else {
+              IppDereferenceInterface(lVar32);
+              ppppppplVar26 = (longlong *******)0xc000000d;
+              lVar32 = local_168;
+              lVar34 = local_160;
+            }
+          }
+          else {
+            IppDereferenceInterface(lVar32);
+            ppppppplVar26 = (longlong *******)0xc000000d;
+            lVar32 = local_168;
+            lVar34 = local_160;
+          }
+        }
+        else {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+      }
+    }
+    else if (uVar35 == 0xc8000019) {
+      piVar16 = (int *)param_1[8];
+      piVar5 = (int *)param_1[10];
+      if (((*(int *)(local_168 + 0x18) == 0) || (piVar5 == (int *)0x0)) || (piVar16 == (int *)0x0))
+      goto LAB_7;
+      iVar13 = *piVar16;
+      if (((*(uint *)(param_1 + 9) < 8) ||
+          (uVar24 = (longlong)iVar13 * 0x10 + 8, *(uint *)(param_1 + 9) < uVar24)) ||
+         ((iVar13 < 0 || ((*(uint *)(param_1 + 0xb) < 8 || (*(uint *)(param_1 + 0xb) < uVar24))))))
+      goto LAB_11;
+      KeReleaseInStackQueuedSpinLock(&local_110);
+      lVar34 = local_160;
+      uVar14 = IppSortDestinationAddresses(local_160,piVar16,iVar13,piVar5);
+      KeAcquireInStackQueuedSpinLock(plVar36 + 0xe,&local_110);
+      do {
+      } while ((int)plVar36[0xf] != 0);
+      ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+      lVar32 = local_168;
+      if (-1 < (int)uVar14) {
+        local_140 = *piVar5 * 0x10 + 8;
+      }
+    }
+    else {
+      ppppppplVar26 = (longlong *******)0xc00000bb;
+    }
   }
   else {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  ppppplVar33 = local_158;
-  lVar19 = local_168;
-  if (uVar12 != 0) {
-    local_150 = *(uint *)((longlong)plVar34 + 0x2c);
-  }
-  iVar13 = (int)param_1[7];
-  uVar12 = *(uint *)((longlong)param_1 + 0x3c);
-  plVar29 = plVar32;
-  if (iVar13 == 0xfffc) {
-    if (uVar12 < 0x8800000b) {
-      if (uVar12 == 0x8800000a) goto switchD_1401027d0_caseD_a;
-      if (uVar12 < 0x8004747f) {
-        if (uVar12 == 0x8004747e) {
-          if (((*(byte *)(plVar32[5] + 0xe) & 1) == 0) && (0x8f < *(uint *)(param_1 + 9))) {
+    bVar29 = (byte)(uVar14 >> 8);
+    bVar12 = (byte)(uVar14 >> 0x10);
+    local_158._3_1_ = (undefined1)(uVar14 >> 0x18);
+    uVar9 = local_158._3_1_;
+    local_158._0_2_ = (undefined2)uVar14;
+    local_158._2_2_ = (undefined2)(uVar14 >> 0x10);
+    ppppppplVar19 = ppppppplVar22;
+    switch(uVar35) {
+    case 1:
+      local_154._4_4_ = local_154._4_4_ & 0xffff0000;
+      local_154._0_4_ = (uint)local_154._2_2_ << 0x10;
+      ppppppplVar26 = ppppppplVar22;
+      if ((int)param_1[9] == 0) {
+LAB_12:
+        lVar34 = local_160;
+        uVar20 = (short)ppppppplVar26 + *(short *)(*(longlong *)(local_160 + 0x28) + 0x28) +
+                 *(short *)((longlong)plVar36 + 0x42);
+        if (*(ushort *)(local_168 + 0x4ce4) <= uVar20) goto LAB_13;
+        lVar32 = plVar36[7];
+        plVar36[7] = (longlong)ppppppplVar19;
+        *(short *)((longlong)plVar36 + 0x34) = (short)ppppppplVar26;
+        *(undefined2 *)(plVar36 + 8) = uVar25;
+        if (lVar32 != 0) {
+          ExFreePoolWithTag(lVar32,0);
+        }
+        plVar33 = (longlong *)param_1[1];
+        if (plVar33 != (longlong *)0x0) {
+          uVar21 = *(ushort *)((longlong)plVar36 + 0x34);
+          uVar1 = *(ushort *)((longlong)plVar36 + 0x42);
+          *(undefined1 *)((longlong)param_1 + 0x81) = 1;
+          *(uint *)(param_1 + 0x12) = (uint)uVar1 + (uint)uVar21;
+          *(uint *)((longlong)param_1 + 0x84) = (int)plVar33[0xe] - (uint)uVar20;
+          *(uint *)(param_1 + 0x11) = (uint)*(ushort *)(local_168 + 0x4ce4) - (uint)uVar20;
+          *(ushort *)((longlong)param_1 + 0x8c) =
+               **(byte **)(*(longlong *)(*plVar33 + 8) + 0x30) + uVar20;
+        }
+LAB_14:
+        *(undefined1 *)(param_1 + 0x10) = 1;
+        ppppppplVar26 = ppppppplVar22;
+        lVar32 = local_168;
+      }
+      else {
+        ppppppplVar19 = (longlong *******)ExAllocatePool2(0x42,(int)param_1[9],0x676e7049);
+        if (ppppppplVar19 == (longlong *******)0x0) {
+joined_r0x0001400ec253:
+          if (DAT_16 < '\0') goto LAB_1400ec25c;
+LAB_1:
+          ppppppplVar26 = (longlong *******)0xc000009a;
+          lVar32 = local_168;
+          lVar34 = local_160;
+        }
+        else {
+          memmove(ppppppplVar19,(void *)param_1[8],(ulonglong)*(uint *)(param_1 + 9));
+          local_198 = (longlong *******)(plVar36 + 10);
+          uVar14 = (**(code **)(local_168 + 0xe8))
+                             (ppppppplVar19,(int)param_1[9],&local_154,
+                              (undefined4 *)((longlong)&local_154 + 4));
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          if (-1 < (int)uVar14) {
+            ppppppplVar22 = ppppppplVar26;
+            ppppppplVar26 = (longlong *******)(ulonglong)local_154._4_2_;
+            uVar25 = (ushort)local_154;
+            goto LAB_12;
+          }
+LAB_17:
+          ExFreePoolWithTag(ppppppplVar19,0);
+          lVar32 = local_168;
+          lVar34 = local_160;
+        }
+      }
+      break;
+    case 2:
+      if ((*(short *)(plVar33[5] + 4) == 6) || (*(short *)(plVar33[5] + 4) == 0x11)) {
+LAB_11:
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158 = CONCAT31(uVar8,*(int *)param_1[8] != 0 | bVar11 & 0xfe);
+      }
+      break;
+    case 3:
+    case 0x27:
+      if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
+        uVar14 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
+      }
+      else {
+        uVar14 = Feature_5988_5730__private_featureState & 1;
+      }
+      if ((uVar14 == 0) && (uVar14 = local_158, *(int *)((longlong)param_1 + 0x3c) == 0x27))
+      goto switchD_1400ec1b8_caseD_5;
+      lVar32 = local_168;
+      lVar34 = local_160;
+      if (*(uint *)(param_1 + 9) == 0) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        if (*(uint *)(param_1 + 9) < 4) {
+          uVar14 = (uint)(byte)*(uint *)param_1[8];
+        }
+        else {
+          uVar14 = *(uint *)param_1[8];
+        }
+        if (uVar14 < 0x100) {
+          if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
+            uVar35 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
+          }
+          else {
+            uVar35 = Feature_5988_5730__private_featureState & 1;
+          }
+          lVar32 = local_168;
+          lVar34 = local_160;
+          if (uVar35 == 0) {
+            *(byte *)((longlong)plVar36 + 0x31) = (byte)uVar14;
+          }
+          else if ((uVar14 & 3) == 0) {
+            cVar10 = IppIsAdminRequiredForDscp(uVar14 >> 2 & 0x3f);
+            if ((cVar10 == '\0') ||
+               (cVar10 = IppInspectIsEndpointAdminOrSystem(param_1[0xf]), cVar10 != '\0')) {
+              *(byte *)((longlong)plVar36 + 0x31) = (byte)uVar14 >> 2;
+              lVar32 = local_168;
+              lVar34 = local_160;
+            }
+            else {
+              ppppppplVar26 = (longlong *******)0xc0000022;
+              lVar32 = local_168;
+              lVar34 = local_160;
+            }
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+        else {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+      }
+      break;
+    case 4:
+      if (*(uint *)(param_1 + 9) == 0) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        if (*(uint *)(param_1 + 9) < 4) {
+          uVar14 = (uint)(byte)*(uint *)param_1[8];
+        }
+        else {
+          uVar14 = *(uint *)param_1[8];
+        }
+        if (uVar14 == 0xffffffff) {
+          uVar14 = 0xff;
+        }
+        else if (0xff < uVar14) {
+          ppppppplVar26 = (longlong *******)0xc000000d;
+          break;
+        }
+        if (*(short *)((longlong)plVar36 + 0x2a) != (short)uVar14) {
+          *(short *)((longlong)plVar36 + 0x2a) = (short)uVar14;
+          *(undefined1 *)(param_1 + 0x10) = 1;
+        }
+      }
+      break;
+    default:
+switchD_1400ec1b8_caseD_5:
+      local_158 = uVar14;
+      ppppppplVar26 = (longlong *******)0xc00000bb;
+      lVar32 = local_168;
+      lVar34 = local_160;
+      break;
+    case 9:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 4) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          local_154._0_4_ = *(uint *)param_1[8];
+          ppppppplVar26 = ppppppplVar22;
+          if ((uint)local_154 != 0) {
+            if (*(int *)(local_168 + 0x18) == 0) {
+              uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,(uint *)param_1[8],&local_154)
+              ;
+              ppppppplVar22 = (longlong *******)(ulonglong)uVar14;
+              ppppppplVar26 = ppppppplVar22;
+              lVar32 = local_168;
+              if ((int)uVar14 < 0) break;
+            }
+            ppppppplVar26 = (longlong *******)IppFindInterfaceByIndex(lVar34,(uint)local_154);
+            if (ppppppplVar26 == (longlong *******)0x0) {
+              ppppppplVar26 = (longlong *******)0xc0000225;
+              lVar32 = local_168;
+              break;
+            }
+          }
+          if (plVar36[1] != 0) {
+            IppDereferenceInterface();
+          }
+          plVar36[1] = (longlong)ppppppplVar26;
+          *(undefined4 *)(plVar36 + 0xd) = *(undefined4 *)param_1[8];
+          ppppppplVar26 = ppppppplVar22;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 10:
+switchD_1400ec1b8_caseD_a:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) == 0) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          if (*(uint *)(param_1 + 9) < 4) {
+            uVar14 = (uint)(byte)*(uint *)param_1[8];
+          }
+          else {
+            uVar14 = *(uint *)param_1[8];
+          }
+          if (uVar14 == 0xffffffff) {
+            uVar14 = 0xff;
+          }
+          else if (0xff < uVar14) {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+            break;
+          }
+          *(short *)(plVar36 + 5) = (short)uVar14;
+          ppppppplVar26 = (longlong *******)0x0;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0xb:
+switchD_1400ec1b8_caseD_b:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) == 0) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else if (*(uint *)(param_1 + 9) < 4) {
+          local_158 = CONCAT31(uVar8,(*(byte *)param_1[8] & 1) * '\x02' | bVar11 & 0xfd);
+          ppppppplVar26 = ppppppplVar22;
+        }
+        else {
+          local_158 = CONCAT31(uVar8,-(*(int *)param_1[8] != 0) & 2U | bVar11 & 0xfd);
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0xc:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(int *)(local_168 + 0x18) == 0) {
+          if (*(uint *)(param_1 + 9) < 8) {
+            ppppppplVar26 = (longlong *******)0xc0000023;
+          }
+          else {
+            ppppppplVar22 = (longlong *******)param_1[8];
+            uVar14 = IppGetInterfaceIndexFromSocketOption
+                               (local_160,(longlong)ppppppplVar22 + 4,&local_154);
+            ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+            lVar32 = local_168;
+            if (-1 < (int)uVar14) {
+              local_188 = param_1[0xd];
+              local_190 = (undefined8 *)param_1[0xc];
+              local_198 = ppppppplVar22;
+              uVar14 = IppProcessJoinRequest(lVar34,plVar36);
+              ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+              lVar32 = local_168;
+            }
+          }
+        }
+        else if (*(uint *)(param_1 + 9) < 0x14) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          local_188 = param_1[0xd];
+          local_198 = (longlong *******)param_1[8];
+          local_190 = (undefined8 *)param_1[0xc];
+          uVar14 = IppProcessJoinRequest(local_160,plVar36,uVar30,*(undefined4 *)(local_198 + 2));
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0xd:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(int *)(local_168 + 0x18) == 0) {
+          if (*(uint *)(param_1 + 9) < 8) {
+            ppppppplVar26 = (longlong *******)0xc0000023;
+          }
+          else {
             lVar18 = param_1[8];
-            uVar12 = *(uint *)(lVar18 + 0x8c);
-            if (0x1fffffd < uVar12) goto LAB_2;
-            if ((ulonglong)uVar12 * 0x80 + 0x90 <= (ulonglong)*(uint *)(param_1 + 9)) {
-              ppppppplVar26 = ppppppplVar27;
-              if ((uVar12 == 0) ||
-                 (ppppppplVar26 = (longlong *******)ExAllocatePool2(0x40,uVar12 * uVar20,0x676e7049)
-                 , ppppppplVar26 != (longlong *******)0x0)) {
-                uVar12 = 0;
-                if (*(int *)(lVar18 + 0x8c) != 0) {
-                  do {
-                    lVar19 = 0x94;
-                    if (*(short *)((longlong)ppppppplVar27 * 0x80 + 0x90 + lVar18) != 2) {
-                      lVar19 = 0x98;
-                    }
-                    memmove((void *)((ulonglong)((int)ppppppplVar27 * (uint)uVar20) +
-                                    (longlong)ppppppplVar26),
-                            (void *)(lVar19 + (longlong)ppppppplVar27 * 0x80 + lVar18),
-                            (ulonglong)uVar20);
-                    uVar12 = *(uint *)(lVar18 + 0x8c);
-                    uVar35 = (int)ppppppplVar27 + 1;
-                    ppppppplVar27 = (longlong *******)(ulonglong)uVar35;
-                    plVar34 = local_120;
-                  } while (uVar35 < uVar12);
-                }
-                lVar19 = 4;
-                if (*(short *)(lVar18 + 8) != 2) {
-                  lVar19 = 8;
-                }
-                local_198 = (longlong *******)(lVar19 + lVar18 + 8);
-                local_170 = param_1[0xd];
-                local_178 = param_1[0xc];
-                local_188 = CONCAT44(local_188._4_4_,uVar12);
-                local_190 = (undefined8 *)CONCAT44(local_190._4_4_,*(undefined4 *)(lVar18 + 0x88));
-                local_180 = ppppppplVar26;
-                uVar12 = IppProcessSetMulticastFilter(local_168,plVar34);
-                ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-                plVar29 = local_160;
-                lVar19 = local_168;
-                ppppplVar33 = local_158;
-                if (*(int *)(lVar18 + 0x8c) != 0) {
-                  ExFreePoolWithTag(ppppppplVar26,0);
-                  plVar29 = local_160;
-                  lVar19 = local_168;
-                  ppppplVar33 = local_158;
-                }
-              }
-              else {
-joined_r0x0001401049ff:
-                if (DAT_3 < '\0') {
-                  McTemplateK0z_EtwWriteTransfer
-                            (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
-                }
-                ppppppplVar27 = (longlong *******)0xc000009a;
-                plVar29 = local_160;
-                lVar19 = local_168;
-                ppppplVar33 = local_158;
-              }
-              goto LAB_4;
-            }
-          }
-          goto LAB_5;
-        }
-        if (uVar12 == 0x4004747f) {
-          if (*(int *)(local_158 + 3) == 0) {
-            uVar12 = *(uint *)(param_1 + 0xb);
-            puVar31 = (uint *)param_1[10];
-            local_130 = (longlong *)CONCAT44(local_130._4_4_,uVar12);
-            plVar32 = (longlong *)(local_168 + 0xa8);
-            local_14c._4_4_ = local_14c._4_4_ & 0xffffff00;
-            local_14c._0_4_ = uVar12;
-            local_128 = plVar32;
-            RtlAcquireReadLock(local_168 + 0x98,(undefined4 *)((longlong)&local_14c + 4));
-            plVar32 = (longlong *)*plVar32;
-            if (plVar32 != local_128) {
-LAB_6:
-              local_100 = 0;
-              ppppppplStack_f8 = (longlong *******)0x0;
-              local_f0 = 0;
-              LOCK();
-              *(int *)(plVar32 + 0x1a) = (int)plVar32[0x1a] + 1;
-              UNLOCK();
-              cVar10 = KeTestSpinLock(plVar32 + 0x19);
-              if (cVar10 == '\0') {
-                LOCK();
-                *(int *)(plVar32 + 0x1a) = (int)plVar32[0x1a] + -1;
-                UNLOCK();
-                KeAcquireInStackQueuedSpinLockAtDpcLevel(plVar32 + 0x19,&local_100);
-                LOCK();
-                *(int *)(plVar32 + 0x1a) = (int)plVar32[0x1a] + 1;
-                UNLOCK();
-                KeReleaseInStackQueuedSpinLockFromDpcLevel(&local_100);
-              }
-              local_100 = 0;
-              ppppppplStack_f8 = (longlong *******)0x0;
-              local_f0 = 0;
-              uStack_e8 = 0;
-LAB_7:
-              ppppppplVar26 = (longlong *******)(plVar32 + 0x34);
-              if (plVar32[0x35] == 0) {
-                pppppplVar30 = *ppppppplVar26;
-                uVar12 = *(uint *)(pppppplVar30 + 10);
-                local_140 = (longlong ******)
-                            CONCAT44(local_140._4_4_,*(undefined4 *)(pppppplVar30 + 0xb));
-                local_188 = (longlong)&local_f0 - (ulonglong)uVar12;
-                local_190 = &local_100;
-                local_198 = (longlong *******)&ppppppplStack_f8;
-                lVar19 = RtlEnumerateGenericTableLikeADirectory(pppppplVar30,0,0,1);
-                if (lVar19 == 0) goto LAB_8;
-                memmove(&local_f0,(void *)(lVar19 + (ulonglong)uVar12),
-                        (ulonglong)local_140 & 0xffffffff);
-                ppppppplVar26 = (longlong *******)(lVar19 + -0x20);
-              }
-              else {
-                if (ppppppplStack_f8 == (longlong *******)0x0) {
-                  ppppppplStack_f8 = (longlong *******)*ppppppplVar26;
-                }
-                if (ppppppplStack_f8 == ppppppplVar26) {
-                  ppppppplStack_f8 = (longlong *******)0x0;
-                  ppppppplVar26 = ppppppplVar27;
-                }
-                else {
-                  ppppppplVar26 = ppppppplStack_f8;
-                  ppppppplStack_f8 = (longlong *******)*ppppppplStack_f8;
-                }
-              }
-              lVar19 = local_168;
-              if (ppppppplVar26 == (longlong *******)0x0) goto LAB_8;
-              if (2 < *(int *)(ppppppplVar26 + 4)) {
-                if ((uint)local_14c < 0x4c) {
-                  LOCK();
-                  *(int *)(plVar32 + 0x1a) = (int)plVar32[0x1a] + -1;
-                  UNLOCK();
-                  LOCK();
-                  *(int *)(local_168 + 0xa0) = *(int *)(local_168 + 0xa0) + -1;
-                  UNLOCK();
-                  KeLowerIrql(local_14c._4_1_);
-                  ppppppplVar27 = (longlong *******)0xc0000023;
-                  plVar29 = local_160;
-                  ppppplVar33 = local_158;
-                  goto LAB_4;
-                }
-                puVar31[0] = 0;
-                puVar31[1] = 0;
-                puVar31[2] = 0;
-                puVar31[3] = 0;
-                puVar31[4] = 0;
-                puVar31[5] = 0;
-                puVar31[6] = 0;
-                puVar31[7] = 0;
-                puVar31[8] = 0;
-                puVar31[9] = 0;
-                puVar31[10] = 0;
-                puVar31[0xb] = 0;
-                puVar31[0xc] = 0;
-                puVar31[0xd] = 0;
-                puVar31[0xe] = 0;
-                puVar31[0xf] = 0;
-                puVar31[0x10] = 0;
-                puVar31[0x11] = 0;
-                puVar31[0x12] = 0;
-                *(undefined2 *)(puVar31 + 1) = 2;
-                puVar31[2] = *(uint *)*ppppppplVar26[-7];
-                *(undefined2 *)(puVar31 + 0xd) = 2;
-                uVar12 = ~(uint)(0xffffffffL >>
-                                ((byte)*(undefined4 *)((longlong)ppppppplVar26 + 0x74) & 0x3f));
-                puVar31[0xe] = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
-                               uVar12 << 0x18;
-                iVar13 = *(int *)(plVar32[-0x10] + 8);
-                if (iVar13 == 1) {
-                  *puVar31 = 4;
-                }
-                else if (iVar13 == 2) {
-                  *puVar31 = 2;
-                  *(undefined2 *)(puVar31 + 7) = 2;
-                  puVar31[8] = 0xffffffff;
-                }
-                else if (iVar13 == 3) {
-                  *puVar31 = 8;
-                }
-                if ((*(uint *)(plVar32[-0x10] + 0x1c) & 2) != 0) {
-                  *puVar31 = *puVar31 | 0x10;
-                }
-                if ((int)plVar32[-0x11] != 0) {
-                  *puVar31 = *puVar31 | 1;
-                }
-                puVar31 = puVar31 + 0x13;
-                local_14c._0_4_ = (uint)local_14c - 0x4c;
-              }
-              goto LAB_7;
-            }
-LAB_9:
-            lVar19 = local_168;
-            LOCK();
-            *(int *)(local_168 + 0xa0) = *(int *)(local_168 + 0xa0) + -1;
-            UNLOCK();
-            KeLowerIrql(local_14c._4_1_);
-            local_138 = (int)local_130 - uVar12;
-            ppppppplVar27 = (longlong *******)0x0;
-            plVar29 = local_160;
-            ppppplVar33 = local_158;
+            uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,lVar18 + 4,&local_154);
+            ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+            lVar32 = local_168;
+            if (-1 < (int)uVar14) {
+              uVar14 = IppProcessLeaveRequest(lVar34,plVar36,(uint)local_154,lVar18);
+              ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+              lVar32 = local_168;
+            }
+          }
+        }
+        else if (*(uint *)(param_1 + 9) < 0x14) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          uVar14 = IppProcessLeaveRequest
+                             (local_160,plVar36,*(undefined4 *)(param_1[8] + 0x10),param_1[8]);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0xe:
+      if ((uVar14 >> 0x10 & 0x30) == 0) {
+        if (*(uint *)(param_1 + 9) == 0) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          if (*(uint *)(param_1 + 9) < 4) {
+            uVar14 = (uint)(byte)*(uint *)param_1[8];
           }
           else {
-            ppppppplVar27 = (longlong *******)0xc000000d;
-          }
-        }
-        else if (uVar12 == 0x8004747c) {
-          if (*(int *)(local_158 + 3) == 0) {
-            if (*(uint *)(param_1 + 9) < 0x10) {
-              ppppppplVar27 = (longlong *******)0xc000000d;
-            }
-            else {
-              puVar14 = (undefined4 *)param_1[8];
-              uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,puVar14 + 1,&local_14c);
-              ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-              plVar29 = local_160;
-              if (-1 < (int)uVar12) {
-                if ((plVar34 == (longlong *)0x0) ||
-                   (lVar18 = IppFindMulticastSessionState(plVar34,lVar19,puVar14,(uint)local_14c),
-                   lVar18 == 0)) {
-                  ppppppplVar27 = (longlong *******)0xc000000d;
-                  plVar29 = local_160;
-                }
-                else {
-                  iVar13 = *(int *)(lVar18 + 0x30);
-                  local_138 = iVar13 * 4 + 0x10;
-                  if (*(uint *)(param_1 + 0xb) < local_138) {
-                    ppppppplVar27 = (longlong *******)0xc0000023;
-                    plVar29 = local_160;
-                  }
-                  else {
-                    puVar6 = (undefined4 *)param_1[10];
-                    *puVar6 = *puVar14;
-                    puVar6[1] = puVar14[1];
-                    puVar6[2] = *(undefined4 *)(lVar18 + 0x18);
-                    puVar6[3] = iVar13;
-                    IppGetMulticastSessionStateSourceList(lVar18,puVar6 + 4);
-                    plVar29 = local_160;
-                  }
-                }
-              }
-            }
-          }
-          else {
-            ppppppplVar27 = (longlong *******)0xc000000d;
-          }
-        }
-        else {
-          if (uVar12 != 0x8004747d) goto switchD_1401027d0_caseD_5;
-          if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-          if ((*(uint *)(param_1 + 9) < 0x10) || (*(int *)(local_158 + 3) != 0)) goto LAB_10;
-          ppppppplVar26 = (longlong *******)param_1[8];
-          if (*(uint *)((longlong)ppppppplVar26 + 0xc) < 0x1fffffe) {
-            if ((ulonglong)*(uint *)(param_1 + 9) <
-                (ulonglong)*(uint *)((longlong)ppppppplVar26 + 0xc) * 4 + 0x10) {
-              ppppppplVar27 = (longlong *******)0xc000000d;
-            }
-            else {
-              uVar12 = IppGetInterfaceIndexFromSocketOption
-                                 (local_168,(longlong)ppppppplVar26 + 4,&local_14c);
-              ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-              plVar29 = local_160;
-              if (-1 < (int)uVar12) {
-                local_170 = param_1[0xd];
-                local_180 = ppppppplVar26 + 2;
-                local_178 = param_1[0xc];
-                local_188 = CONCAT44(local_188._4_4_,*(undefined4 *)((longlong)ppppppplVar26 + 0xc))
-                ;
-                local_190 = (undefined8 *)
-                            CONCAT44(local_190._4_4_,*(undefined4 *)(ppppppplVar26 + 1));
-                local_198 = ppppppplVar26;
-                uVar12 = IppProcessSetMulticastFilter(lVar19,plVar34);
-                ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-                plVar29 = local_160;
-              }
-            }
-          }
-          else {
-            ppppppplVar27 = (longlong *******)0xc000009a;
-          }
-        }
-      }
-      else {
-        if (uVar12 != 0x8004747f) {
-          if (uVar12 == 0x88000009) goto switchD_1401027d0_caseD_b;
-          goto switchD_1401027d0_caseD_5;
-        }
-        if (*(uint *)(param_1 + 9) < 0x90) goto LAB_5;
-        puVar14 = (undefined4 *)param_1[8];
-        if (plVar34 != (longlong *)0x0) {
-          local_140 = (longlong ******)CONCAT44(local_140._4_4_,*puVar14);
-          lVar18 = 4;
-          if (*(short *)(puVar14 + 2) != 2) {
-            lVar18 = 8;
-          }
-          local_120 = (longlong *)
-                      IppFindMulticastSessionState
-                                (plVar34,local_168,lVar18 + (longlong)(puVar14 + 2),*puVar14);
-          if (local_120 != (longlong *)0x0) {
-            uVar12 = *(uint *)(local_120 + 6);
-            local_138 = uVar12 * 0x80 + 0x90;
-            if (*(uint *)(param_1 + 0xb) < local_138) {
-              ppppppplVar27 = (longlong *******)0xc0000023;
-              plVar29 = local_160;
-              lVar19 = local_168;
-              ppppplVar33 = local_158;
-            }
-            else {
-              puVar6 = (undefined4 *)param_1[10];
-              *puVar6 = local_140._0_4_;
-              uVar17 = *(undefined8 *)(puVar14 + 4);
-              *(undefined8 *)(puVar6 + 2) = *(undefined8 *)(puVar14 + 2);
-              *(undefined8 *)(puVar6 + 4) = uVar17;
-              uVar17 = *(undefined8 *)(puVar14 + 8);
-              *(undefined8 *)(puVar6 + 6) = *(undefined8 *)(puVar14 + 6);
-              *(undefined8 *)(puVar6 + 8) = uVar17;
-              uVar17 = *(undefined8 *)(puVar14 + 0xc);
-              *(undefined8 *)(puVar6 + 10) = *(undefined8 *)(puVar14 + 10);
-              *(undefined8 *)(puVar6 + 0xc) = uVar17;
-              uVar17 = *(undefined8 *)(puVar14 + 0x10);
-              *(undefined8 *)(puVar6 + 0xe) = *(undefined8 *)(puVar14 + 0xe);
-              *(undefined8 *)(puVar6 + 0x10) = uVar17;
-              uVar17 = *(undefined8 *)(puVar14 + 0x14);
-              *(undefined8 *)(puVar6 + 0x12) = *(undefined8 *)(puVar14 + 0x12);
-              *(undefined8 *)(puVar6 + 0x14) = uVar17;
-              uVar17 = *(undefined8 *)(puVar14 + 0x18);
-              *(undefined8 *)(puVar6 + 0x16) = *(undefined8 *)(puVar14 + 0x16);
-              *(undefined8 *)(puVar6 + 0x18) = uVar17;
-              uVar5 = puVar14[0x1b];
-              uVar8 = puVar14[0x1c];
-              uVar9 = puVar14[0x1d];
-              puVar6[0x1a] = puVar14[0x1a];
-              puVar6[0x1b] = uVar5;
-              puVar6[0x1c] = uVar8;
-              puVar6[0x1d] = uVar9;
-              uVar5 = puVar14[0x1f];
-              uVar8 = puVar14[0x20];
-              uVar9 = puVar14[0x21];
-              iVar13 = (int)local_130;
-              puVar6[0x1e] = puVar14[0x1e];
-              puVar6[0x1f] = uVar5;
-              puVar6[0x20] = uVar8;
-              puVar6[0x21] = uVar9;
-              puVar6[0x22] = (int)local_120[3];
-              puVar6[0x23] = uVar12;
-              local_140 = (longlong ******)ExAllocatePool2(0x40,uVar12 * (int)local_130,0x676e7049);
-              if (local_140 == (longlong ******)0x0) goto joined_r0x0001401049ff;
-              IppGetMulticastSessionStateSourceList(local_120,local_140);
-              if (uVar12 != 0) {
-                puVar14 = puVar6 + 0x25;
-                puVar24 = (undefined8 *)(puVar6 + 0x24);
-                do {
-                  sVar4 = *(short *)((longlong)local_158[2] + 4);
-                  *puVar24 = 0;
-                  puVar24[1] = 0;
-                  puVar24[2] = 0;
-                  puVar24[3] = 0;
-                  puVar24[4] = 0;
-                  puVar24[5] = 0;
-                  puVar24[6] = 0;
-                  puVar24[7] = 0;
-                  puVar24[8] = 0;
-                  puVar24[9] = 0;
-                  puVar24[10] = 0;
-                  puVar24[0xb] = 0;
-                  puVar24[0xc] = 0;
-                  puVar24[0xd] = 0;
-                  uVar25 = (ulonglong)(uint)((int)ppppppplVar27 * iVar13);
-                  puVar24[0xe] = 0;
-                  puVar24[0xf] = 0;
-                  *(short *)(puVar14 + -1) = sVar4;
-                  if (sVar4 == 2) {
-                    *puVar14 = *(undefined4 *)(uVar25 + (longlong)local_140);
-                  }
-                  else {
-                    puVar6 = (undefined4 *)(uVar25 + (longlong)local_140);
-                    uVar5 = puVar6[1];
-                    uVar8 = puVar6[2];
-                    uVar9 = puVar6[3];
-                    puVar14[1] = *puVar6;
-                    puVar14[2] = uVar5;
-                    puVar14[3] = uVar8;
-                    puVar14[4] = uVar9;
-                  }
-                  uVar35 = (int)ppppppplVar27 + 1;
-                  ppppppplVar27 = (longlong *******)(ulonglong)uVar35;
-                  puVar24 = puVar24 + 0x10;
-                  puVar14 = puVar14 + 0x20;
-                } while (uVar35 < uVar12);
-              }
-              ExFreePoolWithTag(local_140,0);
-              ppppppplVar27 = (longlong *******)0x0;
-              plVar29 = local_160;
-              lVar19 = local_168;
-              ppppplVar33 = local_158;
-            }
-            goto LAB_4;
-          }
-        }
-        ppppppplVar27 = (longlong *******)0xc000000d;
-        plVar29 = local_160;
-        ppppplVar33 = local_158;
-      }
-    }
-    else {
-      if (uVar12 < 0x9800000e) {
-        if (uVar12 == 0x9800000d) {
-          if ((7 < *(uint *)(param_1 + 9)) && (uVar25 = *(ulonglong *)param_1[8], (int)uVar25 < 4))
-          {
-            lVar19 = IppFindInterfaceByIndex(local_168,uVar25 >> 0x20);
-LAB_11:
-            plVar29 = local_160;
-            if (lVar19 == 0) goto LAB_12;
-            if (*(short *)(local_160[5] + 4) == 0x101) {
-              if ((plVar34[4] == 0) || (plVar34[4] == lVar19)) {
-                uVar12 = WfpAleAuthorizePromiscuousMode(param_1[0xf],uVar25 & 0xff);
-                if ((int)uVar12 < 0) {
-                  IppDereferenceInterface();
-                  ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-                  plVar29 = local_160;
-                  lVar19 = local_168;
-                  ppppplVar33 = local_158;
-                }
-                else {
-                  uVar12 = IppAddAllMulticastReference
-                                     (lVar19,uVar25 & 0xff,param_1[0xc],param_1[0xd]);
-                  ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-                  if (plVar34[4] != 0) {
-                    iVar13 = IppRemoveAllMulticastReference
-                                       (plVar34[4],*(undefined1 *)((longlong)plVar34 + 0x33),
-                                        param_1[0xc],param_1[0xd]);
-                    IppDereferenceInterface(plVar34[4]);
-                    if (iVar13 == 0x103) {
-                      ppppppplVar27 = (longlong *******)0x103;
-                    }
-                  }
-                  *(char *)((longlong)plVar34 + 0x33) = (char)uVar25;
-                  if ((char)uVar25 == '\0') {
-                    plVar34[4] = 0;
-                    IppDereferenceInterface(lVar19);
-                    plVar29 = local_160;
-                    lVar19 = local_168;
-                    ppppplVar33 = local_158;
-                  }
-                  else {
-                    plVar34[4] = lVar19;
-                    plVar29 = local_160;
-                    lVar19 = local_168;
-                    ppppplVar33 = local_158;
-                  }
-                }
-              }
-              else {
-                IppDereferenceInterface(lVar19);
-                ppppppplVar27 = (longlong *******)0xc000000d;
-                lVar19 = local_168;
-                ppppplVar33 = local_158;
-              }
-            }
-            else {
-              IppDereferenceInterface(lVar19);
-              ppppppplVar27 = (longlong *******)0xc000000d;
-              lVar19 = local_168;
-              ppppplVar33 = local_158;
-            }
-            goto LAB_4;
-          }
-        }
-        else if (uVar12 == 0x98000001) {
-          if (((int)param_1[9] != 0) &&
-             (uVar25 = (ulonglong)*(byte *)param_1[8], *(byte *)param_1[8] < 4)) {
-            lVar19 = IppGetInterface(local_168,param_1 + 4);
-            if (lVar19 != 0) goto LAB_13;
-            ppppppplVar27 = (longlong *******)0xc0000225;
-            plVar29 = local_160;
-            lVar19 = local_168;
-            ppppplVar33 = local_158;
-            goto LAB_4;
-          }
-        }
-        else {
-          if (1 < uVar12 + 0x67fffffe) goto switchD_1401027d0_caseD_5;
-          if (((int)param_1[9] != 0) &&
-             (uVar25 = (ulonglong)*(byte *)param_1[8], *(byte *)param_1[8] < 4)) {
-            lVar19 = IppGetInterface(local_168,param_1 + 4);
-            goto LAB_11;
-          }
-        }
-        goto LAB_5;
-      }
-      if (uVar12 == 0x9800000e) {
-        if ((*(uint *)(param_1 + 9) < 8) || (uVar25 = *(ulonglong *)param_1[8], 3 < (int)uVar25))
-        goto LAB_5;
-        lVar19 = IppFindInterfaceByIndex(local_168,uVar25 >> 0x20);
-        if (lVar19 == 0) {
-LAB_12:
-          ppppppplVar27 = (longlong *******)0xc0000225;
-          plVar29 = local_160;
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        }
-        else {
-LAB_13:
-          plVar29 = local_160;
-          if (*(short *)(local_160[5] + 4) == 0x101) {
-            if ((plVar34[3] == 0) || (plVar34[3] == lVar19)) {
-              uVar12 = WfpAleAuthorizePromiscuousMode(param_1[0xf],uVar25 & 0xff);
-              if ((int)uVar12 < 0) {
-                IppDereferenceInterface();
-                ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-                plVar29 = local_160;
-                lVar19 = local_168;
-                ppppplVar33 = local_158;
-              }
-              else {
-                uVar12 = IppAddPromiscuousReference(lVar19,uVar25 & 0xff,param_1[0xc],param_1[0xd]);
-                ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-                if (plVar34[3] != 0) {
-                  iVar13 = IppRemovePromiscuousReference
-                                     (plVar34[3],*(undefined1 *)((longlong)plVar34 + 0x32),
-                                      param_1[0xc],param_1[0xd]);
-                  IppDereferenceInterface(plVar34[3]);
-                  if (iVar13 == 0x103) {
-                    ppppppplVar27 = (longlong *******)0x103;
-                  }
-                }
-                *(char *)((longlong)plVar34 + 0x32) = (char)uVar25;
-                if ((char)uVar25 == '\0') {
-                  plVar34[3] = 0;
-                  IppDereferenceInterface(lVar19);
-                  plVar29 = local_160;
-                  lVar19 = local_168;
-                  ppppplVar33 = local_158;
-                }
-                else {
-                  plVar34[3] = lVar19;
-                  plVar29 = local_160;
-                  lVar19 = local_168;
-                  ppppplVar33 = local_158;
-                }
-              }
-            }
-            else {
-              IppDereferenceInterface(lVar19);
-              ppppppplVar27 = (longlong *******)0xc000000d;
-              lVar19 = local_168;
-              ppppplVar33 = local_158;
-            }
-          }
-          else {
-            IppDereferenceInterface(lVar19);
-            ppppppplVar27 = (longlong *******)0xc000000d;
-            lVar19 = local_168;
-            ppppplVar33 = local_158;
-          }
-        }
-      }
-      else if (uVar12 == 0xc8000019) {
-        piVar15 = (int *)param_1[8];
-        piVar7 = (int *)param_1[10];
-        if (((*(int *)(local_158 + 3) != 0) && (piVar7 != (int *)0x0)) && (piVar15 != (int *)0x0)) {
-          iVar13 = *piVar15;
-          if (((7 < *(uint *)(param_1 + 9)) &&
-              (uVar25 = (longlong)iVar13 * 0x10 + 8, uVar25 <= *(uint *)(param_1 + 9))) &&
-             ((-1 < iVar13 &&
-              ((7 < *(uint *)(param_1 + 0xb) && (uVar25 <= *(uint *)(param_1 + 0xb))))))) {
-            KeReleaseInStackQueuedSpinLock(&local_118);
-            lVar19 = local_168;
-            uVar12 = IppSortDestinationAddresses(local_168,piVar15,iVar13,piVar7);
-            KeAcquireInStackQueuedSpinLock(plVar34 + 0xe,&local_118);
-            do {
-            } while ((int)plVar34[0xf] != 0);
-            ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-            plVar29 = local_160;
-            if (-1 < (int)uVar12) {
-              local_138 = *piVar7 * 0x10 + 8;
-            }
-            goto LAB_4;
-          }
-        }
-LAB_10:
-        ppppppplVar27 = (longlong *******)0xc000000d;
-      }
-      else {
-        ppppppplVar27 = (longlong *******)0xc00000bb;
-      }
-    }
-    goto LAB_4;
-  }
-  ppppppplVar16 = ppppppplVar27;
-  switch(uVar12) {
-  case 1:
-    uVar23 = 0;
-    local_14c._4_4_ = local_14c._4_4_ & 0xffff0000;
-    local_14c._0_4_ = (uint)local_14c._2_2_ << 0x10;
-    ppppppplVar26 = ppppppplVar27;
-    if ((int)param_1[9] == 0) {
-LAB_14:
-      uVar20 = *(short *)(*(longlong *)(local_168 + 0x28) + 0x28) +
-               *(short *)((longlong)plVar34 + 0x42) + (short)ppppppplVar26;
-      if (*(ushort *)((longlong)ppppplVar33 + 0x4ce4) <= uVar20) goto LAB_15;
-      lVar19 = plVar34[7];
-      plVar34[7] = (longlong)ppppppplVar16;
-      *(short *)((longlong)plVar34 + 0x34) = (short)ppppppplVar26;
-      *(undefined2 *)(plVar34 + 8) = uVar23;
-      if (lVar19 != 0) {
-        ExFreePoolWithTag(lVar19,0);
-      }
-      plVar32 = (longlong *)param_1[1];
-      if (plVar32 != (longlong *)0x0) {
-        uVar21 = *(ushort *)((longlong)plVar34 + 0x34);
-        uVar3 = *(ushort *)((longlong)plVar34 + 0x42);
-        *(undefined1 *)((longlong)param_1 + 0x81) = 1;
-        *(uint *)(param_1 + 0x12) = (uint)uVar3 + (uint)uVar21;
-        *(uint *)((longlong)param_1 + 0x84) = (int)plVar32[0xe] - (uint)uVar20;
-        *(uint *)(param_1 + 0x11) = (uint)*(ushort *)((longlong)ppppplVar33 + 0x4ce4) - (uint)uVar20
-        ;
-        *(ushort *)((longlong)param_1 + 0x8c) =
-             **(byte **)(*(longlong *)(*plVar32 + 8) + 0x30) + uVar20;
-      }
-      *(undefined1 *)(param_1 + 0x10) = 1;
-      plVar29 = local_160;
-      lVar19 = local_168;
-    }
-    else {
-      ppppppplVar16 = (longlong *******)ExAllocatePool2(0x42,(int)param_1[9],0x676e7049);
-      if (ppppppplVar16 == (longlong *******)0x0) {
-joined_r0x000140102e31:
-        if (DAT_3 < '\0') {
-          McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
-        }
-LAB_2:
-        ppppppplVar27 = (longlong *******)0xc000009a;
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-      }
-      else {
-        memmove(ppppppplVar16,(void *)param_1[8],(ulonglong)*(uint *)(param_1 + 9));
-        ppppplVar33 = local_158;
-        local_198 = (longlong *******)(plVar34 + 10);
-        uVar12 = (*(code *)local_158[0x1d])
-                           (ppppppplVar16,(int)param_1[9],&local_14c,
-                            (undefined4 *)((longlong)&local_14c + 4));
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        if (-1 < (int)uVar12) {
-          uVar23 = (undefined2)(uint)local_14c;
-          ppppppplVar26 = (longlong *******)(ulonglong)local_14c._4_2_;
-          goto LAB_14;
-        }
-LAB_16:
-        ExFreePoolWithTag(ppppppplVar16,0);
-        lVar19 = local_168;
-      }
-    }
-    break;
-  case 2:
-    if ((*(short *)(plVar32[5] + 4) == 6) || (*(short *)(plVar32[5] + 4) == 0x11))
-    goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        ppppppplVar27 = (longlong *******)0x0;
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             iVar13 != 0 | *(byte *)((longlong)plVar34 + 0x2c) & 0xfe;
-      }
-      else {
-        ppppppplVar27 = (longlong *******)0x0;
-        local_150 = CONCAT31(local_150._1_3_,iVar13 != 0 | (byte)local_150 & 0xfe);
-      }
-    }
-    break;
-  case 3:
-  case 0x27:
-    if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
-      uVar12 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar12 = Feature_5988_5730__private_featureState & 1;
-    }
-    if ((uVar12 == 0) && (*(int *)((longlong)param_1 + 0x3c) == 0x27))
-    goto switchD_1401027d0_caseD_5;
-    if (*(uint *)(param_1 + 9) == 0) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-    }
-    else {
-      if (*(uint *)(param_1 + 9) < 4) {
-        uVar12 = (uint)(byte)*(uint *)param_1[8];
-      }
-      else {
-        uVar12 = *(uint *)param_1[8];
-      }
-      if (0xff < uVar12) goto LAB_5;
-      if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
-        uVar35 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar35 = Feature_5988_5730__private_featureState & 1;
-      }
-      if (uVar35 == 0) {
-        *(byte *)((longlong)plVar34 + 0x31) = (byte)uVar12;
-        ppppppplVar27 = ppppppplVar26;
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-      }
-      else {
-        if ((uVar12 & 3) != 0) goto LAB_5;
-        cVar10 = IppIsAdminRequiredForDscp(uVar12 >> 2 & 0x3f);
-        if ((cVar10 == '\0') ||
-           (cVar10 = IppInspectIsEndpointAdminOrSystem(param_1[0xf]), cVar10 != '\0')) {
-          *(byte *)((longlong)plVar34 + 0x31) = (byte)uVar12 >> 2;
-          ppppppplVar27 = ppppppplVar26;
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        }
-        else {
-          ppppppplVar27 = (longlong *******)0xc0000022;
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        }
-      }
-    }
-    break;
-  case 4:
-    if (*(uint *)(param_1 + 9) == 0) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      if (*(uint *)(param_1 + 9) < 4) {
-        uVar12 = (uint)(byte)*(uint *)param_1[8];
-      }
-      else {
-        uVar12 = *(uint *)param_1[8];
-      }
-      if (uVar12 == 0xffffffff) {
-        uVar12 = 0xff;
-      }
-      else if (0xff < uVar12) goto LAB_5;
-      ppppppplVar27 = ppppppplVar26;
-      plVar29 = local_160;
-      if (*(short *)((longlong)plVar34 + 0x2a) != (short)uVar12) {
-        *(short *)((longlong)plVar34 + 0x2a) = (short)uVar12;
-        *(undefined1 *)(param_1 + 0x10) = 1;
-        plVar29 = plVar32;
-      }
-    }
-    break;
-  default:
-switchD_1401027d0_caseD_5:
-    ppppppplVar27 = (longlong *******)0xc00000bb;
-    lVar19 = local_168;
-    ppppplVar33 = local_158;
-    break;
-  case 9:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      local_14c._0_4_ = *(uint *)param_1[8];
-      ppppppplVar26 = ppppppplVar27;
-      if ((uint)local_14c != 0) {
-        if (*(int *)(local_158 + 3) == 0) {
-          uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,(uint *)param_1[8],&local_14c);
-          ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-          plVar29 = local_160;
-          if ((int)uVar12 < 0) break;
-        }
-        ppppppplVar26 = (longlong *******)IppFindInterfaceByIndex(lVar19,(uint)local_14c);
-        if (ppppppplVar26 == (longlong *******)0x0) {
-          ppppppplVar27 = (longlong *******)0xc0000225;
-          plVar29 = local_160;
-          break;
-        }
-      }
-      if (plVar34[1] != 0) {
-        IppDereferenceInterface();
-      }
-      plVar34[1] = (longlong)ppppppplVar26;
-      *(undefined4 *)(plVar34 + 0xd) = *(undefined4 *)param_1[8];
-      plVar29 = local_160;
-    }
-    break;
-  case 10:
-switchD_1401027d0_caseD_a:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) == 0) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      if (*(uint *)(param_1 + 9) < 4) {
-        uVar12 = (uint)(byte)*(uint *)param_1[8];
-      }
-      else {
-        uVar12 = *(uint *)param_1[8];
-      }
-      if (uVar12 == 0xffffffff) {
-        *(undefined2 *)(plVar34 + 5) = 0xff;
-      }
-      else {
-        if (0xff < uVar12) goto LAB_5;
-        *(short *)(plVar34 + 5) = (short)uVar12;
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0xb:
-switchD_1401027d0_caseD_b:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) == 0) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else if (*(uint *)(param_1 + 9) < 4) {
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             (*(byte *)param_1[8] * '\x02' ^ *(byte *)((longlong)plVar34 + 0x2c)) & 2 ^
-             *(byte *)((longlong)plVar34 + 0x2c);
-        ppppppplVar27 = (longlong *******)0x0;
-      }
-      else {
-        local_150 = CONCAT31(local_150._1_3_,
-                             (*(byte *)param_1[8] & 1) * '\x02' | (byte)local_150 & 0xfd);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             -(iVar13 != 0) & 2U | *(byte *)((longlong)plVar34 + 0x2c) & 0xfd;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150 = CONCAT31(local_150._1_3_,-(iVar13 != 0) & 2U | (byte)local_150 & 0xfd);
-      }
-    }
-    break;
-  case 0xc:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_10;
-    if (*(int *)(local_158 + 3) == 0) {
-      if (*(uint *)(param_1 + 9) < 8) {
-        ppppppplVar27 = (longlong *******)0xc0000023;
-      }
-      else {
-        ppppppplVar26 = (longlong *******)param_1[8];
-        uVar12 = IppGetInterfaceIndexFromSocketOption
-                           (local_168,(longlong)ppppppplVar26 + 4,&local_14c);
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        plVar29 = local_160;
-        if (-1 < (int)uVar12) {
-          local_188 = param_1[0xd];
-          local_190 = (undefined8 *)param_1[0xc];
-          local_198 = ppppppplVar26;
-          uVar12 = IppProcessJoinRequest(lVar19,plVar34);
-          ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-          plVar29 = local_160;
-        }
-      }
-    }
-    else if (*(uint *)(param_1 + 9) < 0x14) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      local_188 = param_1[0xd];
-      local_198 = (longlong *******)param_1[8];
-      local_190 = (undefined8 *)param_1[0xc];
-      uVar12 = IppProcessJoinRequest
-                         (local_168,plVar34,&switchD_14000a905::caseD_1,
-                          *(undefined4 *)(local_198 + 2));
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-    }
-    break;
-  case 0xd:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) == 0) {
-      if (*(int *)(local_158 + 3) == 0) {
-        if (*(uint *)(param_1 + 9) < 8) {
-          ppppppplVar27 = (longlong *******)0xc0000023;
-        }
-        else {
-          lVar18 = param_1[8];
-          uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,lVar18 + 4,&local_14c);
-          ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-          plVar29 = local_160;
-          if (-1 < (int)uVar12) {
-            uVar12 = IppProcessLeaveRequest(lVar19,plVar34,(uint)local_14c,lVar18);
-            ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-            plVar29 = local_160;
-          }
-        }
-      }
-      else if (*(uint *)(param_1 + 9) < 0x14) {
-        ppppppplVar27 = (longlong *******)0xc0000023;
-      }
-      else {
-        uVar12 = IppProcessLeaveRequest
-                           (local_168,plVar34,*(undefined4 *)(param_1[8] + 0x10),param_1[8]);
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        plVar29 = local_160;
-      }
-    }
-    else {
-      ppppppplVar27 = (longlong *******)0xc000000d;
-    }
-    break;
-  case 0xe:
-    if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-      uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-    }
-    if (uVar12 == 0) {
-      if ((*(byte *)((longlong)plVar34 + 0x2e) & 0x30) == 0) goto LAB_17;
-    }
-    else if ((local_150 & 0x300000) == 0) {
-LAB_17:
-      if (*(uint *)(param_1 + 9) == 0) {
-        ppppppplVar27 = (longlong *******)0xc0000023;
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-      }
-      else {
-        if (*(uint *)(param_1 + 9) < 4) {
-          uVar12 = (uint)(byte)*(uint *)param_1[8];
-        }
-        else {
-          uVar12 = *(uint *)param_1[8];
-        }
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar35 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar35 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar35 == 0) {
-          *(byte *)((longlong)plVar34 + 0x2d) = *(byte *)((longlong)plVar34 + 0x2d) | 8;
-          *(byte *)((longlong)plVar34 + 0x2c) =
-               -(uVar12 != 0) & 4U | *(byte *)((longlong)plVar34 + 0x2c) & 0xfb;
-          bVar28 = (byte)local_150;
-        }
-        else {
-          bVar28 = -(uVar12 != 0) & 4U | (byte)local_150 & 0xfb;
-          local_150 = CONCAT31((int3)(local_150 >> 8),bVar28) | 0x800;
-        }
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-        if (uVar12 == 0) {
-          ppppppplVar27 = ppppppplVar26;
+            uVar14 = *(uint *)param_1[8];
+          }
+          bVar12 = -(uVar14 != 0) & 4;
+          local_158 = CONCAT31(uVar8,bVar12 | bVar11 & 0xfb) | 0x800;
           if (((5 < DAT_18) && ((_DAT_14022d208 & 0x400000000000) != 0)) &&
              ((DAT_19 & 0x400000000000) == DAT_19)) {
-            local_b8 = (longlong ******)&local_140;
-            local_130 = (longlong *)0x2000000;
-            local_a8 = &local_130;
+            local_b8 = (longlong ******)&local_148;
+            local_128 = (longlong *)0x2000000;
+            local_a8 = &local_128;
             local_b0 = 8;
-            local_140 = (longlong ******)0x1;
+            local_148 = (longlong ******)0x1;
             local_a0 = 8;
             uVar17 = PsGetCurrentProcess();
             local_98 = (char *)PsGetProcessImageFileName(uVar17);
-            ppppplVar33 = local_158;
             if (local_98 == (char *)0x0) {
               local_98 = "";
               local_90 = 1;
             }
             else {
-              lVar19 = -1;
+              lVar32 = -1;
               do {
-                lVar19 = lVar19 + 1;
-              } while (local_98[lVar19] != '\0');
-              local_90 = (int)lVar19 + 1;
-            }
-            local_8c = 0;
-            local_128 = (longlong *)CONCAT44(local_128._4_4_,*(undefined4 *)(local_158 + 3));
-            local_88 = &local_128;
-            local_80 = 4;
-            local_14c._4_4_ =
-                 CONCAT31(local_14c._5_3_,*(byte *)((longlong)plVar34 + 0x2c) >> 2) & 0xffffff01;
-            local_78 = (undefined4 *)((longlong)&local_14c + 4);
-            local_70 = 1;
-            local_68 = (longlong **)&local_14c;
-            local_198 = local_d8;
-            local_14c._0_4_ = CONCAT22(local_14c._2_2_,*(undefined2 *)(local_160[5] + 4));
-            local_60 = 2;
-            _tlgWriteAgg(&DAT_18,&DAT_1401fdb58);
-            plVar29 = local_160;
-            lVar19 = local_168;
-          }
-        }
-        else {
-          ppppppplVar27 = ppppppplVar26;
-          if (((5 < DAT_18) && ((_DAT_14022d208 & 0x400000000000) != 0)) &&
-             ((DAT_19 & 0x400000000000) == DAT_19)) {
-            local_b8 = (longlong ******)&local_140;
-            local_130 = (longlong *)0x2000000;
-            local_a8 = &local_130;
-            local_b0 = 8;
-            local_140 = (longlong ******)0x1;
-            local_a0 = 8;
-            uVar17 = PsGetCurrentProcess();
-            local_98 = (char *)PsGetProcessImageFileName(uVar17);
-            plVar29 = local_160;
-            if (local_98 == (char *)0x0) {
-              local_98 = "";
-              local_90 = 1;
-            }
-            else {
-              lVar19 = -1;
-              do {
-                lVar19 = lVar19 + 1;
-              } while (local_98[lVar19] != '\0');
-              local_90 = (int)lVar19 + 1;
-            }
-            local_128 = (longlong *)CONCAT44(local_128._4_4_,*(undefined4 *)(local_158 + 3));
-            local_88 = &local_128;
-            local_78 = (undefined4 *)((longlong)&local_14c + 4);
-            local_14c._4_4_ = CONCAT31(local_14c._5_3_,bVar28 >> 2) & 0xffffff01;
+                lVar32 = lVar32 + 1;
+              } while (local_98[lVar32] != '\0');
+              local_90 = (int)lVar32 + 1;
+            }
             local_8c = 0;
             local_80 = 4;
+            local_130 = CONCAT44(local_130._4_4_,*(undefined4 *)(local_168 + 0x18));
+            local_88 = &local_130;
+            local_78 = (undefined4 *)((longlong)&local_154 + 4);
+            local_154._4_4_ = CONCAT31(local_154._5_3_,bVar12 >> 2);
             local_70 = 1;
-            local_68 = (longlong **)&local_14c;
+            local_68 = (longlong **)&local_154;
             local_198 = local_d8;
-            local_14c._0_4_ = CONCAT22(local_14c._2_2_,*(undefined2 *)(local_160[5] + 4));
+            local_154._0_4_ = CONCAT22(local_154._2_2_,*(undefined2 *)(local_120[5] + 4));
             local_60 = 2;
             _tlgWriteAgg(&DAT_18,&DAT_1401fdaf2);
-            lVar19 = local_168;
-            ppppplVar33 = local_158;
-          }
-        }
-      }
-      break;
-    }
-    goto LAB_5;
-  case 0xf:
-    if (((*(byte *)(plVar32[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0xc) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      ppppppplVar26 = (longlong *******)param_1[8];
-      uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,ppppppplVar26 + 1,&local_14c);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-      if (-1 < (int)uVar12) {
-        local_180 = (longlong *******)param_1[0xd];
-        local_190 = (undefined8 *)((longlong)ppppppplVar26 + 4);
-        local_188 = param_1[0xc];
-        local_198 = ppppppplVar26;
-        goto LAB_20;
-      }
-    }
-    break;
-  case 0x10:
-    if (((*(byte *)(plVar32[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0xc) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      lVar18 = param_1[8];
-      uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,lVar18 + 8,&local_14c);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-      if (-1 < (int)uVar12) {
-        local_198 = (longlong *******)(lVar18 + 4);
-        uVar12 = IppProcessDropSource(lVar19,plVar34,(uint)local_14c,lVar18);
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        plVar29 = local_160;
-        ppppplVar33 = local_158;
-      }
-    }
-    break;
-  case 0x11:
-    if (((*(byte *)(plVar32[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0xc) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      lVar18 = param_1[8];
-      uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,lVar18 + 8,&local_14c);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-      if (-1 < (int)uVar12) {
-        local_198 = (longlong *******)(lVar18 + 4);
-        uVar12 = IppProcessBlockSource(lVar19,plVar34,(uint)local_14c,lVar18);
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        plVar29 = local_160;
-        ppppplVar33 = local_158;
-      }
-    }
-    break;
-  case 0x12:
-    if (((*(byte *)(plVar32[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0xc) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      lVar18 = param_1[8];
-      uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,lVar18 + 8,&local_14c);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-      if (-1 < (int)uVar12) {
-        local_198 = (longlong *******)(lVar18 + 4);
-        uVar12 = IppProcessUnblockSource(lVar19,plVar34,(uint)local_14c,lVar18);
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        plVar29 = local_160;
-        ppppplVar33 = local_158;
-      }
-    }
-    break;
-  case 0x13:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        if ((iVar13 == 0) || ((*(byte *)((longlong)plVar34 + 0x2e) & 8) == 0)) {
-          *(byte *)((longlong)plVar34 + 0x2c) =
-               -(iVar13 != 0) & 8U | *(byte *)((longlong)plVar34 + 0x2c) & 0xf7;
-          ppppppplVar27 = ppppppplVar26;
-        }
-        else {
-          ppppppplVar27 = (longlong *******)0xc0000010;
-        }
-      }
-      else if ((iVar13 == 0) || ((local_150 & 0x80000) == 0)) {
-        local_150 = CONCAT31(local_150._1_3_,-(iVar13 != 0) & 8U | (byte)local_150 & 0xf7);
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        ppppppplVar27 = (longlong *******)0xc0000010;
-      }
-    }
-    break;
-  case 0x15:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             -(iVar13 != 0) & 0x10U | *(byte *)((longlong)plVar34 + 0x2c) & 0xef;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150 = CONCAT31(local_150._1_3_,-(iVar13 != 0) & 0x10U | (byte)local_150 & 0xef);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x16:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             -(iVar13 != 0) & 0x80U | *(byte *)((longlong)plVar34 + 0x2c) & 0x7f;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150 = CONCAT31(local_150._1_3_,-(iVar13 != 0) & 0x80U | (byte)local_150 & 0x7f);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x17:
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if (((iVar13 != 0x1e) && (iVar13 != 0x14)) && (iVar13 != 10)) {
-        if (iVar13 != -1) goto LAB_5;
-        iVar13 = 10;
-      }
-      *(char *)(plVar34 + 6) = (char)iVar13;
-      ppppppplVar27 = ppppppplVar26;
-    }
-    break;
-  case 0x18:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             -(iVar13 != 0) & 0x20U | *(byte *)((longlong)plVar34 + 0x2c) & 0xdf;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150 = CONCAT31(local_150._1_3_,-(iVar13 != 0) & 0x20U | (byte)local_150 & 0xdf);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x19:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2c) =
-             -(iVar13 != 0) & 0x40U | *(byte *)((longlong)plVar34 + 0x2c) & 0xbf;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150 = CONCAT31(local_150._1_3_,-(iVar13 != 0) & 0x40U | (byte)local_150 & 0xbf);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x1c:
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      lVar18 = *plVar34;
-      if (*(int *)param_1[8] == 0) {
-        ppppppplVar27 = ppppppplVar26;
-        if (lVar18 != 0) {
-          ExFreePoolWithTag(lVar18,0);
-          *plVar34 = 0;
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        }
-      }
-      else {
-        ppppppplVar27 = ppppppplVar26;
-        if (lVar18 == 0) {
-          puVar14 = (undefined4 *)ExAllocatePool2(0x40,4,0x676e7049);
-          if (puVar14 == (undefined4 *)0x0) goto joined_r0x000140102e31;
-          *puVar14 = 0;
-          *plVar34 = (longlong)puVar14;
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        }
-      }
-    }
-    break;
-  case 0x1d:
-    if (*plVar34 == 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      uVar12 = *(uint *)param_1[8];
-      lVar18 = IppFindInterfaceByIndex(local_168,uVar12);
-      if (lVar18 == 0) {
-        ppppppplVar27 = (longlong *******)0xc0000225;
-        plVar29 = local_160;
-        ppppplVar33 = local_158;
-      }
-      else {
-        IppDereferenceInterface(lVar18);
-        uVar35 = *(uint *)*plVar34;
-        if (uVar35 != 0) {
+            lVar32 = local_168;
+            lVar34 = local_160;
+          }
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0xf:
+      if (((*(byte *)(plVar33[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_11;
+      if (*(uint *)(param_1 + 9) < 0xc) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        ppppppplVar22 = (longlong *******)param_1[8];
+        uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,ppppppplVar22 + 1,&local_154);
+        ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        lVar32 = local_168;
+        if (-1 < (int)uVar14) {
+          local_180 = (longlong *******)param_1[0xd];
+          local_190 = (undefined8 *)((longlong)ppppppplVar22 + 4);
+          local_188 = param_1[0xc];
+          local_198 = ppppppplVar22;
+          uVar14 = IppProcessAddSource(lVar34,plVar36);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      break;
+    case 0x10:
+      if (((*(byte *)(plVar33[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_11;
+      if (*(uint *)(param_1 + 9) < 0xc) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        lVar18 = param_1[8];
+        uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,lVar18 + 8,&local_154);
+        ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        lVar32 = local_168;
+        if (-1 < (int)uVar14) {
+          local_198 = (longlong *******)(lVar18 + 4);
+          uVar14 = IppProcessDropSource(lVar34,plVar36,(uint)local_154,lVar18);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      break;
+    case 0x11:
+      if (((*(byte *)(plVar33[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_11;
+      if (*(uint *)(param_1 + 9) < 0xc) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        lVar18 = param_1[8];
+        uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,lVar18 + 8,&local_154);
+        ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        lVar32 = local_168;
+        if (-1 < (int)uVar14) {
+          local_198 = (longlong *******)(lVar18 + 4);
+          uVar14 = IppProcessBlockSource(lVar34,plVar36,(uint)local_154,lVar18);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      break;
+    case 0x12:
+      if (((*(byte *)(plVar33[5] + 0xe) & 1) != 0) || (iVar13 != 0)) goto LAB_11;
+      if (*(uint *)(param_1 + 9) < 0xc) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        lVar18 = param_1[8];
+        uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,lVar18 + 8,&local_154);
+        ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        lVar32 = local_168;
+        if (-1 < (int)uVar14) {
+          local_198 = (longlong *******)(lVar18 + 4);
+          uVar14 = IppProcessUnblockSource(lVar34,plVar36,(uint)local_154,lVar18);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      break;
+    case 0x13:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else if ((*(int *)param_1[8] == 0) || ((uVar14 & 0x80000) == 0)) {
+        local_158 = CONCAT31(uVar8,-(*(int *)param_1[8] != 0) & 8U | bVar11 & 0xf7);
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc0000010;
+      }
+      break;
+    case 0x15:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158 = CONCAT31(uVar8,-(*(int *)param_1[8] != 0) & 0x10U | bVar11 & 0xef);
+      }
+      break;
+    case 0x16:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158 = CONCAT31(uVar8,-(*(int *)param_1[8] != 0) & 0x80U | bVar11 & 0x7f);
+      }
+      break;
+    case 0x17:
+      if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        iVar13 = *(int *)param_1[8];
+        if (((iVar13 != 0x1e) && (iVar13 != 0x14)) && (iVar13 != 10)) {
+          if (iVar13 != -1) {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+            break;
+          }
+          iVar13 = 10;
+        }
+        *(char *)(plVar36 + 6) = (char)iVar13;
+      }
+      break;
+    case 0x18:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158 = CONCAT31(uVar8,-(*(int *)param_1[8] != 0) & 0x20U | bVar11 & 0xdf);
+      }
+      break;
+    case 0x19:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158 = CONCAT31(uVar8,-(*(int *)param_1[8] != 0) & 0x40U | bVar11 & 0xbf);
+      }
+      break;
+    case 0x1c:
+      if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        lVar18 = *plVar36;
+        if (*(int *)param_1[8] == 0) {
+          if (lVar18 != 0) {
+            ExFreePoolWithTag(lVar18,0);
+            *plVar36 = 0;
+            lVar32 = local_168;
+            lVar34 = local_160;
+          }
+        }
+        else if (lVar18 == 0) {
+          puVar15 = (undefined4 *)ExAllocatePool2(0x40,4,0x676e7049);
+          if (puVar15 == (undefined4 *)0x0) goto joined_r0x0001400ec253;
+          *puVar15 = 0;
+          *plVar36 = (longlong)puVar15;
+          lVar32 = local_168;
+          lVar34 = local_160;
+        }
+      }
+      break;
+    case 0x1d:
+      if (*plVar36 == 0) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        uVar14 = *(uint *)param_1[8];
+        lVar32 = IppFindInterfaceByIndex(local_160,uVar14);
+        if (lVar32 == 0) {
+          ppppppplVar26 = (longlong *******)0xc0000225;
+          lVar32 = local_168;
+        }
+        else {
+          IppDereferenceInterface(lVar32);
+          uVar35 = *(uint *)*plVar36;
+          if (uVar35 != 0) {
+            do {
+              if (((uint *)*plVar36)[(longlong)ppppppplVar22 + 1] == uVar14) goto LAB_20;
+              uVar30 = (int)ppppppplVar22 + 1;
+              ppppppplVar22 = (longlong *******)(ulonglong)uVar30;
+            } while (uVar30 != uVar35);
+          }
+          piVar16 = (int *)ExAllocatePool2(0x40,(longlong)(int)(uVar35 * 4 + 8),0x676e7049);
+          if (piVar16 == (int *)0x0) {
+            if (DAT_16 < '\0') {
+              McTemplateK0z_EtwWriteTransfer
+                        (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
+            }
+            ppppppplVar26 = (longlong *******)0xc000009a;
+            lVar32 = local_168;
+          }
+          else {
+            *piVar16 = uVar35 + 1;
+            memmove(piVar16 + 1,(void *)(*plVar36 + 4),(ulonglong)uVar35 * 4);
+            piVar16[(ulonglong)uVar35 + 1] = uVar14;
+            ExFreePoolWithTag(*plVar36,0);
+            *plVar36 = (longlong)piVar16;
+LAB_20:
+            ppppppplVar26 = (longlong *******)0x0;
+            lVar32 = local_168;
+          }
+        }
+      }
+      break;
+    case 0x1e:
+      puVar28 = (uint *)*plVar36;
+      if (puVar28 == (uint *)0x0) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        uVar14 = *puVar28;
+        if (uVar14 == 0) {
+LAB_9:
+          ppppppplVar26 = (longlong *******)0xc0000225;
+          lVar32 = local_168;
+          lVar34 = local_160;
+        }
+        else {
           do {
-            if (((uint *)*plVar34)[(longlong)ppppppplVar27 + 1] == uVar12) {
-              ppppppplVar27 = (longlong *******)0x0;
-              plVar29 = local_160;
-              ppppplVar33 = local_158;
-              goto LAB_4;
-            }
-            uVar22 = (int)ppppppplVar27 + 1;
-            ppppppplVar27 = (longlong *******)(ulonglong)uVar22;
-          } while (uVar22 != uVar35);
-        }
-        piVar15 = (int *)ExAllocatePool2(0x40,(longlong)(int)(uVar35 * 4 + 8),0x676e7049);
-        if (piVar15 == (int *)0x0) goto joined_r0x0001401049ff;
-        *piVar15 = uVar35 + 1;
-        memmove(piVar15 + 1,(void *)(*plVar34 + 4),(ulonglong)uVar35 * 4);
-        piVar15[(ulonglong)uVar35 + 1] = uVar12;
-        ExFreePoolWithTag(*plVar34,0);
-        *plVar34 = (longlong)piVar15;
-        ppppppplVar27 = (longlong *******)0x0;
-        plVar29 = local_160;
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-      }
-    }
-    break;
-  case 0x1e:
-    puVar31 = (uint *)*plVar34;
-    if (puVar31 == (uint *)0x0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      uVar12 = *puVar31;
-      if (uVar12 != 0) {
-        do {
-          if (puVar31[(longlong)ppppppplVar27 + 1] == *(uint *)param_1[8]) {
-            *puVar31 = uVar12 - 1;
-            _Dst = (void *)((longlong)ppppppplVar27 * 4 + *plVar34 + 4);
-            memmove(_Dst,(void *)((longlong)_Dst + 4),
-                    (ulonglong)((uVar12 - (int)ppppppplVar27) - 1) << 2);
-            ppppppplVar27 = ppppppplVar26;
-            lVar19 = local_168;
-            ppppplVar33 = local_158;
-            goto LAB_4;
-          }
-          uVar35 = (int)ppppppplVar27 + 1;
-          ppppppplVar27 = (longlong *******)(ulonglong)uVar35;
-        } while (uVar35 != uVar12);
-      }
-      ppppppplVar27 = (longlong *******)0xc0000225;
-    }
-    break;
-  case 0x1f:
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      local_14c._0_4_ = *(uint *)param_1[8];
-      ppppppplVar26 = ppppppplVar27;
-      if ((uint)local_14c != 0) {
-        if (*(int *)(local_158 + 3) == 0) {
-          uVar12 = IppGetInterfaceIndexFromSocketOption(local_168,(uint *)param_1[8],&local_14c);
-          ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-          plVar29 = local_160;
-          if ((int)uVar12 < 0) break;
-        }
-        ppppppplVar26 = (longlong *******)IppFindInterfaceByIndex(lVar19,(uint)local_14c);
-        if (ppppppplVar26 == (longlong *******)0x0) {
-          ppppppplVar27 = (longlong *******)0xc0000225;
-          plVar29 = local_160;
-          break;
-        }
-      }
-      if (plVar34[2] != 0) {
-        IppDereferenceInterface();
-      }
-      plVar34[2] = (longlong)ppppppplVar26;
-      plVar29 = local_160;
-    }
-    break;
-  case 0x20:
-    local_14c._0_4_ = (uint)local_14c._2_2_ << 0x10;
-    ppppppplVar26 = ppppppplVar27;
-    if ((int)param_1[9] != 0) {
-      ppppppplVar16 = (longlong *******)ExAllocatePool2(0x42,(int)param_1[9],0x676e7049);
-      if (ppppppplVar16 == (longlong *******)0x0) goto joined_r0x000140102e31;
-      memmove(ppppppplVar16,(void *)param_1[8],(ulonglong)*(uint *)(param_1 + 9));
-      ppppplVar33 = local_158;
-      uVar12 = (*(code *)local_158[0x29])(ppppppplVar16,(int)param_1[9],&local_14c,plVar34 + 10);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      if ((int)uVar12 < 0) goto LAB_16;
-      ppppppplVar26 = (longlong *******)(ulonglong)(ushort)local_14c;
-    }
-    uVar20 = *(short *)(*(longlong *)(local_168 + 0x28) + 0x28) +
-             *(short *)((longlong)plVar34 + 0x34) + (short)ppppppplVar26;
-    if (uVar20 < *(ushort *)((longlong)ppppplVar33 + 0x4ce4)) {
-      lVar19 = plVar34[9];
-      plVar34[9] = (longlong)ppppppplVar16;
-      *(short *)((longlong)plVar34 + 0x42) = (short)ppppppplVar26;
-      if (lVar19 != 0) {
-        ExFreePoolWithTag(lVar19,0);
-      }
-      plVar32 = (longlong *)param_1[1];
-      if (plVar32 != (longlong *)0x0) {
-        uVar21 = *(ushort *)((longlong)plVar34 + 0x34);
-        uVar3 = *(ushort *)((longlong)plVar34 + 0x42);
+            if (puVar28[(longlong)ppppppplVar22 + 1] == *(uint *)param_1[8]) {
+              *puVar28 = uVar14 - 1;
+              _Dst = (void *)((longlong)ppppppplVar22 * 4 + *plVar36 + 4);
+              memmove(_Dst,(void *)((longlong)_Dst + 4),
+                      (ulonglong)((uVar14 - (int)ppppppplVar22) - 1) << 2);
+              lVar32 = local_168;
+              lVar34 = local_160;
+              goto LAB_5;
+            }
+            uVar35 = (int)ppppppplVar22 + 1;
+            ppppppplVar22 = (longlong *******)(ulonglong)uVar35;
+          } while (uVar35 != uVar14);
+          ppppppplVar26 = (longlong *******)0xc0000225;
+        }
+      }
+      break;
+    case 0x1f:
+      if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_154._0_4_ = *(uint *)param_1[8];
+        ppppppplVar26 = ppppppplVar22;
+        if ((uint)local_154 != 0) {
+          if (*(int *)(local_168 + 0x18) == 0) {
+            uVar14 = IppGetInterfaceIndexFromSocketOption(local_160,(uint *)param_1[8],&local_154);
+            ppppppplVar22 = (longlong *******)(ulonglong)uVar14;
+            ppppppplVar26 = ppppppplVar22;
+            lVar32 = local_168;
+            if ((int)uVar14 < 0) break;
+          }
+          ppppppplVar26 = (longlong *******)IppFindInterfaceByIndex(lVar34,(uint)local_154);
+          if (ppppppplVar26 == (longlong *******)0x0) {
+            ppppppplVar26 = (longlong *******)0xc0000225;
+            lVar32 = local_168;
+            break;
+          }
+        }
+        if (plVar36[2] != 0) {
+          IppDereferenceInterface();
+        }
+        plVar36[2] = (longlong)ppppppplVar26;
+        ppppppplVar26 = ppppppplVar22;
+        lVar32 = local_168;
+      }
+      break;
+    case 0x20:
+      local_154._0_4_ = (uint)local_154._2_2_ << 0x10;
+      ppppppplVar26 = ppppppplVar22;
+      if ((int)param_1[9] != 0) {
+        ppppppplVar19 = (longlong *******)ExAllocatePool2(0x42,(int)param_1[9],0x676e7049);
+        if (ppppppplVar19 == (longlong *******)0x0) {
+joined_r0x0001400ede95:
+          if (-1 < DAT_16) goto LAB_1400ec26f;
+LAB_15:
+          McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
+          goto LAB_1;
+        }
+        memmove(ppppppplVar19,(void *)param_1[8],(ulonglong)*(uint *)(param_1 + 9));
+        uVar14 = (**(code **)(local_168 + 0x148))
+                           (ppppppplVar19,(int)param_1[9],&local_154,plVar36 + 10);
+        ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+        if ((int)uVar14 < 0) goto LAB_17;
+        ppppppplVar22 = ppppppplVar26;
+        ppppppplVar26 = (longlong *******)(ulonglong)(ushort)local_154;
+      }
+      lVar34 = local_160;
+      uVar20 = *(short *)(*(longlong *)(local_160 + 0x28) + 0x28) +
+               *(short *)((longlong)plVar36 + 0x34) + (short)ppppppplVar26;
+      if (uVar20 < *(ushort *)(local_168 + 0x4ce4)) {
+        lVar32 = plVar36[9];
+        plVar36[9] = (longlong)ppppppplVar19;
+        *(short *)((longlong)plVar36 + 0x42) = (short)ppppppplVar26;
+        if (lVar32 != 0) {
+          ExFreePoolWithTag(lVar32,0);
+        }
+        plVar33 = (longlong *)param_1[1];
+        if (plVar33 == (longlong *)0x0) goto LAB_14;
+        uVar21 = *(ushort *)((longlong)plVar36 + 0x34);
+        uVar1 = *(ushort *)((longlong)plVar36 + 0x42);
         *(undefined1 *)((longlong)param_1 + 0x81) = 1;
-        *(uint *)(param_1 + 0x12) = (uint)uVar3 + (uint)uVar21;
-        *(uint *)((longlong)param_1 + 0x84) = (int)plVar32[0xe] - (uint)uVar20;
-        *(uint *)(param_1 + 0x11) = (uint)*(ushort *)((longlong)ppppplVar33 + 0x4ce4) - (uint)uVar20
-        ;
-        *(ushort *)((longlong)param_1 + 0x8c) =
-             **(byte **)(*(longlong *)(*plVar32 + 8) + 0x30) + uVar20;
-      }
-      *(undefined1 *)(param_1 + 0x10) = 1;
-      plVar29 = local_160;
-      lVar19 = local_168;
-    }
-    else {
-LAB_15:
-      ExFreePoolWithTag(ppppppplVar16,0);
-      ppppppplVar27 = (longlong *******)0xc000000d;
-      plVar29 = local_160;
-      lVar19 = local_168;
-    }
-    break;
-  case 0x26:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2d) =
-             -(iVar13 != 0) & 4U | *(byte *)((longlong)plVar34 + 0x2d) & 0xfb;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_2_ = CONCAT11(-(iVar13 != 0) & 4U | local_150._1_1_ & 0xfb,(byte)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x28:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2d) =
-             -(iVar13 != 0) & 0x40U | *(byte *)((longlong)plVar34 + 0x2d) & 0xbf;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_2_ = CONCAT11(-(iVar13 != 0) & 0x40U | local_150._1_1_ & 0xbf,(byte)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x29:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0x88) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      puVar14 = (undefined4 *)param_1[8];
-      lVar18 = 4;
-      if (*(short *)(puVar14 + 2) != 2) {
-        lVar18 = 8;
-      }
-      local_198 = (longlong *******)((longlong)puVar14 + lVar18 + 8);
-      local_188 = param_1[0xd];
-      local_190 = (undefined8 *)param_1[0xc];
-      uVar12 = IppProcessJoinRequest(local_168,plVar34,&switchD_14000a905::caseD_1,*puVar14);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-    }
-    break;
-  case 0x2a:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0x88) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      puVar14 = (undefined4 *)param_1[8];
-      lVar18 = 4;
-      if (*(short *)(puVar14 + 2) != 2) {
-        lVar18 = 8;
-      }
-      uVar12 = IppProcessLeaveRequest(local_168,plVar34,*puVar14,(longlong)puVar14 + lVar18 + 8);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-    }
-    break;
-  case 0x2b:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0x108) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      puVar14 = (undefined4 *)param_1[8];
-      lVar18 = 4;
-      if (*(short *)(puVar14 + 0x22) != 2) {
-        lVar18 = 8;
-      }
-      local_198 = (longlong *******)(lVar18 + (longlong)(puVar14 + 0x22));
-      uVar12 = 4;
-      if (*(short *)(puVar14 + 2) != 2) {
-        uVar12 = 8;
-      }
-      uVar12 = IppProcessBlockSource
-                         (local_168,plVar34,*puVar14,(longlong)(puVar14 + 2) + (ulonglong)uVar12);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-    }
-    break;
-  case 0x2c:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0x108) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      puVar14 = (undefined4 *)param_1[8];
-      lVar18 = 4;
-      if (*(short *)(puVar14 + 0x22) != 2) {
-        lVar18 = 8;
-      }
-      local_198 = (longlong *******)(lVar18 + (longlong)(puVar14 + 0x22));
-      uVar12 = 4;
-      if (*(short *)(puVar14 + 2) != 2) {
-        uVar12 = 8;
-      }
-      uVar12 = IppProcessUnblockSource
-                         (local_168,plVar34,*puVar14,(longlong)(puVar14 + 2) + (ulonglong)uVar12);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-    }
-    break;
-  case 0x2d:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0x108) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      psVar1 = (short *)(param_1[8] + 8);
-      lVar18 = 4;
-      psVar2 = (short *)(param_1[8] + 0x88);
-      if (*psVar2 != 2) {
-        lVar18 = 8;
-      }
-      local_190 = (undefined8 *)(lVar18 + (longlong)psVar2);
-      local_180 = (longlong *******)param_1[0xd];
-      local_188 = param_1[0xc];
-      uVar12 = 4;
-      if (*psVar1 != 2) {
-        uVar12 = 8;
-      }
-      local_198 = (longlong *******)((ulonglong)uVar12 + (longlong)psVar1);
-LAB_20:
-      uVar12 = IppProcessAddSource(lVar19,plVar34);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-    }
-    break;
-  case 0x2e:
-    if ((*(byte *)(plVar32[5] + 0xe) & 1) != 0) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 0x108) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      puVar14 = (undefined4 *)param_1[8];
-      lVar18 = 4;
-      if (*(short *)(puVar14 + 0x22) != 2) {
-        lVar18 = 8;
-      }
-      local_198 = (longlong *******)(lVar18 + (longlong)(puVar14 + 0x22));
-      uVar12 = 4;
-      if (*(short *)(puVar14 + 2) != 2) {
-        uVar12 = 8;
-      }
-      uVar12 = IppProcessDropSource
-                         (local_168,plVar34,*puVar14,(longlong)(puVar14 + 2) + (ulonglong)uVar12);
-      ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-      plVar29 = local_160;
-      ppppplVar33 = local_158;
-    }
-    break;
-  case 0x2f:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2d) =
-             -(iVar13 != 0) & 0x80U | *(byte *)((longlong)plVar34 + 0x2d) & 0x7f;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_2_ = CONCAT11(-(iVar13 != 0) & 0x80U | local_150._1_1_ & 0x7f,(byte)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x32:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2e) =
-             iVar13 != 0 | *(byte *)((longlong)plVar34 + 0x2e) & 0xfe;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_3_ = CONCAT12(iVar13 != 0 | local_150._2_1_ & 0xfe,(undefined2)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x33:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        if ((iVar13 == 0) || ((*(byte *)((longlong)plVar34 + 0x2c) & 8) == 0)) {
-          *(byte *)((longlong)plVar34 + 0x2e) =
-               -(iVar13 != 0) & 8U | *(byte *)((longlong)plVar34 + 0x2e) & 0xf7;
-          ppppppplVar27 = ppppppplVar26;
-        }
-        else {
-          ppppppplVar27 = (longlong *******)0xc0000010;
-        }
-      }
-      else if ((iVar13 == 0) || ((local_150 & 8) == 0)) {
-        local_150._0_3_ =
-             CONCAT12(-(iVar13 != 0) & 8U | local_150._2_1_ & 0xf7,(undefined2)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        ppppppplVar27 = (longlong *******)0xc0000010;
-      }
-    }
-    break;
-  case 0x3c:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2e) =
-             -(iVar13 != 0) & 2U | *(byte *)((longlong)plVar34 + 0x2e) & 0xfd;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_3_ =
-             CONCAT12(-(iVar13 != 0) & 2U | local_150._2_1_ & 0xfd,(undefined2)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x46:
-    if (*(short *)(plVar32[5] + 4) == 6) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2e) =
-             -(iVar13 != 0) & 4U | *(byte *)((longlong)plVar34 + 0x2e) & 0xfb;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_3_ =
-             CONCAT12(-(iVar13 != 0) & 4U | local_150._2_1_ & 0xfb,(undefined2)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x47:
-    if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-      uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-    }
-    if (uVar12 == 0) {
-      if ((*(byte *)((longlong)plVar34 + 0x2d) & 8) == 0) goto LAB_21;
-    }
-    else if ((local_150 & 0x800) == 0) {
+        *(uint *)(param_1 + 0x12) = (uint)uVar1 + (uint)uVar21;
+        *(uint *)((longlong)param_1 + 0x84) = (int)plVar33[0xe] - (uint)uVar20;
+        *(uint *)(param_1 + 0x11) = (uint)*(ushort *)(local_168 + 0x4ce4) - (uint)uVar20;
+        bVar11 = **(byte **)(*(longlong *)(*plVar33 + 8) + 0x30);
+        *(undefined1 *)(param_1 + 0x10) = 1;
+        *(ushort *)((longlong)param_1 + 0x8c) = bVar11 + uVar20;
+        ppppppplVar26 = ppppppplVar22;
+        lVar32 = local_168;
+      }
+      else {
+LAB_13:
+        lVar34 = local_160;
+        ExFreePoolWithTag(ppppppplVar19,0);
+        ppppppplVar26 = (longlong *******)0xc000000d;
+        lVar32 = local_168;
+      }
+      break;
+    case 0x26:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158._0_2_ = CONCAT11(-(*(int *)param_1[8] != 0) & 4U | bVar29 & 0xfb,bVar11);
+      }
+      break;
+    case 0x28:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158._0_2_ = CONCAT11(-(*(int *)param_1[8] != 0) & 0x40U | bVar29 & 0xbf,bVar11);
+      }
+      break;
+    case 0x29:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 0x88) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            lVar32 = 8;
+          }
+          local_198 = (longlong *******)((longlong)puVar15 + lVar32 + 8);
+          local_188 = param_1[0xd];
+          local_190 = (undefined8 *)param_1[0xc];
+          uVar14 = IppProcessJoinRequest(local_160,plVar36,uVar30,*puVar15);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x2a:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 0x88) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            lVar32 = 8;
+          }
+          uVar14 = IppProcessLeaveRequest(local_160,plVar36,*puVar15,(longlong)puVar15 + lVar32 + 8)
+          ;
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x2b:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 0x108) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 0x22) != 2) {
+            lVar32 = 8;
+          }
+          local_198 = (longlong *******)(lVar32 + (longlong)(puVar15 + 0x22));
+          uVar14 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            uVar14 = 8;
+          }
+          uVar14 = IppProcessBlockSource
+                             (local_160,plVar36,*puVar15,(longlong)(puVar15 + 2) + (ulonglong)uVar14
+                             );
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x2c:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 0x108) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 0x22) != 2) {
+            lVar32 = 8;
+          }
+          local_198 = (longlong *******)(lVar32 + (longlong)(puVar15 + 0x22));
+          uVar14 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            uVar14 = 8;
+          }
+          uVar14 = IppProcessUnblockSource
+                             (local_160,plVar36,*puVar15,(longlong)(puVar15 + 2) + (ulonglong)uVar14
+                             );
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x2d:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 0x108) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 0x22) != 2) {
+            lVar32 = 8;
+          }
+          local_190 = (undefined8 *)(lVar32 + (longlong)(puVar15 + 0x22));
+          local_180 = (longlong *******)param_1[0xd];
+          local_188 = param_1[0xc];
+          uVar14 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            uVar14 = 8;
+          }
+          local_198 = (longlong *******)((ulonglong)uVar14 + (longlong)(puVar15 + 2));
+          uVar14 = IppProcessAddSource(local_160,plVar36,8,*puVar15);
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x2e:
+      if ((*(byte *)(plVar33[5] + 0xe) & 1) == 0) {
+        if (*(uint *)(param_1 + 9) < 0x108) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          puVar15 = (undefined4 *)param_1[8];
+          lVar32 = 4;
+          if (*(short *)(puVar15 + 0x22) != 2) {
+            lVar32 = 8;
+          }
+          local_198 = (longlong *******)(lVar32 + (longlong)(puVar15 + 0x22));
+          uVar14 = 4;
+          if (*(short *)(puVar15 + 2) != 2) {
+            uVar14 = 8;
+          }
+          uVar14 = IppProcessDropSource
+                             (local_160,plVar36,*puVar15,(longlong)(puVar15 + 2) + (ulonglong)uVar14
+                             );
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          lVar32 = local_168;
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x2f:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158._0_2_ = CONCAT11(-(*(int *)param_1[8] != 0) & 0x80U | bVar29 & 0x7f,bVar11);
+      }
+      break;
+    case 0x32:
+      if (*(short *)(plVar33[5] + 4) == 6) goto LAB_11;
+      if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158._0_3_ = CONCAT12(*(int *)param_1[8] != 0 | bVar12 & 0xfe,(undefined2)local_158);
+        local_158 = CONCAT13(uVar9,(undefined3)local_158);
+      }
+      break;
+    case 0x33:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else if ((*(int *)param_1[8] == 0) || ((uVar14 & 8) == 0)) {
+        local_158._0_3_ =
+             CONCAT12(-(*(int *)param_1[8] != 0) & 8U | bVar12 & 0xf7,(undefined2)local_158);
+        local_158 = CONCAT13(uVar9,(undefined3)local_158);
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc0000010;
+      }
+      break;
+    case 0x3c:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158._0_3_ =
+             CONCAT12(-(*(int *)param_1[8] != 0) & 2U | bVar12 & 0xfd,(undefined2)local_158);
+        local_158 = CONCAT13(uVar9,(undefined3)local_158);
+      }
+      break;
+    case 0x46:
+      if (*(short *)(plVar33[5] + 4) == 6) {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        local_158._0_3_ =
+             CONCAT12(-(*(int *)param_1[8] != 0) & 4U | bVar12 & 0xfb,(undefined2)local_158);
+        local_158 = CONCAT13(uVar9,(undefined3)local_158);
+      }
+      break;
+    case 0x47:
+      if ((uVar30 & 8) == 0) {
+        if ((int)param_1[9] == 0) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          bVar12 = *(byte *)param_1[8];
+          if (bVar12 < 4) {
+            if ((bVar12 - 1 & 0xfd) == 0) {
+              local_158 = uVar14 | 4;
+            }
+            else if (bVar12 == 2) {
+              local_158 = uVar14 & 0xfffffffb;
+            }
+            else {
+              local_158 = CONCAT31(uVar8,(*(byte *)(plVar33[5] + 0xe) & 2) * '\x02' | bVar11 & 0xfb)
+              ;
+            }
+            local_158._0_3_ =
+                 CONCAT12((bVar12 & 3) << 4 | local_158._2_1_ & 0xcf,(undefined2)local_158);
+          }
+          else {
+            ppppppplVar26 = (longlong *******)0xc000000d;
+          }
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x4a:
+      cVar10 = IoIs32bitProcess(0);
+      lVar32 = local_168;
+      lVar34 = local_160;
+      if (cVar10 == '\0') {
+        if (7 < *(uint *)(param_1 + 9)) {
+          uVar24 = *(ulonglong *)param_1[8];
+          goto LAB_21;
+        }
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        uVar24 = (ulonglong)*(uint *)param_1[8];
 LAB_21:
-      if ((int)param_1[9] == 0) {
-        ppppppplVar27 = (longlong *******)0xc0000023;
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-      }
-      else {
-        bVar28 = *(byte *)param_1[8];
-        if (3 < bVar28) goto LAB_5;
-        if ((bVar28 - 1 & 0xfd) == 0) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar12 == 0) {
-            *(byte *)((longlong)plVar34 + 0x2c) = *(byte *)((longlong)plVar34 + 0x2c) | 4;
-          }
-          else {
-            local_150 = local_150 | 4;
-          }
-        }
-        else if (bVar28 == 2) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar12 == 0) {
-            *(byte *)((longlong)plVar34 + 0x2c) = *(byte *)((longlong)plVar34 + 0x2c) & 0xfb;
-          }
-          else {
-            local_150 = local_150 & 0xfffffffb;
-          }
-        }
-        else {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar12 == 0) {
-            *(byte *)((longlong)plVar34 + 0x2c) =
-                 (*(byte *)(plVar32[5] + 0xe) * '\x02' ^ *(byte *)((longlong)plVar34 + 0x2c)) & 4 ^
-                 *(byte *)((longlong)plVar34 + 0x2c);
-          }
-          else {
-            local_150 = CONCAT31(local_150._1_3_,
-                                 (*(byte *)(plVar32[5] + 0xe) & 2) * '\x02' | (byte)local_150 & 0xfb
-                                );
-          }
-        }
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        lVar19 = local_168;
-        ppppplVar33 = local_158;
-        if (uVar12 == 0) {
-          *(byte *)((longlong)plVar34 + 0x2e) =
-               (bVar28 << 4 ^ *(byte *)((longlong)plVar34 + 0x2e)) & 0x30 ^
-               *(byte *)((longlong)plVar34 + 0x2e);
-          ppppppplVar27 = ppppppplVar26;
-        }
-        else {
-          local_150._0_3_ =
-               CONCAT12((bVar28 & 3) << 4 | local_150._2_1_ & 0xcf,(undefined2)local_150);
-          ppppppplVar27 = ppppppplVar26;
-        }
-      }
-      break;
-    }
-LAB_5:
-    ppppppplVar27 = (longlong *******)0xc000000d;
-    lVar19 = local_168;
-    ppppplVar33 = local_158;
-    break;
-  case 0x4a:
-    cVar10 = IoIs32bitProcess(0);
-    lVar19 = local_168;
-    ppppplVar33 = local_158;
-    if (cVar10 == '\0') {
-      if (7 < *(uint *)(param_1 + 9)) {
-        uVar25 = *(ulonglong *)param_1[8];
-        goto LAB_22;
-      }
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      uVar25 = (ulonglong)*(uint *)param_1[8];
-LAB_22:
-      if (uVar25 == 0) {
-        plVar29 = local_160;
-        if (plVar34[2] != 0) {
-          IppDereferenceInterface();
-          plVar34[2] = 0;
-          ppppppplVar27 = ppppppplVar26;
-          plVar29 = plVar32;
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        }
-      }
-      else {
-        KeReleaseInStackQueuedSpinLock(&local_118);
-        local_198 = &local_140;
-        local_190 = (undefined8 *)0x0;
-        local_140 = (longlong ******)0x0;
-        uVar12 = ObReferenceObjectByHandle(uVar25,0,*(undefined8 *)IoFileObjectType_exref,1);
-        pppppplVar30 = local_140;
-        ppppppplVar27 = (longlong *******)(ulonglong)uVar12;
-        if (-1 < (int)uVar12) {
-          cVar10 = NetioNrtIsTrackerDevice(local_140[1]);
-          if (cVar10 == '\0') {
-            ppppppplVar27 = (longlong *******)0xc0000008;
-          }
-          else {
-            iVar13 = NetioNrtGetIfIndex(pppppplVar30[3]);
-            if (iVar13 == 0) {
-              ppppppplVar27 = (longlong *******)0xc0000225;
+        if (uVar24 == 0) {
+          if (plVar36[2] != 0) {
+            IppDereferenceInterface();
+            plVar36[2] = 0;
+            lVar32 = local_168;
+            lVar34 = local_160;
+          }
+        }
+        else {
+          KeReleaseInStackQueuedSpinLock(&local_110);
+          local_198 = &local_148;
+          local_190 = (undefined8 *)0x0;
+          local_148 = (longlong ******)0x0;
+          uVar14 = ObReferenceObjectByHandle(uVar24,0,*(undefined8 *)IoFileObjectType_exref,1);
+          pppppplVar27 = local_148;
+          ppppppplVar26 = (longlong *******)(ulonglong)uVar14;
+          if (-1 < (int)uVar14) {
+            cVar10 = NetioNrtIsTrackerDevice(local_148[1]);
+            if (cVar10 == '\0') {
+              ppppppplVar26 = (longlong *******)0xc0000008;
             }
             else {
-              lVar19 = IppFindInterfaceByIndex(local_168,iVar13);
-              if (lVar19 == 0) {
-                ppppppplVar27 = (longlong *******)0xc0000225;
+              iVar13 = NetioNrtGetIfIndex(pppppplVar27[3]);
+              if (iVar13 == 0) {
+                ppppppplVar26 = (longlong *******)0xc0000225;
               }
               else {
-                KeAcquireInStackQueuedSpinLock(plVar34 + 0xe,&local_118);
-                do {
-                } while ((int)plVar34[0xf] != 0);
-                if (plVar34[2] != 0) {
-                  IppDereferenceInterface();
-                }
-                plVar34[2] = lVar19;
-                KeReleaseInStackQueuedSpinLock(&local_118);
-                pppppplVar30 = local_140;
+                lVar32 = IppFindInterfaceByIndex(local_160,iVar13);
+                if (lVar32 == 0) {
+                  ppppppplVar26 = (longlong *******)0xc0000225;
+                }
+                else {
+                  KeAcquireInStackQueuedSpinLock(plVar36 + 0xe,&local_110);
+                  do {
+                  } while ((int)plVar36[0xf] != 0);
+                  if (plVar36[2] != 0) {
+                    IppDereferenceInterface();
+                  }
+                  plVar36[2] = lVar32;
+                  KeReleaseInStackQueuedSpinLock(&local_110);
+                  pppppplVar27 = local_148;
+                }
               }
             }
-          }
-          ObfDereferenceObject(pppppplVar30);
-        }
-        KeAcquireInStackQueuedSpinLock(plVar34 + 0xe,&local_118);
-        do {
-          lVar19 = local_168;
-          ppppplVar33 = local_158;
-        } while ((int)plVar34[0xf] != 0);
-      }
-    }
-    break;
-  case 0x4b:
-    if (*(short *)(plVar32[5] + 4) != 0x11) goto LAB_5;
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      iVar13 = *(int *)param_1[8];
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      lVar19 = local_168;
-      ppppplVar33 = local_158;
-      if (uVar12 == 0) {
-        *(byte *)((longlong)plVar34 + 0x2e) =
-             -(iVar13 != 0) & 0x40U | *(byte *)((longlong)plVar34 + 0x2e) & 0xbf;
-        ppppppplVar27 = ppppppplVar26;
-      }
-      else {
-        local_150._0_3_ =
-             CONCAT12(-(iVar13 != 0) & 0x40U | local_150._2_1_ & 0xbf,(undefined2)local_150);
-        ppppppplVar27 = ppppppplVar26;
-      }
-    }
-    break;
-  case 0x4c:
-    uVar5 = *(undefined4 *)((longlong)plVar34 + 0x6c);
-    if (*(uint *)(param_1 + 9) < 4) {
-      ppppppplVar27 = (longlong *******)0xc0000023;
-    }
-    else {
-      uVar12 = *(uint *)param_1[8];
-      if (*(int *)(local_158 + 3) == 0) {
-        ppppppplVar27 = (longlong *******)(ulonglong)(-(uint)(uVar12 < 0x240) & 0xc000000d);
-        if (0x23f < uVar12) {
-LAB_23:
-          *(uint *)((longlong)plVar34 + 0x6c) = uVar12;
-          plVar32 = (longlong *)param_1[1];
-          if ((plVar32 != (longlong *)0x0) && (uVar12 < *(uint *)(plVar32 + 0xe))) {
-            uVar20 = *(short *)((longlong)plVar34 + 0x42) + *(short *)((longlong)plVar34 + 0x34);
-            uVar21 = uVar20 + *(short *)(*(longlong *)(local_168 + 0x28) + 0x28);
-            *(undefined1 *)((longlong)param_1 + 0x81) = 1;
-            iVar13 = *(int *)((longlong)plVar34 + 0x6c);
-            *(uint *)(param_1 + 0x12) = (uint)uVar20;
-            *(uint *)((longlong)param_1 + 0x84) = iVar13 - (uint)uVar21;
-            *(uint *)(param_1 + 0x11) =
-                 (uint)*(ushort *)((longlong)local_158 + 0x4ce4) - (uint)uVar21;
-            *(ushort *)((longlong)param_1 + 0x8c) =
-                 **(byte **)(*(longlong *)(*plVar32 + 8) + 0x30) + uVar21;
-          }
-        }
-      }
-      else {
-        if (0x4ff < uVar12) goto LAB_23;
-        ppppppplVar27 = (longlong *******)0xc000000d;
-      }
-    }
-    plVar29 = local_160;
-    if (((5 < DAT_18) && ((_DAT_14022d208 & 0x400000000000) != 0)) &&
-       ((DAT_19 & 0x400000000000) == DAT_19)) {
-      local_b8 = &local_158;
-      local_b0 = 8;
-      local_a8 = &local_120;
-      local_158 = (longlong *****)0x1;
-      local_120 = (longlong *)0x2000000;
-      local_a0 = 8;
-      uVar17 = PsGetCurrentProcess();
-      local_98 = (char *)PsGetProcessImageFileName(uVar17);
-      plVar29 = local_160;
-      if (local_98 == (char *)0x0) {
-        local_98 = "";
-        local_90 = 1;
-      }
-      else {
-        lVar19 = -1;
-        do {
-          lVar18 = lVar19 + 1;
-          lVar19 = lVar19 + 1;
-        } while (local_98[lVar18] != '\0');
-        local_90 = (int)lVar19 + 1;
-      }
-      local_88 = &local_128;
-      local_130 = (longlong *)CONCAT44(local_130._4_4_,uVar5);
-      local_14c._4_4_ = *(uint *)(ppppplVar33 + 3);
-      local_78 = (undefined4 *)((longlong)&local_14c + 4);
-      local_68 = &local_130;
-      local_140 = (longlong ******)
-                  CONCAT44(local_140._4_4_,*(undefined4 *)((longlong)plVar34 + 0x6c));
-      local_58 = (longlong ******)&local_140;
-      local_8c = 0;
-      local_128 = (longlong *)CONCAT44(local_128._4_4_,(int)ppppppplVar27);
-      local_80 = 4;
-      local_70 = 4;
-      local_60 = 4;
-      local_50 = 4;
-      local_48 = (undefined4 *)&local_14c;
-      local_198 = local_d8;
-      local_14c._0_4_ = CONCAT22(local_14c._2_2_,*(undefined2 *)(local_160[5] + 4));
-      local_40 = 2;
-      _tlgWriteAgg(&DAT_18,&DAT_1401fdbbe);
-      lVar19 = local_168;
+            ObfDereferenceObject(pppppplVar27);
+          }
+          KeAcquireInStackQueuedSpinLock(plVar36 + 0xe,&local_110);
+          do {
+            lVar32 = local_168;
+            lVar34 = local_160;
+          } while ((int)plVar36[0xf] != 0);
+        }
+      }
+      break;
+    case 0x4b:
+      if (*(short *)(plVar33[5] + 4) == 0x11) {
+        if (*(uint *)(param_1 + 9) < 4) {
+          ppppppplVar26 = (longlong *******)0xc0000023;
+        }
+        else {
+          local_158._0_3_ =
+               CONCAT12(-(*(int *)param_1[8] != 0) & 0x40U | bVar12 & 0xbf,(undefined2)local_158);
+          local_158 = CONCAT13(uVar9,(undefined3)local_158);
+        }
+      }
+      else {
+        ppppppplVar26 = (longlong *******)0xc000000d;
+      }
+      break;
+    case 0x4c:
+      uVar3 = *(undefined4 *)((longlong)plVar36 + 0x6c);
+      if (*(uint *)(param_1 + 9) < 4) {
+        ppppppplVar26 = (longlong *******)0xc0000023;
+      }
+      else {
+        uVar14 = *(uint *)param_1[8];
+        if (*(int *)(local_168 + 0x18) == 0) {
+          ppppppplVar22 = (longlong *******)(ulonglong)(-(uint)(uVar14 < 0x240) & 0xc000000d);
+          ppppppplVar26 = ppppppplVar22;
+          if (0x23f < uVar14) {
+LAB_22:
+            *(uint *)((longlong)plVar36 + 0x6c) = uVar14;
+            plVar4 = (longlong *)param_1[1];
+            ppppppplVar26 = ppppppplVar22;
+            if ((plVar4 != (longlong *)0x0) && (uVar14 < *(uint *)(plVar4 + 0xe))) {
+              uVar20 = *(short *)((longlong)plVar36 + 0x42) + *(short *)((longlong)plVar36 + 0x34);
+              uVar21 = uVar20 + *(short *)(*(longlong *)(local_160 + 0x28) + 0x28);
+              *(undefined1 *)((longlong)param_1 + 0x81) = 1;
+              iVar13 = *(int *)((longlong)plVar36 + 0x6c);
+              *(uint *)(param_1 + 0x12) = (uint)uVar20;
+              *(uint *)((longlong)param_1 + 0x84) = iVar13 - (uint)uVar21;
+              *(uint *)(param_1 + 0x11) = (uint)*(ushort *)(local_168 + 0x4ce4) - (uint)uVar21;
+              *(ushort *)((longlong)param_1 + 0x8c) =
+                   **(byte **)(*(longlong *)(*plVar4 + 8) + 0x30) + uVar21;
+            }
+          }
+        }
+        else {
+          if (0x4ff < uVar14) goto LAB_22;
+          ppppppplVar26 = (longlong *******)0xc000000d;
+        }
+      }
+      if (((5 < DAT_18) && ((_DAT_14022d208 & 0x400000000000) != 0)) &&
+         ((DAT_19 & 0x400000000000) == DAT_19)) {
+        local_b8 = &local_118;
+        local_b0 = 8;
+        local_a8 = &local_138;
+        local_118 = (longlong *****)0x1;
+        local_138 = (longlong *)0x2000000;
+        local_a0 = 8;
+        uVar17 = PsGetCurrentProcess();
+        local_98 = (char *)PsGetProcessImageFileName(uVar17);
+        if (local_98 == (char *)0x0) {
+          local_98 = "";
+          local_90 = 1;
+        }
+        else {
+          lVar32 = -1;
+          do {
+            lVar34 = lVar32 + 1;
+            lVar32 = lVar32 + 1;
+          } while (local_98[lVar34] != '\0');
+          local_90 = (int)lVar32 + 1;
+        }
+        local_88 = &local_130;
+        local_8c = 0;
+        local_154._4_4_ = *(uint *)(local_168 + 0x18);
+        local_78 = (undefined4 *)((longlong)&local_154 + 4);
+        local_68 = &local_128;
+        local_148 = (longlong ******)
+                    CONCAT44(local_148._4_4_,*(undefined4 *)((longlong)plVar36 + 0x6c));
+        local_58 = (longlong ******)&local_148;
+        local_130 = CONCAT44(local_130._4_4_,(int)ppppppplVar26);
+        local_80 = 4;
+        local_70 = 4;
+        local_128 = (longlong *)CONCAT44(local_128._4_4_,uVar3);
+        local_60 = 4;
+        local_50 = 4;
+        local_48 = (undefined4 *)&local_154;
+        local_198 = local_d8;
+        local_154._0_4_ = CONCAT22(local_154._2_2_,*(undefined2 *)(plVar33[5] + 4));
+        local_40 = 2;
+        _tlgWriteAgg(&DAT_18,&DAT_1401fdb58);
+        lVar32 = local_168;
+        lVar34 = local_160;
+      }
     }
   }
-LAB_4:
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+LAB_5:
+  *(uint *)((longlong)plVar36 + 0x2c) = local_158;
+  sVar2 = *(short *)(local_120[5] + 4);
+  if (sVar2 == 6) {
+    if (((plVar36[7] == 0) && (plVar36[9] == 0)) &&
+       (((*(byte *)((longlong)plVar36 + 0x2c) & 1) == 0 &&
+        (((*(byte *)((longlong)plVar36 + 0x2d) & 3) == 0 &&
+         (*(short *)((longlong)plVar36 + 0x2a) != 0)))))) goto LAB_23;
+LAB_24:
+    bVar11 = 0;
   }
   else {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
+    if ((((((sVar2 != 0x11) || (plVar36[2] != 0)) ||
+          ((*(byte *)((longlong)plVar36 + 0x2c) & 1) != 0)) ||
+         (((*(byte *)((longlong)plVar36 + 0x2d) & 2) != 0 || (plVar36[7] != 0)))) ||
+        (plVar36[9] != 0)) || (*(short *)((longlong)plVar36 + 0x2a) == 0)) goto LAB_24;
+LAB_23:
+    bVar11 = 0x10;
   }
-  if (uVar12 == 0) {
-    local_150 = *(uint *)((longlong)plVar34 + 0x2c);
+  if (((((sVar2 == 0x11) && (plVar36[3] == 0)) && (plVar36[4] == 0)) &&
+      ((plVar36[7] == 0 && (plVar36[9] == 0)))) &&
+     (((*(byte *)((longlong)plVar36 + 0x2c) & 1) == 0 &&
+      (((*(byte *)((longlong)plVar36 + 0x2d) & 2) == 0 && ((short)plVar36[5] != 0)))))) {
+    bVar12 = 0x20;
   }
   else {
-    *(uint *)((longlong)plVar34 + 0x2c) = local_150;
+    bVar12 = 0;
   }
-  sVar4 = *(short *)(plVar29[5] + 4);
-  if (sVar4 == 6) {
-    if (((plVar34[7] == 0) && (plVar34[9] == 0)) &&
-       (((*(byte *)((longlong)plVar34 + 0x2c) & 1) == 0 &&
-        (((*(byte *)((longlong)plVar34 + 0x2d) & 3) == 0 &&
-         (*(short *)((longlong)plVar34 + 0x2a) != 0)))))) goto LAB_24;
-LAB_25:
-    bVar28 = 0;
+  local_158._0_2_ = CONCAT11(local_158._1_1_ & 0xcf | bVar11 | bVar12,(byte)local_158);
+  if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
+    uVar14 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
   }
   else {
-    if ((((((sVar4 != 0x11) || (plVar34[2] != 0)) ||
-          ((*(byte *)((longlong)plVar34 + 0x2c) & 1) != 0)) ||
-         (((*(byte *)((longlong)plVar34 + 0x2d) & 2) != 0 || (plVar34[7] != 0)))) ||
-        (plVar34[9] != 0)) || (*(short *)((longlong)plVar34 + 0x2a) == 0)) goto LAB_25;
-LAB_24:
-    bVar28 = 0x10;
+    uVar14 = Feature_5988_5730__private_featureState & 1;
   }
-  if (((((sVar4 == 0x11) && (plVar34[3] == 0)) && (plVar34[4] == 0)) &&
-      ((plVar34[7] == 0 && (plVar34[9] == 0)))) &&
-     (((*(byte *)((longlong)plVar34 + 0x2c) & 1) == 0 &&
-      (((*(byte *)((longlong)plVar34 + 0x2d) & 2) == 0 && ((short)plVar34[5] != 0)))))) {
-    bVar11 = 0x20;
+  if (uVar14 == 0) {
+    if (*(short *)(local_120[5] + 4) == 0x11) {
+      bVar37 = (*(byte *)((longlong)plVar36 + 0x2c) & 0x10) == 0;
+      goto LAB_25;
+    }
+LAB_26:
+    bVar11 = 0;
   }
   else {
-    bVar11 = 0;
+    bVar37 = *(short *)(local_120[5] + 4) == 0x11;
+LAB_25:
+    if (((!bVar37) || ((*(byte *)((longlong)plVar36 + 0x2d) & 0x44) != 0)) ||
+       ((*(byte *)((longlong)plVar36 + 0x2e) & 6) != 0)) goto LAB_26;
+    bVar11 = 0x80;
   }
-  local_150._0_2_ = CONCAT11((byte)(local_150 >> 8) & 0xcf | bVar28 | bVar11,(byte)local_150);
-  if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
-    uVar12 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
+  local_158._0_3_ = CONCAT12(local_158._2_1_ & 0x7f | bVar11,(undefined2)local_158);
+  *(uint *)((longlong)plVar36 + 0x2c) = local_158;
+  KeReleaseInStackQueuedSpinLock(&local_110);
+  local_198 = (longlong *******)(param_1 + 0xe);
+  IppGetAncillaryDataLength(lVar32,plVar36,0,0);
+  local_198 = (longlong *******)((longlong)param_1 + 0x74);
+  IppGetAncillaryDataLength(lVar32,plVar36,0,1);
+  *(uint *)(param_1 + 0xb) = local_140;
+  IppDereferenceCompartment(lVar34);
+  if (-1 < (int)ppppppplVar26) {
+    return ppppppplVar26;
   }
-  else {
-    uVar12 = Feature_5988_5730__private_featureState & 1;
-  }
-  if (uVar12 == 0) {
-    if (*(short *)(plVar29[5] + 4) == 0x11) {
-      bVar36 = (*(byte *)((longlong)plVar34 + 0x2c) & 0x10) == 0;
-      goto LAB_26;
-    }
-LAB_27:
-    bVar28 = 0;
-  }
-  else {
-    bVar36 = *(short *)(plVar29[5] + 4) == 0x11;
-LAB_26:
-    if (((!bVar36) || ((*(byte *)((longlong)plVar34 + 0x2d) & 0x44) != 0)) ||
-       ((*(byte *)((longlong)plVar34 + 0x2e) & 6) != 0)) goto LAB_27;
-    bVar28 = 0x80;
-  }
-  local_150._0_3_ = CONCAT12(local_150._2_1_ & 0x7f | bVar28,(undefined2)local_150);
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  *(uint *)((longlong)plVar34 + 0x2c) = local_150;
-  KeReleaseInStackQueuedSpinLock(&local_118);
-  local_198 = (longlong *******)(param_1 + 0xe);
-  IppGetAncillaryDataLength(ppppplVar33,plVar34,0,0);
-  local_198 = (longlong *******)((longlong)param_1 + 0x74);
-  IppGetAncillaryDataLength(ppppplVar33,plVar34,0,1);
-  *(uint *)(param_1 + 0xb) = local_138;
-  IppDereferenceCompartment(lVar19);
-  if ((int)ppppppplVar27 < 0) {
-LAB_1:
-    if ((int)param_1[7] == 0xfffc) {
-      if ((DAT_28 & 2) != 0) {
-        local_198 = (longlong *******)CONCAT44(local_198._4_4_,(int)ppppppplVar27);
-        McTemplateK0qq_EtwWriteTransfer
-                  (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_IP_SESSION_SOCKET_IOCTL_FAILURE,
-                   &MICROSOFT_TCPIP_PROVIDER,*(undefined4 *)((longlong)param_1 + 0x3c));
-      }
-    }
-    else if ((DAT_28 & 2) != 0) {
-      local_190 = (undefined8 *)CONCAT44(local_190._4_4_,(int)ppppppplVar27);
-      local_198 = (longlong *******)
-                  CONCAT44(local_198._4_4_,*(undefined4 *)((longlong)param_1 + 0x3c));
-      McTemplateK0qqq_EtwWriteTransfer
-                (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_IP_SESSION_SOCKET_OPT_FAILURE,
-                 &MICROSOFT_TCPIP_PROVIDER);
+LAB_0:
+  if ((int)param_1[7] == 0xfffc) {
+    if ((DAT_27 & 2) != 0) {
+      local_198 = (longlong *******)CONCAT44(local_198._4_4_,(int)ppppppplVar26);
+      McTemplateK0qq_EtwWriteTransfer
+                (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_IP_SESSION_SOCKET_IOCTL_FAILURE,
+                 &MICROSOFT_TCPIP_PROVIDER,*(undefined4 *)((longlong)param_1 + 0x3c));
     }
   }
-  return ppppppplVar27;
-LAB_8:
+  else if ((DAT_27 & 2) != 0) {
+    local_190 = (undefined8 *)CONCAT44(local_190._4_4_,(int)ppppppplVar26);
+    local_198 = (longlong *******)
+                CONCAT44(local_198._4_4_,*(undefined4 *)((longlong)param_1 + 0x3c));
+    McTemplateK0qqq_EtwWriteTransfer
+              (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_IP_SESSION_SOCKET_OPT_FAILURE,
+               &MICROSOFT_TCPIP_PROVIDER);
+  }
+  return ppppppplVar26;
+LAB_4:
   LOCK();
-  *(int *)(plVar32 + 0x1a) = (int)plVar32[0x1a] + -1;
+  *(int *)(plVar33 + 0x1a) = (int)plVar33[0x1a] + -1;
   UNLOCK();
-  plVar32 = (longlong *)*plVar32;
-  uVar12 = (uint)local_14c;
-  if (plVar32 == local_128) goto LAB_9;
-  goto LAB_6;
+  plVar33 = (longlong *)*plVar33;
+  uVar14 = (uint)local_154;
+  if (plVar33 == local_138) goto LAB_6;
+  goto LAB_2;
 }
 

```


## KfdDispatchDevCtl

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.63|
|i_ratio|0.55|
|m_ratio|0.99|
|b_ratio|0.99|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KfdDispatchDevCtl|KfdDispatchDevCtl|
|fullname|KfdDispatchDevCtl|KfdDispatchDevCtl|
|refcount|4|4|
|`length`|4338|4402|
|`called`|<details><summary>Expand for full list:<br>FWPKCLNT.SYS::FwppBfeStateGetResetCount0<br>FWPKCLNT.SYS::FwppDispatchDevCtl0<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisGetThreadObjectCompartmentId<br>NDIS.SYS::NdisReleaseRWLock<br>NETIO.SYS::FwppLogVpnEvent<br>NETIO.SYS::IoctlKfdAbortTransaction<br>NETIO.SYS::IoctlKfdAddCache<br>NETIO.SYS::IoctlKfdAddIndex<br>NETIO.SYS::IoctlKfdBatchUpdate<br>NETIO.SYS::IoctlKfdCommitTransaction</summary>NETIO.SYS::IoctlKfdDeleteCache<br>NETIO.SYS::IoctlKfdDeleteIndex<br>NETIO.SYS::IoctlKfdQueryLayerStatistics<br>NETIO.SYS::IoctlKfdResetState<br>NETIO.SYS::IoctlKfdSetBfeEngineSd<br>NETIO.SYS::NetioInsertWorkQueue<br>NETIO.SYS::WfpDecodedBufferFreeHelper<br>NETIO.SYS::WfpNrptTriggerDecodeHelper<br>NETIO.SYS::WfpSetConfigureParametersDecodeHelper<br>NETIO.SYS::WfpSetDisconnectDecodeHelper<br>NETIO.SYS::WfpSetVpnTriggerFilePathsDecodeHelper<br>NETIO.SYS::WfpSetVpnTriggerSecurityDescriptorDecodeHelper<br>NETIO.SYS::WfpSetVpnTriggerSidsDecodeHelper<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IofCompleteRequest<br>NTOSKRNL.EXE::KeGetCurrentIrql<br>NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>WPP_SF_sD<br>WfpDestroyAppSidTable<br>WfpDestroyFilePathTable<br>WfpFreeSecurityDescriptorEntry<br>WfpSetVpnTriggerFilePaths<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpSetVpnTriggerSids<br>WfpVpnInitNrptTriggers<br>WfpVpnStartDisconnectDebounceTimer<br>WfpVpnUninitNrptTriggers</details>|<details><summary>Expand for full list:<br>FWPKCLNT.SYS::FwppBfeStateGetResetCount0<br>FWPKCLNT.SYS::FwppDispatchDevCtl0<br>Feature_Netsec_AuditMode_Hardening__private_IsEnabledDeviceUsageNoInline<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisGetThreadObjectCompartmentId<br>NDIS.SYS::NdisReleaseRWLock<br>NETIO.SYS::FwppLogVpnEvent<br>NETIO.SYS::IoctlEnableAuditMode<br>NETIO.SYS::IoctlKfdAbortTransaction<br>NETIO.SYS::IoctlKfdAddCache<br>NETIO.SYS::IoctlKfdAddIndex</summary>NETIO.SYS::IoctlKfdBatchUpdate<br>NETIO.SYS::IoctlKfdCommitTransaction<br>NETIO.SYS::IoctlKfdDeleteCache<br>NETIO.SYS::IoctlKfdDeleteIndex<br>NETIO.SYS::IoctlKfdQueryLayerStatistics<br>NETIO.SYS::IoctlKfdResetState<br>NETIO.SYS::IoctlKfdSetBfeEngineSd<br>NETIO.SYS::NetioInsertWorkQueue<br>NETIO.SYS::WfpDecodedBufferFreeHelper<br>NETIO.SYS::WfpNrptTriggerDecodeHelper<br>NETIO.SYS::WfpSetConfigureParametersDecodeHelper<br>NETIO.SYS::WfpSetDisconnectDecodeHelper<br>NETIO.SYS::WfpSetVpnTriggerFilePathsDecodeHelper<br>NETIO.SYS::WfpSetVpnTriggerSecurityDescriptorDecodeHelper<br>NETIO.SYS::WfpSetVpnTriggerSidsDecodeHelper<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IofCompleteRequest<br>NTOSKRNL.EXE::KeGetCurrentIrql<br>NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>WPP_SF_sD<br>WfpDestroyAppSidTable<br>WfpDestroyFilePathTable<br>WfpFreeSecurityDescriptorEntry<br>WfpSetVpnTriggerFilePaths<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpSetVpnTriggerSids<br>WfpVpnInitNrptTriggers<br>WfpVpnStartDisconnectDebounceTimer<br>WfpVpnUninitNrptTriggers</details>|
|calling|||
|paramcount|0|0|
|`address`|140144e00|140144410|
|sig|undefined KfdDispatchDevCtl(void)|undefined KfdDispatchDevCtl(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### KfdDispatchDevCtl Called Diff


```diff
--- KfdDispatchDevCtl called
+++ KfdDispatchDevCtl called
@@ -2,0 +3 @@
+Feature_Netsec_AuditMode_Hardening__private_IsEnabledDeviceUsageNoInline
@@ -6,0 +8 @@
+NETIO.SYS::IoctlEnableAuditMode
```


### KfdDispatchDevCtl Diff


```diff
--- KfdDispatchDevCtl
+++ KfdDispatchDevCtl
@@ -1,740 +1,755 @@
 
-/* WARNING: Removing unreachable block (ram,0x000140145a80) */
+/* WARNING: Removing unreachable block (ram,0x0001401450d2) */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 int KfdDispatchDevCtl(undefined8 param_1,longlong param_2)
 
 {
-  uint uVar1;
-  int *piVar2;
+  int *piVar1;
+  undefined8 *puVar2;
   undefined8 *puVar3;
-  undefined8 *puVar4;
-  undefined4 *puVar5;
-  uint ****ppppuVar6;
-  code *pcVar7;
-  undefined4 uVar8;
-  undefined8 uVar9;
-  undefined4 uVar10;
-  longlong *plVar11;
-  char cVar12;
+  undefined4 *puVar4;
+  uint ****ppppuVar5;
+  code *pcVar6;
+  undefined4 uVar7;
+  undefined8 uVar8;
+  undefined4 uVar9;
+  longlong *plVar10;
+  char cVar11;
+  int iVar12;
   int iVar13;
-  int iVar14;
+  uint uVar14;
   uint *puVar15;
   longlong lVar16;
   uint uVar17;
   uint *****pppppuVar19;
   uint ****ppppuVar20;
   undefined1 *puVar21;
   undefined1 *puVar22;
   undefined1 *puVar23;
   undefined1 *puVar24;
   ulonglong uVar25;
   undefined1 *puVar26;
   undefined4 uVar27;
   uint ****local_res10;
   uint ****local_res18;
   uint ****local_res20;
   undefined1 auStack_e8 [8];
   undefined1 auStack_e0 [24];
   longlong local_c8;
   undefined8 local_b8;
   undefined8 uStack_b0;
   undefined8 local_a8;
   longlong lStack_a0;
   undefined8 local_98;
   undefined8 uStack_90;
   uint ***local_88;
   uint ***pppuStack_80;
   undefined8 local_78;
   undefined8 uStack_70;
   undefined8 local_68;
   undefined8 uStack_60;
   undefined8 local_58;
   undefined8 uStack_50;
   undefined8 local_48;
   undefined8 uStack_40;
   uint *****pppppuVar18;
   
   puVar21 = auStack_e8;
   puVar22 = auStack_e8;
   puVar24 = auStack_e8;
   puVar23 = auStack_e8;
   lVar16 = *(longlong *)(param_2 + 0xb8);
   puVar26 = *(undefined1 **)(param_2 + 0x18);
-  iVar14 = 0;
+  iVar13 = 0;
   uVar25 = (ulonglong)*(uint *)(lVar16 + 8);
   uVar27 = *(undefined4 *)(lVar16 + 0x10);
   *(ulonglong *)(param_2 + 0x38) = uVar25;
-  uVar1 = *(uint *)(lVar16 + 0x18);
-  iVar13 = NdisGetThreadObjectCompartmentId(SystemReserved1[0xf]);
+  uVar14 = *(uint *)(lVar16 + 0x18);
+  iVar12 = NdisGetThreadObjectCompartmentId(SystemReserved1[0xf]);
   pppppuVar19 = (uint *****)0x0;
-  if (iVar13 != 1) {
+  if (iVar12 != 1) {
     puVar15 = &gFwppContainerAllowedIoctls;
     pppppuVar18 = pppppuVar19;
     do {
-      if (*puVar15 == uVar1) goto LAB_0;
+      if (*puVar15 == uVar14) goto LAB_0;
       uVar17 = (int)pppppuVar18 + 1;
       pppppuVar18 = (uint *****)(ulonglong)uVar17;
       puVar15 = puVar15 + 1;
-    } while (uVar17 < 0xc);
+    } while (uVar17 < 0xd);
     *(undefined4 *)(param_2 + 0x30) = 0;
     puVar24 = auStack_e8;
     goto LAB_1;
   }
 LAB_0:
-  if (uVar1 < 0x128005) {
-    if (uVar1 == 0x128004) {
-      iVar14 = IoctlKfdAddIndex(puVar26,uVar27,param_2 + 0x38,param_2);
+  if (uVar14 < 0x128005) {
+    if (uVar14 == 0x128004) {
+      iVar13 = IoctlKfdAddIndex(puVar26,uVar27,param_2 + 0x38,param_2);
       puVar23 = auStack_e8;
-      if (-1 < iVar14) {
-        *(int *)(param_2 + 0x30) = iVar14;
+      if (-1 < iVar13) {
+        *(int *)(param_2 + 0x30) = iVar13;
         puVar24 = auStack_e8;
         goto LAB_1;
       }
     }
     else {
-      if (uVar1 == 0x124044) goto switchD_140144f22_caseD_12801c;
-      if (((uVar1 != 0x124048) && (uVar1 != 0x12404c)) && (uVar1 != 0x124050))
-      goto switchD_140144f22_caseD_128009;
-      iVar14 = IoctlKfdSetBfeEngineSd(uVar1,puVar26,uVar27);
+      if (uVar14 == 0x124044) goto switchD_140144534_caseD_12801c;
+      if (((uVar14 != 0x124048) && (uVar14 != 0x12404c)) && (uVar14 != 0x124050))
+      goto switchD_140144534_caseD_128009;
+      iVar13 = IoctlKfdSetBfeEngineSd(uVar14,puVar26,uVar27);
       puVar23 = auStack_e8;
-      if (-1 < iVar14) {
-        *(int *)(param_2 + 0x30) = iVar14;
+      if (-1 < iVar13) {
+        *(int *)(param_2 + 0x30) = iVar13;
         puVar24 = auStack_e8;
         goto LAB_1;
       }
     }
     goto LAB_2;
   }
-  switch(uVar1) {
+  switch(uVar14) {
   case 0x128008:
-    iVar14 = IoctlKfdDeleteIndex(puVar26,uVar27,param_2 + 0x38,param_2);
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = IoctlKfdDeleteIndex(puVar26,uVar27,param_2 + 0x38,param_2);
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       goto LAB_1;
     }
     break;
   default:
-switchD_140144f22_caseD_128009:
-    iVar14 = -0x3ffffff3;
+switchD_140144534_caseD_128009:
     *(undefined4 *)(param_2 + 0x30) = 0xc000000d;
+    iVar13 = -0x3ffffff3;
     puVar23 = auStack_e8;
     goto LAB_3;
   case 0x128018:
-    iVar14 = IoctlKfdBatchUpdate(puVar26,uVar27,param_2 + 0x38,param_2);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = IoctlKfdBatchUpdate(puVar26,uVar27,param_2 + 0x38,param_2);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x12801c:
   case 0x128020:
   case 0x128040:
   case 0x128084:
-switchD_140144f22_caseD_12801c:
+switchD_140144534_caseD_12801c:
     local_c8 = param_2;
-    iVar14 = FwppDispatchDevCtl0(uVar1,puVar26,uVar27,param_2 + 0x38);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = FwppDispatchDevCtl0(uVar14,puVar26,uVar27,param_2 + 0x38);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x128028:
-    iVar14 = IoctlKfdAddCache(puVar26,uVar27,param_2 + 0x38,param_2);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = IoctlKfdAddCache(puVar26,uVar27,param_2 + 0x38,param_2);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x12802c:
-    iVar14 = IoctlKfdDeleteCache(puVar26,uVar27,param_2 + 0x38,param_2);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = IoctlKfdDeleteCache(puVar26,uVar27,param_2 + 0x38,param_2);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x128030:
-    iVar14 = IoctlKfdCommitTransaction(puVar26,uVar25,param_2 + 0x38,param_2);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = IoctlKfdCommitTransaction(puVar26,uVar25,param_2 + 0x38,param_2);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x128034:
-    iVar14 = IoctlKfdAbortTransaction(puVar26,uVar27,param_2 + 0x38,param_2);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar13 = IoctlKfdAbortTransaction(puVar26,uVar27,param_2 + 0x38,param_2);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x128038:
-    iVar14 = IoctlKfdQueryLayerStatistics(puVar26,uVar25,param_2 + 0x38,param_2);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
+    iVar13 = IoctlKfdQueryLayerStatistics(puVar26,uVar25,param_2 + 0x38,param_2);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
       *(undefined4 *)(puVar26 + 0x10) = DAT_4;
       *(undefined4 *)(puVar26 + 0x14) = DAT_5;
       *(undefined4 *)(puVar26 + 0x18) = DAT_6;
       *(undefined4 *)(puVar26 + 0x1c) = DAT_7;
-      *(int *)(puVar26 + 0x30) = DAT_8 + _DAT_140230274;
-      *(int *)(puVar26 + 0x34) = DAT_9 + _DAT_140230278;
+      *(int *)(puVar26 + 0x30) = DAT_8 + _DAT_140230264;
+      *(int *)(puVar26 + 0x34) = DAT_9 + _DAT_140230268;
       *(undefined4 *)(puVar26 + 0x20) = DAT_10;
       *(undefined4 *)(puVar26 + 0x24) = DAT_11;
       *(undefined4 *)(puVar26 + 0x28) = DAT_12;
       *(undefined4 *)(puVar26 + 0x2c) = DAT_13;
-      *(int *)(puVar26 + 0x38) = DAT_14 + _DAT_140230298;
-      *(int *)(puVar26 + 0x3c) = DAT_15 + _DAT_14023029c;
-      uVar9 = DAT_16;
+      *(int *)(puVar26 + 0x38) = DAT_14 + _DAT_140230288;
+      *(int *)(puVar26 + 0x3c) = DAT_15 + _DAT_14023028c;
+      uVar8 = DAT_16;
       *(undefined8 *)(puVar26 + 0x40) = DAT_17;
-      *(undefined8 *)(puVar26 + 0x48) = uVar9;
-      uVar9 = DAT_18;
+      *(undefined8 *)(puVar26 + 0x48) = uVar8;
+      uVar8 = DAT_18;
       *(undefined8 *)(puVar26 + 0x50) = DAT_19;
-      *(undefined8 *)(puVar26 + 0x58) = uVar9;
-      uVar9 = DAT_20;
+      *(undefined8 *)(puVar26 + 0x58) = uVar8;
+      uVar8 = DAT_20;
       *(undefined8 *)(puVar26 + 0x60) = DAT_21;
-      *(undefined8 *)(puVar26 + 0x68) = uVar9;
-      uVar9 = DAT_22;
+      *(undefined8 *)(puVar26 + 0x68) = uVar8;
+      uVar8 = DAT_22;
       *(undefined8 *)(puVar26 + 0x70) = DAT_23;
-      *(undefined8 *)(puVar26 + 0x78) = uVar9;
-      uVar9 = DAT_24;
+      *(undefined8 *)(puVar26 + 0x78) = uVar8;
+      uVar8 = DAT_24;
       *(undefined8 *)(puVar26 + 0x80) = DAT_25;
-      *(undefined8 *)(puVar26 + 0x88) = uVar9;
-      uVar9 = _DAT_26;
+      *(undefined8 *)(puVar26 + 0x88) = uVar8;
+      uVar8 = _DAT_26;
       *(undefined8 *)(puVar26 + 0x90) = DAT_27;
-      *(undefined8 *)(puVar26 + 0x98) = uVar9;
-      uVar9 = _DAT_28;
+      *(undefined8 *)(puVar26 + 0x98) = uVar8;
+      uVar8 = _DAT_28;
       *(undefined8 *)(puVar26 + 0xa0) = _DAT_29;
-      *(undefined8 *)(puVar26 + 0xa8) = uVar9;
-      uVar9 = _DAT_30;
+      *(undefined8 *)(puVar26 + 0xa8) = uVar8;
+      uVar8 = _DAT_30;
       *(undefined8 *)(puVar26 + 0xb0) = _DAT_31;
-      *(undefined8 *)(puVar26 + 0xb8) = uVar9;
-      uVar9 = _DAT_32;
+      *(undefined8 *)(puVar26 + 0xb8) = uVar8;
+      uVar8 = _DAT_32;
       *(undefined8 *)(puVar26 + 0xc0) = _DAT_33;
-      *(undefined8 *)(puVar26 + 200) = uVar9;
-      uVar10 = uRam0000000140230344;
+      *(undefined8 *)(puVar26 + 200) = uVar8;
       uVar8 = _DAT_34;
+      *(undefined8 *)(puVar26 + 0xd0) = _DAT_35;
+      *(undefined8 *)(puVar26 + 0xd8) = uVar8;
+      uVar9 = uRam0000000140230344;
+      uVar7 = _DAT_36;
       uVar27 = uRam000000014023033c;
-      *(undefined4 *)(puVar26 + 0xd0) = _DAT_35;
-      *(undefined4 *)(puVar26 + 0xd4) = uVar27;
-      *(undefined4 *)(puVar26 + 0xd8) = uVar8;
-      *(undefined4 *)(puVar26 + 0xdc) = uVar10;
-      uVar9 = _DAT_36;
-      *(undefined8 *)(puVar26 + 0xe0) = _DAT_37;
-      *(undefined8 *)(puVar26 + 0xe8) = uVar9;
-      *(int *)(param_2 + 0x30) = iVar14;
+      *(undefined4 *)(puVar26 + 0xe0) = _DAT_37;
+      *(undefined4 *)(puVar26 + 0xe4) = uVar27;
+      *(undefined4 *)(puVar26 + 0xe8) = uVar7;
+      *(undefined4 *)(puVar26 + 0xec) = uVar9;
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x12803c:
-    iVar13 = FwppBfeStateGetResetCount0();
-    if ((iVar13 == 1) ||
-       (iVar14 = IoctlKfdResetState(puVar26,uVar25,param_2 + 0x38,param_2), puVar23 = auStack_e8,
-       -1 < iVar14)) {
-      *(int *)(param_2 + 0x30) = iVar14;
+    iVar12 = FwppBfeStateGetResetCount0();
+    if ((iVar12 == 1) ||
+       (iVar13 = IoctlKfdResetState(puVar26,uVar25,param_2 + 0x38,param_2), puVar23 = auStack_e8,
+       -1 < iVar13)) {
+      *(int *)(param_2 + 0x30) = iVar13;
       puVar24 = auStack_e8;
       goto LAB_1;
     }
     break;
   case 0x128058:
     local_res10 = (uint ****)0x0;
-    iVar14 = WfpSetVpnTriggerSidsDecodeHelper(puVar26,uVar27,&local_res10);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      iVar14 = WfpSetVpnTriggerSids(*(uint *)local_res10,local_res10[1],param_2 + 0x38);
+    iVar13 = WfpSetVpnTriggerSidsDecodeHelper(puVar26,uVar27,&local_res10);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      iVar13 = WfpSetVpnTriggerSids(*(uint *)local_res10,local_res10[1],param_2 + 0x38);
       pppppuVar19 = (uint *****)local_res10;
 LAB_38:
-      *(undefined8 *)(puVar22 + -8) = 0x140145ea5;
+      *(undefined8 *)(puVar22 + -8) = 0x1401454f5;
       WfpDecodedBufferFreeHelper(pppppuVar19);
       puVar23 = puVar22;
     }
     break;
   case 0x12805c:
     *(undefined8 *)(param_2 + 0x38) = 0;
     local_res10 = (uint ****)((ulonglong)local_res10._3_5_ << 0x18);
-    cVar12 = KeGetCurrentIrql();
-    if (cVar12 == '\x02') {
+    cVar11 = KeGetCurrentIrql();
+    if (cVar11 == '\x02') {
       NdisAcquireRWLockWrite();
     }
     else {
       NdisAcquireRWLockWrite(appSidTableLock,&local_res10,0);
       if (gWfpPerProContext != 0) {
-        iVar13 = KeGetCurrentProcessorNumberEx(0);
-        puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-        *(undefined8 *)(puVar5 + 2) = _DAT_39;
-        *puVar5 = 4;
+        iVar12 = KeGetCurrentProcessorNumberEx(0);
+        puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+        *(undefined8 *)(puVar4 + 2) = _DAT_39;
+        *puVar4 = 4;
       }
     }
     lVar16 = appSidTable;
     appSidTable = 0;
     numAppSidTableEntries = 0;
     if (gWfpPerProContext != 0) {
-      iVar13 = KeGetCurrentProcessorNumberEx(0);
-      piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-      if (*piVar2 == 4) {
-        *piVar2 = 0;
+      iVar12 = KeGetCurrentProcessorNumberEx(0);
+      piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+      if (*piVar1 == 4) {
+        *piVar1 = 0;
       }
     }
     NdisReleaseRWLock(appSidTableLock,&local_res10);
     if (lVar16 != 0) {
-      cVar12 = KeGetCurrentIrql();
-      if (cVar12 == '\x02') {
+      cVar11 = KeGetCurrentIrql();
+      if (cVar11 == '\x02') {
         NdisAcquireRWLockWrite();
       }
       else {
         NdisAcquireRWLockWrite(vpnTriggerLock,&local_res10,0);
         if (gWfpPerProContext != 0) {
-          iVar13 = KeGetCurrentProcessorNumberEx(0);
-          puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-          *(undefined8 *)(puVar5 + 2) = _DAT_39;
-          *puVar5 = 4;
+          iVar12 = KeGetCurrentProcessorNumberEx(0);
+          puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+          *(undefined8 *)(puVar4 + 2) = _DAT_39;
+          *puVar4 = 4;
         }
       }
       WfpDestroyAppSidTable(lVar16);
 LAB_40:
       if (globalTriggerCount == 0) {
 LAB_41:
         WfpVpnStartDisconnectDebounceTimer();
       }
       goto LAB_42;
     }
     goto LAB_43;
   case 0x128060:
     local_res10 = (uint ****)0x0;
-    iVar14 = WfpSetVpnTriggerFilePathsDecodeHelper(puVar26,uVar27,&local_res10);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      iVar14 = WfpSetVpnTriggerFilePaths(*(uint *)local_res10,local_res10[1],param_2 + 0x38);
+    iVar13 = WfpSetVpnTriggerFilePathsDecodeHelper(puVar26,uVar27,&local_res10);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      iVar13 = WfpSetVpnTriggerFilePaths(*(uint *)local_res10,local_res10[1],param_2 + 0x38);
       pppppuVar19 = (uint *****)local_res10;
       puVar22 = auStack_e8;
       goto LAB_38;
     }
     break;
   case 0x128064:
     *(undefined8 *)(param_2 + 0x38) = 0;
     local_res10 = (uint ****)((ulonglong)local_res10._3_5_ << 0x18);
-    cVar12 = KeGetCurrentIrql();
-    if (cVar12 == '\x02') {
+    cVar11 = KeGetCurrentIrql();
+    if (cVar11 == '\x02') {
       NdisAcquireRWLockWrite();
     }
     else {
       NdisAcquireRWLockWrite(filePathTableLock,&local_res10,0);
       if (gWfpPerProContext != 0) {
-        iVar13 = KeGetCurrentProcessorNumberEx(0);
-        puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-        *(undefined8 *)(puVar5 + 2) = _DAT_39;
-        *puVar5 = 4;
+        iVar12 = KeGetCurrentProcessorNumberEx(0);
+        puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+        *(undefined8 *)(puVar4 + 2) = _DAT_39;
+        *puVar4 = 4;
       }
     }
     lVar16 = filePathTable;
     filePathTable = 0;
     numFilePathTableEntries = 0;
     if (gWfpPerProContext != 0) {
-      iVar13 = KeGetCurrentProcessorNumberEx(0);
-      piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-      if (*piVar2 == 4) {
-        *piVar2 = 0;
+      iVar12 = KeGetCurrentProcessorNumberEx(0);
+      piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+      if (*piVar1 == 4) {
+        *piVar1 = 0;
       }
     }
     NdisReleaseRWLock(filePathTableLock,&local_res10);
     if (lVar16 != 0) {
-      cVar12 = KeGetCurrentIrql();
-      if (cVar12 == '\x02') {
+      cVar11 = KeGetCurrentIrql();
+      if (cVar11 == '\x02') {
         NdisAcquireRWLockWrite();
         WfpDestroyFilePathTable(lVar16);
       }
       else {
         NdisAcquireRWLockWrite(vpnTriggerLock,&local_res10,0);
         if (gWfpPerProContext != 0) {
-          iVar13 = KeGetCurrentProcessorNumberEx(0);
-          puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-          *(undefined8 *)(puVar5 + 2) = _DAT_39;
-          *puVar5 = 4;
+          iVar12 = KeGetCurrentProcessorNumberEx(0);
+          puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+          *(undefined8 *)(puVar4 + 2) = _DAT_39;
+          *puVar4 = 4;
         }
         WfpDestroyFilePathTable(lVar16);
       }
       goto LAB_40;
     }
     goto LAB_43;
   case 0x128068:
     local_res20 = (uint ****)0x0;
-    iVar14 = WfpSetDisconnectDecodeHelper(puVar26,uVar27,&local_res20);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      iVar14 = 0;
+    iVar13 = WfpSetDisconnectDecodeHelper(puVar26,uVar27,&local_res20);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      iVar13 = 0;
       local_b8 = 0;
       uStack_b0 = 0;
-      uVar1 = *(uint *)local_res20;
+      uVar14 = *(uint *)local_res20;
       local_res10 = (uint ****)((ulonglong)local_res10 & 0xffffffffff000000);
       *(undefined8 *)(param_2 + 0x38) = 0;
       local_a8 = 0;
       lStack_a0 = 0;
       local_98 = 0;
       uStack_90 = 0;
       local_88 = (uint ***)0x0;
       pppuStack_80 = (uint ***)0x0;
-      cVar12 = KeGetCurrentIrql();
-      if (cVar12 == '\x02') {
+      cVar11 = KeGetCurrentIrql();
+      if (cVar11 == '\x02') {
         NdisAcquireRWLockWrite();
       }
       else {
         NdisAcquireRWLockWrite(vpnTriggerLock,&local_res10,0);
         if (gWfpPerProContext != 0) {
-          iVar13 = KeGetCurrentProcessorNumberEx(0);
-          puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-          *(undefined8 *)(puVar5 + 2) = _DAT_39;
-          *puVar5 = 4;
+          iVar12 = KeGetCurrentProcessorNumberEx(0);
+          puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+          *(undefined8 *)(puVar4 + 2) = _DAT_39;
+          *puVar4 = 4;
         }
       }
       vpnConnected = 0;
-      if ((globalTriggerCount != 0) && (uVar1 != 0)) {
+      if ((globalTriggerCount != 0) && (uVar14 != 0)) {
         lVar16 = ExAllocatePool2(0x40,0x10,0x6e707641);
         if (lVar16 == 0) {
-          iVar14 = -0x3fffffe9;
+          iVar13 = -0x3fffffe9;
           if ((((undefined **)WPP_GLOBAL_Control != &WPP_GLOBAL_Control) &&
               (1 < (byte)WPP_GLOBAL_Control[0x29])) &&
              ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) != 0)) {
             local_c8 = CONCAT44(local_c8._4_4_,0xc0000017);
             WPP_SF_sD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),10,
                       &WPP_dc97c17fd6903ad537f842808d057dba_Traceguids,"ExAllocatePool2");
           }
           if ((((undefined **)WPP_GLOBAL_Control == &WPP_GLOBAL_Control) ||
               ((byte)WPP_GLOBAL_Control[0x29] < 2)) ||
              ((*(uint *)(WPP_GLOBAL_Control + 0x2c) & 0x1000) == 0)) {
-            iVar14 = -0x3fffffe9;
+            iVar13 = -0x3fffffe9;
           }
           else {
             local_c8 = CONCAT44(local_c8._4_4_,0xc0000017);
             WPP_SF_sD(*(undefined8 *)(WPP_GLOBAL_Control + 0x18),0xf,
                       &WPP_dc97c17fd6903ad537f842808d057dba_Traceguids,"WfpPoolAllocNonPaged");
           }
         }
         else {
-          iVar14 = 0;
+          iVar13 = 0;
           *(undefined4 *)(lVar16 + 8) = 0;
           if ((workItemRef & 1) == 0) {
             workItemRef = workItemRef + 2;
             LOCK();
             UNLOCK();
             NetioInsertWorkQueue(&appTriggerWorkQueue,lVar16);
             local_98 = CONCAT44(local_98._4_4_,globalTriggerCount);
             local_b8 = CONCAT44(local_b8._4_4_,0xb);
             FwppLogVpnEvent(&local_b8);
           }
           else {
             ExFreePoolWithTag(lVar16,0);
           }
         }
       }
       if (gWfpPerProContext != 0) {
-        iVar13 = KeGetCurrentProcessorNumberEx(0);
-        piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-        if (*piVar2 == 4) {
-          *piVar2 = 0;
+        iVar12 = KeGetCurrentProcessorNumberEx(0);
+        piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+        if (*piVar1 == 4) {
+          *piVar1 = 0;
         }
       }
       NdisReleaseRWLock(vpnTriggerLock,&local_res10);
       pppppuVar19 = (uint *****)local_res20;
       puVar22 = auStack_e8;
       goto LAB_38;
     }
     break;
   case 0x12806c:
     local_res10 = (uint ****)0x0;
-    iVar14 = WfpNrptTriggerDecodeHelper(puVar26,uVar27,&local_res10);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      iVar14 = WfpVpnInitNrptTriggers(local_res10,param_2 + 0x38);
+    iVar13 = WfpNrptTriggerDecodeHelper(puVar26,uVar27,&local_res10);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      iVar13 = WfpVpnInitNrptTriggers(local_res10,param_2 + 0x38);
       pppppuVar19 = (uint *****)local_res10;
       puVar22 = auStack_e8;
       goto LAB_38;
     }
     break;
   case 0x128070:
-    iVar14 = WfpVpnUninitNrptTriggers(param_2 + 0x38,0);
+    iVar13 = WfpVpnUninitNrptTriggers(param_2 + 0x38,0);
     puVar23 = auStack_e8;
     break;
   case 0x128074:
     *(undefined8 *)(param_2 + 0x38) = 0;
     local_res10 = (uint ****)((ulonglong)local_res10._3_5_ << 0x18);
-    cVar12 = KeGetCurrentIrql();
-    if (cVar12 == '\x02') {
+    cVar11 = KeGetCurrentIrql();
+    if (cVar11 == '\x02') {
       NdisAcquireRWLockWrite();
     }
     else {
       NdisAcquireRWLockWrite(vpnTriggerLock,&local_res10,0);
       if (gWfpPerProContext != 0) {
-        iVar13 = KeGetCurrentProcessorNumberEx(0);
-        puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-        *(undefined8 *)(puVar5 + 2) = _DAT_39;
-        *puVar5 = 4;
+        iVar12 = KeGetCurrentProcessorNumberEx(0);
+        puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+        *(undefined8 *)(puVar4 + 2) = _DAT_39;
+        *puVar4 = 4;
       }
     }
     lVar16 = nrptTriggerContext;
     uVar27 = 0x402316d8;
     local_78 = 0;
     uStack_70 = 0;
     local_68 = 0;
     uStack_60 = 0;
     local_58 = 0;
     uStack_50 = 0;
     local_48 = 0;
     uStack_40 = 0;
     local_b8 = 0;
     uStack_b0 = 0;
     local_a8 = 0;
     lStack_a0 = 0;
     local_98 = 0;
     uStack_90 = 0;
     local_88 = (uint ***)0x0;
     pppuStack_80 = (uint ***)0x0;
     ppppuVar20 = DAT_44;
     if ((uint *****)DAT_44 != &DAT_44) {
       do {
-        ppppuVar6 = (uint ****)*ppppuVar20;
+        ppppuVar5 = (uint ****)*ppppuVar20;
         pppppuVar19 = (uint *****)ppppuVar20[1];
-        if (((uint ****)ppppuVar6[1] != ppppuVar20) || (*pppppuVar19 != ppppuVar20))
+        if (((uint ****)ppppuVar5[1] != ppppuVar20) || (*pppppuVar19 != ppppuVar20))
         goto LAB_45;
-        *pppppuVar19 = ppppuVar6;
-        ppppuVar6[1] = (uint ***)pppppuVar19;
+        *pppppuVar19 = ppppuVar5;
+        ppppuVar5[1] = (uint ***)pppppuVar19;
         local_88 = (uint ***)(ppppuVar20 + 3);
         pppuStack_80 = (uint ***)(ppppuVar20 + 0x13);
         *(undefined1 *)(ppppuVar20 + 2) = 0;
         if (*(char *)((longlong)ppppuVar20 + 0x11) == '\0') {
           _vpnFlowTriggerCountv6 = _vpnFlowTriggerCountv6 + -1;
-          uVar8 = 0x1c;
+          uVar7 = 0x1c;
         }
         else {
           _vpnFlowTriggerCountv4 = _vpnFlowTriggerCountv4 + -1;
-          uVar8 = 0x10;
+          uVar7 = 0x10;
         }
         local_b8 = CONCAT44(local_b8._4_4_,10);
         uStack_90 = CONCAT71(uStack_90._1_7_,*(undefined1 *)((longlong)ppppuVar20 + 0x12));
         local_res18 = (uint ****)((ulonglong)local_res18 & 0xffffffffff000000);
         globalTriggerCount = globalTriggerCount + -1;
-        local_98 = CONCAT44(uVar8,globalTriggerCount);
+        local_98 = CONCAT44(uVar7,globalTriggerCount);
         FwppLogVpnEvent(&local_b8);
         if (globalTriggerCount == 0) {
           _DAT_46 = _DAT_fffff78000000008;
           WfpVpnStartDisconnectDebounceTimer();
         }
-        ppppuVar20 = ppppuVar6;
-      } while ((uint *****)ppppuVar6 != &DAT_44);
+        ppppuVar20 = ppppuVar5;
+      } while ((uint *****)ppppuVar5 != &DAT_44);
     }
     if (nrptRefCount == 1) {
       nrptRefCount = 0;
       local_res18 = (uint ****)((ulonglong)local_res18 & 0xffffffffff000000);
       globalTriggerCount = globalTriggerCount + -1;
       *(undefined1 *)(lVar16 + 0xd1) = 1;
       local_58 = CONCAT44(local_58._4_4_,globalTriggerCount);
       local_78 = CONCAT44(local_78._4_4_,8);
       FwppLogVpnEvent(&local_78);
       if (globalTriggerCount == 0) {
         _DAT_46 = _DAT_fffff78000000008;
         goto LAB_41;
       }
     }
 LAB_42:
     if (gWfpPerProContext != 0) {
-      iVar13 = KeGetCurrentProcessorNumberEx(0);
-      piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-      if (*piVar2 == 4) {
-        *piVar2 = 0;
+      iVar12 = KeGetCurrentProcessorNumberEx(0);
+      piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+      if (*piVar1 == 4) {
+        *piVar1 = 0;
       }
     }
     NdisReleaseRWLock(vpnTriggerLock,&local_res10);
     goto LAB_43;
   case 0x128078:
-    goto switchD_140144f22_caseD_128078;
+    goto switchD_140144534_caseD_128078;
   case 0x12807c:
     local_res10 = (uint ****)0x0;
-    iVar14 = WfpSetVpnTriggerSecurityDescriptorDecodeHelper(puVar26,uVar27,&local_res10);
-    puVar23 = auStack_e8;
-    if (-1 < iVar14) {
-      iVar14 = WfpSetVpnTriggerSecurityDescriptor((*local_res10)[1],local_res10[1],param_2 + 0x38);
+    iVar13 = WfpSetVpnTriggerSecurityDescriptorDecodeHelper(puVar26,uVar27,&local_res10);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      iVar13 = WfpSetVpnTriggerSecurityDescriptor((*local_res10)[1],local_res10[1],param_2 + 0x38);
       pppppuVar19 = (uint *****)local_res10;
       puVar22 = auStack_e8;
       goto LAB_38;
     }
     break;
   case 0x128080:
     *(undefined8 *)(param_2 + 0x38) = 0;
     local_res10 = (uint ****)((ulonglong)local_res10._3_5_ << 0x18);
     local_b8 = 0;
     uStack_b0 = 0;
     local_a8 = 0;
     lStack_a0 = 0;
     local_98 = 0;
     uStack_90 = 0;
     local_88 = (uint ***)0x0;
     pppuStack_80 = (uint ***)0x0;
-    cVar12 = KeGetCurrentIrql();
-    if (cVar12 == '\x02') {
+    cVar11 = KeGetCurrentIrql();
+    if (cVar11 == '\x02') {
       NdisAcquireRWLockWrite();
     }
     else {
       NdisAcquireRWLockWrite(DAT_47,&local_res10,0);
       if (gWfpPerProContext != 0) {
-        iVar13 = KeGetCurrentProcessorNumberEx(0);
-        puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-        *(undefined8 *)(puVar5 + 2) = _DAT_39;
-        *puVar5 = 4;
-      }
-    }
-    plVar11 = DAT_48;
+        iVar12 = KeGetCurrentProcessorNumberEx(0);
+        puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+        *(undefined8 *)(puVar4 + 2) = _DAT_39;
+        *puVar4 = 4;
+      }
+    }
+    plVar10 = DAT_48;
     DAT_48 = (longlong *)0x0;
     if (gWfpPerProContext != 0) {
-      iVar13 = KeGetCurrentProcessorNumberEx(0);
-      piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-      if (*piVar2 == 4) {
-        *piVar2 = 0;
+      iVar12 = KeGetCurrentProcessorNumberEx(0);
+      piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+      if (*piVar1 == 4) {
+        *piVar1 = 0;
       }
     }
     NdisReleaseRWLock(DAT_47,&local_res10);
-    if (plVar11 != (longlong *)0x0) {
-      cVar12 = KeGetCurrentIrql();
+    if (plVar10 != (longlong *)0x0) {
+      cVar11 = KeGetCurrentIrql();
       pppppuVar19 = &local_res10;
-      if (cVar12 == '\x02') {
+      if (cVar11 == '\x02') {
         NdisAcquireRWLockWrite();
       }
       else {
         NdisAcquireRWLockWrite(vpnTriggerLock,pppppuVar19,0);
         if (gWfpPerProContext != 0) {
-          iVar13 = KeGetCurrentProcessorNumberEx(0);
-          puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-          *(undefined8 *)(puVar5 + 2) = _DAT_39;
-          *puVar5 = 4;
-        }
-      }
-      while ((longlong *)*plVar11 != plVar11) {
-        puVar3 = (undefined8 *)plVar11[1];
-        puVar4 = (undefined8 *)puVar3[1];
-        if (((longlong *)*puVar3 != plVar11) || ((undefined8 *)*puVar4 != puVar3))
+          iVar12 = KeGetCurrentProcessorNumberEx(0);
+          puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+          *(undefined8 *)(puVar4 + 2) = _DAT_39;
+          *puVar4 = 4;
+        }
+      }
+      while ((longlong *)*plVar10 != plVar10) {
+        puVar2 = (undefined8 *)plVar10[1];
+        puVar3 = (undefined8 *)puVar2[1];
+        if (((longlong *)*puVar2 != plVar10) || ((undefined8 *)*puVar3 != puVar2))
         goto LAB_45;
-        plVar11[1] = (longlong)puVar4;
-        *puVar4 = plVar11;
+        plVar10[1] = (longlong)puVar3;
+        *puVar3 = plVar10;
         LOCK();
-        *(int *)((longlong)plVar11 + 0x24) = *(int *)((longlong)plVar11 + 0x24) + -1;
+        *(int *)((longlong)plVar10 + 0x24) = *(int *)((longlong)plVar10 + 0x24) + -1;
         UNLOCK();
         local_b8 = CONCAT44(local_b8._4_4_,6);
-        lStack_a0 = plVar11[3];
+        lStack_a0 = plVar10[3];
         local_res18 = (uint ****)((ulonglong)local_res18 & 0xffffffffff000000);
-        cVar12 = KeGetCurrentIrql();
-        if (cVar12 == '\x02') {
+        cVar11 = KeGetCurrentIrql();
+        if (cVar11 == '\x02') {
           NdisAcquireRWLockWrite();
         }
         else {
           NdisAcquireRWLockWrite(vpnTriggerLock,&local_res18,0);
           if (gWfpPerProContext != 0) {
-            iVar13 = KeGetCurrentProcessorNumberEx(0);
-            puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-            *(undefined8 *)(puVar5 + 2) = _DAT_39;
-            *puVar5 = 4;
+            iVar12 = KeGetCurrentProcessorNumberEx(0);
+            puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+            *(undefined8 *)(puVar4 + 2) = _DAT_39;
+            *puVar4 = 4;
           }
         }
         globalTriggerCount = globalTriggerCount + -1;
         local_98 = CONCAT44(local_98._4_4_,globalTriggerCount);
         FwppLogVpnEvent(&local_b8);
         if (globalTriggerCount == 0) {
           _DAT_46 = _DAT_fffff78000000008;
           WfpVpnStartDisconnectDebounceTimer();
         }
         if (gWfpPerProContext != 0) {
-          iVar13 = KeGetCurrentProcessorNumberEx(0);
-          piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-          if (*piVar2 == 4) {
-            *piVar2 = 0;
+          iVar12 = KeGetCurrentProcessorNumberEx(0);
+          piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+          if (*piVar1 == 4) {
+            *piVar1 = 0;
           }
         }
         NdisReleaseRWLock(vpnTriggerLock);
         pppppuVar19 = (uint *****)0x0;
-        ExFreePoolWithTag(puVar3);
-      }
-      WfpFreeSecurityDescriptorEntry(plVar11);
+        ExFreePoolWithTag(puVar2);
+      }
+      WfpFreeSecurityDescriptorEntry(plVar10);
       goto LAB_40;
     }
 LAB_43:
-    iVar14 = 0;
+    iVar13 = 0;
     *(undefined4 *)(param_2 + 0x30) = 0;
     puVar24 = auStack_e8;
     goto LAB_1;
+  case 0x128088:
+    if ((Feature_Netsec_AuditMode_Hardening__private_featureState & 0x10) == 0) {
+      uVar14 = Feature_Netsec_AuditMode_Hardening__private_IsEnabledDeviceUsageNoInline();
+    }
+    else {
+      uVar14 = Feature_Netsec_AuditMode_Hardening__private_featureState & 1;
+    }
+    if (uVar14 == 0) goto switchD_140144534_caseD_128009;
+    iVar13 = IoctlEnableAuditMode(puVar26,uVar27);
+    puVar23 = auStack_e8;
+    if (-1 < iVar13) {
+      *(int *)(param_2 + 0x30) = iVar13;
+      puVar24 = auStack_e8;
+      goto LAB_1;
+    }
   }
 LAB_2:
-  *(int *)(param_2 + 0x30) = iVar14;
+  *(int *)(param_2 + 0x30) = iVar13;
   puVar24 = puVar23;
-  if (iVar14 < 0) {
+  if (iVar13 < 0) {
 LAB_3:
     *(undefined8 *)(param_2 + 0x38) = 0;
     puVar24 = puVar23;
   }
 LAB_1:
-  *(undefined8 *)(puVar24 + -8) = 0x140145ed4;
+  *(undefined8 *)(puVar24 + -8) = 0x140145524;
   IofCompleteRequest(param_2,0);
-  return iVar14;
+  return iVar13;
 LAB_45:
   puVar26 = &DAT_39;
-  pcVar7 = (code *)swi(0x29);
-  (*pcVar7)(3);
+  pcVar6 = (code *)swi(0x29);
+  (*pcVar6)(3);
   puVar21 = auStack_e0;
-switchD_140144f22_caseD_128078:
-  *(undefined8 *)(puVar21 + -8) = 0x140145d93;
+switchD_140144534_caseD_128078:
+  *(undefined8 *)(puVar21 + -8) = 0x1401453e3;
   local_res18 = (uint ****)pppppuVar19;
-  iVar14 = WfpSetConfigureParametersDecodeHelper(puVar26,uVar27,&local_res18);
+  iVar13 = WfpSetConfigureParametersDecodeHelper(puVar26,uVar27,&local_res18);
   puVar23 = puVar21;
-  if (-1 < iVar14) {
-    iVar14 = 0;
-    uVar1 = *(uint *)local_res18;
+  if (-1 < iVar13) {
+    iVar13 = 0;
+    uVar14 = *(uint *)local_res18;
     local_res10 = (uint ****)((ulonglong)local_res10 & 0xffffffffff000000);
     *(undefined8 *)(param_2 + 0x38) = 0;
-    *(undefined8 *)(puVar21 + -8) = 0x140145dbf;
-    cVar12 = KeGetCurrentIrql();
-    if (cVar12 == '\x02') {
-      *(undefined8 *)(puVar21 + -8) = 0x140145ddd;
+    *(undefined8 *)(puVar21 + -8) = 0x14014540f;
+    cVar11 = KeGetCurrentIrql();
+    if (cVar11 == '\x02') {
+      *(undefined8 *)(puVar21 + -8) = 0x14014542d;
       NdisAcquireRWLockWrite();
     }
     else {
-      *(undefined8 *)(puVar21 + -8) = 0x140145deb;
+      *(undefined8 *)(puVar21 + -8) = 0x14014543b;
       NdisAcquireRWLockWrite(vpnTriggerLock,&local_res10,0);
       if (gWfpPerProContext != 0) {
-        *(undefined8 *)(puVar21 + -8) = 0x140145e02;
-        iVar13 = KeGetCurrentProcessorNumberEx(0);
-        puVar5 = *(undefined4 **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-        *(undefined8 *)(puVar5 + 2) = _DAT_39;
-        *puVar5 = 4;
-      }
-    }
-    if (uVar1 == 0) {
-      iVar14 = -0x3ffffff3;
+        *(undefined8 *)(puVar21 + -8) = 0x140145452;
+        iVar12 = KeGetCurrentProcessorNumberEx(0);
+        puVar4 = *(undefined4 **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+        *(undefined8 *)(puVar4 + 2) = _DAT_39;
+        *puVar4 = 4;
+      }
+    }
+    if (uVar14 == 0) {
+      iVar13 = -0x3ffffff3;
     }
     else {
-      DAT_49 = (ulonglong)uVar1 * -10000000;
-      DAT_50 = uVar1;
+      DAT_49 = (ulonglong)uVar14 * -10000000;
+      DAT_50 = uVar14;
     }
     if (gWfpPerProContext != 0) {
-      *(undefined8 *)(puVar21 + -8) = 0x140145e5f;
-      iVar13 = KeGetCurrentProcessorNumberEx(0);
-      piVar2 = *(int **)((ulonglong)(uint)(iVar13 * 0x48) + gWfpPerProContext);
-      if (*piVar2 == 4) {
-        *piVar2 = 0;
-      }
-    }
-    *(undefined8 *)(puVar21 + -8) = 0x140145e92;
+      *(undefined8 *)(puVar21 + -8) = 0x1401454af;
+      iVar12 = KeGetCurrentProcessorNumberEx(0);
+      piVar1 = *(int **)((ulonglong)(uint)(iVar12 * 0x48) + gWfpPerProContext);
+      if (*piVar1 == 4) {
+        *piVar1 = 0;
+      }
+    }
+    *(undefined8 *)(puVar21 + -8) = 0x1401454e2;
     NdisReleaseRWLock(vpnTriggerLock,&local_res10);
     pppppuVar19 = (uint *****)local_res18;
     puVar22 = puVar21;
     goto LAB_38;
   }
   goto LAB_2;
 }
 

```


## Ipv6pHandleNeighborSolicitation

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.07|
|i_ratio|0.26|
|m_ratio|0.86|
|b_ratio|0.35|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv6pHandleNeighborSolicitation|Ipv6pHandleNeighborSolicitation|
|fullname|Ipv6pHandleNeighborSolicitation|Ipv6pHandleNeighborSolicitation|
|`refcount`|3|2|
|`length`|860|1059|
|`called`|<details><summary>Expand for full list:<br>FUN_1401d02ee<br>FUN_1401d0316<br>IN6_IS_ADDR_UNSPECIFIED<br>IppDereferenceLocalAddress<br>IppHandleNeighborSolicitation<br>IppPktMonToIcmpDropReason<br>Ipv6pSendNeighborAdvertisement<br>LogIcmpReceiveDrop<br>NDIS.SYS::NdisGetDataBuffer<br>NETIO.SYS::NetioPhGetNdLinkLayerOptionAddress<br>NTOSKRNL.EXE::ExAllocatePool2</summary>NetioAdvanceNetBuffer<br>NetioRetreatNetBuffer<br>__security_check_cookie</details>|<details><summary>Expand for full list:<br>CarAcquireCacheAwareReference<br>Feature_3529480505__private_IsEnabledDeviceUsageNoInline<br>IN6_IS_ADDR_UNSPECIFIED<br>IppDereferenceLocalAddress<br>IppHandleNeighborSolicitation<br>IppPktMonToIcmpDropReason<br>IppTimerUpdateNextExpirationTick<br>Ipv6pSendNeighborAdvertisement<br>LogIcmpReceiveDrop<br>NDIS.SYS::NdisGetDataBuffer<br>NETIO.SYS::NetioPhGetNdLinkLayerOptionAddress</summary>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NetioAdvanceNetBuffer<br>NetioRetreatNetBuffer<br>RtlAcquireWriteLockAtDpcLevel<br>TtInitializeTimer<br>TtStartTimerEx<br>__security_check_cookie<br>memcmp</details>|
|calling|Icmpv6ReceiveDatagrams|Icmpv6ReceiveDatagrams|
|paramcount|0|0|
|`address`|14009bf04|140148fa4|
|sig|undefined Ipv6pHandleNeighborSolicitation(void)|undefined Ipv6pHandleNeighborSolicitation(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv6pHandleNeighborSolicitation Called Diff


```diff
--- Ipv6pHandleNeighborSolicitation called
+++ Ipv6pHandleNeighborSolicitation called
@@ -1,2 +1,2 @@
-FUN_1401d02ee
-FUN_1401d0316
+CarAcquireCacheAwareReference
+Feature_3529480505__private_IsEnabledDeviceUsageNoInline
@@ -6,0 +7 @@
+IppTimerUpdateNextExpirationTick
@@ -11,0 +13 @@
+NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel
@@ -13,0 +16,3 @@
+RtlAcquireWriteLockAtDpcLevel
+TtInitializeTimer
+TtStartTimerEx
@@ -14,0 +20 @@
+memcmp
```


### Ipv6pHandleNeighborSolicitation Diff


```diff
--- Ipv6pHandleNeighborSolicitation
+++ Ipv6pHandleNeighborSolicitation
@@ -1,174 +1,219 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x0001401d0384) */
+/* WARNING: Removing unreachable block (ram,0x0001401492ca) */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void Ipv6pHandleNeighborSolicitation(longlong param_1,longlong param_2)
 
 {
-  undefined4 *puVar1;
-  longlong *plVar2;
-  code *pcVar3;
-  undefined1 auVar4 [16];
-  undefined4 uVar5;
+  longlong *plVar1;
+  undefined4 *puVar2;
+  longlong lVar3;
+  code *pcVar4;
+  undefined1 auVar5 [16];
   undefined4 uVar6;
-  char cVar7;
-  int iVar8;
-  longlong lVar9;
-  longlong lVar10;
+  undefined4 uVar7;
+  char cVar8;
+  int iVar9;
+  uint uVar10;
   longlong lVar11;
   longlong lVar12;
-  undefined4 uVar13;
-  undefined8 uVar14;
-  undefined1 auStack_c8 [32];
-  longlong *local_a8;
-  undefined1 *local_a0;
-  undefined4 local_98;
-  undefined4 local_90;
-  undefined4 local_88 [2];
-  longlong local_80;
-  longlong local_78;
-  longlong local_70;
-  undefined8 local_68;
-  undefined8 uStack_60;
-  undefined8 local_58;
-  undefined1 local_50 [32];
-  ulonglong local_30;
+  longlong lVar13;
+  undefined1 *puVar14;
+  undefined4 uVar15;
+  ulonglong uVar16;
+  undefined8 uVar17;
+  undefined1 auStack_e8 [8];
+  undefined1 auStack_e0 [24];
+  longlong *local_c8;
+  undefined1 *local_c0;
+  undefined4 local_b8;
+  undefined4 local_b0;
+  undefined4 local_a8 [2];
+  longlong local_a0;
+  void *local_98;
+  longlong local_90;
+  undefined8 local_88;
+  undefined8 uStack_80;
+  undefined8 local_78;
+  undefined8 local_70;
+  undefined8 uStack_68;
+  undefined8 local_60;
+  undefined1 local_58 [32];
+  ulonglong local_38;
   
-  local_30 = __security_cookie ^ (ulonglong)auStack_c8;
-  puVar1 = *(undefined4 **)(param_2 + 0x18);
-  lVar10 = *(longlong *)(*(longlong *)(param_2 + 8) + 8);
-  lVar12 = *(longlong *)(param_2 + 0xe0);
-  local_88[0] = 0;
-  lVar11 = *(longlong *)(*(longlong *)(param_2 + 0xd8) + 8);
-  plVar2 = (longlong *)**(longlong **)(*(longlong *)(param_2 + 0xd8) + 0x10);
-  local_68 = 0;
-  uStack_60 = 0;
-  local_58 = 0;
-  cVar7 = *(char *)(*(longlong *)(lVar11 + 0x30) + 2);
-  local_80 = 0;
-  local_78 = lVar11;
-  local_70 = param_1;
-  if (((*(byte *)(param_2 + 0xb8) & 8) != 0) || ((*(byte *)(param_2 + 0xbb) & 1) != 0)) {
-    local_90 = 0xe0004244;
-    iVar8 = 0x2a;
-    goto LAB_0;
-  }
-  if (*(char *)(*(longlong *)(param_2 + 0x118) + 7) != -1) {
-    local_90 = 0xe00041c9;
-    iVar8 = 0x11;
-    goto LAB_0;
-  }
-  if (*(char *)(param_1 + 1) != '\0') {
-    local_90 = 0xe00041ca;
-    iVar8 = 0x12;
-    goto LAB_0;
-  }
-  if (*(uint *)(lVar10 + 0x18) < 0x18) {
-    local_90 = 0xe00041cb;
-    iVar8 = 0xf;
-    goto LAB_0;
-  }
-  local_a8 = (longlong *)((ulonglong)local_a8 & 0xffffffff00000000);
-  lVar9 = NdisGetDataBuffer(lVar10,0x18,&local_68);
-  if (*(char *)(lVar9 + 8) == -1) {
-    local_90 = 0xe00041cc;
-LAB_1:
-    iVar8 = 0x20;
+  puVar14 = auStack_e8;
+  local_38 = __security_cookie ^ (ulonglong)auStack_e8;
+  puVar2 = *(undefined4 **)(param_2 + 0x18);
+  lVar12 = *(longlong *)(*(longlong *)(param_2 + 8) + 8);
+  lVar13 = *(longlong *)(param_2 + 0xe0);
+  local_a8[0] = 0;
+  lVar3 = *(longlong *)(*(longlong *)(param_2 + 0xd8) + 8);
+  local_98 = (void *)**(undefined8 **)(*(longlong *)(param_2 + 0xd8) + 0x10);
+  local_60 = 0;
+  local_70 = 0;
+  uStack_68 = 0;
+  cVar8 = *(char *)(*(longlong *)(lVar3 + 0x30) + 2);
+  local_a0 = 0;
+  local_90 = param_1;
+  if (((*(byte *)(param_2 + 0xb8) & 8) == 0) && ((*(byte *)(param_2 + 0xbb) & 1) == 0)) {
+    if (*(char *)(*(longlong *)(param_2 + 0x118) + 7) == -1) {
+      if (*(char *)(param_1 + 1) == '\0') {
+        if (*(uint *)(lVar12 + 0x18) < 0x18) {
+          local_b0 = 0xe00041cb;
+          iVar9 = 0xf;
+        }
+        else {
+          local_c8 = (longlong *)((ulonglong)local_c8 & 0xffffffff00000000);
+          lVar11 = NdisGetDataBuffer(lVar12,0x18,&local_70);
+          if (*(char *)(lVar11 + 8) == -1) {
+            local_b0 = 0xe00041cc;
+LAB_0:
+            iVar9 = 0x20;
+          }
+          else {
+            NetioAdvanceNetBuffer(lVar12,0x18);
+            if (((*(uint *)(*(longlong *)(lVar3 + 0x30) + 0x1c) & 0x210) == 0x10) && (cVar8 != '\0')
+               ) {
+              uVar17 = 1;
+            }
+            else {
+              uVar17 = 0;
+            }
+            local_c0 = local_58;
+            local_c8 = &local_a0;
+            iVar9 = NetioPhGetNdLinkLayerOptionAddress(lVar12,1,uVar17,cVar8);
+            NetioRetreatNetBuffer(lVar12,0x18);
+            if (((iVar9 + 0x80000000U & 0x80000000) == 0) && (iVar9 != -0x3ffffddb)) {
+              local_b0 = 0xe00041cd;
+              iVar9 = 0x1b;
+            }
+            else {
+              cVar8 = IN6_IS_ADDR_UNSPECIFIED(puVar2);
+              lVar12 = local_a0;
+              if (cVar8 != '\0') {
+                iVar9 = memcmp(local_98,&in6addr_solicitednodemulticastprefix,0xd);
+                if (iVar9 != 0) {
+                  local_b0 = 0xe00041ce;
+                  goto LAB_0;
+                }
+                if (lVar12 != 0) {
+                  local_b0 = 0xe00041cf;
+                  iVar9 = 0x15;
+                  goto LAB_1;
+                }
+              }
+              local_c8 = (longlong *)local_a8;
+              lVar12 = IppHandleNeighborSolicitation(lVar13,lVar12,puVar2,(char *)(lVar11 + 8));
+              if (lVar12 != 0) {
+                if ((*(int *)(lVar12 + 0x18) == 1) ||
+                   (lVar11 = ExAllocatePool2(0x40,0x48,0x61613649), lVar11 == 0)) {
+                  Ipv6pSendNeighborAdvertisement(lVar13,0,puVar2,lVar12);
+                }
+                else {
+                  *(longlong *)(lVar11 + 0x28) = lVar13;
+                  local_88 = 0;
+                  uStack_80 = 0;
+                  local_78 = 0;
+                  LOCK();
+                  plVar1 = (longlong *)(lVar13 + 0x40);
+                  lVar13 = *plVar1;
+                  *plVar1 = *plVar1 + 1;
+                  UNLOCK();
+                  puVar14 = auStack_e8;
+                  if (lVar13 + 1 < 2) {
+                    pcVar4 = (code *)swi(0x29);
+                    (*pcVar4)(0xe);
+                    puVar14 = auStack_e0;
+                  }
+                  *(longlong *)(lVar11 + 0x30) = lVar12;
+                  uVar17 = *(undefined8 *)(lVar12 + 0x20);
+                  *(undefined8 *)(puVar14 + -8) = 0x140149243;
+                  CarAcquireCacheAwareReference(uVar17,1);
+                  uVar15 = puVar2[1];
+                  uVar6 = puVar2[2];
+                  uVar7 = puVar2[3];
+                  *(undefined4 *)(lVar11 + 0x38) = *puVar2;
+                  *(undefined4 *)(lVar11 + 0x3c) = uVar15;
+                  *(undefined4 *)(lVar11 + 0x40) = uVar6;
+                  *(undefined4 *)(lVar11 + 0x44) = uVar7;
+                  *(undefined8 *)(puVar14 + -8) = 0x140149255;
+                  TtInitializeTimer(lVar11);
+                  uVar16 = _DAT_2 / 10000;
+                  auVar5._8_8_ = 0;
+                  auVar5._0_8_ = uVar16;
+                  lVar13 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar5,8);
+                  if ((Feature_3529480505__private_featureState & 0x10) == 0) {
+                    *(undefined8 *)(puVar14 + -8) = 0x1401492a4;
+                    uVar10 = Feature_3529480505__private_IsEnabledDeviceUsageNoInline();
+                  }
+                  else {
+                    uVar10 = Feature_3529480505__private_featureState & 1;
+                  }
+                  if (uVar10 != 0) {
+                    *(undefined8 *)(puVar14 + -8) = 0x1401492b8;
+                    RtlAcquireWriteLockAtDpcLevel(lVar3 + 0x178,&local_88);
+                  }
+                  IppRandomValue = IppRandomValue * 0x19660d + 0x3c6ef35f;
+                  LOCK();
+                  UNLOCK();
+                  uVar17 = *(undefined8 *)(lVar3 + 0x2c8);
+                  uVar15 = (undefined4)((uVar16 - lVar13 >> 1) + lVar13 >> 8);
+                  *(undefined8 *)(puVar14 + -8) = 0x1401492e9;
+                  iVar9 = TtStartTimerEx(uVar17,lVar11,uVar15,1);
+                  if (iVar9 != 0) {
+                    *(undefined8 *)(puVar14 + -8) = 0x1401492f6;
+                    IppTimerUpdateNextExpirationTick(uVar15,iVar9);
+                  }
+                  if ((Feature_3529480505__private_featureState & 0x10) == 0) {
+                    *(undefined8 *)(puVar14 + -8) = 0x14014930a;
+                    uVar10 = Feature_3529480505__private_IsEnabledDeviceUsageNoInline();
+                  }
+                  else {
+                    uVar10 = Feature_3529480505__private_featureState & 1;
+                  }
+                  if (uVar10 != 0) {
+                    *(undefined8 *)(puVar14 + -8) = 0x140149319;
+                    KeReleaseInStackQueuedSpinLockFromDpcLevel(&local_88);
+                  }
+                }
+                *(undefined8 *)(puVar14 + -8) = 0x140149338;
+                IppDereferenceLocalAddress(lVar12);
+                *(undefined4 *)(*(longlong *)(param_2 + 8) + 0x8c) = 0;
+                goto LAB_3;
+              }
+              iVar9 = IppPktMonToIcmpDropReason(local_a8[0]);
+              local_b0 = 0xe00041d0;
+              puVar14 = auStack_e8;
+              if (iVar9 == 0x2c) goto LAB_3;
+            }
+          }
+        }
+      }
+      else {
+        local_b0 = 0xe00041ca;
+        iVar9 = 0x12;
+      }
+    }
+    else {
+      local_b0 = 0xe00041c9;
+      iVar9 = 0x11;
+    }
   }
   else {
-    NetioAdvanceNetBuffer(lVar10,0x18);
-    if (((*(uint *)(*(longlong *)(lVar11 + 0x30) + 0x1c) & 0x210) == 0x10) && (cVar7 != '\0')) {
-      uVar14 = 1;
-    }
-    else {
-      uVar14 = 0;
-    }
-    local_a0 = local_50;
-    local_a8 = &local_80;
-    iVar8 = NetioPhGetNdLinkLayerOptionAddress(lVar10,1,uVar14,cVar7);
-    NetioRetreatNetBuffer(lVar10,0x18);
-    if (((iVar8 + 0x80000000U & 0x80000000) == 0) && (iVar8 != -0x3ffffddb)) {
-      local_90 = 0xe00041cd;
-      iVar8 = 0x1b;
-      goto LAB_0;
-    }
-    cVar7 = IN6_IS_ADDR_UNSPECIFIED(puVar1);
-    if (cVar7 != '\0') {
-      lVar10 = *plVar2 + -0x2ff;
-      if ((lVar10 == 0) && (lVar10 = (ulonglong)*(uint *)(plVar2 + 1) - 0x1000000, lVar10 == 0)) {
-        FUN_1401d02ee((ulonglong)*(byte *)((longlong)plVar2 + 0xc) - 0xff);
-        return;
-      }
-      if (lVar10 != 0) {
-        local_90 = 0xe00041ce;
-        goto LAB_1;
-      }
-      if (local_80 != 0) {
-        local_90 = 0xe00041cf;
-        iVar8 = 0x15;
-        goto LAB_0;
-      }
-    }
-    local_a8 = (longlong *)local_88;
-    lVar10 = IppHandleNeighborSolicitation(lVar12,local_80,puVar1,(char *)(lVar9 + 8));
-    if (lVar10 != 0) {
-      if ((*(int *)(lVar10 + 0x18) == 1) ||
-         (lVar11 = ExAllocatePool2(0x40,0x48,0x61613649), lVar11 == 0)) {
-        Ipv6pSendNeighborAdvertisement(lVar12,0,puVar1,lVar10);
-      }
-      else {
-        *(longlong *)(lVar11 + 0x28) = lVar12;
-        LOCK();
-        plVar2 = (longlong *)(lVar12 + 0x40);
-        lVar12 = *plVar2;
-        *plVar2 = *plVar2 + 1;
-        UNLOCK();
-        if (lVar12 + 1 < 2) {
-          pcVar3 = (code *)swi(0x29);
-          (*pcVar3)(0xe);
-          FUN_1401d0316();
-          return;
-        }
-        *(longlong *)(lVar11 + 0x30) = lVar10;
-        CarAcquireCacheAwareReference(*(undefined8 *)(lVar10 + 0x20),1);
-        uVar13 = puVar1[1];
-        uVar5 = puVar1[2];
-        uVar6 = puVar1[3];
-        *(undefined4 *)(lVar11 + 0x38) = *puVar1;
-        *(undefined4 *)(lVar11 + 0x3c) = uVar13;
-        *(undefined4 *)(lVar11 + 0x40) = uVar5;
-        *(undefined4 *)(lVar11 + 0x44) = uVar6;
-        TtInitializeTimer(lVar11);
-        auVar4._8_8_ = 0;
-        auVar4._0_8_ = _DAT_2 / 10000;
-        lVar12 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar4,8);
-        IppRandomValue = IppRandomValue * 0x19660d + 0x3c6ef35f;
-        LOCK();
-        UNLOCK();
-        uVar13 = (undefined4)((_DAT_2 / 10000 - lVar12 >> 1) + lVar12 >> 8);
-        iVar8 = TtStartTimerEx(*(undefined8 *)(local_78 + 0x2c8),lVar11,uVar13,1);
-        if (iVar8 != 0) {
-          IppTimerUpdateNextExpirationTick(uVar13,iVar8);
-        }
-      }
-      IppDereferenceLocalAddress(lVar10);
-      *(undefined4 *)(*(longlong *)(param_2 + 8) + 0x8c) = 0;
-      return;
-    }
-    iVar8 = IppPktMonToIcmpDropReason(local_88[0]);
-    local_90 = 0xe00041d0;
-    if (iVar8 == 0x2c) {
-      return;
-    }
+    local_b0 = 0xe0004244;
+    iVar9 = 0x2a;
   }
-LAB_0:
-  local_98 = 8;
+LAB_1:
+  local_b8 = 8;
   *(undefined4 *)(*(longlong *)(param_2 + 8) + 0x8c) = 0xc000021b;
-  local_a8 = (longlong *)CONCAT44(local_a8._4_4_,*(undefined4 *)(*(longlong *)(param_2 + 8) + 0x8c))
+  local_c8 = (longlong *)CONCAT44(local_c8._4_4_,*(undefined4 *)(*(longlong *)(param_2 + 8) + 0x8c))
   ;
-  local_a0 = (undefined1 *)param_2;
-  LogIcmpReceiveDrop(&Ipv6Global,0x87,*(undefined1 *)(local_70 + 1),iVar8);
+  local_c0 = (undefined1 *)param_2;
+  LogIcmpReceiveDrop(&Ipv6Global,0x87,*(undefined1 *)(local_90 + 1),iVar9);
+  puVar14 = auStack_e8;
+LAB_3:
+  *(undefined8 *)(puVar14 + -8) = 0x1401493a6;
   return;
 }
 

```


## IpNlpSuspectPathReachability

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.83|
|i_ratio|0.76|
|m_ratio|0.97|
|b_ratio|0.97|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpNlpSuspectPathReachability|IpNlpSuspectPathReachability|
|fullname|IpNlpSuspectPathReachability|IpNlpSuspectPathReachability|
|refcount|5|5|
|`length`|765|735|
|`called`|<details><summary>Expand for full list:<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppDereferenceRoute<br>IppFindAlternateRoutesForPathAtDpc<br>IppInvalidateDestinationCache<br>IppIsOffLinkRoute<br>IppSetAllRouteState<br>IppUpdateRouteDgdState<br>IppValidatePathUnderLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableReadLockAtDpcLevel<br>RtlAcquireScalableWriteLock</summary></details>|IppDereferenceRoute<br>IppFindAlternateRoutesForPathAtDpc<br>IppInvalidateDestinationCache<br>IppIsOffLinkRoute<br>IppSetAllRouteState<br>IppUpdateRouteDgdState<br>IppValidatePathUnderLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableReadLockAtDpcLevel<br>RtlAcquireScalableWriteLock|
|calling|TcpNotifyTcbDelay|TcpNotifyTcbDelay|
|paramcount|0|0|
|`address`|14012bae0|14012a430|
|sig|undefined IpNlpSuspectPathReachability(void)|undefined IpNlpSuspectPathReachability(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpNlpSuspectPathReachability Called Diff


```diff
--- IpNlpSuspectPathReachability called
+++ IpNlpSuspectPathReachability called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IpNlpSuspectPathReachability Diff


```diff
--- IpNlpSuspectPathReachability
+++ IpNlpSuspectPathReachability
@@ -1,146 +1,135 @@
 
 /* WARNING: Type propagation algorithm not settling */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 undefined8 IpNlpSuspectPathReachability(longlong *param_1,longlong param_2)
 
 {
   int *piVar1;
   longlong lVar2;
   longlong lVar3;
   undefined1 auVar4 [16];
   int iVar5;
-  ulonglong uVar6;
-  char cVar7;
-  byte bVar8;
-  uint uVar9;
+  uint uVar6;
+  ulonglong uVar7;
+  char cVar8;
+  byte bVar9;
   undefined8 uVar10;
   ulonglong uVar11;
   longlong lVar12;
   ulonglong uVar13;
   uint uVar14;
   undefined4 uVar15;
   ulonglong local_res8;
   ulonglong local_res18 [2];
   undefined8 local_58;
   undefined8 uStack_50;
   undefined8 local_48;
   
   uVar11 = 0;
   local_48 = 0;
   local_res8 = 0;
   local_res18[1] = 0;
   local_58 = 0;
   uStack_50 = 0;
   local_res18[0] = 0;
   lVar2 = **(longlong **)(*param_1 + 8);
   uVar13 = _DAT_0 / 10000;
   auVar4._8_8_ = 0;
   auVar4._0_8_ = uVar13;
   lVar12 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar4,8);
   lVar3 = *(longlong *)(lVar2 + 0x28);
   if (*(char *)(lVar3 + 0x4d20) == '\0') {
     return SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar4,0);
   }
   RtlAcquireScalableWriteLock(lVar2 + 0x340,&local_58);
   iVar5 = (int)((uVar13 - lVar12 >> 1) + lVar12 >> 8);
   *(int *)(param_1 + 4) = iVar5 + -1;
   if (((param_2 != param_1[0x18]) || (uVar13 = param_1[0x17], uVar13 == 0)) ||
-     (cVar7 = IppIsOffLinkRoute(uVar13), cVar7 == '\0')) goto LAB_1;
+     (cVar8 = IppIsOffLinkRoute(uVar13), cVar8 == '\0')) goto LAB_1;
   if (*(char *)(uVar13 + 0x9c) != '\0') {
     *(undefined8 *)(uVar13 + 0x90) = 0;
     *(undefined1 *)(uVar13 + 0x9c) = 0;
   }
   if ((*(int *)(uVar13 + 0x84) == 0) && (*(uint *)(param_1 + 0xf) < *(uint *)(uVar13 + 0x88))) {
     *(undefined2 *)(param_1 + 0xc) = 1;
   }
   if ((char)param_1[0xc] == '\0') goto LAB_1;
   if ((int)param_1[0xf] == 0) {
     *(int *)(uVar13 + 0x8c) = *(int *)(uVar13 + 0x8c) + 1;
   }
-  bVar8 = *(char *)((longlong)param_1 + 0x61) + 1;
-  *(byte *)((longlong)param_1 + 0x61) = bVar8;
+  bVar9 = *(char *)((longlong)param_1 + 0x61) + 1;
+  *(byte *)((longlong)param_1 + 0x61) = bVar9;
   if ((1 < *(byte *)(lVar3 + 0x4d21)) && (*(int *)(uVar13 + 0x84) != 2)) {
-    if (bVar8 < *(byte *)(lVar3 + 0x4d21)) {
+    if (bVar9 < *(byte *)(lVar3 + 0x4d21)) {
       *(int *)(param_1 + 0xf) = iVar5;
       goto LAB_1;
     }
     if (*(uint *)(lVar3 + 0x4d2c) < (uint)(iVar5 - (int)param_1[0xf])) {
       *(int *)(param_1 + 0xf) = iVar5;
       *(undefined1 *)((longlong)param_1 + 0x61) = 1;
       goto LAB_1;
     }
   }
   *(int *)(param_1 + 0xf) = iVar5;
   *(undefined1 *)(param_1 + 0xc) = 0;
   *(int *)(uVar13 + 0x94) = *(int *)(uVar13 + 0x94) + 1;
   IppFindAlternateRoutesForPathAtDpc(param_1,&local_res8,local_res18,local_res18 + 1);
-  uVar6 = local_res8;
-  uVar9 = SystemReserved1[0x12]._4_4_;
+  uVar7 = local_res8;
+  uVar6 = SystemReserved1[0x12]._4_4_;
   if (local_res8 == 0) goto LAB_1;
   if (local_res8 != uVar13) {
     if (*(int *)(uVar13 + 0x84) == 2) {
       uVar15 = 6;
 LAB_2:
       if (*(int *)(local_res8 + 0x84) == 0) {
         RtlAcquireScalableReadLockAtDpcLevel(lVar2 + 0x100,SystemReserved1[0x12]._4_4_);
         IppUpdateRouteDgdState(uVar13,1,1,1,uVar15);
         LOCK();
-        piVar1 = (int *)(((ulonglong)(*(uint *)(lVar2 + 0x108) & uVar9) + 1) * 0x40 + lVar2 + 0x100)
+        piVar1 = (int *)(((ulonglong)(*(uint *)(lVar2 + 0x108) & uVar6) + 1) * 0x40 + lVar2 + 0x100)
         ;
         *piVar1 = *piVar1 + -1;
         UNLOCK();
       }
       else {
         IppSetAllRouteState(uVar13);
       }
       IppInvalidateDestinationCache(**(undefined8 **)(uVar13 + 0x38));
     }
     else {
       if (*(int *)(uVar13 + 0x84) == 0) {
         uVar14 = *(int *)(uVar13 + 0x8c) + *(int *)(uVar13 + 0x90);
         if (uVar14 < 10000) {
           do {
             uVar11 = (ulonglong)((int)uVar11 + 1);
           } while (uVar14 < *(uint *)(&IpDGDThreshold + uVar11 * 8));
         }
         if ((uint)(byte)(&DAT_3)[uVar11 * 8] <=
             (uint)((*(int *)(uVar13 + 0x94) + *(int *)(uVar13 + 0x90)) * 100) / uVar14) {
           uVar15 = 4;
           goto LAB_2;
         }
       }
       if (((local_res18[0] != 0) && (local_res18[0] != uVar13)) &&
          (*(int *)(local_res18[0] + 0x84) == 0)) {
         *(byte *)(uVar13 + 0x1c) = *(byte *)(uVar13 + 0x1c) | 0x40;
         *(int *)(param_1 + 3) = (int)param_1[3] + -1;
         IppValidatePathUnderLock(param_1);
         *(byte *)(uVar13 + 0x1c) = *(byte *)(uVar13 + 0x1c) & 0xbf;
         if (param_1[0x17] != uVar13) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            *(byte *)(param_1 + 5) = *(byte *)(param_1 + 5) & 0xdf;
-          }
-          else {
-            local_res8 = CONCAT44(local_res8._4_4_,(int)param_1[5]);
-            uVar11 = local_res8;
-            local_res8._0_1_ = (undefined1)(int)param_1[5];
-            local_res8._1_7_ = SUB87(uVar11,1);
-            local_res8 = CONCAT71(local_res8._1_7_,(undefined1)local_res8) & 0xffffffffffffffdf;
-            *(undefined4 *)(param_1 + 5) = (undefined4)local_res8;
-          }
+          local_res8 = CONCAT44(local_res8._4_4_,(int)param_1[5]);
+          uVar11 = local_res8;
+          local_res8._0_1_ = (undefined1)(int)param_1[5];
+          local_res8._1_7_ = SUB87(uVar11,1);
+          local_res8 = CONCAT71(local_res8._1_7_,(undefined1)local_res8) & 0xffffffffffffffdf;
+          *(undefined4 *)(param_1 + 5) = (undefined4)local_res8;
         }
       }
     }
   }
-  IppDereferenceRoute(uVar6);
+  IppDereferenceRoute(uVar7);
 LAB_1:
   uVar10 = KeReleaseInStackQueuedSpinLock(&local_58);
   return uVar10;
 }
 

```


## IppFillIpHeaderForFastSend_scrap

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.71|
|i_ratio|0.36|
|m_ratio|0.93|
|b_ratio|0.92|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppFillIpHeaderForFastSend_scrap|IppFillIpHeaderForFastSend_scrap|
|fullname|IppFillIpHeaderForFastSend_scrap|IppFillIpHeaderForFastSend_scrap|
|`refcount`|5|3|
|`length`|652|542|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline||
|calling|IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams|IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams|
|paramcount|0|0|
|`address`|1401443f0|140143970|
|sig|undefined IppFillIpHeaderForFastSend_scrap(void)|undefined IppFillIpHeaderForFastSend_scrap(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppFillIpHeaderForFastSend_scrap Called Diff


```diff
--- IppFillIpHeaderForFastSend_scrap called
+++ IppFillIpHeaderForFastSend_scrap called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IppFillIpHeaderForFastSend_scrap Diff


```diff
--- IppFillIpHeaderForFastSend_scrap
+++ IppFillIpHeaderForFastSend_scrap
@@ -1,112 +1,103 @@
 
 void IppFillIpHeaderForFastSend_scrap
                (undefined1 *param_1,longlong param_2,longlong param_3,longlong *param_4,byte param_5
                ,ushort param_6,short param_7,undefined1 param_8,undefined1 param_9,uint param_10,
                byte param_11,char param_12,int param_13,int param_14,longlong param_15,
                uint *param_16)
 
 {
   undefined8 uVar1;
   byte bVar2;
   ushort uVar3;
   uint uVar4;
   uint uVar5;
-  uint uVar6;
-  uint *puVar7;
-  bool bVar8;
+  uint *puVar6;
   
-  uVar3 = 0;
   if (param_1 != &Ipv4Global) {
     if (param_14 < 2) {
       uVar3 = param_6 >> 8 | param_6 << 8;
     }
+    else {
+      uVar3 = 0;
+    }
     *(ushort *)(param_16 + 1) = uVar3;
-    uVar4 = 0;
-    if ((param_1[0x4d0a] != '\0') && (uVar4 = param_10, TcpipGlobalDisableRandomFlowLabel != 0)) {
-      uVar4 = *(uint *)(param_15 + 0xd0);
+    if (param_1[0x4d0a] == '\0') {
+      param_10 = 0;
+    }
+    else if (TcpipGlobalDisableRandomFlowLabel != 0) {
+      param_10 = *(uint *)(param_15 + 0xd0);
     }
     bVar2 = *(byte *)(param_2 + 0x18b) >> 5 & 3;
-    uVar5 = (uint)bVar2;
+    uVar4 = (uint)bVar2;
     if (bVar2 != 0) {
       if ((bVar2 == 3) || (param_11 != 0)) {
-        uVar5 = (uint)param_11;
+        uVar4 = (uint)param_11;
       }
       else {
-        uVar5 = (uint)bVar2;
+        uVar4 = (uint)bVar2;
         if (param_12 != '\0') {
-          uVar5 = 0;
+          uVar4 = 0;
         }
       }
     }
-    uVar5 = uVar5 & 3 | 0x600;
-    uVar6 = uVar5 << 0x14 | uVar4 & 0xfffff;
-    if ((uVar4 != 0) && ((uVar4 & 0xfffff) == 0)) {
-      uVar6 = uVar5 << 0x14 | uVar4 >> 0xc;
+    uVar4 = uVar4 & 3 | 0x600;
+    uVar5 = uVar4 << 0x14 | param_10 & 0xfffff;
+    if ((param_10 != 0) && ((param_10 & 0xfffff) == 0)) {
+      uVar5 = uVar4 << 0x14 | param_10 >> 0xc;
     }
-    *param_16 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;
+    *param_16 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
     *(undefined1 *)((longlong)param_16 + 6) = param_9;
     *(undefined1 *)((longlong)param_16 + 7) = param_8;
     uVar1 = ((undefined8 *)**(longlong **)(*param_4 + 0x10))[1];
     *(undefined8 *)(param_16 + 2) = *(undefined8 *)**(longlong **)(*param_4 + 0x10);
     *(undefined8 *)(param_16 + 4) = uVar1;
     uVar1 = ((undefined8 *)param_4[2])[1];
     *(undefined8 *)(param_16 + 6) = *(undefined8 *)param_4[2];
     *(undefined8 *)(param_16 + 8) = uVar1;
     return;
   }
+  uVar3 = 0;
   if (param_14 < 2) {
     uVar3 = (ushort)(param_6 + param_7) >> 8 | (param_6 + param_7) * 0x100;
   }
   *(byte *)((longlong)param_16 + 1) = *(byte *)((longlong)param_16 + 1) & 3;
   *(ushort *)((longlong)param_16 + 2) = uVar3;
   *(undefined1 *)(param_16 + 2) = param_8;
   *(undefined1 *)param_16 = 0x45;
   *(ushort *)((longlong)param_16 + 6) = (ushort)(param_5 >> 1 & 1) << 6;
   if ((param_3 != 0) &&
      (((*(byte *)(param_3 + 0x2d) & 8) != 0 || ((*(byte *)(param_3 + 0x2e) & 0x30) != 0)))) {
     *(ushort *)((longlong)param_16 + 6) = (ushort)(*(byte *)(param_3 + 0x2c) >> 2 & 1) << 6;
   }
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar4 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar4 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  if (uVar4 == 0) {
-    bVar8 = (*(byte *)(param_4 + 5) & 0x10) == 0;
-  }
-  else {
-    bVar8 = (*(uint *)(param_4 + 5) & 0x10) == 0;
-  }
-  if (!bVar8) {
+  if ((*(uint *)(param_4 + 5) & 0x10) != 0) {
     *(ushort *)((longlong)param_16 + 6) = *(ushort *)((longlong)param_16 + 6) & 0xffbf;
   }
   *(undefined2 *)((longlong)param_16 + 10) = 0;
   bVar2 = *(byte *)(param_2 + 0x18b) >> 5 & 3;
   if (bVar2 == 0) {
     param_11 = 0;
   }
   else if (((bVar2 != 3) && (param_11 == 0)) && (param_11 = bVar2, param_12 != '\0')) {
     param_11 = 0;
   }
   *(undefined1 *)((longlong)param_16 + 9) = param_9;
   *(byte *)((longlong)param_16 + 1) =
        (*(byte *)((longlong)param_16 + 1) ^ param_11) & 3 ^ *(byte *)((longlong)param_16 + 1);
   param_16[3] = *(uint *)**(undefined8 **)(*param_4 + 0x10);
-  puVar7 = (uint *)(param_4 + 0x10);
+  param_16[4] = *(uint *)param_4[2];
+  puVar6 = (uint *)(param_4 + 0x10);
   if (param_4 == (longlong *)0x0) {
-    puVar7 = (uint *)(param_2 + 1000);
+    puVar6 = (uint *)(param_2 + 1000);
   }
-  param_16[4] = *(uint *)param_4[2];
   do {
     LOCK();
-    uVar4 = *puVar7;
-    *puVar7 = *puVar7 + param_13;
+    uVar4 = *puVar6;
+    *puVar6 = *puVar6 + param_13;
     UNLOCK();
     if (2 < param_14) break;
   } while (0xffff < param_13 + -1 + (uVar4 & 0xffff));
   uVar3 = (ushort)uVar4;
   *(ushort *)(param_16 + 1) = uVar3 >> 8 | uVar3 << 8;
   return;
 }
 

```


## Ipv6pUpdatePathMtu

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.48|
|i_ratio|0.33|
|m_ratio|0.88|
|b_ratio|0.83|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv6pUpdatePathMtu|Ipv6pUpdatePathMtu|
|fullname|Ipv6pUpdatePathMtu|Ipv6pUpdatePathMtu|
|refcount|2|2|
|`length`|460|353|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppFindPath<br>IppGetScopeId<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableWriteLock<br>_IppDereferencePath|IppFindPath<br>IppGetScopeId<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableWriteLock<br>_IppDereferencePath|
|calling|Icmpv6pHandleError|Icmpv6pHandleError|
|paramcount|0|0|
|`address`|140148130|140147748|
|sig|undefined Ipv6pUpdatePathMtu(void)|undefined Ipv6pUpdatePathMtu(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv6pUpdatePathMtu Called Diff


```diff
--- Ipv6pUpdatePathMtu called
+++ Ipv6pUpdatePathMtu called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### Ipv6pUpdatePathMtu Diff


```diff
--- Ipv6pUpdatePathMtu
+++ Ipv6pUpdatePathMtu
@@ -1,85 +1,63 @@
 
 undefined8 Ipv6pUpdatePathMtu(longlong param_1,longlong param_2,longlong param_3)
 
 {
   longlong *plVar1;
   longlong lVar2;
   bool bVar3;
   undefined4 uVar4;
-  uint uVar5;
-  longlong lVar6;
-  char cVar7;
-  uint uVar8;
-  bool bVar9;
+  longlong lVar5;
+  byte bVar6;
+  uint uVar7;
+  byte bVar8;
   undefined4 local_res8;
   undefined8 local_48;
   undefined8 uStack_40;
   undefined8 local_38;
   
   plVar1 = *(longlong **)(param_1 + 8);
   bVar3 = false;
-  cVar7 = '\0';
-  bVar9 = false;
+  bVar6 = 0;
   lVar2 = *plVar1;
+  local_38 = 0;
   local_48 = 0;
   uStack_40 = 0;
-  local_38 = 0;
   if ((*(longlong *)**(longlong **)(param_1 + 0x10) != *(longlong *)(param_3 + 8)) ||
      (((longlong *)**(longlong **)(param_1 + 0x10))[1] != *(longlong *)(param_3 + 0x10))) {
     return 0xc000021b;
   }
   uVar4 = IppGetScopeId(plVar1,param_3 + 0x18);
-  lVar6 = IppFindPath(lVar2,0,param_3 + 0x18,uVar4,plVar1,param_1);
-  if (lVar6 == 0) {
+  lVar5 = IppFindPath(lVar2,0,param_3 + 0x18,uVar4,plVar1,param_1);
+  if (lVar5 == 0) {
     return 0xc0000225;
   }
-  uVar8 = *(uint *)(param_2 + 4);
-  uVar5 = *(uint *)(lVar6 + 0x70);
-  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
-  if (uVar8 < 0x500) {
-    if (DAT_1 == '\0') goto LAB_1401482cd;
-    cVar7 = '\x01';
-    if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-      uVar8 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar8 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-    }
-    if (uVar8 == 0) {
-      bVar9 = (*(byte *)(lVar6 + 0x28) & 0x10) == 0;
-    }
-    else {
-      bVar9 = (bool)(~((byte)*(undefined4 *)(lVar6 + 0x28) >> 4) & 1);
-    }
-    uVar8 = 0x500;
+  uVar7 = *(uint *)(param_2 + 4);
+  uVar7 = uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18;
+  if (uVar7 < 0x500) {
+    if (DAT_1 == '\0') goto LAB_14014787f;
+    bVar8 = 0x10;
+    bVar6 = ~((byte)*(undefined4 *)(lVar5 + 0x28) >> 4) & 1;
+    uVar7 = 0x500;
   }
-  if ((uVar8 < uVar5) || (bVar9 != false)) {
+  else {
+    bVar8 = 0;
+  }
+  if ((uVar7 < *(uint *)(lVar5 + 0x70)) || (bVar6 != 0)) {
     RtlAcquireScalableWriteLock(lVar2 + 0x340,&local_48);
-    if ((uVar8 < *(uint *)(lVar6 + 0x70)) || (bVar9 != false)) {
+    if ((uVar7 < *(uint *)(lVar5 + 0x70)) || (bVar6 != 0)) {
       bVar3 = true;
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar5 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar5 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar5 == 0) {
-        *(byte *)(lVar6 + 0x28) = *(byte *)(lVar6 + 0x28) & 0xef | cVar7 << 4;
-      }
-      else {
-        local_res8 = CONCAT31((int3)((uint)*(undefined4 *)(lVar6 + 0x28) >> 8),
-                              (byte)*(undefined4 *)(lVar6 + 0x28) & 0xef | cVar7 << 4);
-        *(undefined4 *)(lVar6 + 0x28) = local_res8;
-      }
-      IppUpdatePathMtu(lVar6,uVar8);
+      local_res8 = CONCAT31((int3)((uint)*(undefined4 *)(lVar5 + 0x28) >> 8),
+                            (byte)*(undefined4 *)(lVar5 + 0x28) & 0xef | bVar8);
+      *(undefined4 *)(lVar5 + 0x28) = local_res8;
+      IppUpdatePathMtu(lVar5,uVar7);
     }
     KeReleaseInStackQueuedSpinLock(&local_48);
     if (bVar3) {
-      IppUpdatePathNotification(lVar2,lVar6);
+      IppUpdatePathNotification(lVar2,lVar5);
     }
   }
 LAB_0:
-  _IppDereferencePath(lVar6);
+  _IppDereferencePath(lVar5);
   return 0;
 }
 

```


## Ipv6pPathMtuDiscoveryTimeout

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.56|
|i_ratio|0.61|
|m_ratio|0.89|
|b_ratio|0.89|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv6pPathMtuDiscoveryTimeout|Ipv6pPathMtuDiscoveryTimeout|
|fullname|Ipv6pPathMtuDiscoveryTimeout|Ipv6pPathMtuDiscoveryTimeout|
|refcount|3|3|
|`length`|214|174|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppUpdatePathMtu<br>IppUpdatePathNotification<br>Ipv6pPathMtuTimeoutFired<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableWriteLock|IppUpdatePathMtu<br>IppUpdatePathNotification<br>Ipv6pPathMtuTimeoutFired<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireScalableWriteLock|
|calling|||
|paramcount|0|0|
|`address`|140148050|140147690|
|sig|undefined Ipv6pPathMtuDiscoveryTimeout(void)|undefined Ipv6pPathMtuDiscoveryTimeout(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv6pPathMtuDiscoveryTimeout Called Diff


```diff
--- Ipv6pPathMtuDiscoveryTimeout called
+++ Ipv6pPathMtuDiscoveryTimeout called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### Ipv6pPathMtuDiscoveryTimeout Diff


```diff
--- Ipv6pPathMtuDiscoveryTimeout
+++ Ipv6pPathMtuDiscoveryTimeout
@@ -1,49 +1,35 @@
 
 void Ipv6pPathMtuDiscoveryTimeout(longlong param_1,longlong *param_2,longlong param_3)
 
 {
   undefined4 uVar1;
   longlong lVar2;
-  bool bVar3;
-  char cVar4;
-  uint uVar5;
+  char cVar3;
+  undefined4 extraout_XMM0_Da;
   uint local_res20;
   undefined8 local_38;
   undefined8 uStack_30;
   undefined8 local_28;
   
   local_38 = 0;
   uStack_30 = 0;
   local_28 = 0;
-  bVar3 = false;
-  cVar4 = Ipv6pPathMtuTimeoutFired();
-  if (cVar4 != '\0') {
+  cVar3 = Ipv6pPathMtuTimeoutFired();
+  if (cVar3 != '\0') {
     lVar2 = *param_2;
     RtlAcquireScalableWriteLock(lVar2 + 0x340,&local_38);
-    cVar4 = Ipv6pPathMtuTimeoutFired(param_1,param_2,param_3);
-    if (cVar4 != '\0') {
+    cVar3 = Ipv6pPathMtuTimeoutFired(param_1,param_2,param_3);
+    if (cVar3 != '\0') {
       uVar1 = *(undefined4 *)(param_3 + 0x5c);
-      bVar3 = true;
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar5 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar5 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar5 == 0) {
-        *(byte *)(param_1 + 0x28) = *(byte *)(param_1 + 0x28) & 0xef;
-      }
-      else {
-        local_res20 = *(uint *)(param_1 + 0x28) & 0xffffffef;
-        *(uint *)(param_1 + 0x28) = local_res20;
-      }
-      IppUpdatePathMtu(param_1,uVar1);
+      local_res20 = *(uint *)(param_1 + 0x28) & 0xffffffef;
+      *(uint *)(param_1 + 0x28) = local_res20;
+      IppUpdatePathMtu(extraout_XMM0_Da,uVar1);
     }
     KeReleaseInStackQueuedSpinLock(&local_38);
-    if (bVar3) {
+    if (cVar3 != '\0') {
       IppUpdatePathNotification(lVar2,param_1);
     }
   }
   return;
 }
 

```


## IppProcessDefaults

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.58|
|i_ratio|0.3|
|m_ratio|0.79|
|b_ratio|0.77|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppProcessDefaults|IppProcessDefaults|
|fullname|IppProcessDefaults|IppProcessDefaults|
|`refcount`|4|3|
|`length`|173|132|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline||
|`calling`|IpNlpFastContinueSendLoopbackDatagrams<br>IppInspectBuildHeaders<br>IppSendDatagramsCommon|IppInspectBuildHeaders<br>IppSendDatagramsCommon|
|paramcount|0|0|
|`address`|140144690|140143ba0|
|sig|undefined IppProcessDefaults(void)|undefined IppProcessDefaults(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppProcessDefaults Called Diff


```diff
--- IppProcessDefaults called
+++ IppProcessDefaults called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IppProcessDefaults Calling Diff


```diff
--- IppProcessDefaults calling
+++ IppProcessDefaults calling
@@ -1 +0,0 @@
-IpNlpFastContinueSendLoopbackDatagrams
```


### IppProcessDefaults Diff


```diff
--- IppProcessDefaults
+++ IppProcessDefaults
@@ -1,50 +1,32 @@
 
 void IppProcessDefaults(undefined8 param_1,short param_2,short param_3,longlong param_4)
 
 {
-  longlong lVar1;
-  byte bVar2;
-  uint uVar3;
-  bool bVar4;
+  byte bVar1;
   
   if ((param_2 != 0) && (param_3 == 6)) {
     *(byte *)(param_4 + 0x59) = *(byte *)(param_4 + 0x59) | 1;
   }
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar3 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar3 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  lVar1 = *(longlong *)(param_4 + 0xd0);
-  if (uVar3 == 0) {
-    if (lVar1 == 0) goto LAB_0;
-    bVar4 = (*(byte *)(lVar1 + 0x28) & 0x10) == 0;
-  }
-  else {
-    if (lVar1 == 0) goto LAB_0;
-    bVar4 = (*(uint *)(lVar1 + 0x28) & 0x10) == 0;
-  }
-  if (!bVar4) {
+  if ((*(longlong *)(param_4 + 0xd0) != 0) &&
+     ((*(uint *)(*(longlong *)(param_4 + 0xd0) + 0x28) & 0x10) != 0)) {
     *(byte *)(param_4 + 0x58) = *(byte *)(param_4 + 0x58) & 0xfb;
     *(byte *)(param_4 + 0x59) = *(byte *)(param_4 + 0x59) | 8;
   }
-LAB_0:
   if (*(int *)(param_4 + 0x24) == -1) {
     if (*(int *)(param_4 + 0x100) == 3) {
       *(undefined4 *)(param_4 + 0x24) = 1;
     }
     else {
-      bVar2 = *(byte *)(*(longlong *)(*(longlong *)(param_4 + 0xd8) + 8) + 0x1c0);
-      if (bVar2 == 0) {
-        bVar2 = *(byte *)(*(longlong *)(param_4 + 200) + 0x41);
+      bVar1 = *(byte *)(*(longlong *)(*(longlong *)(param_4 + 0xd8) + 8) + 0x1c0);
+      if (bVar1 == 0) {
+        bVar1 = *(byte *)(*(longlong *)(param_4 + 200) + 0x41);
       }
-      *(uint *)(param_4 + 0x24) = (uint)bVar2;
+      *(uint *)(param_4 + 0x24) = (uint)bVar1;
     }
   }
   if (*(int *)(param_4 + 0x28) == 0xff) {
     *(undefined4 *)(param_4 + 0x28) = 0;
   }
   return;
 }
 

```


## IppPacketizeDatagramsForHeaderBuild

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.31|
|i_ratio|0.34|
|m_ratio|0.82|
|b_ratio|0.79|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppPacketizeDatagramsForHeaderBuild|IppPacketizeDatagramsForHeaderBuild|
|fullname|IppPacketizeDatagramsForHeaderBuild|IppPacketizeDatagramsForHeaderBuild|
|`refcount`|12|8|
|`length`|1122|770|
|`called`|IppGetMtuFromNextHop<br>Ipv4pFillPacketChecksum<br>NDIS.SYS::NdisRetreatNetBufferDataStart<br>NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>NetioGetDataBufferIfSafe<br>_guard_dispatch_icall<br>memmove|IppBuildFirstHeader<br>IppBuildNextHeader<br>IppGetMtuFromNextHop<br>Ipv4pFillPacketChecksum<br>NDIS.SYS::NdisRetreatNetBufferDataStart<br>_guard_dispatch_icall|
|calling|IppInspectBuildHeaders|IppInspectBuildHeaders|
|paramcount|0|0|
|`address`|1400e99f0|1400b6800|
|sig|undefined IppPacketizeDatagramsForHeaderBuild(void)|undefined IppPacketizeDatagramsForHeaderBuild(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppPacketizeDatagramsForHeaderBuild Called Diff


```diff
--- IppPacketizeDatagramsForHeaderBuild called
+++ IppPacketizeDatagramsForHeaderBuild called
@@ -0,0 +1,2 @@
+IppBuildFirstHeader
+IppBuildNextHeader
@@ -4,2 +5,0 @@
-NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache
-NetioGetDataBufferIfSafe
@@ -7 +6,0 @@
-memmove
```


### IppPacketizeDatagramsForHeaderBuild Diff


```diff
--- IppPacketizeDatagramsForHeaderBuild
+++ IppPacketizeDatagramsForHeaderBuild
@@ -1,197 +1,139 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 ulonglong IppPacketizeDatagramsForHeaderBuild(longlong param_1)
 
 {
-  ushort uVar1;
-  longlong *plVar2;
-  undefined1 *puVar3;
-  uint uVar4;
+  longlong *plVar1;
+  undefined1 *puVar2;
+  uint uVar3;
+  ulonglong uVar4;
   ulonglong uVar5;
-  longlong lVar6;
-  int iVar7;
-  void *pvVar8;
-  longlong *plVar9;
-  ulonglong uVar10;
-  ulonglong uVar11;
-  void *_Src;
+  int iVar6;
+  longlong lVar7;
+  longlong *plVar8;
+  ushort uVar9;
+  longlong lVar10;
+  uint uVar11;
   uint uVar12;
   bool bVar13;
-  longlong in_stack_ffffffffffffff98;
-  uint local_54;
-  undefined1 local_50;
+  undefined1 local_60;
+  longlong local_50;
   uint local_48 [8];
   
-  uVar5 = 0;
-  _Src = (void *)0x0;
-  local_54 = 0;
-  uVar10 = 0;
-  plVar2 = *(longlong **)(*(longlong *)(param_1 + 0xd8) + 8);
-  puVar3 = *(undefined1 **)(*plVar2 + 0x28);
+  lVar7 = 0;
+  uVar4 = 0;
+  local_50 = 0;
+  uVar11 = 0;
+  plVar1 = *(longlong **)(*(longlong *)(param_1 + 0xd8) + 8);
+  puVar2 = *(undefined1 **)(*plVar1 + 0x28);
   if ((*(byte *)(param_1 + 0xb8) & 2) == 0) {
-    uVar12 = (uint)*(ushort *)(puVar3 + 0x28);
-    if (puVar3 == &Ipv4Global) {
-      uVar12 = (uint)*(ushort *)(puVar3 + 0x28) +
+    uVar12 = (uint)*(ushort *)(puVar2 + 0x28);
+    if (puVar2 == &Ipv4Global) {
+      uVar12 = (uint)*(ushort *)(puVar2 + 0x28) +
                (*(ushort *)(param_1 + 0x30) + 3 + (uint)*(ushort *)(param_1 + 0x32) & 0xfffffffc);
+      uVar11 = 0;
     }
     else {
       bVar13 = *(longlong *)(param_1 + 0x50) != 0;
       if (bVar13) {
-        uVar10 = (ulonglong)*(ushort *)(param_1 + 0x32);
+        uVar4 = (ulonglong)*(ushort *)(param_1 + 0x32);
         local_48[1] = (uint)*(ushort *)(param_1 + 0x32);
         local_48[0] = 0x2b;
       }
-      local_54 = (uint)bVar13;
-      uVar5 = (ulonglong)bVar13;
-      lVar6 = *(longlong *)(param_1 + 8);
-      plVar9 = *(longlong **)(lVar6 + 8);
-      uVar11 = *(ulonglong *)(lVar6 + 0xa0) & 0xffffffff;
-      if (((uVar11 == 0) && (*(int *)(lVar6 + 0x140) == 0)) &&
-         (0xffff < (uint)((int)plVar9[3] + (int)uVar10))) {
-        uVar4 = IppGetMtuFromNextHop();
-        if (uVar4 < 0x10000) {
+      uVar11 = (uint)bVar13;
+      lVar10 = *(longlong *)(param_1 + 8);
+      plVar8 = *(longlong **)(lVar10 + 8);
+      uVar5 = *(ulonglong *)(lVar10 + 0xa0) & 0xffffffff;
+      if (((uVar5 == 0) && (*(int *)(lVar10 + 0x140) == 0)) &&
+         (0xffff < (uint)((int)plVar8[3] + (int)uVar4))) {
+        uVar3 = IppGetMtuFromNextHop();
+        if (uVar3 < 0x10000) {
           return 0xc000021b;
         }
         bVar13 = true;
       }
       else {
         bVar13 = false;
       }
       if (*(longlong *)(param_1 + 0x48) == 0) {
         if (bVar13 == false) goto LAB_0;
       }
       else if (bVar13 != false) {
         return 0xc000021b;
       }
-      if ((uVar11 == 0) || (*(int *)(lVar6 + 0x140) == 0)) {
-        while (plVar9 = (longlong *)*plVar9, plVar9 != (longlong *)0x0) {
-          if (0xffffU < (uint)(*(int *)(plVar9 + 3) + (int)uVar10) != bVar13) {
+      if ((uVar5 == 0) || (*(int *)(lVar10 + 0x140) == 0)) {
+        while (plVar8 = (longlong *)*plVar8, plVar8 != (longlong *)0x0) {
+          if (0xffffU < (uint)(*(int *)(plVar8 + 3) + (int)uVar4) != bVar13) {
             return 0xc000021b;
           }
         }
       }
       if (*(longlong *)(param_1 + 0x48) == 0) {
-        uVar4 = 8;
+        uVar9 = 8;
       }
       else {
-        uVar4 = (uint)*(ushort *)(param_1 + 0x30);
+        uVar9 = *(ushort *)(param_1 + 0x30);
       }
       if (bVar13 != false) {
-        *(short *)(param_1 + 0x34) = *(short *)(param_1 + 0x34) + (short)uVar4;
+        *(short *)(param_1 + 0x34) = *(short *)(param_1 + 0x34) + uVar9;
       }
-      uVar11 = uVar5 & 0xffffffff;
-      local_54 = (int)uVar5 + 1;
-      uVar5 = (ulonglong)local_54;
-      local_48[uVar11 * 2] = 0;
-      local_48[uVar11 * 2 + 1] = uVar4;
-      uVar10 = (ulonglong)((int)uVar10 + uVar4);
+      uVar5 = (ulonglong)uVar11;
+      uVar11 = uVar11 + 1;
+      local_48[uVar5 * 2] = 0;
+      local_48[uVar5 * 2 + 1] = (uint)uVar9;
+      uVar4 = (ulonglong)((int)uVar4 + (uint)uVar9);
     }
   }
   else {
     uVar12 = *(uint *)(param_1 + 0x2c);
   }
 LAB_0:
-  *(short *)(param_1 + 0x3c) = (short)uVar10 + (short)uVar12;
-  plVar9 = *(longlong **)(*(longlong *)(param_1 + 8) + 8);
-  if (plVar9 == (longlong *)0x0) {
-    return 0;
+  *(short *)(param_1 + 0x3c) = (short)uVar4 + (short)uVar12;
+  plVar8 = *(longlong **)(*(longlong *)(param_1 + 8) + 8);
+  if (plVar8 == (longlong *)0x0) {
+    uVar4 = 0;
   }
-  do {
-    iVar7 = (uint)*(ushort *)((longlong)plVar2 + 0x82) + (uint)*(ushort *)(param_1 + 0x3c);
-    local_50 = *(undefined1 *)(param_1 + 0x20);
-    for (uVar10 = 0; (uint)uVar10 < (uint)uVar5; uVar10 = (ulonglong)((uint)uVar10 + 1)) {
-      iVar7 = iVar7 - local_48[uVar10 * 2 + 1];
-      uVar5 = NdisRetreatNetBufferDataStart(plVar9,local_48[uVar10 * 2 + 1],iVar7,0);
-      if ((int)uVar5 < 0) {
-        return uVar5;
+  else {
+    do {
+      local_60 = *(undefined1 *)(param_1 + 0x20);
+      iVar6 = (uint)*(ushort *)(param_1 + 0x3c) + (uint)*(ushort *)((longlong)plVar1 + 0x82);
+      for (uVar4 = 0; (uint)uVar4 < uVar11; uVar4 = (ulonglong)((uint)uVar4 + 1)) {
+        iVar6 = iVar6 - local_48[uVar4 * 2 + 1];
+        uVar5 = NdisRetreatNetBufferDataStart(plVar8,local_48[uVar4 * 2 + 1],iVar6,0);
+        if ((int)uVar5 < 0) {
+          return uVar5;
+        }
+        uVar3 = local_48[uVar4 * 2];
+        uVar5 = (**(code **)(puVar2 + (longlong)(int)uVar3 * 0x48 + 0x220))
+                          (param_1,*(undefined8 *)(*(longlong *)(param_1 + 200) + 0x28),plVar8,
+                           local_60,0);
+        if ((int)uVar5 < 0) {
+          return uVar5;
+        }
+        local_60 = (undefined1)uVar3;
       }
-      in_stack_ffffffffffffff98 = 0;
-      uVar4 = local_48[uVar10 * 2];
-      uVar5 = (**(code **)(puVar3 + (longlong)(int)uVar4 * 0x48 + 0x220))
-                        (param_1,*(undefined8 *)(*(longlong *)(param_1 + 200) + 0x28),plVar9,
-                         local_50,0);
-      if ((int)uVar5 < 0) {
-        return uVar5;
+      uVar3 = (uint)*(ushort *)((longlong)plVar1 + 0x82);
+      if ((*(byte *)(param_1 + 0xb8) & 2) == 0) {
+        uVar3 = *(ushort *)((longlong)plVar1 + 0x82) + 0x50;
       }
-      local_50 = (undefined1)uVar4;
-      uVar5 = (ulonglong)local_54;
-    }
-    uVar4 = (uint)*(ushort *)((longlong)plVar2 + 0x82);
-    if ((*(byte *)(param_1 + 0xb8) & 2) == 0) {
-      uVar4 = *(ushort *)((longlong)plVar2 + 0x82) + 0x50;
-    }
-    uVar4 = NdisRetreatNetBufferDataStart(plVar9,uVar12,uVar4);
-    uVar10 = (ulonglong)uVar4;
-    if (_Src == (void *)0x0) {
-      if (-1 < (int)uVar4) {
-        uVar4 = (uint)((ulonglong)in_stack_ffffffffffffff98 >> 0x20);
-        if ((*(byte *)(param_1 + 0xb8) & 2) == 0) {
-          lVar6 = plVar9[1];
-          uVar1 = *(ushort *)(puVar3 + 0x2a);
-          if (uVar12 <= (uint)(*(int *)(lVar6 + 0x28) - (int)plVar9[2])) {
-            if ((*(byte *)(lVar6 + 10) & 5) == 0) {
-              in_stack_ffffffffffffff98 = (ulonglong)uVar4 << 0x20;
-              lVar6 = MmMapLockedPagesSpecifyCache(lVar6,0,1,0,in_stack_ffffffffffffff98,0x40000000)
-              ;
-            }
-            else {
-              lVar6 = *(longlong *)(lVar6 + 0x18);
-            }
-            pvVar8 = (void *)((ulonglong)*(uint *)(plVar9 + 2) + lVar6);
-            if ((((ulonglong)pvVar8 & (ulonglong)(uVar1 - 1)) == 0) && (pvVar8 != (void *)0x0)) {
-              in_stack_ffffffffffffff98 =
-                   CONCAT71((int7)((ulonglong)in_stack_ffffffffffffff98 >> 8),local_50);
-              uVar4 = (**(code **)(puVar3 + 0xf8))
-                                (param_1,pvVar8,plVar9,uVar12,in_stack_ffffffffffffff98);
-              uVar10 = (ulonglong)uVar4;
-              if ((int)uVar4 < 0) goto LAB_1;
-              goto LAB_2;
-            }
-          }
-LAB_3:
-          uVar10 = 0xc000009a;
-        }
-        else {
-          lVar6 = plVar9[1];
-          if ((*(byte *)(lVar6 + 10) & 5) == 0) {
-            in_stack_ffffffffffffff98 = (ulonglong)uVar4 << 0x20;
-            lVar6 = MmMapLockedPagesSpecifyCache(lVar6,0,1,0,in_stack_ffffffffffffff98,0x40000000);
-          }
-          else {
-            lVar6 = *(longlong *)(lVar6 + 0x18);
-          }
-          pvVar8 = (void *)((ulonglong)*(uint *)(plVar9 + 2) + lVar6);
-          memmove(pvVar8,*(void **)(param_1 + 0x40),(ulonglong)uVar12);
-          in_stack_ffffffffffffff98 =
-               CONCAT71((int7)((ulonglong)in_stack_ffffffffffffff98 >> 8),local_50);
-          (**(code **)(puVar3 + 0xf0))(param_1,pvVar8,plVar9,uVar12,in_stack_ffffffffffffff98);
-LAB_2:
-          uVar10 = 0;
-          _Src = pvVar8;
-        }
+      if (lVar7 == 0) {
+        uVar3 = IppBuildFirstHeader(uVar3,plVar8,puVar2,param_1,&local_50,uVar12,local_60);
+        lVar7 = local_50;
       }
-    }
-    else if (-1 < (int)uVar4) {
-      pvVar8 = (void *)NetioGetDataBufferIfSafe(plVar9,uVar12,*(undefined2 *)(puVar3 + 0x2a));
-      if (pvVar8 == (void *)0x0) goto LAB_3;
-      memmove(pvVar8,_Src,(ulonglong)uVar12);
-      (**(code **)(puVar3 + 0x100))(param_1,pvVar8,plVar9);
-      pvVar8 = _Src;
-      goto LAB_2;
-    }
-LAB_1:
-    if ((int)uVar10 < 0) {
-      return uVar10;
-    }
-    if (puVar3 == &Ipv4Global) {
-      Ipv4pFillPacketChecksum(plVar9);
-    }
-    plVar9 = (longlong *)*plVar9;
-    if (plVar9 == (longlong *)0x0) {
-      return uVar10;
-    }
-    uVar5 = (ulonglong)local_54;
-  } while( true );
+      else {
+        uVar3 = IppBuildNextHeader(uVar3,plVar8,puVar2,param_1,lVar7,uVar12);
+      }
+      uVar4 = (ulonglong)uVar3;
+      if ((int)uVar3 < 0) {
+        return uVar4;
+      }
+      if (puVar2 == &Ipv4Global) {
+        Ipv4pFillPacketChecksum(plVar8);
+      }
+      plVar8 = (longlong *)*plVar8;
+    } while (plVar8 != (longlong *)0x0);
+  }
+  return uVar4;
 }
 

```


## FlUnbindAdapter

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.63|
|i_ratio|0.7|
|m_ratio|0.97|
|b_ratio|0.93|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlUnbindAdapter|FlUnbindAdapter|
|fullname|FlUnbindAdapter|FlUnbindAdapter|
|refcount|6|6|
|`length`|852|819|
|`called`|<details><summary>Expand for full list:<br>Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>FlpCleanupL2UnicastWakePatterns<br>FlpCleanupPortCoalescedWakePatterns<br>FlpCleanupWolPatternEntries<br>FlpDeleteInterface<br>FlpDereferenceClientInterface<br>FlpDereferenceInterface<br>FlpDisableVirtualInterfaceConfiguration<br>FlpFlushQueuedPmRemoveOids<br>FlpNdisRequest<br>FlpRemoveInterface</summary>FlpSerializedNdisRequest<br>FlpTraceWakeStatistics<br>FlpUninitializeProviderInterfaces<br>McTemplateK0qqqq_EtwWriteTransfer<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisCloseAdapterEx<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::ExWaitForRundownProtectionReleaseCacheAware<br>NTOSKRNL.EXE::KeWaitForSingleObject<br>_guard_dispatch_icall</details>|<details><summary>Expand for full list:<br>FlpCleanupL2UnicastWakePatterns<br>FlpCleanupPortCoalescedWakePatterns<br>FlpCleanupWolPatternEntries<br>FlpDeleteInterface<br>FlpDereferenceClientInterface<br>FlpDereferenceInterface<br>FlpDisableVirtualInterfaceConfiguration<br>FlpFlushQueuedPmRemoveOids<br>FlpNdisRequest<br>FlpRemoveInterface<br>FlpSerializedNdisRequest</summary>FlpTraceWakeStatistics<br>FlpUninitializeProviderInterfaces<br>McTemplateK0qqqq_EtwWriteTransfer<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisCloseAdapterEx<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::ExWaitForRundownProtectionReleaseCacheAware<br>NTOSKRNL.EXE::KeWaitForSingleObject<br>_guard_dispatch_icall</details>|
|calling|||
|paramcount|0|0|
|`address`|14014a230|140149b90|
|sig|undefined FlUnbindAdapter(void)|undefined FlUnbindAdapter(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlUnbindAdapter Called Diff


```diff
--- FlUnbindAdapter called
+++ FlUnbindAdapter called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### FlUnbindAdapter Diff


```diff
--- FlUnbindAdapter
+++ FlUnbindAdapter
@@ -1,127 +1,115 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 undefined8 FlUnbindAdapter(undefined8 param_1,longlong param_2)
 
 {
   undefined4 uVar1;
   longlong lVar2;
-  uint uVar3;
-  int iVar4;
+  int iVar3;
   undefined2 local_res10;
   undefined1 local_res12;
   int local_res18 [2];
-  int *piVar5;
-  undefined8 uVar6;
-  undefined4 uVar7;
-  undefined8 uVar8;
-  undefined4 uVar9;
+  int *piVar4;
+  undefined8 uVar5;
+  undefined4 uVar6;
+  undefined8 uVar7;
+  undefined4 uVar8;
   ulonglong in_stack_ffffffffffffffe8;
   
   lVar2 = *(longlong *)(param_2 + 0x20);
   uVar1 = *(undefined4 *)(param_2 + 0x448);
   local_res10 = 0;
   local_res12 = 0;
   if ((DAT_0 & 4) != 0) {
     in_stack_ffffffffffffffe8 = in_stack_ffffffffffffffe8 & 0xffffffff00000000;
     McTemplateK0qqqq_EtwWriteTransfer
               (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_FRAMING_BIND_PROGRESS,
                &MICROSOFT_TCPIP_PROVIDER,uVar1,*(undefined2 *)(lVar2 + 0x5c),2,
                in_stack_ffffffffffffffe8);
   }
   NdisAcquireRWLockWrite(*(undefined8 *)(param_2 + 0x28),&local_res10,0);
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    uVar3 = Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar3 = Feature_TCPIP_58629296_Fix__private_featureState & 1;
-  }
-  if (uVar3 == 0) {
-    *(uint *)(param_2 + 0xc4) = *(uint *)(param_2 + 0xc4) | 8;
-  }
-  else {
-    *(uint *)(param_2 + 0xc4) = *(uint *)(param_2 + 0xc4) | 8;
-  }
+  *(uint *)(param_2 + 0xc4) = *(uint *)(param_2 + 0xc4) | 8;
   NdisReleaseRWLock(*(undefined8 *)(param_2 + 0x28),&local_res10);
-  uVar9 = 0;
-  uVar7 = 0;
+  uVar8 = 0;
+  uVar6 = 0;
   FlpSerializedNdisRequest(param_2,FlpSerializedNdisResetFiltersWorker);
   if ((*(uint *)(param_2 + 0x3d0) & 1) != 0) {
     (**(code **)(*(longlong *)(param_2 + 0x20) + 0x278))(param_2,8);
   }
   ExWaitForRundownProtectionReleaseCacheAware(*(undefined8 *)(param_2 + 0x48));
   if (*(char *)(lVar2 + 0x290) != '\0') {
     FlpDisableVirtualInterfaceConfiguration(param_2);
   }
   FlpDeleteInterface(*(undefined8 *)(param_2 + 0x120));
   FlpDereferenceClientInterface(*(undefined8 *)(param_2 + 0x120));
   FlpFlushQueuedPmRemoveOids(param_2);
   if (*(int *)(param_2 + 0x35c) != 1) {
     LOCK();
-    piVar5 = (int *)(param_2 + 0x35c);
-    iVar4 = *piVar5;
-    *piVar5 = *piVar5 + -1;
+    piVar4 = (int *)(param_2 + 0x35c);
+    iVar3 = *piVar4;
+    *piVar4 = *piVar4 + -1;
     UNLOCK();
-    if (iVar4 != 2) {
-      uVar7 = 0;
+    if (iVar3 != 2) {
+      uVar6 = 0;
       KeWaitForSingleObject(param_2 + 0x360,6,0,0,0);
     }
   }
   FlpCleanupWolPatternEntries(param_2);
   if (*(int *)(param_2 + 0x390) != 0) {
     in_stack_ffffffffffffffe8 = 0;
-    piVar5 = local_res18;
-    uVar6 = CONCAT44(uVar9,4);
+    piVar4 = local_res18;
+    uVar5 = CONCAT44(uVar8,4);
     local_res18[0] = *(int *)(param_2 + 0x390);
-    FlpNdisRequest(param_2,0,1,0xfd01010b,piVar5,uVar6,0);
-    uVar9 = (undefined4)((ulonglong)uVar6 >> 0x20);
-    uVar7 = (undefined4)((ulonglong)piVar5 >> 0x20);
+    FlpNdisRequest(param_2,0,1,0xfd01010b,piVar4,uVar5,0);
+    uVar8 = (undefined4)((ulonglong)uVar5 >> 0x20);
+    uVar6 = (undefined4)((ulonglong)piVar4 >> 0x20);
     *(undefined4 *)(param_2 + 0x390) = 0;
   }
   if (*(int *)(param_2 + 0x394) != 0) {
     in_stack_ffffffffffffffe8 = 0;
-    piVar5 = local_res18;
-    uVar6 = CONCAT44(uVar9,4);
+    piVar4 = local_res18;
+    uVar5 = CONCAT44(uVar8,4);
     local_res18[0] = *(int *)(param_2 + 0x394);
-    FlpNdisRequest(param_2,0,1,0xfd01010b,piVar5,uVar6,0);
-    uVar9 = (undefined4)((ulonglong)uVar6 >> 0x20);
-    uVar7 = (undefined4)((ulonglong)piVar5 >> 0x20);
+    FlpNdisRequest(param_2,0,1,0xfd01010b,piVar4,uVar5,0);
+    uVar8 = (undefined4)((ulonglong)uVar5 >> 0x20);
+    uVar6 = (undefined4)((ulonglong)piVar4 >> 0x20);
     *(undefined4 *)(param_2 + 0x394) = 0;
   }
   FlpCleanupPortCoalescedWakePatterns(param_2);
   FlpCleanupL2UnicastWakePatterns(param_2);
   FlpTraceWakeStatistics(param_2);
   FlpUninitializeProviderInterfaces(param_2);
-  iVar4 = NdisCloseAdapterEx(*(undefined8 *)(param_2 + 0x4b0));
-  if (iVar4 == 0x103) {
-    uVar7 = 0;
+  iVar3 = NdisCloseAdapterEx(*(undefined8 *)(param_2 + 0x4b0));
+  if (iVar3 == 0x103) {
+    uVar6 = 0;
     KeWaitForSingleObject(param_2 + 0xa8,6,0,0,0);
-    iVar4 = *(int *)(param_2 + 0xc0);
+    iVar3 = *(int *)(param_2 + 0xc0);
   }
-  if (iVar4 < 0) {
+  if (iVar3 < 0) {
     if ((DAT_0 & 4) != 0) {
-      in_stack_ffffffffffffffe8 = CONCAT44((int)(in_stack_ffffffffffffffe8 >> 0x20),iVar4);
-      uVar8 = CONCAT44(uVar9,10);
-      uVar6 = CONCAT44(uVar7,(uint)*(ushort *)(lVar2 + 0x5c));
+      in_stack_ffffffffffffffe8 = CONCAT44((int)(in_stack_ffffffffffffffe8 >> 0x20),iVar3);
+      uVar7 = CONCAT44(uVar8,10);
+      uVar5 = CONCAT44(uVar6,(uint)*(ushort *)(lVar2 + 0x5c));
       McTemplateK0qqqq_EtwWriteTransfer
                 (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_FRAMING_BIND_PROGRESS,
-                 &MICROSOFT_TCPIP_PROVIDER,uVar1,uVar6,uVar8,in_stack_ffffffffffffffe8);
-      uVar7 = (undefined4)((ulonglong)uVar6 >> 0x20);
-      uVar9 = (undefined4)((ulonglong)uVar8 >> 0x20);
+                 &MICROSOFT_TCPIP_PROVIDER,uVar1,uVar5,uVar7,in_stack_ffffffffffffffe8);
+      uVar6 = (undefined4)((ulonglong)uVar5 >> 0x20);
+      uVar8 = (undefined4)((ulonglong)uVar7 >> 0x20);
     }
   }
   else if ((*(int *)(param_2 + 0x138) == 0xf) &&
           (*(short *)(*(longlong *)(param_2 + 0x20) + 0x5c) == 0x17)) {
     (**(code **)(*(longlong *)(param_2 + 0x20) + 400))(param_2);
   }
   FlpRemoveInterface(lVar2 + 0x1b8,param_2);
   FlpDereferenceInterface(param_2);
   if ((DAT_0 & 4) != 0) {
     McTemplateK0qqqq_EtwWriteTransfer
               (&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_FRAMING_BIND_PROGRESS,
-               &MICROSOFT_TCPIP_PROVIDER,uVar1,CONCAT44(uVar7,(uint)*(ushort *)(lVar2 + 0x5c)),
-               CONCAT44(uVar9,3),in_stack_ffffffffffffffe8 & 0xffffffff00000000);
+               &MICROSOFT_TCPIP_PROVIDER,uVar1,CONCAT44(uVar6,(uint)*(ushort *)(lVar2 + 0x5c)),
+               CONCAT44(uVar8,3),in_stack_ffffffffffffffe8 & 0xffffffff00000000);
   }
   return 0;
 }
 

```


## IpNlpQuerySessionInfo

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.17|
|i_ratio|0.2|
|m_ratio|0.79|
|b_ratio|0.2|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpNlpQuerySessionInfo|IpNlpQuerySessionInfo|
|fullname|IpNlpQuerySessionInfo|IpNlpQuerySessionInfo|
|refcount|9|9|
|`length`|2609|1713|
|`called`|Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppDereferenceCompartment<br>IppGetCompartment<br>RtlAcquireReadLock<br>RtlReleaseReadLock<br>memmove|Feature_5988_5730__private_IsEnabledDeviceUsageNoInline<br>IppDereferenceCompartment<br>IppGetCompartment<br>RtlAcquireReadLock<br>RtlReleaseReadLock<br>memmove|
|calling|InetQuerySessionInformationAf<br>TcpTryToEnterBHMode<br>TcpUpdatePathInfoTcb|InetQuerySessionInformationAf<br>TcpTryToEnterBHMode<br>TcpUpdatePathInfoTcb|
|paramcount|0|0|
|`address`|1400cc0e0|1400eaaa0|
|sig|undefined IpNlpQuerySessionInfo(void)|undefined IpNlpQuerySessionInfo(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpNlpQuerySessionInfo Called Diff


```diff
--- IpNlpQuerySessionInfo called
+++ IpNlpQuerySessionInfo called
@@ -2 +1,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IpNlpQuerySessionInfo Diff


```diff
--- IpNlpQuerySessionInfo
+++ IpNlpQuerySessionInfo
@@ -1,634 +1,417 @@
 
 longlong IpNlpQuerySessionInfo(longlong *param_1)
 
 {
   ushort uVar1;
   int iVar2;
   longlong *plVar3;
   undefined8 *puVar4;
   longlong lVar5;
   byte bVar6;
   uint uVar7;
-  undefined4 uVar8;
+  longlong lVar8;
   uint uVar9;
   uint uVar10;
-  longlong lVar11;
-  byte bVar12;
-  longlong lVar13;
-  uint uVar14;
-  char cVar15;
-  longlong lVar16;
+  uint *puVar11;
+  longlong lVar12;
+  char cVar13;
+  longlong lVar14;
+  undefined4 uVar15;
+  ulonglong uVar16;
   ulonglong uVar17;
-  undefined1 local_res8 [8];
-  undefined1 local_res10;
+  char cVar18;
+  char local_res8 [8];
+  undefined4 local_res10;
   undefined4 local_res18;
-  undefined4 local_res20;
   
+  lVar12 = 0;
   plVar3 = (longlong *)param_1[3];
-  lVar13 = 0;
-  cVar15 = '\0';
-  local_res10 = 0;
   puVar4 = (undefined8 *)*param_1;
-  uVar10 = 0;
-  local_res8[0] = 0;
-  local_res20 = 0;
+  uVar7 = 0;
+  cVar13 = '\0';
+  local_res8[0] = '\0';
   local_res18 = 0;
   if ((((int)param_1[4] != 0) && ((int)param_1[4] != 0x29)) ||
-     (lVar11 = IppGetCompartment(*puVar4,param_1 + 1), lVar11 == 0)) {
+     (lVar8 = IppGetCompartment(*puVar4,param_1 + 1), lVar8 == 0)) {
     return 0xc000000d;
   }
-  if (plVar3 != (longlong *)0x0) {
-    RtlAcquireReadLock(plVar3 + 0xe,local_res8);
-    local_res10 = local_res8[0];
-  }
-  uVar14 = 1;
-  uVar9 = 1;
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar7 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+  if (plVar3 == (longlong *)0x0) {
+    local_res10 = 0;
+    uVar17 = 0x82;
+    uVar16 = 0;
+    cVar18 = cVar13;
   }
   else {
-    uVar7 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  if (uVar7 == 0) {
-LAB_0:
-    bVar12 = (byte)local_res18;
-    bVar6 = local_res18._2_1_;
-  }
-  else {
-    if (plVar3 != (longlong *)0x0) {
-      local_res18 = *(uint *)((longlong)plVar3 + 0x2c);
-      goto LAB_0;
-    }
-    bVar12 = 0x82;
-    bVar6 = local_res18._2_1_ & 0xcf;
+    RtlAcquireReadLock(plVar3 + 0xe,local_res8);
+    uVar15 = *(undefined4 *)((longlong)plVar3 + 0x2c);
+    uVar17 = (ulonglong)(byte)uVar15;
+    local_res10._2_1_ = (byte)((uint)uVar15 >> 0x10);
+    uVar16 = (ulonglong)local_res10._2_1_;
+    cVar18 = local_res8[0];
+    local_res10 = uVar15;
   }
   iVar2 = *(int *)((longlong)param_1 + 0x24);
-  if (0x3c < iVar2) {
-    if (iVar2 == 0x46) {
-      if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
+  uVar10 = (uint)uVar16;
+  if (iVar2 < 0x3d) {
+    if (iVar2 == 0x3c) {
+      if (*(short *)(puVar4[5] + 4) == 6) goto LAB_0;
       if (3 < *(uint *)(param_1 + 6)) {
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+        uVar9 = (uint)(uVar16 >> 1);
+        goto LAB_1;
+      }
+LAB_2:
+      lVar12 = 0xc0000023;
+      goto LAB_3;
+    }
+    uVar9 = (uint)uVar17;
+    if (iVar2 < 0x19) {
+      if (iVar2 == 0x18) {
+        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_0;
+        if (3 < *(uint *)(param_1 + 6)) {
+          uVar9 = (uint)(uVar17 >> 5);
+          goto LAB_1;
+        }
+      }
+      else if (iVar2 < 0xc) {
+        if (iVar2 == 0xb) {
+          uVar15 = 1;
+          if ((*(byte *)(puVar4[5] + 0xe) & 1) != 0) goto LAB_0;
+          if (*(uint *)(param_1 + 6) != 0) {
+            puVar11 = (uint *)param_1[5];
+            if (*(uint *)(param_1 + 6) < 4) {
+              *(byte *)puVar11 = (byte)uVar17 >> 1 & 1;
+            }
+            else {
+              uVar7 = (uint)(uVar17 >> 1) & 1;
+LAB_4:
+              *puVar11 = uVar7;
+              uVar15 = 4;
+            }
+LAB_5:
+            *(undefined4 *)(param_1 + 6) = uVar15;
+            goto LAB_3;
+          }
         }
         else {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar9 == 0) {
-          if (plVar3 == (longlong *)0x0) goto LAB_2;
-          uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2e);
-        }
-        else {
-          uVar10 = (uint)bVar6;
-        }
-        goto LAB_3;
-      }
-    }
-    else if (iVar2 == 0x47) {
-      if (3 < *(uint *)(param_1 + 6)) {
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar9 == 0) {
-          if (plVar3 == (longlong *)0x0) goto LAB_2;
-          bVar6 = *(byte *)((longlong)plVar3 + 0x2e);
-        }
-        uVar10 = bVar6 >> 4 & 3;
-LAB_2:
-        *(uint *)param_1[5] = uVar10;
-LAB_4:
-        *(undefined4 *)(param_1 + 6) = 4;
-        lVar13 = 0;
-        goto LAB_5;
-      }
-    }
-    else if (iVar2 == 0x4b) {
-      if (*(short *)(puVar4[5] + 4) != 0x11) goto LAB_1;
-      if (3 < *(uint *)(param_1 + 6)) {
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar9 == 0) {
-          if (plVar3 == (longlong *)0x0) goto LAB_2;
-          uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2e);
-        }
-        else {
-          uVar10 = (uint)bVar6;
-        }
-LAB_6:
-        uVar10 = uVar10 >> 6;
-        goto LAB_7;
-      }
-    }
-    else {
-      if (iVar2 != 0x4c) goto LAB_8;
-      if (3 < *(uint *)(param_1 + 6)) {
-        if (plVar3 == (longlong *)0x0) {
-          uVar10 = 0xffffffff;
-        }
-        else {
-          uVar10 = *(uint *)((longlong)plVar3 + 0x6c);
-        }
-        goto LAB_2;
-      }
-    }
-    goto LAB_9;
-  }
-  if (iVar2 == 0x3c) {
-    if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-    if (3 < *(uint *)(param_1 + 6)) {
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar9 == 0) {
-        if (plVar3 == (longlong *)0x0) goto LAB_2;
-        bVar6 = *(byte *)((longlong)plVar3 + 0x2e);
-      }
-      uVar10 = (uint)(bVar6 >> 1);
-      goto LAB_7;
-    }
-    goto LAB_9;
-  }
-  if (iVar2 < 0x19) {
-    if (iVar2 == 0x18) {
-      if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-      if (3 < *(uint *)(param_1 + 6)) {
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar9 == 0) {
-          if (plVar3 == (longlong *)0x0) goto LAB_2;
-          bVar12 = *(byte *)((longlong)plVar3 + 0x2c);
-        }
-        uVar10 = (uint)(bVar12 >> 5);
-        goto LAB_7;
-      }
-    }
-    else {
-      bVar6 = 1;
-      if (iVar2 < 0xc) {
-        if (iVar2 == 0xb) {
-          if ((*(byte *)(puVar4[5] + 0xe) & 1) != 0) goto LAB_1;
-          if (*(uint *)(param_1 + 6) == 0) goto LAB_9;
-          if (*(uint *)(param_1 + 6) < 4) {
-            if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-              uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+          if (iVar2 == 1) {
+            if (plVar3 != (longlong *)0x0) {
+              uVar1 = *(ushort *)((longlong)plVar3 + 0x34);
+              if (*(uint *)(param_1 + 6) < (uint)uVar1) goto LAB_6;
+              if (uVar1 != 0) {
+                memmove((void *)param_1[5],(void *)plVar3[7],(ulonglong)(uint)uVar1);
+              }
+              uVar7 = (uint)*(ushort *)((longlong)plVar3 + 0x34);
+              goto LAB_7;
+            }
+LAB_8:
+            *(undefined4 *)(param_1 + 6) = 0;
+            goto LAB_9;
+          }
+          if (iVar2 == 2) {
+            if ((*(short *)(puVar4[5] + 4) == 6) || (*(short *)(puVar4[5] + 4) == 0x11))
+            goto LAB_0;
+            uVar7 = *(uint *)(param_1 + 6);
+joined_r0x0001400eaf87:
+            if (3 < uVar7) goto LAB_1;
+          }
+          else {
+            if (iVar2 == 3) goto LAB_10;
+            if (iVar2 == 4) {
+              uVar7 = *(uint *)(param_1 + 6);
+              if (uVar7 != 0) {
+                if ((plVar3 == (longlong *)0x0) || (*(short *)((longlong)plVar3 + 0x2a) == -1)) {
+                  bVar6 = *(byte *)(lVar8 + 0x41);
+                }
+                else {
+                  bVar6 = *(byte *)((longlong)plVar3 + 0x2a);
+                }
+LAB_11:
+                uVar15 = 1;
+                puVar11 = (uint *)param_1[5];
+                if (3 < uVar7) {
+                  uVar7 = (uint)bVar6;
+                  goto LAB_4;
+                }
+                *(byte *)puVar11 = bVar6;
+                goto LAB_5;
+              }
+            }
+            else if (iVar2 == 9) {
+              if ((*(byte *)(puVar4[5] + 0xe) & 1) != 0) goto LAB_0;
+              if (3 < *(uint *)(param_1 + 6)) {
+                *(undefined4 *)param_1[5] = 0;
+                if ((plVar3 != (longlong *)0x0) && (plVar3[1] != 0)) {
+                  uVar15 = (undefined4)plVar3[0xd];
+                  goto LAB_12;
+                }
+                goto LAB_13;
+              }
             }
             else {
-              uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-            }
-            if (uVar10 == 0) {
-              if (plVar3 == (longlong *)0x0) {
-                bVar12 = 1;
+              if (iVar2 != 10) goto LAB_14;
+              bVar6 = 1;
+              if ((*(byte *)(puVar4[5] + 0xe) & 1) != 0) goto LAB_0;
+              uVar7 = *(uint *)(param_1 + 6);
+              if (uVar7 != 0) {
+                if ((plVar3 != (longlong *)0x0) && ((short)plVar3[5] != -1)) {
+                  bVar6 = *(byte *)(plVar3 + 5);
+                }
+                goto LAB_11;
               }
-              else {
-                bVar12 = *(byte *)((longlong)plVar3 + 0x2c) >> 1 & 1;
-              }
-              *(byte *)param_1[5] = bVar12;
-            }
-            else {
-              *(byte *)param_1[5] = bVar12 >> 1 & 1;
-            }
-            goto LAB_10;
-          }
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar10 == 0) {
-            if (plVar3 != (longlong *)0x0) {
-              bVar12 = *(byte *)((longlong)plVar3 + 0x2c);
-              goto LAB_11;
-            }
-          }
-          else {
-LAB_11:
-            uVar9 = bVar12 >> 1 & 1;
-          }
-          *(uint *)param_1[5] = uVar9;
-LAB_12:
-          uVar14 = 4;
-          goto LAB_10;
-        }
-        if (iVar2 == 1) {
-          if (plVar3 != (longlong *)0x0) {
-            uVar1 = *(ushort *)((longlong)plVar3 + 0x34);
-            if (*(uint *)(param_1 + 6) < (uint)uVar1) goto LAB_13;
-            if (uVar1 != 0) {
-              memmove((void *)param_1[5],(void *)plVar3[7],(ulonglong)(uint)uVar1);
-            }
-            uVar10 = (uint)*(ushort *)((longlong)plVar3 + 0x34);
-            goto LAB_14;
-          }
-LAB_15:
-          *(undefined4 *)(param_1 + 6) = 0;
-          goto LAB_16;
-        }
-        if (iVar2 == 2) {
-          if ((*(short *)(puVar4[5] + 4) == 6) || (*(short *)(puVar4[5] + 4) == 0x11))
-          goto LAB_1;
-          if (3 < *(uint *)(param_1 + 6)) {
-            if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-              uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-            }
-            else {
-              uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-            }
-            if (uVar9 == 0) {
-              if (plVar3 == (longlong *)0x0) goto LAB_2;
-              uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2c);
-            }
-            else {
-              uVar10 = (uint)bVar12;
-            }
-            goto LAB_7;
-          }
-        }
-        else {
-          if (iVar2 == 3) goto LAB_17;
-          if (iVar2 == 4) {
-            if (*(uint *)(param_1 + 6) != 0) {
-              if ((plVar3 == (longlong *)0x0) || (*(short *)((longlong)plVar3 + 0x2a) == -1)) {
-                bVar12 = *(byte *)(lVar11 + 0x41);
-              }
-              else {
-                bVar12 = *(byte *)((longlong)plVar3 + 0x2a);
-              }
-              if (*(uint *)(param_1 + 6) < 4) {
-                *(byte *)param_1[5] = bVar12;
-              }
-              else {
-                uVar14 = 4;
-                *(uint *)param_1[5] = (uint)bVar12;
-              }
-              *(uint *)(param_1 + 6) = uVar14;
-              goto LAB_5;
-            }
-          }
-          else if (iVar2 == 9) {
-            if ((*(byte *)(puVar4[5] + 0xe) & 1) != 0) goto LAB_1;
-            if (3 < *(uint *)(param_1 + 6)) {
-              *(undefined4 *)param_1[5] = 0;
-              if ((plVar3 != (longlong *)0x0) && (plVar3[1] != 0)) {
-                uVar8 = (undefined4)plVar3[0xd];
-                goto LAB_18;
-              }
-              goto LAB_4;
-            }
-          }
-          else {
-            if (iVar2 != 10) goto LAB_8;
-            if ((*(byte *)(puVar4[5] + 0xe) & 1) != 0) goto LAB_1;
-            uVar10 = *(uint *)(param_1 + 6);
-            if (uVar10 != 0) {
-              if ((plVar3 != (longlong *)0x0) && ((short)plVar3[5] != -1)) {
-                bVar6 = *(byte *)(plVar3 + 5);
-              }
-              goto LAB_19;
             }
           }
         }
       }
       else if (iVar2 == 0xe) {
-        if ((int)param_1[6] != 0) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
+        uVar7 = *(uint *)(param_1 + 6);
+        if (uVar7 != 0) {
           if (plVar3 == (longlong *)0x0) {
             bVar6 = *(byte *)(puVar4[5] + 0xe) >> 1;
           }
           else {
             bVar6 = *(byte *)((longlong)plVar3 + 0x2c) >> 2;
           }
           bVar6 = bVar6 & 1;
-          goto LAB_20;
+          goto LAB_11;
         }
       }
       else if (iVar2 == 0x13) {
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
+        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_0;
+        uVar7 = *(uint *)(param_1 + 6);
+joined_r0x0001400eaf63:
+        if (3 < uVar7) {
+          uVar9 = uVar9 >> 3;
+LAB_1:
+          uVar7 = uVar9 & 1;
+          goto LAB_15;
+        }
+      }
+      else if (iVar2 == 0x15) {
+        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_0;
         if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            if (plVar3 == (longlong *)0x0) goto LAB_2;
-            uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2c);
-          }
-          else {
-            uVar10 = (uint)bVar12;
-          }
-LAB_21:
-          uVar10 = uVar10 >> 3;
-LAB_7:
-          uVar10 = uVar10 & 1;
-          goto LAB_2;
-        }
-      }
-      else if (iVar2 == 0x15) {
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-        if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            if (plVar3 == (longlong *)0x0) goto LAB_2;
-            bVar12 = *(byte *)((longlong)plVar3 + 0x2c);
-          }
-          uVar10 = (uint)(bVar12 >> 4);
-          goto LAB_7;
+          uVar9 = (uint)(uVar17 >> 4);
+          goto LAB_1;
         }
       }
       else if (iVar2 == 0x16) {
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-        if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar10 != 0) {
-            uVar10 = (uint)bVar12;
-            goto LAB_22;
-          }
-          if (plVar3 != (longlong *)0x0) {
-            uVar14 = (uint)(*(byte *)((longlong)plVar3 + 0x2c) >> 7);
-          }
-          *(uint *)param_1[5] = uVar14;
-          goto LAB_4;
-        }
+        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_0;
+        if (3 < *(uint *)(param_1 + 6)) goto LAB_16;
       }
       else {
-        if (iVar2 != 0x17) goto LAB_8;
+        if (iVar2 != 0x17) goto LAB_14;
         if (3 < *(uint *)(param_1 + 6)) {
           if (plVar3 == (longlong *)0x0) {
-            uVar10 = 10;
+            uVar7 = 10;
           }
           else {
-            uVar10 = (uint)*(byte *)(plVar3 + 6);
-          }
-          goto LAB_2;
-        }
-      }
-    }
-    goto LAB_9;
-  }
-  if (iVar2 < 0x27) {
+            uVar7 = (uint)*(byte *)(plVar3 + 6);
+          }
+          goto LAB_15;
+        }
+      }
+      goto LAB_2;
+    }
+    if (0x26 < iVar2) {
+      if (iVar2 != 0x27) {
+        if (iVar2 == 0x28) {
+          if (*(short *)(puVar4[5] + 4) != 6) {
+            if (3 < *(uint *)(param_1 + 6)) {
+              uVar9 = (uint)local_res10._1_1_;
+              goto LAB_17;
+            }
+            goto LAB_2;
+          }
+        }
+        else if (iVar2 == 0x2f) {
+          if (*(short *)(puVar4[5] + 4) != 6) {
+            if (3 < *(uint *)(param_1 + 6)) {
+              uVar9 = (uint)local_res10._1_1_;
+LAB_16:
+              uVar7 = uVar9 >> 7;
+              goto LAB_15;
+            }
+            goto LAB_2;
+          }
+        }
+        else if (iVar2 == 0x32) {
+          if (*(short *)(puVar4[5] + 4) != 6) {
+            uVar7 = *(uint *)(param_1 + 6);
+            uVar9 = uVar10;
+            goto joined_r0x0001400eaf87;
+          }
+        }
+        else {
+          if (iVar2 != 0x33) goto LAB_14;
+          if (*(short *)(puVar4[5] + 4) != 6) {
+            uVar7 = *(uint *)(param_1 + 6);
+            uVar9 = uVar10;
+            goto joined_r0x0001400eaf63;
+          }
+        }
+        goto LAB_0;
+      }
+LAB_10:
+      if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
+        uVar7 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
+      }
+      else {
+        uVar7 = Feature_5988_5730__private_featureState & 1;
+      }
+      if ((uVar7 == 0) && (*(int *)((longlong)param_1 + 0x24) == 0x27)) {
+LAB_14:
+        lVar12 = 0xc00000bb;
+        goto LAB_3;
+      }
+      if ((int)param_1[6] != 0) {
+        if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
+          uVar7 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
+        }
+        else {
+          uVar7 = Feature_5988_5730__private_featureState & 1;
+        }
+        if (uVar7 == 0) {
+          if (plVar3 == (longlong *)0x0) {
+            bVar6 = 0;
+          }
+          else {
+            bVar6 = *(byte *)((longlong)plVar3 + 0x31);
+          }
+        }
+        else if ((plVar3 == (longlong *)0x0) ||
+                (cVar13 = *(char *)((longlong)plVar3 + 0x31), cVar13 != -1)) {
+          bVar6 = cVar13 << 2;
+        }
+        else {
+          bVar6 = (byte)local_res18;
+        }
+        uVar7 = *(uint *)(param_1 + 6);
+        goto LAB_11;
+      }
+      goto LAB_2;
+    }
     if (iVar2 == 0x26) {
-      if (*(short *)(puVar4[5] + 4) == 6) {
-LAB_1:
-        lVar13 = 0xc000000d;
-        goto LAB_5;
-      }
-      if (3 < *(uint *)(param_1 + 6)) {
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar9 == 0) {
-          if (plVar3 == (longlong *)0x0) goto LAB_2;
-          uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2d);
-        }
-        else {
-          uVar10 = local_res18 >> 8 & 0xff;
-        }
-LAB_3:
-        uVar10 = uVar10 >> 2;
-        goto LAB_7;
-      }
-LAB_9:
-      lVar13 = 0xc0000023;
-      goto LAB_5;
+      if (*(short *)(puVar4[5] + 4) != 6) {
+        if (3 < *(uint *)(param_1 + 6)) {
+          uVar10 = (uint)local_res10._1_1_;
+          goto LAB_18;
+        }
+        goto LAB_2;
+      }
+LAB_0:
+      lVar12 = 0xc000000d;
+      goto LAB_3;
     }
     if (iVar2 == 0x19) {
-      if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-      if (3 < *(uint *)(param_1 + 6)) {
-        if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-        }
-        else {
-          uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-        }
-        if (uVar9 == 0) {
-          if (plVar3 == (longlong *)0x0) goto LAB_2;
-          uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2c);
-        }
-        else {
-          uVar10 = (uint)bVar12;
-        }
-        goto LAB_6;
-      }
-      goto LAB_9;
+      if (*(short *)(puVar4[5] + 4) != 6) {
+        uVar7 = *(uint *)(param_1 + 6);
+        goto joined_r0x0001400eb0cc;
+      }
+      goto LAB_0;
     }
     if (iVar2 == 0x1c) {
       if (3 < *(uint *)(param_1 + 6)) {
         if (plVar3 != (longlong *)0x0) {
-          uVar10 = (uint)(*plVar3 != 0);
-        }
-        goto LAB_2;
-      }
-      goto LAB_9;
+          uVar7 = (uint)(*plVar3 != 0);
+        }
+        goto LAB_15;
+      }
+      goto LAB_2;
     }
     if (iVar2 == 0x1f) {
       if (3 < *(uint *)(param_1 + 6)) {
         *(undefined4 *)param_1[5] = 0;
         if ((plVar3 != (longlong *)0x0) && (plVar3[2] != 0)) {
-          uVar8 = *(undefined4 *)(plVar3[2] + 8);
-LAB_18:
-          *(undefined4 *)param_1[5] = uVar8;
-        }
-        goto LAB_4;
-      }
-      goto LAB_9;
+          uVar15 = *(undefined4 *)(plVar3[2] + 8);
+LAB_12:
+          *(undefined4 *)param_1[5] = uVar15;
+        }
+        goto LAB_13;
+      }
+      goto LAB_2;
     }
     if (iVar2 == 0x20) {
-      if (plVar3 == (longlong *)0x0) goto LAB_15;
+      if (plVar3 == (longlong *)0x0) goto LAB_8;
       uVar1 = *(ushort *)((longlong)plVar3 + 0x42);
       if ((uint)uVar1 <= *(uint *)(param_1 + 6)) {
         if (uVar1 != 0) {
           memmove((void *)param_1[5],(void *)plVar3[9],(ulonglong)(uint)uVar1);
         }
-        uVar10 = (uint)*(ushort *)((longlong)plVar3 + 0x42);
-        goto LAB_14;
-      }
-LAB_13:
-      lVar13 = 0xc0000023;
+        uVar7 = (uint)*(ushort *)((longlong)plVar3 + 0x42);
+        goto LAB_7;
+      }
+LAB_6:
+      lVar12 = 0xc0000023;
     }
     else {
-      if (iVar2 != 0x21) goto LAB_8;
+      if (iVar2 != 0x21) goto LAB_14;
       lVar5 = param_1[5];
-      if ((plVar3 == (longlong *)0x0) || ((uint *)*plVar3 == (uint *)0x0)) goto LAB_1;
-      uVar10 = *(uint *)*plVar3;
-      uVar17 = (ulonglong)uVar10;
+      if ((plVar3 == (longlong *)0x0) || ((uint *)*plVar3 == (uint *)0x0)) goto LAB_0;
+      uVar7 = *(uint *)*plVar3;
+      uVar17 = (ulonglong)uVar7;
       if ((ulonglong)*(uint *)(param_1 + 6) <= uVar17 * 4 &&
-          uVar17 * 4 - (ulonglong)*(uint *)(param_1 + 6) != 0) goto LAB_13;
-      lVar16 = lVar13;
-      if (uVar10 != 0) {
+          uVar17 * 4 - (ulonglong)*(uint *)(param_1 + 6) != 0) goto LAB_6;
+      lVar14 = lVar12;
+      if (uVar7 != 0) {
         do {
-          *(undefined4 *)(lVar16 + lVar5) = *(undefined4 *)(lVar16 + 4 + *plVar3);
+          *(undefined4 *)(lVar5 + lVar14) = *(undefined4 *)(*plVar3 + 4 + lVar14);
           uVar17 = uVar17 - 1;
-          lVar16 = lVar16 + 4;
+          lVar14 = lVar14 + 4;
         } while (uVar17 != 0);
       }
-      uVar10 = uVar10 * 4;
-LAB_14:
-      *(uint *)(param_1 + 6) = uVar10;
+      uVar7 = uVar7 * 4;
+LAB_7:
+      *(uint *)(param_1 + 6) = uVar7;
     }
   }
   else {
-    if (iVar2 != 0x27) {
-      if (iVar2 == 0x28) {
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
+    if (iVar2 == 0x46) {
+      if (*(short *)(puVar4[5] + 4) == 6) goto LAB_0;
+      if (3 < *(uint *)(param_1 + 6)) {
+LAB_18:
+        uVar9 = uVar10 >> 2;
+        goto LAB_1;
+      }
+      goto LAB_2;
+    }
+    if (iVar2 != 0x47) {
+      if (iVar2 == 0x4b) {
+        if (*(short *)(puVar4[5] + 4) != 0x11) goto LAB_0;
+        uVar7 = *(uint *)(param_1 + 6);
+        uVar9 = uVar10;
+joined_r0x0001400eb0cc:
+        if (3 < uVar7) {
+LAB_17:
+          uVar9 = uVar9 >> 6;
+          goto LAB_1;
+        }
+      }
+      else {
+        if (iVar2 != 0x4c) goto LAB_14;
         if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+          if (plVar3 == (longlong *)0x0) {
+            uVar7 = 0xffffffff;
           }
           else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            if (plVar3 == (longlong *)0x0) goto LAB_2;
-            uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2d);
-          }
-          else {
-            uVar10 = local_res18 >> 8 & 0xff;
-          }
-          goto LAB_6;
-        }
-      }
-      else if (iVar2 == 0x2f) {
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-        if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            if (plVar3 == (longlong *)0x0) goto LAB_2;
-            uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2d);
-          }
-          else {
-            uVar10 = local_res18 >> 8 & 0xff;
-          }
-LAB_22:
-          uVar10 = uVar10 >> 7;
-          goto LAB_2;
-        }
-      }
-      else if (iVar2 == 0x32) {
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-        if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            if (plVar3 == (longlong *)0x0) goto LAB_2;
-            uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2e);
-          }
-          else {
-            uVar10 = (uint)bVar6;
-          }
-          goto LAB_7;
-        }
-      }
-      else {
-        if (iVar2 != 0x33) goto LAB_8;
-        if (*(short *)(puVar4[5] + 4) == 6) goto LAB_1;
-        if (3 < *(uint *)(param_1 + 6)) {
-          if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-          }
-          if (uVar9 == 0) {
-            if (plVar3 == (longlong *)0x0) goto LAB_2;
-            uVar10 = (uint)*(byte *)((longlong)plVar3 + 0x2e);
-          }
-          else {
-            uVar10 = (uint)bVar6;
-          }
-          goto LAB_21;
-        }
-      }
-      goto LAB_9;
-    }
-LAB_17:
-    if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
-      uVar10 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar10 = Feature_5988_5730__private_featureState & 1;
-    }
-    if ((uVar10 == 0) && (*(int *)((longlong)param_1 + 0x24) == 0x27)) {
-LAB_8:
-      lVar13 = 0xc00000bb;
-      goto LAB_5;
-    }
-    if ((int)param_1[6] == 0) goto LAB_9;
-    if ((Feature_5988_5730__private_featureState & 0x10) == 0) {
-      uVar10 = Feature_5988_5730__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar10 = Feature_5988_5730__private_featureState & 1;
-    }
-    if (uVar10 == 0) {
-      if (plVar3 == (longlong *)0x0) {
-        bVar6 = 0;
-      }
-      else {
-        bVar6 = *(byte *)((longlong)plVar3 + 0x31);
-      }
-    }
-    else if ((plVar3 == (longlong *)0x0) ||
-            (cVar15 = *(char *)((longlong)plVar3 + 0x31), cVar15 != -1)) {
-      bVar6 = cVar15 << 2;
-    }
-    else {
-      bVar6 = (byte)local_res20;
-    }
-LAB_20:
-    uVar10 = *(uint *)(param_1 + 6);
-LAB_19:
-    if (3 < uVar10) {
-      *(uint *)param_1[5] = (uint)bVar6;
-      goto LAB_12;
-    }
-    *(byte *)param_1[5] = bVar6;
-LAB_10:
-    *(uint *)(param_1 + 6) = uVar14;
-LAB_5:
-    if (plVar3 == (longlong *)0x0) goto LAB_16;
+            uVar7 = *(uint *)((longlong)plVar3 + 0x6c);
+          }
+          goto LAB_15;
+        }
+      }
+      goto LAB_2;
+    }
+    if (*(uint *)(param_1 + 6) < 4) goto LAB_2;
+    uVar7 = (uint)(uVar16 >> 4) & 3;
+LAB_15:
+    *(uint *)param_1[5] = uVar7;
+LAB_13:
+    *(undefined4 *)(param_1 + 6) = 4;
+    lVar12 = 0;
+LAB_3:
+    if (plVar3 == (longlong *)0x0) goto LAB_9;
   }
-  RtlReleaseReadLock(plVar3 + 0xe,local_res10);
-LAB_16:
-  IppDereferenceCompartment(lVar11);
-  return lVar13;
+  RtlReleaseReadLock(plVar3 + 0xe,cVar18);
+LAB_9:
+  IppDereferenceCompartment(lVar8);
+  return lVar12;
 }
 

```


## Fl8AddGroup

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.17|
|i_ratio|0.26|
|m_ratio|0.9|
|b_ratio|0.36|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Fl8AddGroup|Fl8AddGroup|
|fullname|Fl8AddGroup|Fl8AddGroup|
|`refcount`|9|6|
|`length`|897|1065|
|`called`|<details><summary>Expand for full list:<br>FlpDeleteGroupUnderLock<br>FlpInterfaceAcquireWriteLock<br>FlpInterfaceReleaseReadLock<br>FlpSerializedNdisRequestUnderLock<br>McTemplateK0z_EtwWriteTransfer<br>NTOSKRNL.EXE::ExAllocateFromLookasideListEx<br>PplpLazyInitializeLookasideList<br>__security_check_cookie<br>_guard_dispatch_icall<br>memcmp<br>memmove</summary></details>|<details><summary>Expand for full list:<br>Feature_3535250745__private_IsEnabledDeviceUsageNoInline<br>FlpDeleteGroupUnderLock<br>FlpSerializedNdisRequestUnderLock<br>McTemplateK0z_EtwWriteTransfer<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::ExAllocateFromLookasideListEx<br>PplpLazyInitializeLookasideList<br>__security_check_cookie<br>_guard_dispatch_icall<br>memcmp</summary>memmove</details>|
|calling|||
|paramcount|0|0|
|`address`|1400491e0|14014b2e0|
|sig|undefined Fl8AddGroup(void)|undefined Fl8AddGroup(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Fl8AddGroup Called Diff


```diff
--- Fl8AddGroup called
+++ Fl8AddGroup called
@@ -0,0 +1 @@
+Feature_3535250745__private_IsEnabledDeviceUsageNoInline
@@ -2,2 +2,0 @@
-FlpInterfaceAcquireWriteLock
-FlpInterfaceReleaseReadLock
@@ -5,0 +5,2 @@
+NDIS.SYS::NdisAcquireRWLockWrite
+NDIS.SYS::NdisReleaseRWLock
```


### Fl8AddGroup Diff


```diff
--- Fl8AddGroup
+++ Fl8AddGroup
@@ -1,210 +1,264 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 ulonglong Fl8AddGroup(undefined8 *param_1)
 
 {
-  longlong *plVar1;
-  byte bVar2;
-  byte bVar3;
-  longlong lVar4;
+  byte bVar1;
+  longlong lVar2;
+  undefined8 *puVar3;
+  undefined8 uVar4;
   code *pcVar5;
   undefined1 auVar6 [13];
   undefined1 auVar7 [13];
   uint5 uVar8;
   undefined1 auVar9 [13];
   undefined1 auVar10 [13];
   uint uVar11;
   uint uVar12;
-  uint uVar13;
-  uint uVar14;
+  ulonglong uVar13;
+  longlong *plVar14;
   longlong *plVar15;
   ulonglong uVar16;
-  ulonglong uVar17;
+  byte *pbVar17;
   longlong *plVar18;
-  byte *pbVar19;
-  int iVar20;
+  int iVar19;
+  uint uVar20;
   uint uVar21;
   ulonglong uVar22;
-  ulonglong uVar23;
-  undefined8 *puVar24;
-  longlong lVar25;
-  undefined8 *puVar26;
+  uint uVar23;
+  longlong lVar24;
+  undefined1 *puVar25;
+  undefined1 *puVar26;
   uint uVar27;
-  uint uVar28;
-  int iVar29;
-  int iVar30;
+  ulonglong uVar29;
+  undefined8 *puVar30;
   int iVar31;
   int iVar32;
   int iVar33;
   int iVar34;
   int iVar35;
   int iVar36;
-  undefined1 auStack_88 [32];
-  undefined8 local_68;
-  undefined8 local_60;
+  int iVar37;
+  int iVar38;
+  undefined1 auStack_88 [8];
+  undefined1 auStack_80 [40];
   undefined2 local_58;
-  undefined1 local_56;
-  uint local_50 [8];
+  undefined1 uStack_56;
+  undefined4 local_50;
+  uint auStack_4c [7];
   ulonglong local_30;
+  ulonglong uVar28;
   
+  puVar26 = auStack_88;
+  puVar25 = auStack_88;
   local_30 = __security_cookie ^ (ulonglong)auStack_88;
-  uVar16 = 0;
-  uVar14 = 0;
-  lVar4 = *(longlong *)(param_1[2] + 0x48);
+  uVar13 = 0;
+  uVar27 = 0;
+  uVar12 = 0;
+  lVar2 = *(longlong *)(param_1[2] + 0x48);
   local_58 = 0;
-  local_56 = 0;
-  lVar25 = *(longlong *)(lVar4 + 0x20);
-  bVar2 = *(byte *)(lVar4 + 0x48a);
+  uStack_56 = 0;
+  lVar24 = *(longlong *)(lVar2 + 0x20);
+  bVar1 = *(byte *)(lVar2 + 0x48a);
   *(undefined8 *)param_1[5] = 0;
-  iVar29 = (**(code **)(lVar25 + 0x198))(local_50,param_1[4],lVar4);
-  if (iVar29 != 0) {
-    return 0xc0000001;
-  }
-  FlpInterfaceAcquireWriteLock(lVar4,&local_58);
-  uVar28 = 0;
-  uVar27 = (uint)bVar2;
-  uVar17 = uVar16;
-  if (bVar2 != 0) {
-    uVar22 = uVar16;
-    if (7 < uVar27) {
-      iVar33 = 0;
-      iVar34 = 0;
-      iVar35 = 0;
-      iVar36 = 0;
-      iVar29 = 0;
-      iVar30 = 0;
-      iVar31 = 0;
-      iVar32 = 0;
+  iVar31 = (**(code **)(lVar24 + 0x198))(&local_50,param_1[4],lVar2);
+  if (iVar31 != 0) {
+    uVar13 = 0xc0000001;
+    puVar26 = auStack_88;
+    goto LAB_0;
+  }
+  NdisAcquireRWLockWrite(*(undefined8 *)(lVar2 + 0x28),&local_58,0);
+  uVar23 = (uint)bVar1;
+  uVar16 = uVar13;
+  uVar28 = uVar13;
+  if (7 < uVar23) {
+    iVar35 = 0;
+    iVar36 = 0;
+    iVar37 = 0;
+    iVar38 = 0;
+    iVar31 = 0;
+    iVar32 = 0;
+    iVar33 = 0;
+    iVar34 = 0;
+    do {
+      iVar19 = (int)uVar16;
+      uVar21 = *(uint *)((longlong)auStack_4c + (uVar16 - 4));
+      uVar20 = iVar19 + 8;
+      uVar16 = (ulonglong)uVar20;
+      auVar6[0xc] = (char)(uVar21 >> 0x18);
+      auVar6._0_12_ = ZEXT712(0);
+      uVar8 = CONCAT32(auVar6._10_3_,(ushort)(byte)(uVar21 >> 0x10));
+      auVar9._5_8_ = 0;
+      auVar9._0_5_ = uVar8;
+      iVar35 = iVar35 + (uVar21 & 0xff);
+      iVar36 = iVar36 + (int)CONCAT72(SUB137(auVar9 << 0x40,6),(ushort)(byte)(uVar21 >> 8));
+      iVar37 = iVar37 + (int)uVar8;
+      iVar38 = iVar38 + (uint)(uint3)(auVar6._10_3_ >> 0x10);
+      uVar21 = *(uint *)((longlong)auStack_4c + ((ulonglong)(iVar19 + 4) - 4));
+      auVar7[0xc] = (char)(uVar21 >> 0x18);
+      auVar7._0_12_ = ZEXT712(0);
+      uVar8 = CONCAT32(auVar7._10_3_,(ushort)(byte)(uVar21 >> 0x10));
+      auVar10._5_8_ = 0;
+      auVar10._0_5_ = uVar8;
+      iVar31 = iVar31 + (uVar21 & 0xff);
+      iVar32 = iVar32 + (int)CONCAT72(SUB137(auVar10 << 0x40,6),(ushort)(byte)(uVar21 >> 8));
+      iVar33 = iVar33 + (int)uVar8;
+      iVar34 = iVar34 + (uint)(uint3)(auVar7._10_3_ >> 0x10);
+    } while (uVar20 < (bVar1 & 0xfffffff8));
+    uVar28 = (ulonglong)
+             (uint)(iVar31 + iVar35 + iVar33 + iVar37 + iVar32 + iVar36 + iVar34 + iVar38);
+  }
+  iVar31 = (int)uVar28;
+  uVar21 = (uint)uVar16;
+  if (uVar21 < uVar23) {
+    uVar20 = uVar12;
+    if (uVar23 - uVar21 < 2) {
+LAB_1:
+      iVar31 = iVar31 + (uint)*(byte *)((longlong)auStack_4c + (uVar16 - 4));
+    }
+    else {
+      uVar11 = ((uVar23 - uVar21) - 2 >> 1) + 1;
+      uVar29 = (ulonglong)uVar11;
+      uVar28 = uVar13;
+      uVar22 = uVar13;
       do {
-        iVar20 = (int)uVar22;
-        uVar13 = *(uint *)((longlong)local_50 + uVar22);
-        uVar21 = iVar20 + 8;
-        uVar22 = (ulonglong)uVar21;
-        auVar6[0xc] = (char)(uVar13 >> 0x18);
-        auVar6._0_12_ = ZEXT712(0);
-        uVar8 = CONCAT32(auVar6._10_3_,(ushort)(byte)(uVar13 >> 0x10));
-        auVar9._5_8_ = 0;
-        auVar9._0_5_ = uVar8;
-        iVar33 = iVar33 + (uVar13 & 0xff);
-        iVar34 = iVar34 + (int)CONCAT72(SUB137(auVar9 << 0x40,6),(ushort)(byte)(uVar13 >> 8));
-        iVar35 = iVar35 + (int)uVar8;
-        iVar36 = iVar36 + (uint)(uint3)(auVar6._10_3_ >> 0x10);
-        uVar13 = *(uint *)((longlong)local_50 + (ulonglong)(iVar20 + 4));
-        auVar7[0xc] = (char)(uVar13 >> 0x18);
-        auVar7._0_12_ = ZEXT712(0);
-        uVar8 = CONCAT32(auVar7._10_3_,(ushort)(byte)(uVar13 >> 0x10));
-        auVar10._5_8_ = 0;
-        auVar10._0_5_ = uVar8;
-        iVar29 = iVar29 + (uVar13 & 0xff);
-        iVar30 = iVar30 + (int)CONCAT72(SUB137(auVar10 << 0x40,6),(ushort)(byte)(uVar13 >> 8));
-        iVar31 = iVar31 + (int)uVar8;
-        iVar32 = iVar32 + (uint)(uint3)(auVar7._10_3_ >> 0x10);
-      } while (uVar21 < (bVar2 & 0xfffffff8));
-      uVar17 = (ulonglong)
-               (uint)(iVar29 + iVar33 + iVar31 + iVar35 + iVar30 + iVar34 + iVar32 + iVar36);
-      if (uVar27 <= uVar21) goto LAB_0;
-    }
-    pbVar19 = (byte *)((longlong)local_50 + uVar22);
-    uVar22 = (ulonglong)((uint)bVar2 - (int)uVar22);
-    do {
-      bVar3 = *pbVar19;
-      pbVar19 = pbVar19 + 1;
-      uVar17 = (ulonglong)((int)uVar17 + (uint)bVar3);
-      uVar22 = uVar22 - 1;
-    } while (uVar22 != 0);
-  }
-LAB_0:
-  puVar26 = (undefined8 *)
-            (((ulonglong)(uint)((int)uVar17 + (int)(uVar17 / 0x1d) * -0x1d) + 0x15) * 0x10 + lVar4);
-  for (puVar24 = (undefined8 *)*puVar26; puVar24 != puVar26; puVar24 = (undefined8 *)*puVar24) {
-    plVar15 = puVar24 + -2;
-    iVar29 = memcmp((void *)((longlong)puVar24 + 0x12),local_50,(ulonglong)bVar2);
-    if (iVar29 == 0) {
-      if (plVar15 != (longlong *)0x0) {
-        *(short *)(puVar24 + 2) = *(short *)(puVar24 + 2) + 1;
-        goto LAB_1;
+        uVar27 = (int)uVar28 + (uint)*(byte *)((longlong)auStack_4c + (uVar16 - 4));
+        uVar28 = (ulonglong)uVar27;
+        uVar20 = (int)uVar22 + (uint)*(byte *)((longlong)auStack_4c + (uVar16 - 3));
+        uVar22 = (ulonglong)uVar20;
+        uVar16 = uVar16 + 2;
+        uVar29 = uVar29 - 1;
+      } while (uVar29 != 0);
+      if (uVar21 + uVar11 * 2 < uVar23) goto LAB_1;
+    }
+    uVar28 = (ulonglong)(iVar31 + uVar20 + uVar27);
+  }
+  puVar30 = (undefined8 *)
+            (((ulonglong)(uint)((int)uVar28 + (int)(uVar28 / 0x1d) * -0x1d) + 0x15) * 0x10 + lVar2);
+  for (puVar3 = (undefined8 *)*puVar30; puVar3 != puVar30; puVar3 = (undefined8 *)*puVar3) {
+    plVar14 = puVar3 + -2;
+    iVar31 = memcmp(puVar3 + 3,&local_50,(ulonglong)bVar1);
+    if (iVar31 == 0) {
+      if (plVar14 != (longlong *)0x0) {
+        if ((Feature_3535250745__private_featureState & 0x10) == 0) {
+          uVar12 = Feature_3535250745__private_IsEnabledDeviceUsageNoInline();
+        }
+        else {
+          uVar12 = Feature_3535250745__private_featureState & 1;
+        }
+        if (uVar12 == 0) {
+          *(short *)(puVar3 + 2) = *(short *)(puVar3 + 2) + 1;
+          puVar26 = auStack_88;
+        }
+        else {
+          LOCK();
+          plVar15 = puVar3 + 2;
+          lVar24 = *plVar15;
+          *plVar15 = *plVar15 + 1;
+          UNLOCK();
+          if (lVar24 + 1 < 2) {
+            pcVar5 = (code *)swi(0x29);
+            (*pcVar5)(0xe);
+            puVar26 = auStack_80;
+          }
+        }
+        goto LAB_2;
       }
       break;
     }
   }
-  lVar25 = (ulonglong)(SystemReserved1[0x12]._4_4_ + 1) * 0x80 + FlpGroupBlockPool;
-  if (*(char *)(lVar25 + 0xb0) == '\0') {
-    PplpLazyInitializeLookasideList(FlpGroupBlockPool,lVar25 + 0x40);
-  }
-  plVar15 = (longlong *)ExAllocateFromLookasideListEx(lVar25 + 0x40);
-  if (plVar15 == (longlong *)0x0) {
-    if (DAT_2 < '\0') {
+  lVar24 = (ulonglong)(SystemReserved1[0x12]._4_4_ + 1) * 0x80 + FlpGroupBlockPool;
+  if (*(char *)(lVar24 + 0xb0) == '\0') {
+    PplpLazyInitializeLookasideList(FlpGroupBlockPool,lVar24 + 0x40);
+  }
+  plVar14 = (longlong *)ExAllocateFromLookasideListEx(lVar24 + 0x40);
+  if (plVar14 == (longlong *)0x0) {
+    if (DAT_3 < '\0') {
       McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
     }
-    FlpInterfaceReleaseReadLock(lVar4,&local_58);
-    return 0xc000009a;
-  }
-  *plVar15 = lVar4;
-  *(undefined1 *)(plVar15 + 1) = 1;
-  *(undefined2 *)(plVar15 + 4) = 1;
-  memmove((void *)((longlong)plVar15 + 0x22),local_50,(ulonglong)*(byte *)(lVar4 + 0x48a));
-  if (uVar27 < 2) {
-    uVar17 = uVar16;
-    uVar21 = uVar28;
-    uVar11 = 0;
-    uVar12 = 0;
-    if (bVar2 == 0) goto LAB_3;
+    NdisReleaseRWLock(*(undefined8 *)(lVar2 + 0x28),&local_58);
+    uVar13 = 0xc000009a;
+    puVar26 = auStack_88;
+    goto LAB_0;
+  }
+  *plVar14 = lVar2;
+  *(undefined1 *)(plVar14 + 1) = 1;
+  if ((Feature_3535250745__private_featureState & 0x10) == 0) {
+    uVar27 = Feature_3535250745__private_IsEnabledDeviceUsageNoInline();
   }
   else {
-    uVar13 = (bVar2 - 2 >> 1) + 1;
-    uVar23 = (ulonglong)uVar13;
-    pbVar19 = (byte *)((longlong)plVar15 + 0x23);
-    uVar17 = uVar16;
-    uVar22 = uVar16;
+    uVar27 = Feature_3535250745__private_featureState & 1;
+  }
+  if (uVar27 == 0) {
+    *(undefined2 *)(plVar14 + 4) = 1;
+  }
+  else {
+    plVar14[4] = 1;
+  }
+  memmove(plVar14 + 5,&local_50,(ulonglong)*(byte *)(lVar2 + 0x48a));
+  uVar16 = uVar13;
+  uVar28 = uVar13;
+  if (uVar23 < 2) {
+    uVar22 = uVar13;
+    if (bVar1 != 0) goto LAB_4;
+  }
+  else {
+    uVar27 = (uVar23 - 2 >> 1) + 1;
+    uVar22 = (ulonglong)uVar27;
+    pbVar17 = (byte *)((longlong)plVar14 + 0x29);
     do {
-      uVar14 = (int)uVar17 + (uint)pbVar19[-1];
-      uVar17 = (ulonglong)uVar14;
-      uVar21 = (int)uVar22 + (uint)*pbVar19;
-      uVar22 = (ulonglong)uVar21;
-      uVar23 = uVar23 - 1;
-      pbVar19 = pbVar19 + 2;
-    } while (uVar23 != 0);
-    uVar17 = (ulonglong)uVar13 * 2;
-    uVar11 = uVar21;
-    uVar12 = uVar14;
-    if (uVar27 <= uVar13 * 2) goto LAB_3;
-  }
-  uVar14 = uVar12;
-  uVar21 = uVar11;
-  uVar28 = (uint)*(byte *)(uVar17 + 0x22 + (longlong)plVar15);
-LAB_3:
-  plVar1 = plVar15 + 2;
-  plVar18 = (longlong *)((ulonglong)((uVar21 + uVar14 + uVar28) % 0x1d) * 0x10 + 0x150 + lVar4);
-  lVar25 = *plVar18;
-  if (*(longlong **)(lVar25 + 8) != plVar18) {
+      uVar16 = (ulonglong)((int)uVar16 + (uint)pbVar17[-1]);
+      uVar28 = (ulonglong)((int)uVar28 + (uint)*pbVar17);
+      uVar22 = uVar22 - 1;
+      pbVar17 = pbVar17 + 2;
+    } while (uVar22 != 0);
+    uVar22 = (ulonglong)uVar27 * 2;
+    if (uVar27 * 2 < uVar23) {
+LAB_4:
+      uVar12 = (uint)*(byte *)(uVar22 + 0x28 + (longlong)plVar14);
+    }
+  }
+  plVar15 = plVar14 + 2;
+  plVar18 = (longlong *)
+            ((ulonglong)(((int)uVar28 + (int)uVar16 + uVar12) % 0x1d) * 0x10 + 0x150 + lVar2);
+  lVar24 = *plVar18;
+  if (*(longlong **)(lVar24 + 8) != plVar18) {
+    plVar18 = (longlong *)0x3;
     pcVar5 = (code *)swi(0x29);
-    (*pcVar5)(3);
-    pcVar5 = (code *)swi(3);
-    uVar16 = (*pcVar5)();
-    return uVar16;
-  }
-  *plVar1 = lVar25;
-  plVar15[3] = (longlong)plVar18;
-  *(longlong **)(lVar25 + 8) = plVar1;
-  *plVar18 = (longlong)plVar1;
-  *(int *)(lVar4 + 0x148) = *(int *)(lVar4 + 0x148) + 1;
-LAB_1:
-  if ((char)plVar15[1] != '\0') {
-    local_60 = *param_1;
-    local_68 = param_1[1];
-    uVar14 = FlpSerializedNdisRequestUnderLock
-                       (lVar4,FlpSerializedNdisAddGroupWorker,plVar15,param_1[3]);
-    uVar16 = (ulonglong)uVar14;
-    if ((int)uVar14 < 0) {
-      FlpDeleteGroupUnderLock(lVar4,plVar15);
-      FlpInterfaceReleaseReadLock(lVar4,&local_58);
-      return uVar16;
-    }
-  }
-  FlpInterfaceReleaseReadLock(lVar4,&local_58);
-  *(longlong **)param_1[5] = plVar15;
-  return uVar16;
+    plVar15 = (longlong *)(*pcVar5)();
+    puVar25 = auStack_80;
+  }
+  *plVar15 = lVar24;
+  plVar15[1] = (longlong)plVar18;
+  *(longlong **)(lVar24 + 8) = plVar15;
+  *plVar18 = (longlong)plVar15;
+  *(int *)(lVar2 + 0x148) = *(int *)(lVar2 + 0x148) + 1;
+  puVar26 = puVar25;
+LAB_2:
+  if ((char)plVar14[1] != '\0') {
+    uVar4 = param_1[3];
+    *(undefined8 *)(puVar26 + 0x28) = *param_1;
+    *(undefined8 *)(puVar26 + 0x20) = param_1[1];
+    *(undefined8 *)(puVar26 + -8) = 0x14014b68f;
+    uVar12 = FlpSerializedNdisRequestUnderLock(lVar2,FlpSerializedNdisAddGroupWorker,plVar14,uVar4);
+    uVar13 = (ulonglong)uVar12;
+    if ((int)uVar12 < 0) {
+      *(undefined8 *)(puVar26 + -8) = 0x14014b6a0;
+      FlpDeleteGroupUnderLock(lVar2,plVar14);
+      uVar4 = *(undefined8 *)(lVar2 + 0x28);
+      *(undefined8 *)(puVar26 + -8) = 0x14014b6b0;
+      NdisReleaseRWLock(uVar4,puVar26 + 0x30);
+      goto LAB_0;
+    }
+  }
+  uVar4 = *(undefined8 *)(lVar2 + 0x28);
+  *(undefined8 *)(puVar26 + -8) = 0x14014b6c7;
+  NdisReleaseRWLock(uVar4,puVar26 + 0x30);
+  *(longlong **)param_1[5] = plVar14;
+LAB_0:
+  *(undefined8 *)(puVar26 + -8) = 0x14014b6ff;
+  return uVar13;
 }
 

```


## FlpDeleteGroupUnderLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.43|
|i_ratio|0.34|
|m_ratio|0.76|
|b_ratio|0.69|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlpDeleteGroupUnderLock|FlpDeleteGroupUnderLock|
|fullname|FlpDeleteGroupUnderLock|FlpDeleteGroupUnderLock|
|refcount|3|3|
|`length`|127|189|
|`called`|FlpSerializedNdisRequestUnderLock<br>PplFreeToLookasideList|Feature_3535250745__private_IsEnabledDeviceUsageNoInline<br>FlpSerializedNdisRequestUnderLock<br>PplFreeToLookasideList|
|calling|Fl8AddGroup<br>Fl8DeleteGroup|Fl8AddGroup<br>Fl8DeleteGroup|
|paramcount|0|0|
|`address`|140120cd8|140102b98|
|sig|undefined FlpDeleteGroupUnderLock(void)|undefined FlpDeleteGroupUnderLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlpDeleteGroupUnderLock Called Diff


```diff
--- FlpDeleteGroupUnderLock called
+++ FlpDeleteGroupUnderLock called
@@ -0,0 +1 @@
+Feature_3535250745__private_IsEnabledDeviceUsageNoInline
```


### FlpDeleteGroupUnderLock Diff


```diff
--- FlpDeleteGroupUnderLock
+++ FlpDeleteGroupUnderLock
@@ -1,32 +1,57 @@
 
 void FlpDeleteGroupUnderLock(longlong param_1,longlong param_2)
 
 {
   short *psVar1;
   longlong *plVar2;
   longlong lVar3;
   longlong *plVar4;
   code *pcVar5;
+  uint uVar6;
   
-  psVar1 = (short *)(param_2 + 0x20);
-  *psVar1 = *psVar1 + -1;
-  if (*psVar1 == 0) {
-    plVar2 = (longlong *)(param_2 + 0x10);
-    lVar3 = *plVar2;
-    if ((*(longlong **)(lVar3 + 8) != plVar2) ||
-       (plVar4 = *(longlong **)(param_2 + 0x18), (longlong *)*plVar4 != plVar2)) {
-      pcVar5 = (code *)swi(0x29);
-      (*pcVar5)(3);
-      pcVar5 = (code *)swi(3);
-      (*pcVar5)();
+  if ((Feature_3535250745__private_featureState & 0x10) == 0) {
+    uVar6 = Feature_3535250745__private_IsEnabledDeviceUsageNoInline();
+  }
+  else {
+    uVar6 = Feature_3535250745__private_featureState & 1;
+  }
+  if (uVar6 == 0) {
+    psVar1 = (short *)(param_2 + 0x20);
+    *psVar1 = *psVar1 + -1;
+    if (*psVar1 != 0) {
       return;
     }
+  }
+  else {
+    LOCK();
+    plVar2 = (longlong *)(param_2 + 0x20);
+    lVar3 = *plVar2;
+    *plVar2 = *plVar2 + -1;
+    UNLOCK();
+    if (1 < lVar3) {
+      return;
+    }
+    if (lVar3 != 1) {
+      pcVar5 = (code *)swi(0x29);
+      (*pcVar5)(0xe);
+      return;
+    }
+  }
+  plVar2 = (longlong *)(param_2 + 0x10);
+  lVar3 = *plVar2;
+  if ((*(longlong **)(lVar3 + 8) == plVar2) &&
+     (plVar4 = *(longlong **)(param_2 + 0x18), (longlong *)*plVar4 == plVar2)) {
     *plVar4 = lVar3;
     *(longlong **)(lVar3 + 8) = plVar4;
     *(int *)(param_1 + 0x148) = *(int *)(param_1 + 0x148) + -1;
     FlpSerializedNdisRequestUnderLock(param_1,FlpSerializedNdisDeleteGroupWorker,0,0,0,0);
     PplFreeToLookasideList(FlpGroupBlockPool,param_2);
+    return;
   }
+  pcVar5 = (code *)swi(0x29);
+  (*pcVar5)(3);
+  pcVar5 = (code *)swi(3);
+  (*pcVar5)();
   return;
 }
 

```


## IppLoopbackEnqueue

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.26|
|i_ratio|0.52|
|m_ratio|0.92|
|b_ratio|0.9|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppLoopbackEnqueue|IppLoopbackEnqueue|
|fullname|IppLoopbackEnqueue|IppLoopbackEnqueue|
|`refcount`|6|5|
|`length`|2316|1985|
|`called`|<details><summary>Expand for full list:<br>Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline<br>INETADDR_SETSOCKADDR<br>IPSecCleanupInboundPacketState<br>IPSecCleanupOutboundPacketState<br>IPSecIsInboundContextTunnel<br>IPSecIsOutboundTunnelContextAllowOutboundClear<br>IPSecIsOutboundTunnelContextBypassIPsecEnabled<br>IPSecIsPacketContextOutbound<br>IPSecUnPendPacket<br>IPsecIsOutPktGoingToBeFragmented<br>IPsecTunnelIsInnerPktIPsecRelated</summary>IpSecOutboundPktTunnelProcessingCommon<br>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbLogAndDropPackets<br>Ipv4pFillPacketChecksum<br>McTemplateK0pqqqbr3br3q_EtwWriteTransfer<br>NETIO.SYS::KfdAreAllIpv4InLayersEmpty<br>NETIO.SYS::NetioPhFillUInt16AtOffset<br>NETIO.SYS::WfpNblInfoGet<br>NTOSKRNL.EXE::KeAcquireSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeExpandKernelStackAndCalloutEx<br>NTOSKRNL.EXE::KeGetCurrentIrql<br>NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeQueryDpcWatchdogInformation<br>NTOSKRNL.EXE::KeReleaseSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KfRaiseIrql<br>SOCKADDR_SIZE<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>__security_check_cookie<br>memset</details>|<details><summary>Expand for full list:<br>INETADDR_SETSOCKADDR<br>IPSecCleanupInboundPacketState<br>IPSecCleanupOutboundPacketState<br>IPSecIsInboundContextTunnel<br>IPSecIsOutboundTunnelContextAllowOutboundClear<br>IPSecIsOutboundTunnelContextBypassIPsecEnabled<br>IPSecIsPacketContextOutbound<br>IPSecUnPendPacket<br>IPsecIsOutPktGoingToBeFragmented<br>IPsecTunnelIsInnerPktIPsecRelated<br>IpSecOutboundPktTunnelProcessingCommon</summary>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbLogAndDropPackets<br>IppTranslateTransmitToReceiveNbl<br>McTemplateK0pqqqbr3br3q_EtwWriteTransfer<br>NETIO.SYS::WfpNblInfoGet<br>NTOSKRNL.EXE::KeAcquireSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeExpandKernelStackAndCalloutEx<br>NTOSKRNL.EXE::KeGetCurrentIrql<br>NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeQueryDpcWatchdogInformation<br>NTOSKRNL.EXE::KeReleaseSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KfRaiseIrql<br>SOCKADDR_SIZE<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>__security_check_cookie<br>memset</details>|
|calling|IpNlpFastContinueSendLoopbackDatagrams<br>IppDispatchSendPacketHelper|IpNlpFastContinueSendLoopbackDatagrams<br>IppDispatchSendPacketHelper|
|paramcount|0|0|
|`address`|1400b51d0|1400b6030|
|sig|undefined IppLoopbackEnqueue(void)|undefined IppLoopbackEnqueue(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppLoopbackEnqueue Called Diff


```diff
--- IppLoopbackEnqueue called
+++ IppLoopbackEnqueue called
@@ -1 +0,0 @@
-Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline
@@ -15 +14 @@
-Ipv4pFillPacketChecksum
+IppTranslateTransmitToReceiveNbl
@@ -17,2 +15,0 @@
-NETIO.SYS::KfdAreAllIpv4InLayersEmpty
-NETIO.SYS::NetioPhFillUInt16AtOffset
```


### IppLoopbackEnqueue Diff


```diff
--- IppLoopbackEnqueue
+++ IppLoopbackEnqueue
@@ -1,412 +1,351 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void IppLoopbackEnqueue(longlong *param_1,undefined1 *param_2,char param_3)
 
 {
-  longlong *plVar1;
-  longlong lVar2;
-  undefined8 *puVar3;
-  undefined1 *puVar4;
-  bool bVar5;
+  longlong lVar1;
+  longlong *plVar2;
+  undefined1 *puVar3;
+  bool bVar4;
+  undefined1 uVar5;
   char cVar6;
-  undefined1 uVar7;
-  byte bVar8;
-  undefined4 uVar9;
-  int iVar10;
-  uint uVar11;
-  int *piVar12;
-  longlong lVar13;
-  ushort uVar14;
-  uint uVar15;
-  ulonglong uVar16;
-  undefined2 uVar17;
-  undefined2 uVar18;
+  byte bVar7;
+  int iVar8;
+  uint uVar9;
+  int *piVar10;
+  longlong lVar11;
+  ulonglong uVar12;
+  undefined2 uVar13;
+  undefined2 uVar14;
+  longlong *plVar15;
+  undefined4 uVar16;
+  int *piVar17;
+  undefined4 *puVar18;
   undefined8 uVar19;
-  longlong *plVar20;
-  undefined4 uVar21;
-  int *piVar22;
-  undefined4 *puVar23;
-  int iVar24;
-  ulonglong uVar25;
   undefined4 extraout_XMM0_Da;
-  undefined1 auStack_218 [32];
-  undefined8 local_1f8;
-  undefined4 local_1f0;
-  uint local_1e8;
-  undefined1 *local_1e0;
-  undefined1 *local_1d8;
-  undefined4 local_1d0;
-  char local_1c8;
-  uint local_1c4;
-  int local_1c0;
-  undefined8 local_1b8;
+  undefined1 auStack_208 [32];
+  undefined8 local_1e8;
+  undefined4 local_1e0;
+  uint local_1d8;
+  undefined1 *local_1d0;
+  undefined1 *local_1c8;
+  undefined4 local_1c0;
+  char local_1b8;
+  uint local_1b4;
+  int local_1b0;
+  uint local_1ac;
   longlong local_1a8;
   longlong *plStack_1a0;
-  undefined4 local_198;
-  int local_194;
-  longlong local_190;
-  undefined1 *local_188;
+  undefined1 *local_198;
+  undefined4 local_190;
+  undefined4 local_18c;
+  int local_188;
   longlong local_178;
   longlong *plStack_170;
   undefined8 local_168;
   undefined8 uStack_160;
   ulonglong local_158;
   undefined1 local_148 [128];
   undefined1 local_c8 [128];
   ulonglong local_48;
   
-  local_48 = __security_cookie ^ (ulonglong)auStack_218;
-  iVar10 = 0;
-  local_1c0 = 0;
-  local_1c8 = param_3;
-  local_188 = param_2;
+  local_48 = __security_cookie ^ (ulonglong)auStack_208;
+  iVar8 = 0;
+  local_1b0 = 0;
+  local_1b8 = param_3;
+  local_198 = param_2;
   cVar6 = param_3;
   do {
-    plVar20 = (longlong *)*param_1;
-    if (plVar20 == (longlong *)0x0) {
+    plVar15 = (longlong *)*param_1;
+    if (plVar15 == (longlong *)0x0) {
       return;
     }
     plStack_170 = &local_178;
     local_178 = 0;
-    local_194 = *(int *)(plVar20[1] + 0xd0);
+    local_188 = *(int *)(plVar15[1] + 0xd0);
     do {
-      if ((*(int *)(param_2 + 0x4d18) != 0) && (*(int *)(plVar20[1] + 0xd0) != local_194)) break;
-      local_190 = *(longlong *)(plVar20[0x1b] + 8);
-      *(byte *)((longlong)plVar20 + 0xb9) = *(byte *)((longlong)plVar20 + 0xb9) & 0xbf;
-      plVar1 = (longlong *)*param_1;
-      if (plVar1 != (longlong *)0x0) {
-        *param_1 = *plVar1;
-        *plVar1 = 0;
-        if ((longlong *)param_1[1] == plVar1) {
+      if ((*(int *)(param_2 + 0x4d18) != 0) && (*(int *)(plVar15[1] + 0xd0) != local_188)) break;
+      lVar1 = *(longlong *)(plVar15[0x1b] + 8);
+      *(byte *)((longlong)plVar15 + 0xb9) = *(byte *)((longlong)plVar15 + 0xb9) & 0xbf;
+      plVar2 = (longlong *)*param_1;
+      if (plVar2 != (longlong *)0x0) {
+        *param_1 = *plVar2;
+        *plVar2 = 0;
+        if ((longlong *)param_1[1] == plVar2) {
           param_1[1] = (longlong)param_1;
         }
       }
       if (cVar6 == '\0') {
 LAB_0:
-        lVar13 = local_190;
         if (DAT_1 < '\0') {
           memset(local_148,0,0x80);
           memset(local_c8,0,0x80);
-          uVar18 = 0;
-          if (((int)plVar20[4] == 6) || ((int)plVar20[4] == 0x11)) {
-            bVar5 = true;
-            uVar17 = *(undefined2 *)((longlong)plVar20 + 0xbe);
+          uVar14 = 0;
+          if (((int)plVar15[4] == 6) || ((int)plVar15[4] == 0x11)) {
+            bVar4 = true;
+            uVar13 = *(undefined2 *)((longlong)plVar15 + 0xbe);
           }
           else {
-            bVar5 = false;
-            uVar17 = uVar18;
-          }
-          local_1f8._0_2_ = uVar17;
+            bVar4 = false;
+            uVar13 = uVar14;
+          }
+          local_1e8._0_2_ = uVar13;
           INETADDR_SETSOCKADDR
-                    (*(undefined2 *)(*(longlong *)(plVar20[0x19] + 0x28) + 0x1c),local_c8,
-                     plVar20 + 0x1d,0);
-          if (bVar5) {
-            uVar18 = *(undefined2 *)((longlong)plVar20 + 0xbc);
-          }
-          local_1f8 = CONCAT62(local_1f8._2_6_,uVar18);
+                    (*(undefined2 *)(*(longlong *)(plVar15[0x19] + 0x28) + 0x1c),local_c8,
+                     plVar15 + 0x1d,0);
+          if (bVar4) {
+            uVar14 = *(undefined2 *)((longlong)plVar15 + 0xbc);
+          }
+          local_1e8 = CONCAT62(local_1e8._2_6_,uVar14);
           INETADDR_SETSOCKADDR
-                    (*(undefined2 *)(*(longlong *)(plVar20[0x19] + 0x28) + 0x1c),local_148,
-                     **(undefined8 **)(plVar20[0x1c] + 0x10),0);
+                    (*(undefined2 *)(*(longlong *)(plVar15[0x19] + 0x28) + 0x1c),local_148,
+                     **(undefined8 **)(plVar15[0x1c] + 0x10),0);
           if (DAT_1 < '\0') {
-            puVar23 = (undefined4 *)plVar20[0x19];
-            bVar8 = SOCKADDR_SIZE(*(undefined2 *)(*(longlong *)(puVar23 + 10) + 0x1c));
-            local_1d0 = (undefined4)plVar20[4];
-            local_1d8 = local_148;
-            local_1e0 = local_c8;
-            local_1f0 = *puVar23;
-            local_1e8 = (uint)bVar8;
-            local_1f8 = CONCAT44(local_1f8._4_4_,
-                                 *(undefined4 *)(*(longlong *)(plVar20[0x1b] + 8) + 8));
+            puVar18 = (undefined4 *)plVar15[0x19];
+            bVar7 = SOCKADDR_SIZE(*(undefined2 *)(*(longlong *)(puVar18 + 10) + 0x1c));
+            local_1c0 = (undefined4)plVar15[4];
+            local_1c8 = local_148;
+            local_1d0 = local_c8;
+            local_1e0 = *puVar18;
+            local_1d8 = (uint)bVar7;
+            local_1e8 = CONCAT44(local_1e8._4_4_,
+                                 *(undefined4 *)(*(longlong *)(plVar15[0x1b] + 8) + 8));
             McTemplateK0pqqqbr3br3q_EtwWriteTransfer();
           }
         }
-        lVar2 = plVar20[1];
-        local_1b8 = *(ulonglong *)(lVar2 + 0x90);
-        uVar16 = *(ulonglong *)(lVar2 + 0x140);
-        if ((local_1b8 & 4) == 0) {
-          if (((local_1b8 & 8) != 0) || ((int)uVar16 != 0)) {
-            uVar15 = (uint)local_1b8 & 0xfffffff4 | 0x110;
-            goto LAB_2;
-          }
-        }
-        else {
-          uVar15 = (uint)local_1b8 & 0xfffffff8 | 0x108;
-LAB_2:
-          local_1b8._4_4_ = (undefined4)(local_1b8 >> 0x20);
-          local_1b8 = CONCAT44(local_1b8._4_4_,uVar15);
-          *(ulonglong *)(lVar2 + 0x90) = local_1b8;
-          if ((int)uVar16 != 0) {
-            uVar25 = uVar16 >> 0x14 & 0xfff;
-            iVar24 = *(int *)(*(longlong *)(lVar2 + 8) + 0x18) - ((uint)uVar25 & 0x3ff);
-            *(short *)(lVar2 + 0x11a) = (short)uVar16;
-            *(undefined8 *)(lVar2 + 0x140) = 0;
-            *(short *)(lVar2 + 0x118) =
-                 (short)((ulonglong)(uint)(iVar24 + -9 + (int)(uVar16 & 0xffff)) / (uVar16 & 0xffff)
-                        );
-            NetioPhFillUInt16AtOffset
-                      (CONCAT22((short)((uint)iVar24 >> 0x10),
-                                (ushort)iVar24 >> 8 | (ushort)iVar24 << 8),
-                       ((ushort)uVar25 & 0x3ff) + 4);
-            uVar14 = *(ushort *)(*(longlong *)(lVar2 + 8) + 0x18);
-            if (param_2 == &Ipv4Global) {
-              uVar19 = 2;
-            }
-            else {
-              uVar14 = uVar14 - *(short *)(param_2 + 0x28);
-              uVar19 = 4;
-            }
-            NetioPhFillUInt16AtOffset(uVar14 >> 8 | uVar14 << 8,uVar19);
-          }
-        }
-        if ((Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_featureState & 0x10)
-            == 0) {
-          uVar15 = Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledDeviceUsageNoInline
-                             ();
-        }
-        else {
-          uVar15 = Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_featureState & 1
-          ;
-        }
-        if ((((uVar15 != 0) && (*(int *)(lVar2 + 0x140) == 0)) && (*(int *)(lVar2 + 0xa0) == 0)) &&
-           ((param_2 == &Ipv4Global && (cVar6 = KfdAreAllIpv4InLayersEmpty(), cVar6 == '\0')))) {
-          for (puVar3 = *(undefined8 **)(lVar2 + 8); puVar3 != (undefined8 *)0x0;
-              puVar3 = (undefined8 *)*puVar3) {
-            Ipv4pFillPacketChecksum(puVar3);
-          }
-        }
-        local_1c0 = iVar10 + 1;
-        *(ulonglong *)(plVar20[1] + 0x110) = (ulonglong)*(uint *)(lVar13 + 8);
-        *plStack_170 = (longlong)plVar20;
-        plStack_170 = plVar20;
+        IppTranslateTransmitToReceiveNbl(param_2,plVar15[1]);
+        local_1b0 = iVar8 + 1;
+        *(ulonglong *)(plVar15[1] + 0x110) = (ulonglong)*(uint *)(lVar1 + 8);
+        *plStack_170 = (longlong)plVar15;
+        plStack_170 = plVar15;
       }
       else {
-        uVar21 = *(undefined4 *)((longlong)plVar20 + 0xc4);
-        uVar15 = 0xffff;
+        puVar3 = (undefined1 *)plVar15[1];
+        local_1ac = 0xffff;
         if (param_2[0x4d14] == '\0') {
-          uVar15 = 0x5dc;
-        }
-        puVar4 = (undefined1 *)plVar20[1];
-        uVar9 = 0;
+          local_1ac = 0x5dc;
+        }
+        uVar16 = *(undefined4 *)((longlong)plVar15 + 0xc4);
+        local_18c = 0;
         if (param_2 != &Ipv4Global) {
-          uVar9 = 0x29;
-        }
-        local_1b8 = CONCAT44(local_1b8._4_4_,uVar9);
-        bVar8 = *(byte *)(plVar20 + 0xb) >> 2 & 1;
-        bVar5 = false;
-        local_1c4 = (uint)*(ushort *)((longlong)plVar20 + 0x3c);
-        local_1a8 = plVar20[0x1c];
-        local_198 = uVar21;
+          local_18c = 0x29;
+        }
+        bVar4 = false;
+        local_1b4 = (uint)*(ushort *)((longlong)plVar15 + 0x3c);
+        local_1a8 = plVar15[0x1c];
+        bVar7 = *(byte *)(plVar15 + 0xb) >> 2 & 1;
+        local_190 = uVar16;
         cVar6 = KeGetCurrentIrql();
         if (cVar6 == '\x02') {
-          iVar10 = KeGetCurrentProcessorNumberEx(0);
-          piVar22 = *(int **)((ulonglong)(uint)(iVar10 * 0x48) + gWfpPerProContext);
-          iVar10 = *piVar22;
-          if (iVar10 == 1) {
+          iVar8 = KeGetCurrentProcessorNumberEx(0);
+          piVar17 = *(int **)((ulonglong)(uint)(iVar8 * 0x48) + gWfpPerProContext);
+          iVar8 = *piVar17;
+          if (iVar8 == 1) {
             local_168 = 0;
             uStack_160 = 0;
             local_158 = local_158 & 0xffffffff00000000;
             KeQueryDpcWatchdogInformation(&local_168);
-            piVar12 = piVar22 + 0x14;
-            uVar16 = local_168 >> 0x20;
-LAB_3:
-            *(ulonglong *)(piVar12 + 8) = uVar16;
+            piVar10 = piVar17 + 0x14;
+            uVar12 = local_168 >> 0x20;
+LAB_2:
+            *(ulonglong *)(piVar10 + 8) = uVar12;
           }
           else {
-            if (iVar10 == 0) {
-              *piVar22 = 3;
-              piVar12 = piVar22 + 2;
-              piVar22[0xe] = 0;
-              piVar22[0xf] = 0;
-              piVar22[0x10] = 0;
-              piVar22[0x11] = 0;
-              piVar22[0x12] = 0;
-              piVar22[0x13] = 0;
-              piVar22[0x14] = 0;
-              piVar22[0x15] = 0;
-              piVar22[0x16] = 0;
-              piVar22[0x17] = 0;
-              piVar22[0x18] = 0;
-              piVar22[0x19] = 0;
-              piVar12[0] = 0;
-              piVar12[1] = 0;
-              piVar22[4] = 0;
-              piVar22[5] = 0;
-              piVar22[6] = 0;
-              piVar22[7] = 0;
-              piVar22[8] = 0;
-              piVar22[9] = 0;
-              piVar22[10] = 0;
-              piVar22[0xb] = 0;
-              piVar22[0xc] = 0;
-              piVar22[0xd] = 0;
-              piVar22[0x1a] = 1;
-              uVar16 = _DAT_4;
-              goto LAB_3;
-            }
-            if (iVar10 == 2) {
-              piVar12 = piVar22 + 0x10;
-              uVar16 = _DAT_4;
-              goto LAB_3;
-            }
-            if (iVar10 == 3) {
-              piVar22[0x1a] = piVar22[0x1a] + 1;
-              piVar12 = piVar22 + 2;
-              uVar16 = _DAT_4;
-              goto LAB_3;
-            }
-          }
-          bVar5 = true;
-          uVar21 = local_198;
-        }
-        local_1e0 = (undefined1 *)CONCAT71(local_1e0._1_7_,1);
-        local_1f8 = CONCAT44(local_1f8._4_4_,local_1c4);
-        local_1f0 = uVar21;
-        local_1e8 = uVar15;
-        local_1d8 = puVar4;
-        if (local_188 == &Ipv4Global) {
-          uVar11 = ShimIpPacketOutV4(local_1a8,plVar20 + 0x1d,local_190,0);
+            if (iVar8 == 0) {
+              *piVar17 = 3;
+              piVar10 = piVar17 + 2;
+              piVar17[0xe] = 0;
+              piVar17[0xf] = 0;
+              piVar17[0x10] = 0;
+              piVar17[0x11] = 0;
+              piVar17[0x12] = 0;
+              piVar17[0x13] = 0;
+              piVar17[0x14] = 0;
+              piVar17[0x15] = 0;
+              piVar17[0x16] = 0;
+              piVar17[0x17] = 0;
+              piVar17[0x18] = 0;
+              piVar17[0x19] = 0;
+              piVar10[0] = 0;
+              piVar10[1] = 0;
+              piVar17[4] = 0;
+              piVar17[5] = 0;
+              piVar17[6] = 0;
+              piVar17[7] = 0;
+              piVar17[8] = 0;
+              piVar17[9] = 0;
+              piVar17[10] = 0;
+              piVar17[0xb] = 0;
+              piVar17[0xc] = 0;
+              piVar17[0xd] = 0;
+              piVar17[0x1a] = 1;
+              uVar12 = _DAT_3;
+              goto LAB_2;
+            }
+            if (iVar8 == 2) {
+              piVar10 = piVar17 + 0x10;
+              uVar12 = _DAT_3;
+              goto LAB_2;
+            }
+            if (iVar8 == 3) {
+              piVar17[0x1a] = piVar17[0x1a] + 1;
+              piVar10 = piVar17 + 2;
+              uVar12 = _DAT_3;
+              goto LAB_2;
+            }
+          }
+          bVar4 = true;
+          uVar16 = local_190;
+        }
+        local_1d0 = (undefined1 *)CONCAT71(local_1d0._1_7_,1);
+        local_1d8 = local_1ac;
+        local_1e8 = CONCAT44(local_1e8._4_4_,local_1b4);
+        local_1e0 = uVar16;
+        local_1c8 = puVar3;
+        if (local_198 == &Ipv4Global) {
+          uVar9 = ShimIpPacketOutV4(local_1a8,plVar15 + 0x1d,lVar1,0);
         }
         else {
-          uVar11 = ShimIpPacketOutV6();
-        }
-        local_1c4 = uVar11;
-        lVar13 = WfpNblInfoGet(puVar4);
-        if (((lVar13 != 0) && (lVar13 != *(longlong *)MmBadPointer_exref)) &&
-           (lVar13 = *(longlong *)(lVar13 + 0x18), uVar11 = local_1c4, lVar13 != 0)) {
-          iVar10 = IPSecIsPacketContextOutbound(lVar13);
-          if (iVar10 == 0) {
-            IPSecCleanupInboundPacketState(puVar4);
-            uVar11 = local_1c4;
+          uVar9 = ShimIpPacketOutV6();
+        }
+        local_1b4 = uVar9;
+        lVar11 = WfpNblInfoGet(puVar3);
+        if (((lVar11 != 0) && (lVar11 != *(longlong *)MmBadPointer_exref)) &&
+           (lVar11 = *(longlong *)(lVar11 + 0x18), uVar9 = local_1b4, lVar11 != 0)) {
+          iVar8 = IPSecIsPacketContextOutbound(lVar11);
+          if (iVar8 == 0) {
+            IPSecCleanupInboundPacketState(puVar3);
+            uVar9 = local_1b4;
           }
           else {
-            if (*(longlong *)(lVar13 + 0x1f8) != 0) {
-              IPSecUnPendPacket(0,*(longlong *)(lVar13 + 0x1f8),0);
-              *(undefined8 *)(lVar13 + 0x1f8) = 0;
-            }
-            iVar10 = IPSecIsInboundContextTunnel(lVar13);
-            if ((iVar10 == 0) || (local_1c4 != 0)) {
-LAB_5:
-              IPSecCleanupOutboundPacketState(puVar4);
-              uVar11 = local_1c4;
+            if (*(longlong *)(lVar11 + 0x1f8) != 0) {
+              IPSecUnPendPacket(0,*(longlong *)(lVar11 + 0x1f8),0);
+              *(undefined8 *)(lVar11 + 0x1f8) = 0;
+            }
+            iVar8 = IPSecIsInboundContextTunnel(lVar11);
+            if ((iVar8 == 0) || (local_1b4 != 0)) {
+LAB_4:
+              IPSecCleanupOutboundPacketState(puVar3);
+              uVar9 = local_1b4;
             }
             else {
-              iVar10 = IPSecIsOutboundTunnelContextBypassIPsecEnabled();
-              if ((iVar10 == 0) ||
-                 (iVar10 = IPsecTunnelIsInnerPktIPsecRelated(extraout_XMM0_Da,0,0), iVar10 == 0)) {
-                iVar10 = IPSecIsOutboundTunnelContextAllowOutboundClear(lVar13);
-                if (iVar10 != 0) goto LAB_5;
-                iVar10 = IPsecIsOutPktGoingToBeFragmented(puVar4,uVar15,bVar8);
-                uVar11 = local_1c4;
-                if (iVar10 == 0) {
-                  uVar11 = IpSecOutboundPktTunnelProcessingCommon
-                                     (local_1b8 & 0xffffffff,bVar8,puVar4,0);
+              iVar8 = IPSecIsOutboundTunnelContextBypassIPsecEnabled();
+              if ((iVar8 == 0) ||
+                 (iVar8 = IPsecTunnelIsInnerPktIPsecRelated(extraout_XMM0_Da,0,0), iVar8 == 0)) {
+                iVar8 = IPSecIsOutboundTunnelContextAllowOutboundClear(lVar11);
+                if (iVar8 != 0) goto LAB_4;
+                iVar8 = IPsecIsOutPktGoingToBeFragmented(puVar3,local_1ac,bVar7);
+                uVar9 = local_1b4;
+                if (iVar8 == 0) {
+                  uVar9 = IpSecOutboundPktTunnelProcessingCommon(local_18c,bVar7,puVar3,0);
                 }
               }
               else {
-                IPSecCleanupOutboundPacketState(puVar4);
+                IPSecCleanupOutboundPacketState(puVar3);
                 LOCK();
-                DAT_6 = DAT_6 + 1;
+                DAT_5 = DAT_5 + 1;
                 UNLOCK();
-                uVar11 = local_1c4;
+                uVar9 = local_1b4;
               }
             }
           }
         }
-        if (puVar4 != (undefined1 *)0x0) {
-          *(uint *)(puVar4 + 0x88) = *(uint *)(puVar4 + 0x88) & 0xff7fffff;
-        }
-        if (bVar5) {
-          iVar10 = KeGetCurrentProcessorNumberEx(0);
-          piVar22 = *(int **)((ulonglong)(uint)(iVar10 * 0x48) + gWfpPerProContext);
-          iVar10 = *piVar22;
-          if (iVar10 == 1) {
+        if (puVar3 != (undefined1 *)0x0) {
+          *(uint *)(puVar3 + 0x88) = *(uint *)(puVar3 + 0x88) & 0xff7fffff;
+        }
+        if (bVar4) {
+          iVar8 = KeGetCurrentProcessorNumberEx(0);
+          piVar17 = *(int **)((ulonglong)(uint)(iVar8 * 0x48) + gWfpPerProContext);
+          iVar8 = *piVar17;
+          if (iVar8 == 1) {
             local_168 = 0;
             uStack_160 = 0;
             local_158 = local_158 & 0xffffffff00000000;
             KeQueryDpcWatchdogInformation(&local_168);
-            piVar12 = piVar22 + 0x1e;
-            piVar22 = piVar22 + 0x1c;
-            iVar10 = local_168._4_4_;
-          }
-          else if (iVar10 == 2) {
-            piVar12 = piVar22 + 0x1a;
-            piVar22 = piVar22 + 0x18;
-            iVar10 = (int)_DAT_4;
+            piVar10 = piVar17 + 0x1e;
+            piVar17 = piVar17 + 0x1c;
+            iVar8 = local_168._4_4_;
+          }
+          else if (iVar8 == 2) {
+            piVar10 = piVar17 + 0x1a;
+            piVar17 = piVar17 + 0x18;
+            iVar8 = (int)_DAT_3;
           }
           else {
-            if (iVar10 != 3) goto LAB_7;
-            piVar22[0x1a] = piVar22[0x1a] + -1;
-            iVar10 = (int)_DAT_4;
-            if (piVar22[0x1a] == 0) {
-              *piVar22 = 0;
-            }
-            piVar12 = piVar22 + 0xc;
-            piVar22 = piVar22 + 10;
-          }
-          *piVar12 = *piVar12 + (iVar10 - *piVar22);
-        }
-LAB_7:
-        param_2 = local_188;
-        iVar10 = local_1c0;
-        if ((int)uVar11 < 1) goto LAB_0;
-        if (uVar11 - 1 < 2) {
+            if (iVar8 != 3) goto LAB_6;
+            piVar17[0x1a] = piVar17[0x1a] + -1;
+            iVar8 = (int)_DAT_3;
+            if (piVar17[0x1a] == 0) {
+              *piVar17 = 0;
+            }
+            piVar10 = piVar17 + 0xc;
+            piVar17 = piVar17 + 10;
+          }
+          *piVar10 = *piVar10 + (iVar8 - *piVar17);
+        }
+LAB_6:
+        param_2 = local_198;
+        iVar8 = local_1b0;
+        if ((int)uVar9 < 1) goto LAB_0;
+        if (uVar9 - 1 < 2) {
           uVar19 = 9;
-          *(undefined4 *)(plVar20[1] + 0x8c) = 0xc000021b;
+          *(undefined4 *)(plVar15[1] + 0x8c) = 0xc000021b;
         }
         else {
           uVar19 = 0x101;
         }
-        IppLbLogAndDropPackets(local_188,plVar20,uVar19,0xe000413d);
-      }
-      plVar20 = (longlong *)*param_1;
-      cVar6 = local_1c8;
-      iVar10 = local_1c0;
-    } while (plVar20 != (longlong *)0x0);
+        IppLbLogAndDropPackets(local_198,plVar15,uVar19,0xe000413d);
+      }
+      plVar15 = (longlong *)*param_1;
+      cVar6 = local_1b8;
+      iVar8 = local_1b0;
+    } while (plVar15 != (longlong *)0x0);
     if (local_178 != 0) {
       local_1a8 = local_178;
       plStack_1a0 = plStack_170;
       if (*(int *)(param_2 + 0x4d18) == 0) {
         local_168 = 0;
         uStack_160 = 0;
         local_158 = 0;
-        while (cVar6 = local_1c8, iVar10 = local_1c0, local_1a8 != 0) {
-          uVar7 = KfRaiseIrql(2);
-          uVar16 = *(ulonglong *)
+        while (cVar6 = local_1b8, iVar8 = local_1b0, local_1a8 != 0) {
+          uVar5 = KfRaiseIrql(2);
+          uVar12 = *(ulonglong *)
                     (*(longlong *)(param_2 + 0x4ee0) + (ulonglong)SystemReserved1[0x12]._4_4_ * 8);
-          KeAcquireSpinLockAtDpcLevel(uVar16);
-          plVar20 = (longlong *)(uVar16 + 8);
+          KeAcquireSpinLockAtDpcLevel(uVar12);
+          plVar15 = (longlong *)(uVar12 + 8);
           if (local_1a8 != 0) {
-            **(longlong **)(uVar16 + 0x10) = local_1a8;
-            *(longlong **)(uVar16 + 0x10) = plStack_1a0;
+            **(longlong **)(uVar12 + 0x10) = local_1a8;
+            *(longlong **)(uVar12 + 0x10) = plStack_1a0;
           }
           plStack_1a0 = &local_1a8;
           local_1a8 = 0;
-          if (*(char *)(uVar16 + 0x1c) == '\0') {
-            *(undefined1 *)(uVar16 + 0x1c) = 1;
+          if (*(char *)(uVar12 + 0x1c) == '\0') {
+            *(undefined1 *)(uVar12 + 0x1c) = 1;
             uStack_160 = 0;
-            local_158 = CONCAT71(local_158._1_7_,uVar7);
-            local_1f8 = *(undefined8 *)(uVar16 + 0x20);
-            local_168 = uVar16;
+            local_158 = CONCAT71(local_158._1_7_,uVar5);
+            local_1e8 = *(undefined8 *)(uVar12 + 0x20);
+            local_168 = uVar12;
             KeExpandKernelStackAndCalloutEx(IppLbTransmitStackCallout,&local_168,0x4800,0);
-            if (*plVar20 != 0) {
-              *plStack_1a0 = *plVar20;
-              plStack_1a0 = *(longlong **)(uVar16 + 0x10);
-            }
-            *plVar20 = 0;
-            *(longlong **)(uVar16 + 0x10) = plVar20;
-            *(byte *)(uVar16 + 0x1c) = *(byte *)(uVar16 + 0x1c) & 0xfe;
-          }
-          KeReleaseSpinLockFromDpcLevel(uVar16);
-          KeLowerIrql(uVar7);
+            if (*plVar15 != 0) {
+              *plStack_1a0 = *plVar15;
+              plStack_1a0 = *(longlong **)(uVar12 + 0x10);
+            }
+            *plVar15 = 0;
+            *(longlong **)(uVar12 + 0x10) = plVar15;
+            *(byte *)(uVar12 + 0x1c) = *(byte *)(uVar12 + 0x1c) & 0xfe;
+          }
+          KeReleaseSpinLockFromDpcLevel(uVar12);
+          KeLowerIrql(uVar5);
+          param_2 = local_198;
         }
       }
       else {
-        IppLbEnqueueAdaptiveOrWorkerMode(param_2,&local_1a8,iVar10,local_194);
-        cVar6 = local_1c8;
+        IppLbEnqueueAdaptiveOrWorkerMode(param_2,&local_1a8,iVar8,local_188);
+        cVar6 = local_1b8;
       }
     }
   } while( true );
 }
 

```


## UdpConnectRedirectCallbackContinue

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.39|
|i_ratio|0.41|
|m_ratio|0.97|
|b_ratio|0.82|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|UdpConnectRedirectCallbackContinue|UdpConnectRedirectCallbackContinue|
|fullname|UdpConnectRedirectCallbackContinue|UdpConnectRedirectCallbackContinue|
|`refcount`|3|2|
|`length`|117|111|
|`called`|NTOSKRNL.EXE::ExFreePoolWithTag<br>UdpDereferenceEndpoint<br>UdpSetDestinationEndpoint<br>_guard_dispatch_icall|DestroyUdpConnectRedirectCallbackContext<br>Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline<br>ReleaseUdpConnectRedirectCallbackContext<br>UdpDereferenceEndpoint<br>UdpSetDestinationEndpoint<br>_guard_dispatch_icall|
|`calling`|UdpConnectRedirect<br>UdpConnectRedirectCallback|UdpConnectRedirectCallback|
|paramcount|0|0|
|`address`|14007d47c|14010b848|
|sig|undefined UdpConnectRedirectCallbackContinue(void)|undefined UdpConnectRedirectCallbackContinue(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### UdpConnectRedirectCallbackContinue Called Diff


```diff
--- UdpConnectRedirectCallbackContinue called
+++ UdpConnectRedirectCallbackContinue called
@@ -1 +1,3 @@
-NTOSKRNL.EXE::ExFreePoolWithTag
+DestroyUdpConnectRedirectCallbackContext
+Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline
+ReleaseUdpConnectRedirectCallbackContext
```


### UdpConnectRedirectCallbackContinue Calling Diff


```diff
--- UdpConnectRedirectCallbackContinue calling
+++ UdpConnectRedirectCallbackContinue calling
@@ -1 +0,0 @@
-UdpConnectRedirect
```


### UdpConnectRedirectCallbackContinue Diff


```diff
--- UdpConnectRedirectCallbackContinue
+++ UdpConnectRedirectCallbackContinue
@@ -1,20 +1,31 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
-void UdpConnectRedirectCallbackContinue(undefined8 *param_1,int param_2)
+void UdpConnectRedirectCallbackContinue(longlong param_1,int param_2)
 
 {
+  uint uVar1;
+  
   if (-1 < param_2) {
-    param_2 = UdpSetDestinationEndpoint(param_1[3],param_1[2],1);
+    param_2 = UdpSetDestinationEndpoint
+                        (*(undefined8 *)(param_1 + 0x20),*(undefined8 *)(param_1 + 0x18),1);
   }
-  if ((code *)*param_1 != (code *)0x0) {
-    (*(code *)*param_1)(param_1[1],param_2,0);
+  if (*(code **)(param_1 + 8) != (code *)0x0) {
+    (**(code **)(param_1 + 8))(*(undefined8 *)(param_1 + 0x10),param_2,0);
   }
-  UdpDereferenceEndpoint(param_1[3]);
-  if (param_1[2] != 0) {
-    ExFreePoolWithTag(param_1[2],0x74727543);
+  UdpDereferenceEndpoint(*(undefined8 *)(param_1 + 0x20));
+  if ((Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 0x10) == 0) {
+    uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledDeviceUsageNoInline();
   }
-  ExFreePoolWithTag(param_1,0x74727543);
+  else {
+    uVar1 = Feature_TCPIP_Stack_Var_To_Heap_Fix__private_featureState & 1;
+  }
+  if (uVar1 == 0) {
+    DestroyUdpConnectRedirectCallbackContext(param_1);
+  }
+  else {
+    ReleaseUdpConnectRedirectCallbackContext();
+  }
   return;
 }
 

```


## AleRedirectRecordsDeserializeFromBuffer

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.17|
|i_ratio|0.31|
|m_ratio|0.87|
|b_ratio|0.62|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleRedirectRecordsDeserializeFromBuffer|AleRedirectRecordsDeserializeFromBuffer|
|fullname|AleRedirectRecordsDeserializeFromBuffer|AleRedirectRecordsDeserializeFromBuffer|
|`refcount`|4|3|
|`length`|582|706|
|`called`|AleRedirectRecordDereference<br>FUN_1401df3bc<br>WfpPoolAllocNonPaged<br>WfpReportSysErrorAsNtStatus<br>memmove|AleRedirectRecordDereference<br>Feature_734245178__private_IsEnabledDeviceUsageNoInline<br>WfpPoolAllocNonPaged<br>WfpReportError<br>WfpReportSysErrorAsNtStatus<br>WfpSizeTMultiply<br>memmove|
|calling|TlShimQueryNonTcpRedirectRecords<br>WfpAleProcessSocketOption|TlShimQueryNonTcpRedirectRecords<br>WfpAleProcessSocketOption|
|paramcount|0|0|
|`address`|14012be70|140141fa4|
|sig|undefined AleRedirectRecordsDeserializeFromBuffer(void)|undefined AleRedirectRecordsDeserializeFromBuffer(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleRedirectRecordsDeserializeFromBuffer Called Diff


```diff
--- AleRedirectRecordsDeserializeFromBuffer called
+++ AleRedirectRecordsDeserializeFromBuffer called
@@ -2 +2 @@
-FUN_1401df3bc
+Feature_734245178__private_IsEnabledDeviceUsageNoInline
@@ -3,0 +4 @@
+WfpReportError
@@ -4,0 +6 @@
+WfpSizeTMultiply
```


### AleRedirectRecordsDeserializeFromBuffer Diff


```diff
--- AleRedirectRecordsDeserializeFromBuffer
+++ AleRedirectRecordsDeserializeFromBuffer
@@ -1,144 +1,173 @@
 
 longlong AleRedirectRecordsDeserializeFromBuffer
                    (ulonglong *param_1,ulonglong param_2,ulonglong *param_3)
 
 {
   ushort uVar1;
   ulonglong uVar2;
-  ulonglong uVar3;
+  ulonglong *puVar3;
   undefined4 uVar4;
   undefined4 uVar5;
-  ulonglong *puVar6;
-  undefined2 *puVar7;
-  ulonglong *puVar8;
-  longlong lVar9;
-  ulonglong *puVar10;
-  ulonglong *puVar11;
-  ulonglong uVar12;
+  ulonglong uVar6;
+  ulonglong *puVar7;
+  undefined2 *puVar8;
+  ulonglong *puVar9;
+  uint uVar10;
+  longlong lVar11;
+  ulonglong *puVar12;
   ulonglong *puVar13;
   ulonglong *puVar14;
+  ulonglong *puVar15;
+  ulonglong uVar16;
   ulonglong local_res8;
   ulonglong *local_res10;
   ulonglong *local_res18;
-  undefined2 *local_res20;
+  ulonglong *local_res20;
+  ulonglong *local_58;
+  undefined2 *local_50 [2];
   
-  puVar14 = (ulonglong *)0x0;
+  puVar15 = (ulonglong *)0x0;
   local_res8 = 0;
-  local_res20 = (undefined2 *)0x0;
-  puVar13 = &local_res8;
+  local_res20 = (ulonglong *)0x0;
+  local_58 = &local_res8;
+  local_res10 = (ulonglong *)0x0;
+  local_50[0] = (undefined2 *)0x0;
   local_res18 = param_3;
-  if (7 < param_2) {
+  if (param_2 < 8) {
+LAB_0:
+    lVar11 = WfpReportSysErrorAsNtStatus();
+    if (lVar11 == 0) {
+      return 0;
+    }
+  }
+  else {
     uVar2 = *param_1;
     param_1 = param_1 + 1;
-    param_2 = param_2 - 8;
-    if ((uVar2 != 0) && (uVar2 * 0x228 <= param_2)) {
-      for (uVar12 = 0; uVar12 < uVar2; uVar12 = uVar12 + 1) {
+    puVar14 = (ulonglong *)(param_2 - 8);
+    if ((Feature_734245178__private_featureState & 0x10) == 0) {
+      uVar10 = Feature_734245178__private_IsEnabledDeviceUsageNoInline();
+    }
+    else {
+      uVar10 = Feature_734245178__private_featureState & 1;
+    }
+    if (uVar10 != 0) {
+      lVar11 = WfpSizeTMultiply(uVar2,0x228,&local_res10);
+      if (lVar11 != 0) goto LAB_1;
+      if ((uVar2 != 0) && (local_res10 <= puVar14)) goto LAB_2;
+      goto LAB_0;
+    }
+    if ((uVar2 == 0) || (puVar14 < (ulonglong *)(uVar2 * 0x228))) goto LAB_0;
+LAB_2:
+    uVar16 = 0;
+    if (uVar2 != 0) {
+      do {
         local_res10 = (ulonglong *)0x0;
-        lVar9 = WfpPoolAllocNonPaged(0x228,0x6c637241,&local_res10);
-        puVar6 = local_res10;
-        if (lVar9 != 0) goto LAB_0;
-        lVar9 = 4;
-        *puVar13 = (ulonglong)local_res10;
-        puVar13 = param_1;
-        puVar8 = puVar6;
+        if ((Feature_734245178__private_featureState & 0x10) == 0) {
+          uVar10 = Feature_734245178__private_IsEnabledDeviceUsageNoInline();
+        }
+        else {
+          uVar10 = Feature_734245178__private_featureState & 1;
+        }
+        if ((uVar10 != 0) && (puVar14 < (ulonglong *)0x228)) goto LAB_0;
+        lVar11 = WfpPoolAllocNonPaged(0x228,0x6c637241,&local_res10);
+        puVar7 = local_res10;
+        if (lVar11 != 0) goto LAB_3;
+        lVar11 = 4;
+        *local_58 = (ulonglong)local_res10;
+        puVar3 = param_1;
+        puVar9 = puVar7;
         do {
-          puVar11 = puVar8;
-          puVar10 = puVar13;
-          uVar3 = puVar10[1];
-          *puVar11 = *puVar10;
-          puVar11[1] = uVar3;
-          uVar3 = puVar10[3];
-          puVar11[2] = puVar10[2];
-          puVar11[3] = uVar3;
-          uVar3 = puVar10[5];
-          puVar11[4] = puVar10[4];
-          puVar11[5] = uVar3;
-          uVar3 = puVar10[7];
-          puVar11[6] = puVar10[6];
-          puVar11[7] = uVar3;
-          uVar3 = puVar10[9];
-          puVar11[8] = puVar10[8];
-          puVar11[9] = uVar3;
-          uVar3 = puVar10[0xb];
-          puVar11[10] = puVar10[10];
-          puVar11[0xb] = uVar3;
-          uVar3 = puVar10[0xd];
-          puVar11[0xc] = puVar10[0xc];
-          puVar11[0xd] = uVar3;
-          uVar3 = puVar10[0xf];
-          puVar11[0xe] = puVar10[0xe];
-          puVar11[0xf] = uVar3;
-          lVar9 = lVar9 + -1;
-          puVar13 = puVar10 + 0x10;
-          puVar8 = puVar11 + 0x10;
-        } while (lVar9 != 0);
-        uVar4 = *(undefined4 *)((longlong)puVar10 + 0x84);
-        uVar3 = puVar10[0x11];
-        uVar5 = *(undefined4 *)((longlong)puVar10 + 0x8c);
+          puVar13 = puVar9;
+          puVar12 = puVar3;
+          uVar6 = puVar12[1];
+          *puVar13 = *puVar12;
+          puVar13[1] = uVar6;
+          uVar6 = puVar12[3];
+          puVar13[2] = puVar12[2];
+          puVar13[3] = uVar6;
+          uVar6 = puVar12[5];
+          puVar13[4] = puVar12[4];
+          puVar13[5] = uVar6;
+          uVar6 = puVar12[7];
+          puVar13[6] = puVar12[6];
+          puVar13[7] = uVar6;
+          uVar6 = puVar12[9];
+          puVar13[8] = puVar12[8];
+          puVar13[9] = uVar6;
+          uVar6 = puVar12[0xb];
+          puVar13[10] = puVar12[10];
+          puVar13[0xb] = uVar6;
+          uVar6 = puVar12[0xd];
+          puVar13[0xc] = puVar12[0xc];
+          puVar13[0xd] = uVar6;
+          uVar6 = puVar12[0xf];
+          puVar13[0xe] = puVar12[0xe];
+          puVar13[0xf] = uVar6;
+          lVar11 = lVar11 + -1;
+          puVar3 = puVar12 + 0x10;
+          puVar9 = puVar13 + 0x10;
+        } while (lVar11 != 0);
+        uVar4 = *(undefined4 *)((longlong)puVar12 + 0x84);
+        uVar6 = puVar12[0x11];
+        uVar5 = *(undefined4 *)((longlong)puVar12 + 0x8c);
         param_1 = param_1 + 0x45;
-        param_2 = param_2 - 0x228;
-        *(int *)(puVar11 + 0x10) = (int)puVar10[0x10];
-        *(undefined4 *)((longlong)puVar11 + 0x84) = uVar4;
-        *(int *)(puVar11 + 0x11) = (int)uVar3;
-        *(undefined4 *)((longlong)puVar11 + 0x8c) = uVar5;
-        uVar4 = *(undefined4 *)((longlong)puVar10 + 0x94);
-        uVar3 = puVar10[0x13];
-        uVar5 = *(undefined4 *)((longlong)puVar10 + 0x9c);
-        *(int *)(puVar11 + 0x12) = (int)puVar10[0x12];
-        *(undefined4 *)((longlong)puVar11 + 0x94) = uVar4;
-        *(int *)(puVar11 + 0x13) = (int)uVar3;
-        *(undefined4 *)((longlong)puVar11 + 0x9c) = uVar5;
-        puVar11[0x14] = puVar10[0x14];
-        *(undefined4 *)(puVar6 + 0x3e) = 1;
-        uVar3 = puVar6[0x3d];
-        if (uVar3 != 0) {
-          if (param_2 < uVar3) goto LAB_1;
-          lVar9 = WfpPoolAllocNonPaged(uVar3,0x6c637241,puVar6 + 0x3c);
-          if (lVar9 != 0) goto LAB_0;
-          memmove((void *)puVar6[0x3c],param_1,puVar6[0x3d]);
-          param_1 = (ulonglong *)((longlong)param_1 + puVar6[0x3d]);
-          param_2 = param_2 - puVar6[0x3d];
+        puVar14 = puVar14 + -0x45;
+        *(int *)(puVar13 + 0x10) = (int)puVar12[0x10];
+        *(undefined4 *)((longlong)puVar13 + 0x84) = uVar4;
+        *(int *)(puVar13 + 0x11) = (int)uVar6;
+        *(undefined4 *)((longlong)puVar13 + 0x8c) = uVar5;
+        uVar4 = *(undefined4 *)((longlong)puVar12 + 0x94);
+        uVar6 = puVar12[0x13];
+        uVar5 = *(undefined4 *)((longlong)puVar12 + 0x9c);
+        *(int *)(puVar13 + 0x12) = (int)puVar12[0x12];
+        *(undefined4 *)((longlong)puVar13 + 0x94) = uVar4;
+        *(int *)(puVar13 + 0x13) = (int)uVar6;
+        *(undefined4 *)((longlong)puVar13 + 0x9c) = uVar5;
+        puVar13[0x14] = puVar12[0x14];
+        *(undefined4 *)(puVar7 + 0x3e) = 1;
+        puVar3 = (ulonglong *)puVar7[0x3d];
+        if (puVar3 != (ulonglong *)0x0) {
+          if (puVar14 < puVar3) goto LAB_0;
+          lVar11 = WfpPoolAllocNonPaged(puVar3,0x6c637241,puVar7 + 0x3c);
+          if (lVar11 != 0) goto LAB_3;
+          memmove((void *)puVar7[0x3c],param_1,puVar7[0x3d]);
+          param_1 = (ulonglong *)((longlong)param_1 + puVar7[0x3d]);
+          puVar14 = (ulonglong *)((longlong)puVar14 - puVar7[0x3d]);
+          puVar15 = local_res20;
         }
-        puVar13 = puVar6 + 6;
-        if (uVar12 == uVar2 - 1) {
-          puVar14 = puVar6;
+        local_58 = puVar7 + 6;
+        if (uVar16 == uVar2 - 1) {
+          puVar15 = puVar7;
         }
-      }
-      if (3 < param_2) {
-        uVar1 = *(ushort *)((longlong)param_1 + 2);
-        uVar12 = (ulonglong)uVar1;
-        uVar2 = *param_1;
-        if (uVar12 <= param_2 - 4) {
-          lVar9 = WfpPoolAllocNonPaged(uVar12 + 0x10,0x6c637241,&local_res20);
-          puVar7 = local_res20;
-          if (lVar9 == 0) {
-            *local_res20 = (short)uVar2;
-            local_res20[1] = uVar1;
-            *(undefined2 **)(local_res20 + 4) = local_res20 + 8;
-            memmove(local_res20 + 8,(undefined2 *)((longlong)param_1 + 4),uVar12);
-            puVar14[7] = (ulonglong)puVar7;
-            *local_res18 = local_res8;
-            return 0;
-          }
-          goto LAB_0;
-        }
-      }
+        uVar16 = uVar16 + 1;
+        local_res20 = puVar15;
+      } while (uVar16 < uVar2);
+    }
+    if (puVar14 < (ulonglong *)0x4) goto LAB_0;
+    uVar1 = *(ushort *)((longlong)param_1 + 2);
+    uVar16 = (ulonglong)uVar1;
+    uVar2 = *param_1;
+    if ((longlong)puVar14 - 4U < uVar16) goto LAB_0;
+    lVar11 = WfpPoolAllocNonPaged(uVar16 + 0x10,0x6c637241,local_50);
+    puVar8 = local_50[0];
+    if (lVar11 == 0) {
+      *local_50[0] = (short)uVar2;
+      local_50[0][1] = uVar1;
+      *(undefined2 **)(local_50[0] + 4) = local_50[0] + 8;
+      memmove(local_50[0] + 8,(undefined2 *)((longlong)param_1 + 4),uVar16);
+      puVar15[7] = (ulonglong)puVar8;
+      *local_res18 = local_res8;
+      return 0;
     }
   }
+LAB_3:
+  if (local_res8 != 0) {
+    AleRedirectRecordDereference();
+  }
 LAB_1:
-  lVar9 = WfpReportSysErrorAsNtStatus();
-  if (lVar9 == 0) {
-    return 0;
+  if (lVar11 != 0) {
+    WfpReportError(lVar11,"AleRedirectRecordsDeserializeFromBuffer");
   }
-LAB_0:
-  if (local_res8 == 0) {
-    if (lVar9 != 0) {
-      WfpReportError(lVar9,"AleRedirectRecordsDeserializeFromBuffer");
-    }
-    return lVar9;
-  }
-  AleRedirectRecordDereference();
-  lVar9 = FUN_1401df3bc();
-  return lVar9;
+  return lVar11;
 }
 

```


## IppProcessInternetConnectivityFlags

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.6|
|i_ratio|0.57|
|m_ratio|0.91|
|b_ratio|0.91|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppProcessInternetConnectivityFlags|IppProcessInternetConnectivityFlags|
|fullname|IppProcessInternetConnectivityFlags|IppProcessInternetConnectivityFlags|
|refcount|3|3|
|`length`|283|244|
|`called`|Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_IsEnabledDeviceUsageNoInline<br>IppGetRouteKey<br>__security_check_cookie|IppGetRouteKey<br>__security_check_cookie|
|calling|IppEvaluateSortInformation<br>IppFillSortingElement|IppEvaluateSortInformation<br>IppFillSortingElement|
|paramcount|0|0|
|`address`|140023300|1400184b0|
|sig|undefined IppProcessInternetConnectivityFlags(void)|undefined IppProcessInternetConnectivityFlags(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppProcessInternetConnectivityFlags Called Diff


```diff
--- IppProcessInternetConnectivityFlags called
+++ IppProcessInternetConnectivityFlags called
@@ -1 +0,0 @@
-Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_IsEnabledDeviceUsageNoInline
```


### IppProcessInternetConnectivityFlags Diff


```diff
--- IppProcessInternetConnectivityFlags
+++ IppProcessInternetConnectivityFlags
@@ -1,88 +1,71 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 void IppProcessInternetConnectivityFlags(undefined8 param_1,longlong param_2,byte *param_3)
 
 {
-  int iVar1;
-  uint uVar2;
-  undefined8 *puVar3;
-  char cVar4;
-  bool bVar5;
+  longlong *plVar1;
+  bool bVar2;
+  int iVar3;
+  undefined8 *puVar4;
   undefined1 auStack_b8 [32];
   undefined8 local_98;
   undefined8 uStack_90;
   undefined8 local_88;
   undefined8 uStack_80;
   undefined8 local_78;
   undefined8 uStack_70;
   undefined8 local_68;
   undefined8 uStack_60;
   undefined8 local_58;
   undefined8 uStack_50;
   undefined8 local_48;
   undefined8 uStack_40;
   undefined8 local_38;
   undefined8 uStack_30;
   undefined8 local_28;
   ulonglong local_18;
   
   local_18 = __security_cookie ^ (ulonglong)auStack_b8;
   local_68 = 0;
   uStack_60 = 0;
   local_58 = 0;
   uStack_50 = 0;
   local_48 = 0;
   uStack_40 = 0;
   local_28 = 0;
   local_98 = 0;
   uStack_90 = 0;
   local_88 = 0;
   uStack_80 = 0;
   local_78 = 0;
   uStack_70 = 0;
   local_38 = 0;
   uStack_30 = 0;
-  puVar3 = &local_68;
+  puVar4 = &local_68;
   if (*(undefined1 **)(**(longlong **)(param_2 + 8) + 0x28) == &Ipv4Global) {
-    puVar3 = &local_98;
+    puVar4 = &local_98;
   }
-  iVar1 = IppGetRouteKey(0,puVar3);
-  if (iVar1 < 0) {
+  iVar3 = IppGetRouteKey(0,puVar4);
+  if (iVar3 < 0) {
     *param_3 = *param_3 | 1;
-    return;
-  }
-  cVar4 = (char)uStack_90;
-  if (*(undefined1 **)(**(longlong **)(param_2 + 8) + 0x28) != &Ipv4Global) {
-    cVar4 = local_58._4_1_;
-  }
-  if ((Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_featureState & 0x10) == 0) {
-    uVar2 = Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_IsEnabledDeviceUsageNoInline
-                      ();
   }
   else {
-    uVar2 = Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_featureState & 1;
-  }
-  iVar1 = *(int *)(*(longlong *)(param_2 + 8) + 0x194);
-  if (uVar2 == 0) {
-    if (iVar1 != 0) {
-      bVar5 = iVar1 == 1;
-LAB_0:
-      if (!bVar5) {
-        bVar5 = false;
-        goto LAB_1;
-      }
+    plVar1 = *(longlong **)(param_2 + 8);
+    if (*(undefined1 **)(*plVar1 + 0x28) != &Ipv4Global) {
+      uStack_90._0_1_ = local_58._4_1_;
     }
-  }
-  else if ((iVar1 != 0) && (iVar1 != 1)) {
-    bVar5 = iVar1 == 4;
-    goto LAB_0;
-  }
-  bVar5 = true;
-LAB_1:
-  if (((cVar4 == '\0') && (bVar5)) && (-1 < *(char *)(*(longlong *)(param_2 + 8) + 0x18b))) {
-    param_3[1] = param_3[1] | 1;
+    iVar3 = *(int *)((longlong)plVar1 + 0x194);
+    if (((iVar3 == 0) || (iVar3 == 1)) || (iVar3 == 4)) {
+      bVar2 = true;
+    }
+    else {
+      bVar2 = false;
+    }
+    if ((((char)uStack_90 == '\0') && (bVar2)) && (-1 < *(char *)((longlong)plVar1 + 0x18b))) {
+      param_3[1] = param_3[1] | 1;
+    }
   }
   return;
 }
 

```


## FlpAddInterfaceComplete

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.93|
|i_ratio|0.8|
|m_ratio|0.96|
|b_ratio|0.91|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlpAddInterfaceComplete|FlpAddInterfaceComplete|
|fullname|FlpAddInterfaceComplete|FlpAddInterfaceComplete|
|refcount|2|2|
|`length`|571|538|
|`called`|Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>FlpAddSubInterfaceComplete<br>FlpDeleteInterfaceComplete<br>FlpLogInterfaceBindFailure<br>FlpUninitializeProviderInterfaces<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::KeWaitForSingleObject<br>__security_check_cookie<br>_guard_dispatch_icall|FlpAddSubInterfaceComplete<br>FlpDeleteInterfaceComplete<br>FlpLogInterfaceBindFailure<br>FlpUninitializeProviderInterfaces<br>NDIS.SYS::NdisAcquireRWLockWrite<br>NDIS.SYS::NdisReleaseRWLock<br>NTOSKRNL.EXE::KeWaitForSingleObject<br>__security_check_cookie<br>_guard_dispatch_icall|
|calling|FlpAddInterface|FlpAddInterface|
|paramcount|0|0|
|`address`|14014a58c|140149ecc|
|sig|undefined FlpAddInterfaceComplete(void)|undefined FlpAddInterfaceComplete(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlpAddInterfaceComplete Called Diff


```diff
--- FlpAddInterfaceComplete called
+++ FlpAddInterfaceComplete called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### FlpAddInterfaceComplete Diff


```diff
--- FlpAddInterfaceComplete
+++ FlpAddInterfaceComplete
@@ -1,107 +1,95 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 int FlpAddInterfaceComplete(longlong param_1)
 
 {
   int *piVar1;
   longlong lVar2;
   int iVar3;
   int iVar4;
-  uint uVar5;
   undefined1 auStack_c8 [32];
   undefined8 local_a8;
   undefined2 local_98;
   undefined1 local_96;
   code *local_90;
   undefined8 local_88;
   code *local_80;
   undefined8 local_78;
   longlong local_70;
   undefined8 *local_68;
   longlong local_60;
   undefined8 *local_58;
   undefined8 local_50;
   undefined4 local_48;
   undefined8 local_44;
   undefined8 uStack_3c;
   undefined8 local_34;
   undefined4 local_2c;
   ulonglong local_28;
   
   local_28 = __security_cookie ^ (ulonglong)auStack_c8;
   lVar2 = *(longlong *)(param_1 + 0x48);
   local_98 = 0;
   local_96 = 0;
   local_50 = *(undefined8 *)(param_1 + 0x58);
   local_34 = 0;
   local_2c = 0;
   local_80 = FlAddSubInterfaceComplete;
   local_78 = *(undefined8 *)(param_1 + 0x88);
   local_60 = lVar2 + 0x468;
   local_68 = &local_50;
   local_48 = 0;
   local_44 = 0;
   uStack_3c = 0;
   local_70 = param_1;
   local_58 = (undefined8 *)(param_1 + 0x90);
   iVar3 = (**(code **)(*(longlong *)(*(longlong *)(*(longlong *)(lVar2 + 0x20) + 0xd8) + 8) + 0x20))
                     (&local_80);
   if (iVar3 == 0x103) {
     local_a8 = 0;
     KeWaitForSingleObject(lVar2 + 0xa8,6,0);
     iVar3 = *(int *)(lVar2 + 0xc0);
   }
   if (iVar3 < 0) {
     FlpLogInterfaceBindFailure
               (*(undefined4 *)(lVar2 + 0x448),*(undefined2 *)(*(longlong *)(lVar2 + 0x20) + 0x5c),8,
                iVar3);
   }
   else {
     if (*(char *)(param_1 + 0x50) != '\0') {
       *(undefined8 *)(lVar2 + 0x130) = *(undefined8 *)(param_1 + 0x90);
     }
     iVar3 = FlpAddSubInterfaceComplete(param_1);
     if (-1 < iVar3) {
       return iVar3;
     }
   }
   local_90 = FlDeleteInterfaceComplete;
   local_88 = *(undefined8 *)(param_1 + 0x88);
   iVar4 = (**(code **)(*(longlong *)(*(longlong *)(*(longlong *)(lVar2 + 0x20) + 0xd8) + 8) + 0x10))
                     (&local_90);
   if (iVar4 != 0x103) {
     FlpDeleteInterfaceComplete(param_1);
   }
   if (*(char *)(param_1 + 0x50) != '\0') {
     NdisAcquireRWLockWrite(*(undefined8 *)(lVar2 + 0x28),&local_98,0);
-    if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-      uVar5 = Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar5 = Feature_TCPIP_58629296_Fix__private_featureState & 1;
-    }
-    if (uVar5 == 0) {
-      *(uint *)(lVar2 + 0xc4) = *(uint *)(lVar2 + 0xc4) | 8;
-    }
-    else {
-      *(uint *)(lVar2 + 0xc4) = *(uint *)(lVar2 + 0xc4) | 8;
-    }
+    *(uint *)(lVar2 + 0xc4) = *(uint *)(lVar2 + 0xc4) | 8;
     NdisReleaseRWLock(*(undefined8 *)(lVar2 + 0x28),&local_98);
     if (*(int *)(lVar2 + 0x35c) != 1) {
       LOCK();
       piVar1 = (int *)(lVar2 + 0x35c);
       iVar4 = *piVar1;
       *piVar1 = *piVar1 + -1;
       UNLOCK();
       if (iVar4 != 2) {
         local_a8 = 0;
         KeWaitForSingleObject(lVar2 + 0x360,6,0);
       }
     }
     FlpUninitializeProviderInterfaces(lVar2);
   }
   return iVar3;
 }
 

```


## Ipv4pPathMtuDiscoveryTimeout

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.52|
|i_ratio|0.67|
|m_ratio|0.97|
|b_ratio|0.83|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv4pPathMtuDiscoveryTimeout|Ipv4pPathMtuDiscoveryTimeout|
|fullname|Ipv4pPathMtuDiscoveryTimeout|Ipv4pPathMtuDiscoveryTimeout|
|`refcount`|6|9|
|`length`|392|376|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppUpdatePathNotification<br>Ipv4pPathMtuTimeoutFired<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|IppUpdatePathNotification<br>Ipv4pPathMtuTimeoutFired<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|
|calling|Ipv4pFragmentPacketHelper|Ipv4pFragmentPacketHelper|
|paramcount|0|0|
|`address`|140146000|140145650|
|sig|undefined Ipv4pPathMtuDiscoveryTimeout(void)|undefined Ipv4pPathMtuDiscoveryTimeout(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv4pPathMtuDiscoveryTimeout Called Diff


```diff
--- Ipv4pPathMtuDiscoveryTimeout called
+++ Ipv4pPathMtuDiscoveryTimeout called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### Ipv4pPathMtuDiscoveryTimeout Diff


```diff
--- Ipv4pPathMtuDiscoveryTimeout
+++ Ipv4pPathMtuDiscoveryTimeout
@@ -1,87 +1,74 @@
 
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void Ipv4pPathMtuDiscoveryTimeout(longlong param_1,longlong *param_2,longlong param_3)
 
 {
   longlong lVar1;
   undefined1 auVar2 [16];
   char cVar3;
-  uint uVar4;
-  int *piVar5;
-  uint uVar6;
-  ulonglong uVar7;
-  int iVar8;
-  longlong lVar9;
+  int *piVar4;
+  uint uVar5;
+  ulonglong uVar6;
+  int iVar7;
+  longlong lVar8;
   uint local_res20;
   undefined8 local_38;
   undefined8 uStack_30;
   undefined8 local_28;
   
   local_38 = 0;
   uStack_30 = 0;
   local_28 = 0;
   cVar3 = Ipv4pPathMtuTimeoutFired();
   if (cVar3 != '\0') {
     lVar1 = *param_2;
     KeAcquireInStackQueuedSpinLock(lVar1 + 0x340);
-    iVar8 = 0;
+    iVar7 = 0;
     if (-1 < *(int *)(lVar1 + 0x348)) {
-      piVar5 = (int *)(lVar1 + 0x380);
+      piVar4 = (int *)(lVar1 + 0x380);
       do {
         do {
-        } while (*piVar5 != 0);
-        iVar8 = iVar8 + 1;
-        piVar5 = piVar5 + 0x10;
-      } while (iVar8 <= *(int *)(lVar1 + 0x348));
+        } while (*piVar4 != 0);
+        iVar7 = iVar7 + 1;
+        piVar4 = piVar4 + 0x10;
+      } while (iVar7 <= *(int *)(lVar1 + 0x348));
     }
     cVar3 = Ipv4pPathMtuTimeoutFired(param_1,param_2,param_3);
-    if (cVar3 == '\0') {
-      KeReleaseInStackQueuedSpinLock(&local_38);
-    }
-    else {
-      uVar7 = 8;
+    if (cVar3 != '\0') {
+      uVar6 = 8;
       do {
-        if (*(uint *)(param_1 + 0x70) < (uint)(&Ipv4pMtuTable)[uVar7]) break;
-        uVar6 = (int)uVar7 - 1;
-        uVar7 = (ulonglong)uVar6;
-      } while (uVar6 != 0);
-      uVar6 = *(uint *)(param_3 + 0x5c);
-      if ((uint)(&Ipv4pMtuTable)[uVar7] <= *(uint *)(param_3 + 0x5c)) {
-        uVar6 = (&Ipv4pMtuTable)[uVar7];
+        if (*(uint *)(param_1 + 0x70) < (uint)(&Ipv4pMtuTable)[uVar6]) break;
+        uVar5 = (int)uVar6 - 1;
+        uVar6 = (ulonglong)uVar5;
+      } while (uVar5 != 0);
+      uVar5 = *(uint *)(param_3 + 0x5c);
+      if ((uint)(&Ipv4pMtuTable)[uVar6] <= *(uint *)(param_3 + 0x5c)) {
+        uVar5 = (&Ipv4pMtuTable)[uVar6];
       }
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar4 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar4 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar4 == 0) {
-        *(byte *)(param_1 + 0x28) = *(byte *)(param_1 + 0x28) & 0xef;
-      }
-      else {
-        local_res20 = *(uint *)(param_1 + 0x28) & 0xffffffef;
-        *(uint *)(param_1 + 0x28) = local_res20;
-      }
-      uVar7 = _DAT_0 / 10000;
+      local_res20 = *(uint *)(param_1 + 0x28) & 0xffffffef;
+      *(uint *)(param_1 + 0x28) = local_res20;
+      uVar6 = _DAT_0 / 10000;
       auVar2._8_8_ = 0;
-      auVar2._0_8_ = uVar7;
-      lVar9 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar2,8);
-      if (uVar6 < *(uint *)(param_1 + 0x70)) {
+      auVar2._0_8_ = uVar6;
+      lVar8 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar2,8);
+      if (uVar5 < *(uint *)(param_1 + 0x70)) {
         *(byte *)(param_1 + 0x28) = *(byte *)(param_1 + 0x28) | 8;
       }
       else if (*(uint *)(param_1 + 0x70) != 0) {
         *(byte *)(param_1 + 0x28) = *(byte *)(param_1 + 0x28) & 0xf7;
       }
-      *(uint *)(param_1 + 0x70) = uVar6;
-      *(int *)(param_1 + 0x74) = (int)((uVar7 - lVar9 >> 1) + lVar9 >> 8);
+      *(uint *)(param_1 + 0x70) = uVar5;
+      *(int *)(param_1 + 0x74) = (int)((uVar6 - lVar8 >> 1) + lVar8 >> 8);
       LOCK();
       *(int *)(param_1 + 0x1c) = *(int *)(param_1 + 0x1c) + 1;
       UNLOCK();
       KeReleaseInStackQueuedSpinLock(&local_38);
       IppUpdatePathNotification(lVar1,param_1);
+      return;
     }
+    KeReleaseInStackQueuedSpinLock(&local_38);
   }
   return;
 }
 

```


## UdpSendMessagesDatagramsComplete

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.53|
|i_ratio|0.72|
|m_ratio|0.94|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|UdpSendMessagesDatagramsComplete|UdpSendMessagesDatagramsComplete|
|fullname|UdpSendMessagesDatagramsComplete|UdpSendMessagesDatagramsComplete|
|refcount|7|7|
|`length`|527|604|
|`called`|FUN_1401d41fa<br>NETIO.SYS::NetioFreeNetBuffer<br>NETIO.SYS::NetioFreeNetBufferList<br>NTOSKRNL.EXE::IoFreeMdl<br>NetioRestoreNetBuffer<br>RtlAcquireWriteLock<br>UdpCleanupEndpoint<br>UdpEnqueueTimestamp<br>_guard_dispatch_icall|NETIO.SYS::NetioFreeMdl<br>NETIO.SYS::NetioFreeNetBuffer<br>NETIO.SYS::NetioFreeNetBufferList<br>NTOSKRNL.EXE::IoFreeMdl<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NetioRestoreNetBuffer<br>RtlAcquireWriteLock<br>UdpCleanupEndpoint<br>UdpEnqueueTimestamp<br>_guard_dispatch_icall|
|calling|||
|paramcount|0|0|
|`address`|1400cac50|14003d7d0|
|sig|undefined UdpSendMessagesDatagramsComplete(void)|undefined UdpSendMessagesDatagramsComplete(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### UdpSendMessagesDatagramsComplete Called Diff


```diff
--- UdpSendMessagesDatagramsComplete called
+++ UdpSendMessagesDatagramsComplete called
@@ -1 +1 @@
-FUN_1401d41fa
+NETIO.SYS::NetioFreeMdl
@@ -4,0 +5 @@
+NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock
```


### UdpSendMessagesDatagramsComplete Diff


```diff
--- UdpSendMessagesDatagramsComplete
+++ UdpSendMessagesDatagramsComplete
@@ -1,133 +1,132 @@
 
 /* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 
 void UdpSendMessagesDatagramsComplete(longlong *param_1,undefined8 param_2,undefined1 param_3)
 
 {
   longlong lVar1;
   undefined4 uVar2;
   longlong *plVar3;
   undefined8 *puVar4;
   longlong lVar5;
   longlong *plVar6;
   undefined8 uVar7;
   undefined8 uVar8;
   undefined8 *puVar9;
-  code *pcVar10;
-  undefined8 *puVar11;
+  longlong lVar10;
+  code *pcVar11;
   undefined8 *puVar12;
-  longlong *plVar13;
-  undefined1 *puVar14;
-  undefined8 *puVar15;
+  undefined8 *puVar13;
+  longlong *plVar14;
+  undefined1 *puVar15;
+  undefined8 *puVar16;
   undefined1 local_res18 [8];
   undefined8 uStack_70;
   undefined1 auStack_68 [32];
   undefined8 local_48 [4];
   
-  puVar14 = auStack_68;
+  puVar15 = auStack_68;
   do {
     plVar3 = (longlong *)*param_1;
-    *(undefined8 *)(puVar14 + 0x30) = 0;
-    *(undefined8 *)(puVar14 + 0x20) = 0;
-    *(undefined8 *)(puVar14 + 0x28) = 0;
-    plVar13 = (longlong *)param_1[1];
+    *(undefined8 *)(puVar15 + 0x30) = 0;
+    *(undefined8 *)(puVar15 + 0x20) = 0;
+    *(undefined8 *)(puVar15 + 0x28) = 0;
+    plVar14 = (longlong *)param_1[1];
     puVar4 = *(undefined8 **)((ulonglong)*(ushort *)(param_1[2] + 10) + 0x10 + param_1[2]);
     lVar5 = puVar4[2];
-    if (plVar13 != (longlong *)0x0) {
+    if (plVar14 != (longlong *)0x0) {
       if ((*(longlong *)(lVar5 + 0x168) != 0) && ((*(uint *)(param_1 + 0x10) & 0x10000) != 0)) {
-        *(undefined8 *)(puVar14 + -8) = 0x1400cae0c;
-        RtlAcquireWriteLock(lVar5,puVar14 + 0x20);
+        *(undefined8 *)(puVar15 + -8) = 0x14003d98c;
+        RtlAcquireWriteLock(lVar5,puVar15 + 0x20);
         lVar1 = *(longlong *)(lVar5 + 0x168);
         if (lVar1 != 0) {
-          lVar5 = param_1[0x2c];
+          lVar10 = param_1[0x2c];
           uVar2 = *(undefined4 *)((longlong)puVar4 + 0x34);
-          *(undefined8 *)(puVar14 + -8) = 0x1400cae2c;
-          UdpEnqueueTimestamp(lVar1,lVar5,uVar2);
-          FUN_1401d41fa();
-          return;
+          *(undefined8 *)(puVar15 + -8) = 0x14003d9ac;
+          UdpEnqueueTimestamp(lVar1,lVar10,uVar2);
         }
-        *(undefined8 *)(puVar14 + -8) = 0x1401d4206;
-        KeReleaseInStackQueuedSpinLock(puVar14 + 0x20);
+        *(undefined8 *)(puVar15 + -8) = 0x1401c7ca2;
+        KeReleaseInStackQueuedSpinLock(puVar15 + 0x20);
       }
       do {
-        plVar6 = (longlong *)*plVar13;
-        *(undefined8 *)(puVar14 + -8) = 0x1400cacc0;
-        NetioRestoreNetBuffer(plVar13);
-        puVar15 = *(undefined8 **)plVar13[4];
-        if ((*(uint *)((longlong)plVar13 + 0x5c) & 0x40) != 0) {
-          puVar9 = (undefined8 *)*puVar15;
-          *puVar15 = 0;
-          uVar7 = *(undefined8 *)plVar13[4];
-          *(undefined8 *)(puVar14 + -8) = 0x1400caddd;
+        plVar6 = (longlong *)*plVar14;
+        *(undefined8 *)(puVar15 + -8) = 0x14003d840;
+        NetioRestoreNetBuffer(plVar14);
+        puVar16 = *(undefined8 **)plVar14[4];
+        if ((*(uint *)((longlong)plVar14 + 0x5c) & 0x40) != 0) {
+          puVar9 = (undefined8 *)*puVar16;
+          *puVar16 = 0;
+          uVar7 = *(undefined8 *)plVar14[4];
+          *(undefined8 *)(puVar15 + -8) = 0x14003d95d;
           IoFreeMdl(uVar7);
-          puVar15 = puVar9;
+          puVar16 = puVar9;
         }
-        *(undefined8 *)plVar13[4] = 0;
-        if ((char)*(undefined4 *)((longlong)plVar13 + 0x5c) < '\0') {
-          puVar12 = (undefined8 *)*puVar15;
-          puVar9 = (undefined8 *)plVar13[4];
-          while (puVar11 = puVar12, puVar11 != (undefined8 *)0x0) {
-            puVar9 = puVar15;
-            puVar15 = puVar11;
-            puVar12 = (undefined8 *)*puVar11;
+        *(undefined8 *)plVar14[4] = 0;
+        if ((char)*(undefined4 *)((longlong)plVar14 + 0x5c) < '\0') {
+          puVar13 = (undefined8 *)*puVar16;
+          puVar9 = (undefined8 *)plVar14[4];
+          while (puVar12 = puVar13, puVar12 != (undefined8 *)0x0) {
+            puVar9 = puVar16;
+            puVar16 = puVar12;
+            puVar13 = (undefined8 *)*puVar12;
           }
-          *(undefined8 *)(puVar14 + -8) = 0x1401d422c;
-          NetioFreeMdl(puVar15);
+          *(undefined8 *)(puVar15 + -8) = 0x1401c7cc8;
+          NetioFreeMdl(puVar16);
           *puVar9 = 0;
-          param_3 = puVar14[0x80];
+          param_3 = puVar15[0x80];
         }
-        if (plVar13 != (longlong *)param_1[1]) {
-          *(undefined8 *)(puVar14 + -8) = 0x1400cada8;
-          NetioFreeNetBuffer(plVar13,param_3);
+        if (plVar14 != (longlong *)param_1[1]) {
+          *(undefined8 *)(puVar15 + -8) = 0x14003d928;
+          NetioFreeNetBuffer(plVar14,param_3);
         }
-        plVar13 = plVar6;
+        plVar14 = plVar6;
       } while (plVar6 != (longlong *)0x0);
     }
     if (*(int *)((longlong)param_1 + 0x8c) < 0) {
       *(int *)(puVar4 + 6) = *(int *)((longlong)param_1 + 0x8c);
     }
     if ((longlong *)puVar4[4] != param_1) {
-      *(undefined8 *)(puVar14 + -8) = 0x1400cae56;
+      *(undefined8 *)(puVar15 + -8) = 0x14003d9d6;
       NetioFreeNetBufferList(param_1,param_3);
     }
     LOCK();
-    plVar13 = puVar4 + 5;
-    lVar1 = *plVar13;
-    *plVar13 = *plVar13 + -1;
+    plVar14 = puVar4 + 5;
+    lVar1 = *plVar14;
+    *plVar14 = *plVar14 + -1;
     UNLOCK();
     if (lVar1 < 2) {
       if (lVar1 == 1) {
-        pcVar10 = (code *)*puVar4;
+        pcVar11 = (code *)*puVar4;
         uVar7 = puVar4[3];
         uVar2 = *(undefined4 *)(puVar4 + 6);
         uVar8 = puVar4[1];
-        *(undefined8 *)(puVar14 + -8) = 0x1400cad49;
-        (*pcVar10)(uVar8,uVar2,uVar7);
+        *(undefined8 *)(puVar15 + -8) = 0x14003d8c9;
+        (*pcVar11)(uVar8,uVar2,uVar7);
         uVar7 = puVar4[4];
-        *(undefined8 *)(puVar14 + -8) = 0x1400cad58;
+        *(undefined8 *)(puVar15 + -8) = 0x14003d8d8;
         NetioFreeNetBufferList(uVar7,param_3);
         LOCK();
-        plVar13 = (longlong *)(lVar5 + 0x10);
-        lVar1 = *plVar13;
-        *plVar13 = *plVar13 + -1;
+        plVar14 = (longlong *)(lVar5 + 0x10);
+        lVar1 = *plVar14;
+        *plVar14 = *plVar14 + -1;
         UNLOCK();
         if (lVar1 < 2) {
           if (lVar1 != 1) goto LAB_0;
-          *(undefined8 *)(puVar14 + -8) = 0x1400cadc3;
+          *(undefined8 *)(puVar15 + -8) = 0x14003d943;
           UdpCleanupEndpoint(lVar5);
         }
       }
       else {
 LAB_0:
-        pcVar10 = (code *)swi(0x29);
-        (*pcVar10)(0xe);
-        puVar14 = puVar14 + 8;
+        pcVar11 = (code *)swi(0x29);
+        (*pcVar11)(0xe);
+        puVar15 = puVar15 + 8;
       }
     }
     param_1 = plVar3;
     if (plVar3 == (longlong *)0x0) {
       return;
     }
   } while( true );
 }
 

```


## UdpConnectRedirectCallback

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.54|
|i_ratio|0.53|
|m_ratio|0.86|
|b_ratio|0.8|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|UdpConnectRedirectCallback|UdpConnectRedirectCallback|
|fullname|UdpConnectRedirectCallback|UdpConnectRedirectCallback|
|`refcount`|3|6|
|`length`|298|208|
|`called`|IN6ADDR_SETV4MAPPED<br>INETADDR_ISEQUAL<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>UdpConnectRedirectCallbackContinue<br>UdpDereferenceEndpoint<br>UdpSetDestinationEndpoint<br>__security_check_cookie<br>_guard_dispatch_icall<br>memmove|IN6ADDR_SETV4MAPPED<br>INETADDR_ISEQUAL<br>UdpConnectRedirectCallbackContinue<br>__security_check_cookie<br>memmove|
|`calling`||UdpConnectRedirect<br>UdpConnectRedirectObsolete|
|paramcount|0|0|
|`address`|14007cc10|14010b770|
|sig|undefined UdpConnectRedirectCallback(void)|undefined UdpConnectRedirectCallback(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### UdpConnectRedirectCallback Called Diff


```diff
--- UdpConnectRedirectCallback called
+++ UdpConnectRedirectCallback called
@@ -3 +2,0 @@
-NTOSKRNL.EXE::ExFreePoolWithTag
@@ -5,2 +3,0 @@
-UdpDereferenceEndpoint
-UdpSetDestinationEndpoint
@@ -8 +4,0 @@
-_guard_dispatch_icall
```


### UdpConnectRedirectCallback Calling Diff


```diff
--- UdpConnectRedirectCallback calling
+++ UdpConnectRedirectCallback calling
@@ -0,0 +1,2 @@
+UdpConnectRedirect
+UdpConnectRedirectObsolete
```


### UdpConnectRedirectCallback Diff


```diff
--- UdpConnectRedirectCallback
+++ UdpConnectRedirectCallback
@@ -1,65 +1,52 @@
 
-/* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 void UdpConnectRedirectCallback
-               (undefined8 *param_1,int param_2,char param_3,undefined8 param_4,short *param_5)
+               (longlong param_1,ulonglong param_2,char param_3,undefined8 param_4,short *param_5)
 
 {
   uint uVar1;
   char cVar2;
-  undefined4 uVar3;
+  ulonglong uVar3;
   short *psVar4;
   longlong lVar5;
   undefined1 auStack_58 [32];
   short local_38 [16];
   ulonglong local_18;
   
   local_18 = __security_cookie ^ (ulonglong)auStack_58;
   local_38[8] = 0;
   local_38[9] = 0;
   local_38[10] = 0;
   local_38[0xb] = 0;
   local_38[0xc] = 0;
   local_38[0xd] = 0;
+  uVar3 = param_2 & 0xffffffff;
   local_38[0] = 0;
   local_38[1] = 0;
   local_38[2] = 0;
   local_38[3] = 0;
   local_38[4] = 0;
   local_38[5] = 0;
   local_38[6] = 0;
   local_38[7] = 0;
-  if (param_2 < 0) {
-    UdpConnectRedirectCallbackContinue();
+  if ((-1 < (int)param_2) && (param_2 = uVar3, param_3 != '\0')) {
+    lVar5 = *(longlong *)(param_1 + 0x18);
+    if (((*(uint *)(*(longlong *)(param_1 + 0x20) + 0x18) & 0x20) != 0) && (*param_5 == 2)) {
+      IN6ADDR_SETV4MAPPED(local_38,param_5 + 2,0,param_5[1]);
+      param_5 = local_38;
+    }
+    psVar4 = param_5;
+    cVar2 = INETADDR_ISEQUAL(lVar5);
+    if ((cVar2 == '\0') || (*(short *)(lVar5 + 2) != psVar4[1])) {
+      uVar1 = 0x1c;
+      if (*psVar4 != 0x17) {
+        uVar1 = 0x10;
+      }
+      memmove(*(void **)(param_1 + 0x18),param_5,(ulonglong)uVar1);
+    }
   }
-  else {
-    if (param_3 != '\0') {
-      lVar5 = param_1[2];
-      if (((*(uint *)(param_1[3] + 0x18) & 0x20) != 0) && (*param_5 == 2)) {
-        IN6ADDR_SETV4MAPPED(local_38,param_5 + 2,0,param_5[1]);
-        param_5 = local_38;
-      }
-      psVar4 = param_5;
-      cVar2 = INETADDR_ISEQUAL(lVar5);
-      if ((cVar2 == '\0') || (*(short *)(lVar5 + 2) != psVar4[1])) {
-        uVar1 = 0x1c;
-        if (*psVar4 != 0x17) {
-          uVar1 = 0x10;
-        }
-        memmove((void *)param_1[2],param_5,(ulonglong)uVar1);
-      }
-    }
-    uVar3 = UdpSetDestinationEndpoint(param_1[3],param_1[2],1);
-    if ((code *)*param_1 != (code *)0x0) {
-      (*(code *)*param_1)(param_1[1],uVar3,0);
-    }
-    UdpDereferenceEndpoint(param_1[3]);
-    if (param_1[2] != 0) {
-      ExFreePoolWithTag(param_1[2],0x74727543);
-    }
-    ExFreePoolWithTag(param_1,0x74727543);
-  }
+  UdpConnectRedirectCallbackContinue(param_1,param_2);
   return;
 }
 

```


## IpNlpSetPathInfo

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.55|
|i_ratio|0.74|
|m_ratio|0.98|
|b_ratio|0.96|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpNlpSetPathInfo|IpNlpSetPathInfo|
|fullname|IpNlpSetPathInfo|IpNlpSetPathInfo|
|refcount|23|23|
|`length`|1326|1296|
|`called`|<details><summary>Expand for full list:<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IpNlpSetPathBandwidthInfo<br>IppAddOrRemoveBandwidthListeners<br>IppInterfaceBwAggregateSample<br>McTemplateK0z_EtwWriteTransfer<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseSpinLock</summary>memmove</details>|<details><summary>Expand for full list:<br>IpNlpSetPathBandwidthInfo<br>IppAddOrRemoveBandwidthListeners<br>IppInterfaceBwAggregateSample<br>McTemplateK0z_EtwWriteTransfer<br>NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>memmove</summary></details>|
|calling|InetSetPathBHConfirmationAf<br>InetSetPathConnectionFailedAf<br>InetSetPathInfoRttAf<br>TcpBwUpdateEre<br>TcpTcbIssueOrCancelPathBwEstimation<br>TcpTuneTcbEstats|InetSetPathBHConfirmationAf<br>InetSetPathConnectionFailedAf<br>InetSetPathInfoRttAf<br>TcpBwUpdateEre<br>TcpTcbIssueOrCancelPathBwEstimation<br>TcpTuneTcbEstats|
|paramcount|0|0|
|`address`|14006d890|14004ec20|
|sig|undefined IpNlpSetPathInfo(void)|undefined IpNlpSetPathInfo(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpNlpSetPathInfo Called Diff


```diff
--- IpNlpSetPathInfo called
+++ IpNlpSetPathInfo called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IpNlpSetPathInfo Diff


```diff
--- IpNlpSetPathInfo
+++ IpNlpSetPathInfo
@@ -1,198 +1,187 @@
 
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 int IpNlpSetPathInfo(longlong *param_1)
 
 {
-  longlong *plVar1;
-  longlong lVar2;
-  undefined1 auVar3 [16];
-  undefined1 uVar4;
-  undefined4 uVar5;
-  int iVar6;
+  uint uVar1;
+  longlong *plVar2;
+  longlong lVar3;
+  undefined1 auVar4 [16];
+  undefined1 uVar5;
+  undefined4 uVar6;
   int iVar7;
-  uint uVar8;
+  int iVar8;
   void *_Dst;
   int *piVar9;
   int iVar10;
   longlong lVar11;
   int iVar12;
   ulonglong uVar13;
   uint local_res8 [2];
   undefined8 local_48;
   undefined8 uStack_40;
   undefined8 local_38;
   
-  plVar1 = (longlong *)*param_1;
+  plVar2 = (longlong *)*param_1;
   iVar10 = 0;
   local_res8[0] = local_res8[0] & 0xffffff00;
-  lVar2 = **(longlong **)(*plVar1 + 8);
+  lVar3 = **(longlong **)(*plVar2 + 8);
   uVar13 = _DAT_0 / 10000;
-  auVar3._8_8_ = 0;
-  auVar3._0_8_ = uVar13;
-  lVar11 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar3,8);
+  auVar4._8_8_ = 0;
+  auVar4._0_8_ = uVar13;
+  lVar11 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar4,8);
   if ((*(uint *)(param_1 + 2) & 1) != 0) {
-    uVar8 = *(uint *)((longlong)param_1 + 0x14);
-    uVar4 = KeAcquireSpinLockRaiseToDpc(plVar1 + 0x11);
-    iVar6 = (int)((uVar13 - lVar11 >> 1) + lVar11 >> 8);
-    if (((uint)(iVar6 - (int)plVar1[0x13]) < 0x3d) && ((int)plVar1[0x13] != 0)) {
-      iVar12 = uVar8 - (int)plVar1[0x12];
-      *(int *)(plVar1 + 0x12) = (iVar12 >> 3) + (int)plVar1[0x12];
-      iVar7 = -iVar12;
+    uVar1 = *(uint *)((longlong)param_1 + 0x14);
+    uVar5 = KeAcquireSpinLockRaiseToDpc(plVar2 + 0x11);
+    iVar7 = (int)((uVar13 - lVar11 >> 1) + lVar11 >> 8);
+    if (((uint)(iVar7 - (int)plVar2[0x13]) < 0x3d) && ((int)plVar2[0x13] != 0)) {
+      iVar12 = uVar1 - (int)plVar2[0x12];
+      *(int *)(plVar2 + 0x12) = (iVar12 >> 3) + (int)plVar2[0x12];
+      iVar8 = -iVar12;
       if (-iVar12 < 0) {
-        iVar7 = iVar12;
+        iVar8 = iVar12;
       }
-      *(uint *)((longlong)plVar1 + 0x94) =
-           ((iVar7 >> 2) - (*(uint *)((longlong)plVar1 + 0x94) >> 2)) +
-           *(uint *)((longlong)plVar1 + 0x94);
+      *(uint *)((longlong)plVar2 + 0x94) =
+           ((iVar8 >> 2) - (*(uint *)((longlong)plVar2 + 0x94) >> 2)) +
+           *(uint *)((longlong)plVar2 + 0x94);
     }
     else {
-      *(uint *)(plVar1 + 0x12) = uVar8;
-      *(uint *)((longlong)plVar1 + 0x94) = uVar8 >> 1;
+      *(uint *)(plVar2 + 0x12) = uVar1;
+      *(uint *)((longlong)plVar2 + 0x94) = uVar1 >> 1;
     }
-    *(int *)(plVar1 + 0x13) = iVar6;
-    if (iVar6 == 0) {
-      *(undefined4 *)(plVar1 + 0x13) = 1;
+    *(int *)(plVar2 + 0x13) = iVar7;
+    if (iVar7 == 0) {
+      *(undefined4 *)(plVar2 + 0x13) = 1;
     }
-    KeReleaseSpinLock(plVar1 + 0x11,uVar4);
+    KeReleaseSpinLock(plVar2 + 0x11,uVar5);
   }
   if ((*(uint *)(param_1 + 2) & 0x20) != 0) {
-    uVar5 = IppAddOrRemoveBandwidthListeners
-                      (plVar1,plVar1 + 0x14,(int)param_1[9],
+    uVar6 = IppAddOrRemoveBandwidthListeners
+                      (plVar2,plVar2 + 0x14,(int)param_1[9],
                        *(undefined4 *)((longlong)param_1 + 0x4c));
-    *(undefined4 *)(param_1 + 10) = uVar5;
+    *(undefined4 *)(param_1 + 10) = uVar6;
   }
-  iVar6 = iVar10;
+  iVar7 = iVar10;
   if ((*(uint *)(param_1 + 2) & 2) != 0) {
-    uVar4 = KeAcquireSpinLockRaiseToDpc(plVar1 + 0x14);
-    iVar6 = IpNlpSetPathBandwidthInfo(param_1 + 3,plVar1[0x15],local_res8);
-    KeReleaseSpinLock(plVar1 + 0x14,uVar4);
+    uVar5 = KeAcquireSpinLockRaiseToDpc(plVar2 + 0x14);
+    iVar7 = IpNlpSetPathBandwidthInfo(param_1 + 3,plVar2[0x15],local_res8);
+    KeReleaseSpinLock(plVar2 + 0x14,uVar5);
     if (((char)local_res8[0] != '\0') && (TcpipIsServerSKU == '\0')) {
       IppInterfaceBwAggregateSample
-                (*(undefined8 *)(*plVar1 + 8),1,param_1[3],param_1[4],(char)param_1[5]);
+                (*(undefined8 *)(*plVar2 + 8),1,param_1[3],param_1[4],(char)param_1[5]);
     }
   }
   if ((*(uint *)(param_1 + 2) & 4) != 0) {
-    uVar4 = KeAcquireSpinLockRaiseToDpc(plVar1 + 0x14);
-    iVar7 = IpNlpSetPathBandwidthInfo(param_1 + 6,plVar1[0x16],local_res8);
-    if (-1 < iVar6) {
-      iVar6 = iVar7;
+    uVar5 = KeAcquireSpinLockRaiseToDpc(plVar2 + 0x14);
+    iVar8 = IpNlpSetPathBandwidthInfo(param_1 + 6,plVar2[0x16],local_res8);
+    if (-1 < iVar7) {
+      iVar7 = iVar8;
     }
-    KeReleaseSpinLock(plVar1 + 0x14,uVar4);
+    KeReleaseSpinLock(plVar2 + 0x14,uVar5);
     if (((char)local_res8[0] != '\0') && (TcpipIsServerSKU == '\0')) {
       IppInterfaceBwAggregateSample
-                (*(undefined8 *)(*plVar1 + 8),0,param_1[6],param_1[7],(char)param_1[8]);
+                (*(undefined8 *)(*plVar2 + 8),0,param_1[6],param_1[7],(char)param_1[8]);
     }
   }
   if ((*(uint *)(param_1 + 2) & 8) != 0) {
     local_48 = 0;
     uStack_40 = 0;
     local_38 = 0;
-    KeAcquireInStackQueuedSpinLock(lVar2 + 0x340,&local_48);
-    if (-1 < *(int *)(lVar2 + 0x348)) {
-      piVar9 = (int *)(lVar2 + 0x380);
-      iVar7 = iVar10;
+    KeAcquireInStackQueuedSpinLock(lVar3 + 0x340,&local_48);
+    if (-1 < *(int *)(lVar3 + 0x348)) {
+      piVar9 = (int *)(lVar3 + 0x380);
+      iVar8 = iVar10;
       do {
         do {
         } while (*piVar9 != 0);
-        iVar7 = iVar7 + 1;
+        iVar8 = iVar8 + 1;
         piVar9 = piVar9 + 0x10;
-      } while (iVar7 <= *(int *)(lVar2 + 0x348));
+      } while (iVar8 <= *(int *)(lVar3 + 0x348));
     }
-    if (param_1[1] == plVar1[0x18]) {
-      if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-        uVar8 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-      }
-      else {
-        uVar8 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-      }
-      if (uVar8 == 0) {
-        *(byte *)(plVar1 + 5) = *(byte *)(plVar1 + 5) | 0x20;
-      }
-      else {
-        local_res8[0] = *(uint *)(plVar1 + 5) | 0x20;
-        *(uint *)(plVar1 + 5) = local_res8[0];
-      }
+    if (param_1[1] == plVar2[0x18]) {
+      local_res8[0] = *(uint *)(plVar2 + 5) | 0x20;
+      *(uint *)(plVar2 + 5) = local_res8[0];
     }
     KeReleaseInStackQueuedSpinLock(&local_48);
   }
   if ((*(uint *)(param_1 + 2) & 0x10) != 0) {
     local_48 = 0;
     uStack_40 = 0;
     local_38 = 0;
-    KeAcquireInStackQueuedSpinLock(lVar2 + 0x340,&local_48);
-    if (-1 < *(int *)(lVar2 + 0x348)) {
-      piVar9 = (int *)(lVar2 + 0x380);
-      iVar7 = iVar10;
+    KeAcquireInStackQueuedSpinLock(lVar3 + 0x340,&local_48);
+    if (-1 < *(int *)(lVar3 + 0x348)) {
+      piVar9 = (int *)(lVar3 + 0x380);
+      iVar8 = iVar10;
       do {
         do {
         } while (*piVar9 != 0);
-        iVar7 = iVar7 + 1;
+        iVar8 = iVar8 + 1;
         piVar9 = piVar9 + 0x10;
-      } while (iVar7 <= *(int *)(lVar2 + 0x348));
+      } while (iVar8 <= *(int *)(lVar3 + 0x348));
     }
-    if (param_1[1] == plVar1[0x18]) {
-      *(byte *)(plVar1 + 5) = *(byte *)(plVar1 + 5) | 0x40;
+    if (param_1[1] == plVar2[0x18]) {
+      *(byte *)(plVar2 + 5) = *(byte *)(plVar2 + 5) | 0x40;
     }
     KeReleaseInStackQueuedSpinLock(&local_48);
   }
   if ((*(uint *)(param_1 + 2) & 0x40) == 0) {
-    return iVar6;
+    return iVar7;
   }
   local_38 = 0;
   local_48 = 0;
   uStack_40 = 0;
   if (*(int *)((longlong)param_1 + 100) == 0) {
-    KeAcquireInStackQueuedSpinLock(lVar2 + 0x340,&local_48);
-    if (-1 < *(int *)(lVar2 + 0x348)) {
-      piVar9 = (int *)(lVar2 + 0x380);
+    KeAcquireInStackQueuedSpinLock(lVar3 + 0x340,&local_48);
+    if (-1 < *(int *)(lVar3 + 0x348)) {
+      piVar9 = (int *)(lVar3 + 0x380);
       do {
         do {
         } while (*piVar9 != 0);
         iVar10 = iVar10 + 1;
         piVar9 = piVar9 + 0x10;
-      } while (iVar10 <= *(int *)(lVar2 + 0x348));
+      } while (iVar10 <= *(int *)(lVar3 + 0x348));
     }
-    _Dst = (void *)plVar1[0x19];
+    _Dst = (void *)plVar2[0x19];
     if (_Dst == (void *)0x0) {
       _Dst = (void *)ExAllocatePool2(0x42,(char)param_1[0xc],0x676e7049);
       if (_Dst == (void *)0x0) {
         KeReleaseInStackQueuedSpinLock(&local_48);
         if (DAT_1 < '\0') {
           McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
         }
         return -0x3fffffe9;
       }
-      plVar1[0x19] = (longlong)_Dst;
+      plVar2[0x19] = (longlong)_Dst;
     }
     memmove(_Dst,(void *)param_1[0xb],(ulonglong)*(byte *)(param_1 + 0xc));
   }
   else {
     if (*(int *)((longlong)param_1 + 100) != 1) {
       return -0x3ffffff3;
     }
-    if (plVar1[0x19] == 0) {
-      return iVar6;
+    if (plVar2[0x19] == 0) {
+      return iVar7;
     }
-    KeAcquireInStackQueuedSpinLock(lVar2 + 0x340,&local_48);
-    if (-1 < *(int *)(lVar2 + 0x348)) {
-      piVar9 = (int *)(lVar2 + 0x380);
+    KeAcquireInStackQueuedSpinLock(lVar3 + 0x340,&local_48);
+    if (-1 < *(int *)(lVar3 + 0x348)) {
+      piVar9 = (int *)(lVar3 + 0x380);
       do {
         do {
         } while (*piVar9 != 0);
         iVar10 = iVar10 + 1;
         piVar9 = piVar9 + 0x10;
-      } while (iVar10 <= *(int *)(lVar2 + 0x348));
+      } while (iVar10 <= *(int *)(lVar3 + 0x348));
     }
-    lVar2 = plVar1[0x19];
-    if (lVar2 != 0) {
-      plVar1[0x19] = 0;
+    lVar3 = plVar2[0x19];
+    if (lVar3 != 0) {
+      plVar2[0x19] = 0;
       KeReleaseInStackQueuedSpinLock();
-      ExFreePoolWithTag(lVar2,0x676e7049);
-      return iVar6;
+      ExFreePoolWithTag(lVar3,0x676e7049);
+      return iVar7;
     }
   }
   KeReleaseInStackQueuedSpinLock(&local_48);
-  return iVar6;
+  return iVar7;
 }
 

```


## Fl4tMapAddress

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.21|
|i_ratio|0.12|
|m_ratio|0.81|
|b_ratio|0.79|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Fl4tMapAddress|Fl4tMapAddress|
|fullname|Fl4tMapAddress|Fl4tMapAddress|
|refcount|3|3|
|`length`|248|188|
|`called`|Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>Fl4tpMapNonUnicastAddress<br>memmove|Fl4tpMapNonUnicastAddress<br>memmove|
|calling|||
|paramcount|0|0|
|`address`|1401aeec0|1401af0f0|
|sig|undefined Fl4tMapAddress(void)|undefined Fl4tMapAddress(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Fl4tMapAddress Called Diff


```diff
--- Fl4tMapAddress called
+++ Fl4tMapAddress called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### Fl4tMapAddress Diff


```diff
--- Fl4tMapAddress
+++ Fl4tMapAddress
@@ -1,54 +1,39 @@
 
 undefined8 Fl4tMapAddress(longlong *param_1)
 
 {
   int iVar1;
-  longlong lVar2;
-  undefined4 *puVar3;
-  longlong lVar4;
-  uint uVar5;
-  undefined8 uVar6;
-  undefined1 local_res8 [8];
+  undefined4 *puVar2;
+  longlong lVar3;
+  undefined8 uVar4;
+  undefined1 local_res8 [32];
   
-  lVar2 = *param_1;
-  puVar3 = (undefined4 *)param_1[2];
+  puVar2 = (undefined4 *)param_1[2];
+  lVar3 = *(longlong *)(*param_1 + 0x48);
   iVar1 = *(int *)param_1[1];
-  lVar4 = *(longlong *)(lVar2 + 0x48);
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    uVar5 = Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
+  if (((*(byte *)(*param_1 + 0x40) & 1) == 0) && ((*(uint *)(lVar3 + 0xc4) & 8) == 0)) {
+    param_1[3] = *(longlong *)(lVar3 + 0x130);
+    if ((((byte)iVar1 & 0xf0) == 0xe0) || (iVar1 == -1)) {
+      uVar4 = Fl4tpMapNonUnicastAddress(param_1[2],local_res8,lVar3);
+      return uVar4;
+    }
+    if (*(int *)(lVar3 + 0x498) == 1) {
+      *puVar2 = *(undefined4 *)(lVar3 + 0x450);
+      puVar2[1] = 0;
+      puVar2[2] = iVar1;
+    }
+    else {
+      if (*(int *)(lVar3 + 0x498) != 2) goto LAB_0;
+      memmove((void *)param_1[2],(void *)(lVar3 + 0x5b8 + (ulonglong)*(byte *)(lVar3 + 0x48a)),
+              (ulonglong)*(byte *)(lVar3 + 0x48a));
+    }
+    uVar4 = 0;
   }
   else {
-    uVar5 = Feature_TCPIP_58629296_Fix__private_featureState & 1;
+    param_1[3] = 0;
+LAB_0:
+    uVar4 = 1;
   }
-  if (uVar5 == 0) {
-    if ((*(byte *)(lVar2 + 0x40) & 1) != 0) goto LAB_0;
-    uVar5 = *(uint *)(lVar4 + 0xc4);
-  }
-  else {
-    uVar5 = *(uint *)(lVar4 + 0xc4);
-    if ((*(byte *)(lVar2 + 0x40) & 1) != 0) goto LAB_0;
-  }
-  if ((uVar5 & 8) == 0) {
-    param_1[3] = *(longlong *)(lVar4 + 0x130);
-    if ((((byte)iVar1 & 0xf0) == 0xe0) || (iVar1 == -1)) {
-      uVar6 = Fl4tpMapNonUnicastAddress(param_1[2],local_res8,lVar4);
-      return uVar6;
-    }
-    if (*(int *)(lVar4 + 0x498) == 1) {
-      *puVar3 = *(undefined4 *)(lVar4 + 0x450);
-      puVar3[1] = 0;
-      puVar3[2] = iVar1;
-      return 0;
-    }
-    if (*(int *)(lVar4 + 0x498) != 2) {
-      return 1;
-    }
-    memmove((void *)param_1[2],(void *)(lVar4 + 0x5b8 + (ulonglong)*(byte *)(lVar4 + 0x48a)),
-            (ulonglong)*(byte *)(lVar4 + 0x48a));
-    return 0;
-  }
-LAB_0:
-  param_1[3] = 0;
-  return 1;
+  return uVar4;
 }
 

```


## IppFillIpHeaderForFastSend

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.64|
|i_ratio|0.54|
|m_ratio|0.95|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppFillIpHeaderForFastSend|IppFillIpHeaderForFastSend|
|fullname|IppFillIpHeaderForFastSend|IppFillIpHeaderForFastSend|
|refcount|3|3|
|`length`|541|522|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppGenerateMultipleFragmentIds<br>IppGetEffectiveEcnField<br>Ipv6pGetVersionClassEcnFlow|IppGenerateMultipleFragmentIds<br>IppGetEffectiveEcnField<br>Ipv6pGetVersionClassEcnFlow|
|calling|IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams|IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams|
|paramcount|0|0|
|`address`|1401441c8|140143758|
|sig|undefined IppFillIpHeaderForFastSend(void)|undefined IppFillIpHeaderForFastSend(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppFillIpHeaderForFastSend Called Diff


```diff
--- IppFillIpHeaderForFastSend called
+++ IppFillIpHeaderForFastSend called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IppFillIpHeaderForFastSend Diff


```diff
--- IppFillIpHeaderForFastSend
+++ IppFillIpHeaderForFastSend
@@ -1,93 +1,78 @@
 
 void IppFillIpHeaderForFastSend
                (undefined1 *param_1,longlong param_2,longlong param_3,longlong *param_4,byte param_5
-               ,ushort param_6,short param_7,undefined1 param_8,undefined1 param_9,
-               undefined4 param_10,undefined1 param_11,undefined1 param_12,undefined8 param_13,
-               int param_14,longlong param_15,undefined4 *param_16)
+               ,ushort param_6,short param_7,undefined1 param_8,undefined1 param_9,uint param_10,
+               undefined1 param_11,undefined1 param_12,undefined8 param_13,int param_14,
+               longlong param_15,undefined4 *param_16)
 
 {
   char cVar1;
   undefined8 uVar2;
   byte bVar3;
   undefined1 uVar4;
   ushort uVar5;
-  uint uVar6;
-  undefined4 uVar7;
-  undefined7 uVar8;
-  byte bVar9;
-  bool bVar10;
+  undefined4 uVar6;
+  byte bVar7;
+  ulonglong uVar8;
   
+  uVar8 = 0;
+  uVar5 = 0;
   if (param_1 == &Ipv4Global) {
     if (param_14 < 2) {
       uVar5 = (ushort)(param_7 + param_6) >> 8 | (param_7 + param_6) * 0x100;
     }
-    else {
-      uVar5 = 0;
-    }
     cVar1 = *(char *)(param_3 + 0x1c);
     *(ushort *)((longlong)param_16 + 2) = uVar5;
     *(undefined1 *)param_16 = 0x45;
-    uVar8 = 0x14021f6;
     *(undefined1 *)(param_16 + 2) = param_8;
     *(byte *)((longlong)param_16 + 1) = cVar1 << 2 | *(byte *)((longlong)param_16 + 1) & 3;
-    bVar9 = *(byte *)(param_3 + 0x25);
+    bVar7 = *(byte *)(param_3 + 0x25);
     *(ushort *)((longlong)param_16 + 6) = (ushort)(param_5 >> 1 & 1) << 6;
-    if (((bVar9 & 8) != 0) || ((*(byte *)(param_3 + 0x26) & 0x30) != 0)) {
+    if (((bVar7 & 8) != 0) || ((*(byte *)(param_3 + 0x26) & 0x30) != 0)) {
       *(ushort *)((longlong)param_16 + 6) = (ushort)(*(byte *)(param_3 + 0x24) >> 2 & 1) << 6;
     }
-    if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-      uVar6 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar6 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-    }
-    if (uVar6 == 0) {
-      bVar10 = (*(byte *)(param_4 + 5) & 0x10) == 0;
-    }
-    else {
-      bVar10 = (*(uint *)(param_4 + 5) & 0x10) == 0;
-    }
-    if (!bVar10) {
+    if ((*(uint *)(param_4 + 5) & 0x10) != 0) {
       *(ushort *)((longlong)param_16 + 6) = *(ushort *)((longlong)param_16 + 6) & 0xffbf;
     }
-    bVar9 = *(byte *)((longlong)param_16 + 1);
+    bVar7 = *(byte *)((longlong)param_16 + 1);
     *(undefined2 *)((longlong)param_16 + 10) = 0;
     bVar3 = IppGetEffectiveEcnField
-                      (CONCAT71(uVar8,*(byte *)(param_2 + 0x18b) >> 5) & 0xffffffffffffff03,param_11
-                       ,param_12);
-    *(byte *)((longlong)param_16 + 1) = (bVar3 ^ bVar9) & 3 ^ bVar9;
+                      (CONCAT71(0x14021e7,*(byte *)(param_2 + 0x18b) >> 5) & 0xffffffffffffff03,
+                       param_11,param_12);
+    *(byte *)((longlong)param_16 + 1) = (bVar3 ^ bVar7) & 3 ^ bVar7;
     *(undefined1 *)((longlong)param_16 + 9) = param_9;
     param_16[3] = *(undefined4 *)**(undefined8 **)(*param_4 + 0x10);
     param_16[4] = *(undefined4 *)param_4[2];
     uVar5 = IppGenerateMultipleFragmentIds(param_4,param_2);
     *(ushort *)(param_16 + 1) = uVar5 >> 8 | uVar5 << 8;
   }
   else {
     if (param_14 < 2) {
       uVar5 = param_6 >> 8 | param_6 << 8;
     }
-    else {
-      uVar5 = 0;
-    }
     *(ushort *)(param_16 + 1) = uVar5;
-    uVar7 = 0;
-    if ((param_1[0x4d0a] != '\0') && (uVar7 = param_10, TcpipGlobalDisableRandomFlowLabel != 0)) {
-      uVar7 = *(undefined4 *)(param_15 + 0xd0);
+    if (param_1[0x4d0a] != '\0') {
+      if (TcpipGlobalDisableRandomFlowLabel == 0) {
+        uVar8 = (ulonglong)param_10;
+      }
+      else {
+        uVar8 = (ulonglong)*(uint *)(param_15 + 0xd0);
+      }
     }
     uVar4 = IppGetEffectiveEcnField
                       (CONCAT71((int7)((ulonglong)param_1 >> 8),*(byte *)(param_2 + 0x18b) >> 5) &
                        0xffffffffffffff03,param_11,param_12);
-    uVar7 = Ipv6pGetVersionClassEcnFlow(*(undefined1 *)(param_3 + 0x1c),uVar4,uVar7);
-    *param_16 = uVar7;
+    uVar6 = Ipv6pGetVersionClassEcnFlow(*(undefined1 *)(param_3 + 0x1c),uVar4,uVar8 & 0xffffffff);
+    *param_16 = uVar6;
     *(undefined1 *)((longlong)param_16 + 6) = param_9;
     *(undefined1 *)((longlong)param_16 + 7) = param_8;
     uVar2 = ((undefined8 *)**(longlong **)(*param_4 + 0x10))[1];
     *(undefined8 *)(param_16 + 2) = *(undefined8 *)**(longlong **)(*param_4 + 0x10);
     *(undefined8 *)(param_16 + 4) = uVar2;
     uVar2 = ((undefined8 *)param_4[2])[1];
     *(undefined8 *)(param_16 + 6) = *(undefined8 *)param_4[2];
     *(undefined8 *)(param_16 + 8) = uVar2;
   }
   return;
 }
 

```


## InetWakeReleasePortAf

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.3|
|i_ratio|0.44|
|m_ratio|0.92|
|b_ratio|0.74|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|InetWakeReleasePortAf|InetWakeReleasePortAf|
|fullname|InetWakeReleasePortAf|InetWakeReleasePortAf|
|refcount|4|4|
|`length`|342|383|
|`called`|InetSetInterfacePropertyAf<br>InetWakeLookupPort<br>IsPortWithinRange<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>__security_check_cookie<br>memset|Feature_2930222395__private_IsEnabledDeviceUsageNoInline<br>InetSetInterfacePropertyAf<br>InetWakeLookupPort<br>InetWakeRemovePortEntryIfPresent<br>IsPortWithinRange<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>__security_check_cookie<br>memset|
|calling|InetWakeAcquirePort<br>InetWakeReleasePort|InetWakeAcquirePort<br>InetWakeReleasePort|
|paramcount|0|0|
|`address`|1401344cc|14014b158|
|sig|undefined InetWakeReleasePortAf(void)|undefined InetWakeReleasePortAf(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### InetWakeReleasePortAf Called Diff


```diff
--- InetWakeReleasePortAf called
+++ InetWakeReleasePortAf called
@@ -0,0 +1 @@
+Feature_2930222395__private_IsEnabledDeviceUsageNoInline
@@ -2,0 +4 @@
+InetWakeRemovePortEntryIfPresent
```


### InetWakeReleasePortAf Diff


```diff
--- InetWakeReleasePortAf
+++ InetWakeReleasePortAf
@@ -1,72 +1,75 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
-undefined4
+undefined8
 InetWakeReleasePortAf(undefined2 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
 
 {
   longlong lVar1;
   longlong *plVar2;
   code *pcVar3;
-  undefined1 *puVar4;
-  undefined1 uVar5;
-  char cVar6;
+  undefined1 uVar4;
+  char cVar5;
+  uint uVar6;
   longlong *plVar7;
-  undefined1 *puVar8;
-  undefined4 uVar9;
-  undefined1 auStack_178 [8];
-  undefined1 auStack_170 [24];
+  undefined8 uVar8;
+  undefined1 auStack_178 [32];
   undefined4 local_158;
   undefined1 *local_150;
   undefined4 local_148;
   undefined1 local_128 [208];
   undefined4 local_58;
   ulonglong local_48;
   
-  puVar8 = auStack_178;
   local_48 = __security_cookie ^ (ulonglong)auStack_178;
-  uVar9 = 0;
-  uVar5 = KeAcquireSpinLockRaiseToDpc(param_4);
+  uVar4 = KeAcquireSpinLockRaiseToDpc(param_4);
   plVar7 = (longlong *)InetWakeLookupPort(param_1,param_2,param_3,param_4);
   if (plVar7 == (longlong *)0x0) {
-    KeReleaseSpinLock(param_4,uVar5);
-    puVar8 = auStack_178;
-    uVar9 = 0xc0000225;
+    KeReleaseSpinLock(param_4,uVar4);
+    return 0xc0000225;
+  }
+  plVar2 = plVar7 + 2;
+  *(int *)plVar2 = (int)*plVar2 + -1;
+  if ((int)*plVar2 == 0) {
+    if ((Feature_2930222395__private_featureState & 0x10) == 0) {
+      uVar6 = Feature_2930222395__private_IsEnabledDeviceUsageNoInline();
+    }
+    else {
+      uVar6 = Feature_2930222395__private_featureState & 1;
+    }
+    if (uVar6 == 0) {
+      lVar1 = *plVar7;
+      if ((*(longlong **)(lVar1 + 8) != plVar7) ||
+         (plVar2 = (longlong *)plVar7[1], (longlong *)*plVar2 != plVar7)) {
+        pcVar3 = (code *)swi(0x29);
+        (*pcVar3)(3);
+        pcVar3 = (code *)swi(3);
+        uVar8 = (*pcVar3)();
+        return uVar8;
+      }
+      *plVar2 = lVar1;
+      *(longlong **)(lVar1 + 8) = plVar2;
+    }
+    else {
+      InetWakeRemovePortEntryIfPresent(plVar7);
+      if (*(int *)((longlong)plVar7 + 0x14) != 0) goto LAB_0;
+    }
+    KeReleaseSpinLock(param_4,uVar4);
+    cVar5 = IsPortWithinRange(param_1);
+    if (cVar5 == '\0') {
+      memset(local_128,0,0xd8);
+      local_58 = (undefined4)plVar7[3];
+      local_150 = local_128;
+      local_148 = 0xd8;
+      local_158 = 0;
+      InetSetInterfacePropertyAf(param_2,param_3,0,0x13);
+    }
+    ExFreePoolWithTag(plVar7,0);
   }
   else {
-    plVar2 = plVar7 + 2;
-    *(int *)plVar2 = (int)*plVar2 + -1;
-    puVar4 = auStack_178;
-    if ((int)*plVar2 == 0) {
-      lVar1 = *plVar7;
-      if ((*(longlong **)(lVar1 + 8) == plVar7) &&
-         (plVar2 = (longlong *)plVar7[1], (longlong *)*plVar2 == plVar7)) {
-        *plVar2 = lVar1;
-        *(longlong **)(lVar1 + 8) = plVar2;
-        KeReleaseSpinLock(param_4,CONCAT71((int7)((ulonglong)lVar1 >> 8),uVar5));
-        cVar6 = IsPortWithinRange(param_1);
-        if (cVar6 == '\0') {
-          memset(local_128,0,0xd8);
-          local_58 = *(undefined4 *)((longlong)plVar7 + 0x14);
-          local_150 = local_128;
-          local_148 = 0xd8;
-          local_158 = 0;
-          InetSetInterfacePropertyAf(param_2,param_3,0,0x13);
-        }
-        ExFreePoolWithTag(plVar7,0);
-        uVar9 = 0;
-        goto LAB_0;
-      }
-      pcVar3 = (code *)swi(0x29);
-      (*pcVar3)(3);
-      puVar4 = auStack_170;
-    }
-    puVar8 = puVar4;
-    *(undefined8 *)(puVar8 + -8) = 0x1401345fb;
-    KeReleaseSpinLock(param_4,uVar5);
+LAB_0:
+    KeReleaseSpinLock(param_4,uVar4);
   }
-LAB_0:
-  *(undefined8 *)(puVar8 + -8) = 0x140134612;
-  return uVar9;
+  return 0;
 }
 

```


## AleInspectConnectRequest

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,calling,called|
|ratio|0.1|
|i_ratio|0.19|
|m_ratio|0.87|
|b_ratio|0.21|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleInspectConnectRequest|AleInspectConnectRequest|
|fullname|AleInspectConnectRequest|AleInspectConnectRequest|
|`refcount`|10|7|
|`length`|2516|3106|
|`called`|<details><summary>Expand for full list:<br>AleGetOriginalAppId<br>AleInspectAdjustModifiedLayerDataLocalAddress<br>AleInspectConnectRequestProcessLocalAddressRedirection<br>AlepCleanupModifiedConnectRedirectLayerData<br>AlepCreateRedirectRecord<br>AlepSetConnectRedirectLayerMetadata<br>AlepValidateConnectRedirectLayerData<br>Feature_Netsec_BugFix_WFPMemLeak__private_IsEnabledDeviceUsageNoInline<br>InitializeEndpointContextFromParentContext<br>NETIO.SYS::FeReleaseCalloutContextList<br>NETIO.SYS::KfdClassify</summary>NETIO.SYS::KfdIsLayerEmpty<br>WfpAleMarshalFqbnValue<br>WfpMarshalIncomingValues<br>WfpPoolFree<br>WfpReportSysErrorAsNtStatus<br>__security_check_cookie<br>memmove<br>memset</details>|<details><summary>Expand for full list:<br>AlepCreateRedirectRecord<br>AlepValidateConnectRedirectLayerData<br>InitializeEndpointContextFromParentContext<br>NETIO.SYS::FeReleaseCalloutContextList<br>NETIO.SYS::KfdClassify<br>NETIO.SYS::KfdIsLayerEmpty<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>WfpAleMarshalFqbnValue<br>WfpAleQueryOrInsertEndpointHandle<br>WfpMarshalIncomingValues<br>WfpReportSysErrorAsNtStatus</summary>__security_check_cookie<br>memmove<br>memset</details>|
|`calling`|ProcessRedirectLayerForNonNativeTCP<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>UdpConnectRedirect|InetInspectConnectRequest<br>ProcessRedirectLayerForNonNativeTCP<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>UdpConnectRedirect|
|paramcount|0|0|
|`address`|140003da0|14002fde0|
|sig|undefined AleInspectConnectRequest(void)|undefined AleInspectConnectRequest(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleInspectConnectRequest Called Diff


```diff
--- AleInspectConnectRequest called
+++ AleInspectConnectRequest called
@@ -1,4 +0,0 @@
-AleGetOriginalAppId
-AleInspectAdjustModifiedLayerDataLocalAddress
-AleInspectConnectRequestProcessLocalAddressRedirection
-AlepCleanupModifiedConnectRedirectLayerData
@@ -6 +1,0 @@
-AlepSetConnectRedirectLayerMetadata
@@ -8 +2,0 @@
-Feature_Netsec_BugFix_WFPMemLeak__private_IsEnabledDeviceUsageNoInline
@@ -12,0 +7 @@
+NTOSKRNL.EXE::ExFreePoolWithTag
@@ -13,0 +9 @@
+WfpAleQueryOrInsertEndpointHandle
@@ -15 +10,0 @@
-WfpPoolFree
```


### AleInspectConnectRequest Calling Diff


```diff
--- AleInspectConnectRequest calling
+++ AleInspectConnectRequest calling
@@ -0,0 +1 @@
+InetInspectConnectRequest
```


### AleInspectConnectRequest Diff


```diff
--- AleInspectConnectRequest
+++ AleInspectConnectRequest
@@ -1,484 +1,660 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* WARNING: Type propagation algorithm not settling */
 
 ulonglong AleInspectConnectRequest
                     (longlong param_1,longlong param_2,undefined8 param_3,undefined8 param_4,
-                    undefined *param_5,uint param_6,longlong param_7,short *param_8,ushort *param_9,
-                    undefined8 *param_10,undefined1 *param_11,undefined8 param_12)
+                    undefined8 param_5,uint param_6,undefined4 *param_7,short *param_8,
+                    short *param_9,undefined8 *param_10,undefined1 *param_11,undefined8 param_12)
 
 {
-  short sVar1;
-  undefined4 uVar2;
-  undefined4 uVar3;
+  code **ppcVar1;
+  byte bVar2;
+  short sVar3;
   undefined4 uVar4;
-  code *pcVar5;
-  bool bVar6;
+  undefined4 uVar5;
+  undefined4 uVar6;
+  code *pcVar7;
+  bool bVar8;
   short *_Dst;
-  int iVar7;
-  uint uVar8;
-  uint uVar9;
-  ulonglong uVar10;
-  longlong lVar11;
+  short *_Dst_00;
+  ushort uVar9;
+  int iVar10;
+  uint uVar11;
   code **ppcVar12;
   code **ppcVar13;
-  code **ppcVar14;
-  ulonglong uVar15;
-  short sVar16;
-  size_t sVar17;
-  undefined *puVar18;
+  ulonglong uVar14;
+  longlong lVar15;
+  code **ppcVar16;
+  code **ppcVar17;
+  longlong lVar18;
+  uint uVar19;
+  ulonglong uVar20;
+  code **ppcVar21;
+  size_t sVar22;
+  undefined *puVar23;
+  longlong lVar24;
   undefined4 extraout_XMM0_Da;
-  undefined1 auStack_938 [32];
-  code **local_918;
-  ulonglong *local_910;
-  undefined8 local_908;
+  undefined1 auStack_958 [32];
+  code **local_938;
+  ulonglong *local_930;
+  undefined8 local_928;
+  undefined8 local_920;
+  undefined8 local_918;
+  longlong local_910;
+  char *local_908;
   undefined8 local_900;
-  undefined8 local_8f8;
-  longlong local_8f0;
-  char *local_8e8;
-  undefined8 local_8e0;
-  char local_8d8 [8];
-  code **local_8d0;
-  undefined8 local_8c8;
-  short *local_8c0;
-  undefined *local_8b8;
-  undefined8 local_8b0;
-  undefined1 *puStack_8a8;
-  ulonglong local_8a0;
-  longlong lStack_898;
-  undefined8 local_890;
-  undefined8 local_888;
-  undefined8 *local_880;
-  undefined1 *local_878;
-  undefined8 local_870;
-  undefined8 uStack_868;
-  undefined8 local_860;
-  longlong lStack_858;
-  undefined8 local_850;
-  undefined8 uStack_848;
-  undefined8 local_840;
-  longlong lStack_838;
-  code *local_828;
-  code *local_820;
-  code *local_818;
-  code *local_810;
-  code *local_808;
-  code *local_800;
-  code *local_7f8;
-  code *local_7f0;
-  code *local_7e8;
-  undefined1 local_7e0;
-  undefined1 local_7df;
-  char local_7de;
+  char local_8f8 [8];
+  ulonglong local_8f0;
+  uint local_8e8;
+  short *local_8e0;
+  short *local_8d8;
+  undefined8 local_8d0;
+  undefined1 *puStack_8c8;
+  ulonglong local_8c0;
+  longlong lStack_8b8;
+  code *local_8a8;
+  code *pcStack_8a0;
+  code *local_898;
+  code *pcStack_890;
+  code *local_888;
+  code *pcStack_880;
+  code *local_878;
+  code *pcStack_870;
+  code *local_868;
+  undefined8 uStack_860;
+  undefined8 local_858;
+  undefined1 *puStack_850;
+  undefined8 local_848;
+  code **ppcStack_840;
+  longlong local_838;
+  undefined8 local_828;
+  undefined8 local_820;
+  undefined8 *local_818;
+  undefined1 *local_810;
+  undefined8 local_808;
+  undefined8 uStack_800;
+  undefined8 local_7f8;
+  longlong lStack_7f0;
+  undefined8 local_7e8;
+  undefined8 uStack_7e0;
   undefined8 local_7d8;
-  undefined1 *local_7d0;
-  char local_7c8;
-  code **local_7c0;
-  longlong local_7b8;
-  code *local_7a8 [16];
-  undefined1 local_728 [128];
+  longlong lStack_7d0;
+  code *local_7c8;
+  code *pcStack_7c0;
+  code *local_7b8;
+  code *pcStack_7b0;
+  code *local_7a8;
+  code *pcStack_7a0;
+  code *local_798;
+  code *pcStack_790;
+  code *local_788;
+  code *pcStack_780;
+  code *local_778;
+  code *pcStack_770;
+  undefined4 local_768;
+  undefined4 uStack_764;
+  undefined4 uStack_760;
+  undefined4 uStack_75c;
+  code *local_758;
+  code *pcStack_750;
+  undefined1 local_748 [128];
+  undefined8 local_6c8;
+  undefined4 local_6c0;
+  code *local_6b8;
   undefined8 local_6a8;
-  undefined4 local_6a0;
-  undefined8 local_688;
-  undefined8 local_680;
-  undefined8 local_678;
-  undefined1 local_658;
-  undefined2 local_657;
-  undefined1 local_655;
-  longlong local_650;
-  undefined8 local_648;
-  undefined8 local_640;
-  undefined *local_638;
-  undefined1 local_628 [128];
-  undefined1 local_5a8 [144];
-  ulonglong local_518 [6];
-  undefined1 local_4e8 [624];
-  undefined8 ******local_278;
-  undefined8 ******local_270;
+  undefined8 local_6a0;
+  undefined8 local_698;
+  undefined4 local_68c;
+  undefined1 local_678;
+  undefined2 local_677;
+  undefined1 local_675;
+  longlong local_670;
+  undefined8 local_668;
+  undefined8 local_660;
+  undefined8 local_658;
+  undefined1 local_648 [128];
+  undefined1 local_5c8 [144];
+  ulonglong local_538;
+  undefined8 uStack_530;
+  undefined8 local_528;
+  undefined8 uStack_520;
+  undefined8 local_518;
+  ulonglong local_510;
+  undefined8 uStack_508;
+  undefined8 local_500;
+  undefined8 uStack_4f8;
+  undefined8 local_4f0;
+  uint local_4e8;
+  uint local_4e4;
+  undefined8 local_4b0;
+  undefined8 local_4a8;
+  undefined8 local_478;
+  undefined8 local_428;
+  undefined4 local_420;
+  longlong local_410;
+  undefined8 local_2f0;
+  longlong local_2b8;
+  undefined8 *******local_278;
+  undefined8 *******local_270;
   undefined4 local_238 [2];
   undefined8 *local_230;
   undefined4 local_228;
   undefined8 *local_220;
   undefined4 local_218;
   short *local_210;
   undefined4 local_208;
   undefined8 local_200;
   undefined4 local_1f8;
   ulonglong local_1f0;
   undefined4 local_1e8;
   ulonglong local_1e0;
   undefined4 local_1d8;
-  ushort *local_1d0;
+  short *local_1d0;
   undefined4 local_1c8;
   undefined8 local_1c0;
   undefined4 local_1b8;
   ulonglong local_1b0;
   undefined4 local_1a8;
   ulonglong local_1a0;
   undefined4 local_198;
   undefined8 *local_190;
   undefined4 local_188;
   undefined *local_180;
   undefined4 local_178;
   ulonglong *local_170;
   undefined4 local_168;
   ulonglong local_160;
   undefined4 local_158;
   undefined8 *local_150;
   undefined1 local_148 [240];
   ulonglong local_58;
   
-  local_58 = __security_cookie ^ (ulonglong)auStack_938;
-  local_8b8 = param_5;
-  local_8c0 = param_8;
-  local_880 = param_10;
-  uVar10 = 0;
-  local_878 = param_11;
-  local_888 = param_12;
-  local_870 = 0;
-  uStack_868 = 0;
-  local_860 = 0;
-  lStack_858 = 0;
-  local_850 = 0;
-  uStack_848 = 0;
-  local_8a0 = 0;
-  lStack_898 = 0;
-  local_840 = 0;
-  lStack_838 = 0;
-  local_8c8 = param_3;
-  local_890 = param_4;
+  local_58 = __security_cookie ^ (ulonglong)auStack_958;
+  local_828 = param_5;
+  local_8e0 = param_8;
+  local_818 = param_10;
+  local_810 = param_11;
+  local_820 = param_12;
+  local_8f0 = 0;
+  local_8d8 = param_9;
+  local_808 = 0;
+  uStack_800 = 0;
+  local_7f8 = 0;
+  lStack_7f0 = 0;
+  local_7e8 = 0;
+  uStack_7e0 = 0;
+  local_8c0 = 0;
+  lStack_8b8 = 0;
+  local_7d8 = 0;
+  lStack_7d0 = 0;
   memset(local_238,0,0xf0);
   memset(local_148,0,0xf0);
-  local_8b0 = 0;
-  puStack_8a8 = (undefined1 *)0x0;
-  local_657 = 0;
-  sVar16 = (*param_9 != 2) + 0x42;
-  local_655 = 0;
-  local_518[0] = (ulonglong)(uint)local_518[0];
-  iVar7 = KfdIsLayerEmpty(sVar16);
-  if (iVar7 != 0) {
+  local_677 = 0;
+  local_675 = 0;
+  local_538 = (ulonglong)(uint)local_538;
+  uVar9 = (*param_9 != 2) + 0x42;
+  local_8e8 = (uint)uVar9;
+  local_8d0 = 0;
+  puStack_8c8 = (undefined1 *)0x0;
+  iVar10 = KfdIsLayerEmpty(uVar9);
+  if (iVar10 != 0) {
     return 0;
   }
-  memset(local_4e8,0,0x2a8);
+  memset(&local_4e8,0,0x2a8);
   local_270 = &local_278;
   local_278 = &local_278;
-  memset(&local_658,0,0x140);
-  memset(local_7a8,0,0x148);
-  local_8d0 = local_7a8;
-  memset(&local_828,0,0x78);
-  sVar1 = *(short *)(param_1 + 0x3c);
-  local_518[4] = 0;
-  sVar17 = 0x1c;
-  if (sVar1 != 0x17) {
-    sVar17 = 0x10;
-  }
-  local_518[0] = 0;
-  local_518[1] = 0;
-  local_518[2] = 0;
-  local_518[3] = 0;
-  memmove(local_7a8,local_8c0,sVar17);
-  sVar17 = 0x1c;
-  if (sVar1 != 0x17) {
-    sVar17 = 0x10;
-  }
-  memmove(local_728,param_9,sVar17);
-  sVar17 = 0x1c;
-  if (sVar1 != 0x17) {
-    sVar17 = 0x10;
-  }
-  memmove(local_628,local_8c0,sVar17);
-  sVar17 = 0x1c;
-  if (sVar1 != 0x17) {
-    sVar17 = 0x10;
-  }
-  memmove(local_5a8,param_9,sVar17);
-  if (((*(uint *)(param_1 + 0x30) >> 9 & 1) != 0) ||
-     (uVar10 = InitializeEndpointContextFromParentContext(param_1), uVar8 = 0, uVar10 == 0)) {
-    local_648 = local_8c8;
-    local_640 = local_890;
-    local_638 = local_8b8;
-    if (param_2 == 0) {
-      if (*(longlong *)(param_1 + 0x1c0) == 0) {
-        LOCK();
-        UNLOCK();
-        local_7b8 = gAleConnectRedirectConnectionCorrelationId + 1;
-        gAleConnectRedirectConnectionCorrelationId = gAleConnectRedirectConnectionCorrelationId + 1;
+  memset(&local_678,0,0x140);
+  memset(&local_7c8,0,0x148);
+  sVar3 = *(short *)(param_1 + 0x3c);
+  local_838 = 0;
+  local_518 = 0;
+  sVar22 = 0x1c;
+  if (sVar3 != 0x17) {
+    sVar22 = 0x10;
+  }
+  local_8a8 = (code *)0x0;
+  pcStack_8a0 = (code *)0x0;
+  local_898 = (code *)0x0;
+  pcStack_890 = (code *)0x0;
+  local_888 = (code *)0x0;
+  pcStack_880 = (code *)0x0;
+  local_878 = (code *)0x0;
+  pcStack_870 = (code *)0x0;
+  local_868 = (code *)0x0;
+  uStack_860 = 0;
+  local_858 = 0;
+  puStack_850 = (undefined1 *)0x0;
+  local_848 = 0;
+  ppcStack_840 = (code **)0x0;
+  local_538 = 0;
+  uStack_530 = 0;
+  local_528 = 0;
+  uStack_520 = 0;
+  memmove(&local_7c8,local_8e0,sVar22);
+  sVar22 = 0x1c;
+  if (sVar3 != 0x17) {
+    sVar22 = 0x10;
+  }
+  memmove(local_748,local_8d8,sVar22);
+  sVar22 = 0x1c;
+  if (sVar3 != 0x17) {
+    sVar22 = 0x10;
+  }
+  memmove(local_648,local_8e0,sVar22);
+  sVar22 = 0x1c;
+  if (sVar3 != 0x17) {
+    sVar22 = 0x10;
+  }
+  memmove(local_5c8,local_8d8,sVar22);
+  if (((*(uint *)(param_1 + 0x30) >> 9 & 1) == 0) &&
+     (local_8f0 = InitializeEndpointContextFromParentContext(param_1), uVar14 = local_8f0,
+     uVar11 = 0, local_8f0 != 0)) goto LAB_0;
+  local_658 = local_828;
+  if (param_2 == 0) {
+    if (*(longlong *)(param_1 + 0x1c0) == 0) {
+      LOCK();
+      UNLOCK();
+      local_838 = gAleConnectRedirectConnectionCorrelationId + 1;
+      gAleConnectRedirectConnectionCorrelationId = gAleConnectRedirectConnectionCorrelationId + 1;
+    }
+    else {
+      local_838 = *(longlong *)(*(longlong *)(param_1 + 0x1c0) + 0x220);
+    }
+  }
+  else {
+    local_838 = *(longlong *)(param_2 + 0x220);
+  }
+  uVar19 = 0;
+  if ((*(uint *)(param_1 + 0x30) & 0x10) != 0) {
+    uVar19 = 0x10;
+  }
+  if (((*(uint *)(param_1 + 0x34) >> 0x10 & 1) != 0) || (param_2 != 0)) {
+    uVar19 = uVar19 | 0x200000;
+  }
+  lVar24 = *(longlong *)(param_1 + 0x1e8);
+  uStack_800 = *(undefined8 *)(*(longlong *)(param_1 + 0x1e0) + 0x10);
+  lStack_7f0 = lVar24 + 0xe0;
+  local_808 = CONCAT44(local_808._4_4_,(uint)*(ushort *)(*(longlong *)(param_1 + 0x1e0) + 10));
+  local_7f8 = CONCAT44(local_7f8._4_4_,*(undefined4 *)(lVar24 + 0x48));
+  puVar23 = &gAleNullSid;
+  if (*(undefined **)(lVar24 + 0x118) != (undefined *)0x0) {
+    puVar23 = *(undefined **)(lVar24 + 0x118);
+  }
+  local_7d8 = CONCAT44(local_7d8._4_4_,*(undefined4 *)(lVar24 + 0x48));
+  lStack_7d0 = lStack_7f0;
+  local_670 = param_1;
+  local_668 = param_3;
+  local_660 = param_4;
+  if ((*(longlong *)(lVar24 + 0x90) != 0) &&
+     (local_8f0 = WfpAleMarshalFqbnValue
+                            (*(undefined8 *)(*(longlong *)(*(longlong *)(lVar24 + 0x90) + 8) + 0x20)
+                             ,&local_8c0), uVar14 = local_8f0, uVar11 = 0, local_8f0 != 0))
+  goto LAB_0;
+  local_230 = &local_808;
+  local_220 = &local_7f8;
+  local_238[0] = 0x25;
+  local_210 = local_8e0 + 4;
+  local_228 = 0x26;
+  local_218 = 0;
+  if (*local_8e0 != 0x17) {
+    local_210 = local_8e0 + 2;
+  }
+  local_208 = 7;
+  local_200 = 1;
+  if ((param_6 == 1) || (param_6 == 0x3a)) {
+    local_1f0 = (ulonglong)*(byte *)(param_7 + 1);
+    local_1f8 = 5;
+  }
+  else {
+    local_1f0 = (ulonglong)(ushort)local_8e0[1];
+    local_1f8 = 3;
+  }
+  lVar24 = 2;
+  local_1e0 = (ulonglong)(param_6 & 0xff);
+  local_1d0 = local_8d8 + 4;
+  local_1e8 = 2;
+  local_1d8 = 1;
+  if (*local_8d8 != 0x17) {
+    local_1d0 = local_8d8 + 2;
+  }
+  local_1c8 = 8;
+  local_1c0 = 1;
+  if ((param_6 == 1) || (param_6 == 0x3a)) {
+    local_1b0 = (ulonglong)*(byte *)((longlong)param_7 + 5);
+    local_1b8 = 6;
+  }
+  else {
+    local_1b0 = (ulonglong)(ushort)local_8d8[1];
+    local_1b8 = 4;
+  }
+  local_1a8 = 0x23;
+  local_198 = 0x25;
+  lVar18 = param_2;
+  if (param_2 == 0) {
+    lVar18 = *(longlong *)(param_1 + 0x1c0);
+    if (*(longlong *)(param_1 + 0x1c0) != 0) {
+      do {
+        lVar15 = lVar18;
+        lVar18 = *(longlong *)(lVar15 + 0x30);
+      } while (*(longlong *)(lVar15 + 0x30) != 0);
+      goto LAB_1;
+    }
+LAB_2:
+    local_190 = (undefined8 *)0x0;
+  }
+  else {
+    do {
+      lVar15 = lVar18;
+      lVar18 = *(longlong *)(lVar15 + 0x30);
+    } while (*(longlong *)(lVar15 + 0x30) != 0);
+LAB_1:
+    lVar18 = *(longlong *)(lVar15 + 0x38);
+    if (lVar18 == 0) goto LAB_2;
+    uStack_7e0 = *(undefined8 *)(lVar18 + 8);
+    local_7e8 = CONCAT44(local_7e8._4_4_,(uint)*(ushort *)(lVar18 + 2));
+    local_190 = &local_7e8;
+  }
+  local_170 = &local_8c0;
+  local_188 = 0x2c;
+  local_160 = (ulonglong)*(uint *)(param_1 + 0x264);
+  local_150 = &local_7d8;
+  local_178 = 0x2d;
+  local_168 = 0x2f;
+  local_158 = 0x30;
+  local_1a0 = (ulonglong)uVar19;
+  local_180 = puVar23;
+  WfpMarshalIncomingValues(*local_8d8,local_238,0xf,local_148);
+  uVar19 = local_8e8;
+  puStack_8c8 = local_148;
+  local_8d0 = CONCAT62(local_8d0._2_6_,(short)local_8e8);
+  local_8d0 = CONCAT44(0xf,(undefined4)local_8d0);
+  local_4a8 = *(undefined8 *)(*(longlong *)(param_1 + 0x1e0) + 0x20);
+  local_4b0 = *(undefined8 *)(*(longlong *)(param_1 + 0x1e8) + 0x40);
+  if (*(int *)(param_1 + 0x2a8) == 1) {
+    local_4e4 = local_4e4 | 0x80000;
+  }
+  local_4e8 = local_4e8 | 0x8030;
+  local_478 = WfpAleQueryOrInsertEndpointHandle(param_1);
+  if (*(longlong *)(param_1 + 0x220) != 0) {
+    local_4e8 = local_4e8 | 0x4000000;
+    local_428 = WfpAleQueryOrInsertEndpointHandle();
+  }
+  if ((param_7 != (undefined4 *)0x0) &&
+     ((bVar2 = *(byte *)(param_7 + 1), bVar2 == 8 ||
+      (((bVar2 < 0x13 && ((0x66001U >> (bVar2 & 0x1f) & 1) != 0)) || ((byte)(bVar2 + 0x80) < 2))))))
+  {
+    local_420 = *param_7;
+    local_4e8 = local_4e8 | 0x8000000;
+  }
+  if ((*(int *)(param_1 + 0x28) == 6) && ((*(uint *)(param_1 + 0x30) & 0x10) == 0)) {
+    local_2f0 = *(undefined8 *)(param_1 + 0x160);
+  }
+  lVar18 = param_2;
+  if ((param_2 != 0) ||
+     (lVar18 = *(longlong *)(param_1 + 0x1c0), *(longlong *)(param_1 + 0x1c0) != 0)) {
+    local_410 = lVar18;
+    local_4e8 = local_4e8 | 0x40000000;
+  }
+  local_8a8 = AlepDuplicateConnectRequestInspectContext;
+  bVar8 = false;
+  uStack_860 = CONCAT71(uStack_860._1_7_,1);
+  pcStack_8a0 = AlepReleaseConnectRequestInspectContext;
+  local_898 = AlepDuplicateConnectRedirectLayerData;
+  pcStack_890 = AlepReleseConnectRedirectLayerData;
+  local_878 = AlepAllocateCloneConnectRedirectLayerData;
+  pcStack_870 = AlepFreeCloneConnectRedirectLayerData;
+  local_888 = AleInspectConnectRequestComplete;
+  local_868 = AleInspectSetLayerDataModifierFlags;
+  puStack_850 = &local_678;
+  pcStack_880 = AlePostProcessClassify;
+  ppcVar21 = &local_7c8;
+  local_2b8 = param_1;
+  do {
+    local_930 = &local_538;
+    local_938 = &local_8a8;
+    uVar11 = KfdClassify(uVar19 & 0xffff,&local_8d0,&local_4e8,ppcVar21);
+    ppcVar1 = ppcStack_840;
+    if ((int)uVar11 < 0) goto LAB_3;
+    if ((char)local_848 != '\0') goto LAB_4;
+    if (ppcStack_840 == (code **)0x0) break;
+    AlepValidateConnectRedirectLayerData(ppcStack_840);
+    lVar18 = 2;
+    ppcVar21 = &local_7c8;
+    do {
+      ppcVar16 = ppcStack_840;
+      ppcVar12 = ppcVar21;
+      pcVar7 = ppcVar16[1];
+      *ppcVar12 = *ppcVar16;
+      ppcVar12[1] = pcVar7;
+      pcVar7 = ppcVar16[3];
+      ppcVar12[2] = ppcVar16[2];
+      ppcVar12[3] = pcVar7;
+      pcVar7 = ppcVar16[5];
+      ppcVar12[4] = ppcVar16[4];
+      ppcVar12[5] = pcVar7;
+      pcVar7 = ppcVar16[7];
+      ppcVar12[6] = ppcVar16[6];
+      ppcVar12[7] = pcVar7;
+      pcVar7 = ppcVar16[9];
+      ppcVar12[8] = ppcVar16[8];
+      ppcVar12[9] = pcVar7;
+      pcVar7 = ppcVar16[0xb];
+      ppcVar12[10] = ppcVar16[10];
+      ppcVar12[0xb] = pcVar7;
+      pcVar7 = ppcVar16[0xd];
+      ppcVar12[0xc] = ppcVar16[0xc];
+      ppcVar12[0xd] = pcVar7;
+      pcVar7 = ppcVar16[0xf];
+      ppcVar12[0xe] = ppcVar16[0xe];
+      ppcVar12[0xf] = pcVar7;
+      lVar18 = lVar18 + -1;
+      ppcVar21 = ppcVar12 + 0x10;
+      ppcStack_840 = ppcVar16 + 0x10;
+    } while (lVar18 != 0);
+    pcVar7 = ppcVar16[0x11];
+    bVar8 = true;
+    ppcVar12[0x10] = ppcVar16[0x10];
+    ppcVar12[0x11] = pcVar7;
+    pcVar7 = ppcVar16[0x13];
+    ppcVar12[0x12] = ppcVar16[0x12];
+    ppcVar12[0x13] = pcVar7;
+    uVar4 = *(undefined4 *)((longlong)ppcVar16 + 0xa4);
+    uVar5 = *(undefined4 *)(ppcVar16 + 0x15);
+    uVar6 = *(undefined4 *)((longlong)ppcVar16 + 0xac);
+    *(undefined4 *)(ppcVar12 + 0x14) = *(undefined4 *)(ppcVar16 + 0x14);
+    *(undefined4 *)((longlong)ppcVar12 + 0xa4) = uVar4;
+    *(undefined4 *)(ppcVar12 + 0x15) = uVar5;
+    *(undefined4 *)((longlong)ppcVar12 + 0xac) = uVar6;
+    ppcVar12[0x16] = ppcVar16[0x16];
+    ppcStack_840 = (code **)0x0;
+    uStack_860._0_2_ = CONCAT11(1,(undefined1)uStack_860);
+    *(uint *)(puStack_8c8 + 0x98) = *(uint *)(puStack_8c8 + 0x98) | 4;
+    ppcVar21 = ppcVar1;
+    uVar19 = local_8e8;
+  } while (ppcVar1 != (code **)0x0);
+  if (gAleLocalAddrRedirectEnabled == '\0') {
+LAB_3:
+    if (bVar8) goto joined_r0x00014003074d;
+  }
+  else {
+    uStack_860._0_3_ = CONCAT12(1,(undefined2)uStack_860);
+    local_4f0 = 0;
+    ppcStack_840 = (code **)0x0;
+    local_930 = &local_510;
+    local_938 = &local_8a8;
+    local_510 = 0;
+    uStack_508 = 0;
+    local_500 = 0;
+    uStack_4f8 = 0;
+    uVar11 = KfdClassify(local_8d0 & 0xffff,&local_8d0,&local_4e8,ppcVar21);
+    ppcVar1 = ppcStack_840;
+    if ((int)uVar11 < 0) goto LAB_3;
+    if (((char)local_848 == '\0') && (ppcStack_840 != (code **)0x0)) {
+      ppcVar12 = ppcStack_840;
+      ppcVar16 = &local_7c8;
+      do {
+        ppcVar17 = ppcVar16;
+        ppcVar13 = ppcVar12;
+        pcVar7 = ppcVar13[1];
+        *ppcVar17 = *ppcVar13;
+        ppcVar17[1] = pcVar7;
+        pcVar7 = ppcVar13[3];
+        ppcVar17[2] = ppcVar13[2];
+        ppcVar17[3] = pcVar7;
+        pcVar7 = ppcVar13[5];
+        ppcVar17[4] = ppcVar13[4];
+        ppcVar17[5] = pcVar7;
+        pcVar7 = ppcVar13[7];
+        ppcVar17[6] = ppcVar13[6];
+        ppcVar17[7] = pcVar7;
+        pcVar7 = ppcVar13[9];
+        ppcVar17[8] = ppcVar13[8];
+        ppcVar17[9] = pcVar7;
+        pcVar7 = ppcVar13[0xb];
+        ppcVar17[10] = ppcVar13[10];
+        ppcVar17[0xb] = pcVar7;
+        pcVar7 = ppcVar13[0xd];
+        ppcVar17[0xc] = ppcVar13[0xc];
+        ppcVar17[0xd] = pcVar7;
+        pcVar7 = ppcVar13[0xf];
+        ppcVar17[0xe] = ppcVar13[0xe];
+        ppcVar17[0xf] = pcVar7;
+        lVar24 = lVar24 + -1;
+        ppcVar12 = ppcVar13 + 0x10;
+        ppcVar16 = ppcVar17 + 0x10;
+      } while (lVar24 != 0);
+      pcVar7 = ppcVar13[0x11];
+      ppcVar17[0x10] = ppcVar13[0x10];
+      ppcVar17[0x11] = pcVar7;
+      pcVar7 = ppcVar13[0x13];
+      ppcVar17[0x12] = ppcVar13[0x12];
+      ppcVar17[0x13] = pcVar7;
+      uVar4 = *(undefined4 *)((longlong)ppcVar13 + 0xa4);
+      uVar5 = *(undefined4 *)(ppcVar13 + 0x15);
+      uVar6 = *(undefined4 *)((longlong)ppcVar13 + 0xac);
+      *(undefined4 *)(ppcVar17 + 0x14) = *(undefined4 *)(ppcVar13 + 0x14);
+      *(undefined4 *)((longlong)ppcVar17 + 0xa4) = uVar4;
+      *(undefined4 *)(ppcVar17 + 0x15) = uVar5;
+      *(undefined4 *)((longlong)ppcVar17 + 0xac) = uVar6;
+      ppcVar17[0x16] = ppcVar13[0x16];
+      local_68c = *(undefined4 *)((longlong)ppcStack_840 + 0x13c);
+    }
+    else if ((int)uVar11 < 0) goto LAB_3;
+    if ((char)local_848 != '\0') {
+LAB_4:
+      uVar14 = local_8f0;
+      uVar11 = 0x103;
+      goto LAB_0;
+    }
+    if (ppcStack_840 == (code **)0x0) goto LAB_3;
+    bVar8 = true;
+    ppcStack_840 = (code **)0x0;
+    ppcVar21 = ppcVar1;
+joined_r0x00014003074d:
+    while (ppcVar21 != (code **)0x0) {
+      ppcVar12 = (code **)ppcVar21[0x22];
+      LOCK();
+      ppcVar1 = ppcVar21 + 0x28;
+      iVar10 = *(int *)ppcVar1;
+      *(int *)ppcVar1 = *(int *)ppcVar1 + -1;
+      UNLOCK();
+      if (iVar10 != 1) break;
+      AlepValidateConnectRedirectLayerData(ppcVar21);
+      *(undefined4 *)((longlong)ppcVar21 + 0x144) = 0xffffffff;
+      ExFreePoolWithTag(ppcVar21,0);
+      ppcVar21 = ppcVar12;
+    }
+  }
+  _Dst_00 = local_8d8;
+  _Dst = local_8e0;
+  uVar14 = local_8f0;
+  if ((-1 < (int)uVar11) && (bVar8)) {
+    local_8f8[0] = '\0';
+    if (uStack_860._2_1_ == '\x01') {
+      ppcVar21 = &local_7c8;
+      while ((local_6b8 != (code *)0x0 && ((*(uint *)((longlong)ppcVar21 + 0x13c) & 0x10000) == 0)))
+      {
+        ppcVar21 = (code **)ppcVar21[0x22];
+        local_6b8 = ppcVar21[0x22];
       }
-      else {
-        local_7b8 = *(longlong *)(*(longlong *)(param_1 + 0x1c0) + 0x220);
+      local_7c8 = *ppcVar21;
+      pcStack_7c0 = ppcVar21[1];
+      local_7b8 = ppcVar21[2];
+      pcStack_7b0 = ppcVar21[3];
+      local_7a8 = ppcVar21[4];
+      pcStack_7a0 = ppcVar21[5];
+      local_798 = ppcVar21[6];
+      pcStack_790 = ppcVar21[7];
+      local_788 = ppcVar21[8];
+      pcStack_780 = ppcVar21[9];
+      local_778 = ppcVar21[10];
+      pcStack_770 = ppcVar21[0xb];
+      local_768 = *(undefined4 *)(ppcVar21 + 0xc);
+      uStack_764 = *(undefined4 *)((longlong)ppcVar21 + 100);
+      uStack_760 = *(undefined4 *)(ppcVar21 + 0xd);
+      uStack_75c = *(undefined4 *)((longlong)ppcVar21 + 0x6c);
+      local_758 = ppcVar21[0xe];
+      pcStack_750 = ppcVar21[0xf];
+    }
+    local_900 = local_820;
+    local_908 = local_8f8;
+    local_910 = local_838;
+    local_918 = local_698;
+    local_920 = local_6a0;
+    local_928 = local_6a8;
+    local_930 = (ulonglong *)CONCAT44(local_930._4_4_,local_6c0);
+    local_938 = &local_7c8;
+    uVar11 = AlepCreateRedirectRecord(param_1,local_8d8,local_748,local_8e0);
+    if (uVar11 == 0) {
+      LOCK();
+      *(uint *)(param_1 + 0x34) = *(uint *)(param_1 + 0x34) | 0x2000;
+      UNLOCK();
+      if (local_8f8[0] != '\0') {
+        sVar22 = 0x1c;
+        if (*_Dst_00 != 0x17) {
+          sVar22 = 0x10;
+        }
+        memmove(_Dst,&local_7c8,sVar22);
       }
+      sVar22 = 0x1c;
+      if (*_Dst_00 != 0x17) {
+        sVar22 = 0x10;
+      }
+      memmove(_Dst_00,local_748,sVar22);
+      *local_818 = local_6c8;
+      *local_810 = 1;
+      uVar14 = local_8f0;
     }
     else {
-      local_7b8 = *(longlong *)(param_2 + 0x220);
-    }
-    uVar8 = 0;
-    if ((*(uint *)(param_1 + 0x30) & 0x10) != 0) {
-      uVar8 = 0x10;
-    }
-    if (((*(uint *)(param_1 + 0x34) >> 0x10 & 1) != 0) || (param_2 != 0)) {
-      uVar8 = uVar8 | 0x200000;
-    }
-    local_8c8 = CONCAT44(local_8c8._4_4_,uVar8);
-    lVar11 = *(longlong *)(param_1 + 0x1e8);
-    uStack_868 = *(undefined8 *)(*(longlong *)(param_1 + 0x1e0) + 0x10);
-    lStack_858 = lVar11 + 0xe0;
-    local_870 = CONCAT44(local_870._4_4_,(uint)*(ushort *)(*(longlong *)(param_1 + 0x1e0) + 10));
-    local_860 = CONCAT44(local_860._4_4_,*(undefined4 *)(lVar11 + 0x48));
-    local_8b8 = &gAleNullSid;
-    if (*(undefined **)(lVar11 + 0x118) != (undefined *)0x0) {
-      local_8b8 = *(undefined **)(lVar11 + 0x118);
-    }
-    local_840 = CONCAT44(local_840._4_4_,*(undefined4 *)(lVar11 + 0x48));
-    lStack_838 = lStack_858;
-    local_650 = param_1;
-    if (*(longlong *)(lVar11 + 0x90) != 0) {
-      uVar10 = WfpAleMarshalFqbnValue
-                         (*(undefined8 *)(*(longlong *)(*(longlong *)(lVar11 + 0x90) + 8) + 0x20),
-                          &local_8a0);
-      uVar8 = 0;
-      if (uVar10 != 0) goto LAB_0;
-      uVar8 = (uint)local_8c8;
-    }
-    _Dst = local_8c0;
-    local_1a0 = (ulonglong)uVar8;
-    local_230 = &local_870;
-    local_220 = &local_860;
-    local_238[0] = 0x25;
-    local_210 = local_8c0 + 4;
-    local_228 = 0x26;
-    local_218 = 0;
-    if (*local_8c0 != 0x17) {
-      local_210 = local_8c0 + 2;
-    }
-    local_208 = 7;
-    local_200 = 1;
-    if ((param_6 == 1) || (param_6 == 0x3a)) {
-      local_1f0 = (ulonglong)*(byte *)(param_7 + 4);
-      local_1f8 = 5;
-    }
-    else {
-      local_1f0 = (ulonglong)(ushort)local_8c0[1];
-      local_1f8 = 3;
-    }
-    uVar15 = (ulonglong)*param_9;
-    local_1e0 = (ulonglong)(param_6 & 0xff);
-    local_1d0 = param_9 + 4;
-    local_1e8 = 2;
-    local_1d8 = 1;
-    if (*param_9 != 0x17) {
-      local_1d0 = param_9 + 2;
-    }
-    local_1c8 = 8;
-    local_1c0 = 1;
-    if ((param_6 == 1) || (param_6 == 0x3a)) {
-      local_1b0 = (ulonglong)*(byte *)(param_7 + 5);
-      local_1b8 = 6;
-    }
-    else {
-      local_1b0 = (ulonglong)param_9[1];
-      local_1b8 = 4;
-    }
-    local_1a8 = 0x23;
-    local_198 = 0x25;
-    lVar11 = param_2;
-    puVar18 = local_8b8;
-    if (((param_2 == 0) &&
-        (lVar11 = *(longlong *)(param_1 + 0x1c0), *(longlong *)(param_1 + 0x1c0) == 0)) ||
-       (lVar11 = AleGetOriginalAppId(lVar11), lVar11 == 0)) {
-      local_190 = (undefined8 *)0x0;
-    }
-    else {
-      uStack_848 = *(undefined8 *)(lVar11 + 8);
-      local_850 = CONCAT44(local_850._4_4_,(uint)*(ushort *)(lVar11 + 2));
-      local_190 = &local_850;
-    }
-    local_170 = &local_8a0;
-    local_160 = (ulonglong)*(uint *)(param_1 + 0x264);
-    local_150 = &local_840;
-    local_188 = 0x2c;
-    local_178 = 0x2d;
-    local_168 = 0x2f;
-    local_158 = 0x30;
-    local_180 = puVar18;
-    WfpMarshalIncomingValues(uVar15 & 0xffff,local_238,0xf,local_148);
-    puStack_8a8 = local_148;
-    local_8b0 = CONCAT62(local_8b0._2_6_,sVar16);
-    local_8b0 = CONCAT44(0xf,(undefined4)local_8b0);
-    AlepSetConnectRedirectLayerMetadata(param_1,param_2,param_7,local_4e8);
-    local_7e0 = 1;
-    local_828 = AlepDuplicateConnectRequestInspectContext;
-    bVar6 = false;
-    local_820 = AlepReleaseConnectRequestInspectContext;
-    local_818 = AlepDuplicateConnectRedirectLayerData;
-    local_810 = AlepReleseConnectRedirectLayerData;
-    local_7f8 = AlepAllocateCloneConnectRedirectLayerData;
-    local_7f0 = AlepFreeCloneConnectRedirectLayerData;
-    local_808 = AleInspectConnectRequestComplete;
-    local_7e8 = AleInspectSetLayerDataModifierFlags;
-    local_7d0 = &local_658;
-    local_800 = AlePostProcessClassify;
-    ppcVar12 = local_7a8;
-    do {
-      local_910 = local_518;
-      local_918 = &local_828;
-      uVar8 = KfdClassify(sVar16,&local_8b0,local_4e8,ppcVar12);
-      ppcVar12 = local_8d0;
-      if ((int)uVar8 < 0) goto LAB_1;
-      if (local_7c8 != '\0') goto LAB_2;
-      if (local_7c0 == (code **)0x0) break;
-      local_8d0 = local_7c0;
-      AlepValidateConnectRedirectLayerData();
-      lVar11 = 2;
-      ppcVar12 = local_7a8;
-      do {
-        ppcVar14 = ppcVar12;
-        ppcVar13 = local_7c0;
-        pcVar5 = ppcVar13[1];
-        *ppcVar14 = *ppcVar13;
-        ppcVar14[1] = pcVar5;
-        pcVar5 = ppcVar13[3];
-        ppcVar14[2] = ppcVar13[2];
-        ppcVar14[3] = pcVar5;
-        pcVar5 = ppcVar13[5];
-        ppcVar14[4] = ppcVar13[4];
-        ppcVar14[5] = pcVar5;
-        pcVar5 = ppcVar13[7];
-        ppcVar14[6] = ppcVar13[6];
-        ppcVar14[7] = pcVar5;
-        pcVar5 = ppcVar13[9];
-        ppcVar14[8] = ppcVar13[8];
-        ppcVar14[9] = pcVar5;
-        pcVar5 = ppcVar13[0xb];
-        ppcVar14[10] = ppcVar13[10];
-        ppcVar14[0xb] = pcVar5;
-        pcVar5 = ppcVar13[0xd];
-        ppcVar14[0xc] = ppcVar13[0xc];
-        ppcVar14[0xd] = pcVar5;
-        pcVar5 = ppcVar13[0xf];
-        ppcVar14[0xe] = ppcVar13[0xe];
-        ppcVar14[0xf] = pcVar5;
-        lVar11 = lVar11 + -1;
-        local_7c0 = ppcVar13 + 0x10;
-        ppcVar12 = ppcVar14 + 0x10;
-      } while (lVar11 != 0);
-      pcVar5 = ppcVar13[0x11];
-      bVar6 = true;
-      ppcVar14[0x10] = ppcVar13[0x10];
-      ppcVar14[0x11] = pcVar5;
-      pcVar5 = ppcVar13[0x13];
-      ppcVar14[0x12] = ppcVar13[0x12];
-      ppcVar14[0x13] = pcVar5;
-      uVar2 = *(undefined4 *)((longlong)ppcVar13 + 0xa4);
-      uVar3 = *(undefined4 *)(ppcVar13 + 0x15);
-      uVar4 = *(undefined4 *)((longlong)ppcVar13 + 0xac);
-      *(undefined4 *)(ppcVar14 + 0x14) = *(undefined4 *)(ppcVar13 + 0x14);
-      *(undefined4 *)((longlong)ppcVar14 + 0xa4) = uVar2;
-      *(undefined4 *)(ppcVar14 + 0x15) = uVar3;
-      *(undefined4 *)((longlong)ppcVar14 + 0xac) = uVar4;
-      ppcVar14[0x16] = ppcVar13[0x16];
-      local_7df = 1;
-      *(uint *)(puStack_8a8 + 0x98) = *(uint *)(puStack_8a8 + 0x98) | 4;
-      local_7c0 = (code **)0x0;
-      ppcVar12 = local_8d0;
-    } while (local_8d0 != (code **)0x0);
-    ppcVar12 = local_8d0;
-    if (gAleLocalAddrRedirectEnabled != '\0') {
-      local_918 = local_7a8;
-      uVar8 = AleInspectConnectRequestProcessLocalAddressRedirection
-                        (&local_828,&local_8b0,local_4e8,local_8d0);
-      ppcVar13 = local_7c0;
-      ppcVar12 = local_8d0;
-      if (-1 < (int)uVar8) {
-        if (local_7c8 != '\0') {
-LAB_2:
-          uVar8 = 0x103;
-          goto LAB_0;
-        }
-        if (local_7c0 != (code **)0x0) {
-          bVar6 = true;
-          if ((Feature_Netsec_BugFix_WFPMemLeak__private_featureState & 0x10) == 0) {
-            uVar9 = Feature_Netsec_BugFix_WFPMemLeak__private_IsEnabledDeviceUsageNoInline();
-          }
-          else {
-            uVar9 = Feature_Netsec_BugFix_WFPMemLeak__private_featureState & 1;
-          }
-          ppcVar12 = ppcVar13;
-          if (uVar9 != 0) {
-            local_7c0 = (code **)0x0;
-          }
-        }
-      }
-    }
-LAB_1:
-    if ((Feature_Netsec_BugFix_WFPMemLeak__private_featureState & 0x10) == 0) {
-      uVar9 = Feature_Netsec_BugFix_WFPMemLeak__private_IsEnabledDeviceUsageNoInline();
-    }
-    else {
-      uVar9 = Feature_Netsec_BugFix_WFPMemLeak__private_featureState & 1;
-    }
-    if (uVar9 == 0) {
-      if ((int)uVar8 < 0) {
-        if (bVar6) {
-          AlepCleanupModifiedConnectRedirectLayerData(ppcVar12);
-        }
-        goto LAB_0;
-      }
-    }
-    else {
-      if (bVar6) {
-        AlepCleanupModifiedConnectRedirectLayerData(ppcVar12);
-      }
-      if ((int)uVar8 < 0) goto LAB_0;
-    }
-    if (bVar6) {
-      local_8d8[0] = '\0';
-      if (local_7de == '\x01') {
-        AleInspectAdjustModifiedLayerDataLocalAddress(local_7a8,local_7a8);
-      }
-      local_8e0 = local_888;
-      local_8e8 = local_8d8;
-      local_8f0 = local_7b8;
-      local_8f8 = local_678;
-      local_900 = local_680;
-      local_908 = local_688;
-      local_910 = (ulonglong *)CONCAT44(local_910._4_4_,local_6a0);
-      local_918 = local_7a8;
-      uVar8 = AlepCreateRedirectRecord(param_1,param_9,local_728,_Dst);
-      if (uVar8 == 0) {
-        LOCK();
-        *(uint *)(param_1 + 0x34) = *(uint *)(param_1 + 0x34) | 0x2000;
-        UNLOCK();
-        if (local_8d8[0] != '\0') {
-          sVar17 = 0x1c;
-          if (*param_9 != 0x17) {
-            sVar17 = 0x10;
-          }
-          memmove(_Dst,local_7a8,sVar17);
-        }
-        sVar17 = 0x1c;
-        if (*param_9 != 0x17) {
-          sVar17 = 0x10;
-        }
-        memmove(param_9,local_728,sVar17);
-        *local_880 = local_6a8;
-        *local_878 = 1;
-      }
-      else {
-        uVar10 = WfpReportSysErrorAsNtStatus(extraout_XMM0_Da,"AlepCreateRedirectRecord",uVar8);
-      }
+      uVar14 = WfpReportSysErrorAsNtStatus(extraout_XMM0_Da,"AlepCreateRedirectRecord",uVar11);
     }
   }
 LAB_0:
-  if (lStack_898 != 0) {
-    WfpPoolFree(&lStack_898);
-    lStack_898 = 0;
-    local_8a0 = local_8a0 & 0xffffffff00000000;
-  }
-  uVar15 = (ulonglong)uVar8;
-  if (uVar10 != 0) {
-    uVar15 = uVar10 & 0xffffffff;
-  }
-  AlepCleanupModifiedConnectRedirectLayerData(local_7c0);
-  FeReleaseCalloutContextList(local_7d8);
-  return uVar15;
+  if (lStack_8b8 != 0) {
+    ExFreePoolWithTag(lStack_8b8,0);
+    lStack_8b8 = 0;
+    local_8c0 = local_8c0 & 0xffffffff00000000;
+  }
+  uVar20 = (ulonglong)uVar11;
+  ppcVar21 = ppcStack_840;
+  if (uVar14 != 0) {
+    uVar20 = uVar14 & 0xffffffff;
+  }
+  while (ppcVar21 != (code **)0x0) {
+    ppcVar12 = (code **)ppcVar21[0x22];
+    LOCK();
+    ppcVar1 = ppcVar21 + 0x28;
+    iVar10 = *(int *)ppcVar1;
+    *(int *)ppcVar1 = *(int *)ppcVar1 + -1;
+    UNLOCK();
+    if (iVar10 != 1) break;
+    AlepValidateConnectRedirectLayerData(ppcVar21);
+    *(undefined4 *)((longlong)ppcVar21 + 0x144) = 0xffffffff;
+    ExFreePoolWithTag(ppcVar21,0);
+    ppcVar21 = ppcVar12;
+  }
+  FeReleaseCalloutContextList(local_858);
+  return uVar20;
 }
 

```


## IppFillPathInformation

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,refcount,length,address,called|
|ratio|0.63|
|i_ratio|0.52|
|m_ratio|0.9|
|b_ratio|0.86|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppFillPathInformation|IppFillPathInformation|
|fullname|IppFillPathInformation|IppFillPathInformation|
|`refcount`|4|5|
|`length`|858|728|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppFillPathBandwidthInformation<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>NTOSKRNL.EXE::KfRaiseIrql<br>RtlAcquireScalableReadLockAtDpcLevel<br>memmove|IppFillPathBandwidthInformation<br>NTOSKRNL.EXE::KeAcquireSpinLockRaiseToDpc<br>NTOSKRNL.EXE::KeLowerIrql<br>NTOSKRNL.EXE::KeReleaseSpinLock<br>NTOSKRNL.EXE::KfRaiseIrql<br>RtlAcquireScalableReadLockAtDpcLevel<br>memmove|
|calling|IpNlpQueryPathInformation<br>IppFillPathRodUnderLock<br>IppUpdatePathNotificationAtPassiveLevel|IpNlpQueryPathInformation<br>IppFillPathRodUnderLock<br>IppUpdatePathNotificationAtPassiveLevel|
|paramcount|0|0|
|`address`|140021e20|140017060|
|sig|undefined IppFillPathInformation(void)|undefined IppFillPathInformation(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppFillPathInformation Called Diff


```diff
--- IppFillPathInformation called
+++ IppFillPathInformation called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IppFillPathInformation Diff


```diff
--- IppFillPathInformation
+++ IppFillPathInformation
@@ -1,159 +1,114 @@
 
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void IppFillPathInformation(longlong *param_1,longlong param_2,longlong *param_3,int *param_4)
 
 {
-  ushort uVar1;
+  uint uVar1;
   longlong *plVar2;
   longlong lVar3;
   undefined1 *puVar4;
   int *piVar5;
   void *_Src;
   undefined1 auVar6 [16];
   byte bVar7;
   undefined1 uVar8;
-  uint uVar9;
+  longlong lVar9;
   uint uVar10;
-  undefined4 uVar11;
-  uint uVar12;
-  longlong lVar13;
-  byte bVar14;
-  bool bVar16;
-  uint uVar15;
+  uint uVar11;
+  undefined4 uVar12;
   
-  uVar12 = *(uint *)(param_1 + 0xe);
-  uVar15 = 0;
+  uVar1 = *(uint *)(param_1 + 5);
+  uVar10 = *(uint *)(param_1 + 0xe);
   plVar2 = *(longlong **)(*param_1 + 8);
   lVar3 = *plVar2;
   puVar4 = *(undefined1 **)(lVar3 + 0x28);
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+  uVar11 = (uint)*(ushort *)(puVar4 + 0x28);
+  if (((uVar1 & 0x10) != 0) && (puVar4 == &Ipv6Global)) {
+    uVar11 = *(ushort *)(puVar4 + 0x28) + 8;
   }
-  else {
-    uVar9 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  if (uVar9 != 0) {
-    uVar15 = *(uint *)(param_1 + 5);
-  }
-  bVar14 = (byte)uVar15;
-  uVar1 = *(ushort *)(puVar4 + 0x28);
-  uVar9 = (uint)uVar1;
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar10 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  if (uVar10 == 0) {
-    bVar16 = (*(byte *)(param_1 + 5) & 0x10) == 0;
-  }
-  else {
-    bVar16 = (uVar15 & 0x10) == 0;
-  }
-  if ((!bVar16) && (puVar4 == &Ipv6Global)) {
-    uVar9 = uVar1 + 8;
-  }
+  uVar12 = 0;
   if (param_2 == 0) {
     if (param_4 != (int *)0x0) {
       *param_4 = 0;
     }
   }
   else {
-    if (*(uint *)(param_2 + 0x6c) <= uVar12) {
-      uVar12 = *(uint *)(param_2 + 0x6c);
+    if (*(uint *)(param_2 + 0x6c) <= uVar10) {
+      uVar10 = *(uint *)(param_2 + 0x6c);
     }
     if (param_4 != (int *)0x0) {
       *param_4 = (uint)*(ushort *)(param_2 + 0x42) + (uint)*(ushort *)(param_2 + 0x34);
     }
-    uVar9 = uVar9 + *(ushort *)(param_2 + 0x34) + (uint)*(ushort *)(param_2 + 0x42);
+    uVar11 = uVar11 + *(ushort *)(param_2 + 0x34) + (uint)*(ushort *)(param_2 + 0x42);
   }
-  *(ushort *)(param_3 + 2) = (short)uVar9 + 0xb + *(short *)((longlong)plVar2 + 0x82) & 0xfffc;
+  *(ushort *)(param_3 + 2) = (short)uVar11 + 0xb + *(short *)((longlong)plVar2 + 0x82) & 0xfffc;
   *(undefined2 *)((longlong)param_3 + 0x12) = *(undefined2 *)(*(longlong *)(puVar4 + 0x10) + 10);
-  *(uint *)((longlong)param_3 + 0x1c) = uVar12;
-  *(uint *)((longlong)param_3 + 0x14) = uVar12 - uVar9;
-  *(uint *)(param_3 + 3) = *(ushort *)(puVar4 + 0x4ce4) - uVar9;
+  *(uint *)((longlong)param_3 + 0x1c) = uVar10;
+  *(uint *)((longlong)param_3 + 0x14) = uVar10 - uVar11;
+  *(uint *)(param_3 + 3) = *(ushort *)(puVar4 + 0x4ce4) - uVar11;
   auVar6._8_8_ = 0;
   auVar6._0_8_ = _DAT_0 / 10000;
-  lVar13 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar6,8);
-  if (((uint)((int)((_DAT_0 / 10000 - lVar13 >> 1) + lVar13 >> 8) -
-             (int)param_1[0x13]) < 0x3d) && ((int)param_1[0x13] != 0)) {
+  lVar9 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar6,8);
+  if (((uint)((int)((_DAT_0 / 10000 - lVar9 >> 1) + lVar9 >> 8) - (int)param_1[0x13])
+       < 0x3d) && ((int)param_1[0x13] != 0)) {
     *(int *)(param_3 + 4) = (int)param_1[0x12];
-    uVar11 = *(undefined4 *)((longlong)param_1 + 0x94);
+    uVar12 = *(undefined4 *)((longlong)param_1 + 0x94);
   }
   else {
     *(undefined4 *)(param_3 + 4) = 1000000;
-    uVar11 = 0;
   }
-  *(undefined4 *)((longlong)param_3 + 0x24) = uVar11;
+  *(undefined4 *)((longlong)param_3 + 0x24) = uVar12;
   piVar5 = (int *)param_3[0xe];
   if (piVar5 == (int *)0x0) {
     uVar8 = 0;
   }
   else {
     *(undefined4 *)(param_3 + 0x10) = *(undefined4 *)(*(longlong *)(piVar5 + 2) + 8);
     if (*piVar5 == 0x656e7049) {
       param_3[0xb] = *(longlong *)(*(longlong *)(*(longlong *)(piVar5 + 4) + 0x28) + 0x10);
       uVar8 = 0;
       param_3[0xc] = *(longlong *)(*(longlong *)(*(longlong *)(piVar5 + 4) + 0x28) + 0x18);
       *(undefined4 *)(param_3 + 0xd) = *(undefined4 *)(*(longlong *)(piVar5 + 4) + 0x60);
     }
     else {
       param_3[0xb] = 0;
       param_3[0xc] = 0;
       uVar8 = 1;
       *(undefined4 *)(param_3 + 0xd) = 1;
     }
   }
+  bVar7 = (byte)uVar1;
   *(undefined1 *)(param_3 + 0xf) = uVar8;
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  bVar7 = bVar14;
-  if (uVar12 == 0) {
-    bVar7 = *(byte *)(param_1 + 5);
-  }
   *(byte *)((longlong)param_3 + 0x79) = bVar7 >> 4 & 1;
   if (((*(uint *)((longlong)param_3 + 0xc) & 1) != 0) &&
      ((param_1[0x15] != 0 || (param_1[0x16] != 0)))) {
     uVar8 = KeAcquireSpinLockRaiseToDpc(param_1 + 0x14);
     IppFillPathBandwidthInformation(param_1[0x15],param_3[0xb],param_3 + 5);
     IppFillPathBandwidthInformation(param_1[0x16],param_3[0xc],param_3 + 8);
     KeReleaseSpinLock(param_1 + 0x14,uVar8);
   }
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar12 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  if (uVar12 == 0) {
-    bVar14 = *(byte *)(param_1 + 5);
-  }
-  *(byte *)((longlong)param_3 + 0x6c) = bVar14 >> 5 & 1;
+  *(byte *)((longlong)param_3 + 0x6c) = bVar7 >> 5 & 1;
   if (*param_3 != 0) {
     if (param_1[0x19] != 0) {
       uVar8 = KfRaiseIrql(2);
-      uVar12 = SystemReserved1[0x12]._4_4_;
+      uVar1 = SystemReserved1[0x12]._4_4_;
       RtlAcquireScalableReadLockAtDpcLevel(lVar3 + 0x340,SystemReserved1[0x12]._4_4_);
       _Src = (void *)param_1[0x19];
       if (_Src != (void *)0x0) {
         memmove((void *)*param_3,_Src,(ulonglong)*(byte *)(param_3 + 1));
       }
       LOCK();
-      piVar5 = (int *)(((ulonglong)(*(uint *)(lVar3 + 0x348) & uVar12) + 1) * 0x40 + 0x340 + lVar3);
+      piVar5 = (int *)(((ulonglong)(*(uint *)(lVar3 + 0x348) & uVar1) + 1) * 0x40 + 0x340 + lVar3);
       *piVar5 = *piVar5 + -1;
       UNLOCK();
       KeLowerIrql(uVar8);
       if (_Src != (void *)0x0) {
         return;
       }
     }
     *param_3 = 0;
   }
   return;
 }
 

```


## WfpAleLookupNlSessionState

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.95|
|i_ratio|0.68|
|m_ratio|0.97|
|b_ratio|0.97|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WfpAleLookupNlSessionState|WfpAleLookupNlSessionState|
|fullname|WfpAleLookupNlSessionState|WfpAleLookupNlSessionState|
|refcount|7|7|
|`length`|170|185|
|`called`|FUN_1401180b3<br>FUN_1401180b8|FUN_140115253<br>FUN_140115258|
|calling|WfpAlepAuthorizeSendSecureCompletion<br>WfpReinjectTunnelPacketTL|WfpAlepAuthorizeSendSecureCompletion<br>WfpReinjectTunnelPacketTL|
|paramcount|0|0|
|`address`|140118040|1401151e0|
|sig|undefined WfpAleLookupNlSessionState(void)|undefined WfpAleLookupNlSessionState(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WfpAleLookupNlSessionState Called Diff


```diff
--- WfpAleLookupNlSessionState called
+++ WfpAleLookupNlSessionState called
@@ -1,2 +1,2 @@
-FUN_1401180b3
-FUN_1401180b8
+FUN_140115253
+FUN_140115258
```


### WfpAleLookupNlSessionState Diff


```diff
--- WfpAleLookupNlSessionState
+++ WfpAleLookupNlSessionState
@@ -1,67 +1,67 @@
 
 ulonglong WfpAleLookupNlSessionState(short param_1,longlong param_2,ulonglong *param_3)
 
 {
   ulonglong uVar1;
   ulonglong uVar2;
   ulonglong *puVar3;
   ulonglong uVar4;
   bool bVar5;
   
   uVar2 = 0;
   uVar4 = 0;
   if ((*(int *)(param_2 + 0x28) == 6) && ((*(uint *)(param_2 + 0x30) & 0x10) == 0)) {
     if (*(longlong *)(param_2 + 0x160) == 0) {
       puVar3 = *(ulonglong **)(*(longlong *)(param_2 + 0x220) + 600);
       if (*(short *)(param_2 + 0x3c) == *(short *)(*(longlong *)(param_2 + 0x220) + 0x3c)) {
         if (param_1 == *(short *)(param_2 + 0x3c)) {
-          uVar2 = FUN_1401180b3();
+          uVar2 = FUN_140115253();
           return uVar2;
         }
         uVar1 = WfpReportSysErrorAsNtStatus(param_1,"WfpAleLookupNlSessionState",0xc0220035);
         if (uVar1 != 0) goto LAB_0;
       }
       else {
         bVar5 = param_1 == 2;
 LAB_1:
         if (!bVar5) {
-          uVar2 = FUN_1401180b8();
+          uVar2 = FUN_140115258();
           return uVar2;
         }
 LAB_2:
         uVar2 = puVar3[2];
         uVar1 = uVar4;
       }
     }
     else {
       uVar2 = *(ulonglong *)(*(longlong *)(param_2 + 0x160) + 0x390);
       uVar1 = uVar4;
     }
   }
   else {
     puVar3 = *(ulonglong **)(param_2 + 600);
     uVar2 = 0;
     uVar1 = 0;
     if (puVar3 != (ulonglong *)0x0) {
       if (param_1 != *(short *)(param_2 + 0x3c)) {
         if (param_1 == 0x17) {
           if (*(short *)(param_2 + 0x3c) == 2) {
-            uVar2 = FUN_1401180b8();
+            uVar2 = FUN_140115258();
             return uVar2;
           }
         }
         else if (param_1 == 2) {
           bVar5 = (*(uint *)(param_2 + 0x30) & 8) == 0;
           goto LAB_1;
         }
         goto LAB_2;
       }
       uVar2 = *puVar3;
       uVar1 = uVar4;
     }
   }
   *param_3 = uVar2;
 LAB_0:
   return uVar1 & 0xffffffff;
 }
 

```


## Fl6tMapAddress

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.43|
|i_ratio|0.16|
|m_ratio|0.88|
|b_ratio|0.87|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Fl6tMapAddress|Fl6tMapAddress|
|fullname|Fl6tMapAddress|Fl6tMapAddress|
|refcount|3|3|
|`length`|434|368|
|`called`|Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>Fl6tpMapNonUnicastAddress<br>IN6_IS_ADDR_ISATAP<br>IN6_IS_ADDR_TEREDO<br>memmove|Fl6tpMapNonUnicastAddress<br>IN6_IS_ADDR_ISATAP<br>IN6_IS_ADDR_TEREDO<br>memmove|
|calling|||
|paramcount|0|0|
|`address`|14014b6b0|14014afe0|
|sig|undefined Fl6tMapAddress(void)|undefined Fl6tMapAddress(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Fl6tMapAddress Called Diff


```diff
--- Fl6tMapAddress called
+++ Fl6tMapAddress called
@@ -1 +0,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### Fl6tMapAddress Diff


```diff
--- Fl6tMapAddress
+++ Fl6tMapAddress
@@ -1,103 +1,83 @@
 
 undefined8 Fl6tMapAddress(longlong *param_1)
 
 {
   int iVar1;
-  longlong lVar2;
-  short *psVar3;
+  char cVar2;
+  undefined4 uVar3;
+  undefined8 uVar4;
+  uint uVar5;
   undefined4 *_Dst;
-  longlong lVar4;
-  char cVar5;
-  uint uVar6;
-  undefined4 uVar7;
-  undefined8 uVar8;
+  longlong lVar6;
+  short *psVar7;
   
-  lVar2 = *param_1;
-  psVar3 = (short *)param_1[1];
+  psVar7 = (short *)param_1[1];
   _Dst = (undefined4 *)param_1[2];
-  lVar4 = *(longlong *)(lVar2 + 0x48);
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    uVar6 = Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
-  else {
-    uVar6 = Feature_TCPIP_58629296_Fix__private_featureState & 1;
-  }
-  if (uVar6 == 0) {
-    if ((*(byte *)(lVar2 + 0x40) & 1) != 0) goto LAB_0;
-    uVar6 = *(uint *)(lVar4 + 0xc4);
-  }
-  else {
-    uVar6 = *(uint *)(lVar4 + 0xc4);
-    if ((*(byte *)(lVar2 + 0x40) & 1) != 0) goto LAB_0;
-  }
-  if ((uVar6 & 8) != 0) {
-LAB_0:
+  lVar6 = *(longlong *)(*param_1 + 0x48);
+  if (((*(byte *)(*param_1 + 0x40) & 1) != 0) || ((*(uint *)(lVar6 + 0xc4) & 8) != 0)) {
     param_1[3] = 0;
     return 1;
   }
-  param_1[3] = *(longlong *)(lVar4 + 0x130);
+  param_1[3] = *(longlong *)(lVar6 + 0x130);
   if (*(char *)param_1[1] == -1) {
-    uVar8 = Fl6tpMapNonUnicastAddress(param_1[2],(char *)param_1[1],lVar4);
-    return uVar8;
+    uVar4 = Fl6tpMapNonUnicastAddress(param_1[2],(char *)param_1[1],lVar6);
+    return uVar4;
   }
-  iVar1 = *(int *)(lVar4 + 0x498);
+  iVar1 = *(int *)(lVar6 + 0x498);
   if (iVar1 == 1) {
-LAB_1:
-    *_Dst = *(undefined4 *)(lVar4 + 0x450);
+LAB_0:
+    *_Dst = *(undefined4 *)(lVar6 + 0x450);
     _Dst[1] = 0;
-    uVar8 = *(undefined8 *)(psVar3 + 4);
-    *(undefined8 *)(_Dst + 2) = *(undefined8 *)psVar3;
-    *(undefined8 *)(_Dst + 4) = uVar8;
+    uVar4 = *(undefined8 *)(psVar7 + 4);
+    *(undefined8 *)(_Dst + 2) = *(undefined8 *)psVar7;
+    *(undefined8 *)(_Dst + 4) = uVar4;
   }
   else {
     if (iVar1 == 2) {
-      memmove(_Dst,(void *)(lVar4 + 0x5b8 + (ulonglong)*(byte *)(lVar4 + 0x48a)),
-              (ulonglong)*(byte *)(lVar4 + 0x48a));
+      memmove(_Dst,(void *)(lVar6 + 0x5b8 + (ulonglong)*(byte *)(lVar6 + 0x48a)),
+              (ulonglong)*(byte *)(lVar6 + 0x48a));
       return 0;
     }
     if (iVar1 == 0xb) {
-      if (*psVar3 != 0x220) {
+      if (*psVar7 != 0x220) {
         return 1;
       }
-      *_Dst = *(undefined4 *)(lVar4 + 0x450);
+      *_Dst = *(undefined4 *)(lVar6 + 0x450);
       _Dst[1] = 0;
-      uVar7 = *(undefined4 *)(psVar3 + 1);
+      uVar3 = *(undefined4 *)(psVar7 + 1);
     }
     else {
       if (iVar1 != 0xd) {
         if (iVar1 == 0xe) {
-          uVar6 = ~*(uint *)(psVar3 + 2);
-          cVar5 = IN6_IS_ADDR_TEREDO(psVar3);
-          if (cVar5 == '\0') {
-            return 1;
+          uVar5 = ~*(uint *)(psVar7 + 2);
+          cVar2 = IN6_IS_ADDR_TEREDO(psVar7);
+          if ((cVar2 != '\0') && (uVar5 == *(uint *)(lVar6 + 0x5c2))) {
+            *_Dst = 0;
+            *(undefined2 *)(_Dst + 1) = 0;
+            *(undefined8 *)((longlong)_Dst + 0xe) = 0;
+            *(undefined2 *)((longlong)_Dst + 0x16) = 0;
+            _Dst[6] = 0;
+            *(undefined2 *)(_Dst + 7) = 0;
+            *(undefined8 *)((longlong)_Dst + 6) = *(undefined8 *)(psVar7 + 4);
+            return 0;
           }
-          if (uVar6 != *(uint *)(lVar4 + 0x5c2)) {
-            return 1;
-          }
-          *_Dst = 0;
-          *(undefined2 *)(_Dst + 1) = 0;
-          *(undefined8 *)((longlong)_Dst + 0xe) = 0;
-          *(undefined2 *)((longlong)_Dst + 0x16) = 0;
-          _Dst[6] = 0;
-          *(undefined2 *)(_Dst + 7) = 0;
-          *(undefined8 *)((longlong)_Dst + 6) = *(undefined8 *)(psVar3 + 4);
-          return 0;
+          return 1;
         }
         if (iVar1 != 0xf) {
           return 1;
         }
-        goto LAB_1;
+        goto LAB_0;
       }
-      cVar5 = IN6_IS_ADDR_ISATAP(psVar3);
-      if (cVar5 == '\0') {
+      cVar2 = IN6_IS_ADDR_ISATAP(psVar7);
+      if (cVar2 == '\0') {
         return 1;
       }
-      *_Dst = *(undefined4 *)(lVar4 + 0x450);
+      *_Dst = *(undefined4 *)(lVar6 + 0x450);
       _Dst[1] = 0;
-      uVar7 = *(undefined4 *)(psVar3 + 6);
+      uVar3 = *(undefined4 *)(psVar7 + 6);
     }
-    _Dst[2] = uVar7;
+    _Dst[2] = uVar3;
   }
   return 0;
 }
 

```


## FlIfCreateVirtualInterface

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,calling,called|
|ratio|0.68|
|i_ratio|0.62|
|m_ratio|0.98|
|b_ratio|0.81|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlIfCreateVirtualInterface|FlIfCreateVirtualInterface|
|fullname|FlIfCreateVirtualInterface|FlIfCreateVirtualInterface|
|refcount|3|3|
|`length`|1666|1646|
|`called`|<details><summary>Expand for full list:<br>Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_IsEnabledDeviceUsageNoInline<br>Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline<br>FlIfpAllocateVirtualInterface<br>FlIfpFindVirtualInterfaceUnderLock<br>FlIfpGenerateVirtualInterfaceAlias<br>FlIfpQueryVirtualInterfaceLuid<br>FlIfpRegisterNdisInterface<br>FlIfpReleaseIsolationModeReference<br>McTemplateK0xqjqqqqxq_EtwWriteTransfer<br>McTemplateK0z_EtwWriteTransfer<br>NDIS.SYS::NdisIfAllocateNetLuidIndex</summary>NDIS.SYS::NdisIfDeregisterInterface<br>NDIS.SYS::NdisIfFreeNetLuidIndex<br>NETIO.SYS::NsiSetAllParameters<br>NTOSKRNL.EXE::ExAcquirePushLockExclusiveEx<br>NTOSKRNL.EXE::ExAcquireResourceExclusiveLite<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::ExReleasePushLockExclusiveEx<br>NTOSKRNL.EXE::ExReleaseResourceLite<br>NTOSKRNL.EXE::KeEnterCriticalRegion<br>NTOSKRNL.EXE::KeLeaveCriticalRegion<br>__security_check_cookie<br>memset</details>|<details><summary>Expand for full list:<br>Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_IsEnabledDeviceUsageNoInline<br>FlIfpAllocateVirtualInterface<br>FlIfpFindVirtualInterfaceUnderLock<br>FlIfpGenerateVirtualInterfaceAlias<br>FlIfpQueryVirtualInterfaceLuid<br>FlIfpRegisterNdisInterface<br>FlIfpReleaseIsolationModeReference<br>McTemplateK0xqjqqqqxq_EtwWriteTransfer<br>McTemplateK0z_EtwWriteTransfer<br>NDIS.SYS::NdisIfAllocateNetLuidIndex<br>NDIS.SYS::NdisIfDeregisterInterface</summary>NDIS.SYS::NdisIfFreeNetLuidIndex<br>NETIO.SYS::NsiSetAllParameters<br>NTOSKRNL.EXE::ExAcquirePushLockExclusiveEx<br>NTOSKRNL.EXE::ExAcquireResourceExclusiveLite<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::ExReleasePushLockExclusiveEx<br>NTOSKRNL.EXE::ExReleaseResourceLite<br>NTOSKRNL.EXE::KeEnterCriticalRegion<br>NTOSKRNL.EXE::KeLeaveCriticalRegion<br>__security_check_cookie<br>memset</details>|
|`calling`|FUN_1401db314<br>FlSetAllVirtualInterfaceParameters|FUN_1401dad88<br>FlSetAllVirtualInterfaceParameters|
|paramcount|0|0|
|`address`|1401a8478|1401a86b8|
|sig|undefined FlIfCreateVirtualInterface(void)|undefined FlIfCreateVirtualInterface(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlIfCreateVirtualInterface Called Diff


```diff
--- FlIfCreateVirtualInterface called
+++ FlIfCreateVirtualInterface called
@@ -2 +1,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline
```


### FlIfCreateVirtualInterface Calling Diff


```diff
--- FlIfCreateVirtualInterface calling
+++ FlIfCreateVirtualInterface calling
@@ -1 +1 @@
-FUN_1401db314
+FUN_1401dad88
```


### FlIfCreateVirtualInterface Diff


```diff
--- FlIfCreateVirtualInterface
+++ FlIfCreateVirtualInterface
@@ -1,307 +1,300 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
 int FlIfCreateVirtualInterface
-              (longlong param_1,longlong *param_2,undefined4 param_3,uint param_4,int param_5,
+              (longlong param_1,longlong *param_2,uint param_3,uint param_4,int param_5,
               undefined8 param_6,undefined2 param_7,undefined4 param_8,undefined8 param_9,
               undefined8 param_10,ushort param_11,longlong *param_12,undefined4 *param_13,
               undefined4 *param_14)
 
 {
   longlong lVar1;
   longlong *plVar2;
   code *pcVar3;
   bool bVar4;
-  undefined4 uVar5;
-  int iVar6;
-  uint uVar7;
-  longlong *plVar8;
+  int iVar5;
+  uint uVar6;
+  longlong *plVar7;
+  ulonglong uVar8;
   undefined1 *puVar9;
   undefined1 *puVar10;
   longlong *plVar11;
   undefined1 auStack_218 [8];
   undefined1 auStack_210 [24];
   longlong *local_1f8;
   uint local_1f0;
   undefined8 *local_1e8;
   undefined4 local_1e0;
   char local_1b8;
   uint local_1b4;
   uint local_1b0;
   int local_1ac;
-  undefined4 local_1a8;
   longlong *local_1a0;
   undefined8 local_198;
   longlong *local_190;
   undefined8 local_188;
   longlong *local_180;
   undefined4 *local_178;
   undefined8 local_170;
   longlong lStack_168;
   longlong local_160;
   ulonglong uStack_158;
   longlong local_150;
-  ulonglong uStack_148;
+  undefined8 uStack_148;
   undefined1 local_138 [32];
   undefined8 local_118;
   undefined4 local_110;
   undefined4 local_c0;
   undefined4 local_60;
   ulonglong local_48;
   
   puVar9 = auStack_218;
   puVar10 = auStack_218;
   local_48 = __security_cookie ^ (ulonglong)auStack_218;
   local_1ac = param_5;
   local_188 = param_6;
   local_198 = param_9;
   plVar11 = (longlong *)(ulonglong)param_4;
   local_180 = param_12;
   local_178 = param_13;
   local_160 = 0;
   uStack_158 = uStack_158 & 0xffffffff00000000;
   local_150 = 0;
   uStack_148 = 0;
   local_170 = 0;
   lStack_168 = 0;
   local_1b4 = param_4;
-  local_1a8 = param_3;
   local_190 = param_2;
   memset(local_138,0,0xf0);
   local_1a0 = (longlong *)0x0;
   bVar4 = false;
   local_1b0 = 0;
   local_1b8 = '\0';
   KeEnterCriticalRegion();
   ExAcquireResourceExclusiveLite(&DAT_0,1);
-  if ((Feature_TCPIP_58629296_Fix__private_featureState & 0x10) == 0) {
-    Feature_TCPIP_58629296_Fix__private_IsEnabledDeviceUsageNoInline();
-  }
   if ((*(uint *)(param_1 + 0xc4) & 8) == 0) {
-    plVar8 = (longlong *)
-             FlIfpFindVirtualInterfaceUnderLock(*(undefined8 *)(param_1 + 0x440),param_3);
-    uVar5 = local_1a8;
-    if (plVar8 == (longlong *)0x0) {
+    uVar8 = (ulonglong)param_3;
+    plVar7 = (longlong *)FlIfpFindVirtualInterfaceUnderLock(*(undefined8 *)(param_1 + 0x440),uVar8);
+    if (plVar7 == (longlong *)0x0) {
 LAB_1:
       if (param_4 == 0) {
 LAB_2:
-        iVar6 = 0;
+        iVar5 = 0;
         local_1b8 = '\x01';
-        if (plVar8 != (longlong *)0x0) {
+        if (plVar7 != (longlong *)0x0) {
 LAB_3:
-          ExAcquirePushLockExclusiveEx(plVar8 + 0x4d,0);
+          ExAcquirePushLockExclusiveEx(plVar7 + 0x4d,0);
           if (param_11 == 2) {
-            plVar8[0x4e] = param_1;
+            plVar7[0x4e] = param_1;
           }
           else {
-            plVar8[0x4f] = param_1;
-          }
-          ExReleasePushLockExclusiveEx(plVar8 + 0x4d,0);
-          if ((int)plVar8[10] == 0) {
-            iVar6 = FlIfpGenerateVirtualInterfaceAlias(plVar8,local_188,param_7);
-            if (iVar6 < 0) {
+            plVar7[0x4f] = param_1;
+          }
+          ExReleasePushLockExclusiveEx(plVar7 + 0x4d,0);
+          if ((int)plVar7[10] == 0) {
+            iVar5 = FlIfpGenerateVirtualInterfaceAlias(plVar7,local_188,param_7);
+            if (iVar5 < 0) {
               *param_14 = 0x10;
             }
             else {
-              *(undefined4 *)((longlong)plVar8 + 0x44) = param_8;
-              iVar6 = FlIfpRegisterNdisInterface(plVar8,param_10);
-              if (-1 < iVar6) goto LAB_4;
+              *(undefined4 *)((longlong)plVar7 + 0x44) = param_8;
+              iVar5 = FlIfpRegisterNdisInterface(plVar7,param_10);
+              if (-1 < iVar5) goto LAB_4;
               *param_14 = 0x11;
             }
 LAB_5:
             plVar11 = (longlong *)(ulonglong)local_1b4;
             goto LAB_6;
           }
 LAB_4:
           if (bVar4) {
-            plVar11 = plVar8 + 9;
-            local_150 = plVar8[2];
-            uStack_148 = (ulonglong)*(uint *)(plVar8 + 7);
-            local_170 = 0x200180;
-            local_160 = 0;
+            local_150 = plVar7[2];
+            plVar11 = plVar7 + 9;
+            uStack_148 = CONCAT44(uStack_148._4_4_,(int)plVar7[7]);
             uStack_158 = 0;
+            local_170 = CONCAT44(local_170._4_4_,0x200180);
             lStack_168 = *plVar11;
             if ((Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_featureState & 0x10)
                 == 0) {
-              uVar7 = Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_IsEnabledDeviceUsageNoInline
+              uVar6 = Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_IsEnabledDeviceUsageNoInline
                                 ();
             }
             else {
-              uVar7 = Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_featureState &
+              uVar6 = Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_featureState &
                       1;
             }
-            if (uVar7 != 0) {
-              local_160 = plVar8[3];
-              uStack_158 = plVar8[4];
+            if (uVar6 != 0) {
+              local_160 = plVar7[3];
+              uStack_158 = plVar7[4];
             }
             local_1e0 = 0x20;
             local_1e8 = &local_170;
             local_1f0 = 0x10;
             local_1f8 = &local_150;
-            iVar6 = NsiSetAllParameters(0,2,&NPI_MS_NDIS_MODULEID);
-            if (iVar6 < 0) {
+            iVar5 = NsiSetAllParameters(0,2,&NPI_MS_NDIS_MODULEID);
+            if (iVar5 < 0) {
               *param_14 = 0x12;
               goto LAB_5;
             }
             goto LAB_7;
           }
 LAB_8:
           if ((DAT_9 & 4) != 0) {
-            *(int *)(puVar10 + 0x58) = (int)plVar8[10];
-            *(longlong *)(puVar10 + 0x50) = plVar8[9];
-            *(int *)(puVar10 + 0x48) = (int)plVar8[8];
-            *(int *)(puVar10 + 0x40) = (int)plVar8[7];
-            *(undefined4 *)(puVar10 + 0x38) = *(undefined4 *)((longlong)plVar8 + 0x3c);
-            *(undefined4 *)(puVar10 + 0x30) = *(undefined4 *)((longlong)plVar8 + 0x44);
-            *(longlong **)(puVar10 + 0x28) = plVar8 + 3;
+            *(int *)(puVar10 + 0x58) = (int)plVar7[10];
+            *(longlong *)(puVar10 + 0x50) = plVar7[9];
+            *(int *)(puVar10 + 0x48) = (int)plVar7[8];
+            *(int *)(puVar10 + 0x40) = (int)plVar7[7];
+            *(undefined4 *)(puVar10 + 0x38) = *(undefined4 *)((longlong)plVar7 + 0x3c);
+            *(undefined4 *)(puVar10 + 0x30) = *(undefined4 *)((longlong)plVar7 + 0x44);
+            *(longlong **)(puVar10 + 0x28) = plVar7 + 3;
             *(uint *)(puVar10 + 0x20) = (uint)param_11;
-            *(undefined8 *)(puVar10 + -8) = 0x1401a8aa4;
-            McTemplateK0xqjqqqqxq_EtwWriteTransfer(plVar8 + 3,&FL_VIRTUAL_INTERFACE_CREATION);
-          }
-          *local_180 = plVar8[9];
-          *local_178 = (int)plVar8[10];
+            *(undefined8 *)(puVar10 + -8) = 0x1401a8cd0;
+            McTemplateK0xqjqqqqxq_EtwWriteTransfer(plVar7 + 3,&FL_VIRTUAL_INTERFACE_CREATION);
+          }
+          *local_180 = plVar7[9];
+          *local_178 = (int)plVar7[10];
           goto LAB_10;
         }
-        iVar6 = FlIfpQueryVirtualInterfaceLuid
-                          (*(undefined8 *)(param_1 + 0x440),local_1a8,&local_1a0);
-        if (iVar6 == -0x3ffffddb) {
-          iVar6 = NdisIfAllocateNetLuidIndex(6,&local_1b0);
-          if (iVar6 < 0) {
+        iVar5 = FlIfpQueryVirtualInterfaceLuid(*(undefined8 *)(param_1 + 0x440));
+        if (iVar5 == -0x3ffffddb) {
+          iVar5 = NdisIfAllocateNetLuidIndex(6,&local_1b0);
+          if (iVar5 < 0) {
             *param_14 = 1;
           }
           else {
             local_1a0 = (longlong *)(((ulonglong)(local_1b0 & 0xffffff) | 0x6000000) << 0x18);
 LAB_11:
             local_1e8 = (undefined8 *)CONCAT44(local_1e8._4_4_,local_1ac);
             local_1f8 = local_1a0;
             local_1f0 = param_4;
-            plVar8 = (longlong *)
+            plVar7 = (longlong *)
                      FlIfpAllocateVirtualInterface
-                               (*(undefined8 *)(param_1 + 0x440),local_190,local_198,uVar5);
-            if (plVar8 != (longlong *)0x0) {
+                               (*(undefined8 *)(param_1 + 0x440),local_190,local_198,
+                                uVar8 & 0xffffffff);
+            if (plVar7 != (longlong *)0x0) {
               bVar4 = true;
               goto LAB_3;
             }
             *param_14 = 1;
           }
-          iVar6 = -0x3fffff66;
+          iVar5 = -0x3fffff66;
           if (DAT_12 < '\0') {
-            iVar6 = -0x3fffff66;
+            iVar5 = -0x3fffff66;
             McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES)
             ;
           }
         }
         else {
-          if (-1 < iVar6) goto LAB_11;
+          if (-1 < iVar5) goto LAB_11;
           *param_14 = 0xf;
         }
       }
       else {
         if ((*(uint *)(param_1 + 0x3b0) == 0) || (*(uint *)(param_1 + 0x3b0) == param_4)) {
-          iVar6 = *(int *)(param_1 + 0x3b4);
-          *(int *)(param_1 + 0x3b4) = iVar6 + 1;
-          if (iVar6 == 0) {
+          iVar5 = *(int *)(param_1 + 0x3b4);
+          *(int *)(param_1 + 0x3b4) = iVar5 + 1;
+          if (iVar5 == 0) {
             *(uint *)(param_1 + 0x3b0) = param_4;
           }
           goto LAB_2;
         }
-        iVar6 = -0x3fff5ffd;
+        iVar5 = -0x3fff5ffd;
         *param_14 = 0xe;
         bVar4 = false;
 LAB_6:
-        if (plVar8 != (longlong *)0x0) {
-          if ((bVar4) && ((int)plVar8[10] != 0)) {
+        if (plVar7 != (longlong *)0x0) {
+          if ((bVar4) && ((int)plVar7[10] != 0)) {
             NdisIfDeregisterInterface();
-            *(undefined4 *)(plVar8 + 10) = 0;
-            *(undefined4 *)((longlong)plVar8 + 0x44) = 0;
+            *(undefined4 *)(plVar7 + 10) = 0;
+            *(undefined4 *)((longlong)plVar7 + 0x44) = 0;
           }
           if (local_1b8 != '\0') {
-            ExAcquirePushLockExclusiveEx(plVar8 + 0x4d,0);
+            ExAcquirePushLockExclusiveEx(plVar7 + 0x4d,0);
             if (param_11 == 2) {
-              plVar8[0x4e] = 0;
+              plVar7[0x4e] = 0;
             }
             else {
-              plVar8[0x4f] = 0;
-            }
-            ExReleasePushLockExclusiveEx(plVar8 + 0x4d,0);
+              plVar7[0x4f] = 0;
+            }
+            ExReleasePushLockExclusiveEx(plVar7 + 0x4d,0);
           }
           if (bVar4) {
-            lVar1 = *plVar8;
-            if ((*(longlong **)(lVar1 + 8) != plVar8) ||
-               (plVar2 = (longlong *)plVar8[1], (longlong *)*plVar2 != plVar8)) {
+            lVar1 = *plVar7;
+            if ((*(longlong **)(lVar1 + 8) != plVar7) ||
+               (plVar2 = (longlong *)plVar7[1], (longlong *)*plVar2 != plVar7)) {
               pcVar3 = (code *)swi(0x29);
               (*pcVar3)(3);
               puVar9 = auStack_210;
 LAB_7:
-              *(undefined8 *)(puVar9 + -8) = 0x1401a89bf;
+              *(undefined8 *)(puVar9 + -8) = 0x1401a8bdd;
               memset(local_138,0xff,0xf0);
               *(undefined4 *)(puVar9 + 0x38) = 0xf0;
+              *(undefined1 **)(puVar9 + 0x30) = local_138;
+              *(undefined4 *)(puVar9 + 0x28) = 8;
               local_118 = 0;
               local_110 = 0;
               local_c0 = 0;
               local_60 = 0;
-              *(undefined1 **)(puVar9 + 0x30) = local_138;
-              *(undefined4 *)(puVar9 + 0x28) = 8;
               *(longlong **)(puVar9 + 0x20) = plVar11;
-              *(undefined8 *)(puVar9 + -8) = 0x1401a8a0a;
+              *(undefined8 *)(puVar9 + -8) = 0x1401a8c36;
               NsiSetAllParameters(0,1,&NPI_MS_IPV4_MODULEID,7);
               *(undefined4 *)(puVar9 + 0x38) = 0xf0;
               *(undefined1 **)(puVar9 + 0x30) = local_138;
               *(undefined4 *)(puVar9 + 0x28) = 8;
               *(longlong **)(puVar9 + 0x20) = plVar11;
-              *(undefined8 *)(puVar9 + -8) = 0x1401a8a43;
+              *(undefined8 *)(puVar9 + -8) = 0x1401a8c6f;
               NsiSetAllParameters(0,1,&NPI_MS_IPV6_MODULEID,7);
               puVar10 = puVar9;
               goto LAB_8;
             }
             *plVar2 = lVar1;
             *(longlong **)(lVar1 + 8) = plVar2;
-            ExFreePoolWithTag(plVar8,0);
+            ExFreePoolWithTag(plVar7,0);
           }
         }
         if (local_1b8 == '\0') goto LAB_13;
       }
       FlIfpReleaseIsolationModeReference(param_1,plVar11);
     }
-    else if ((plVar8[3] == *param_2) && (plVar8[4] == param_2[1])) {
-      if (*(uint *)((longlong)plVar8 + 0x3c) == param_4) {
-        if ((int)plVar8[8] == local_1ac) {
-          if (((param_11 != 2) || (plVar8[0x4e] == 0)) &&
-             ((param_11 != 0x17 || (plVar8[0x4f] == 0)))) goto LAB_1;
-          iVar6 = -0x3ffffdd6;
+    else if ((plVar7[3] == *param_2) && (plVar7[4] == param_2[1])) {
+      if (*(uint *)((longlong)plVar7 + 0x3c) == param_4) {
+        if ((int)plVar7[8] == local_1ac) {
+          if (((param_11 != 2) || (plVar7[0x4e] == 0)) &&
+             ((param_11 != 0x17 || (plVar7[0x4f] == 0)))) goto LAB_1;
+          iVar5 = -0x3ffffdd6;
           *param_14 = 0xd;
         }
         else {
-          iVar6 = -0x3ffffdd6;
+          iVar5 = -0x3ffffdd6;
           *param_14 = 0x15;
         }
       }
       else {
-        iVar6 = -0x3ffffdd6;
+        iVar5 = -0x3ffffdd6;
         *param_14 = 0xc;
       }
     }
     else {
-      iVar6 = -0x3ffffdd6;
+      iVar5 = -0x3ffffdd6;
       *param_14 = 0xb;
     }
   }
   else {
-    iVar6 = -0x3ffffddb;
+    iVar5 = -0x3ffffddb;
     *param_14 = 10;
   }
 LAB_13:
   puVar10 = auStack_218;
   if (local_1b0 != 0) {
     NdisIfFreeNetLuidIndex(6);
     puVar10 = auStack_218;
   }
 LAB_10:
-  *(undefined8 *)(puVar10 + -8) = 0x1401a8ac6;
+  *(undefined8 *)(puVar10 + -8) = 0x1401a8cf2;
   ExReleaseResourceLite(&DAT_0);
-  *(undefined8 *)(puVar10 + -8) = 0x1401a8ad2;
+  *(undefined8 *)(puVar10 + -8) = 0x1401a8cfe;
   KeLeaveCriticalRegion();
-  *(undefined8 *)(puVar10 + -8) = 0x1401a8ae8;
-  return iVar6;
+  *(undefined8 *)(puVar10 + -8) = 0x1401a8d14;
+  return iVar5;
 }
 

```


## IppVerifyHwUsoCompatibility

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.17|
|i_ratio|0.5|
|m_ratio|0.86|
|b_ratio|0.82|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppVerifyHwUsoCompatibility|IppVerifyHwUsoCompatibility|
|fullname|IppVerifyHwUsoCompatibility|IppVerifyHwUsoCompatibility|
|refcount|2|2|
|`length`|351|277|
|`called`|Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline<br>IppQueryUso|IppQueryUso|
|calling|IppPacketizeDatagrams|IppPacketizeDatagrams|
|paramcount|0|0|
|`address`|140027388|140076698|
|sig|undefined IppVerifyHwUsoCompatibility(void)|undefined IppVerifyHwUsoCompatibility(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppVerifyHwUsoCompatibility Called Diff


```diff
--- IppVerifyHwUsoCompatibility called
+++ IppVerifyHwUsoCompatibility called
@@ -1 +0,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline
```


### IppVerifyHwUsoCompatibility Diff


```diff
--- IppVerifyHwUsoCompatibility
+++ IppVerifyHwUsoCompatibility
@@ -1,73 +1,48 @@
 
 ulonglong IppVerifyHwUsoCompatibility(undefined1 *param_1,longlong param_2,undefined4 *param_3)
 
 {
-  ushort uVar1;
+  uint uVar1;
   longlong lVar2;
-  uint uVar3;
-  ulonglong uVar4;
-  undefined1 uVar5;
-  ulonglong uVar6;
-  bool bVar7;
-  ulonglong local_28;
-  undefined8 uStack_20;
+  ulonglong uVar3;
+  undefined1 uVar4;
+  ulonglong uVar5;
+  ulonglong local_18;
+  undefined8 uStack_10;
   
+  *param_3 = 0;
+  local_18 = 0;
+  uStack_10 = 0;
+  uVar4 = 0;
   lVar2 = *(longlong *)(param_2 + 8);
-  *param_3 = 0;
-  uVar5 = 0;
-  local_28 = 0;
-  uStack_20 = 0;
-  if ((Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 0x10) == 0) {
-    uVar3 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledDeviceUsageNoInline();
+  if (((uint)*(ushort *)(param_1 + 0x28) < *(uint *)(param_2 + 0x2c)) ||
+     ((((param_1 == &Ipv6Global && (*(longlong *)(param_2 + 0xd0) != 0)) &&
+       ((*(uint *)(*(longlong *)(param_2 + 0xd0) + 0x28) & 0x10) != 0)) ||
+      ((*(short *)(param_2 + 0x32) != 0 || (*(short *)(param_2 + 0x30) != 0)))))) {
+    uVar4 = 1;
   }
-  else {
-    uVar3 = Feature_TCPIP_2025_2512_KCSAN_Fix__private_featureState & 1;
-  }
-  uVar1 = *(ushort *)(param_1 + 0x28);
-  if (uVar3 == 0) {
-    if (*(uint *)(param_2 + 0x2c) <= (uint)uVar1) {
-      if ((param_1 == &Ipv6Global) && (*(longlong *)(param_2 + 0xd0) != 0)) {
-        bVar7 = (*(byte *)(*(longlong *)(param_2 + 0xd0) + 0x28) & 0x10) == 0;
-        goto LAB_0;
+  IppQueryUso(*(undefined8 *)(param_2 + 0xd8),uVar4,*(uint *)(lVar2 + 0x140) & 0xfffff,&local_18);
+  uVar3 = (ulonglong)uStack_10._4_4_;
+  if (uStack_10._4_4_ == 0) {
+    uVar1 = *(uint *)(lVar2 + 0x140);
+    uVar3 = (ulonglong)
+            (*(int *)(*(longlong *)(*(longlong *)(param_2 + 8) + 8) + 0x18) -
+            (uVar1 >> 0x14 & 0x3ff)) - 8;
+    if (local_18 >> 0x20 < uVar3) {
+      uVar3 = 7;
+    }
+    else if ((((char)uStack_10 == '\0') && (uVar5 = (ulonglong)(uVar1 & 0xfffff), uVar5 < uVar3)) &&
+            (uVar3 - uVar3 % uVar5 < uVar3)) {
+      uVar3 = 9;
+    }
+    else {
+      if ((local_18 & 0xffffffff) <= uVar3) {
+        return CONCAT71((uint7)(uint3)(local_18 >> 8),1);
       }
-      goto LAB_1;
+      uVar3 = 8;
     }
   }
-  else if (*(uint *)(param_2 + 0x2c) <= (uint)uVar1) {
-    if ((param_1 == &Ipv6Global) && (*(longlong *)(param_2 + 0xd0) != 0)) {
-      bVar7 = (*(uint *)(*(longlong *)(param_2 + 0xd0) + 0x28) & 0x10) == 0;
-LAB_0:
-      if (!bVar7) goto LAB_2;
-    }
-LAB_1:
-    if ((*(short *)(param_2 + 0x32) == 0) && (*(short *)(param_2 + 0x30) == 0)) goto LAB_3;
-  }
-LAB_2:
-  uVar5 = 1;
-LAB_3:
-  IppQueryUso(*(undefined8 *)(param_2 + 0xd8),CONCAT11((char)(uVar1 >> 8),uVar5),
-              *(uint *)(lVar2 + 0x140) & 0xfffff,&local_28);
-  uVar4 = (ulonglong)uStack_20._4_4_;
-  if (uStack_20._4_4_ == 0) {
-    uVar3 = *(uint *)(lVar2 + 0x140);
-    uVar4 = (ulonglong)
-            (*(int *)(*(longlong *)(*(longlong *)(param_2 + 8) + 8) + 0x18) -
-            (uVar3 >> 0x14 & 0x3ff)) - 8;
-    if (local_28 >> 0x20 < uVar4) {
-      uVar4 = 7;
-    }
-    else if ((((char)uStack_20 == '\0') && (uVar6 = (ulonglong)uVar3 & 0xfffff, uVar6 < uVar4)) &&
-            (uVar4 - uVar4 % uVar6 < uVar4)) {
-      uVar4 = 9;
-    }
-    else {
-      if ((local_28 & 0xffffffff) <= uVar4) {
-        return CONCAT71((uint7)(uint3)(local_28 >> 8),1);
-      }
-      uVar4 = 8;
-    }
-  }
-  *param_3 = (int)uVar4;
-  return uVar4 & 0xffffffffffffff00;
+  *param_3 = (int)uVar3;
+  return uVar3 & 0xffffffffffffff00;
 }
 

```


## IpGetAllSortedAddressParameters

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.37|
|i_ratio|0.52|
|m_ratio|0.92|
|b_ratio|0.67|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IpGetAllSortedAddressParameters|IpGetAllSortedAddressParameters|
|fullname|IpGetAllSortedAddressParameters|IpGetAllSortedAddressParameters|
|refcount|2|2|
|`length`|246|283|
|`called`|IppCreateSortedAddressPairsEx<br>IppDereferenceCompartment<br>IppFindCompartmentById<br>IppIsCompartmentAccessibleByThread<br>memset|Feature_3802637627__private_IsEnabledDeviceUsageNoInline<br>IppCreateSortedAddressPairsEx<br>IppDereferenceCompartment<br>IppFindCompartmentById<br>IppIsCompartmentAccessibleByThread<br>memset|
|calling|||
|paramcount|0|0|
|`address`|1400793c0|140143e50|
|sig|undefined IpGetAllSortedAddressParameters(void)|undefined IpGetAllSortedAddressParameters(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IpGetAllSortedAddressParameters Called Diff


```diff
--- IpGetAllSortedAddressParameters called
+++ IpGetAllSortedAddressParameters called
@@ -0,0 +1 @@
+Feature_3802637627__private_IsEnabledDeviceUsageNoInline
```


### IpGetAllSortedAddressParameters Diff


```diff
--- IpGetAllSortedAddressParameters
+++ IpGetAllSortedAddressParameters
@@ -1,36 +1,45 @@
 
 undefined4 IpGetAllSortedAddressParameters(longlong param_1)
 
 {
   int *piVar1;
   void *_Dst;
   char cVar2;
-  undefined4 uVar3;
-  longlong lVar4;
+  uint uVar3;
+  undefined4 uVar4;
+  longlong lVar5;
   
   piVar1 = *(int **)(param_1 + 0x10);
   _Dst = *(void **)(param_1 + 0x38);
-  if (Ipv6Global == '\0') {
-    return 0xc00000bb;
+  if ((Feature_3802637627__private_featureState & 0x10) == 0) {
+    uVar3 = Feature_3802637627__private_IsEnabledDeviceUsageNoInline();
   }
-  if ((*(int *)(param_1 + 0x20) == 0) && (_Dst != (void *)0x0)) {
-    lVar4 = IppFindCompartmentById(&Ipv6Global);
-    if (lVar4 != 0) {
-      if ((*piVar1 == 0) || (cVar2 = IppIsCompartmentAccessibleByThread(lVar4,0,1), cVar2 != '\0'))
-      {
-        memset(_Dst,0,0x4658);
-        uVar3 = IppCreateSortedAddressPairsEx
-                          (lVar4,piVar1[0xdae],_Dst,(longlong)_Dst + 14000,piVar1 + 1,piVar1[0xdad],
-                           (longlong)_Dst + 0x36b4,(longlong)_Dst + 0x4654);
+  else {
+    uVar3 = Feature_3802637627__private_featureState & 1;
+  }
+  if ((uVar3 == 0) || ((uint)piVar1[0xdad] < 0x1f5)) {
+    if (Ipv6Global == '\0') {
+      return 0xc00000bb;
+    }
+    if ((*(int *)(param_1 + 0x20) == 0) && (_Dst != (void *)0x0)) {
+      lVar5 = IppFindCompartmentById(&Ipv6Global);
+      if (lVar5 != 0) {
+        if ((*piVar1 == 0) || (cVar2 = IppIsCompartmentAccessibleByThread(lVar5,0,1), cVar2 != '\0')
+           ) {
+          memset(_Dst,0,0x4658);
+          uVar4 = IppCreateSortedAddressPairsEx
+                            (lVar5,piVar1[0xdae],_Dst,(longlong)_Dst + 14000,piVar1 + 1,
+                             piVar1[0xdad],(longlong)_Dst + 0x36b4,(longlong)_Dst + 0x4654);
+        }
+        else {
+          uVar4 = 0xc0000225;
+        }
+        IppDereferenceCompartment(lVar5);
+        return uVar4;
       }
-      else {
-        uVar3 = 0xc0000225;
-      }
-      IppDereferenceCompartment(lVar4);
-      return uVar3;
+      return 0xc0000225;
     }
-    return 0xc0000225;
   }
   return 0xc000000d;
 }
 

```


## IppCreateForwardPath

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.72|
|i_ratio|0.63|
|m_ratio|0.98|
|b_ratio|0.73|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppCreateForwardPath|IppCreateForwardPath|
|fullname|IppCreateForwardPath|IppCreateForwardPath|
|refcount|4|4|
|`length`|786|806|
|`called`|<details><summary>Expand for full list:<br>CarAcquireCacheAwareReference<br>Feature_Servicing_TCPIPPPLOptimization__private_IsEnabledDeviceUsageNoInline<br>IppPathSetStartOrContinueTimer<br>IppPrunePathSetUnderLock<br>IppReferenceNeighborEx<br>McTemplateK0z_EtwWriteTransfer<br>NETIO.SYS::RtlCompute37Hash<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::RtlInsertEntryHashTable<br>PplAllocateFromLookasideList</summary>PplAllocateFromLookasideListProcessor<br>RtlRestructureHashTable<br>memmove<br>memset</details>|<details><summary>Expand for full list:<br>CarAcquireCacheAwareReference<br>Feature_76261690__private_IsEnabledDeviceUsageNoInline<br>Feature_Servicing_TCPIPPPLOptimization__private_IsEnabledDeviceUsageNoInline<br>IppPathSetStartOrContinueTimer<br>IppPrunePathSetUnderLock<br>IppReferenceNeighborEx<br>McTemplateK0z_EtwWriteTransfer<br>NETIO.SYS::RtlCompute37Hash<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::RtlInsertEntryHashTable<br>PplAllocateFromLookasideList</summary>PplAllocateFromLookasideListProcessor<br>RtlAcquireScalableWriteLockAtDpcLevel<br>RtlRestructureHashTable<br>memmove<br>memset</details>|
|calling|IpFlcReceivePreValidatedPackets<br>IpIpsProviderFindNextHop<br>IppFindNextHopInFwdCacheOrRouteTable|IpFlcReceivePreValidatedPackets<br>IpIpsProviderFindNextHop<br>IppFindNextHopInFwdCacheOrRouteTable|
|paramcount|0|0|
|`address`|140136474|140143110|
|sig|undefined IppCreateForwardPath(void)|undefined IppCreateForwardPath(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppCreateForwardPath Called Diff


```diff
--- IppCreateForwardPath called
+++ IppCreateForwardPath called
@@ -1,0 +2 @@
+Feature_76261690__private_IsEnabledDeviceUsageNoInline
@@ -8 +8,0 @@
-NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel
@@ -12,0 +13 @@
+RtlAcquireScalableWriteLockAtDpcLevel
```


### IppCreateForwardPath Diff


```diff
--- IppCreateForwardPath
+++ IppCreateForwardPath
@@ -1,142 +1,149 @@
 
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void IppCreateForwardPath
                (longlong param_1,void *param_2,void *param_3,undefined4 param_4,undefined4 param_5,
                undefined1 param_6,undefined4 param_7,int *param_8)
 
 {
   void *_Dst;
   longlong lVar1;
   code *pcVar2;
   undefined1 auVar3 [16];
   undefined4 uVar4;
   uint uVar5;
   void *_Dst_00;
   longlong *plVar6;
-  int *piVar7;
-  longlong lVar8;
-  int iVar9;
-  longlong *plVar10;
-  undefined1 *puVar11;
+  longlong lVar7;
+  longlong *plVar8;
+  undefined1 *puVar9;
   ulonglong _Size;
   void *_Dst_01;
   undefined1 auStack_78 [8];
   undefined1 auStack_70 [40];
   undefined8 local_48;
   undefined8 uStack_40;
   undefined8 local_38;
   
   uVar4 = SystemReserved1[0x12]._4_4_;
-  puVar11 = auStack_78;
+  puVar9 = auStack_78;
   local_48 = 0;
   uStack_40 = 0;
   local_38 = 0;
   _Dst_01 = (void *)0x0;
   _Size = (ulonglong)*(ushort *)(*(longlong *)(*(longlong *)(param_1 + 0x28) + 0x10) + 6);
   if ((Feature_Servicing_TCPIPPPLOptimization__private_featureState & 0x10) == 0) {
     uVar5 = Feature_Servicing_TCPIPPPLOptimization__private_IsEnabledDeviceUsageNoInline();
   }
   else {
     uVar5 = Feature_Servicing_TCPIPPPLOptimization__private_featureState & 1;
   }
   if (uVar5 == 0) {
     _Dst_00 = (void *)PplAllocateFromLookasideList
                                 (*(undefined8 *)(*(longlong *)(param_1 + 0x28) + 0x4ec8));
   }
   else {
     _Dst_00 = (void *)PplAllocateFromLookasideListProcessor();
   }
   if (_Dst_00 == (void *)0x0) {
     if (DAT_0 < '\0') {
       McTemplateK0z_EtwWriteTransfer(&MICROSOFT_TCPIP_PROVIDER_Context,&TCPIP_MEMORY_FAILURES);
     }
   }
   else {
     memset(_Dst_00,0,0x80);
     _Dst = (void *)((longlong)_Dst_00 + 0x80);
     memmove(_Dst,param_3,_Size);
     if (param_2 != (void *)0x0) {
       _Dst_01 = (void *)(_Size + (longlong)_Dst);
       memmove(_Dst_01,param_2,_Size);
     }
     *(undefined4 *)((longlong)_Dst_00 + 0x18) = 0x70667049;
     if ((Feature_Servicing_TCPIPPPLOptimization__private_featureState & 0x10) == 0) {
       uVar5 = Feature_Servicing_TCPIPPPLOptimization__private_IsEnabledDeviceUsageNoInline();
     }
     else {
       uVar5 = Feature_Servicing_TCPIPPPLOptimization__private_featureState & 1;
     }
     if (uVar5 != 0) {
       *(short *)((longlong)_Dst_00 + 0x78) = (short)uVar4;
     }
     *(undefined4 *)((longlong)_Dst_00 + 0x4c) = param_5;
     *(undefined1 *)((longlong)_Dst_00 + 0x50) = param_6;
     *(undefined4 *)((longlong)_Dst_00 + 0x48) = param_7;
     *(undefined4 *)((longlong)_Dst_00 + 0x30) = param_4;
     *(void **)((longlong)_Dst_00 + 0x38) = _Dst;
     *(void **)((longlong)_Dst_00 + 0x40) = _Dst_01;
     *(undefined8 *)((longlong)_Dst_00 + 0x58) = 1;
     *(undefined4 *)((longlong)_Dst_00 + 0x60) = *(undefined4 *)(param_1 + 0x14);
     *(int **)((longlong)_Dst_00 + 0x68) = param_8;
     if (*param_8 == 0x616c7049) {
       CarAcquireCacheAwareReference(*(undefined8 *)(param_8 + 8),1);
     }
     else if (*param_8 == 0x656e7049) {
       IppReferenceNeighborEx(param_8,1);
     }
     lVar1 = *(longlong *)((longlong)_Dst_00 + 0x40);
     uVar5 = RtlCompute37Hash(g_37HashSeed,*(undefined8 *)((longlong)_Dst_00 + 0x38),
                              *(undefined2 *)
                               (*(longlong *)(*(longlong *)(param_1 + 0x28) + 0x10) + 6));
     if (lVar1 != 0) {
       uVar5 = RtlCompute37Hash(uVar5,lVar1,
                                *(undefined2 *)
                                 (*(longlong *)(*(longlong *)(param_1 + 0x28) + 0x10) + 6));
     }
     lVar1 = param_1 + 0x500;
-    KeAcquireInStackQueuedSpinLockAtDpcLevel(lVar1);
-    iVar9 = 0;
-    if (-1 < *(int *)(param_1 + 0x508)) {
-      piVar7 = (int *)(param_1 + 0x540);
-      do {
-        do {
-        } while (*piVar7 != 0);
-        iVar9 = iVar9 + 1;
-        piVar7 = piVar7 + 0x10;
-      } while (iVar9 <= *(int *)(param_1 + 0x508));
-    }
+    RtlAcquireScalableWriteLockAtDpcLevel(lVar1,&local_48);
     RtlInsertEntryHashTable(param_1 + 0x658,_Dst_00,uVar5 | 0x80000000,0);
-    lVar8 = param_1 + 0x680;
-    plVar10 = *(longlong **)(param_1 + 0x688);
+    lVar7 = param_1 + 0x680;
+    plVar8 = *(longlong **)(param_1 + 0x688);
     plVar6 = (longlong *)((longlong)_Dst_00 + 0x20);
-    if (*plVar10 != lVar8) {
-      lVar8 = 3;
+    if (*plVar8 != lVar7) {
+      lVar7 = 3;
       pcVar2 = (code *)swi(0x29);
       plVar6 = (longlong *)(*pcVar2)();
-      puVar11 = auStack_70;
+      puVar9 = auStack_70;
     }
-    *plVar6 = lVar8;
-    plVar6[1] = (longlong)plVar10;
-    *plVar10 = (longlong)plVar6;
-    *(longlong **)(lVar8 + 8) = plVar6;
+    *plVar6 = lVar7;
+    plVar6[1] = (longlong)plVar8;
+    *plVar8 = (longlong)plVar6;
+    *(longlong **)(lVar7 + 8) = plVar6;
+    if ((Feature_76261690__private_featureState & 0x10) == 0) {
+      *(undefined8 *)(puVar9 + -8) = 0x140143363;
+      uVar5 = Feature_76261690__private_IsEnabledDeviceUsageNoInline();
+    }
+    else {
+      uVar5 = Feature_76261690__private_featureState & 1;
+    }
+    if (uVar5 != 0) {
+      *(byte *)((longlong)_Dst_00 + 0x70) = *(byte *)((longlong)_Dst_00 + 0x70) | 1;
+    }
     if ((uint)(*(int *)(param_1 + 0x644) * 2) <= *(uint *)(param_1 + 0x66c)) {
-      *(undefined8 *)(puVar11 + -8) = 0x1401366f4;
+      *(undefined8 *)(puVar9 + -8) = 0x14014338c;
       IppPrunePathSetUnderLock(param_1,lVar1,2);
     }
-    *(undefined4 *)(puVar11 + 0x20) = 0x80;
-    *(undefined8 *)(puVar11 + -8) = 0x14013670d;
+    *(undefined4 *)(puVar9 + 0x20) = 0x80;
+    *(undefined8 *)(puVar9 + -8) = 0x1401433a5;
     RtlRestructureHashTable(param_1 + 0x658,0x6e,0x5a);
-    *(byte *)((longlong)_Dst_00 + 0x70) = *(byte *)((longlong)_Dst_00 + 0x70) | 1;
-    *(undefined8 *)(puVar11 + -8) = 0x14013671d;
-    KeReleaseInStackQueuedSpinLockFromDpcLevel(puVar11 + 0x30);
+    if ((Feature_76261690__private_featureState & 0x10) == 0) {
+      *(undefined8 *)(puVar9 + -8) = 0x1401433b9;
+      uVar5 = Feature_76261690__private_IsEnabledDeviceUsageNoInline();
+    }
+    else {
+      uVar5 = Feature_76261690__private_featureState & 1;
+    }
+    if (uVar5 == 0) {
+      *(byte *)((longlong)_Dst_00 + 0x70) = *(byte *)((longlong)_Dst_00 + 0x70) | 1;
+    }
+    *(undefined8 *)(puVar9 + -8) = 0x1401433cd;
+    KeReleaseInStackQueuedSpinLockFromDpcLevel(puVar9 + 0x30);
     auVar3._8_8_ = 0;
     auVar3._0_8_ = _DAT_1 / 10000;
-    lVar8 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar3,8);
-    *(undefined8 *)(puVar11 + -8) = 0x140136768;
+    lVar7 = SUB168(ZEXT816(0x624dd2f1a9fbe77) * auVar3,8);
+    *(undefined8 *)(puVar9 + -8) = 0x140143418;
     IppPathSetStartOrContinueTimer
-              (lVar1,lVar8 + (_DAT_1 / 10000 - lVar8 >> 1) >> 8,1);
+              (lVar1,lVar7 + (_DAT_1 / 10000 - lVar7 >> 1) >> 8,1);
   }
   return;
 }
 

```


## FUN_1401dcbb0

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,name,fullname,length,sig,address,called|
|ratio|0.73|
|i_ratio|0.65|
|m_ratio|0.99|
|b_ratio|0.97|
|match_types|SigCallingCalledHasher|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|`name`|FUN_1401dcbb0|FUN_1401dc89a|
|`fullname`|FUN_1401dcbb0|FUN_1401dc89a|
|refcount|3|3|
|`length`|179|174|
|`called`|FUN_1401180b8<br>IppFindLocalMulticastSource<br>IppMulticastTraceInfo<br>NTOSKRNL.EXE::ExFreePoolWithTag|IppFindLocalMulticastSource<br>IppMulticastTraceInfo<br>NTOSKRNL.EXE::ExFreePoolWithTag|
|calling|IppRemoveSourcesFromMulticastGroup|IppRemoveSourcesFromMulticastGroup|
|paramcount|0|0|
|`address`|1401dcbb0|1401dc89a|
|`sig`|undefined FUN_1401dcbb0(void)|undefined FUN_1401dc89a(void)|
|sym_type|Function|Function|
|sym_source|DEFAULT|DEFAULT|
|external|False|False|

### FUN_1401dcbb0 Called Diff


```diff
--- FUN_1401dcbb0 called
+++ FUN_1401dc89a called
@@ -1 +0,0 @@
-FUN_1401180b8
```


### FUN_1401dcbb0 Diff


```diff
--- FUN_1401dcbb0
+++ FUN_1401dc89a
@@ -1,71 +1,60 @@
 
-/* PDB: Separated code (from the compiler): 1401dcbb0 - 1401dcc53 for parent address: 140116d00 */
+/* PDB: Separated code (from the compiler): 1401dc89a - 1401dc93d for parent address: 140112644 */
 
-ulonglong FUN_1401dcbb0(void)
+undefined8 FUN_1401dc89a(void)
 
 {
   longlong lVar1;
   longlong *plVar2;
   code *pcVar3;
   longlong *plVar4;
-  ulonglong uVar5;
-  short sVar6;
-  undefined8 *puVar7;
+  undefined8 uVar5;
+  undefined8 *puVar6;
   longlong unaff_RBX;
   uint unaff_EBP;
   undefined8 *unaff_RSI;
-  uint uVar8;
-  undefined8 *unaff_RDI;
-  ulonglong in_R9;
+  uint unaff_EDI;
   int unaff_R13D;
   longlong unaff_R14;
-  uint unaff_R15D;
+  int unaff_R15D;
   char in_stack_00000078;
   
   do {
     if (unaff_R14 == 0) {
-      puVar7 = unaff_RSI + 2;
+      puVar6 = unaff_RSI + 2;
       unaff_RSI = (undefined8 *)*unaff_RSI;
     }
     else {
-      puVar7 = (undefined8 *)((ulonglong)(unaff_R15D * (int)unaff_RDI) + unaff_R14);
+      puVar6 = (undefined8 *)((ulonglong)(unaff_R15D * unaff_EDI) + unaff_R14);
     }
-    uVar5 = (ulonglong)unaff_R15D;
-    plVar4 = (longlong *)IppFindLocalMulticastSource(unaff_RBX + 0x68,puVar7);
+    plVar4 = (longlong *)IppFindLocalMulticastSource(unaff_RBX + 0x68,puVar6,unaff_R15D);
     if (unaff_R13D == 0) {
       *(int *)(plVar4 + 2) = (int)plVar4[2] + -1;
     }
     else {
       *(int *)((longlong)plVar4 + 0x14) = *(int *)((longlong)plVar4 + 0x14) + -1;
     }
     if ((((in_stack_00000078 != '\0') && ((int)plVar4[2] == 0)) &&
         (*(int *)((longlong)plVar4 + 0x14) == 0)) &&
        (((int)plVar4[3] == 0 && (*(char *)((longlong)plVar4 + 0x1c) == '\0')))) {
       lVar1 = *plVar4;
       if ((*(longlong **)(lVar1 + 8) != plVar4) ||
          (plVar2 = (longlong *)plVar4[1], (longlong *)*plVar2 != plVar4)) {
-        sVar6 = 3;
         pcVar3 = (code *)swi(0x29);
-        (*pcVar3)();
-        if (sVar6 != 2) {
-          uVar5 = FUN_1401180b8();
-          return uVar5;
-        }
-        *unaff_RDI = *(undefined8 *)(uVar5 + 0x10);
-        return in_R9 & 0xffffffff;
+        (*pcVar3)(3);
+        return 0xc00000bb;
       }
       *plVar2 = lVar1;
       *(longlong **)(lVar1 + 8) = plVar2;
       ExFreePoolWithTag(plVar4,0);
     }
-    uVar8 = (int)unaff_RDI + 1;
-    unaff_RDI = (undefined8 *)(ulonglong)uVar8;
-    if (unaff_EBP <= uVar8) {
+    unaff_EDI = unaff_EDI + 1;
+    if (unaff_EBP <= unaff_EDI) {
       uVar5 = IppMulticastTraceInfo
                         (4,*(undefined8 *)(unaff_RBX + 8),**(undefined8 **)(unaff_RBX + 0x10),
                          unaff_EBP);
       return uVar5;
     }
   } while( true );
 }
 

```


## UdpSetDestinationEndpoint

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|code,name,fullname,refcount,length,sig,address,calling,called|
|ratio|0.07|
|i_ratio|0.07|
|m_ratio|0.5|
|b_ratio|0.37|
|match_types|Implied Match|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|`name`|UdpSetDestinationEndpoint|UdpConnectRedirectObsolete|
|`fullname`|UdpSetDestinationEndpoint|UdpConnectRedirectObsolete|
|`refcount`|5|2|
|`length`|1829|548|
|`called`|<details><summary>Expand for full list:<br>IN6_IS_ADDR_V4MAPPED<br>INETADDR_ISV4MAPPED<br>InetDereferenceLocalAddressAf<br>InetDereferenceNextHopAf<br>InetFindAndReferenceAf<br>InetLeavePathAf<br>InetValidateLocalAddressAf<br>IpNlpChecksumDatagram<br>IpNlpQueryPathInformation<br>IppJoinPath<br>NETIO.SYS::RtlCompute37Hash</summary>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>UdpCacheDefaultUsoInformation<br>_InetDereferenceAf<br>_IppReferencePath<br>__security_check_cookie<br>_guard_dispatch_icall<br>memset</details>|<details><summary>Expand for full list:<br>CreateUdpConnectRedirectCallbackContext<br>IN6_IS_ADDR_V4MAPPED<br>INETADDR_SETSOCKADDR<br>InetInspectConnectRequest<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock<br>RtlAcquireWriteLock<br>UdpConnectRedirectCallback<br>UdpSetDestinationEndpoint<br>__security_check_cookie<br>memmove<br>memset</summary></details>|
|`calling`|UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpConnectRedirectCallbackContinue<br>UdpIoControlEndpoint|UdpConnectRedirect|
|paramcount|0|0|
|`address`|14007cd50|1401647ec|
|`sig`|undefined UdpSetDestinationEndpoint(void)|undefined UdpConnectRedirectObsolete(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### UdpSetDestinationEndpoint Called Diff


```diff
--- UdpSetDestinationEndpoint called
+++ UdpConnectRedirectObsolete called
@@ -0,0 +1 @@
+CreateUdpConnectRedirectCallbackContext
@@ -2,11 +3,2 @@
-INETADDR_ISV4MAPPED
-InetDereferenceLocalAddressAf
-InetDereferenceNextHopAf
-InetFindAndReferenceAf
-InetLeavePathAf
-InetValidateLocalAddressAf
-IpNlpChecksumDatagram
-IpNlpQueryPathInformation
-IppJoinPath
-NETIO.SYS::RtlCompute37Hash
-NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock
+INETADDR_SETSOCKADDR
+InetInspectConnectRequest
@@ -14,3 +6,3 @@
-UdpCacheDefaultUsoInformation
-_InetDereferenceAf
-_IppReferencePath
+RtlAcquireWriteLock
+UdpConnectRedirectCallback
+UdpSetDestinationEndpoint
@@ -18 +10 @@
-_guard_dispatch_icall
+memmove
```


### UdpSetDestinationEndpoint Calling Diff


```diff
--- UdpSetDestinationEndpoint calling
+++ UdpConnectRedirectObsolete calling
@@ -2,3 +1,0 @@
-UdpConnectRedirectCallback
-UdpConnectRedirectCallbackContinue
-UdpIoControlEndpoint
```


### UdpSetDestinationEndpoint Diff


```diff
--- UdpSetDestinationEndpoint
+++ UdpConnectRedirectObsolete
@@ -1,329 +1,119 @@
 
-/* WARNING: Function: _guard_dispatch_icall replaced with injection: guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 
-longlong * UdpSetDestinationEndpoint(longlong param_1,short *param_2,char param_3)
+int UdpConnectRedirectObsolete(longlong param_1,longlong param_2)
 
 {
-  char cVar1;
-  undefined2 uVar2;
-  int iVar3;
-  longlong *plVar4;
-  longlong *plVar5;
+  longlong *plVar1;
+  longlong lVar2;
+  undefined8 uVar3;
+  undefined8 *puVar4;
+  code *pcVar5;
   uint uVar6;
-  uint uVar7;
-  short sVar8;
-  short sVar9;
-  uint uVar10;
-  undefined4 uVar11;
-  longlong *plVar12;
-  longlong *plVar13;
-  short *psVar14;
-  undefined4 *puVar15;
-  ulonglong uVar16;
-  undefined8 uVar17;
-  undefined1 auStack_238 [32];
-  short local_218 [2];
-  char local_214;
-  undefined2 local_212;
-  short local_210;
-  int local_20c;
-  longlong *local_208;
-  longlong *local_200;
-  undefined4 local_1f8;
-  undefined4 *local_1f0;
-  undefined8 local_1e8;
-  longlong *local_1e0;
-  longlong local_1d8;
-  longlong local_1d0;
-  longlong *local_1c8;
-  undefined8 local_1c0;
-  undefined1 *local_1b8;
-  longlong local_1b0;
-  undefined8 local_1a8;
-  undefined8 local_1a0;
-  undefined8 local_198;
-  undefined8 local_190;
-  undefined8 uStack_188;
-  undefined8 local_180;
-  undefined4 *local_178;
-  undefined4 local_170;
-  undefined8 local_168;
-  undefined4 local_160;
-  undefined8 local_158;
-  undefined4 local_140;
-  longlong *local_138;
-  longlong *local_130;
-  undefined4 local_128;
+  char cVar7;
+  int iVar8;
+  short *psVar9;
+  short *_Src;
+  undefined1 *puVar10;
+  undefined1 auStack_1a8 [8];
+  undefined1 auStack_1a0 [24];
+  undefined2 local_188;
+  undefined1 local_158;
+  undefined8 local_150;
+  undefined8 local_148;
+  undefined8 local_140;
+  undefined8 uStack_138;
+  undefined8 local_130;
+  undefined2 local_128;
+  short local_126;
+  undefined4 local_124;
   undefined8 local_120;
-  longlong *local_100;
-  undefined8 local_f8;
-  undefined4 local_e0;
-  undefined2 local_dc;
-  short local_da;
-  undefined1 local_d8 [112];
-  undefined8 local_68;
-  char local_60;
-  char local_5f;
-  undefined4 local_5c;
-  ulonglong local_48;
+  undefined2 local_a8;
+  undefined2 local_a6;
+  ulonglong local_28;
   
-  local_48 = __security_cookie ^ (ulonglong)auStack_238;
-  plVar4 = (longlong *)0x0;
-  uVar10 = 0;
-  local_1d0 = 0;
-  local_1e8 = 0;
-  local_1d8 = 0;
-  local_200 = (longlong *)0x0;
-  local_218[0] = 0;
-  local_180 = 0;
-  local_190 = 0;
-  uStack_188 = 0;
-  local_214 = param_3;
-  memset(local_d8,0,0x88);
-  local_20c = 0;
-  KeAcquireInStackQueuedSpinLock();
-  do {
-  } while (*(int *)(param_1 + 8) != 0);
-  if ((*(uint *)(param_1 + 0x18) & 1) == 0) {
-    KeReleaseInStackQueuedSpinLock(&local_190);
-    return (longlong *)0xc0000239;
+  puVar10 = auStack_1a8;
+  local_28 = __security_cookie ^ (ulonglong)auStack_1a8;
+  memset(&local_a8,0,0x80);
+  local_148 = 0;
+  local_158 = 0;
+  memset(&local_128,0,0x80);
+  _Src = *(short **)(param_1 + 0x20);
+  local_130 = 0;
+  local_140 = 0;
+  uStack_138 = 0;
+  local_150 = 0;
+  if (*(longlong *)(param_1 + 0x28) == 0) {
+    iVar8 = UdpSetDestinationEndpoint(param_2,_Src,1);
   }
-  plVar12 = plVar4;
-  plVar13 = plVar4;
-  plVar5 = plVar4;
-  if (param_2 != (short *)0x0) {
-    local_218[0] = param_2[1];
-    if (((*(longlong *)(param_1 + 0x68) != 0) &&
-        (plVar5 = (longlong *)0x0, *(int *)(*(longlong *)(param_1 + 0x68) + 0x18) == 1)) &&
-       (plVar5 = (longlong *)InetValidateLocalAddressAf(*(undefined8 *)(param_1 + 0x70)),
-       plVar5 == (longlong *)0x0)) {
-      KeReleaseInStackQueuedSpinLock(&local_190);
-      return (longlong *)0xc0000141;
-    }
-    local_210 = param_2[1];
-    puVar15 = *(undefined4 **)(param_1 + 0x50);
-    plVar12 = *(longlong **)(param_1 + 0x28);
-    uVar10 = *(uint *)(param_1 + 0x18) & 0x20;
-    plVar13 = *(longlong **)(param_1 + 0x70);
-    local_198 = *(undefined8 *)(param_1 + 0x48);
-    local_212 = *(undefined2 *)(param_1 + 0xa8);
-    sVar9 = *(short *)(param_1 + 0xae);
-    local_208 = plVar12;
-    local_1f0 = puVar15;
-    local_1e0 = plVar13;
-    if (puVar15 == (undefined4 *)0x0) {
-      plVar13 = (longlong *)0xc0000010;
-      plVar12 = local_200;
-LAB_0:
-      if ((int)plVar13 < 0) goto LAB_1;
+  else {
+    if (((*(uint *)(param_2 + 0x18) & 0x20) == 0) || (*_Src != 0x17)) {
+      uVar6 = 0x1c;
+      if (*_Src != 0x17) {
+        uVar6 = 0x10;
+      }
+      memmove(&local_128,_Src,(ulonglong)uVar6);
     }
     else {
-      if ((sVar9 == 0) || (uVar10 != 0)) {
-        sVar9 = *param_2;
-        if (sVar9 == 0x17) {
-          psVar14 = param_2 + 4;
-          cVar1 = IN6_IS_ADDR_V4MAPPED();
-          if (cVar1 != '\0') {
-            plVar4 = plVar13;
-            if (uVar10 == 0) {
-              plVar4 = (longlong *)InetFindAndReferenceAf();
-              puVar15 = local_1f0;
-              plVar12 = local_208;
-              plVar13 = local_1e0;
-            }
-            if (*param_2 != 0x17) {
-              psVar14 = param_2 + 2;
-            }
-            local_208 = (longlong *)(psVar14 + 6);
-            goto LAB_2;
-          }
-        }
-        if ((uVar10 == 0) && (plVar4 = (longlong *)0x0, (short)plVar13[3] == sVar9)) {
-          local_208 = (longlong *)(param_2 + 4);
-          plVar4 = plVar13;
-          if (sVar9 != 0x17) goto LAB_3;
-          goto LAB_2;
-        }
-LAB_4:
-        plVar13 = (longlong *)0xc0000207;
-        plVar12 = local_200;
+      psVar9 = _Src + 4;
+      cVar7 = IN6_IS_ADDR_V4MAPPED();
+      if (cVar7 == '\0') {
+        iVar8 = -0x3ffffdf9;
+        puVar10 = auStack_1a8;
         goto LAB_0;
       }
-      sVar8 = *param_2;
-      if ((sVar9 == sVar8) &&
-         ((sVar9 != 0x17 || (cVar1 = INETADDR_ISV4MAPPED(), plVar4 = (longlong *)0x0, cVar1 == '\0')
-          ))) {
-        plVar4 = plVar13;
+      local_126 = _Src[1];
+      local_124 = *(undefined4 *)(psVar9 + 6);
+      local_120 = 0;
+      local_128 = 2;
+    }
+    RtlAcquireWriteLock(param_2,&local_140);
+    puVar10 = auStack_1a8;
+    uVar3 = *(undefined8 *)(param_2 + 0x48);
+    if (*(longlong *)(param_2 + 0x68) == 0) {
+      local_a8 = local_128;
+      local_a6 = *(undefined2 *)(param_2 + 0xa8);
+    }
+    else {
+      puVar4 = *(undefined8 **)(*(longlong *)(param_2 + 0x68) + 0x10);
+      local_188 = *(undefined2 *)(param_2 + 0xa8);
+      INETADDR_SETSOCKADDR
+                (*(undefined2 *)(*(longlong *)(param_2 + 0x70) + 0x18),&local_a8,*puVar4,
+                 *(undefined4 *)(puVar4 + 1));
+    }
+    KeReleaseInStackQueuedSpinLock(&local_140);
+    iVar8 = CreateUdpConnectRedirectCallbackContext(&local_150,param_1,param_2);
+    if (iVar8 == 0) {
+      LOCK();
+      plVar1 = (longlong *)(param_2 + 0x10);
+      lVar2 = *plVar1;
+      *plVar1 = *plVar1 + 1;
+      UNLOCK();
+      puVar10 = auStack_1a8;
+      if (lVar2 + 1 < 2) {
+        pcVar5 = (code *)swi(0x29);
+        (*pcVar5)(0xe);
+        puVar10 = auStack_1a0;
       }
-      if (sVar8 == 0x17) {
-        local_208 = (longlong *)(param_2 + 4);
-      }
-      else {
-LAB_3:
-        local_208 = (longlong *)(param_2 + 2);
-      }
-LAB_2:
-      if (plVar4 == (longlong *)0x0) goto LAB_4;
-      local_1f8 = *puVar15;
-      if ((uVar10 != 0) || (plVar13 != plVar4)) {
-        local_1f0 = (undefined4 *)0x0;
-      }
-      if ((undefined8 *)(param_1 + 0xe8) == (undefined8 *)0x0) {
-LAB_5:
-        uVar17 = 0;
-      }
-      else if (plVar12 == plVar4) {
-        uVar17 = *(undefined8 *)(param_1 + 0xe8);
-      }
-      else {
-        if (plVar4 != *(longlong **)(param_1 + 0x100)) goto LAB_5;
-        uVar17 = *(undefined8 *)(param_1 + 0xf8);
-      }
-      if (*param_2 == 0x17) {
-        uVar11 = *(undefined4 *)(param_2 + 0xc);
-      }
-      else {
-        uVar11 = 0;
-      }
-      local_200 = (longlong *)CONCAT44(local_200._4_4_,DAT_6);
-      memset(&local_178,0,0xa0);
-      uVar16 = 0;
-      local_138 = local_208;
-      local_160 = 0;
-      local_158 = 0;
-      if (local_1f0 == (undefined4 *)0x0) {
-        local_170 = local_1f8;
-      }
-      else {
-        local_178 = local_1f0;
-      }
-      plVar12 = plVar5;
-      if (plVar5 == (longlong *)0x0) {
-        local_120 = 0;
-        local_128 = 0;
-        plVar12 = local_130;
-      }
-      local_130 = plVar12;
-      local_dc = local_212;
-      local_da = local_210;
-      local_e0 = local_200._0_4_;
-      local_f8 = local_198;
-      local_168 = uVar17;
-      local_140 = uVar11;
-      if (*(code **)(plVar4[6] + 0x40) == IpNlpJoinPath) {
-        if (local_100 == (longlong *)0x0) {
-          uVar10 = IppJoinPath(*(undefined8 *)plVar4[5],&local_178);
-          goto LAB_7;
-        }
-        _IppReferencePath();
-        plVar13 = (longlong *)(uVar16 & 0xffffffff);
-      }
-      else {
-        uVar10 = (**(code **)(plVar4[6] + 0x40))((undefined8 *)plVar4[5],&local_178);
-LAB_7:
-        plVar13 = (longlong *)(ulonglong)uVar10;
-      }
-      local_200 = local_100;
-      plVar12 = local_100;
-      if ((int)plVar13 < 0) {
-        if (plVar4 != local_1e0) {
-          _InetDereferenceAf();
-        }
-        goto LAB_0;
+      *(undefined1 **)(puVar10 + 0x48) = puVar10 + 0x50;
+      *(undefined1 **)(puVar10 + 0x40) = puVar10 + 0x60;
+      *(undefined2 **)(puVar10 + 0x30) = &local_128;
+      *(undefined2 **)(puVar10 + 0x28) = &local_a8;
+      *(undefined8 *)(puVar10 + 0x20) = uVar3;
+      *(undefined8 *)(puVar10 + -8) = 0x1401649a8;
+      iVar8 = InetInspectConnectRequest
+                        (param_2,UdpConnectRedirectCallback,*(undefined8 *)(puVar10 + 0x58),0x11);
+      if (iVar8 != 0x103) {
+        *(undefined8 *)(puVar10 + 0x28) = *(undefined8 *)(puVar10 + 0x60);
+        *(undefined2 **)(puVar10 + 0x20) = &local_128;
+        *(undefined8 *)(puVar10 + -8) = 0x1401649db;
+        UdpConnectRedirectCallback(*(undefined8 *)(puVar10 + 0x58),iVar8,puVar10[0x50],&local_a8);
+        iVar8 = 0x103;
       }
     }
-    local_1b0 = 0;
-    local_1b8 = local_d8;
-    local_1c0 = 0;
-    local_1c8 = plVar12;
-    if (*(code **)(plVar4[6] + 0x50) == IpNlpQueryPathInformation) {
-      iVar3 = IpNlpQueryPathInformation();
-    }
-    else {
-      iVar3 = (**(code **)(plVar4[6] + 0x50))(&local_1c8);
-    }
-    if (-1 < iVar3) {
-      local_20c = (int)local_1b0;
-    }
-    uVar6 = *(uint *)((longlong)plVar12 + 0xc);
-    uVar10 = (**(code **)(UdpRssHash + 8))
-                       ((short)plVar4[3],*(undefined2 *)(param_1 + 0xa8),local_218[0]);
-    uVar10 = uVar10 ^ uVar6;
-    plVar12 = local_200;
   }
-  local_1d0 = *(longlong *)(param_1 + 0x128);
-  local_1e8 = *(undefined8 *)(param_1 + 0x138);
-  local_1d8 = *(longlong *)(param_1 + 0x130);
-  *(short *)(param_1 + 0x118) = local_218[0];
-  *(longlong **)(param_1 + 0x128) = plVar12;
-  *(longlong **)(param_1 + 0x138) = plVar4;
-  *(uint *)(param_1 + 0x11c) = uVar10;
-  if (param_2 == (short *)0x0) {
-    *(undefined8 *)(param_1 + 0x130) = 0;
-    *(undefined8 *)(param_1 + 0x120) = 0;
-  }
-  else {
-    *(undefined8 *)(param_1 + 0x130) = local_68;
-    *(undefined4 *)(param_1 + 0x120) = local_5c;
-    uVar10 = *(uint *)(param_1 + 0x18);
-    uVar6 = -(uint)(local_60 != '\0') & 0x200000;
-    *(uint *)(param_1 + 0x18) = uVar10 & 0xffdfffff | uVar6;
-    if ((local_20c == 0) && (((short)plVar4[3] != 0x17 || (local_5f == '\0')))) {
-      uVar7 = 0;
-    }
-    else {
-      uVar7 = 0x400000;
-    }
-    *(uint *)(param_1 + 0x18) = uVar10 & 0xff9fffff | uVar6 | uVar7;
-    UdpCacheDefaultUsoInformation(param_1);
-    local_1c8 = (longlong *)plVar4[5];
-    local_1a0 = 0;
-    local_1a8 = 0x11;
-    local_1c0 = 0;
-    local_1b8 = (undefined1 *)**(longlong **)(*plVar12 + 0x10);
-    local_1b0 = plVar12[2];
-    if (*(code **)(plVar4[6] + 8) == IpNlpChecksumDatagram) {
-      uVar2 = IpNlpChecksumDatagram();
-    }
-    else {
-      uVar2 = (**(code **)(plVar4[6] + 8))(&local_1c8);
-    }
-    *(undefined2 *)(param_1 + 0x11a) = uVar2;
-    uVar11 = RtlCompute37Hash(*(undefined4 *)(param_1 + 0x144),*(undefined8 *)(*local_200 + 0x10),
-                              *(undefined2 *)(*(longlong *)(param_1 + 0x138) + 0x48));
-    *(undefined4 *)(param_1 + 0x140) = uVar11;
-    uVar11 = RtlCompute37Hash(uVar11,plVar12 + 2,
-                              *(undefined2 *)(*(longlong *)(param_1 + 0x138) + 0x48));
-    *(undefined4 *)(param_1 + 0x140) = uVar11;
-    uVar11 = RtlCompute37Hash(uVar11,local_218,2);
-    *(undefined4 *)(param_1 + 0x140) = uVar11;
-  }
-  if ((plVar5 != (longlong *)0x0) && (plVar4 = *(longlong **)(param_1 + 0x68), plVar5 != plVar4)) {
-    *(longlong **)(param_1 + 0x68) = plVar5;
-    plVar5 = plVar4;
-  }
-  if ((param_2 == (short *)0x0) || (local_214 == '\0')) {
-    if ((*(uint *)(param_1 + 0x18) >> 0xb & 1) != 0) {
-      *(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) & 0xfffff7ff;
-    }
-  }
-  else {
-    *(uint *)(param_1 + 0x18) = *(uint *)(param_1 + 0x18) | 0x800;
-  }
-LAB_1:
-  KeReleaseInStackQueuedSpinLock(&local_190);
-  uVar17 = local_1e8;
-  if (local_1d8 != 0) {
-    InetDereferenceNextHopAf(local_1e8);
-  }
-  if (local_1d0 != 0) {
-    InetLeavePathAf(uVar17);
-    _InetDereferenceAf(uVar17);
-  }
-  if (plVar5 != (longlong *)0x0) {
-    InetDereferenceLocalAddressAf(*(undefined8 *)(param_1 + 0x70),plVar5);
-  }
-  return plVar13;
+LAB_0:
+  *(undefined8 *)(puVar10 + -8) = 0x1401649fd;
+  return iVar8;
 }
 

```


# Modified (No Code Changes)


*Slightly modified functions have no code changes, rather differnces in:*
- refcount
- length
- called
- calling
- name
- fullname

## FlpInterfaceAcquireWriteLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlpInterfaceAcquireWriteLock|FlpInterfaceAcquireWriteLock|
|fullname|FlpInterfaceAcquireWriteLock|FlpInterfaceAcquireWriteLock|
|`refcount`|36|35|
|length|28|28|
|called|NDIS.SYS::NdisAcquireRWLockWrite|NDIS.SYS::NdisAcquireRWLockWrite|
|`calling`|<details><summary>Expand for full list:<br>Fl8AddGroup<br>Fl8DeleteGroup<br>Fl8pPCFControlInterface<br>Fl8pPCFSerializedControlUnderLock<br>FlRdmaBindAdapter<br>FlRdmaPnpEvent<br>FlRdmapNSINotificationWorkerRoutine<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlStatus<br>FlpAddSubInterfaceComplete</summary>FlpAddWolPatternEntryToInterface<br>FlpCleanupWolPatternEntries<br>FlpDeleteInterface<br>FlpFlushQueuedPmRemoveOids<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpGetFirstClientInterface<br>FlpGetNextClientInterface<br>FlpOpenAdapterComplete<br>FlpQueueWolPatternEntryDelete<br>FlpResetWolPatternEntries<br>FlpSerializedNdisRequest<br>FlpSerializedNdisRequestWorkerRoutine<br>FlpSetArpNDOffload<br>FlpTryToEnqueuePmRemoveOid<br>TlRdmaProviderCloseNDKAdapter<br>TlRdmaProviderOpenNDKAdapter</details>|<details><summary>Expand for full list:<br>Fl8DeleteGroup<br>Fl8pPCFControlInterface<br>Fl8pPCFSerializedControlUnderLock<br>FlRdmaBindAdapter<br>FlRdmaPnpEvent<br>FlRdmapNSINotificationWorkerRoutine<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlStatus<br>FlpAddSubInterfaceComplete<br>FlpAddWolPatternEntryToInterface</summary>FlpCleanupWolPatternEntries<br>FlpDeleteInterface<br>FlpFlushQueuedPmRemoveOids<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpGetFirstClientInterface<br>FlpGetNextClientInterface<br>FlpOpenAdapterComplete<br>FlpQueueWolPatternEntryDelete<br>FlpResetWolPatternEntries<br>FlpSerializedNdisRequest<br>FlpSerializedNdisRequestWorkerRoutine<br>FlpSetArpNDOffload<br>FlpTryToEnqueuePmRemoveOid<br>TlRdmaProviderCloseNDKAdapter<br>TlRdmaProviderOpenNDKAdapter</details>|
|paramcount|0|0|
|`address`|140049588|14010344c|
|sig|undefined FlpInterfaceAcquireWriteLock(void)|undefined FlpInterfaceAcquireWriteLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlpInterfaceAcquireWriteLock Calling Diff


```diff
--- FlpInterfaceAcquireWriteLock calling
+++ FlpInterfaceAcquireWriteLock calling
@@ -1 +0,0 @@
-Fl8AddGroup
```


## NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeReleaseInStackQueuedSpinLockFromDpcLevel|KeReleaseInStackQueuedSpinLockFromDpcLevel|
|fullname|NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel|NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel|
|`refcount`|299|300|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>CreateExclusion<br>EQoSGetAppName<br>EQoSGetQoSProfileFlowHandle<br>EQoSUpdateQoSProfile<br>FUN_1401c5bca<br>FUN_1401c911d<br>FUN_1401d1d06<br>FUN_1401d262c<br>Icmpv4HandleRouterAdvertisement<br>InetFindAndReferenceAf<br>InetLookupPortEndpoint</summary>IpEnumerateAllInterfaces<br>IpFlcUpdateSubInterface<br>IpGetAllInterfaceParameters<br>IpNlpConfirmForwardReachability<br>IpNlpSetSessionInfo<br>IppAddAutoConfiguredRoutesForAddress<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveSubinterfacesProcessorContext<br>IppAddressSetGetNextExpirationTick<br>IppAddressSetTimeout<br>IppCommitSetAllLocalAddressParameters<br>IppCommitSetAllSubInterfaceParameters<br>IppCompartmentSetGetNextExpirationTick<br>IppCreateForwardPath<br>IppCreateSubInterface<br>IppDadAnnouncementGetNextExpirationTick<br>IppDadAnnouncementTimeout<br>IppDeleteAutoConfiguredRoutesForAddress<br>IppDeleteNeighbor<br>IppDeleteNeighborsUnderNSLock<br>IppDeleteSubInterface<br>IppEnumerateInterfaceAddresses<br>IppEphemeralLoopbackAddressSetTimeout<br>IppEvaluateSortInformation<br>IppFillInterfaceData<br>IppFillUnicastRouteData<br>IppFindAddressInAddressSet<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAnySubInterfaceOnInterface<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindCompartmentById<br>IppFindInterfaceByIndex<br>IppFindInterfaceByLuid<br>IppFindInterfaceForThread<br>IppFindNeighborUnderNSLock<br>IppFindNextHopAtDpc<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateLocalEphemeralAddressAtDpc<br>IppFindOrCreateNeighborAtDpc<br>IppFindOrCreatePath<br>IppFindPath<br>IppForwardMulticastPackets<br>IppGarbageCollectLoopbackAddressSet<br>IppGetAllBestRouteParameters<br>IppGetCompartment<br>IppGetNeighborReachability<br>IppGetNextCompartment<br>IppGetNextHopFromPath<br>IppGetNextInterfaceForThread<br>IppGetNextRoute<br>IppGetRouteFromPath<br>IppGetRouteKey<br>IppGetThreadCompartmentInfo<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInsertNeighbor<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLinkLocalAddressConfigurationTimeout<br>IppLookupPrefixPolicy<br>IppMfeSetTimeOut<br>IppMorphNeighborAtDpc<br>IppMulticastDiscoveryGetNextExpirationTick<br>IppNeighborSetTimeout<br>IppNeighborSolicitationWorker<br>IppPathSetTimeout<br>IppProbeNeighborReachability<br>IppPruneNeighborSet<br>IppResetNeighborsAtDpc<br>IppResetNeighborsUnderNSLock<br>IppRouteSetGetNextExpirationTick<br>IppRouteSetTimeout<br>IppSetAllNeighborParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetInterfaceMtuAtDpc<br>IppUpdateBestSourceAddress<br>IppUpdateCompartment<br>IppUpdateUnicastRoute<br>Ipv4SetAllRouteParameters<br>Ipv4pRouterDiscoveryTimeout<br>Ipv6SetAllRouteParameters<br>Ipv6pHandleAnycastAdvertisementTimeout<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pRouterDiscoveryTimeout<br>Ipv6pRouterDnsGetNextExpirationTick<br>Ipv6pRouterDnsTimeout<br>Ipv6pRouterPref64GetNextExpirationTick<br>Ipv6pRouterPref64Timeout<br>QimInspectCreateEndpoint<br>QimMatchPolicyForTCPConnection<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointRequestInspectComplete<br>RawCloseEndpoint<br>RawReceiveDatagrams<br>RtlAcquireReadLock<br>RtlAcquireReadLockAtDpcLevel<br>RtlAcquireScalableReadLock<br>RtlAcquireScalableReadLockAtDpcLevel<br>TcpCloseSynTcb<br>TcpConnectionRundown<br>TcpCreateAndAcceptTcb<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateTimeWaitTcb<br>TcpDelayOrScheduleAck<br>TcpDequeueTcbSend<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpGetAndReadLockPartitionAtDpcLevel<br>TcpGetAndWriteLockPartitionAtDpcLevel<br>TcpInsertStandbySynTcb<br>TcpInsertSynTcb<br>TcpInsertTcb<br>TcpInspectReceive<br>TcpMatchControlReceive<br>TcpMatchReceive<br>TcpMppIsCandidate<br>TcpPartitionGetNextExpirationTick<br>TcpPartitionStartOrContinueMppEvaluation<br>TcpPartitionStopMppEvaluation<br>TcpPortPoolReferenceFunction<br>TcpPortPropertyGetAllParameters<br>TcpProcessExpiredSynTcbTimers<br>TcpProcessExpiredTcbTimers<br>TcpProcessExpiredTimeWaitTcbTimers<br>TcpProcessFastDatagramBatch<br>TcpRemoveTcb<br>TcpReplaceTimeWaitTcbWithSynTcb<br>TcpReplaceTimeWaitTcbWithTcb<br>TcpResizeHashTablesForProcessor<br>TcpSelectWildcardPort<br>TcpShutdownSynTcb<br>TcpShutdownTcb<br>TcpShutdownTimeWaitTcb<br>TcpStartTimerSynTcb<br>TcpStartTimerTcbInternal<br>TcpStartTimerTimeWaitTcb<br>TcpTcbAcceptDatagram<br>TcpTcbCarefulDatagram<br>TcpTcbFastDatagram<br>TcpTcbReceive<br>TcpTcbSend<br>TcpUpdateIsnGenerator<br>TlShimCacheMatchedFilterList<br>TlShimLookupLayerCache<br>UdpCountEndpoints<br>UdpEnumerateEndpoints<br>UdpPortPoolReferenceFunction<br>UdpReceiveDatagrams<br>UdpSendMessages<br>WfpAleAcquireEndpoint<br>WfpAleAcquireEndpointContextFromHandle<br>WfpAleFindTupleStateEntry<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4</details>|<details><summary>Expand for full list:<br>CreateExclusion<br>EQoSGetAppName<br>EQoSGetQoSProfileFlowHandle<br>EQoSUpdateQoSProfile<br>FUN_1401c4f0e<br>FUN_1401cb2e1<br>FUN_1401d1c68<br>FUN_1401d3e1c<br>Icmpv4HandleRouterAdvertisement<br>InetFindAndReferenceAf<br>InetLookupPortEndpoint</summary>IpEnumerateAllInterfaces<br>IpFlcUpdateSubInterface<br>IpGetAllInterfaceParameters<br>IpNlpConfirmForwardReachability<br>IpNlpSetSessionInfo<br>IppAddAutoConfiguredRoutesForAddress<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveSubinterfacesProcessorContext<br>IppAddressSetGetNextExpirationTick<br>IppAddressSetTimeout<br>IppCommitSetAllLocalAddressParameters<br>IppCommitSetAllSubInterfaceParameters<br>IppCompartmentSetGetNextExpirationTick<br>IppCreateForwardPath<br>IppCreateSubInterface<br>IppDadAnnouncementGetNextExpirationTick<br>IppDadAnnouncementTimeout<br>IppDeleteAutoConfiguredRoutesForAddress<br>IppDeleteNeighbor<br>IppDeleteNeighborsUnderNSLock<br>IppDeleteSubInterface<br>IppEnumerateInterfaceAddresses<br>IppEphemeralLoopbackAddressSetTimeout<br>IppEvaluateSortInformation<br>IppFillInterfaceData<br>IppFillUnicastRouteData<br>IppFindAddressInAddressSet<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAnySubInterfaceOnInterface<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindCompartmentById<br>IppFindInterfaceByIndex<br>IppFindInterfaceByLuid<br>IppFindInterfaceForThread<br>IppFindNeighborUnderNSLock<br>IppFindNextHopAtDpc<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateLocalEphemeralAddressAtDpc<br>IppFindOrCreateNeighborAtDpc<br>IppFindOrCreatePath<br>IppFindPath<br>IppForwardMulticastPackets<br>IppGarbageCollectLoopbackAddressSet<br>IppGetAllBestRouteParameters<br>IppGetCompartment<br>IppGetNeighborReachability<br>IppGetNextCompartment<br>IppGetNextHopFromPath<br>IppGetNextInterfaceForThread<br>IppGetNextRoute<br>IppGetRouteFromPath<br>IppGetRouteKey<br>IppGetThreadCompartmentInfo<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInsertNeighbor<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLinkLocalAddressConfigurationTimeout<br>IppLookupPrefixPolicy<br>IppMfeSetTimeOut<br>IppMorphNeighborAtDpc<br>IppMulticastDiscoveryGetNextExpirationTick<br>IppNeighborSetTimeout<br>IppNeighborSolicitationWorker<br>IppPathSetTimeout<br>IppProbeNeighborReachability<br>IppPruneNeighborSet<br>IppResetNeighborsAtDpc<br>IppResetNeighborsUnderNSLock<br>IppRouteSetGetNextExpirationTick<br>IppRouteSetTimeout<br>IppSetAllNeighborParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetInterfaceMtuAtDpc<br>IppUpdateBestSourceAddress<br>IppUpdateCompartment<br>IppUpdateUnicastRoute<br>Ipv4SetAllRouteParameters<br>Ipv4pRouterDiscoveryTimeout<br>Ipv6SetAllRouteParameters<br>Ipv6pHandleAnycastAdvertisementTimeout<br>Ipv6pHandleNeighborSolicitation<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pRouterDiscoveryTimeout<br>Ipv6pRouterDnsGetNextExpirationTick<br>Ipv6pRouterDnsTimeout<br>Ipv6pRouterPref64GetNextExpirationTick<br>Ipv6pRouterPref64Timeout<br>QimInspectCreateEndpoint<br>QimMatchPolicyForTCPConnection<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointRequestInspectComplete<br>RawCloseEndpoint<br>RawReceiveDatagrams<br>RtlAcquireReadLock<br>RtlAcquireReadLockAtDpcLevel<br>RtlAcquireScalableReadLock<br>RtlAcquireScalableReadLockAtDpcLevel<br>TcpCloseSynTcb<br>TcpConnectionRundown<br>TcpCreateAndAcceptTcb<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateTimeWaitTcb<br>TcpDelayOrScheduleAck<br>TcpDequeueTcbSend<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpGetAndReadLockPartitionAtDpcLevel<br>TcpGetAndWriteLockPartitionAtDpcLevel<br>TcpInsertStandbySynTcb<br>TcpInsertSynTcb<br>TcpInsertTcb<br>TcpInspectReceive<br>TcpMatchControlReceive<br>TcpMatchReceive<br>TcpMppIsCandidate<br>TcpPartitionGetNextExpirationTick<br>TcpPartitionStartOrContinueMppEvaluation<br>TcpPartitionStopMppEvaluation<br>TcpPortPoolReferenceFunction<br>TcpPortPropertyGetAllParameters<br>TcpProcessExpiredSynTcbTimers<br>TcpProcessExpiredTcbTimers<br>TcpProcessExpiredTimeWaitTcbTimers<br>TcpProcessFastDatagramBatch<br>TcpRemoveTcb<br>TcpReplaceTimeWaitTcbWithSynTcb<br>TcpReplaceTimeWaitTcbWithTcb<br>TcpResizeHashTablesForProcessor<br>TcpSelectWildcardPort<br>TcpShutdownSynTcb<br>TcpShutdownTcb<br>TcpShutdownTimeWaitTcb<br>TcpStartTimerSynTcb<br>TcpStartTimerTcbInternal<br>TcpStartTimerTimeWaitTcb<br>TcpTcbAcceptDatagram<br>TcpTcbCarefulDatagram<br>TcpTcbFastDatagram<br>TcpTcbReceive<br>TcpTcbSend<br>TcpUpdateIsnGenerator<br>TlShimCacheMatchedFilterList<br>TlShimLookupLayerCache<br>UdpCountEndpoints<br>UdpEnumerateEndpoints<br>UdpPortPoolReferenceFunction<br>UdpReceiveDatagrams<br>UdpSendMessages<br>WfpAleAcquireEndpoint<br>WfpAleAcquireEndpointContextFromHandle<br>WfpAleFindTupleStateEntry<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4</details>|
|paramcount|0|0|
|address|EXTERNAL:000000f3|EXTERNAL:000000f3|
|sig|undefined KeReleaseInStackQueuedSpinLockFromDpcLevel(void)|undefined KeReleaseInStackQueuedSpinLockFromDpcLevel(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel Calling Diff


```diff
--- NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel calling
+++ NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel calling
@@ -5,4 +5,4 @@
-FUN_1401c5bca
-FUN_1401c911d
-FUN_1401d1d06
-FUN_1401d262c
+FUN_1401c4f0e
+FUN_1401cb2e1
+FUN_1401d1c68
+FUN_1401d3e1c
@@ -98,0 +99 @@
+Ipv6pHandleNeighborSolicitation
```


## RtlAcquireWriteLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.82|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|RtlAcquireWriteLock|RtlAcquireWriteLock|
|fullname|RtlAcquireWriteLock|RtlAcquireWriteLock|
|`refcount`|111|112|
|length|34|34|
|called|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock|
|`calling`|<details><summary>Expand for full list:<br>CleanupFilterData<br>DeleteExclusion<br>EQoSAttachQoSProvider<br>EQoSCleanupPolicyTablesOnModuleStop<br>EQoSCreateActiveStoreNetPolicy<br>EQoSDeReferenceQoSpContext<br>EQoSDeleteActiveStoreNetPolicy<br>EQoSDeleteAppName<br>EQoSDeletePolicyOwner<br>EQoSDetachQoSProvider<br>EQoSDispatchIoctl</summary>EQoSReferenceQoSFlow<br>EQoSUpdateActiveStoreNetPolicy<br>EQoSpTrimUserPolicyList<br>FUN_1400a2d4f<br>FUN_1401ce0aa<br>FUN_1401ce856<br>FUN_1401d1347<br>FUN_1401d9219<br>FUN_1401dd5aa<br>FllpCreateLoopbackInterface<br>FllpDeleteLoopbackInterfaces<br>Icmpv4HandleRouterSolicitation<br>InetCreateAf<br>InetCreateClient<br>InetDeleteClient<br>InetInitializeSmartPortRange<br>IpDisableFlProviderContext<br>IpFlcAddInterface<br>IpFlcUpdateInterface<br>IpFlcUpdateSubInterface<br>IpSetAllInterfaceUnprivilegedParameters<br>IpSetAllProxyNeighborParameters<br>IppAddAllMulticastReference<br>IppAddOrDeletePersistentRoutes<br>IppAddPromiscuousReference<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppCommitSetAllSubInterfaceParameters<br>IppConfigureIscsiAddress<br>IppDeleteSubInterface<br>IppDetachFlProviderComplete<br>IppFindOrCreateCompartmentByIdEx<br>IppHandleWolContextEviction<br>IppInterfaceListProcessorAddRemoveHandler<br>IppNotifyRouteChangeAtPassive<br>IppRemoveAllMulticastReference<br>IppRemovePromiscuousReference<br>IppResetNeighbors<br>IppResetPrefixPolicy<br>IppResolveNeighbor<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetOffloadEncapsulation<br>IppUpdateAllProtocolCompartments<br>IppValidateSettingsOnReconnectWorker<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbInterfaceChangeCallback<br>Ipv4AttachFlProvider<br>Ipv4pHandleRedirect<br>Ipv6pAddPotentialRouter<br>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pRemovePotentialRouter<br>IsReusableAssignment<br>PrepareAndStoreFilterData<br>QimInspectBindEndpoint<br>QimInspectSetQoS<br>RawContinueSetDestinationEndpoint<br>RawSendMessagesOnPathCreation<br>RawSetDestinationEndpoint<br>TcpCleanupIsnGenerator<br>TcpCleanupPartitionModule<br>TcpCleanupSynTcb<br>TcpEnumerateListeners<br>TcpGetAndWriteLockPartition<br>TcpHandleSockOptSioWakeListener<br>TcpInitializeIsnGenerator<br>TcpInspectConnectionOnListener<br>TcpPortPropertyDeleteAllParameters<br>TcpPortPropertyResetAllObjects<br>TcpPortPropertySetAllParameters<br>TcpRepartitionState<br>TcpResumeConnectionOnListener<br>TcpSetSockOptListener<br>UQoSAttachClient<br>UQoSDetachClient<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEnumerateEndpoints<br>UdpHandleSockOptSioWake<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSendMessagesDatagramsComplete<br>UdpSendMessagesOnPath<br>WfpAcquireSmallWriteLock<br>_InetDeleteAf</details>|<details><summary>Expand for full list:<br>CleanupFilterData<br>DeleteExclusion<br>EQoSAttachQoSProvider<br>EQoSCleanupPolicyTablesOnModuleStop<br>EQoSCreateActiveStoreNetPolicy<br>EQoSDeReferenceQoSpContext<br>EQoSDeleteActiveStoreNetPolicy<br>EQoSDeleteAppName<br>EQoSDeletePolicyOwner<br>EQoSDetachQoSProvider<br>EQoSDispatchIoctl</summary>EQoSReferenceQoSFlow<br>EQoSUpdateActiveStoreNetPolicy<br>EQoSpTrimUserPolicyList<br>FUN_1400be69f<br>FUN_1401c54c0<br>FUN_1401cf420<br>FUN_1401d3933<br>FUN_1401d91e7<br>FUN_1401dd7e6<br>FllpCreateLoopbackInterface<br>FllpDeleteLoopbackInterfaces<br>Icmpv4HandleRouterSolicitation<br>InetCreateAf<br>InetCreateClient<br>InetDeleteClient<br>InetInitializeSmartPortRange<br>IpDisableFlProviderContext<br>IpFlcAddInterface<br>IpFlcUpdateInterface<br>IpFlcUpdateSubInterface<br>IpSetAllInterfaceUnprivilegedParameters<br>IpSetAllProxyNeighborParameters<br>IppAddAllMulticastReference<br>IppAddOrDeletePersistentRoutes<br>IppAddPromiscuousReference<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppCommitSetAllSubInterfaceParameters<br>IppConfigureIscsiAddress<br>IppDeleteSubInterface<br>IppDetachFlProviderComplete<br>IppFindOrCreateCompartmentByIdEx<br>IppHandleWolContextEviction<br>IppInterfaceListProcessorAddRemoveHandler<br>IppNotifyRouteChangeAtPassive<br>IppRemoveAllMulticastReference<br>IppRemovePromiscuousReference<br>IppResetNeighbors<br>IppResetPrefixPolicy<br>IppResolveNeighbor<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetOffloadEncapsulation<br>IppUpdateAllProtocolCompartments<br>IppValidateSettingsOnReconnectWorker<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbInterfaceChangeCallback<br>Ipv4AttachFlProvider<br>Ipv4pHandleRedirect<br>Ipv6pAddPotentialRouter<br>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pRemovePotentialRouter<br>IsReusableAssignment<br>PrepareAndStoreFilterData<br>QimInspectBindEndpoint<br>QimInspectSetQoS<br>RawContinueSetDestinationEndpoint<br>RawSendMessagesOnPathCreation<br>RawSetDestinationEndpoint<br>TcpCleanupIsnGenerator<br>TcpCleanupPartitionModule<br>TcpCleanupSynTcb<br>TcpEnumerateListeners<br>TcpGetAndWriteLockPartition<br>TcpHandleSockOptSioWakeListener<br>TcpInitializeIsnGenerator<br>TcpInspectConnectionOnListener<br>TcpPortPropertyDeleteAllParameters<br>TcpPortPropertyResetAllObjects<br>TcpPortPropertySetAllParameters<br>TcpRepartitionState<br>TcpResumeConnectionOnListener<br>TcpSetSockOptListener<br>UQoSAttachClient<br>UQoSDetachClient<br>UdpConnectRedirectObsolete<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEnumerateEndpoints<br>UdpHandleSockOptSioWake<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSendMessagesDatagramsComplete<br>UdpSendMessagesOnPath<br>WfpAcquireSmallWriteLock<br>_InetDeleteAf</details>|
|paramcount|0|0|
|`address`|1400b3a00|1400c6170|
|sig|undefined RtlAcquireWriteLock(void)|undefined RtlAcquireWriteLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### RtlAcquireWriteLock Calling Diff


```diff
--- RtlAcquireWriteLock calling
+++ RtlAcquireWriteLock calling
@@ -15,6 +15,6 @@
-FUN_1400a2d4f
-FUN_1401ce0aa
-FUN_1401ce856
-FUN_1401d1347
-FUN_1401d9219
-FUN_1401dd5aa
+FUN_1400be69f
+FUN_1401c54c0
+FUN_1401cf420
+FUN_1401d3933
+FUN_1401d91e7
+FUN_1401dd7e6
@@ -90,0 +91 @@
+UdpConnectRedirectObsolete
```


## WfpReleaseSpinLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.71|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WfpReleaseSpinLock|WfpReleaseSpinLock|
|fullname|WfpReleaseSpinLock|WfpReleaseSpinLock|
|`refcount`|25|24|
|length|82|82|
|called|NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|
|`calling`|<details><summary>Expand for full list:<br>IPSecBfeStateChangeCallback<br>IPSecGetSaScheduleCpuIndex<br>IPSecInitializeSchedulerModule<br>IPSecOptionalUpdateSaCpuSchedule<br>IPSecProcessBfeStopNotification<br>IPSecUpdateSchedulerInfo<br>IPsecGetRemoteTokensFromFwdState<br>IPsecUpdateFwdStateTokenInfo<br>IdpCheckAndFireStartEvent<br>IdpCheckAndFireStopEvent<br>ProcessOutTransportStackIndicationFast</summary>WfpAleAuthorizeSend<br>WfpAlepAuthorizeSendCompletion<br>WfpCompleteOrderEntry<br>WfpCreateAndInsertOrderEntry<br>WfpDerefOrderEntry<br>WfpDestroyNexthopIfMap<br>WfpDrainOrderList<br>WfpIpAddressCheckAndAdd<br>WfpIpAddressCheckAndDelete<br>WfpProcessInTransportStackIndicationFast<br>WfpRefOrderEntry</details>|<details><summary>Expand for full list:<br>IPSecBfeStateChangeCallback<br>IPSecGetSaScheduleCpuIndex<br>IPSecInitializeSchedulerModule<br>IPSecOptionalUpdateSaCpuSchedule<br>IPSecProcessBfeStopNotification<br>IPSecUpdateSchedulerInfo<br>IPsecGetRemoteTokensFromFwdState<br>IPsecUpdateFwdStateTokenInfo<br>IdpCheckAndFireStartEvent<br>IdpCheckAndFireStopEvent<br>ProcessOutTransportStackIndicationFast</summary>WfpAlepAuthorizeSendCompletion<br>WfpCompleteOrderEntry<br>WfpCreateAndInsertOrderEntry<br>WfpDerefOrderEntry<br>WfpDestroyNexthopIfMap<br>WfpDrainOrderList<br>WfpIpAddressCheckAndAdd<br>WfpIpAddressCheckAndDelete<br>WfpProcessInTransportStackIndicationFast<br>WfpRefOrderEntry</details>|
|paramcount|0|0|
|`address`|1400b35c4|1400c3a2c|
|sig|undefined WfpReleaseSpinLock(void)|undefined WfpReleaseSpinLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WfpReleaseSpinLock Calling Diff


```diff
--- WfpReleaseSpinLock calling
+++ WfpReleaseSpinLock calling
@@ -12 +11,0 @@
-WfpAleAuthorizeSend
```


## IN6ADDR_SETV4MAPPED

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IN6ADDR_SETV4MAPPED|IN6ADDR_SETV4MAPPED|
|fullname|IN6ADDR_SETV4MAPPED|IN6ADDR_SETV4MAPPED|
|`refcount`|14|13|
|length|189|189|
|called|||
|`calling`|InetFormatLocalSockAddrAtDispatchLevel<br>InetFormatSockAddrAtDispatchLevel<br>TcpBindEndpointRequestInspectComplete<br>TcpIoControlEndpoint<br>TcpResolveConnectRequestToPathAndAf<br>UdpBindEndpointRequestInspectComplete<br>UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpEnumerateEndpoints<br>UdpIoControlEndpoint|InetFormatLocalSockAddrAtDispatchLevel<br>InetFormatSockAddrAtDispatchLevel<br>TcpBindEndpointRequestInspectComplete<br>TcpIoControlEndpoint<br>TcpResolveConnectRequestToPathAndAf<br>UdpBindEndpointRequestInspectComplete<br>UdpConnectRedirectCallback<br>UdpEnumerateEndpoints<br>UdpIoControlEndpoint|
|paramcount|0|0|
|`address`|140057670|14002a0c0|
|sig|undefined IN6ADDR_SETV4MAPPED(void)|undefined IN6ADDR_SETV4MAPPED(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IN6ADDR_SETV4MAPPED Calling Diff


```diff
--- IN6ADDR_SETV4MAPPED calling
+++ IN6ADDR_SETV4MAPPED calling
@@ -7 +6,0 @@
-UdpConnectRedirect
```


## RtlAcquireReadLockAtDpcLevel

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.83|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|RtlAcquireReadLockAtDpcLevel|RtlAcquireReadLockAtDpcLevel|
|fullname|RtlAcquireReadLockAtDpcLevel|RtlAcquireReadLockAtDpcLevel|
|`refcount`|78|79|
|length|95|95|
|called|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KeTestSpinLock|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KeTestSpinLock|
|`calling`|<details><summary>Expand for full list:<br>EQoSCompareNetPolicyPriority<br>EQoSGetQoSProfileFlowHandle<br>EQoSPolicyFindExactMatch<br>EQoSPolicyUDPPartialMatch<br>EQoSQueryActiveStoreNetPolicy<br>EQoSQueryAllActiveStoreNetPolicies<br>EQoSUpdateQoSProfile<br>EQoSpCreateQoSFlow<br>EQoSpReturnUrlPolicy<br>Icmpv4HandleRouterAdvertisement<br>InetInspectQueryQoSFlowHandle</summary>InetResolveSetSockOptSs<br>InetResolveSockAddrToRemoteAddressAndAf<br>IpEnumerateAllInterfaces<br>IpEnumerateAllNeighbors<br>IpFlcReceivePreValidatedPackets<br>IpNlpFilterDatagramBySessionInformation<br>IpNlpFilterIndicationBySessionInformation<br>IpNlpReferenceCompartment<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppCompartmentSetGetNextExpirationTick<br>IppCompartmentSetTimeout<br>IppDispatchSendPacketHelper<br>IppEvaluateSortInformation<br>IppFindDefaultInterfaceForZone<br>IppFindOrCreateNeighborUnderLock<br>IppFindSourceAtDpcHelper<br>IppForwardMulticastPackets<br>IppGetAllBestRouteParameters<br>IppGetNextInterface<br>IppGetNextSubInterfaceOnInterface<br>IppInspectInjectRawSend<br>IppInspectInjectTlSend<br>IppLinkLocalAddressConfigurationGetNextExpirationTick<br>IppMulticastDiscoveryVersionGetNextExpirationTick<br>IppNeighborSetGetNextExpirationTick<br>IppNeighborSetTimeout<br>IppNotifyInterfaceChangeToNlClients<br>IppUpdateAddressTypeAtDpc<br>Ipv4pInterfaceSetGetNextExpirationTick<br>Ipv4pInterfaceSetTimeout<br>Ipv6GetAllRouterInformation<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pInterfaceSetTimeout<br>RawDeliverDatagrams<br>TcpEnumerateConnections<br>TcpInspectListenerRedirect<br>TcpListenerReceive<br>TcpMatchReceive<br>TcpSetSockOptEndpoint<br>TcpTcbHeaderSend<br>TcpipEvaluateTlFilter<br>UdpDeliverDatagrams<br>UdpGetAllGlobalParameters<br>UdpIoControlEndpoint<br>UdpPortPoolReferenceFunction<br>UdpReceiveControlMessages<br>UdpSendMessages</details>|<details><summary>Expand for full list:<br>EQoSCompareNetPolicyPriority<br>EQoSGetQoSProfileFlowHandle<br>EQoSPolicyFindExactMatch<br>EQoSPolicyUDPPartialMatch<br>EQoSQueryActiveStoreNetPolicy<br>EQoSQueryAllActiveStoreNetPolicies<br>EQoSUpdateQoSProfile<br>EQoSpCreateQoSFlow<br>EQoSpReturnUrlPolicy<br>Icmpv4HandleRouterAdvertisement<br>InetInspectQueryQoSFlowHandle</summary>InetResolveSetSockOptSs<br>InetResolveSockAddrToRemoteAddressAndAf<br>IpEnumerateAllInterfaces<br>IpEnumerateAllNeighbors<br>IpFlcReceivePreValidatedPackets<br>IpNlpFilterDatagramBySessionInformation<br>IpNlpFilterIndicationBySessionInformation<br>IpNlpReferenceCompartment<br>IpNlpSetSessionInfo<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppCompartmentSetGetNextExpirationTick<br>IppCompartmentSetTimeout<br>IppDispatchSendPacketHelper<br>IppEvaluateSortInformation<br>IppFindDefaultInterfaceForZone<br>IppFindOrCreateNeighborUnderLock<br>IppFindSourceAtDpcHelper<br>IppForwardMulticastPackets<br>IppGetAllBestRouteParameters<br>IppGetNextInterface<br>IppGetNextSubInterfaceOnInterface<br>IppInspectInjectRawSend<br>IppInspectInjectTlSend<br>IppLinkLocalAddressConfigurationGetNextExpirationTick<br>IppMulticastDiscoveryVersionGetNextExpirationTick<br>IppNeighborSetGetNextExpirationTick<br>IppNeighborSetTimeout<br>IppNotifyInterfaceChangeToNlClients<br>IppUpdateAddressTypeAtDpc<br>Ipv4pInterfaceSetGetNextExpirationTick<br>Ipv4pInterfaceSetTimeout<br>Ipv6GetAllRouterInformation<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pInterfaceSetTimeout<br>RawDeliverDatagrams<br>TcpEnumerateConnections<br>TcpInspectListenerRedirect<br>TcpListenerReceive<br>TcpMatchReceive<br>TcpSetSockOptEndpoint<br>TcpTcbHeaderSend<br>TcpipEvaluateTlFilter<br>UdpDeliverDatagrams<br>UdpGetAllGlobalParameters<br>UdpIoControlEndpoint<br>UdpPortPoolReferenceFunction<br>UdpReceiveControlMessages<br>UdpSendMessages</details>|
|paramcount|0|0|
|`address`|14002e330|14007d640|
|sig|undefined RtlAcquireReadLockAtDpcLevel(void)|undefined RtlAcquireReadLockAtDpcLevel(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### RtlAcquireReadLockAtDpcLevel Calling Diff


```diff
--- RtlAcquireReadLockAtDpcLevel calling
+++ RtlAcquireReadLockAtDpcLevel calling
@@ -19,0 +20 @@
+IpNlpSetSessionInfo
```


## AleInspectAdjustModifiedLayerDataLocalAddress

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleInspectAdjustModifiedLayerDataLocalAddress|AleInspectAdjustModifiedLayerDataLocalAddress|
|fullname|AleInspectAdjustModifiedLayerDataLocalAddress|AleInspectAdjustModifiedLayerDataLocalAddress|
|`refcount`|3|2|
|length|99|99|
|called|||
|`calling`|AleInspectConnectRequest<br>AleInspectConnectRequestComplete|AleInspectConnectRequestComplete|
|paramcount|0|0|
|`address`|14016cf58|14016d098|
|sig|undefined AleInspectAdjustModifiedLayerDataLocalAddress(void)|undefined AleInspectAdjustModifiedLayerDataLocalAddress(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleInspectAdjustModifiedLayerDataLocalAddress Calling Diff


```diff
--- AleInspectAdjustModifiedLayerDataLocalAddress calling
+++ AleInspectAdjustModifiedLayerDataLocalAddress calling
@@ -1 +0,0 @@
-AleInspectConnectRequest
```


## memmove

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.82|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|memmove|memmove|
|fullname|memmove|memmove|
|`refcount`|362|361|
|length|537|537|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleInspectConnectRequest<br>AleInspectQueryOriginalDestination<br>AleRedirectRecordsDeserializeFromBuffer<br>AleRedirectRecordsSerializeToBuffer<br>AlepCacheConnectionPolicyRecord<br>AlepCreateAcceptRedirectRecord<br>AlepCreateRedirectRecord<br>BLFlushBatchOpContextEx<br>CreateNewEventEntry<br>EQoSAllocateHkeUrlSearch<br>EQoSCreatePolicyOwner</summary>EQoSCreatePolicyTable<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSSetNetPolicy<br>EQoSSetUrlEntry<br>EQoSpCounterSetCallback<br>EQoSpCreateAppName<br>EQoSpPolicyParseUrl<br>EQoSpReturnNetPolicy<br>EQoSpReturnUrlPolicy<br>EQoSpTrimUserPolicyList<br>EdpAuditLogApplicationLearningNetwork<br>FUN_14003a062<br>FUN_1400dcf09<br>FUN_1401c6b02<br>FUN_1401d6b03<br>FUN_1401d9a92<br>FUN_1401db80f<br>FUN_14028610e<br>FUN_1402862b8<br>FillIfEntryWithInterfaceInfo<br>Fl4tMapAddress<br>Fl4tpMapNonUnicastAddress<br>Fl6tMapAddress<br>Fl6tpMapNonUnicastAddress<br>Fl8AddGroup<br>FlBindAdapter<br>FlGetAllInterfaceParameters<br>FlGetAllInterfaceRemoteAddressParameters<br>FlIfFindOrCreateCompartment<br>FlIfProviderQueryInline<br>FlIfpGenerateVirtualInterfaceAlias<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlStatus<br>FlpAddLocalPortWolPattern<br>FlpAllocateInjectPacketChain<br>FlpCoalesceMulticastSet<br>FlpCreateTcpSynWolPattern<br>FlpCreateTcpWolPattern<br>FlpRestartPnpEvent<br>FlpSendPacketsHelper<br>FlpSetAddressWolPattern<br>FlpSetArpNDOffload<br>FlpSetTaskOffloadParameters<br>FlpSetWolPattern<br>FltAllocateAndCopyDlAddressForNblHelper<br>FltpInitializeInterface<br>FseGetCompleteMessage<br>FseMidlObjectDecode<br>FseProcessIncomingMessages<br>GetNextSuffixFromOption<br>IPSecFillAuthInfoV2<br>IPSecFillConfInfoV1<br>IPSecGenerateIV<br>IPSecInitConf<br>IPSecPlumbSa<br>IPSecSetupAhInitInboundOperationState<br>IPSecSetupEspInitInboundOperationState<br>IPsecGetRemoteTokensFromFwdState<br>IPsecInsertIPHeader<br>IgmppCreateMulticastDiscoveryReport<br>InetStartInspectionModule<br>InitializeTelemetryAssertsKMWorkerInternal<br>IpEnumerateAllNeighbors<br>IpFlcReturnNetworkAddressList<br>IpGetAllGlobalParameters<br>IpGetAllIcmpParameters<br>IpGetAllLocalMulticastAddressParameters<br>IpGetAllNeighborParameters<br>IpNlpFastContinueSendLoopbackDatagrams<br>IpNlpInheritSessionInfo<br>IpNlpQuerySessionInfo<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IpSecAhCompleteOutbound<br>IpSecEspAuthCompleteInbound<br>IpSecEspCompleteOutbound<br>IpSecEspInitOutbound<br>IpSetAllDisconnectInterfaceParameters<br>IppAddPrefixPolicy<br>IppAddSourcesToMulticastGroup<br>IppAddSourcesToMulticastSessionState<br>IppAddWolForAddress<br>IppAllocateIpsPacketChain<br>IppAllocatePathUnderLock<br>IppClearWolContext<br>IppConfigureIscsiTargetAndDefaultRoutes<br>IppCopyMfeKey<br>IppCopySendState<br>IppCreateClonePacketForRaw<br>IppCreateForwardPath<br>IppCreateLocalAddress<br>IppCreateMfe<br>IppCreateProxyNeighbor<br>IppCreateReassembly<br>IppCreateUnicastRoute<br>IppDadLogEvent<br>IppEnumerateAdaptiveTableEntry<br>IppEnumerateInterfaceAddresses<br>IppFillDestinationCmsg<br>IppFillNeighborParametersUnderLock<br>IppFillPacketInfoCmsg<br>IppFillPathInformation<br>IppFillPathRodUnderLock<br>IppFillUnicastRouteData<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindOrCreateGroupForFragment<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindOrCreateWolContext<br>IppGetAllLocalAddressParameters<br>IppGetForwardInjectionParameters<br>IppGetMulticastSessionStateSourceList<br>IppGetNextProxyNeighborOnInterface<br>IppInitializeNeighbor<br>IppInspectBuildHeaders<br>IppInspectInjectTlSend<br>IppLogMediaSenseEvent<br>IppLogPacketDiscard<br>IppMarkMulticastSourcesForQuery<br>IppNotifyAddressChangeAtPassive<br>IppNotifyEchoRequestChange<br>IppNotifyMfeChange<br>IppNotifyNeighborChangeAtPassive<br>IppPacketizeDatagrams<br>IppPacketizeDatagramsForHeaderBuild<br>IppParseSessionState<br>IppPktMonRegisterInterface<br>IppProcessAncillaryData<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppProcessRawData<br>IppProcessSessionState<br>IppQueueMulticastDiscoveryRecord<br>IppReverseGenericAddressArray<br>IppSendDatagramsCommon<br>IppSendError<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetMulticastSessionState<br>IppSetWolContext<br>IppSetWolParametersWorker<br>IppSortDestinationAddresses<br>IppSwitchToUserConfiguredPrefixPolicies<br>IppUpdateNeighborAddress<br>IppUpdateWolForAllAddresses<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>Ipv4SetEchoRequestCreate<br>Ipv4ShiftRoutingHeader<br>Ipv4pAddLinkLayerSuffixAddresses<br>Ipv4pCompactFragmentationHeader<br>Ipv4pConfigureIscsiInterface<br>Ipv4pFillProtocolHeader<br>Ipv4pFragmentPacketHelper<br>Ipv4pReassembleDatagram<br>Ipv4pReassemblyTimeout<br>Ipv4pRegSyncInterfaceMetricChangeHandler<br>Ipv4pRegSyncNlMtuChangeHandler<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddRoutingHeader<br>Ipv6pAuthenticateRoutingHeader<br>Ipv6pConfigureIscsiInterface<br>Ipv6pCreatePublicAddress<br>Ipv6pGenerateLinkLayerSuffixAddress<br>Ipv6pReassembleDatagram<br>Ipv6pReassemblyTimeout<br>Ipv6pSendNeighborSolicitation<br>Ipv6pSendRedirectHelper<br>Ipv6pSendRouterAdvertisementOnSubInterface<br>Ipv6pSendRouterSolicitationOnSubInterface<br>Ipv6pUpdateAutoConfiguredAddressesUnderLock<br>LogIcmpPktmonDrop<br>MldpCreateMulticastDiscoveryReport<br>NetioRingBufferPop<br>ProcessRedirectLayerForNonNativeTCP<br>RLedbatDataReceive<br>RawCreateAndActivateEndpoint<br>RngGetBufferRngPoolUnderLock<br>RssSelectStaticProcessors<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtDeferredChecksumMdlChain<br>TcpCreateAndConnectTcb<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateListener<br>TcpCreateSynTcb<br>TcpCreateTimeWaitTcb<br>TcpGetIsn<br>TcpInspectListenerReceive<br>TcpOptionsForSynSend<br>TcpPlumbWakePattern<br>TcpQueryBinaryValueKey<br>TcpRecentFailureTrace<br>TcpSetFastopenPathInfoTcb<br>TcpSetSockOptTcb<br>TcpTcbReassemblyAdvanceHeader<br>TcpipGetAppNameFromProcess<br>TlShimDiscoverPhysicalNexthopInterface<br>TlShimInjectRedirectedPacket<br>TraceFilterEngineStoreFilterRulesInternal<br>UQoSQueryPolicyByNameInternal<br>UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpReceiveDatagrams<br>UdpTlProviderMessageCalloutRoutine<br>UrlpReAllocHelper<br>WfpAleCopyEndpointToPublic<br>WfpAleCreateSecondaryAppMetaData<br>WfpAleExtractExplicitCredentials<br>WfpAleGetEnterpriseIdAndPolicyFlags<br>WfpAleInsertPeerInformation<br>WfpAleMarshalFqbnValue<br>WfpAleProcessExplicitCredentialQuery<br>WfpAleProcessSocketOption<br>WfpAlepCopyByteBlob<br>WfpAlepSetSecurity<br>WfpBufferCopy<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpNlShimDiscoverPhysicalNexthopInterface<br>WfpSetVpnTriggerFilePaths<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpTagAppIdToNblForRio<br>WfpTlShimFillRedirectContextCmsg<br>WppTraceCallback</details>|<details><summary>Expand for full list:<br>AleInspectConnectRequest<br>AleInspectQueryOriginalDestination<br>AleRedirectRecordsDeserializeFromBuffer<br>AleRedirectRecordsSerializeToBuffer<br>AlepCacheConnectionPolicyRecord<br>AlepCreateAcceptRedirectRecord<br>AlepCreateRedirectRecord<br>BLFlushBatchOpContextEx<br>CreateNewEventEntry<br>CreateUdpConnectRedirectCallbackContext<br>EQoSAllocateHkeUrlSearch</summary>EQoSCreatePolicyOwner<br>EQoSCreatePolicyTable<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSSetNetPolicy<br>EQoSSetUrlEntry<br>EQoSpCounterSetCallback<br>EQoSpCreateAppName<br>EQoSpPolicyParseUrl<br>EQoSpReturnNetPolicy<br>EQoSpReturnUrlPolicy<br>EQoSpTrimUserPolicyList<br>EdpAuditLogApplicationLearningNetwork<br>FUN_140093e82<br>FUN_1400d9549<br>FUN_1401ce296<br>FUN_1401cf26c<br>FUN_1401d6b9d<br>FUN_1401dac8b<br>FUN_14028610e<br>FUN_1402862b8<br>FillIfEntryWithInterfaceInfo<br>Fl4tMapAddress<br>Fl4tpMapNonUnicastAddress<br>Fl6tMapAddress<br>Fl6tpMapNonUnicastAddress<br>Fl8AddGroup<br>FlBindAdapter<br>FlGetAllInterfaceParameters<br>FlGetAllInterfaceRemoteAddressParameters<br>FlIfFindOrCreateCompartment<br>FlIfProviderQueryInline<br>FlIfpGenerateVirtualInterfaceAlias<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlStatus<br>FlpAddLocalPortWolPattern<br>FlpAllocateInjectPacketChain<br>FlpCoalesceMulticastSet<br>FlpCreateTcpSynWolPattern<br>FlpCreateTcpWolPattern<br>FlpRestartPnpEvent<br>FlpSendPacketsHelper<br>FlpSetAddressWolPattern<br>FlpSetArpNDOffload<br>FlpSetTaskOffloadParameters<br>FlpSetWolPattern<br>FltAllocateAndCopyDlAddressForNblHelper<br>FltpInitializeInterface<br>FseGetCompleteMessage<br>FseMidlObjectDecode<br>FseProcessIncomingMessages<br>GetNextSuffixFromOption<br>IPSecFillAuthInfoV2<br>IPSecFillConfInfoV1<br>IPSecGenerateIV<br>IPSecInitConf<br>IPSecPlumbSa<br>IPSecSetupAhInitInboundOperationState<br>IPSecSetupEspInitInboundOperationState<br>IPsecGetRemoteTokensFromFwdState<br>IPsecInsertIPHeader<br>IgmppCreateMulticastDiscoveryReport<br>InetStartInspectionModule<br>InitializeTelemetryAssertsKMWorkerInternal<br>IpEnumerateAllNeighbors<br>IpFlcReturnNetworkAddressList<br>IpGetAllGlobalParameters<br>IpGetAllIcmpParameters<br>IpGetAllLocalMulticastAddressParameters<br>IpGetAllNeighborParameters<br>IpNlpFastContinueSendLoopbackDatagrams<br>IpNlpInheritSessionInfo<br>IpNlpQuerySessionInfo<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IpSecAhCompleteOutbound<br>IpSecEspAuthCompleteInbound<br>IpSecEspCompleteOutbound<br>IpSecEspInitOutbound<br>IpSetAllDisconnectInterfaceParameters<br>IppAddPrefixPolicy<br>IppAddSourcesToMulticastGroup<br>IppAddSourcesToMulticastSessionState<br>IppAddWolForAddress<br>IppAllocateIpsPacketChain<br>IppAllocatePathUnderLock<br>IppBuildFirstHeader<br>IppBuildNextHeader<br>IppClearWolContext<br>IppConfigureIscsiTargetAndDefaultRoutes<br>IppCopyMfeKey<br>IppCopySendState<br>IppCreateClonePacketForRaw<br>IppCreateForwardPath<br>IppCreateLocalAddress<br>IppCreateMfe<br>IppCreateProxyNeighbor<br>IppCreateReassembly<br>IppCreateUnicastRoute<br>IppDadLogEvent<br>IppEnumerateAdaptiveTableEntry<br>IppEnumerateInterfaceAddresses<br>IppFillDestinationCmsg<br>IppFillNeighborParametersUnderLock<br>IppFillPacketInfoCmsg<br>IppFillPathInformation<br>IppFillPathRodUnderLock<br>IppFillUnicastRouteData<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindOrCreateGroupForFragment<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindOrCreateWolContext<br>IppGetAllLocalAddressParameters<br>IppGetForwardInjectionParameters<br>IppGetMulticastSessionStateSourceList<br>IppGetNextProxyNeighborOnInterface<br>IppInitializeNeighbor<br>IppInspectBuildHeaders<br>IppInspectInjectTlSend<br>IppLogMediaSenseEvent<br>IppLogPacketDiscard<br>IppMarkMulticastSourcesForQuery<br>IppNotifyAddressChangeAtPassive<br>IppNotifyEchoRequestChange<br>IppNotifyMfeChange<br>IppNotifyNeighborChangeAtPassive<br>IppPacketizeDatagrams<br>IppParseSessionState<br>IppPktMonRegisterInterface<br>IppProcessAncillaryData<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppProcessRawData<br>IppProcessSessionState<br>IppQueueMulticastDiscoveryRecord<br>IppReverseGenericAddressArray<br>IppSendDatagramsCommon<br>IppSendError<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetMulticastSessionState<br>IppSetWolContext<br>IppSetWolParametersWorker<br>IppSortDestinationAddresses<br>IppSwitchToUserConfiguredPrefixPolicies<br>IppUpdateNeighborAddress<br>IppUpdateWolForAllAddresses<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>Ipv4SetEchoRequestCreate<br>Ipv4ShiftRoutingHeader<br>Ipv4pAddLinkLayerSuffixAddresses<br>Ipv4pCompactFragmentationHeader<br>Ipv4pConfigureIscsiInterface<br>Ipv4pFillProtocolHeader<br>Ipv4pFragmentPacketHelper<br>Ipv4pReassembleDatagram<br>Ipv4pReassemblyTimeout<br>Ipv4pRegSyncInterfaceMetricChangeHandler<br>Ipv4pRegSyncNlMtuChangeHandler<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddRoutingHeader<br>Ipv6pAuthenticateRoutingHeader<br>Ipv6pConfigureIscsiInterface<br>Ipv6pCreatePublicAddress<br>Ipv6pGenerateLinkLayerSuffixAddress<br>Ipv6pReassembleDatagram<br>Ipv6pReassemblyTimeout<br>Ipv6pSendNeighborSolicitation<br>Ipv6pSendRedirectHelper<br>Ipv6pSendRouterAdvertisementOnSubInterface<br>Ipv6pSendRouterSolicitationOnSubInterface<br>Ipv6pUpdateAutoConfiguredAddressesUnderLock<br>LogIcmpPktmonDrop<br>MldpCreateMulticastDiscoveryReport<br>NetioRingBufferPop<br>ProcessRedirectLayerForNonNativeTCP<br>RLedbatDataReceive<br>RawCreateAndActivateEndpoint<br>RngGetBufferRngPoolUnderLock<br>RssSelectStaticProcessors<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtDeferredChecksumMdlChain<br>TcpCreateAndConnectTcb<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateListener<br>TcpCreateSynTcb<br>TcpCreateTimeWaitTcb<br>TcpGetIsn<br>TcpInspectListenerReceive<br>TcpOptionsForSynSend<br>TcpPlumbWakePattern<br>TcpQueryBinaryValueKey<br>TcpRecentFailureTrace<br>TcpSetFastopenPathInfoTcb<br>TcpSetSockOptTcb<br>TcpTcbReassemblyAdvanceHeader<br>TcpipGetAppNameFromProcess<br>TlShimDiscoverPhysicalNexthopInterface<br>TlShimInjectRedirectedPacket<br>TraceFilterEngineStoreFilterRulesInternal<br>UQoSQueryPolicyByNameInternal<br>UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpConnectRedirectObsolete<br>UdpReceiveDatagrams<br>UdpTlProviderMessageCalloutRoutine<br>UrlpReAllocHelper<br>WfpAleCopyEndpointToPublic<br>WfpAleCreateSecondaryAppMetaData<br>WfpAleExtractExplicitCredentials<br>WfpAleGetEnterpriseIdAndPolicyFlags<br>WfpAleInsertPeerInformation<br>WfpAleMarshalFqbnValue<br>WfpAleProcessExplicitCredentialQuery<br>WfpAleProcessSocketOption<br>WfpAlepCopyByteBlob<br>WfpAlepSetSecurity<br>WfpBufferCopy<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpNlShimDiscoverPhysicalNexthopInterface<br>WfpSetVpnTriggerFilePaths<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpTagAppIdToNblForRio<br>WfpTlShimFillRedirectContextCmsg<br>WppTraceCallback</details>|
|paramcount|3|3|
|`address`|1401c2840|1401c2e40|
|sig|void * __cdecl memmove(void * _Dst, void * _Src, size_t _Size)|void * __cdecl memmove(void * _Dst, void * _Src, size_t _Size)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### memmove Calling Diff


```diff
--- memmove calling
+++ memmove calling
@@ -9,0 +10 @@
+CreateUdpConnectRedirectCallbackContext
@@ -23,6 +24,6 @@
-FUN_14003a062
-FUN_1400dcf09
-FUN_1401c6b02
-FUN_1401d6b03
-FUN_1401d9a92
-FUN_1401db80f
+FUN_140093e82
+FUN_1400d9549
+FUN_1401ce296
+FUN_1401cf26c
+FUN_1401d6b9d
+FUN_1401dac8b
@@ -96,0 +98,2 @@
+IppBuildFirstHeader
+IppBuildNextHeader
@@ -137 +139,0 @@
-IppPacketizeDatagramsForHeaderBuild
@@ -213,0 +216 @@
+UdpConnectRedirectObsolete
```


## memcmp

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.74|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|memcmp|memcmp|
|fullname|memcmp|memcmp|
|`refcount`|150|151|
|length|198|198|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AlepCacheConnectionPolicyRecord<br>AlepGetCachedConnectionPolicyUnderLock<br>EQoSEqualUnicodeString<br>EQoSMatchNetPolicy<br>EQoSUpdateActiveStoreNetPolicy<br>EQoSUpdateQoSProfile<br>EQoSpPolicyMatchUrlPath<br>EdppFindItemInAppCache<br>FUN_14003a062<br>Fl48pReceiveArpPackets<br>Fl8AddGroup</summary>FlIfpAllocateVirtualInterface<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlpAcceptPacket<br>FlpCheckAndCoalesceNBLChain<br>FlpGetNextInterface<br>FlpLookupGroup<br>FlpParsePacket<br>FlpRestartPnpEvent<br>IPSecCompareKeyModuleBlobs<br>IPSecProcessAsyncUpcallNotifySaNegotiation<br>IPSecScoreMatch<br>IPSecValidatePeerIdentitityOnInboundTransportModePacket<br>IPsecArePeerTokensIdentical<br>IPsecAreTunnelEndpointsSameAsIPHeader<br>IPsecComparePeerTokens<br>IPsecDoPendCtxt5TuplesMatch<br>IPsecDoesFwdStateMatchPkt<br>IPsecIsLocalIPAddrLower<br>IPsecShouldIgnoreRemoteAddressP2S<br>IPsecUpdateFwdStateTokenInfo<br>IdpQosLookupFlow<br>IgmpReceiveDatagrams<br>InsertEventEntryInLookUpTable<br>IpFlcReceivePreValidatedPackets<br>IpNlpFilterDatagramBySessionInformation<br>IppAddressCompare<br>IppAllocateAndCopyHeaderIncludeHeader<br>IppCommitSetAllInterfaceParameters<br>IppCompareRoutineAvl<br>IppCreateInterface<br>IppDispatchReceivePacketHelper<br>IppDispatchSendPacketHelper<br>IppEvaluateSortInformation<br>IppFillSortingElement<br>IppFindAdaptiveTableEntry<br>IppFindAddressInAddressSet<br>IppFindAddressInAddressSetUnderLock<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAddressOnInterfaceExUnderLock<br>IppFindEchoRequest<br>IppFindLocalMulticastSource<br>IppFindMfeUnderLock<br>IppFindMulticastAddressOnInterfaceUnderLock<br>IppFindMulticastSessionState<br>IppFindNeighborUnderNSLock<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindOrCreateLocalMulticastAddressUnderLock<br>IppFindOrCreateNeighborUnderLock<br>IppFindOrCreatePath<br>IppFindOrCreateWolContext<br>IppFindPath<br>IppFindPathFromPrimitiveIds<br>IppFindPathUnderLock<br>IppFindPhysicalInterfaceRequest<br>IppFindProxyNeighbor<br>IppFindRoute<br>IppFindSessionMulticastSource<br>IppFindWolContext<br>IppFlushPaths<br>IppForwardPackets<br>IppGetAllUnicastAddressesOnHost<br>IppGetForwardInjectionParameters<br>IppGetNextAddress<br>IppGetNextInterface<br>IppGetNextInterfaceForThread<br>IppGetNextInterfaceOnCompartment<br>IppGetNextNeighborOnInterface<br>IppGetNextProxyNeighborOnInterface<br>IppGetNextRoute<br>IppGetNextSubInterfaceOnInterface<br>IppGetProxyLocalAddress<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInsertSubInterfaceInSet<br>IppModifyMulticastSessionState<br>IppReceivePackets<br>IppRedirectPath<br>IppRemoveSourcesFromMulticastSessionState<br>IppRemoveWolForAddress<br>IppSendRedirect<br>IppSetAllRouteState<br>IppSetMulticastSessionState<br>IppUpdateBestSourceAddress<br>IppUpdateNeighbor<br>IppUpdateNeighborAddress<br>IppUpdateNetworkCategoryState<br>IppValidateSetAllLocalAddressParameters<br>IpsLbHandleInterfaceAddition<br>Ipv6pGetNextPotentialRouterUnderLock<br>Ipv6pHandleMldQuery<br>IsTupleEntryMatch<br>IsUdpPacketGoingToConnectedPeer<br>QSortLocalAddrCompProc<br>WfpAleAcquirePeerInformation<br>WfpAlepLookupPeerInformation<br>WfpAlepSetPeerTarget<br>WfpIsSidTriggerExempt<br>WfpLookupFilePathEntry<br>WfpLookupSecurityDescriptorAndUpdateCount</details>|<details><summary>Expand for full list:<br>AlepCacheConnectionPolicyRecord<br>AlepGetCachedConnectionPolicyUnderLock<br>EQoSEqualUnicodeString<br>EQoSMatchNetPolicy<br>EQoSUpdateActiveStoreNetPolicy<br>EQoSUpdateQoSProfile<br>EQoSpPolicyMatchUrlPath<br>EdppFindItemInAppCache<br>FUN_140093e82<br>Fl48pReceiveArpPackets<br>Fl8AddGroup</summary>FlIfpAllocateVirtualInterface<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlpAcceptPacket<br>FlpCheckAndCoalesceNBLChain<br>FlpGetNextInterface<br>FlpLookupGroup<br>FlpParsePacket<br>FlpRestartPnpEvent<br>IPSecCompareKeyModuleBlobs<br>IPSecProcessAsyncUpcallNotifySaNegotiation<br>IPSecScoreMatch<br>IPSecValidatePeerIdentitityOnInboundTransportModePacket<br>IPsecArePeerTokensIdentical<br>IPsecAreTunnelEndpointsSameAsIPHeader<br>IPsecComparePeerTokens<br>IPsecDoPendCtxt5TuplesMatch<br>IPsecDoesFwdStateMatchPkt<br>IPsecIsLocalIPAddrLower<br>IPsecShouldIgnoreRemoteAddressP2S<br>IPsecUpdateFwdStateTokenInfo<br>IdpQosLookupFlow<br>IgmpReceiveDatagrams<br>InsertEventEntryInLookUpTable<br>IpFlcReceivePreValidatedPackets<br>IpNlpFilterDatagramBySessionInformation<br>IppAddressCompare<br>IppAllocateAndCopyHeaderIncludeHeader<br>IppCommitSetAllInterfaceParameters<br>IppCompareRoutineAvl<br>IppCreateInterface<br>IppDispatchReceivePacketHelper<br>IppDispatchSendPacketHelper<br>IppEvaluateSortInformation<br>IppFillSortingElement<br>IppFindAdaptiveTableEntry<br>IppFindAddressInAddressSet<br>IppFindAddressInAddressSetUnderLock<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAddressOnInterfaceExUnderLock<br>IppFindEchoRequest<br>IppFindLocalMulticastSource<br>IppFindMfeUnderLock<br>IppFindMulticastAddressOnInterfaceUnderLock<br>IppFindMulticastSessionState<br>IppFindNeighborUnderNSLock<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindOrCreateLocalMulticastAddressUnderLock<br>IppFindOrCreateNeighborUnderLock<br>IppFindOrCreatePath<br>IppFindOrCreateWolContext<br>IppFindPath<br>IppFindPathFromPrimitiveIds<br>IppFindPathUnderLock<br>IppFindPhysicalInterfaceRequest<br>IppFindProxyNeighbor<br>IppFindRoute<br>IppFindSessionMulticastSource<br>IppFindWolContext<br>IppFlushPaths<br>IppForwardPackets<br>IppGetAllUnicastAddressesOnHost<br>IppGetForwardInjectionParameters<br>IppGetNextAddress<br>IppGetNextInterface<br>IppGetNextInterfaceForThread<br>IppGetNextInterfaceOnCompartment<br>IppGetNextNeighborOnInterface<br>IppGetNextProxyNeighborOnInterface<br>IppGetNextRoute<br>IppGetNextSubInterfaceOnInterface<br>IppGetProxyLocalAddress<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInsertSubInterfaceInSet<br>IppModifyMulticastSessionState<br>IppReceivePackets<br>IppRedirectPath<br>IppRemoveSourcesFromMulticastSessionState<br>IppRemoveWolForAddress<br>IppSendRedirect<br>IppSetAllRouteState<br>IppSetMulticastSessionState<br>IppUpdateBestSourceAddress<br>IppUpdateNeighbor<br>IppUpdateNeighborAddress<br>IppUpdateNetworkCategoryState<br>IppValidateSetAllLocalAddressParameters<br>IpsLbHandleInterfaceAddition<br>Ipv6pGetNextPotentialRouterUnderLock<br>Ipv6pHandleMldQuery<br>Ipv6pHandleNeighborSolicitation<br>IsTupleEntryMatch<br>IsUdpPacketGoingToConnectedPeer<br>QSortLocalAddrCompProc<br>WfpAleAcquirePeerInformation<br>WfpAlepLookupPeerInformation<br>WfpAlepSetPeerTarget<br>WfpIsSidTriggerExempt<br>WfpLookupFilePathEntry<br>WfpLookupSecurityDescriptorAndUpdateCount</details>|
|paramcount|3|3|
|`address`|1401c2720|1401c2d20|
|sig|int __cdecl memcmp(void * _Buf1, void * _Buf2, size_t _Size)|int __cdecl memcmp(void * _Buf1, void * _Buf2, size_t _Size)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### memcmp Calling Diff


```diff
--- memcmp calling
+++ memcmp calling
@@ -9 +9 @@
-FUN_14003a062
+FUN_140093e82
@@ -104,0 +105 @@
+Ipv6pHandleNeighborSolicitation
```


## RtlAcquireReadLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.84|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|RtlAcquireReadLock|RtlAcquireReadLock|
|fullname|RtlAcquireReadLock|RtlAcquireReadLock|
|`refcount`|106|105|
|length|126|126|
|called|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KeTestSpinLock<br>NTOSKRNL.EXE::KfRaiseIrql|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel<br>NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLockFromDpcLevel<br>NTOSKRNL.EXE::KeTestSpinLock<br>NTOSKRNL.EXE::KfRaiseIrql|
|`calling`|<details><summary>Expand for full list:<br>EQoSGetAppName<br>EQoSHkeUpdateLayerRegistration<br>EQoSPolicyFindUrlMatch<br>EQoSPolicyUDPPartialMatch<br>EQoSQueryActiveStoreNetPolicy<br>EQoSQueryAllActiveStoreNetPolicies<br>EQoSQueryPolicyQuotaHistory<br>EQoSpCounterSetCallback<br>EQoSpProcessPolicyChange<br>EQoSpTrimUserPolicyList<br>FlCompartmentChangeNotificationHandler</summary>FlPktMonRegisterProvider<br>FlRdmaNsiEnumerateInterfaces<br>FlRdmaNsiEnumerateNdkItemsCommon<br>FlRdmaNsiGetAllInterfaceParameters<br>FlRdmaNsiSetAllGlobalParameters<br>FlSetAllGlobalParameters<br>FlpFindInterface<br>FlpGetNextInterface<br>IpFlcIndicateOffloadEvent<br>IpFlcIndicateWakeEvent<br>IpFlcUpdateSubInterface<br>IpGetAllInterfaceHopParameters<br>IpGetAllPrefixPolicyParameters<br>IpGetAllResolveNeighborParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderQueryAddressInformation<br>IpNlpInheritSessionInfo<br>IpNlpQuerySessionInfo<br>IpNlpSetSessionInfo<br>IpSetAllDisconnectInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppFillNeighborParameters<br>IppFillSortingElement<br>IppFindBestSourceAddressOnInterface<br>IppFindInterfaceByAddress<br>IppFindInterfaceByIndexInGlobalList<br>IppFindInterfaceInCompartmentByLuid<br>IppFindMulticastAddressOnInterface<br>IppFindMulticastAddressOnNextInterface<br>IppFindNeighbor<br>IppFindSubInterfaceByLuid<br>IppGetAllMulticastForwardingParameters<br>IppGetAllUnicastAddressesOnHost<br>IppGetExactProxyNeighbor<br>IppGetNextAddress<br>IppGetNextInterfaceOnCompartment<br>IppGetNextProxyNeighborOnInterface<br>IppHandleWolContextEviction<br>IppInspectLocalDatagramsOut<br>IppInterfaceRundown<br>IppJoinPath<br>IppNeighborSolicitationWorker<br>IppNotifyAddressChangeAtPassive<br>IppNotifyCompartmentChangeToNlClients<br>IppNotifyInterfaceChangeToNlClients<br>IppNotifyNeighborChangeAtPassive<br>IppParseSessionState<br>IppPreProcessSetInterfaceProperty<br>IppProcessSessionState<br>IppQueryInterfaceProperty<br>IppSendNeighborProbe<br>IppSetAllNeighborParametersHelper<br>IppUpdatePathNotificationAtPassiveLevel<br>IppValidateSettingsOnReconnectWorker<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbProcessInboundPacketChain<br>IpsLbProcessLoopbackPacketChain<br>Ipv6GetAllPotentialRouters<br>Ipv6pSendRedirectHelper<br>QimInspectBindEndpoint<br>QimMatchPolicyForTCPConnection<br>RawGetSockOptEndpoint<br>RawIoControlEndpoint<br>RawSendMessages<br>TcpCountConnectionsByRssProc<br>TcpGetSockOptListener<br>TcpIoControlListener<br>TcpIsnProcessorAddHandler<br>TcpPortPropertyEnumerateObjects<br>TcpipEvaluateNlFilter<br>TcpipEvaluateTlFilter<br>TlRdmaProviderOpenNDKAdapter<br>UQoSNotifyPolicyChanged<br>UdpGetSockOptEndpoint<br>WfpAcquireSmallReadLock</details>|<details><summary>Expand for full list:<br>EQoSGetAppName<br>EQoSHkeUpdateLayerRegistration<br>EQoSPolicyFindUrlMatch<br>EQoSPolicyUDPPartialMatch<br>EQoSQueryActiveStoreNetPolicy<br>EQoSQueryAllActiveStoreNetPolicies<br>EQoSQueryPolicyQuotaHistory<br>EQoSpCounterSetCallback<br>EQoSpProcessPolicyChange<br>EQoSpTrimUserPolicyList<br>FlCompartmentChangeNotificationHandler</summary>FlPktMonRegisterProvider<br>FlRdmaNsiEnumerateInterfaces<br>FlRdmaNsiEnumerateNdkItemsCommon<br>FlRdmaNsiGetAllInterfaceParameters<br>FlRdmaNsiSetAllGlobalParameters<br>FlSetAllGlobalParameters<br>FlpFindInterface<br>FlpGetNextInterface<br>IpFlcIndicateOffloadEvent<br>IpFlcIndicateWakeEvent<br>IpFlcUpdateSubInterface<br>IpGetAllInterfaceHopParameters<br>IpGetAllPrefixPolicyParameters<br>IpGetAllResolveNeighborParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderQueryAddressInformation<br>IpNlpInheritSessionInfo<br>IpNlpQuerySessionInfo<br>IpSetAllDisconnectInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppFillNeighborParameters<br>IppFillSortingElement<br>IppFindBestSourceAddressOnInterface<br>IppFindInterfaceByAddress<br>IppFindInterfaceByIndexInGlobalList<br>IppFindInterfaceInCompartmentByLuid<br>IppFindMulticastAddressOnInterface<br>IppFindMulticastAddressOnNextInterface<br>IppFindNeighbor<br>IppFindSubInterfaceByLuid<br>IppGetAllMulticastForwardingParameters<br>IppGetAllUnicastAddressesOnHost<br>IppGetExactProxyNeighbor<br>IppGetNextAddress<br>IppGetNextInterfaceOnCompartment<br>IppGetNextProxyNeighborOnInterface<br>IppHandleWolContextEviction<br>IppInspectLocalDatagramsOut<br>IppInterfaceRundown<br>IppJoinPath<br>IppNeighborSolicitationWorker<br>IppNotifyAddressChangeAtPassive<br>IppNotifyCompartmentChangeToNlClients<br>IppNotifyInterfaceChangeToNlClients<br>IppNotifyNeighborChangeAtPassive<br>IppParseSessionState<br>IppPreProcessSetInterfaceProperty<br>IppProcessSessionState<br>IppQueryInterfaceProperty<br>IppSendNeighborProbe<br>IppSetAllNeighborParametersHelper<br>IppUpdatePathNotificationAtPassiveLevel<br>IppValidateSettingsOnReconnectWorker<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbProcessInboundPacketChain<br>IpsLbProcessLoopbackPacketChain<br>Ipv6GetAllPotentialRouters<br>Ipv6pSendRedirectHelper<br>QimInspectBindEndpoint<br>QimMatchPolicyForTCPConnection<br>RawGetSockOptEndpoint<br>RawIoControlEndpoint<br>RawSendMessages<br>TcpCountConnectionsByRssProc<br>TcpGetSockOptListener<br>TcpIoControlListener<br>TcpIsnProcessorAddHandler<br>TcpPortPropertyEnumerateObjects<br>TcpipEvaluateNlFilter<br>TcpipEvaluateTlFilter<br>TlRdmaProviderOpenNDKAdapter<br>UQoSNotifyPolicyChanged<br>UdpGetSockOptEndpoint<br>WfpAcquireSmallReadLock</details>|
|paramcount|0|0|
|`address`|140023790|140018910|
|sig|undefined RtlAcquireReadLock(void)|undefined RtlAcquireReadLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### RtlAcquireReadLock Calling Diff


```diff
--- RtlAcquireReadLock calling
+++ RtlAcquireReadLock calling
@@ -30 +29,0 @@
-IpNlpSetSessionInfo
```


## IppProcessAddSource

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.87|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppProcessAddSource|IppProcessAddSource|
|fullname|IppProcessAddSource|IppProcessAddSource|
|`refcount`|2|3|
|length|320|320|
|called|IppCreateMulticastSessionState<br>IppFindMulticastSessionState<br>IppModifyMulticastSessionState<br>IppTraceSessionMulticastOp<br>IppValidateMulticastOptions|IppCreateMulticastSessionState<br>IppFindMulticastSessionState<br>IppModifyMulticastSessionState<br>IppTraceSessionMulticastOp<br>IppValidateMulticastOptions|
|calling|IpNlpSetSessionInfo|IpNlpSetSessionInfo|
|paramcount|0|0|
|`address`|1401878fc|140187a8c|
|sig|undefined IppProcessAddSource(void)|undefined IppProcessAddSource(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## AleGetOriginalAppId

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleGetOriginalAppId|AleGetOriginalAppId|
|fullname|AleGetOriginalAppId|AleGetOriginalAppId|
|`refcount`|6|5|
|length|21|21|
|called|||
|`calling`|AleInspectConnectRequest<br>WfpAlepAuthorizeSend<br>WfpAlepFlowEstablishedNotification<br>WfpTlShimInspectOutboundNetworkConnection|WfpAlepAuthorizeSend<br>WfpAlepFlowEstablishedNotification<br>WfpTlShimInspectOutboundNetworkConnection|
|paramcount|0|0|
|`address`|140074348|1400556b8|
|sig|undefined AleGetOriginalAppId(void)|undefined AleGetOriginalAppId(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleGetOriginalAppId Calling Diff


```diff
--- AleGetOriginalAppId calling
+++ AleGetOriginalAppId calling
@@ -1 +0,0 @@
-AleInspectConnectRequest
```


## WfpReportStatus

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.78|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WfpReportStatus|WfpReportStatus|
|fullname|WfpReportStatus|WfpReportStatus|
|`refcount`|23|22|
|length|73|73|
|called|WPP_SF_sDd|WPP_SF_sDd|
|`calling`|<details><summary>Expand for full list:<br>FUN_14005aac5<br>FUN_1401d8baa<br>ProcessIPsecNattTransportLayerReclassifyInbound<br>ProcessIPsecNattTransportLayerReclassifyOutbound<br>ProcessRedirectLayerForNonNativeTCP<br>TlShimInjectRedirectedPacket<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeAcceptComplete<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeConnectComplete<br>WfpAleAuthorizeListen</summary>WfpAleAuthorizePort<br>WfpAleAuthorizeRAW<br>WfpAleAuthorizeReceive<br>WfpAleAuthorizeSend<br>WfpAleConnectCompletionNotification<br>WfpAleForceReclassifyLayer<br>WfpAleInitNonTCPRedirectionInjectionHandle<br>WfpAlePendOperation<br>WfpAleReauthorizeConnection<br>WfpAleReauthorizeConnectionFromContext</details>|<details><summary>Expand for full list:<br>FUN_14002d515<br>FUN_1401d8bf2<br>ProcessIPsecNattTransportLayerReclassifyInbound<br>ProcessIPsecNattTransportLayerReclassifyOutbound<br>ProcessRedirectLayerForNonNativeTCP<br>TlShimInjectRedirectedPacket<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeAcceptComplete<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeConnectComplete<br>WfpAleAuthorizeListen</summary>WfpAleAuthorizePort<br>WfpAleAuthorizeRAW<br>WfpAleAuthorizeReceive<br>WfpAleConnectCompletionNotification<br>WfpAleForceReclassifyLayer<br>WfpAleInitNonTCPRedirectionInjectionHandle<br>WfpAlePendOperation<br>WfpAleReauthorizeConnection<br>WfpAleReauthorizeConnectionFromContext</details>|
|paramcount|0|0|
|`address`|1400f0480|14003ba70|
|sig|undefined WfpReportStatus(void)|undefined WfpReportStatus(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WfpReportStatus Calling Diff


```diff
--- WfpReportStatus calling
+++ WfpReportStatus calling
@@ -1,2 +1,2 @@
-FUN_14005aac5
-FUN_1401d8baa
+FUN_14002d515
+FUN_1401d8bf2
@@ -15 +14,0 @@
-WfpAleAuthorizeSend
```


## NETIO.SYS::NetioFreeMdl

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NetioFreeMdl|NetioFreeMdl|
|fullname|NETIO.SYS::NetioFreeMdl|NETIO.SYS::NetioFreeMdl|
|`refcount`|13|14|
|length|0|0|
|called|||
|`calling`|FUN_1401c4b44<br>FlpCloneMdl<br>FlpCompleteNdisNetBufferListChain<br>FlpFreeCloneNbls<br>FlpReturnNetBufferListChain<br>IppFreeCloneNetBufferListWithTrailer<br>IppIpsProviderNblCompletionRoutine<br>NetioRestoreNetBuffer<br>TcpSendDatagramsComplete<br>TcpUnsegmentTcbSend|<details><summary>Expand for full list:<br>FUN_1401ccf5e<br>FlpCloneMdl<br>FlpCompleteNdisNetBufferListChain<br>FlpFreeCloneNbls<br>FlpReturnNetBufferListChain<br>IppFreeCloneNetBufferListWithTrailer<br>IppIpsProviderNblCompletionRoutine<br>NetioRestoreNetBuffer<br>TcpSendDatagramsComplete<br>TcpUnsegmentTcbSend<br>UdpSendMessagesDatagramsComplete</summary></details>|
|paramcount|0|0|
|address|EXTERNAL:000001b2|EXTERNAL:000001b2|
|sig|undefined NetioFreeMdl(void)|undefined NetioFreeMdl(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NETIO.SYS::NetioFreeMdl Calling Diff


```diff
--- NETIO.SYS::NetioFreeMdl calling
+++ NETIO.SYS::NetioFreeMdl calling
@@ -1 +1 @@
-FUN_1401c4b44
+FUN_1401ccf5e
@@ -10,0 +11 @@
+UdpSendMessagesDatagramsComplete
```


## __GSHandlerCheck

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|__GSHandlerCheck|__GSHandlerCheck|
|fullname|__GSHandlerCheck|__GSHandlerCheck|
|`refcount`|874|876|
|length|29|29|
|called|__GSHandlerCheckCommon|__GSHandlerCheckCommon|
|calling|||
|paramcount|0|0|
|`address`|1401c2368|1401c2958|
|sig|undefined __GSHandlerCheck(void)|undefined __GSHandlerCheck(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## NetioGetDataBufferIfSafe

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.86|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NetioGetDataBufferIfSafe|NetioGetDataBufferIfSafe|
|fullname|NetioGetDataBufferIfSafe|NetioGetDataBufferIfSafe|
|`refcount`|11|12|
|length|126|126|
|called|NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache|NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache|
|`calling`|IPsecInsertIPHeader<br>IppForwardPacketsPostInspection<br>IppOptionalUpdateTosFieldOnFwdPkt<br>IppPacketizeDatagramsForHeaderBuild<br>Ipv4pProcessOptionsPostForwarding<br>Ipv4pUpdateTosFieldOnFwdPkt|IPsecInsertIPHeader<br>IppBuildFirstHeader<br>IppBuildNextHeader<br>IppForwardPacketsPostInspection<br>IppOptionalUpdateTosFieldOnFwdPkt<br>Ipv4pProcessOptionsPostForwarding<br>Ipv4pUpdateTosFieldOnFwdPkt|
|paramcount|0|0|
|`address`|1400e9e60|1400e5fb0|
|sig|undefined NetioGetDataBufferIfSafe(void)|undefined NetioGetDataBufferIfSafe(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### NetioGetDataBufferIfSafe Calling Diff


```diff
--- NetioGetDataBufferIfSafe calling
+++ NetioGetDataBufferIfSafe calling
@@ -1,0 +2,2 @@
+IppBuildFirstHeader
+IppBuildNextHeader
@@ -4 +5,0 @@
-IppPacketizeDatagramsForHeaderBuild
```


## NTOSKRNL.EXE::PsGetCurrentProcess

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|PsGetCurrentProcess|PsGetCurrentProcess|
|fullname|NTOSKRNL.EXE::PsGetCurrentProcess|NTOSKRNL.EXE::PsGetCurrentProcess|
|`refcount`|20|19|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>DriverEntry<br>FUN_1401d2b5d<br>InetGetClientProcess<br>InetGetProcessTag<br>IpAttachNlClient<br>IpGetAllResolveNeighborParameters<br>IpNlpSetSessionInfo<br>IppInitializeProtocolSettings<br>Ipv4pStartNextHeaderProcessor<br>Ipv6pFragmentPacketHelper<br>Ipv6pStartNextHeaderProcessor</summary>RssHashAccessCheck<br>TcpCreateEndpoint<br>WfpAleCreateTokenFromLogonId<br>WfpAleInitializeSecurityTracking</details>|<details><summary>Expand for full list:<br>DriverEntry<br>FUN_1401d2667<br>InetGetClientProcess<br>InetGetProcessTag<br>IpAttachNlClient<br>IpGetAllResolveNeighborParameters<br>IpNlpSetSessionInfo<br>IppInitializeProtocolSettings<br>Ipv4pStartNextHeaderProcessor<br>Ipv6pFragmentPacketHelper<br>Ipv6pStartNextHeaderProcessor</summary>RssHashAccessCheck<br>TcpCreateEndpoint<br>WfpAleCreateTokenFromLogonId<br>WfpAleInitializeSecurityTracking</details>|
|paramcount|0|0|
|address|EXTERNAL:00000118|EXTERNAL:00000118|
|sig|undefined PsGetCurrentProcess(void)|undefined PsGetCurrentProcess(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::PsGetCurrentProcess Calling Diff


```diff
--- NTOSKRNL.EXE::PsGetCurrentProcess calling
+++ NTOSKRNL.EXE::PsGetCurrentProcess calling
@@ -2 +2 @@
-FUN_1401d2b5d
+FUN_1401d2667
```


## FlpInterfaceReleaseReadLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|FlpInterfaceReleaseReadLock|FlpInterfaceReleaseReadLock|
|fullname|FlpInterfaceReleaseReadLock|FlpInterfaceReleaseReadLock|
|`refcount`|61|58|
|length|25|25|
|called|NDIS.SYS::NdisReleaseRWLock|NDIS.SYS::NdisReleaseRWLock|
|`calling`|<details><summary>Expand for full list:<br>FUN_1401df952<br>Fl8AddGroup<br>Fl8DeleteGroup<br>Fl8pPCFControlInterface<br>Fl8pPCFSerializedControlUnderLock<br>Fl8pPCFSetUDPFilter<br>Fl8pPCFUpdateUDPMulticastTriggeredFilters<br>FlGetAllInterfaceParameters<br>FlGetAllInterfaceRemoteAddressParameters<br>FlRdmaBindAdapter<br>FlRdmaNsiEnumerateInterfaces</summary>FlRdmaNsiGetAllInterfaceParameters<br>FlRdmaPnpEvent<br>FlRdmapNSINotificationWorkerRoutine<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlStatus<br>FlpAddSubInterfaceComplete<br>FlpAddWolPatternEntryToInterface<br>FlpCleanupWolPatternEntries<br>FlpDeleteInterface<br>FlpFindClientInterfaceByIfIndex<br>FlpFindClientInterfaceByIsolationId<br>FlpFindDefaultClientInterface<br>FlpFlushQueuedPmRemoveOids<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpGetFirstClientInterface<br>FlpGetNextClientInterface<br>FlpOpenAdapterComplete<br>FlpPCFClearFilter<br>FlpQueueWolPatternEntryDelete<br>FlpReinitializePacketProviderInterface<br>FlpResetWolPatternEntries<br>FlpSerializedNdisRequest<br>FlpSerializedNdisRequestWorkerRoutine<br>FlpSerializedNdisSetPacketFilterWorker<br>FlpSetArpNDOffload<br>FlpSetDirectTcpPattern<br>FlpSetLocalPortWakePattern<br>FlpTryToEnqueuePmRemoveOid<br>TlRdmaProviderCloseNDKAdapter<br>TlRdmaProviderOpenNDKAdapter</details>|<details><summary>Expand for full list:<br>FUN_1401da9c6<br>Fl8DeleteGroup<br>Fl8pPCFControlInterface<br>Fl8pPCFSerializedControlUnderLock<br>Fl8pPCFSetUDPFilter<br>Fl8pPCFUpdateUDPMulticastTriggeredFilters<br>FlGetAllInterfaceParameters<br>FlGetAllInterfaceRemoteAddressParameters<br>FlRdmaBindAdapter<br>FlRdmaNsiEnumerateInterfaces<br>FlRdmaNsiGetAllInterfaceParameters</summary>FlRdmaPnpEvent<br>FlRdmapNSINotificationWorkerRoutine<br>FlSetAllInterfaceParameters<br>FlSetAllInterfaceRemoteAddressParameters<br>FlStatus<br>FlpAddSubInterfaceComplete<br>FlpAddWolPatternEntryToInterface<br>FlpCleanupWolPatternEntries<br>FlpDeleteInterface<br>FlpFindClientInterfaceByIfIndex<br>FlpFindClientInterfaceByIsolationId<br>FlpFindDefaultClientInterface<br>FlpFlushQueuedPmRemoveOids<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpGetFirstClientInterface<br>FlpGetNextClientInterface<br>FlpOpenAdapterComplete<br>FlpPCFClearFilter<br>FlpQueueWolPatternEntryDelete<br>FlpReinitializePacketProviderInterface<br>FlpResetWolPatternEntries<br>FlpSerializedNdisRequest<br>FlpSerializedNdisRequestWorkerRoutine<br>FlpSerializedNdisSetPacketFilterWorker<br>FlpSetArpNDOffload<br>FlpSetDirectTcpPattern<br>FlpSetLocalPortWakePattern<br>FlpTryToEnqueuePmRemoveOid<br>TlRdmaProviderCloseNDKAdapter<br>TlRdmaProviderOpenNDKAdapter</details>|
|paramcount|0|0|
|`address`|140049568|140103470|
|sig|undefined FlpInterfaceReleaseReadLock(void)|undefined FlpInterfaceReleaseReadLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### FlpInterfaceReleaseReadLock Calling Diff


```diff
--- FlpInterfaceReleaseReadLock calling
+++ FlpInterfaceReleaseReadLock calling
@@ -1,2 +1 @@
-FUN_1401df952
-Fl8AddGroup
+FUN_1401da9c6
```


## NDIS.SYS::NdisAcquireRWLockWrite

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NdisAcquireRWLockWrite|NdisAcquireRWLockWrite|
|fullname|NDIS.SYS::NdisAcquireRWLockWrite|NDIS.SYS::NdisAcquireRWLockWrite|
|`refcount`|50|51|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>FlPnpEvent<br>FlRdmaUnbindAdapter<br>FlUnbindAdapter<br>FlpAddInterfaceComplete<br>FlpInterfaceAcquireWriteLock<br>FlpSetVirtualInterfaceHelper<br>KfdDispatchDevCtl<br>WfpAcquireFastWriteLock<br>WfpAleGetAndWriteLockPartition<br>WfpAleInsertProcessInformation<br>WfpAleInsertTokenInformation</summary>WfpAlepEndpointCleanupWorkQueueRoutine<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepRemoveProcessInformation<br>WfpAlepTokenInformationCleanup<br>WfpCreateProcessNotifyRoutine<br>WfpInsertModifiedIdCorrelationEntry<br>WfpRemoveModifiedIdCorrelationEntry</details>|<details><summary>Expand for full list:<br>Fl8AddGroup<br>FlPnpEvent<br>FlRdmaUnbindAdapter<br>FlUnbindAdapter<br>FlpAddInterfaceComplete<br>FlpInterfaceAcquireWriteLock<br>FlpSetVirtualInterfaceHelper<br>KfdDispatchDevCtl<br>WfpAcquireFastWriteLock<br>WfpAleGetAndWriteLockPartition<br>WfpAleInsertProcessInformation</summary>WfpAleInsertTokenInformation<br>WfpAlepEndpointCleanupWorkQueueRoutine<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepRemoveProcessInformation<br>WfpAlepTokenInformationCleanup<br>WfpCreateProcessNotifyRoutine<br>WfpInsertModifiedIdCorrelationEntry<br>WfpRemoveModifiedIdCorrelationEntry</details>|
|paramcount|0|0|
|`address`|EXTERNAL:000002cb|EXTERNAL:000002cc|
|sig|undefined NdisAcquireRWLockWrite(void)|undefined NdisAcquireRWLockWrite(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NDIS.SYS::NdisAcquireRWLockWrite Calling Diff


```diff
--- NDIS.SYS::NdisAcquireRWLockWrite calling
+++ NDIS.SYS::NdisAcquireRWLockWrite calling
@@ -0,0 +1 @@
+Fl8AddGroup
```


## WPP_SF_sD

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.78|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WPP_SF_sD|WPP_SF_sD|
|fullname|WPP_SF_sD|WPP_SF_sD|
|`refcount`|93|97|
|length|121|121|
|called|_guard_dispatch_icall|_guard_dispatch_icall|
|`calling`|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleEdgeIFsCacheAction<br>AleEdgeIFsLookupCachedAction<br>DetermineDiscardLayerId<br>IPsecVerifyFragment<br>IndicateDropAudit<br>IpAttachNlClient<br>IpSecSetSecurityContext<br>IppRegisterNlClientReceiver<br>IppStartFlc<br>IppStartModules</summary>IppStartNlp<br>IppStartNsip<br>IppStopModules<br>IppUpdateGlobalRwParameters<br>Ipv4AttachFlProvider<br>Ipv6AttachFlProvider<br>KfdDispatchDevCtl<br>ProcessInboundTransportLayerClassify<br>ProcessRedirectLayerForNonNativeTCP<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleAcquirePeerInformation<br>WfpAleAcquireProcessInformation<br>WfpAleAcquireTokenInformationEx<br>WfpAleAuditEvent<br>WfpAleCaptureSecurityInformation<br>WfpAleCaptureTokenAccessInformation<br>WfpAleConnectAcceptIndicate<br>WfpAleCopySecurityRealmIdFromEndpoint<br>WfpAleEndpointCreationHandler<br>WfpAleFastFindRemoteEndpoint<br>WfpAleFastUdpInspection<br>WfpAleFindPeerInformationForPeerName<br>WfpAleGetEnterpriseIdAndPolicyFlags<br>WfpAleGetServiceSidsFromToken<br>WfpAleInsertEndpoint<br>WfpAleInsertProcessInformation<br>WfpAleInsertTokenInformation<br>WfpAleQueryOrInsertEndpointHandle<br>WfpAleReauthorizeInboundConnection<br>WfpAleRequestEndpointDeleteNotification<br>WfpAlepDbgLowboxSetByPolicyLoopbackCalloutClassify<br>WfpAlepLookupPeerInformation<br>WfpAlepLookupTokenInformationByUserTokenId<br>WfpAllocateFromPerProcessorLookasideList<br>WfpCreateProcessNotifyRoutine<br>WfpHashtableInsert<br>WfpInsertModifiedIdCorrelationEntry<br>WfpInspectReceiveControlShimV4<br>WfpPoolAllocNonPaged<br>WfpReportError<br>WfpReportSysErrorAsHResult<br>WfpReportSysErrorAsNtStatus<br>WfpReportSysErrorAsWinError<br>WfpSignalIPsecDecryptCompleteInternal<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfppTaggedContextClone</details>|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleEdgeIFsCacheAction<br>AleEdgeIFsLookupCachedAction<br>DetermineDiscardLayerId<br>IPsecVerifyFragment<br>IndicateDropAudit<br>IpAttachNlClient<br>IpSecSetSecurityContext<br>IppRegisterNlClientReceiver<br>IppStartFlc<br>IppStartModules</summary>IppStartNlp<br>IppStartNsip<br>IppStopModules<br>IppUpdateGlobalRwParameters<br>Ipv4AttachFlProvider<br>Ipv6AttachFlProvider<br>KfdDispatchDevCtl<br>ProcessInboundTransportLayerClassify<br>ProcessRedirectLayerForNonNativeTCP<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleAcquirePeerInformation<br>WfpAleAcquireProcessInformation<br>WfpAleAcquireTokenInformationEx<br>WfpAleAuditEvent<br>WfpAleAuthorizeSend<br>WfpAleCaptureSecurityInformation<br>WfpAleCaptureTokenAccessInformation<br>WfpAleConnectAcceptIndicate<br>WfpAleCopySecurityRealmIdFromEndpoint<br>WfpAleEndpointCreationHandler<br>WfpAleFastFindRemoteEndpoint<br>WfpAleFastUdpInspection<br>WfpAleFindPeerInformationForPeerName<br>WfpAleGetEnterpriseIdAndPolicyFlags<br>WfpAleGetServiceSidsFromToken<br>WfpAleInsertEndpoint<br>WfpAleInsertProcessInformation<br>WfpAleInsertTokenInformation<br>WfpAleQueryOrInsertEndpointHandle<br>WfpAleReauthorizeInboundConnection<br>WfpAleRequestEndpointDeleteNotification<br>WfpAlepDbgLowboxSetByPolicyLoopbackCalloutClassify<br>WfpAlepLookupPeerInformation<br>WfpAlepLookupTokenInformationByUserTokenId<br>WfpAllocateFromPerProcessorLookasideList<br>WfpCreateProcessNotifyRoutine<br>WfpHashtableInsert<br>WfpInsertModifiedIdCorrelationEntry<br>WfpInspectReceiveControlShimV4<br>WfpPoolAllocNonPaged<br>WfpReportError<br>WfpReportSysErrorAsHResult<br>WfpReportSysErrorAsNtStatus<br>WfpReportSysErrorAsWinError<br>WfpSignalIPsecDecryptCompleteInternal<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfppTaggedContextClone</details>|
|paramcount|0|0|
|`address`|14000bac8|140037e08|
|sig|undefined WPP_SF_sD(void)|undefined WPP_SF_sD(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WPP_SF_sD Calling Diff


```diff
--- WPP_SF_sD calling
+++ WPP_SF_sD calling
@@ -28,0 +29 @@
+WfpAleAuthorizeSend
```


## NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeGetCurrentProcessorNumberEx|KeGetCurrentProcessorNumberEx|
|fullname|NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx|NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx|
|`refcount`|173|174|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>Fl6tpShuntReceiveNetBufferList<br>Fl6tpTeredoShuntSendPackets<br>FlpChecksumCsoNbl<br>FlpReceiveNonPreValidatedNetBufferListChain<br>FlpSendPacketsHelper<br>IPSecAllocateAndQueueWorkItem<br>IPSecAuditEvent<br>IPSecCanProcessUpcallAndRef<br>IPSecCpuSchedulerOnPolicyChange<br>IPSecDerefOutstandingUpcall<br>IPSecDoCommonPerPacketInitInboundProcessing</summary>IPSecHandlePossibleUdpIdle<br>IPSecInboundSaExpired<br>IPSecLookupSaInbound<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecNotifyStatusHndlr<br>IPSecNsProcessInboundSecurePacketCommon<br>IPSecPauseOffloadOnInterface<br>IPSecPendOrCopyPacket<br>IPSecResumeOffloadOnInterface<br>IPSecServiceWorkItems<br>IPsecGetCachedTLShimEpoch<br>IndicateDoSAttackAudit<br>InetInspectAcceptComplete<br>InetInspectConnectComplete<br>InetInspectReceiveDatagram<br>InetInspectReceiveTcpDatagram<br>IpFlcReceivePreValidatedPackets<br>IppDeliverPreValidatedListToProtocol<br>IppInspectLocalDatagramsIn<br>IppInspectLocalDatagramsOut<br>IppInspectLocalPacketsIn<br>IppInspectLocalPacketsOut<br>IppLbTransmitAdaptiveOrWorkerMode<br>IppLbTransmitStackCallout<br>IppLoopbackEnqueue<br>IppReceivePackets<br>Ipv4pFragmentPacketHelper<br>KfdDispatchDevCtl<br>LruCleanupDpcRoutine<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>TcpContinueCreateAndConnect<br>TcpCreateAndConnectTcbComplete<br>TcpInspectListenerReceive<br>TcpTcbReceive<br>TlShimDiscoverPhysicalNexthopInterface<br>UdpCreateMessageIndication<br>WfpAcquireFastReadLock<br>WfpAcquireFastWriteLock<br>WfpAcquireSmallReadLock<br>WfpAcquireSmallWriteLock<br>WfpAcquireSpinLock<br>WfpAleAcquirePeerInformation<br>WfpAleAcquireProcessInformation<br>WfpAleAcquireTokenInformation<br>WfpAleAcquireTokenInformationEx<br>WfpAleCaptureSecurityInformation<br>WfpAleFastFindRemoteEndpoint<br>WfpAleFindRemoteEndpoint<br>WfpAleGetAndWriteLockPartition<br>WfpAleGetTupleStateEntry<br>WfpAleInsertProcessInformation<br>WfpAleInsertRemoteEndpoint<br>WfpAleInsertTokenInformation<br>WfpAleLookupPeerInformation<br>WfpAleLookupProcessInformation<br>WfpAleMatchStatefulEndpoint<br>WfpAleReleasePeerInformation<br>WfpAleReleaseTokenInformationById<br>WfpAlepEndpointCleanupWorkQueueRoutine<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepRemoveProcessInformation<br>WfpAlepTokenInformationCleanup<br>WfpCreateProcessNotifyRoutine<br>WfpDiscoverPhysicalNexthopInterfaceComplete<br>WfpFindAleUserIDByModifiedID<br>WfpInsertModifiedIdCorrelationEntry<br>WfpLookupFilePathTableAndUpdateCount<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpLowerIrqlFromDispatchLevel<br>WfpRaiseIrqlToDispatchLevel<br>WfpReleaseFastReadLock<br>WfpReleaseSmallReadLock<br>WfpReleaseSpinLock<br>WfpRemoveModifiedIdCorrelationEntry<br>WfpShimGetStorageForClassifyValues<br>WfpShimReturnStorageForClassifyValues<br>WfpTlShimInspectRecvTcpDatagram</details>|<details><summary>Expand for full list:<br>Fl6tpShuntReceiveNetBufferList<br>Fl6tpTeredoShuntSendPackets<br>FlpChecksumCsoNbl<br>FlpReceiveNonPreValidatedNetBufferListChain<br>FlpSendPacketsHelper<br>IPSecAllocateAndQueueWorkItem<br>IPSecAuditEvent<br>IPSecCanProcessUpcallAndRef<br>IPSecCpuSchedulerOnPolicyChange<br>IPSecDerefOutstandingUpcall<br>IPSecDoCommonPerPacketInitInboundProcessing</summary>IPSecHandlePossibleUdpIdle<br>IPSecInboundSaExpired<br>IPSecLookupSaInbound<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecNotifyStatusHndlr<br>IPSecNsProcessInboundSecurePacketCommon<br>IPSecPauseOffloadOnInterface<br>IPSecPendOrCopyPacket<br>IPSecResumeOffloadOnInterface<br>IPSecServiceWorkItems<br>IPsecGetCachedTLShimEpoch<br>IndicateDoSAttackAudit<br>InetInspectAcceptComplete<br>InetInspectConnectComplete<br>InetInspectReceiveDatagram<br>InetInspectReceiveTcpDatagram<br>IpFlcReceivePreValidatedPackets<br>IppDeliverPreValidatedListToProtocol<br>IppInspectLocalDatagramsIn<br>IppInspectLocalDatagramsOut<br>IppInspectLocalPacketsIn<br>IppInspectLocalPacketsOut<br>IppLbTransmitAdaptiveOrWorkerMode<br>IppLbTransmitStackCallout<br>IppLoopbackEnqueue<br>IppReceivePackets<br>Ipv4pFragmentPacketHelper<br>KfdDispatchDevCtl<br>LruCleanupDpcRoutine<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>TcpContinueCreateAndConnect<br>TcpCreateAndConnectTcbComplete<br>TcpInspectListenerReceive<br>TcpTcbReceive<br>TlShimDiscoverPhysicalNexthopInterface<br>UdpCreateMessageIndication<br>WfpAcquireFastReadLock<br>WfpAcquireFastWriteLock<br>WfpAcquireSmallReadLock<br>WfpAcquireSmallWriteLock<br>WfpAcquireSpinLock<br>WfpAleAcquirePeerInformation<br>WfpAleAcquireProcessInformation<br>WfpAleAcquireTokenInformation<br>WfpAleAcquireTokenInformationEx<br>WfpAleAuthorizeSend<br>WfpAleCaptureSecurityInformation<br>WfpAleFastFindRemoteEndpoint<br>WfpAleFindRemoteEndpoint<br>WfpAleGetAndWriteLockPartition<br>WfpAleGetTupleStateEntry<br>WfpAleInsertProcessInformation<br>WfpAleInsertRemoteEndpoint<br>WfpAleInsertTokenInformation<br>WfpAleLookupPeerInformation<br>WfpAleLookupProcessInformation<br>WfpAleMatchStatefulEndpoint<br>WfpAleReleasePeerInformation<br>WfpAleReleaseTokenInformationById<br>WfpAlepEndpointCleanupWorkQueueRoutine<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepRemoveProcessInformation<br>WfpAlepTokenInformationCleanup<br>WfpCreateProcessNotifyRoutine<br>WfpDiscoverPhysicalNexthopInterfaceComplete<br>WfpFindAleUserIDByModifiedID<br>WfpInsertModifiedIdCorrelationEntry<br>WfpLookupFilePathTableAndUpdateCount<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpLowerIrqlFromDispatchLevel<br>WfpRaiseIrqlToDispatchLevel<br>WfpReleaseFastReadLock<br>WfpReleaseSmallReadLock<br>WfpReleaseSpinLock<br>WfpRemoveModifiedIdCorrelationEntry<br>WfpShimGetStorageForClassifyValues<br>WfpShimReturnStorageForClassifyValues<br>WfpTlShimInspectRecvTcpDatagram</details>|
|paramcount|0|0|
|address|EXTERNAL:000000be|EXTERNAL:000000be|
|sig|undefined KeGetCurrentProcessorNumberEx(void)|undefined KeGetCurrentProcessorNumberEx(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx Calling Diff


```diff
--- NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx calling
+++ NTOSKRNL.EXE::KeGetCurrentProcessorNumberEx calling
@@ -57,0 +58 @@
+WfpAleAuthorizeSend
```


## WfpSizeTMultiply

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.72|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WfpSizeTMultiply|WfpSizeTMultiply|
|fullname|WfpSizeTMultiply|WfpSizeTMultiply|
|`refcount`|6|7|
|length|84|84|
|called|WfpReportError<br>WfpReportSysErrorAsNtStatus|WfpReportError<br>WfpReportSysErrorAsNtStatus|
|`calling`|WfpAleCopyPeerTokenInfoToTupleIPsecState<br>WfpAleSetOrClearPeerTokenInformation<br>WfpAlepCopyCredentialData|AleRedirectRecordsDeserializeFromBuffer<br>WfpAleCopyPeerTokenInfoToTupleIPsecState<br>WfpAleSetOrClearPeerTokenInformation<br>WfpAlepCopyCredentialData|
|paramcount|0|0|
|`address`|1401800f4|140180284|
|sig|undefined WfpSizeTMultiply(void)|undefined WfpSizeTMultiply(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WfpSizeTMultiply Calling Diff


```diff
--- WfpSizeTMultiply calling
+++ WfpSizeTMultiply calling
@@ -0,0 +1 @@
+AleRedirectRecordsDeserializeFromBuffer
```


## NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeAcquireInStackQueuedSpinLock|KeAcquireInStackQueuedSpinLock|
|fullname|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock|
|`refcount`|220|221|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleEdgeIFsCacheAction<br>AleEdgeIFsIsProfileCrossing<br>AleEdgeIFsLookupCachedAction<br>DeleteExclusion<br>EQoSpMergePolicyTableList<br>FUN_1400331fe<br>FUN_1400a2c65<br>FUN_1400f48b8<br>FUN_140285784<br>FlpInsertInterface</summary>FlpRemoveInterface<br>IPSecAcquireLockItomIf<br>IPSecAcquireLockSa<br>IPSecCanProcessUpcallAndRef<br>IPSecCheckReplayPostAuth<br>IPSecClearRekeyOriginalStateOnLarvalSaDeletion<br>IPSecClearSaOffload<br>IPSecConfirmAndSetOffloadState<br>IPSecDerefOutstandingUpcall<br>IPSecDestroyFlowHandleList<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecDoCommonPerPacketInitOutboundProcessing<br>IPSecGetOffloadedSaParamsInfo<br>IPSecInitializePacketBatchQueue<br>IPSecIsOffloadStateValid<br>IPSecPauseOffloadOnInterface<br>IPSecPlumbHw<br>IPSecPlumbSa<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecResumeOffloadOnInterface<br>IPSecSetOffloadInterfaceParams<br>IPSecStartTimerSa<br>IPSecStopTimerSa<br>IPSecTimerHandlerDeRefSa<br>IPSecUpdateFlowHandleStateOnSa<br>IPSecUpdateNegotiationStatusToEndpoints<br>IPsecDrainPendedPktQueue<br>IPsecHandleAuthFailureInbound<br>IPsecProcessAllBatchingQueuesForCurrentProcessor<br>IPsecQueuePendCtxt<br>InetAcquireSpecificPortUnderLock<br>InetAcquireWildcardPortUnderLock<br>InetBeginEnumeratePortPool<br>InetContinueEnumeratePortPool<br>InetInspectReceiveTcpDatagram<br>InetReleasePortUnderLock<br>InetReleaseWeakReferencePort<br>InetReplacePortEndpoint<br>InetTryToAcquireWeakReferencePort<br>InitializeEndpointContextFromParentContext<br>IpAttachNlClient<br>IpEnumerateAllNeighbors<br>IpFlcAddGroupComplete<br>IpFlcDeleteInterface<br>IpFlcUpdateInterface<br>IpFlcUpdateSubInterface<br>IpGetAllResolveNeighborParameters<br>IpNlpConfirmForwardReachability<br>IpNlpQueryPathInformation<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IppActiveReferenceWorker<br>IppAddWolForAddress<br>IppCommitSetAllLocalAddressParameters<br>IppConfirmNeighborReachability<br>IppCreateInterface<br>IppCreateSubInterface<br>IppCreateSubInterfaceSplitList<br>IppDeleteMfes<br>IppDeleteOffloadEncapsulation<br>IppDereferenceCompartmentInterfaceSet<br>IppDereferenceLocalAddress<br>IppDereferenceLocalMulticastAddress<br>IppDetachNlClientCompleteWorkerRoutine<br>IppDispatchSendPacketHelper<br>IppFillUnicastRouteData<br>IppFindOrCreateCompartmentByIdEx<br>IppFindOrCreateLocalEphemeralAddress<br>IppFindOrCreateLocalMulticastAddress<br>IppFindOrCreateNeighbor<br>IppGetNextNeighborOnInterface<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInspectLocalDatagramsOut<br>IppInterfaceBwAggregateSample<br>IppModifyMulticastGroup<br>IppMulticastDiscoveryVersionTimeout<br>IppMulticastWorkerRoutine<br>IppNotifyAddressChangeAtPassive<br>IppProcessMulticastDiscoveryQuery<br>IppProcessMulticastDiscoveryReport<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppRemoveWolForAddress<br>IppResolveNeighbor<br>IppSendDirect<br>IppSetOffloadEncapsulation<br>IppSuspectNeighborReachability<br>IppUpdateCompartment<br>IppUpdateUnicastRoute<br>IppValidatePath<br>Ipv4EnumerateAllPaths<br>Ipv4SetAllRouteParameters<br>Ipv4pAddressInterface<br>Ipv4pPathMtuDiscoveryTimeout<br>Ipv4pResetAutoConfiguredRoutes<br>Ipv6AttachFlProvider<br>Ipv6EnumerateAllPaths<br>Ipv6SetAllRouteParameters<br>Ipv6pAddressInterface<br>Ipv6pFragmentPacketHelper<br>Ipv6pInitializeRouterContext<br>Ipv6pJoinGroupAtMultipleScopes<br>Ipv6pResetAutoConfiguredDnsSettings<br>Ipv6pResetAutoConfiguredRoutes<br>Ipv6pUpdateAutoConfiguredAddresses<br>Ipv6pUpdateDNSSL<br>Ipv6pUpdateRDNSS<br>QimInspectAssociateQoS<br>QimInspectBindEndpoint<br>QimUpdateUDPEndpointOnPolicyChange<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointInspectComplete<br>RawBindEndpointRequestInspectComplete<br>RawCleanupEndpoint<br>RawCloseEndpoint<br>RawReceiveDatagrams<br>RawSetSockOptEndpoint<br>RtlAcquireScalableWriteLock<br>RtlAcquireWriteLock<br>TcpCloseListener<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateListenerInspectComplete<br>TcpDeleteTcbWithSource<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpInspectConnectionOnListener<br>TcpRemoveTcb<br>TcpSetSockOptListener<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUpdateFastopenKey<br>TlShimOptionalReauthorizeConnection<br>TlShimPurgeAllLayerCache<br>TlShimPurgeLayerCache<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpCloseEndpoint<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpEnumerateEndpoints<br>UdpSetDestinationEndpoint<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>WfpAcquireSpinLock<br>WfpAleDeleteRemoteEndpointLru<br>WfpAleEndpointDeactivationHandler<br>WfpAleFastUdpInspection<br>WfpAleForceReclassifyLayer<br>WfpAleGetRefedUdpCachedRemoteEndpoint<br>WfpAleInsertEndpoint<br>WfpAleOobAcquireStreamEndpoint<br>WfpAleQueryOrInsertEndpointHandle<br>WfpAleRemoveEndpoint<br>WfpAleRequestEndpointDeleteNotification<br>WfpAleStreamLayerChanged<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpInspectReceiveControlShimV4<br>WfpTlShimInspectRecvTcpDatagram</details>|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleEdgeIFsCacheAction<br>AleEdgeIFsIsProfileCrossing<br>AleEdgeIFsLookupCachedAction<br>DeleteExclusion<br>EQoSpMergePolicyTableList<br>FUN_14008250e<br>FUN_1400be5b5<br>FUN_1400f34f8<br>FUN_140285784<br>FlpInsertInterface</summary>FlpRemoveInterface<br>IPSecAcquireLockItomIf<br>IPSecAcquireLockSa<br>IPSecCanProcessUpcallAndRef<br>IPSecCheckReplayPostAuth<br>IPSecClearRekeyOriginalStateOnLarvalSaDeletion<br>IPSecClearSaOffload<br>IPSecConfirmAndSetOffloadState<br>IPSecDerefOutstandingUpcall<br>IPSecDestroyFlowHandleList<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecDoCommonPerPacketInitOutboundProcessing<br>IPSecGetOffloadedSaParamsInfo<br>IPSecInitializePacketBatchQueue<br>IPSecIsOffloadStateValid<br>IPSecPauseOffloadOnInterface<br>IPSecPlumbHw<br>IPSecPlumbSa<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecResumeOffloadOnInterface<br>IPSecSetOffloadInterfaceParams<br>IPSecStartTimerSa<br>IPSecStopTimerSa<br>IPSecTimerHandlerDeRefSa<br>IPSecUpdateFlowHandleStateOnSa<br>IPSecUpdateNegotiationStatusToEndpoints<br>IPsecDrainPendedPktQueue<br>IPsecHandleAuthFailureInbound<br>IPsecProcessAllBatchingQueuesForCurrentProcessor<br>IPsecQueuePendCtxt<br>InetAcquireSpecificPortUnderLock<br>InetAcquireWildcardPortUnderLock<br>InetBeginEnumeratePortPool<br>InetContinueEnumeratePortPool<br>InetInspectReceiveTcpDatagram<br>InetReleasePortUnderLock<br>InetReleaseWeakReferencePort<br>InetReplacePortEndpoint<br>InetTryToAcquireWeakReferencePort<br>InitializeEndpointContextFromParentContext<br>IpAttachNlClient<br>IpEnumerateAllNeighbors<br>IpFlcAddGroupComplete<br>IpFlcDeleteInterface<br>IpFlcUpdateInterface<br>IpFlcUpdateSubInterface<br>IpGetAllResolveNeighborParameters<br>IpNlpConfirmForwardReachability<br>IpNlpQueryPathInformation<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IppActiveReferenceWorker<br>IppAddWolForAddress<br>IppCommitSetAllLocalAddressParameters<br>IppConfirmNeighborReachability<br>IppCreateInterface<br>IppCreateSubInterface<br>IppCreateSubInterfaceSplitList<br>IppDeleteMfes<br>IppDeleteOffloadEncapsulation<br>IppDereferenceCompartmentInterfaceSet<br>IppDereferenceLocalAddress<br>IppDereferenceLocalMulticastAddress<br>IppDetachNlClientCompleteWorkerRoutine<br>IppDispatchSendPacketHelper<br>IppFillUnicastRouteData<br>IppFindOrCreateCompartmentByIdEx<br>IppFindOrCreateLocalEphemeralAddress<br>IppFindOrCreateLocalMulticastAddress<br>IppFindOrCreateNeighbor<br>IppGetNextNeighborOnInterface<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInspectLocalDatagramsOut<br>IppInterfaceBwAggregateSample<br>IppModifyMulticastGroup<br>IppMulticastDiscoveryVersionTimeout<br>IppMulticastWorkerRoutine<br>IppNotifyAddressChangeAtPassive<br>IppProcessMulticastDiscoveryQuery<br>IppProcessMulticastDiscoveryReport<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppRemoveWolForAddress<br>IppResolveNeighbor<br>IppSendDirect<br>IppSetOffloadEncapsulation<br>IppSuspectNeighborReachability<br>IppUpdateCompartment<br>IppUpdateUnicastRoute<br>IppValidatePath<br>Ipv4EnumerateAllPaths<br>Ipv4SetAllRouteParameters<br>Ipv4pAddressInterface<br>Ipv4pPathMtuDiscoveryTimeout<br>Ipv4pResetAutoConfiguredRoutes<br>Ipv6AttachFlProvider<br>Ipv6EnumerateAllPaths<br>Ipv6SetAllRouteParameters<br>Ipv6pAddressInterface<br>Ipv6pFragmentPacketHelper<br>Ipv6pInitializeRouterContext<br>Ipv6pJoinGroupAtMultipleScopes<br>Ipv6pResetAutoConfiguredDnsSettings<br>Ipv6pResetAutoConfiguredRoutes<br>Ipv6pUpdateAutoConfiguredAddresses<br>Ipv6pUpdateDNSSL<br>Ipv6pUpdateRDNSS<br>QimInspectAssociateQoS<br>QimInspectBindEndpoint<br>QimUpdateUDPEndpointOnPolicyChange<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointInspectComplete<br>RawBindEndpointRequestInspectComplete<br>RawCleanupEndpoint<br>RawCloseEndpoint<br>RawReceiveDatagrams<br>RawSetSockOptEndpoint<br>RtlAcquireScalableWriteLock<br>RtlAcquireWriteLock<br>TcpCloseListener<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateListenerInspectComplete<br>TcpDeleteTcbWithSource<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpInspectConnectionOnListener<br>TcpRemoveTcb<br>TcpSetSockOptListener<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUpdateFastopenKey<br>TlShimOptionalReauthorizeConnection<br>TlShimPurgeAllLayerCache<br>TlShimPurgeLayerCache<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpCloseEndpoint<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpEnumerateEndpoints<br>UdpSetDestinationEndpoint<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>WfpAcquireSpinLock<br>WfpAleAuthorizeSend<br>WfpAleDeleteRemoteEndpointLru<br>WfpAleEndpointDeactivationHandler<br>WfpAleFastUdpInspection<br>WfpAleForceReclassifyLayer<br>WfpAleGetRefedUdpCachedRemoteEndpoint<br>WfpAleInsertEndpoint<br>WfpAleOobAcquireStreamEndpoint<br>WfpAleQueryOrInsertEndpointHandle<br>WfpAleRemoveEndpoint<br>WfpAleRequestEndpointDeleteNotification<br>WfpAleStreamLayerChanged<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpInspectReceiveControlShimV4<br>WfpTlShimInspectRecvTcpDatagram</details>|
|paramcount|0|0|
|address|EXTERNAL:000000f2|EXTERNAL:000000f2|
|sig|undefined KeAcquireInStackQueuedSpinLock(void)|undefined KeAcquireInStackQueuedSpinLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock Calling Diff


```diff
--- NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock calling
+++ NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock calling
@@ -7,3 +7,3 @@
-FUN_1400331fe
-FUN_1400a2c65
-FUN_1400f48b8
+FUN_14008250e
+FUN_1400be5b5
+FUN_1400f34f8
@@ -156,0 +157 @@
+WfpAleAuthorizeSend
```


## RtlAcquireScalableWriteLockAtDpcLevel

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.79|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|RtlAcquireScalableWriteLockAtDpcLevel|RtlAcquireScalableWriteLockAtDpcLevel|
|fullname|RtlAcquireScalableWriteLockAtDpcLevel|RtlAcquireScalableWriteLockAtDpcLevel|
|`refcount`|6|7|
|length|55|55|
|called|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel|
|`calling`|IppHandleNeighborAdvertisement<br>IppRouteSetTimeout<br>Ipv6pRouterPref64GetNextExpirationTick<br>Ipv6pRouterPref64Timeout|IppCreateForwardPath<br>IppHandleNeighborAdvertisement<br>IppRouteSetTimeout<br>Ipv6pRouterPref64GetNextExpirationTick<br>Ipv6pRouterPref64Timeout|
|paramcount|0|0|
|`address`|140100200|1400fef40|
|sig|undefined RtlAcquireScalableWriteLockAtDpcLevel(void)|undefined RtlAcquireScalableWriteLockAtDpcLevel(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### RtlAcquireScalableWriteLockAtDpcLevel Calling Diff


```diff
--- RtlAcquireScalableWriteLockAtDpcLevel calling
+++ RtlAcquireScalableWriteLockAtDpcLevel calling
@@ -0,0 +1 @@
+IppCreateForwardPath
```


## AleGetTickCount

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleGetTickCount|AleGetTickCount|
|fullname|AleGetTickCount|AleGetTickCount|
|`refcount`|7|6|
|length|55|55|
|called|NTOSKRNL.EXE::KeQueryInterruptTimePrecise|NTOSKRNL.EXE::KeQueryInterruptTimePrecise|
|`calling`|WfpAleAuthorizeAccept<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeReceive<br>WfpAleAuthorizeSend<br>WfpAlepReauthorizeInboundConnection<br>WfpAlepReauthorizeOutboundConnection|WfpAleAuthorizeAccept<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeReceive<br>WfpAlepReauthorizeInboundConnection<br>WfpAlepReauthorizeOutboundConnection|
|paramcount|0|0|
|`address`|140007600|140033940|
|sig|undefined AleGetTickCount(void)|undefined AleGetTickCount(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleGetTickCount Calling Diff


```diff
--- AleGetTickCount calling
+++ AleGetTickCount calling
@@ -4 +3,0 @@
-WfpAleAuthorizeSend
```


## NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|MmMapLockedPagesSpecifyCache|MmMapLockedPagesSpecifyCache|
|fullname|NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache|NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache|
|`refcount`|91|90|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>FUN_1401d5552<br>FlFastSendPackets<br>FlpCloneMdl<br>FlpParsePacket<br>FlpPrepareReceiveNblsForFlush<br>FlpSendPacketsHelper<br>FlpValidateNetBufferListChain<br>IdpDispatchIoctl<br>IgmppCreateMulticastDiscoveryReport<br>IpIpsProviderClonePacket<br>IpIpsProviderSendIcmpError</summary>IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams<br>IppAddEspHeader<br>IppAhProcessPacket<br>IppAllocateAndFillIcmpHeader<br>IppCreateClonePacketForRaw<br>IppCreateStrongClonePacket<br>IppEnsureContiguousHeaders<br>IppEspProcessPacket<br>IppFillChecksumAtOffset<br>IppForwardPackets<br>IppForwardPacketsPostInspection<br>IppFreeNetBufferListForEcho<br>IppGetForwardInjectionParameters<br>IppGroupFragmentsForIpsnpi<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppIpsCopyEthernetHeader<br>IppIpsDropFailedClientChain<br>IppIpsL3ForwardNbl<br>IppIpsPrepareNblForBatchL3Forward<br>IppIpsPrepareNblForL2Forward<br>IppLbPrevalidateReceive<br>IppNotifyMfeChange<br>IppPacketizeDatagramsForHeaderBuild<br>IppParseHeaderIntoPacket<br>IppPreparePacketChecksum<br>IppRebuildUpperLayerProtocolChecksum<br>IppReceiveEspNbl<br>IppReceiveHeadersHelper<br>Ipv4SendEchoRequestComplete<br>Ipv4SetEchoRequestCreate<br>Ipv4pFillPacketChecksum<br>Ipv4pFragmentPacketHelper<br>Ipv4pValidateNetBuffer<br>Ipv6SendEchoRequestComplete<br>Ipv6SetEchoRequestCreate<br>Ipv6pFillHeaderIncludeProtocolHeader<br>Ipv6pValidateNetBuffer<br>MldpCreateMulticastDiscoveryReport<br>NetioGetDataBufferIfSafe<br>SegLibPvtDeferredChecksumMdlChain<br>TcpResetSend<br>TcpSegmentTcbSend<br>TcpSynTcbSend<br>TcpTcbHeaderSend<br>TcpTcbKeepAliveSend<br>TcpTimeWaitTcbSend<br>UdpCreateDatagram<br>WfpAleDispatchIo</details>|<details><summary>Expand for full list:<br>FUN_1401d55ec<br>FlFastSendPackets<br>FlpCloneMdl<br>FlpParsePacket<br>FlpPrepareReceiveNblsForFlush<br>FlpSendPacketsHelper<br>FlpValidateNetBufferListChain<br>IdpDispatchIoctl<br>IgmppCreateMulticastDiscoveryReport<br>IpIpsProviderClonePacket<br>IpIpsProviderSendIcmpError</summary>IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams<br>IppAddEspHeader<br>IppAhProcessPacket<br>IppAllocateAndFillIcmpHeader<br>IppBuildFirstHeader<br>IppCreateClonePacketForRaw<br>IppCreateStrongClonePacket<br>IppEnsureContiguousHeaders<br>IppEspProcessPacket<br>IppFillChecksumAtOffset<br>IppForwardPackets<br>IppForwardPacketsPostInspection<br>IppFreeNetBufferListForEcho<br>IppGetForwardInjectionParameters<br>IppGroupFragmentsForIpsnpi<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppIpsCopyEthernetHeader<br>IppIpsDropFailedClientChain<br>IppIpsL3ForwardNbl<br>IppIpsPrepareNblForBatchL3Forward<br>IppIpsPrepareNblForL2Forward<br>IppLbPrevalidateReceive<br>IppNotifyMfeChange<br>IppParseHeaderIntoPacket<br>IppPreparePacketChecksum<br>IppRebuildUpperLayerProtocolChecksum<br>IppReceiveEspNbl<br>IppReceiveHeadersHelper<br>Ipv4SendEchoRequestComplete<br>Ipv4SetEchoRequestCreate<br>Ipv4pFillPacketChecksum<br>Ipv4pFragmentPacketHelper<br>Ipv4pValidateNetBuffer<br>Ipv6SendEchoRequestComplete<br>Ipv6SetEchoRequestCreate<br>Ipv6pFillHeaderIncludeProtocolHeader<br>Ipv6pValidateNetBuffer<br>MldpCreateMulticastDiscoveryReport<br>NetioGetDataBufferIfSafe<br>SegLibPvtDeferredChecksumMdlChain<br>TcpResetSend<br>TcpSegmentTcbSend<br>TcpSynTcbSend<br>TcpTcbHeaderSend<br>TcpTcbKeepAliveSend<br>TcpTimeWaitTcbSend<br>UdpCreateDatagram<br>WfpAleDispatchIo</details>|
|paramcount|0|0|
|`address`|EXTERNAL:00000076|EXTERNAL:00000077|
|sig|undefined MmMapLockedPagesSpecifyCache(void)|undefined MmMapLockedPagesSpecifyCache(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache Calling Diff


```diff
--- NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache calling
+++ NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache calling
@@ -1 +1 @@
-FUN_1401d5552
+FUN_1401d55ec
@@ -16,0 +17 @@
+IppBuildFirstHeader
@@ -37 +37,0 @@
-IppPacketizeDatagramsForHeaderBuild
```


## NTOSKRNL.EXE::PsGetProcessImageFileName

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|PsGetProcessImageFileName|PsGetProcessImageFileName|
|fullname|NTOSKRNL.EXE::PsGetProcessImageFileName|NTOSKRNL.EXE::PsGetProcessImageFileName|
|`refcount`|9|8|
|length|0|0|
|called|||
|`calling`|FUN_1401d2b5d<br>IpGetAllResolveNeighborParameters<br>IpNlpSetSessionInfo<br>Ipv6pFragmentPacketHelper<br>TcpTraceConnectionSummary|FUN_1401d2667<br>IpGetAllResolveNeighborParameters<br>IpNlpSetSessionInfo<br>Ipv6pFragmentPacketHelper<br>TcpTraceConnectionSummary|
|paramcount|0|0|
|`address`|EXTERNAL:00000069|EXTERNAL:0000006a|
|sig|undefined PsGetProcessImageFileName(void)|undefined PsGetProcessImageFileName(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::PsGetProcessImageFileName Calling Diff


```diff
--- NTOSKRNL.EXE::PsGetProcessImageFileName calling
+++ NTOSKRNL.EXE::PsGetProcessImageFileName calling
@@ -1 +1 @@
-FUN_1401d2b5d
+FUN_1401d2667
```


## wil_details_IsEnabledFallback

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.83|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|wil_details_IsEnabledFallback|wil_details_IsEnabledFallback|
|fullname|wil_details_IsEnabledFallback|wil_details_IsEnabledFallback|
|`refcount`|44|49|
|length|143|143|
|called|wil_details_FeatureReporting_ReportUsageToService<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState<br>wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|wil_details_FeatureReporting_ReportUsageToService<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState<br>wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|
|`calling`|<details><summary>Expand for full list:<br>Feature_1910228280__private_IsEnabledFallback<br>Feature_201837883__private_IsEnabledFallback<br>Feature_2267542840__private_IsEnabledFallback<br>Feature_2330658107__private_IsEnabledFallback<br>Feature_2935210296__private_IsEnabledFallback<br>Feature_330298681__private_IsEnabledFallback<br>Feature_3336659256__private_IsEnabledFallback<br>Feature_3498295611__private_IsEnabledFallback<br>Feature_3564619066__private_IsEnabledFallback<br>Feature_3845112121__private_IsEnabledFallback<br>Feature_4124297528__private_IsEnabledFallback</summary>Feature_5988_5730__private_IsEnabledFallback<br>Feature_BugFix_25D_Optimize_Expensive_Telemetry__private_IsEnabledFallback<br>Feature_CLAT_DHCP_Option108__private_IsEnabledFallback<br>Feature_CLAT_PREF64_FromRA__private_IsEnabledFallback<br>Feature_CLAT_Preview2_DhcpIPxlatPolicyMgr__private_IsEnabledFallback<br>Feature_DPT_K2_RouteTimer_ReInit__private_IsEnabledFallback<br>Feature_FWPS_BugFixes_25B__private_IsEnabledFallback<br>Feature_Firewall_042024__private_IsEnabledFallback<br>Feature_IPSec_Point_To_Site__private_IsEnabledFallback<br>Feature_K2_IPv6Locking__private_IsEnabledFallback<br>Feature_Localhost_ConnectRedirect_BugFixes_25B__private_IsEnabledFallback<br>Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_IsEnabledFallback<br>Feature_NVBugFixes2507__private_IsEnabledFallback<br>Feature_Netsec_BugFix_UDPCaching__private_IsEnabledFallback<br>Feature_Netsec_BugFix_WFPMemLeak__private_IsEnabledFallback<br>Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledFallback<br>Feature_Servicing_FseUseAfterFreeFix__private_IsEnabledFallback<br>Feature_Servicing_TCPIPPPLOptimization__private_IsEnabledFallback<br>Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledFallback<br>Feature_TCPIP_2025_KCSAN_RemoveHistograms__private_IsEnabledFallback<br>Feature_TCPIP_2025_TcpAfFix__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave2_SegLibHeap__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_FlVirtualInterfaceQueryCompartment__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_LSO_Diag__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_TCPSackReneging__private_IsEnabledFallback<br>Feature_TCPIP_58629296_Fix__private_IsEnabledFallback<br>Feature_TCPIP_FLS_CrossInterface__private_IsEnabledFallback<br>Feature_TCPIP_SFI_60707507_Fix__private_IsEnabledFallback<br>Feature_TCPIP_USGv6_FirstFragmentSecurityHeaderFix__private_IsEnabledFallback<br>Feature_TCPIP_Wave5_59975062_Fix__private_IsEnabledFallback<br>Feature_TCPIP_Wave5_FlVirtSetFailureReasonFix__private_IsEnabledFallback</details>|<details><summary>Expand for full list:<br>Feature_1910228280__private_IsEnabledFallback<br>Feature_201837883__private_IsEnabledFallback<br>Feature_2267542840__private_IsEnabledFallback<br>Feature_2330658107__private_IsEnabledFallback<br>Feature_2930222395__private_IsEnabledFallback<br>Feature_2935210296__private_IsEnabledFallback<br>Feature_330298681__private_IsEnabledFallback<br>Feature_3336659256__private_IsEnabledFallback<br>Feature_3498295611__private_IsEnabledFallback<br>Feature_3529480505__private_IsEnabledFallback<br>Feature_3535250745__private_IsEnabledFallback</summary>Feature_3564619066__private_IsEnabledFallback<br>Feature_3722700091__private_IsEnabledFallback<br>Feature_3802637627__private_IsEnabledFallback<br>Feature_3845112121__private_IsEnabledFallback<br>Feature_4124297528__private_IsEnabledFallback<br>Feature_5988_5730__private_IsEnabledFallback<br>Feature_734245178__private_IsEnabledFallback<br>Feature_76261690__private_IsEnabledFallback<br>Feature_BugFix_25D_Optimize_Expensive_Telemetry__private_IsEnabledFallback<br>Feature_CLAT_DHCP_Option108__private_IsEnabledFallback<br>Feature_CLAT_PREF64_FromRA__private_IsEnabledFallback<br>Feature_CLAT_Preview2_DhcpIPxlatPolicyMgr__private_IsEnabledFallback<br>Feature_DPT_K2_IppBuildHeaderCleanup__private_IsEnabledFallback<br>Feature_DPT_K2_RouteTimer_ReInit__private_IsEnabledFallback<br>Feature_FWPS_BugFixes_25B__private_IsEnabledFallback<br>Feature_Firewall_042024__private_IsEnabledFallback<br>Feature_IPSec_Point_To_Site__private_IsEnabledFallback<br>Feature_K2_IPv6Locking__private_IsEnabledFallback<br>Feature_NVBugFixes2507__private_IsEnabledFallback<br>Feature_Netsec_AuditMode_Hardening__private_IsEnabledFallback<br>Feature_Netsec_BugFix_UDPCaching__private_IsEnabledFallback<br>Feature_Servicing_FseUseAfterFreeFix__private_IsEnabledFallback<br>Feature_Servicing_TCPIPPPLOptimization__private_IsEnabledFallback<br>Feature_TCPIP_2025_KCSAN_RemoveHistograms__private_IsEnabledFallback<br>Feature_TCPIP_2025_TcpAfFix__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave2_SegLibHeap__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_FlVirtualInterfaceQueryCompartment__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_IsolationInfoCompartmentGuid__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_LSO_Diag__private_IsEnabledFallback<br>Feature_TCPIP_2025_Wave4_TCPSackReneging__private_IsEnabledFallback<br>Feature_TCPIP_FLS_CrossInterface__private_IsEnabledFallback<br>Feature_TCPIP_SFI_60707507_Fix__private_IsEnabledFallback<br>Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledFallback<br>Feature_TCPIP_Stack_Var_To_Heap_Special_Pool__private_IsEnabledFallback<br>Feature_TCPIP_USGv6_FirstFragmentSecurityHeaderFix__private_IsEnabledFallback<br>Feature_TCPIP_Wave5_59975062_Fix__private_IsEnabledFallback<br>Feature_TCPIP_Wave5_FlVirtSetFailureReasonFix__private_IsEnabledFallback</details>|
|paramcount|0|0|
|`address`|140138720|140137068|
|sig|undefined wil_details_IsEnabledFallback(void)|undefined wil_details_IsEnabledFallback(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_IsEnabledFallback Calling Diff


```diff
--- wil_details_IsEnabledFallback calling
+++ wil_details_IsEnabledFallback calling
@@ -4,0 +5 @@
+Feature_2930222395__private_IsEnabledFallback
@@ -8,0 +10,2 @@
+Feature_3529480505__private_IsEnabledFallback
+Feature_3535250745__private_IsEnabledFallback
@@ -9,0 +13,2 @@
+Feature_3722700091__private_IsEnabledFallback
+Feature_3802637627__private_IsEnabledFallback
@@ -12,0 +18,2 @@
+Feature_734245178__private_IsEnabledFallback
+Feature_76261690__private_IsEnabledFallback
@@ -16,0 +24 @@
+Feature_DPT_K2_IppBuildHeaderCleanup__private_IsEnabledFallback
@@ -22,2 +29,0 @@
-Feature_Localhost_ConnectRedirect_BugFixes_25B__private_IsEnabledFallback
-Feature_NCSI_Fix_CaptivePortalDnsCacheInvalidation__private_IsEnabledFallback
@@ -24,0 +31 @@
+Feature_Netsec_AuditMode_Hardening__private_IsEnabledFallback
@@ -26,2 +32,0 @@
-Feature_Netsec_BugFix_WFPMemLeak__private_IsEnabledFallback
-Feature_Netsec_BugFixes_25C_Loopback_Checksum_Injection__private_IsEnabledFallback
@@ -30 +34,0 @@
-Feature_TCPIP_2025_2512_KCSAN_Fix__private_IsEnabledFallback
@@ -38 +41,0 @@
-Feature_TCPIP_58629296_Fix__private_IsEnabledFallback
@@ -40,0 +44,2 @@
+Feature_TCPIP_Stack_Var_To_Heap_Fix__private_IsEnabledFallback
+Feature_TCPIP_Stack_Var_To_Heap_Special_Pool__private_IsEnabledFallback
```


## UdpDereferenceEndpoint

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.73|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|UdpDereferenceEndpoint|UdpDereferenceEndpoint|
|fullname|UdpDereferenceEndpoint|UdpDereferenceEndpoint|
|`refcount`|24|23|
|length|52|52|
|called|UdpCleanupEndpoint|UdpCleanupEndpoint|
|`calling`|<details><summary>Expand for full list:<br>InetInspectDereferenceEndpoint<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirectCallback<br>UdpConnectRedirectCallbackContinue<br>UdpEnumerateEndpoints<br>UdpNotificationChannelEndpointWorkQueueRoutine<br>UdpPortReservationWorkQueueRoutine<br>UdpQuerySecurityEndpointWorkQueueRoutine<br>UdpReceiveControlMessages</summary>UdpScheduleNotificationChannelSetupRequest<br>UdpSendMessagesOnPath<br>UdpSetSecurityEndpointWorkQueueRoutine<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>UdpUnlinkNcmContext<br>WfpAleReleaseStackEndpoint</details>|<details><summary>Expand for full list:<br>InetInspectDereferenceEndpoint<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirectCallbackContinue<br>UdpEnumerateEndpoints<br>UdpNotificationChannelEndpointWorkQueueRoutine<br>UdpPortReservationWorkQueueRoutine<br>UdpQuerySecurityEndpointWorkQueueRoutine<br>UdpReceiveControlMessages<br>UdpScheduleNotificationChannelSetupRequest</summary>UdpSendMessagesOnPath<br>UdpSetSecurityEndpointWorkQueueRoutine<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>UdpUnlinkNcmContext<br>WfpAleReleaseStackEndpoint</details>|
|paramcount|0|0|
|`address`|14007e160|14001aff0|
|sig|undefined UdpDereferenceEndpoint(void)|undefined UdpDereferenceEndpoint(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### UdpDereferenceEndpoint Calling Diff


```diff
--- UdpDereferenceEndpoint calling
+++ UdpDereferenceEndpoint calling
@@ -5 +4,0 @@
-UdpConnectRedirectCallback
```


## NTOSKRNL.EXE::ExAllocatePool2

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|ExAllocatePool2|ExAllocatePool2|
|fullname|NTOSKRNL.EXE::ExAllocatePool2|NTOSKRNL.EXE::ExAllocatePool2|
|`refcount`|361|362|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleEdgeIFsCacheAction<br>AleEdgeIFsLookupCachedAction<br>BLInitializeEx<br>CarAllocateCacheAwareReference<br>CreateConnectionSocketContext<br>CreateExclusion<br>CreateFqbnString<br>CreateListeningSocketContext<br>CreateMessageContext<br>CreatePartition</summary>EQoSAllocateHkeUrlSearch<br>EQoSAttachQoSProvider<br>EQoSCreateNetBlockWithUninitializedNetPolicies<br>EQoSCreatePolicyOwner<br>EQoSCreatePolicyTable<br>EQoSCreateQoSProfile<br>EQoSCreateUrlSection<br>EQoSHkeClientNotifyAttachProvider<br>EQoSProcessQoSPolicies<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSSetUrlEntry<br>EQoSpAllocateAndInitializePolicy<br>EQoSpCounterSetCallback<br>EQoSpCreateAppName<br>EQoSpNmrRegisterClient<br>EQoSpPolicyParseUrl<br>EQoSpRegistryQueryRoutineV2<br>EQoSpTrimUserPolicyList<br>EdpAuditLogApplicationLearningNetwork<br>EdppAddItemToAppCache<br>EnterpriseContextLibMemAlloc<br>FUN_1401c6b02<br>FUN_1401cf8ec<br>FallbackCreate<br>Fl6tStart<br>FlAttachClient<br>FlAttachFlsClient<br>FlAttachNsiClient<br>FlTeredoNotifyChange<br>FlTeredoPortNotifyChange<br>FlTunnelNotifyChange<br>FllAttachClient<br>FlpAllocateInjectPacketChain<br>FlpCreateServiceChainNode<br>FlpInitializeFlsServiceChain<br>FseAllocateSocketOpContext<br>FseGetCompleteMessage<br>FseInitializeSocketOpContext<br>FseMidlObjectDecode<br>GetAttribute<br>GetEnterpriseContext<br>IndicateDropAudit<br>InetAllocateAndQueryAncillaryDataAf<br>InetCreateCompartmentSet<br>InetCreateOrReferenceCompartmentById<br>InetCreatePortPool<br>InetInitializeAddressPortBitmap<br>InetInitializeSessionInformationAf<br>InetNlNotifyAttachProvider<br>InetNsiProviderNotifyAttachClient<br>InetReleaseWeakReferencePort<br>InetStartModule<br>InetTlNotifyAttachClient<br>InetWakeAcquirePortAf<br>InetWakeCreatePortPool<br>InitalizeClientGlobals<br>InitializeAssignmentArray<br>InitializeTelemetryAssertsKMWorkerInternal<br>InternalGetIfEntry2Ex<br>IpAttachIpsClient<br>IpAttachNlClient<br>IpAttachNsiClient<br>IpFlcReturnNetworkAddressList<br>IpIpsProviderPendPackets<br>IpNlpInheritSessionInfo<br>IpNlpInitializeSessionInfo<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IppAddAutoConfiguredRoutesForAddress<br>IppAddBandwidthListenerUnderLock<br>IppAddNetworkTableEntry<br>IppAddOrRemoveBandwidthListeners<br>IppAddPrefixPolicy<br>IppAddQualifiedRouteAndNextHop<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveReceivePerProcessorContexts<br>IppAddRemoveSendPerProcessorContexts<br>IppAddRemoveSubinterfacesProcessorContext<br>IppAddSourcesToMulticastGroup<br>IppAddSourcesToMulticastSessionState<br>IppAddressSetTimeout<br>IppAllocateAndInitializeRouteLookupContext<br>IppAllocateInterface<br>IppAllocateIpsPacketChain<br>IppAllocateNetBufferListForEcho<br>IppAllocateSubInterface<br>IppCommitSetAllMfeParameters<br>IppCopyEncryptedPayload<br>IppCreateCompartment<br>IppCreateLocalAddress<br>IppCreateMfe<br>IppCreateMulticastSessionState<br>IppCreateNeighbor<br>IppCreatePhysicalInterfaceRequest<br>IppCreateSortedAddressPairs<br>IppCreateSortedAddressPairsEx<br>IppCreateUnicastRoute<br>IppDadAnnouncementTimeout<br>IppDeferNetworkStateUpdateProcessing<br>IppDeleteAutoConfiguredRoutesForAddress<br>IppEnumerateInterfaceAddresses<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindOrCreateWolContext<br>IppGetAllUnicastAddressesOnHost<br>IppInitializeHashTable<br>IppInitializeIpsServiceChain<br>IppInitializeMfeSet<br>IppInitializePerProcBatchState<br>IppInitializeTimerManager<br>IppInsertIpsClientToServiceChain<br>IppInspectInitializeRawSendSessionInfo<br>IppInspectQueryRealNextHopInterface<br>IppInterfaceBwPersistParameters<br>IppLbAllocateECs<br>IppLbAllocateWorkItems<br>IppNotifyAddressChange<br>IppNotifyDad<br>IppNotifyEchoRequestChange<br>IppNotifyInterfaceChange<br>IppNotifyLinkLocalAddressChange<br>IppNotifyMfeChange<br>IppNotifyNeighborChange<br>IppNotifyNeighborResolution<br>IppNotifyRouteChange<br>IppNotifySitePrefixChange<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPhysicalInterfaceRequestNotification<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppQueueMulticastDiscoveryRecord<br>IppRoutingEpochTimeout<br>IppScheduleActiveReferenceProcessing<br>IppScheduleWolUpdateOnPowerSourceChangeForInterface<br>IppScheduleWolWorkItem<br>IppSetMulticastSessionState<br>IppSetOffloadChange<br>IppSortAddressPairsForShortConnections<br>IppSortDestinationAddresses<br>IppStartBatching<br>IppStartControlPoolManager<br>IppStartEchoRequestManager<br>IppStartInterfaceManager<br>IppStartPhysicalInterfaceRequestManager<br>IppStartValidator<br>IppSwitchToUserConfiguredPrefixPolicies<br>IppUpdatePathNotification<br>IppValidateSettingsOnReconnect<br>Ipv4AttachFlProvider<br>Ipv4AttachPnpEventClient<br>Ipv4SetEchoRequestCreate<br>Ipv4pHandleEchoRequest<br>Ipv4pRegSyncIPAddressChangeHandler<br>Ipv4pRegSyncInterfaceDefaultGatewayChangeHandler<br>Ipv6AttachFlProvider<br>Ipv6NotifyPotentialRouterChange<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddPotentialRouter<br>Ipv6pCreateDNSSLEntry<br>Ipv6pCreatePref64Entry<br>Ipv6pCreateRDNSSEntry<br>Ipv6pHandleMldQuery<br>Ipv6pHandleNeighborSolicitation<br>Ipv6pInitializeRouterContext<br>Ipv6pNotifyRouterInformationChange<br>Ipv6pUpdateSitePrefix<br>KfdDispatchDevCtl<br>LwAllocQueue<br>LwInitializeQueueEx<br>MicrosoftTelemetryAssertTriggeredWorker<br>NetioAllocateAndGetIbftTable<br>NetioAllocateMibTable<br>NetioInitializeHistogram<br>NetioRegisterAddressChangeNotification<br>NotifyIpInterfaceChange<br>OlmNotifyAddInterface<br>PrepareAndStoreFilterData<br>ProcessRedirectLayerForNonNativeTCP<br>QimAttachEQoSProfileToQimContext<br>QimInspectAssociateQoS<br>QimInspectCreateEndpoint<br>QimInspectSetQoS<br>QueryAttributes<br>RawActivateEndpoint<br>RawBindEndpoint<br>RawCreateAndActivateEndpoint<br>RawCreateEndpoint<br>RawCreateMessageIndication<br>RawInitializeAf<br>RawSendMessagesOnPathCreation<br>RawSetSockOptEndpoint<br>RngInitializeRngPool<br>RssAllocateBitMap<br>RssControlAddInterface<br>RssCreateAdapter<br>RssQueryInterfacePortInformation<br>RssQueryPortProcessorInfo<br>RssRefreshPortPresence<br>RssStartDistribution<br>SegLibGetModuleBase<br>TcpAbortTcb<br>TcpAllocateUrgentTcbDelivery<br>TcpBwInitializeBandwidthBlock<br>TcpCreateAndConnectTcb<br>TcpCreateCompartment<br>TcpCreateListener<br>TcpCreateTimeWaitTcb<br>TcpDequeueTcbSend<br>TcpDisconnectTcb<br>TcpGenerateFastopenCookie<br>TcpHandleServerSideFastopenOption<br>TcpInitializeIsnGenerator<br>TcpInitializeNsiObject<br>TcpIoControlEndpoint<br>TcpIoControlListener<br>TcpIsnProcessorAddHandler<br>TcpListenerAddPendingConnection<br>TcpNotifyRetransmitTimeout<br>TcpPortPropertySetAllParameters<br>TcpQueryBinaryValueKey<br>TcpQuerySecurityEndpoint<br>TcpQuerySecurityListener<br>TcpQuerySecurityTcb<br>TcpScheduleNotificationChannelWorkItemTcb<br>TcpSetSecurityEndpoint<br>TcpSetSockOptEndpoint<br>TcpSetSockOptListener<br>TcpStartDelayModule<br>TcpStartInetModule<br>TcpStartOlmModule<br>TcpStartPartitionModule<br>TcpStartReceiveModule<br>TcpStartTcbModule<br>TcpStartTimerModule<br>TcpTcbControlReceive<br>TcpUpdateTcbEstats<br>TcpipConfigNsiProviderAttachClient<br>TcpipConfigStartup<br>TcpipGetAppNameFromProcess<br>TcpipPcwPerCpuCallback<br>TcpipPcwStartup<br>TlRdmaAttachClient<br>TlRdmaProviderOpenNDKAdapter<br>UQoSAttachClient<br>UdpActivateEndpoint<br>UdpBindEndpoint<br>UdpConnectRedirect<br>UdpCreateCompartment<br>UdpCreateEndpoint<br>UdpEnqueueTimestamp<br>UdpInitializeConfig<br>UdpIoControlEndpoint<br>UdpOffloadAddInterface<br>UdpQuerySecurityEndpoint<br>UdpReceiveDatagrams<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSetSecurityEndpoint<br>UdpSetSockOptEndpoint<br>UdpTlProviderMessageCalloutRoutine<br>UrlpInitializeContext<br>UrlpReAllocHelper<br>WfpAleAuditEvent<br>WfpAleCreateSecondaryAppMetaData<br>WfpAleCreateSecondaryAppMetaDataSoSecurityDescriptor<br>WfpAleFastUdpInspection<br>WfpAleGetServiceSidsFromToken<br>WfpAleRequestEndpointDeleteNotification<br>WfpAlepPeerInformationAllocate<br>WfpAlepPeerInformationAllocateWithQuota2<br>WfpCreateProcessNotifyRoutine<br>WfpInsertModifiedIdCorrelationEntry<br>WfpNlcAttachNlProvider<br>WfpPoolAllocNonPaged<br>WfpPoolAllocQualified</details>|<details><summary>Expand for full list:<br>AleAcquireEndpointLockEx<br>AleEdgeIFsCacheAction<br>AleEdgeIFsLookupCachedAction<br>BLInitializeEx<br>CarAllocateCacheAwareReference<br>CreateConnectionSocketContext<br>CreateExclusion<br>CreateFqbnString<br>CreateListeningSocketContext<br>CreateMessageContext<br>CreatePartition</summary>CreateUdpConnectRedirectCallbackContext<br>EQoSAllocateHkeUrlSearch<br>EQoSAttachQoSProvider<br>EQoSCreateNetBlockWithUninitializedNetPolicies<br>EQoSCreatePolicyOwner<br>EQoSCreatePolicyTable<br>EQoSCreateQoSProfile<br>EQoSCreateUrlSection<br>EQoSHkeClientNotifyAttachProvider<br>EQoSProcessQoSPolicies<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSSetUrlEntry<br>EQoSpAllocateAndInitializePolicy<br>EQoSpCounterSetCallback<br>EQoSpCreateAppName<br>EQoSpNmrRegisterClient<br>EQoSpPolicyParseUrl<br>EQoSpRegistryQueryRoutineV2<br>EQoSpTrimUserPolicyList<br>EdpAuditLogApplicationLearningNetwork<br>EdppAddItemToAppCache<br>EnterpriseContextLibMemAlloc<br>FUN_1401ce296<br>FUN_1401d04f2<br>FallbackCreate<br>Fl6tStart<br>FlAttachClient<br>FlAttachFlsClient<br>FlAttachNsiClient<br>FlTeredoNotifyChange<br>FlTeredoPortNotifyChange<br>FlTunnelNotifyChange<br>FllAttachClient<br>FlpAllocateInjectPacketChain<br>FlpCreateServiceChainNode<br>FlpInitializeFlsServiceChain<br>FseAllocateSocketOpContext<br>FseGetCompleteMessage<br>FseInitializeSocketOpContext<br>FseMidlObjectDecode<br>GetAttribute<br>GetEnterpriseContext<br>IndicateDropAudit<br>InetAllocateAndQueryAncillaryDataAf<br>InetCreateCompartmentSet<br>InetCreateOrReferenceCompartmentById<br>InetCreatePortPool<br>InetInitializeAddressPortBitmap<br>InetInitializeSessionInformationAf<br>InetNlNotifyAttachProvider<br>InetNsiProviderNotifyAttachClient<br>InetReleaseWeakReferencePort<br>InetStartModule<br>InetTlNotifyAttachClient<br>InetWakeAcquirePortAf<br>InetWakeCreatePortPool<br>InitalizeClientGlobals<br>InitializeAssignmentArray<br>InitializeTelemetryAssertsKMWorkerInternal<br>InternalGetIfEntry2Ex<br>IpAttachIpsClient<br>IpAttachNlClient<br>IpAttachNsiClient<br>IpFlcReturnNetworkAddressList<br>IpIpsProviderPendPackets<br>IpNlpInheritSessionInfo<br>IpNlpInitializeSessionInfo<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IppAddAutoConfiguredRoutesForAddress<br>IppAddBandwidthListenerUnderLock<br>IppAddNetworkTableEntry<br>IppAddOrRemoveBandwidthListeners<br>IppAddPrefixPolicy<br>IppAddQualifiedRouteAndNextHop<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveReceivePerProcessorContexts<br>IppAddRemoveSendPerProcessorContexts<br>IppAddRemoveSubinterfacesProcessorContext<br>IppAddSourcesToMulticastGroup<br>IppAddSourcesToMulticastSessionState<br>IppAddressSetTimeout<br>IppAllocateAndInitializeRouteLookupContext<br>IppAllocateInterface<br>IppAllocateIpsPacketChain<br>IppAllocateNetBufferListForEcho<br>IppAllocateSubInterface<br>IppCommitSetAllMfeParameters<br>IppCopyEncryptedPayload<br>IppCreateCompartment<br>IppCreateLocalAddress<br>IppCreateMfe<br>IppCreateMulticastSessionState<br>IppCreateNeighbor<br>IppCreatePhysicalInterfaceRequest<br>IppCreateSortedAddressPairs<br>IppCreateSortedAddressPairsEx<br>IppCreateUnicastRoute<br>IppDadAnnouncementTimeout<br>IppDeferNetworkStateUpdateProcessing<br>IppDeleteAutoConfiguredRoutesForAddress<br>IppEnumerateInterfaceAddresses<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindOrCreateWolContext<br>IppGetAllUnicastAddressesOnHost<br>IppInitializeHashTable<br>IppInitializeIpsServiceChain<br>IppInitializeMfeSet<br>IppInitializePerProcBatchState<br>IppInitializeTimerManager<br>IppInsertIpsClientToServiceChain<br>IppInspectInitializeRawSendSessionInfo<br>IppInspectQueryRealNextHopInterface<br>IppInterfaceBwPersistParameters<br>IppLbAllocateECs<br>IppLbAllocateWorkItems<br>IppNotifyAddressChange<br>IppNotifyDad<br>IppNotifyEchoRequestChange<br>IppNotifyInterfaceChange<br>IppNotifyLinkLocalAddressChange<br>IppNotifyMfeChange<br>IppNotifyNeighborChange<br>IppNotifyNeighborResolution<br>IppNotifyRouteChange<br>IppNotifySitePrefixChange<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPhysicalInterfaceRequestNotification<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppQueueMulticastDiscoveryRecord<br>IppRoutingEpochTimeout<br>IppScheduleActiveReferenceProcessing<br>IppScheduleWolUpdateOnPowerSourceChangeForInterface<br>IppScheduleWolWorkItem<br>IppSetMulticastSessionState<br>IppSetOffloadChange<br>IppSortAddressPairsForShortConnections<br>IppSortDestinationAddresses<br>IppStartBatching<br>IppStartControlPoolManager<br>IppStartEchoRequestManager<br>IppStartInterfaceManager<br>IppStartPhysicalInterfaceRequestManager<br>IppStartValidator<br>IppSwitchToUserConfiguredPrefixPolicies<br>IppUpdatePathNotification<br>IppValidateSettingsOnReconnect<br>Ipv4AttachFlProvider<br>Ipv4AttachPnpEventClient<br>Ipv4SetEchoRequestCreate<br>Ipv4pHandleEchoRequest<br>Ipv4pRegSyncIPAddressChangeHandler<br>Ipv4pRegSyncInterfaceDefaultGatewayChangeHandler<br>Ipv6AttachFlProvider<br>Ipv6NotifyPotentialRouterChange<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddPotentialRouter<br>Ipv6pCreateDNSSLEntry<br>Ipv6pCreatePref64Entry<br>Ipv6pCreateRDNSSEntry<br>Ipv6pHandleMldQuery<br>Ipv6pHandleNeighborSolicitation<br>Ipv6pInitializeRouterContext<br>Ipv6pNotifyRouterInformationChange<br>Ipv6pUpdateSitePrefix<br>KfdDispatchDevCtl<br>LwAllocQueue<br>LwInitializeQueueEx<br>MicrosoftTelemetryAssertTriggeredWorker<br>NetioAllocateAndGetIbftTable<br>NetioAllocateMibTable<br>NetioInitializeHistogram<br>NetioRegisterAddressChangeNotification<br>NotifyIpInterfaceChange<br>OlmNotifyAddInterface<br>PrepareAndStoreFilterData<br>ProcessRedirectLayerForNonNativeTCP<br>QimAttachEQoSProfileToQimContext<br>QimInspectAssociateQoS<br>QimInspectCreateEndpoint<br>QimInspectSetQoS<br>QueryAttributes<br>RawActivateEndpoint<br>RawBindEndpoint<br>RawCreateAndActivateEndpoint<br>RawCreateEndpoint<br>RawCreateMessageIndication<br>RawInitializeAf<br>RawSendMessagesOnPathCreation<br>RawSetSockOptEndpoint<br>RngInitializeRngPool<br>RssAllocateBitMap<br>RssControlAddInterface<br>RssCreateAdapter<br>RssQueryInterfacePortInformation<br>RssQueryPortProcessorInfo<br>RssRefreshPortPresence<br>RssStartDistribution<br>SegLibGetModuleBase<br>TcpAbortTcb<br>TcpAllocateUrgentTcbDelivery<br>TcpBwInitializeBandwidthBlock<br>TcpCreateAndConnectTcb<br>TcpCreateCompartment<br>TcpCreateListener<br>TcpCreateTimeWaitTcb<br>TcpDequeueTcbSend<br>TcpDisconnectTcb<br>TcpGenerateFastopenCookie<br>TcpHandleServerSideFastopenOption<br>TcpInitializeIsnGenerator<br>TcpInitializeNsiObject<br>TcpIoControlEndpoint<br>TcpIoControlListener<br>TcpIsnProcessorAddHandler<br>TcpListenerAddPendingConnection<br>TcpNotifyRetransmitTimeout<br>TcpPortPropertySetAllParameters<br>TcpQueryBinaryValueKey<br>TcpQuerySecurityEndpoint<br>TcpQuerySecurityListener<br>TcpQuerySecurityTcb<br>TcpScheduleNotificationChannelWorkItemTcb<br>TcpSetSecurityEndpoint<br>TcpSetSockOptEndpoint<br>TcpSetSockOptListener<br>TcpStartDelayModule<br>TcpStartInetModule<br>TcpStartOlmModule<br>TcpStartPartitionModule<br>TcpStartReceiveModule<br>TcpStartTcbModule<br>TcpStartTimerModule<br>TcpTcbControlReceive<br>TcpUpdateTcbEstats<br>TcpipConfigNsiProviderAttachClient<br>TcpipConfigStartup<br>TcpipGetAppNameFromProcess<br>TcpipPcwPerCpuCallback<br>TcpipPcwStartup<br>TlRdmaAttachClient<br>TlRdmaProviderOpenNDKAdapter<br>UQoSAttachClient<br>UdpActivateEndpoint<br>UdpBindEndpoint<br>UdpCreateCompartment<br>UdpCreateEndpoint<br>UdpEnqueueTimestamp<br>UdpInitializeConfig<br>UdpIoControlEndpoint<br>UdpOffloadAddInterface<br>UdpQuerySecurityEndpoint<br>UdpReceiveDatagrams<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSetSecurityEndpoint<br>UdpSetSockOptEndpoint<br>UdpTlProviderMessageCalloutRoutine<br>UrlpInitializeContext<br>UrlpReAllocHelper<br>WfpAleAuditEvent<br>WfpAleAuthorizeSend<br>WfpAleCreateSecondaryAppMetaData<br>WfpAleCreateSecondaryAppMetaDataSoSecurityDescriptor<br>WfpAleFastUdpInspection<br>WfpAleGetServiceSidsFromToken<br>WfpAleRequestEndpointDeleteNotification<br>WfpAlepPeerInformationAllocate<br>WfpAlepPeerInformationAllocateWithQuota2<br>WfpCreateProcessNotifyRoutine<br>WfpInsertModifiedIdCorrelationEntry<br>WfpNlcAttachNlProvider<br>WfpPoolAllocNonPaged<br>WfpPoolAllocQualified</details>|
|paramcount|0|0|
|address|EXTERNAL:00000162|EXTERNAL:00000162|
|sig|undefined ExAllocatePool2(void)|undefined ExAllocatePool2(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::ExAllocatePool2 Calling Diff


```diff
--- NTOSKRNL.EXE::ExAllocatePool2 calling
+++ NTOSKRNL.EXE::ExAllocatePool2 calling
@@ -11,0 +12 @@
+CreateUdpConnectRedirectCallbackContext
@@ -33,2 +34,2 @@
-FUN_1401c6b02
-FUN_1401cf8ec
+FUN_1401ce296
+FUN_1401d04f2
@@ -256 +256,0 @@
-UdpConnectRedirect
@@ -271,0 +272 @@
+WfpAleAuthorizeSend
```


## NDIS.SYS::NdisAdvanceNetBufferDataStart

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NdisAdvanceNetBufferDataStart|NdisAdvanceNetBufferDataStart|
|fullname|NDIS.SYS::NdisAdvanceNetBufferDataStart|NDIS.SYS::NdisAdvanceNetBufferDataStart|
|`refcount`|59|61|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>IPSecCalculateIPHeaderChecksumBeforeTunneling<br>Icmpv4pHandleEchoReplyAndError<br>Icmpv4pHandleError<br>Icmpv6pHandleEchoReplyAndError<br>Icmpv6pHandleEchoRequest<br>Icmpv6pHandleError<br>IpFlcReceivePreValidatedPackets<br>IppAddEspHeader<br>IppAhProcessPacket<br>IppCreateStrongClonePacket<br>IppEnsureContiguousHeaders</summary>IppEspProcessPacket<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppIsUdpEspPacket<br>IppLbPrevalidateReceive<br>IppReceiveEspNbl<br>IppReceiveHeadersHelper<br>IppReceiveUdpEspInternal<br>IppSegmentRscForwardNbl<br>IppSegmentUroNbl<br>Ipv4pHandleEchoRequest<br>Ipv4pHandleRedirect<br>Ipv4pSkipNetworkLayerHeaders<br>Ipv6pFragmentPacketHelper<br>Ipv6pProcessOptions<br>Ipv6pReceiveFragmentControl<br>Ipv6pSkipNetworkLayerHeaders<br>Ipv6pUpdateDNSSL<br>Ipv6pUpdateRDNSS<br>NetioAdvanceNetBuffer<br>RawReceiveDatagrams<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtGetDataBufferWithOffset<br>SegLibPvtGetTcpDataOffset<br>TcpIndicateData<br>TcpValidateReceive<br>UdpBeginDelivery<br>UdpReceiveControlMessages<br>UdpReceiveDatagrams</details>|<details><summary>Expand for full list:<br>IPSecCalculateIPHeaderChecksumBeforeTunneling<br>Icmpv4pHandleEchoReplyAndError<br>Icmpv4pHandleError<br>Icmpv6pHandleEchoReplyAndError<br>Icmpv6pHandleEchoRequest<br>Icmpv6pHandleError<br>IpFlcReceivePreValidatedPackets<br>IppAddEspHeader<br>IppAhProcessPacket<br>IppBuildFirstHeader<br>IppBuildNextHeader</summary>IppCreateStrongClonePacket<br>IppEnsureContiguousHeaders<br>IppEspProcessPacket<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppIsUdpEspPacket<br>IppLbPrevalidateReceive<br>IppReceiveEspNbl<br>IppReceiveHeadersHelper<br>IppReceiveUdpEspInternal<br>IppSegmentRscForwardNbl<br>IppSegmentUroNbl<br>Ipv4pHandleEchoRequest<br>Ipv4pHandleRedirect<br>Ipv4pSkipNetworkLayerHeaders<br>Ipv6pFragmentPacketHelper<br>Ipv6pProcessOptions<br>Ipv6pReceiveFragmentControl<br>Ipv6pSkipNetworkLayerHeaders<br>Ipv6pUpdateDNSSL<br>Ipv6pUpdateRDNSS<br>NetioAdvanceNetBuffer<br>RawReceiveDatagrams<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtGetDataBufferWithOffset<br>SegLibPvtGetTcpDataOffset<br>TcpIndicateData<br>TcpValidateReceive<br>UdpBeginDelivery<br>UdpReceiveControlMessages<br>UdpReceiveDatagrams</details>|
|paramcount|0|0|
|`address`|EXTERNAL:000002d7|EXTERNAL:000002d8|
|sig|undefined NdisAdvanceNetBufferDataStart(void)|undefined NdisAdvanceNetBufferDataStart(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NDIS.SYS::NdisAdvanceNetBufferDataStart Calling Diff


```diff
--- NDIS.SYS::NdisAdvanceNetBufferDataStart calling
+++ NDIS.SYS::NdisAdvanceNetBufferDataStart calling
@@ -9,0 +10,2 @@
+IppBuildFirstHeader
+IppBuildNextHeader
```


## NTOSKRNL.EXE::ExFreePoolWithTag

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|ExFreePoolWithTag|ExFreePoolWithTag|
|fullname|NTOSKRNL.EXE::ExFreePoolWithTag|NTOSKRNL.EXE::ExFreePoolWithTag|
|`refcount`|749|752|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleAbortConnectionWorkQueueRoutine<br>AleEdgeIFsCacheAction<br>AleEdgeIFsIsProfileCrossing<br>AleEdgeIFsLookupCachedAction<br>AleInspectBindRequest<br>AleRedirectRecordFree<br>AleReleaseEndpointLock<br>AlepFreeCloneBindRedirectLayerData<br>AlepFreeCloneConnectRedirectLayerData<br>CancelMibChangeNotify2<br>CarAllocateCacheAwareReference</summary>CarFreeCacheAwareReference<br>CleanupClientGlobals<br>CleanupConnectionSocketContext<br>CleanupFilterData<br>CleanupListeningSocketContext<br>CleanupMessageContext<br>CleanupPartition<br>CreateConnectionSocketContext<br>CreateExclusion<br>CreateFqbnString<br>CreateListeningSocketContext<br>CreateMessageContext<br>CreatePartition<br>DeinitSubjectWithTokenPointer<br>DeleteExclusion<br>DereferenceAssignmentArray<br>DestroyAggregateSession<br>DestroyEventEntry<br>EQoSAllocateAndInitializeSid<br>EQoSAttachQoSProvider<br>EQoSCleanupBindingContext<br>EQoSCleanupPolicyTable<br>EQoSCleanupQoSProfile<br>EQoSCreateSecurityDescriptor<br>EQoSDaclDeviceObject<br>EQoSDeleteAppName<br>EQoSDeletePolicyOwner<br>EQoSFreeSecurityDescriptor<br>EQoSHkeClientNotifyAttachProvider<br>EQoSHkeClientNotifyCleanupProviderContext<br>EQoSOpenUserPolicyRootKey<br>EQoSPolicyFreeCookedUrl<br>EQoSProcessQoSPolicies<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSStopModules<br>EQoSpCleanupScratchTable<br>EQoSpCleanupUrlScratch<br>EQoSpCleanupUrlSection<br>EQoSpCounterSetCallback<br>EQoSpDeleteNetPolicyBlock<br>EQoSpFreePolicy<br>EQoSpNmrRegisterClient<br>EQoSpPolicyAddPacketPolicyToScratchTable<br>EQoSpPolicyParseAppName<br>EQoSpProcessOnePolicy<br>EQoSpTrimUserPolicyList<br>EdpAuditFree<br>FUN_14005512b<br>FUN_1400c04a9<br>FUN_14010860d<br>FUN_1401231ad<br>FUN_1401c4f28<br>FUN_1401c6a6c<br>FUN_1401c6bb3<br>FUN_1401cd58a<br>FUN_1401ce8ec<br>FUN_1401d0762<br>FUN_1401d0dd5<br>FUN_1401dcbb0<br>FUN_1401de1ec<br>FUN_1401de4bc<br>FUN_1401de774<br>FUN_1401de7bc<br>FUN_1401deb76<br>FUN_1401dfbf4<br>FUN_14026866e<br>Fl6tStart<br>Fl8pPCFSerializedControlUnderLock<br>Fl8pPCFUpdateIpv4AddressTriggeredFilters<br>FlAttachClient<br>FlAttachFlsClient<br>FlAttachNsiClient<br>FlCleanupClientContext<br>FlEtUninitializeCallouts<br>FlIfCreateVirtualInterface<br>FlIfDeleteVirtualInterface<br>FlIfDisableVirtualInterface<br>FlIfFindOrCreateCompartment<br>FlIfStop<br>FlIfpAllocateVirtualInterface<br>FlIfpRegisterNdisInterface<br>FlPktMonRegisterProvider<br>FlRdmaNsiEnumerateNdkItemsCommon<br>FlRdmapReloadRegistryConfig<br>FlStatus<br>FlTeredoNotifyChange<br>FlTeredoNotifyChangeAtPassive<br>FlTeredoPortNotifyChange<br>FlTeredoPortNotifyChangeAtPassive<br>FlTunnelNotifyChange<br>FlTunnelNotifyChangeAtPassive<br>FllAttachClient<br>FlpAddL2UnicastWolPattern<br>FlpAddLocalPortWolPattern<br>FlpAddWolForTcpSyn<br>FlpAllocateInjectPacketChain<br>FlpCleanupWolPatternEntries<br>FlpCreateInterface<br>FlpCreateTcpSynWolPattern<br>FlpDestroyClientInterface<br>FlpDestroyInterface<br>FlpEtAddEndpoint<br>FlpEtDeleteEtFilter<br>FlpEtDereferenceEndpoint<br>FlpFlsInterceptReceivePackets<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpFreeServiceChainNode<br>FlpMulticastListSet<br>FlpNdisSendNbls<br>FlpProcessIsolationConfiguration<br>FlpSerializedDeleteWolPatternWorker<br>FlpSerializedWolAddressEvictionWorker<br>FlpSerializedWolCapabilitiesUpdateWorker<br>FlpSetAddressListWithNdis<br>FlpSetAddressWolPattern<br>FlpSetDirectTcpPattern<br>FlpSetTaskOffloadParameters<br>FlpSetWolPattern<br>FlpUninitializeDatapathContexts<br>FlpUninitializeFlsServiceChain<br>FseAllocateSocketOpContext<br>FseCleanupSocketOpContext<br>FseFreePreAllocatedSocketOpContext<br>FseFreeSocketOpContext<br>FseInitializeSocketOpContext<br>FseMidlObjectDecode<br>GetAttribute<br>GetEnterpriseContext<br>HashTableUninitialize<br>IPSecDetermineSaMatchOutbound<br>IPSecInitiateTransportKeying<br>IPsecStartOffloadWorker<br>IgmpReceiveDatagrams<br>IndicateAnalysisDropAudit<br>IndicateDropAudit<br>InetAllocateAndQueryAncillaryDataAf<br>InetCleanupSessionInformationAf<br>InetContinueEnumeratePortPool<br>InetCreateCompartmentSet<br>InetCreatePortPool<br>InetDeleteCompartment<br>InetDeleteCompartmentSet<br>InetDeletePortPool<br>InetDereferenceNextHopAf<br>InetFreePortTrackerPortWorkItem<br>InetInspectReceiveTcpDatagram<br>InetNlNotifyAttachProvider<br>InetStopModule<br>InetTlNotifyAttachClient<br>InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>InitalizeClientGlobals<br>InitializeEndpointContextFromParentContext<br>InitializeTelemetryAssertsKMByDriverObject<br>InsertEventEntryInLookUpTable<br>InternalGetIfEntry2Ex<br>IpAttachIpsClient<br>IpAttachNlClient<br>IpAttachNsiClient<br>IpCleanupIpsClient<br>IpEnumerateAllNeighbors<br>IpFlcAddGroupComplete<br>IpFlcReturnNetworkAddressList<br>IpNlpCleanupSessionInfo<br>IpNlpDereferenceNextHop<br>IpNlpInheritSessionInfo<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IpSetAllProxyNeighborParameters<br>IppActiveReferenceWorker<br>IppAddNetworkTableEntry<br>IppAddOrRemoveBandwidthListeners<br>IppAddPrefixPolicy<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveReceivePerProcessorContexts<br>IppAddRemoveSendPerProcessorContexts<br>IppAddRemoveSubinterfacesProcessorContext<br>IppAddWolForAddress<br>IppAddressSetTimeout<br>IppAhProcessPacket<br>IppAllocateAndCopyHeaderIncludeHeader<br>IppAllocateIpsPacketChain<br>IppAllocateNetBufferListForEcho<br>IppCleanSourceListOfMulticastGroup<br>IppCleanupCompartmentManager<br>IppCleanupCompartmentWorkerRoutine<br>IppCleanupControlPoolManager<br>IppCleanupEchoRequestManager<br>IppCleanupInterfaceWorkerRoutine<br>IppCleanupLocalAddress<br>IppCleanupMfe<br>IppCleanupParsedAncillaryData<br>IppCleanupPathForReuse<br>IppCleanupPhysicalInterfaceRequestManager<br>IppCleanupSendState<br>IppCleanupSubInterfaceWorkerRoutine<br>IppCleanupTimerManager<br>IppCleanupValidator<br>IppCommitRemoveSourcesFromMulticastSessionState<br>IppCompleteIpsReceiveContext<br>IppCopyEncryptedPayload<br>IppCreateAndInsertFragmentIntoGroup<br>IppCreateCompartment<br>IppCreateInterface<br>IppCreateLocalAddress<br>IppCreateMulticastSessionState<br>IppCreateReassembly<br>IppCreateSortedAddressPairs<br>IppCreateSortedAddressPairsEx<br>IppCreateSubInterface<br>IppDadAnnouncementTimeout<br>IppDeferNetworkStateUpdateProcessing<br>IppDeleteFragmentGroup<br>IppDeleteNetworkTableEntry<br>IppDeleteReassembly<br>IppDereferenceAddressPrimitive<br>IppDereferenceEchoRequest<br>IppDereferenceLocalAddress<br>IppDereferenceLocalAddressIdentifier<br>IppDereferenceNeighbor<br>IppDereferencePathPrimitive<br>IppDereferencePhysicalInterfaceRequest<br>IppDereferenceRoute<br>IppDestroyMulticastSessionState<br>IppDetectGatewayReachability<br>IppEnumerateInterfaceAddresses<br>IppEvaluateSortInformationEx<br>IppFillPathRodUnderLock<br>IppFindNextHopAtDpc<br>IppFindOrCreateGroupForFragment<br>IppFlcUpdatePacketFilterComplete<br>IppFragmentGroupNetBufferListsComplete<br>IppFreeFlatAddressSet<br>IppFreeNetBufferListForEcho<br>IppFreePacket<br>IppFreeRouteLookupContext<br>IppHandleLinkLocalAddressChangeAtPassiveLevel<br>IppInitializeMfeSet<br>IppInjectIpsPackets<br>IppInspectLocalDatagramsOut<br>IppInspectQueryRealNextHopInterface<br>IppInspectQueryRealNextHopInterfaceWorker<br>IppInterfaceBwPersistParametersWorker<br>IppIpsFindNextHopWithRestrictions<br>IppIsSystemIpv6OnlyCapableRfc8925<br>IppLbFreeECs<br>IppLbFreeWorkItems<br>IppModifyMulticastGroupUnderLock<br>IppNeighborSetTimeout<br>IppNotifyAddressChangeAtPassive<br>IppNotifyDad<br>IppNotifyDadWorker<br>IppNotifyEchoRequestChangeWorker<br>IppNotifyInterfaceChangeAtPassive<br>IppNotifyMfeChange<br>IppNotifyMfeChangeWorker<br>IppNotifyNeighborChangeAtPassive<br>IppNotifyRouteChangeAtPassive<br>IppNotifyRoutingEpochChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPacketizeDatagrams<br>IppPerformDeferredAhProcessing<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPersistentRoutesWorker<br>IppPhysicalInterfaceRequestNotificationWorker<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppReassembledReceive<br>IppRemoveBandwidthListenerUnderLock<br>IppRemoveIpsClientFromServiceChain<br>IppRemoveQualifiedRouteAndNextHop<br>IppRemoveSitePrefixEntry<br>IppRemoveSourcesFromMulticastSessionState<br>IppRemoveWolForAddress<br>IppResetAllMulticastGroups<br>IppResetPrefixPolicy<br>IppSendDatagramsCommon<br>IppSendMulticastDiscoveryRecords<br>IppSetMulticastSessionState<br>IppSetOffloadChange<br>IppSetOffloadEncapsulationWorker<br>IppSetWolParametersWorker<br>IppSortAddressPairsForShortConnections<br>IppSortDestinationAddresses<br>IppStartControlPoolManager<br>IppStartEchoRequestManager<br>IppStartInterfaceManager<br>IppStartPhysicalInterfaceRequestManager<br>IppStopBatching<br>IppUnInitializePerProcBatchState<br>IppUninitializeAdaptiveTable<br>IppUninitializeIpsServiceChain<br>IppUninitializeMfeSet<br>IppUninitializeProxyNeighborSet<br>IppUninitializeSessionState<br>IppUpdateFlPacketFilter<br>IppUpdateNetworkStateWorker<br>IppUpdatePathNotificationWorker<br>IppValidateSettingsOnReconnectWorker<br>IppWolUpdateOnPowerSourceChangeWorker<br>IpsLbFindAndPopulateLoopbackIfInfo<br>Ipv4AttachFlProvider<br>Ipv4AttachPnpEventClient<br>Ipv4SetEchoRequestCreate<br>Ipv4pAddressInterface<br>Ipv4pReceiveFragment<br>Ipv4pRegSyncIPAddressChangeHandler<br>Ipv4pRegSyncInterfaceDefaultGatewayChangeHandler<br>Ipv6AttachFlProvider<br>Ipv6NotifyPotentialRouterChangeAtPassive<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddRoutingHeader<br>Ipv6pHandleMldQuery<br>Ipv6pInitializeRouterContext<br>Ipv6pNotifyRouterInformationChangeWorker<br>Ipv6pReassembleDatagram<br>Ipv6pReceiveFragment<br>Ipv6pRemoveDNSSLEntryUnderLock<br>Ipv6pRemovePotentialRouter<br>Ipv6pRemovePref64EntryUnderLock<br>Ipv6pRemoveRDNSSEntryUnderLock<br>Ipv6pUninitializeRouterContext<br>KfdDispatchDevCtl<br>LwDequeueAll<br>LwUninitializeQueue<br>LwUninitializeQueueIfSafe<br>LwWorker<br>NetioAllocateAndGetIbftTable<br>NetioRegisterAddressChangeNotification<br>NotifyIpInterfaceChange<br>OlmNotifyOffloadEventInterface<br>OlmNotifyRscIncompatibleCallout<br>OlmNotifyWakeEventInterface<br>OlmSetTcpInterfaceParametersByLuid<br>OlmTcpRscGetAllStats<br>OlmUpdateTcpGlobalParameters<br>OlmWorkQueueRoutine<br>PplDestroyLookasideList<br>PplpCreateLookasideListEx<br>PrepareAndStoreFilterData<br>ProcessInboundTransportLayerClassify<br>ProcessOutboundTransportLayerClassify<br>QimClearEQoSProfileFromQimContext<br>QimInspectAssociateQoS<br>QimInspectCleanupEndpoint<br>QueryAttributes<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointInspectComplete<br>RawCleanupAf<br>RawCleanupEndpoint<br>RawCreateAndActivateEndpointCreateRequestComplete<br>RawCreateEndpoint<br>RawCreateMessageIndication<br>RawCreateSocketSecurityDescriptor<br>RawEndMessageIndication<br>RawEndSendMessages<br>RawSetSockOptEndpointSetSessionInfoComplete<br>RawStopEndpointModule<br>RngUninitializeRngPool<br>RssCleanupAdapter<br>RssControlAddInterface<br>RssCreateAdapter<br>RssDeleteBinding<br>RssDereferenceBinding<br>RssDestroyHashSecurityDescriptor<br>RssQueryInterfacePortInformation<br>RssQueryPortProcessorInfo<br>RssRefreshPortPresence<br>RssStopDistribution<br>RssStopHashModule<br>RtlFreeUrlString<br>SegLibGetModuleBase<br>TcpAbortTcbComplete<br>TcpBindEndpointInspectComplete<br>TcpBindEndpointRequestInspectComplete<br>TcpBwCleanupRcvBwBlock<br>TcpBwCleanupSndBwBlock<br>TcpCheckCubicHystartUshortParam<br>TcpCheckLedbatTargetDelay<br>TcpCleanupAf<br>TcpCleanupEndpointWorkQueueRoutine<br>TcpCleanupIsnGenerator<br>TcpCleanupListenerWorkQueueRoutine<br>TcpCleanupPartitionModule<br>TcpCleanupTcbEstats<br>TcpCleanupTcbWorkQueueRoutine<br>TcpCleanupTimeWaitTcb<br>TcpCreateAndAcceptTcb<br>TcpCreateAndConnectTcb<br>TcpCreateCompartment<br>TcpCreateListener<br>TcpCreateListenerInspectComplete<br>TcpDeleteCompartment<br>TcpDestroyEndpointSoSecurityDescriptor<br>TcpDisconnectTcbComplete<br>TcpDisconnectTcbSendRequestComplete<br>TcpEnumerateListeners<br>TcpFreeDelayedDeliveryBuffer<br>TcpGenerateFastopenCookie<br>TcpHandleServerSideFastopenOption<br>TcpInitializeIsnGenerator<br>TcpIsnProcessorAddHandler<br>TcpListenerAbortPendingConnections<br>TcpListenerRemovePendingConnection<br>TcpNlClientCleanupInterface<br>TcpNlClientDeleteLocalAddress<br>TcpNotifyRetransmitTimeoutAtPassive<br>TcpPortPropertyDeleteAllParameters<br>TcpPortPropertyResetAllObjects<br>TcpPortReservationWorkQueueRoutine<br>TcpQueryBinaryValueKey<br>TcpQueryGlobalObjectSecurity<br>TcpQuerySecurityEndpointWorkQueueRoutine<br>TcpQuerySecurityListenerWorkQueueRoutine<br>TcpQuerySecurityTcbWorkQueueRoutine<br>TcpReloadRegistryConfig<br>TcpRemoveTcb<br>TcpSetSecurityEndpointWorkQueueRoutine<br>TcpSetSockOptEndpoint<br>TcpSetSockOptEndpointSetSessionInfoComplete<br>TcpSetSockOptListenerSetSessionInfoComplete<br>TcpStartConfigModule<br>TcpStartEndpointModule<br>TcpStartInetModule<br>TcpStartPartitionModule<br>TcpStartTcbModule<br>TcpStopConfigModule<br>TcpStopDelayModule<br>TcpStopEndpointModule<br>TcpStopInetModule<br>TcpStopOlmModule<br>TcpStopReceiveModule<br>TcpStopTcbModule<br>TcpStopTimerModule<br>TcpTcbHeaderSend<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbReassemblyAllocateHeaderData<br>TcpTcbReassemblyCleanupHeader<br>TcpTcbReassemblyFreeHeader<br>TcpTcbReassemblyFreeHeaderData<br>TcpTcbReassemblyFreeMdlChain<br>TcpTcbReassemblyFreeNetBufferList<br>TcpTcbReassemblyInsertNetBufferList<br>TcpTcbReassemblyRetrieveSegments<br>TcpTcbSend<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUpdateMaxPartitionCount<br>TcpUpdateTcbEstats<br>TcpipConfigCleanup<br>TcpipConfigNsiCleanupProviderBindingContext<br>TcpipGetAppNameFromProcess<br>TcpipInitializeHealthTelemetry<br>TcpipPcwCleanup<br>TcpipPcwPerCpuCallback<br>TlRdmaAttachClient<br>TlRdmaProviderCloseNDKAdapter<br>TlRdmaProviderOpenNDKAdapter<br>TlShimCacheMatchedFilterList<br>TlShimDirectClassify<br>TlShimInjectRedirectedPacketComplete<br>TlShimOptionalReauthorizeConnection<br>TlShimReleaseLayerCache<br>TraceVailGuestPortFailure<br>TtDestroyTable<br>UQoSCleanupClient<br>UQoSQueryPolicyByNameInternal<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpCleanupAf<br>UdpCleanupEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpConnectRedirectCallbackContinue<br>UdpCreateAndActivateEndpointCreateRequestComplete<br>UdpCreateCompartment<br>UdpDeleteCompartment<br>UdpDeleteMessageIndication<br>UdpDereferenceOffloadInterface<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEnumerateEndpoints<br>UdpPortReservationWorkQueueRoutine<br>UdpQuerySecurityEndpointWorkQueueRoutine<br>UdpReceiveDatagrams<br>UdpSetSecurityEndpointWorkQueueRoutine<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>UdpStartInetModule<br>UdpStopInetModule<br>UdpUninitTimestampQueue<br>UrlpFreeContext<br>UrlpReAllocHelper<br>WfpAleAcquireStackEndpoint<br>WfpAleAuditEvent<br>WfpAleAuthLogHistogramDatapointWorkQueueRoutine<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizePromiscuousMode<br>WfpAleAuthorizeRAW<br>WfpAleAuthorizeSend<br>WfpAleCancelEndpointDeleteNotification<br>WfpAleCaptureSecurityInformation<br>WfpAleCaptureTokenInformation<br>WfpAleCopySecurityRealmIdFromEndpoint<br>WfpAleDecrementWaitRef<br>WfpAleDecrementWaitRef<br>WfpAleDeleteRemoteEndpointLru<br>WfpAleDereferenceEndpoint<br>WfpAleEndpointDeactivationHandler<br>WfpAleFastUdpInspection<br>WfpAleFreeMarshaledFqbnValue<br>WfpAleFreeSecurityInformation<br>WfpAleFreeTokenInformation<br>WfpAleGetEnterpriseIdAndPolicyFlags<br>WfpAleGetRefedUdpCachedRemoteEndpoint<br>WfpAleGetServiceSidsFromToken<br>WfpAleInsertRemoteEndpoint<br>WfpAleOobAcquireStreamEndpoint<br>WfpAleRequestEndpointDeleteNotification<br>WfpAleStreamLayerChanged<br>WfpAleUninitialize<br>WfpAleUninitializeAuthorizationEngine<br>WfpAlepAuthorizePortByFamily<br>WfpAlepEndpointCleanup<br>WfpAlepFreePeerTokenInformation<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepNotifyEndpointDeletion<br>WfpAllowBfeGenericAll<br>WfpCreateProcessNotifyRoutine<br>WfpIpAddressChangeCallback<br>WfpIpAddressCheckAndDelete<br>WfpIsLayerOffloadPossible<br>WfpNamedPoolFree<br>WfpNlcAttachNlProvider<br>WfpNlcCleanupNlProviderContext<br>WfpPoolFree<br>WfpRemoveModifiedIdCorrelationEntry<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram</details>|<details><summary>Expand for full list:<br>AleAbortConnectionWorkQueueRoutine<br>AleEdgeIFsCacheAction<br>AleEdgeIFsIsProfileCrossing<br>AleEdgeIFsLookupCachedAction<br>AleInspectBindRequest<br>AleInspectConnectRequest<br>AleRedirectRecordFree<br>AleReleaseEndpointLock<br>AlepFreeCloneBindRedirectLayerData<br>AlepFreeCloneConnectRedirectLayerData<br>CancelMibChangeNotify2</summary>CarAllocateCacheAwareReference<br>CarFreeCacheAwareReference<br>CleanupClientGlobals<br>CleanupConnectionSocketContext<br>CleanupFilterData<br>CleanupListeningSocketContext<br>CleanupMessageContext<br>CleanupPartition<br>CreateConnectionSocketContext<br>CreateExclusion<br>CreateFqbnString<br>CreateListeningSocketContext<br>CreateMessageContext<br>CreatePartition<br>CreateUdpConnectRedirectCallbackContext<br>DeinitSubjectWithTokenPointer<br>DeleteExclusion<br>DereferenceAssignmentArray<br>DestroyAggregateSession<br>DestroyEventEntry<br>DestroyUdpConnectRedirectCallbackContext<br>EQoSAllocateAndInitializeSid<br>EQoSAttachQoSProvider<br>EQoSCleanupBindingContext<br>EQoSCleanupPolicyTable<br>EQoSCleanupQoSProfile<br>EQoSCreateSecurityDescriptor<br>EQoSDaclDeviceObject<br>EQoSDeleteAppName<br>EQoSDeletePolicyOwner<br>EQoSFreeSecurityDescriptor<br>EQoSHkeClientNotifyAttachProvider<br>EQoSHkeClientNotifyCleanupProviderContext<br>EQoSOpenUserPolicyRootKey<br>EQoSPolicyFreeCookedUrl<br>EQoSProcessQoSPolicies<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSStopModules<br>EQoSpCleanupScratchTable<br>EQoSpCleanupUrlScratch<br>EQoSpCleanupUrlSection<br>EQoSpCounterSetCallback<br>EQoSpDeleteNetPolicyBlock<br>EQoSpFreePolicy<br>EQoSpNmrRegisterClient<br>EQoSpPolicyAddPacketPolicyToScratchTable<br>EQoSpPolicyParseAppName<br>EQoSpProcessOnePolicy<br>EQoSpTrimUserPolicyList<br>EdpAuditFree<br>FUN_14006e719<br>FUN_140070e35<br>FUN_14009a39b<br>FUN_140103db1<br>FUN_1401c3828<br>FUN_1401c4208<br>FUN_1401ce200<br>FUN_1401ce347<br>FUN_1401cf228<br>FUN_1401d36eb<br>FUN_1401da944<br>FUN_1401da98c<br>FUN_1401dc89a<br>FUN_1401dd48a<br>FUN_1401de136<br>FUN_1401de406<br>FUN_1401dea64<br>FUN_1401dfc72<br>FUN_1402686c2<br>Fl6tStart<br>Fl8pPCFSerializedControlUnderLock<br>Fl8pPCFUpdateIpv4AddressTriggeredFilters<br>FlAttachClient<br>FlAttachFlsClient<br>FlAttachNsiClient<br>FlCleanupClientContext<br>FlEtUninitializeCallouts<br>FlIfCreateVirtualInterface<br>FlIfDeleteVirtualInterface<br>FlIfDisableVirtualInterface<br>FlIfFindOrCreateCompartment<br>FlIfStop<br>FlIfpAllocateVirtualInterface<br>FlIfpRegisterNdisInterface<br>FlPktMonRegisterProvider<br>FlRdmaNsiEnumerateNdkItemsCommon<br>FlRdmapReloadRegistryConfig<br>FlStatus<br>FlTeredoNotifyChange<br>FlTeredoNotifyChangeAtPassive<br>FlTeredoPortNotifyChange<br>FlTeredoPortNotifyChangeAtPassive<br>FlTunnelNotifyChange<br>FlTunnelNotifyChangeAtPassive<br>FllAttachClient<br>FlpAddL2UnicastWolPattern<br>FlpAddLocalPortWolPattern<br>FlpAddWolForTcpSyn<br>FlpAllocateInjectPacketChain<br>FlpCleanupWolPatternEntries<br>FlpCreateInterface<br>FlpCreateTcpSynWolPattern<br>FlpDestroyClientInterface<br>FlpDestroyInterface<br>FlpEtAddEndpoint<br>FlpEtDeleteEtFilter<br>FlpEtDereferenceEndpoint<br>FlpFlsInterceptReceivePackets<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpFreeServiceChainNode<br>FlpMulticastListSet<br>FlpNdisSendNbls<br>FlpProcessIsolationConfiguration<br>FlpSerializedDeleteWolPatternWorker<br>FlpSerializedWolAddressEvictionWorker<br>FlpSerializedWolCapabilitiesUpdateWorker<br>FlpSetAddressListWithNdis<br>FlpSetAddressWolPattern<br>FlpSetDirectTcpPattern<br>FlpSetTaskOffloadParameters<br>FlpSetWolPattern<br>FlpUninitializeDatapathContexts<br>FlpUninitializeFlsServiceChain<br>FseAllocateSocketOpContext<br>FseCleanupSocketOpContext<br>FseFreePreAllocatedSocketOpContext<br>FseFreeSocketOpContext<br>FseInitializeSocketOpContext<br>FseMidlObjectDecode<br>GetAttribute<br>GetEnterpriseContext<br>HashTableUninitialize<br>IPSecDetermineSaMatchOutbound<br>IPSecInitiateTransportKeying<br>IPsecStartOffloadWorker<br>IgmpReceiveDatagrams<br>IndicateAnalysisDropAudit<br>IndicateDropAudit<br>InetAllocateAndQueryAncillaryDataAf<br>InetCleanupSessionInformationAf<br>InetContinueEnumeratePortPool<br>InetCreateCompartmentSet<br>InetCreatePortPool<br>InetDeleteCompartment<br>InetDeleteCompartmentSet<br>InetDeletePortPool<br>InetDereferenceNextHopAf<br>InetFreePortTrackerPortWorkItem<br>InetInspectReceiveTcpDatagram<br>InetNlNotifyAttachProvider<br>InetStopModule<br>InetTlNotifyAttachClient<br>InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>InitalizeClientGlobals<br>InitializeEndpointContextFromParentContext<br>InitializeTelemetryAssertsKMByDriverObject<br>InsertEventEntryInLookUpTable<br>InternalGetIfEntry2Ex<br>IpAttachIpsClient<br>IpAttachNlClient<br>IpAttachNsiClient<br>IpCleanupIpsClient<br>IpEnumerateAllNeighbors<br>IpFlcAddGroupComplete<br>IpFlcReturnNetworkAddressList<br>IpNlpCleanupSessionInfo<br>IpNlpDereferenceNextHop<br>IpNlpInheritSessionInfo<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IpSetAllProxyNeighborParameters<br>IppActiveReferenceWorker<br>IppAddNetworkTableEntry<br>IppAddOrRemoveBandwidthListeners<br>IppAddPrefixPolicy<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveReceivePerProcessorContexts<br>IppAddRemoveSendPerProcessorContexts<br>IppAddRemoveSubinterfacesProcessorContext<br>IppAddWolForAddress<br>IppAddressSetTimeout<br>IppAhProcessPacket<br>IppAllocateAndCopyHeaderIncludeHeader<br>IppAllocateIpsPacketChain<br>IppAllocateNetBufferListForEcho<br>IppCleanSourceListOfMulticastGroup<br>IppCleanupCompartmentManager<br>IppCleanupCompartmentWorkerRoutine<br>IppCleanupControlPoolManager<br>IppCleanupEchoRequestManager<br>IppCleanupInterfaceWorkerRoutine<br>IppCleanupLocalAddress<br>IppCleanupMfe<br>IppCleanupParsedAncillaryData<br>IppCleanupPathForReuse<br>IppCleanupPhysicalInterfaceRequestManager<br>IppCleanupSendState<br>IppCleanupSubInterfaceWorkerRoutine<br>IppCleanupTimerManager<br>IppCleanupValidator<br>IppCommitRemoveSourcesFromMulticastSessionState<br>IppCompleteIpsReceiveContext<br>IppCopyEncryptedPayload<br>IppCreateAndInsertFragmentIntoGroup<br>IppCreateCompartment<br>IppCreateInterface<br>IppCreateLocalAddress<br>IppCreateMulticastSessionState<br>IppCreateReassembly<br>IppCreateSortedAddressPairs<br>IppCreateSortedAddressPairsEx<br>IppCreateSubInterface<br>IppDadAnnouncementTimeout<br>IppDeferNetworkStateUpdateProcessing<br>IppDeleteFragmentGroup<br>IppDeleteNetworkTableEntry<br>IppDeleteReassembly<br>IppDereferenceAddressPrimitive<br>IppDereferenceEchoRequest<br>IppDereferenceLocalAddress<br>IppDereferenceLocalAddressIdentifier<br>IppDereferenceNeighbor<br>IppDereferencePathPrimitive<br>IppDereferencePhysicalInterfaceRequest<br>IppDereferenceRoute<br>IppDestroyMulticastSessionState<br>IppDetectGatewayReachability<br>IppEnumerateInterfaceAddresses<br>IppEvaluateSortInformationEx<br>IppFillPathRodUnderLock<br>IppFindNextHopAtDpc<br>IppFindOrCreateGroupForFragment<br>IppFlcUpdatePacketFilterComplete<br>IppFragmentGroupNetBufferListsComplete<br>IppFreeFlatAddressSet<br>IppFreeNetBufferListForEcho<br>IppFreePacket<br>IppFreeRouteLookupContext<br>IppHandleLinkLocalAddressChangeAtPassiveLevel<br>IppInitializeMfeSet<br>IppInjectIpsPackets<br>IppInspectLocalDatagramsOut<br>IppInspectQueryRealNextHopInterface<br>IppInspectQueryRealNextHopInterfaceWorker<br>IppInterfaceBwPersistParametersWorker<br>IppIpsFindNextHopWithRestrictions<br>IppIsSystemIpv6OnlyCapableRfc8925<br>IppLbFreeECs<br>IppLbFreeWorkItems<br>IppModifyMulticastGroupUnderLock<br>IppNeighborSetTimeout<br>IppNotifyAddressChangeAtPassive<br>IppNotifyDad<br>IppNotifyDadWorker<br>IppNotifyEchoRequestChangeWorker<br>IppNotifyInterfaceChangeAtPassive<br>IppNotifyMfeChange<br>IppNotifyMfeChangeWorker<br>IppNotifyNeighborChangeAtPassive<br>IppNotifyRouteChangeAtPassive<br>IppNotifyRoutingEpochChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPacketizeDatagrams<br>IppPerformDeferredAhProcessing<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPersistentRoutesWorker<br>IppPhysicalInterfaceRequestNotificationWorker<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppReassembledReceive<br>IppRemoveBandwidthListenerUnderLock<br>IppRemoveIpsClientFromServiceChain<br>IppRemoveQualifiedRouteAndNextHop<br>IppRemoveSitePrefixEntry<br>IppRemoveSourcesFromMulticastSessionState<br>IppRemoveWolForAddress<br>IppResetAllMulticastGroups<br>IppResetPrefixPolicy<br>IppSendDatagramsCommon<br>IppSendMulticastDiscoveryRecords<br>IppSetMulticastSessionState<br>IppSetOffloadChange<br>IppSetOffloadEncapsulationWorker<br>IppSetWolParametersWorker<br>IppSortAddressPairsForShortConnections<br>IppSortDestinationAddresses<br>IppStartControlPoolManager<br>IppStartEchoRequestManager<br>IppStartInterfaceManager<br>IppStartPhysicalInterfaceRequestManager<br>IppStopBatching<br>IppUnInitializePerProcBatchState<br>IppUninitializeAdaptiveTable<br>IppUninitializeIpsServiceChain<br>IppUninitializeMfeSet<br>IppUninitializeProxyNeighborSet<br>IppUninitializeSessionState<br>IppUpdateFlPacketFilter<br>IppUpdateNetworkStateWorker<br>IppUpdatePathNotificationWorker<br>IppValidateSettingsOnReconnectWorker<br>IppWolUpdateOnPowerSourceChangeWorker<br>IpsLbFindAndPopulateLoopbackIfInfo<br>Ipv4AttachFlProvider<br>Ipv4AttachPnpEventClient<br>Ipv4SetEchoRequestCreate<br>Ipv4pAddressInterface<br>Ipv4pReceiveFragment<br>Ipv4pRegSyncIPAddressChangeHandler<br>Ipv4pRegSyncInterfaceDefaultGatewayChangeHandler<br>Ipv6AttachFlProvider<br>Ipv6NotifyPotentialRouterChangeAtPassive<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddRoutingHeader<br>Ipv6pHandleMldQuery<br>Ipv6pInitializeRouterContext<br>Ipv6pNotifyRouterInformationChangeWorker<br>Ipv6pReassembleDatagram<br>Ipv6pReceiveFragment<br>Ipv6pRemoveDNSSLEntryUnderLock<br>Ipv6pRemovePotentialRouter<br>Ipv6pRemovePref64EntryUnderLock<br>Ipv6pRemoveRDNSSEntryUnderLock<br>Ipv6pUninitializeRouterContext<br>KfdDispatchDevCtl<br>LwDequeueAll<br>LwUninitializeQueue<br>LwUninitializeQueueIfSafe<br>LwWorker<br>NetioAllocateAndGetIbftTable<br>NetioRegisterAddressChangeNotification<br>NotifyIpInterfaceChange<br>OlmNotifyOffloadEventInterface<br>OlmNotifyRscIncompatibleCallout<br>OlmNotifyWakeEventInterface<br>OlmSetTcpInterfaceParametersByLuid<br>OlmTcpRscGetAllStats<br>OlmUpdateTcpGlobalParameters<br>OlmWorkQueueRoutine<br>PplDestroyLookasideList<br>PplpCreateLookasideListEx<br>PrepareAndStoreFilterData<br>ProcessInboundTransportLayerClassify<br>ProcessOutboundTransportLayerClassify<br>QimClearEQoSProfileFromQimContext<br>QimInspectAssociateQoS<br>QimInspectCleanupEndpoint<br>QueryAttributes<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointInspectComplete<br>RawCleanupAf<br>RawCleanupEndpoint<br>RawCreateAndActivateEndpointCreateRequestComplete<br>RawCreateEndpoint<br>RawCreateMessageIndication<br>RawCreateSocketSecurityDescriptor<br>RawEndMessageIndication<br>RawEndSendMessages<br>RawSetSockOptEndpointSetSessionInfoComplete<br>RawStopEndpointModule<br>RngUninitializeRngPool<br>RssCleanupAdapter<br>RssControlAddInterface<br>RssCreateAdapter<br>RssDeleteBinding<br>RssDereferenceBinding<br>RssDestroyHashSecurityDescriptor<br>RssQueryInterfacePortInformation<br>RssQueryPortProcessorInfo<br>RssRefreshPortPresence<br>RssStopDistribution<br>RssStopHashModule<br>RtlFreeUrlString<br>SegLibGetModuleBase<br>TcpAbortTcbComplete<br>TcpBindEndpointInspectComplete<br>TcpBindEndpointRequestInspectComplete<br>TcpBwCleanupRcvBwBlock<br>TcpBwCleanupSndBwBlock<br>TcpCheckCubicHystartUshortParam<br>TcpCheckLedbatTargetDelay<br>TcpCleanupAf<br>TcpCleanupEndpointWorkQueueRoutine<br>TcpCleanupIsnGenerator<br>TcpCleanupListenerWorkQueueRoutine<br>TcpCleanupPartitionModule<br>TcpCleanupTcbEstats<br>TcpCleanupTcbWorkQueueRoutine<br>TcpCleanupTimeWaitTcb<br>TcpCreateAndAcceptTcb<br>TcpCreateAndConnectTcb<br>TcpCreateCompartment<br>TcpCreateListener<br>TcpCreateListenerInspectComplete<br>TcpDeleteCompartment<br>TcpDestroyEndpointSoSecurityDescriptor<br>TcpDisconnectTcbComplete<br>TcpDisconnectTcbSendRequestComplete<br>TcpEnumerateListeners<br>TcpFreeDelayedDeliveryBuffer<br>TcpGenerateFastopenCookie<br>TcpHandleServerSideFastopenOption<br>TcpInitializeIsnGenerator<br>TcpIsnProcessorAddHandler<br>TcpListenerAbortPendingConnections<br>TcpListenerRemovePendingConnection<br>TcpNlClientCleanupInterface<br>TcpNlClientDeleteLocalAddress<br>TcpNotifyRetransmitTimeoutAtPassive<br>TcpPortPropertyDeleteAllParameters<br>TcpPortPropertyResetAllObjects<br>TcpPortReservationWorkQueueRoutine<br>TcpQueryBinaryValueKey<br>TcpQueryGlobalObjectSecurity<br>TcpQuerySecurityEndpointWorkQueueRoutine<br>TcpQuerySecurityListenerWorkQueueRoutine<br>TcpQuerySecurityTcbWorkQueueRoutine<br>TcpReloadRegistryConfig<br>TcpRemoveTcb<br>TcpSetSecurityEndpointWorkQueueRoutine<br>TcpSetSockOptEndpoint<br>TcpSetSockOptEndpointSetSessionInfoComplete<br>TcpSetSockOptListenerSetSessionInfoComplete<br>TcpStartConfigModule<br>TcpStartEndpointModule<br>TcpStartInetModule<br>TcpStartPartitionModule<br>TcpStartTcbModule<br>TcpStopConfigModule<br>TcpStopDelayModule<br>TcpStopEndpointModule<br>TcpStopInetModule<br>TcpStopOlmModule<br>TcpStopReceiveModule<br>TcpStopTcbModule<br>TcpStopTimerModule<br>TcpTcbHeaderSend<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbReassemblyAllocateHeaderData<br>TcpTcbReassemblyCleanupHeader<br>TcpTcbReassemblyFreeHeader<br>TcpTcbReassemblyFreeHeaderData<br>TcpTcbReassemblyFreeMdlChain<br>TcpTcbReassemblyFreeNetBufferList<br>TcpTcbReassemblyInsertNetBufferList<br>TcpTcbReassemblyRetrieveSegments<br>TcpTcbSend<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUpdateMaxPartitionCount<br>TcpUpdateTcbEstats<br>TcpipConfigCleanup<br>TcpipConfigNsiCleanupProviderBindingContext<br>TcpipGetAppNameFromProcess<br>TcpipInitializeHealthTelemetry<br>TcpipPcwCleanup<br>TcpipPcwPerCpuCallback<br>TlRdmaAttachClient<br>TlRdmaProviderCloseNDKAdapter<br>TlRdmaProviderOpenNDKAdapter<br>TlShimCacheMatchedFilterList<br>TlShimDirectClassify<br>TlShimInjectRedirectedPacketComplete<br>TlShimOptionalReauthorizeConnection<br>TlShimReleaseLayerCache<br>TraceVailGuestPortFailure<br>TtDestroyTable<br>UQoSCleanupClient<br>UQoSQueryPolicyByNameInternal<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpCleanupAf<br>UdpCleanupEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpCreateAndActivateEndpointCreateRequestComplete<br>UdpCreateCompartment<br>UdpDeleteCompartment<br>UdpDeleteMessageIndication<br>UdpDereferenceOffloadInterface<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEnumerateEndpoints<br>UdpPortReservationWorkQueueRoutine<br>UdpQuerySecurityEndpointWorkQueueRoutine<br>UdpReceiveDatagrams<br>UdpSetSecurityEndpointWorkQueueRoutine<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>UdpStartInetModule<br>UdpStopInetModule<br>UdpUninitTimestampQueue<br>UrlpFreeContext<br>UrlpReAllocHelper<br>WfpAleAcquireStackEndpoint<br>WfpAleAuditEvent<br>WfpAleAuthLogHistogramDatapointWorkQueueRoutine<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizePromiscuousMode<br>WfpAleAuthorizeRAW<br>WfpAleAuthorizeSend<br>WfpAleCancelEndpointDeleteNotification<br>WfpAleCaptureSecurityInformation<br>WfpAleCaptureTokenInformation<br>WfpAleCopySecurityRealmIdFromEndpoint<br>WfpAleDecrementWaitRef<br>WfpAleDecrementWaitRef<br>WfpAleDeleteRemoteEndpointLru<br>WfpAleDereferenceEndpoint<br>WfpAleEndpointDeactivationHandler<br>WfpAleFastUdpInspection<br>WfpAleFreeMarshaledFqbnValue<br>WfpAleFreeSecurityInformation<br>WfpAleFreeTokenInformation<br>WfpAleGetEnterpriseIdAndPolicyFlags<br>WfpAleGetRefedUdpCachedRemoteEndpoint<br>WfpAleGetServiceSidsFromToken<br>WfpAleInsertRemoteEndpoint<br>WfpAleOobAcquireStreamEndpoint<br>WfpAleRequestEndpointDeleteNotification<br>WfpAleStreamLayerChanged<br>WfpAleUninitialize<br>WfpAleUninitializeAuthorizationEngine<br>WfpAlepAuthorizePortByFamily<br>WfpAlepEndpointCleanup<br>WfpAlepFreePeerTokenInformation<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepNotifyEndpointDeletion<br>WfpAllowBfeGenericAll<br>WfpCreateProcessNotifyRoutine<br>WfpIpAddressChangeCallback<br>WfpIpAddressCheckAndDelete<br>WfpIsLayerOffloadPossible<br>WfpNamedPoolFree<br>WfpNlcAttachNlProvider<br>WfpNlcCleanupNlProviderContext<br>WfpPoolFree<br>WfpRemoveModifiedIdCorrelationEntry<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram</details>|
|paramcount|0|0|
|address|EXTERNAL:00000161|EXTERNAL:00000161|
|sig|undefined ExFreePoolWithTag(void)|undefined ExFreePoolWithTag(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::ExFreePoolWithTag Calling Diff


```diff
--- NTOSKRNL.EXE::ExFreePoolWithTag calling
+++ NTOSKRNL.EXE::ExFreePoolWithTag calling
@@ -5,0 +6 @@
+AleInspectConnectRequest
@@ -24,0 +26 @@
+CreateUdpConnectRedirectCallbackContext
@@ -29,0 +32 @@
+DestroyUdpConnectRedirectCallbackContext
@@ -59,19 +62,19 @@
-FUN_14005512b
-FUN_1400c04a9
-FUN_14010860d
-FUN_1401231ad
-FUN_1401c4f28
-FUN_1401c6a6c
-FUN_1401c6bb3
-FUN_1401cd58a
-FUN_1401ce8ec
-FUN_1401d0762
-FUN_1401d0dd5
-FUN_1401dcbb0
-FUN_1401de1ec
-FUN_1401de4bc
-FUN_1401de774
-FUN_1401de7bc
-FUN_1401deb76
-FUN_1401dfbf4
-FUN_14026866e
+FUN_14006e719
+FUN_140070e35
+FUN_14009a39b
+FUN_140103db1
+FUN_1401c3828
+FUN_1401c4208
+FUN_1401ce200
+FUN_1401ce347
+FUN_1401cf228
+FUN_1401d36eb
+FUN_1401da944
+FUN_1401da98c
+FUN_1401dc89a
+FUN_1401dd48a
+FUN_1401de136
+FUN_1401de406
+FUN_1401dea64
+FUN_1401dfc72
+FUN_1402686c2
@@ -482,2 +484,0 @@
-UdpConnectRedirectCallback
-UdpConnectRedirectCallbackContinue
```


## WPP_SF_sDd

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.78|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WPP_SF_sDd|WPP_SF_sDd|
|fullname|WPP_SF_sDd|WPP_SF_sDd|
|`refcount`|5|6|
|length|147|147|
|called|_guard_dispatch_icall|_guard_dispatch_icall|
|`calling`|WfpAleConnectAcceptIndicate<br>WfpDatagramDataIndicate<br>WfpReportErrorIPSec<br>WfpReportStatus|WfpAleAuthorizeSend<br>WfpAleConnectAcceptIndicate<br>WfpDatagramDataIndicate<br>WfpReportErrorIPSec<br>WfpReportStatus|
|paramcount|0|0|
|`address`|14014e7dc|14014e57c|
|sig|undefined WPP_SF_sDd(void)|undefined WPP_SF_sDd(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WPP_SF_sDd Calling Diff


```diff
--- WPP_SF_sDd calling
+++ WPP_SF_sDd calling
@@ -0,0 +1 @@
+WfpAleAuthorizeSend
```


## NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeReleaseInStackQueuedSpinLock|KeReleaseInStackQueuedSpinLock|
|fullname|NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock|
|`refcount`|452|454|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleEdgeIFsCacheAction<br>AleEdgeIFsIsProfileCrossing<br>AleEdgeIFsLookupCachedAction<br>AleReleaseEndpointLock<br>CleanupFilterData<br>DeleteExclusion<br>EQoSAttachQoSProvider<br>EQoSCleanupPolicyTablesOnModuleStop<br>EQoSCreateActiveStoreNetPolicy<br>EQoSDeReferenceQoSpContext<br>EQoSDeleteActiveStoreNetPolicy</summary>EQoSDeleteAppName<br>EQoSDeletePolicyOwner<br>EQoSDetachQoSProvider<br>EQoSDispatchIoctl<br>EQoSReferenceQoSFlow<br>EQoSUpdateActiveStoreNetPolicy<br>EQoSpMergePolicyTableList<br>EQoSpTrimUserPolicyList<br>FUN_1400331fe<br>FUN_1400a2c65<br>FUN_1400a756e<br>FUN_1400f48b8<br>FUN_1401c821e<br>FUN_1401ce0aa<br>FUN_1401ce856<br>FUN_1401d07b6<br>FUN_1401d0c4a<br>FUN_1401d0d24<br>FUN_1401d1304<br>FUN_1401d1347<br>FUN_1401d41fa<br>FUN_1401d9219<br>FUN_1401dd5aa<br>FUN_1401dea96<br>FUN_140285784<br>FllpCreateLoopbackInterface<br>FllpDeleteLoopbackInterfaces<br>FlpInsertInterface<br>FlpRemoveInterface<br>IPSecAllocateAndQueueWorkItem<br>IPSecCanProcessUpcallAndRef<br>IPSecCheckReplayPostAuth<br>IPSecClearSaOffload<br>IPSecConfirmAndSetOffloadState<br>IPSecCpuSchedulerOnPolicyChange<br>IPSecDerefOutstandingUpcall<br>IPSecDestroyFlowHandleList<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecDoCommonPerPacketInitOutboundProcessing<br>IPSecGetOffloadedSaParamsInfo<br>IPSecInitializePacketBatchQueue<br>IPSecIsOffloadStateValid<br>IPSecNlClientTaskOffloadAddInterface<br>IPSecNlClientTaskOffloadDeleteInterface<br>IPSecPauseOffloadOnInterface<br>IPSecPlumbHw<br>IPSecPlumbSa<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecReleaseLockItomIf<br>IPSecReleaseLockSa<br>IPSecResumeOffloadOnInterface<br>IPSecServiceWorkItems<br>IPSecSetOffloadInterfaceParams<br>IPSecStartTimerSa<br>IPSecStopTimerSa<br>IPSecTimerHandlerDeRefSa<br>IPSecUpdateFlowHandleStateOnSa<br>IPSecUpdateNegotiationStatusToEndpoints<br>IPsecDrainPendedPktQueue<br>IPsecFindAndDeleteSaFromSaList<br>IPsecHandleAuthFailureInbound<br>IPsecProcessAllBatchingQueuesForCurrentProcessor<br>IPsecQueuePendCtxt<br>Icmpv4HandleRouterSolicitation<br>InetAcquireSpecificPortUnderLock<br>InetAcquireWildcardPortUnderLock<br>InetBeginEnumeratePortPool<br>InetContinueEnumeratePortPool<br>InetCreateAf<br>InetCreateClient<br>InetCreateOrReferenceCompartmentById<br>InetDeleteClient<br>InetDereferenceCompartmentById<br>InetInitializeSmartPortRange<br>InetInspectReceiveTcpDatagram<br>InetReleasePortUnderLock<br>InetReleaseWeakReferencePort<br>InetReplacePortEndpoint<br>InetTryToAcquireWeakReferencePort<br>InitializeEndpointContextFromParentContext<br>IpAttachNlClient<br>IpDisableFlProviderContext<br>IpEnumerateAllNeighbors<br>IpFlcAddGroupComplete<br>IpFlcDeleteInterface<br>IpFlcUpdateInterface<br>IpFlcUpdateSubInterface<br>IpGetAllResolveNeighborParameters<br>IpNlpConfirmForwardReachability<br>IpNlpQueryPathInformation<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IpNlpSuspectPathReachability<br>IpSetAllInterfaceUnprivilegedParameters<br>IpSetAllProxyNeighborParameters<br>IppActiveReferenceWorker<br>IppAddAllMulticastReference<br>IppAddOrDeletePersistentRoutes<br>IppAddPromiscuousReference<br>IppAddWolForAddress<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllLocalAddressParameters<br>IppCommitSetAllMfeParameters<br>IppCommitSetAllSubInterfaceParameters<br>IppConfigureIscsiAddress<br>IppConfirmNeighborReachability<br>IppCreateInterface<br>IppCreateSubInterface<br>IppCreateSubInterfaceSplitList<br>IppDeleteMfes<br>IppDeleteOffloadEncapsulation<br>IppDeleteSubInterface<br>IppDereferenceCompartmentInterfaceSet<br>IppDereferenceLocalAddress<br>IppDereferenceLocalMulticastAddress<br>IppDetachFlProviderComplete<br>IppDetachNlClientCompleteWorkerRoutine<br>IppDispatchSendPacketHelper<br>IppFillUnicastRouteData<br>IppFindOrCreateCompartmentByIdEx<br>IppFindOrCreateLocalEphemeralAddress<br>IppFindOrCreateLocalMulticastAddress<br>IppFindOrCreateNeighbor<br>IppFlushPaths<br>IppGarbageCollectPaths<br>IppGarbageCollectRoutes<br>IppGetNextNeighborOnInterface<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppHandleWolContextEviction<br>IppInspectLocalDatagramsOut<br>IppInterfaceBwAggregateSample<br>IppInterfaceListProcessorAddRemoveHandler<br>IppModifyMulticastGroup<br>IppMulticastDiscoveryVersionTimeout<br>IppMulticastWorkerRoutine<br>IppNotifyAddressChangeAtPassive<br>IppNotifyRouteChangeAtPassive<br>IppProcessMulticastDiscoveryQuery<br>IppProcessMulticastDiscoveryReport<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppRedirectPath<br>IppRemoveAllMulticastReference<br>IppRemoveWolForAddress<br>IppResetNeighbors<br>IppResetPrefixPolicy<br>IppResolveNeighbor<br>IppSendDirect<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetOffloadEncapsulation<br>IppSuspectNeighborReachability<br>IppUpdateAllProtocolCompartments<br>IppUpdateCompartment<br>IppUpdateNextHop<br>IppUpdateUnicastRoute<br>IppValidatePath<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbInterfaceChangeCallback<br>Ipv4AttachFlProvider<br>Ipv4EnumerateAllPaths<br>Ipv4SetAllRouteParameters<br>Ipv4pAddressInterface<br>Ipv4pHandleRedirect<br>Ipv4pPathMtuDiscoveryTimeout<br>Ipv4pResetAutoConfiguredRoutes<br>Ipv4pUpdatePathMtu<br>Ipv6AttachFlProvider<br>Ipv6EnumerateAllPaths<br>Ipv6SetAllRouteParameters<br>Ipv6pAddPotentialRouter<br>Ipv6pAddressInterface<br>Ipv6pFragmentPacketHelper<br>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pInitializeRouterContext<br>Ipv6pJoinGroupAtMultipleScopes<br>Ipv6pPathMtuDiscoveryTimeout<br>Ipv6pRemovePotentialRouter<br>Ipv6pResetAutoConfiguredDnsSettings<br>Ipv6pResetAutoConfiguredPref64Settings<br>Ipv6pResetAutoConfiguredRoutes<br>Ipv6pSendRouterAdvertisementOnSubInterface<br>Ipv6pUninitializeRouterContext<br>Ipv6pUpdateAutoConfiguredAddresses<br>Ipv6pUpdatePathMtu<br>Ipv6pUpdatePref64<br>Ipv6pUpdateRDNSS<br>IsReusableAssignment<br>PrepareAndStoreFilterData<br>QimInspectAssociateQoS<br>QimInspectBindEndpoint<br>QimInspectSetQoS<br>QimUpdateUDPEndpointOnPolicyChange<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointInspectComplete<br>RawBindEndpointRequestInspectComplete<br>RawCleanupEndpoint<br>RawCloseEndpoint<br>RawContinueSetDestinationEndpoint<br>RawReceiveDatagrams<br>RawSendMessagesOnPathCreation<br>RawSetDestinationEndpoint<br>RawSetSockOptEndpoint<br>TcpCleanupIsnGenerator<br>TcpCleanupPartitionModule<br>TcpCleanupSynTcb<br>TcpCleanupTimerSynTcb<br>TcpCloseListener<br>TcpCloseTcbWorkQueueRoutine<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateListenerInspectComplete<br>TcpDeleteTcbWithSource<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpFindAndReferenceStandbySynTcb<br>TcpGetAndWriteLockPartition<br>TcpHandleSockOptSioWakeListener<br>TcpInitializeIsnGenerator<br>TcpInspectConnectionOnListener<br>TcpPortPropertyDeleteAllParameters<br>TcpPortPropertyResetAllObjects<br>TcpPortPropertySetAllParameters<br>TcpRemoveTcb<br>TcpRepartitionState<br>TcpResumeConnectionOnListener<br>TcpSetSockOptListener<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUpdateFastopenKey<br>TlShimOptionalReauthorizeConnection<br>TlShimPurgeAllLayerCache<br>TlShimPurgeLayerCache<br>UQoSAttachClient<br>UQoSDetachClient<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpCloseEndpoint<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEnumerateEndpoints<br>UdpHandleSockOptSioWake<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSendMessagesOnPath<br>UdpSetDestinationEndpoint<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>WfpAleAcquireStackEndpoint<br>WfpAleAuthorizeSend<br>WfpAleDeleteRemoteEndpointLru<br>WfpAleEndpointDeactivationHandler<br>WfpAleEnumEndpoints<br>WfpAleFastUdpInspection<br>WfpAleForceReclassifyLayer<br>WfpAleGetRefedUdpCachedRemoteEndpoint<br>WfpAleInsertEndpoint<br>WfpAleInsertRemoteEndpoint<br>WfpAleOobAcquireStreamEndpoint<br>WfpAleQueryOrInsertEndpointHandle<br>WfpAleRemoveEndpoint<br>WfpAleRequestEndpointDeleteNotification<br>WfpAleStreamLayerChanged<br>WfpAlepFindEndpointsForEDPPolicyChange<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpInspectReceiveControlShimV4<br>WfpReleaseSpinLock<br>WfpTlShimInspectRecvTcpDatagram<br>_InetDeleteAf</details>|<details><summary>Expand for full list:<br>AleEdgeIFsCacheAction<br>AleEdgeIFsIsProfileCrossing<br>AleEdgeIFsLookupCachedAction<br>AleReleaseEndpointLock<br>CleanupFilterData<br>DeleteExclusion<br>EQoSAttachQoSProvider<br>EQoSCleanupPolicyTablesOnModuleStop<br>EQoSCreateActiveStoreNetPolicy<br>EQoSDeReferenceQoSpContext<br>EQoSDeleteActiveStoreNetPolicy</summary>EQoSDeleteAppName<br>EQoSDeletePolicyOwner<br>EQoSDetachQoSProvider<br>EQoSDispatchIoctl<br>EQoSReferenceQoSFlow<br>EQoSUpdateActiveStoreNetPolicy<br>EQoSpMergePolicyTableList<br>EQoSpTrimUserPolicyList<br>FUN_14008250e<br>FUN_1400bcec2<br>FUN_1400be5b5<br>FUN_1400f34f8<br>FUN_1401c54c0<br>FUN_1401cd9f2<br>FUN_1401cf420<br>FUN_1401d3560<br>FUN_1401d363a<br>FUN_1401d38f0<br>FUN_1401d3933<br>FUN_1401d91e7<br>FUN_1401dd7e6<br>FUN_1401de95e<br>FUN_1401dea3e<br>FUN_140285784<br>FllpCreateLoopbackInterface<br>FllpDeleteLoopbackInterfaces<br>FlpInsertInterface<br>FlpRemoveInterface<br>IPSecAllocateAndQueueWorkItem<br>IPSecCanProcessUpcallAndRef<br>IPSecCheckReplayPostAuth<br>IPSecClearSaOffload<br>IPSecConfirmAndSetOffloadState<br>IPSecCpuSchedulerOnPolicyChange<br>IPSecDerefOutstandingUpcall<br>IPSecDestroyFlowHandleList<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecDoCommonPerPacketInitOutboundProcessing<br>IPSecGetOffloadedSaParamsInfo<br>IPSecInitializePacketBatchQueue<br>IPSecIsOffloadStateValid<br>IPSecNlClientTaskOffloadAddInterface<br>IPSecNlClientTaskOffloadDeleteInterface<br>IPSecPauseOffloadOnInterface<br>IPSecPlumbHw<br>IPSecPlumbSa<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecReleaseLockItomIf<br>IPSecReleaseLockSa<br>IPSecResumeOffloadOnInterface<br>IPSecServiceWorkItems<br>IPSecSetOffloadInterfaceParams<br>IPSecStartTimerSa<br>IPSecStopTimerSa<br>IPSecTimerHandlerDeRefSa<br>IPSecUpdateFlowHandleStateOnSa<br>IPSecUpdateNegotiationStatusToEndpoints<br>IPsecDrainPendedPktQueue<br>IPsecFindAndDeleteSaFromSaList<br>IPsecHandleAuthFailureInbound<br>IPsecProcessAllBatchingQueuesForCurrentProcessor<br>IPsecQueuePendCtxt<br>Icmpv4HandleRouterSolicitation<br>InetAcquireSpecificPortUnderLock<br>InetAcquireWildcardPortUnderLock<br>InetBeginEnumeratePortPool<br>InetContinueEnumeratePortPool<br>InetCreateAf<br>InetCreateClient<br>InetCreateOrReferenceCompartmentById<br>InetDeleteClient<br>InetDereferenceCompartmentById<br>InetInitializeSmartPortRange<br>InetInspectReceiveTcpDatagram<br>InetReleasePortUnderLock<br>InetReleaseWeakReferencePort<br>InetReplacePortEndpoint<br>InetTryToAcquireWeakReferencePort<br>InitializeEndpointContextFromParentContext<br>IpAttachNlClient<br>IpDisableFlProviderContext<br>IpEnumerateAllNeighbors<br>IpFlcAddGroupComplete<br>IpFlcDeleteInterface<br>IpFlcUpdateInterface<br>IpFlcUpdateSubInterface<br>IpGetAllResolveNeighborParameters<br>IpNlpConfirmForwardReachability<br>IpNlpQueryPathInformation<br>IpNlpSetPathInfo<br>IpNlpSetSessionInfo<br>IpNlpSuspectPathReachability<br>IpSetAllInterfaceUnprivilegedParameters<br>IpSetAllProxyNeighborParameters<br>IppActiveReferenceWorker<br>IppAddAllMulticastReference<br>IppAddOrDeletePersistentRoutes<br>IppAddPromiscuousReference<br>IppAddWolForAddress<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllLocalAddressParameters<br>IppCommitSetAllMfeParameters<br>IppCommitSetAllSubInterfaceParameters<br>IppConfigureIscsiAddress<br>IppConfirmNeighborReachability<br>IppCreateInterface<br>IppCreateSubInterface<br>IppCreateSubInterfaceSplitList<br>IppDeleteMfes<br>IppDeleteOffloadEncapsulation<br>IppDeleteSubInterface<br>IppDereferenceCompartmentInterfaceSet<br>IppDereferenceLocalAddress<br>IppDereferenceLocalMulticastAddress<br>IppDetachFlProviderComplete<br>IppDetachNlClientCompleteWorkerRoutine<br>IppDispatchSendPacketHelper<br>IppFillUnicastRouteData<br>IppFindOrCreateCompartmentByIdEx<br>IppFindOrCreateLocalEphemeralAddress<br>IppFindOrCreateLocalMulticastAddress<br>IppFindOrCreateNeighbor<br>IppFlushPaths<br>IppGarbageCollectPaths<br>IppGarbageCollectRoutes<br>IppGetNextNeighborOnInterface<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppHandleWolContextEviction<br>IppInspectLocalDatagramsOut<br>IppInterfaceBwAggregateSample<br>IppInterfaceListProcessorAddRemoveHandler<br>IppModifyMulticastGroup<br>IppMulticastDiscoveryVersionTimeout<br>IppMulticastWorkerRoutine<br>IppNotifyAddressChangeAtPassive<br>IppNotifyRouteChangeAtPassive<br>IppProcessMulticastDiscoveryQuery<br>IppProcessMulticastDiscoveryReport<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppRedirectPath<br>IppRemoveAllMulticastReference<br>IppRemoveWolForAddress<br>IppResetNeighbors<br>IppResetPrefixPolicy<br>IppResolveNeighbor<br>IppSendDirect<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetOffloadEncapsulation<br>IppSuspectNeighborReachability<br>IppUpdateAllProtocolCompartments<br>IppUpdateCompartment<br>IppUpdateNextHop<br>IppUpdateUnicastRoute<br>IppValidatePath<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbInterfaceChangeCallback<br>Ipv4AttachFlProvider<br>Ipv4EnumerateAllPaths<br>Ipv4SetAllRouteParameters<br>Ipv4pAddressInterface<br>Ipv4pHandleRedirect<br>Ipv4pPathMtuDiscoveryTimeout<br>Ipv4pResetAutoConfiguredRoutes<br>Ipv4pUpdatePathMtu<br>Ipv6AttachFlProvider<br>Ipv6EnumerateAllPaths<br>Ipv6SetAllRouteParameters<br>Ipv6pAddPotentialRouter<br>Ipv6pAddressInterface<br>Ipv6pFragmentPacketHelper<br>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pInitializeRouterContext<br>Ipv6pJoinGroupAtMultipleScopes<br>Ipv6pPathMtuDiscoveryTimeout<br>Ipv6pRemovePotentialRouter<br>Ipv6pResetAutoConfiguredDnsSettings<br>Ipv6pResetAutoConfiguredPref64Settings<br>Ipv6pResetAutoConfiguredRoutes<br>Ipv6pSendRouterAdvertisementOnSubInterface<br>Ipv6pUninitializeRouterContext<br>Ipv6pUpdateAutoConfiguredAddresses<br>Ipv6pUpdatePathMtu<br>Ipv6pUpdatePref64<br>Ipv6pUpdateRDNSS<br>IsReusableAssignment<br>PrepareAndStoreFilterData<br>QimInspectAssociateQoS<br>QimInspectBindEndpoint<br>QimInspectSetQoS<br>QimUpdateUDPEndpointOnPolicyChange<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointInspectComplete<br>RawBindEndpointRequestInspectComplete<br>RawCleanupEndpoint<br>RawCloseEndpoint<br>RawContinueSetDestinationEndpoint<br>RawReceiveDatagrams<br>RawSendMessagesOnPathCreation<br>RawSetDestinationEndpoint<br>RawSetSockOptEndpoint<br>TcpCleanupIsnGenerator<br>TcpCleanupPartitionModule<br>TcpCleanupSynTcb<br>TcpCleanupTimerSynTcb<br>TcpCloseListener<br>TcpCloseTcbWorkQueueRoutine<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateListenerInspectComplete<br>TcpDeleteTcbWithSource<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpFindAndReferenceStandbySynTcb<br>TcpGetAndWriteLockPartition<br>TcpHandleSockOptSioWakeListener<br>TcpInitializeIsnGenerator<br>TcpInspectConnectionOnListener<br>TcpPortPropertyDeleteAllParameters<br>TcpPortPropertyResetAllObjects<br>TcpPortPropertySetAllParameters<br>TcpRemoveTcb<br>TcpRepartitionState<br>TcpResumeConnectionOnListener<br>TcpSetSockOptListener<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUpdateFastopenKey<br>TlShimOptionalReauthorizeConnection<br>TlShimPurgeAllLayerCache<br>TlShimPurgeLayerCache<br>UQoSAttachClient<br>UQoSDetachClient<br>UdpActivateEndpointBindRequestComplete<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpCloseEndpoint<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpConnectRedirectObsolete<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEnumerateEndpoints<br>UdpHandleSockOptSioWake<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSendMessagesDatagramsComplete<br>UdpSendMessagesOnPath<br>UdpSetDestinationEndpoint<br>UdpSetSockOptEndpoint<br>UdpSetSockOptEndpointSetSessionInfoComplete<br>WfpAleAcquireStackEndpoint<br>WfpAleAuthorizeSend<br>WfpAleDeleteRemoteEndpointLru<br>WfpAleEndpointDeactivationHandler<br>WfpAleEnumEndpoints<br>WfpAleFastUdpInspection<br>WfpAleForceReclassifyLayer<br>WfpAleGetRefedUdpCachedRemoteEndpoint<br>WfpAleInsertEndpoint<br>WfpAleInsertRemoteEndpoint<br>WfpAleOobAcquireStreamEndpoint<br>WfpAleQueryOrInsertEndpointHandle<br>WfpAleRemoveEndpoint<br>WfpAleRequestEndpointDeleteNotification<br>WfpAleStreamLayerChanged<br>WfpAlepFindEndpointsForEDPPolicyChange<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpInspectReceiveControlShimV4<br>WfpReleaseSpinLock<br>WfpTlShimInspectRecvTcpDatagram<br>_InetDeleteAf</details>|
|paramcount|0|0|
|address|EXTERNAL:0000010c|EXTERNAL:0000010c|
|sig|undefined KeReleaseInStackQueuedSpinLock(void)|undefined KeReleaseInStackQueuedSpinLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock Calling Diff


```diff
--- NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock calling
+++ NTOSKRNL.EXE::KeReleaseInStackQueuedSpinLock calling
@@ -20,16 +20,15 @@
-FUN_1400331fe
-FUN_1400a2c65
-FUN_1400a756e
-FUN_1400f48b8
-FUN_1401c821e
-FUN_1401ce0aa
-FUN_1401ce856
-FUN_1401d07b6
-FUN_1401d0c4a
-FUN_1401d0d24
-FUN_1401d1304
-FUN_1401d1347
-FUN_1401d41fa
-FUN_1401d9219
-FUN_1401dd5aa
-FUN_1401dea96
+FUN_14008250e
+FUN_1400bcec2
+FUN_1400be5b5
+FUN_1400f34f8
+FUN_1401c54c0
+FUN_1401cd9f2
+FUN_1401cf420
+FUN_1401d3560
+FUN_1401d363a
+FUN_1401d38f0
+FUN_1401d3933
+FUN_1401d91e7
+FUN_1401dd7e6
+FUN_1401de95e
+FUN_1401dea3e
@@ -255,0 +255 @@
+UdpConnectRedirectObsolete
@@ -260,0 +261 @@
+UdpSendMessagesDatagramsComplete
```


## IppCleanupInterfaceWorkerRoutine

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.67|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppCleanupInterfaceWorkerRoutine|IppCleanupInterfaceWorkerRoutine|
|fullname|IppCleanupInterfaceWorkerRoutine|IppCleanupInterfaceWorkerRoutine|
|`refcount`|3|4|
|length|779|779|
|called|<details><summary>Expand for full list:<br>IppDeferNetworkStateUpdateProcessing<br>IppDereferenceCompartment<br>IppNotifyInterfaceChangeToNlClients<br>IppUninitializeAdaptiveTable<br>IppUninitializeIpsServiceChain<br>IppUninitializeProxyNeighborSet<br>McTemplateK0qqqqq_EtwWriteTransfer<br>NETIO.SYS::NetioFreeOpaquePerProcessorContext<br>NETIO.SYS::NetioShutdownWorkQueue<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoFreeWorkItem</summary>NTOSKRNL.EXE::KeQueryMaximumProcessorCountEx<br>PktMonClientComponentUnregister<br>TtDestroyTable<br>_guard_dispatch_icall</details>|<details><summary>Expand for full list:<br>IppDeferNetworkStateUpdateProcessing<br>IppDereferenceCompartment<br>IppNotifyInterfaceChangeToNlClients<br>IppUninitializeAdaptiveTable<br>IppUninitializeIpsServiceChain<br>IppUninitializeProxyNeighborSet<br>McTemplateK0qqqqq_EtwWriteTransfer<br>NETIO.SYS::NetioFreeOpaquePerProcessorContext<br>NETIO.SYS::NetioShutdownWorkQueue<br>NTOSKRNL.EXE::ExFreePoolWithTag<br>NTOSKRNL.EXE::IoFreeWorkItem</summary>NTOSKRNL.EXE::KeQueryMaximumProcessorCountEx<br>PktMonClientComponentUnregister<br>TtDestroyTable<br>_guard_dispatch_icall</details>|
|calling|||
|paramcount|0|0|
|`address`|1400a4630|1400bff80|
|sig|undefined IppCleanupInterfaceWorkerRoutine(void)|undefined IppCleanupInterfaceWorkerRoutine(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## Ipv4pFillPacketChecksum

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.83|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|Ipv4pFillPacketChecksum|Ipv4pFillPacketChecksum|
|fullname|Ipv4pFillPacketChecksum|Ipv4pFillPacketChecksum|
|`refcount`|8|7|
|length|226|226|
|called|NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>tcpxsum|NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>tcpxsum|
|`calling`|IpIpsProviderComputeIpv4Checksum<br>IppFragmentPackets<br>IppInspectFillIpv4PacketChecksum<br>IppLoopbackEnqueue<br>IppPacketizeDatagramsForHeaderBuild<br>Ipv4pFragmentPacketHelper<br>Ipv4pReassembleDatagram|IpIpsProviderComputeIpv4Checksum<br>IppInspectFillIpv4PacketChecksum<br>IppPacketizeDatagramsForHeaderBuild<br>IppTranslateTransmitToReceiveNbl<br>Ipv4pFragmentPacketHelper<br>Ipv4pReassembleDatagram|
|paramcount|0|0|
|`address`|14002afe0|1400b6d30|
|sig|undefined Ipv4pFillPacketChecksum(void)|undefined Ipv4pFillPacketChecksum(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### Ipv4pFillPacketChecksum Calling Diff


```diff
--- Ipv4pFillPacketChecksum calling
+++ Ipv4pFillPacketChecksum calling
@@ -2 +1,0 @@
-IppFragmentPackets
@@ -4 +2,0 @@
-IppLoopbackEnqueue
@@ -5,0 +4 @@
+IppTranslateTransmitToReceiveNbl
```


## IppDereferenceInterface

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.72|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IppDereferenceInterface|IppDereferenceInterface|
|fullname|IppDereferenceInterface|IppDereferenceInterface|
|`refcount`|191|190|
|length|80|80|
|called|NTOSKRNL.EXE::IoQueueWorkItem|NTOSKRNL.EXE::IoQueueWorkItem|
|`calling`|<details><summary>Expand for full list:<br>AlepFillEdgeInterfaceRelatedFields<br>FUN_1400331fe<br>FUN_140075153<br>FUN_1400a2c65<br>FUN_1401c658c<br>FUN_1401d9c44<br>InetDereferenceNlInterfaceAf<br>InetQueryInterfacePropertyAf<br>InetReleasePktMonContext<br>IpEnumerateAllNeighbors<br>IpFlcDeleteInterface</summary>IpGetAllInterfaceHopParameters<br>IpGetAllInterfaceParameters<br>IpGetAllNeighborParameters<br>IpGetAllProxyNeighborParameters<br>IpGetAllResolveNeighborParameters<br>IpGetAllRouteParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderAttachToInterface<br>IpIpsProviderDetachFromInterface<br>IpIpsProviderFindNextHop<br>IpIpsProviderQueryAddressInformation<br>IpIpsProviderQueryInterfaceInformation<br>IpIpsProviderSendIcmpError<br>IpIpsProviderSetInterfaceContext<br>IpNlpDereferenceInterface<br>IpNlpQueryInterface<br>IpNlpQueryInterfaceProperty<br>IpNlpReferenceInterface<br>IpNlpReferenceLocalAddress<br>IpNlpReleasePktMonContext<br>IpNlpSetInterfaceProperty<br>IpNlpSetSessionInfo<br>IpSetAllDisconnectInterfaceParameters<br>IpSetAllInterfaceParameters<br>IpSetAllInterfaceUnprivilegedParameters<br>IpSetAllLocalMulticastAddressParameters<br>IpSetAllNeighborParameters<br>IpSetAllProxyNeighborParameters<br>IpSetAllWakeUpPatternParameters<br>IppActiveReferenceWorker<br>IppAddOrDeletePersistentRoutes<br>IppCleanupLocalAddress<br>IppCleanupRouteListInLookupContext<br>IppCleanupSubInterfaceWorkerRoutine<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppCreateMulticastSessionState<br>IppDereferenceAddressPrimitive<br>IppDereferenceLocalAddress<br>IppDereferenceLocalMulticastAddress<br>IppDereferenceRoute<br>IppDispatchMfeQueuedPackets<br>IppEnumerateAllAddresses<br>IppEvaluateSortInformation<br>IppFindDefaultInterfaceForZone<br>IppFindInterfaceForThread<br>IppFindMulticastAddressOnNextInterface<br>IppFindNextHopAtDpc<br>IppFindSubInterfaceByLuid<br>IppGetAllBestRouteParameters<br>IppGetAllLocalAddressParameters<br>IppGetAllUnicastAddressesOnHost<br>IppGetExactProxyNeighbor<br>IppGetNextNeighbor<br>IppGetNextProxyNeighbor<br>IppHandleLinkLocalAddressChangeAtPassiveLevel<br>IppInspectDereferenceInterface<br>IppInspectInjectForward<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppInspectQueryRealNextHopInterfaceComplete<br>IppInspectQueryRealNextHopInterfaceWorker<br>IppInterfaceBwPersistParametersWorker<br>IppInterfaceRundown<br>IppIpsInjectPackets<br>IppIpsL2ForwardPackets<br>IppIpsNotifyNlClientsOnAllInterfaces<br>IppJoinPath<br>IppMulticastWorkerRoutine<br>IppNotifyInterfaceChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPktMonRegisterProtocol<br>IppProtocolNeighborRundown<br>IppReassemblyTimeout<br>IppRefreshForwardPathUnderLock<br>IppRemoveSitePrefixEntry<br>IppScheduleWolUpdateOnPowerSourceChangeForProtocol<br>IppSetOffloadEncapsulationWorker<br>IppSetWolParametersWorker<br>IppUninitializeSessionState<br>IppUpdateIpsServiceChainsForClient<br>IppUpdateNetworkStateWorker<br>IppValidateSetAllInterfaceParameters<br>IppValidateSetAllLocalAddressParameters<br>IppValidateSetAllMfeParameters<br>IppValidateSettingsOnReconnectWorker<br>IppWolUpdateOnPowerSourceChangeWorker<br>Ipv4GetAllPathParameters<br>Ipv4SetAllPathParameters<br>Ipv4pInterfaceSetGetNextExpirationTick<br>Ipv4pInterfaceSetTimeout<br>Ipv6GetAllPathParameters<br>Ipv6GetAllPotentialRouters<br>Ipv6GetAllRouterInformation<br>Ipv6NotifyPotentialRouterChangeAtPassive<br>Ipv6SetAllPathParameters<br>Ipv6SetAllPotentialRouters<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pInterfaceSetTimeout<br>Ipv6pNotifyRouterInformationChangeWorker<br>NlShimFillFwEdgeInfo<br>OlmTcpRscGetAllStats<br>ShimGetFwdLayerArrivalIFInfo<br>TcpComputeMssOption<br>TcpOptionsForSynSend<br>TlShimDiscoverPhysicalNexthopInterface<br>TlShimOptionalReauthorizeConnection<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeSend<br>WfpAleReauthorizeConnectionFromContext<br>WfpAleStreamLayerChanged<br>WfpAlepAuthorizeCompletionCommon<br>WfpDestroyNextHopCtxt<br>WfpDestroyNexthopIfMap<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4<br>WfpIpAddressCheckAndAdd<br>WfpIpAddressCheckAndDelete<br>WfpIsOffloadPossibleEx<br>WfpNlShimDiscoverPhysicalNexthopInterface<br>WfpQueryOutgoingPhysicalInterfaceForTunnel</details>|<details><summary>Expand for full list:<br>AlepFillEdgeInterfaceRelatedFields<br>FUN_140001943<br>FUN_14008250e<br>FUN_1400be5b5<br>FUN_1401ccb2c<br>FUN_1401d9aee<br>InetDereferenceNlInterfaceAf<br>InetQueryInterfacePropertyAf<br>InetReleasePktMonContext<br>IpEnumerateAllNeighbors<br>IpFlcDeleteInterface</summary>IpGetAllInterfaceHopParameters<br>IpGetAllInterfaceParameters<br>IpGetAllNeighborParameters<br>IpGetAllProxyNeighborParameters<br>IpGetAllResolveNeighborParameters<br>IpGetAllRouteParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderAttachToInterface<br>IpIpsProviderDetachFromInterface<br>IpIpsProviderFindNextHop<br>IpIpsProviderQueryAddressInformation<br>IpIpsProviderQueryInterfaceInformation<br>IpIpsProviderSendIcmpError<br>IpIpsProviderSetInterfaceContext<br>IpNlpDereferenceInterface<br>IpNlpQueryInterface<br>IpNlpQueryInterfaceProperty<br>IpNlpReferenceInterface<br>IpNlpReferenceLocalAddress<br>IpNlpReleasePktMonContext<br>IpNlpSetInterfaceProperty<br>IpNlpSetSessionInfo<br>IpSetAllDisconnectInterfaceParameters<br>IpSetAllInterfaceParameters<br>IpSetAllInterfaceUnprivilegedParameters<br>IpSetAllLocalMulticastAddressParameters<br>IpSetAllNeighborParameters<br>IpSetAllProxyNeighborParameters<br>IpSetAllWakeUpPatternParameters<br>IppActiveReferenceWorker<br>IppAddOrDeletePersistentRoutes<br>IppCleanupLocalAddress<br>IppCleanupRouteListInLookupContext<br>IppCleanupSubInterfaceWorkerRoutine<br>IppCommitSetAllInterfaceParameters<br>IppCommitSetAllMfeParameters<br>IppCreateMulticastSessionState<br>IppDereferenceAddressPrimitive<br>IppDereferenceLocalAddress<br>IppDereferenceLocalMulticastAddress<br>IppDereferenceRoute<br>IppDispatchMfeQueuedPackets<br>IppEnumerateAllAddresses<br>IppEvaluateSortInformation<br>IppFindDefaultInterfaceForZone<br>IppFindInterfaceForThread<br>IppFindMulticastAddressOnNextInterface<br>IppFindNextHopAtDpc<br>IppFindSubInterfaceByLuid<br>IppGetAllBestRouteParameters<br>IppGetAllLocalAddressParameters<br>IppGetAllUnicastAddressesOnHost<br>IppGetExactProxyNeighbor<br>IppGetNextNeighbor<br>IppGetNextProxyNeighbor<br>IppHandleLinkLocalAddressChangeAtPassiveLevel<br>IppInspectDereferenceInterface<br>IppInspectInjectForward<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppInspectQueryRealNextHopInterfaceComplete<br>IppInspectQueryRealNextHopInterfaceWorker<br>IppInterfaceBwPersistParametersWorker<br>IppInterfaceRundown<br>IppIpsInjectPackets<br>IppIpsL2ForwardPackets<br>IppIpsNotifyNlClientsOnAllInterfaces<br>IppJoinPath<br>IppMulticastWorkerRoutine<br>IppNotifyInterfaceChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPktMonRegisterProtocol<br>IppProtocolNeighborRundown<br>IppReassemblyTimeout<br>IppRefreshForwardPathUnderLock<br>IppRemoveSitePrefixEntry<br>IppScheduleWolUpdateOnPowerSourceChangeForProtocol<br>IppSetOffloadEncapsulationWorker<br>IppSetWolParametersWorker<br>IppUninitializeSessionState<br>IppUpdateIpsServiceChainsForClient<br>IppUpdateNetworkStateWorker<br>IppValidateSetAllInterfaceParameters<br>IppValidateSetAllLocalAddressParameters<br>IppValidateSetAllMfeParameters<br>IppValidateSettingsOnReconnectWorker<br>IppWolUpdateOnPowerSourceChangeWorker<br>Ipv4GetAllPathParameters<br>Ipv4SetAllPathParameters<br>Ipv4pInterfaceSetGetNextExpirationTick<br>Ipv4pInterfaceSetTimeout<br>Ipv6GetAllPathParameters<br>Ipv6GetAllPotentialRouters<br>Ipv6GetAllRouterInformation<br>Ipv6NotifyPotentialRouterChangeAtPassive<br>Ipv6SetAllPathParameters<br>Ipv6SetAllPotentialRouters<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pInterfaceSetTimeout<br>Ipv6pNotifyRouterInformationChangeWorker<br>NlShimFillFwEdgeInfo<br>OlmTcpRscGetAllStats<br>ShimGetFwdLayerArrivalIFInfo<br>TcpComputeMssOption<br>TcpOptionsForSynSend<br>TlShimDiscoverPhysicalNexthopInterface<br>TlShimOptionalReauthorizeConnection<br>WfpAleAuthorizeConnect<br>WfpAleReauthorizeConnectionFromContext<br>WfpAleStreamLayerChanged<br>WfpAlepAuthorizeCompletionCommon<br>WfpDestroyNextHopCtxt<br>WfpDestroyNexthopIfMap<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4<br>WfpIpAddressCheckAndAdd<br>WfpIpAddressCheckAndDelete<br>WfpIsOffloadPossibleEx<br>WfpNlShimDiscoverPhysicalNexthopInterface<br>WfpQueryOutgoingPhysicalInterfaceForTunnel</details>|
|paramcount|0|0|
|`address`|1400193b0|14000e5f0|
|sig|undefined IppDereferenceInterface(void)|undefined IppDereferenceInterface(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### IppDereferenceInterface Calling Diff


```diff
--- IppDereferenceInterface calling
+++ IppDereferenceInterface calling
@@ -2,5 +2,5 @@
-FUN_1400331fe
-FUN_140075153
-FUN_1400a2c65
-FUN_1401c658c
-FUN_1401d9c44
+FUN_140001943
+FUN_14008250e
+FUN_1400be5b5
+FUN_1401ccb2c
+FUN_1401d9aee
@@ -120 +119,0 @@
-WfpAleAuthorizeSend
```


## memset

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.86|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|memset|memset|
|fullname|memset|memset|
|`refcount`|746|745|
|length|236|236|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleInspectAcceptRequest<br>AleInspectBindRequest<br>AleInspectBindRequestComplete<br>AleInspectConnectRequest<br>AleInspectConnectRequestComplete<br>AleNotifyEndpointDeactivate<br>AleNotifyEndpointTeardown<br>AleRedirectRecordsSerializeToBuffer<br>AlepGetCachedConnectionPolicy<br>CBufferAllocate<br>CcmClientInitialize</summary>CheckAcceptBypass<br>CopyEnterpriseId<br>CreateConnectionSocketContext<br>CreateFqbnString<br>CreateListeningSocketContext<br>CreateMessageContext<br>CreatePartition<br>CreateTlgAggregateSession<br>DriverEntry<br>EQoSCreateNetBlockWithUninitializedNetPolicies<br>EQoSCreatePolicyOwner<br>EQoSCreatePolicyTable<br>EQoSCreateQoSProfile<br>EQoSCreateUrlSection<br>EQoSHkeClientNotifyAttachProvider<br>EQoSOpenUserPolicyRootKey<br>EQoSProcessQoSPolicies<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSStartPacerClient<br>EQoSpAllocateAndInitializePolicy<br>EQoSpCreateQoSFlow<br>EQoSpNmrRegisterClient<br>EQoSpPolicyAddPacketPolicyToScratchTable<br>EQoSpPolicyAddUrlPolicyToScratchTable<br>EQoSpPolicyParseAppName<br>EQoSpPolicyParseUrl<br>EQoSpProcessOnePolicy<br>EQoSpReturnNetPolicy<br>EQoSpReturnUrlPolicy<br>ExitBHMode<br>FUN_14010032d<br>FUN_1401c5c22<br>FUN_1401c5d2c<br>FUN_1401c5d9d<br>FUN_1401c658c<br>FUN_1401c9216<br>FUN_1401cc96b<br>FUN_1401ccd08<br>FUN_1401cd58a<br>FUN_1401cf3ce<br>FUN_1401cf493<br>FUN_1401d0ae3<br>FUN_1401d9c44<br>FUN_1401da94a<br>FUN_1401dd68a<br>FillAddressEntry<br>FillIfEntryWithInterfaceInfo<br>FindPermittedPorts<br>Fl48pMapMulticastAddress<br>Fl48pReceiveArpPackets<br>Fl68pMapMulticastAddress<br>Fl6tpMapNonUnicastAddress<br>Fl8pPCFSetARPFilter<br>Fl8pPCFSetUDPFilter<br>FlBindAdapter<br>FlIfCreateVirtualInterface<br>FlIfProviderQueryObject<br>FlIfpDeleteInterfaceSubKey<br>FlIfpGenerateVirtualInterfaceAlias<br>FlIfpRegisterNdisInterface<br>FlPktMonRegisterProvider<br>FlRdmapNSINotificationWorkerRoutine<br>FlStatus<br>FlTeredoNotifyChangeAtPassive<br>FlTeredoPortNotifyChangeAtPassive<br>FlTunnelNotifyChangeAtPassive<br>FllpGetCompartmentInformation<br>FlpCheckAndCoalesceNBLChain<br>FlpChecksumCsoNbl<br>FlpCreateTcpWolPattern<br>FlpFlsInterceptReceivePackets<br>FlpGenerateWolPatternForAddress<br>FlpInitializeWolPattern<br>FlpInterfaceRundown<br>FlpNdisDirectRequestUnderReference<br>FlpNdisRequestUnderReference<br>FlpNdisSendNbls<br>FlpSerializedWolAddressEvictionWorker<br>FlpSetArpNDOffload<br>FlpSetDirectWolPattern<br>FlpSetWolPattern<br>FseGetCompleteMessage<br>FseInitializeSocketOpContext<br>GetAttribute<br>GetEnterpriseContext<br>HandOffIpsecStateToAleEntry<br>IPSecAddInboundSaToTrafficIndex<br>IPSecAddOutboundSaToTrafficIndex<br>IPSecAuditEvent<br>IPSecClearRekeyOriginalStateOnLarvalSaDeletion<br>IPSecComputeCpusForAllTunnels<br>IPSecCreateInboundPacketContext<br>IPSecCreateOutboundSessionContext<br>IPSecDetermineSaMatchInbound<br>IPSecDetermineSaMatchOutbound<br>IPSecDetermineSecureFilterMatch<br>IPSecDoCommonPerTransformInitOutboundProcessing<br>IPSecFindDuplicateInboundLarvalSA<br>IPSecFindDuplicateOutboundSA<br>IPSecFireDiagEvent<br>IPSecFireExternalDiagEvent<br>IPSecFireLpmPacketArrivalEvent<br>IPSecForwardInboundTunnelFilterCalloutClassifyV4<br>IPSecForwardInboundTunnelFilterCalloutClassifyV6<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV4<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV6<br>IPSecFwParseTunneledInnerPkt5Tulple<br>IPSecGetPkt5TupleFromNLTLInfo<br>IPSecGetTunnelInfoFromIPInformation<br>IPSecInboundAcceptAuthorizeCalloutClassify<br>IPSecInitAllModules<br>IPSecInitConf<br>IPSecInitializeUpcallModule<br>IPSecInitiateTransportKeying<br>IPSecInitiateTunnelKeying<br>IPSecIsOnlyActiveIPsec<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecNlSendTunnelDatagram<br>IPSecNlSendTunnelIcmpError<br>IPSecNsProcessInboundSecurePacketCommon<br>IPSecNsProcessInboundSecurePacketIcmpError<br>IPSecNsProcessOutboundSecurePacketIcmpError<br>IPSecOutboundTransportFilterCalloutClassifyCommon<br>IPSecOutboundTransportFilterCalloutClassifyV4<br>IPSecOutboundTransportFilterCalloutClassifyV6<br>IPSecOutboundTunnelFilterCalloutClassifyCommon<br>IPSecProcessAsyncPendComplete<br>IPSecProcessAsyncUpcallNotifySaNegotiation<br>IPSecProcessClearTextOnInboundTransportFilter<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecResponderCreateSPIHndlr<br>IPSecSetUpSendDatagram<br>IPSecSetupSendSessionInfo<br>IPSecUpcallNotifySaNegotiation<br>IPSecValidateNLInfoOnInboundTransportModePacket<br>IPSecValidateNLInfoOnInboundTransportModePacketV4<br>IPSecValidateNLInfoOnInboundTransportModePacketV6<br>IPsecAreTunnelEndpointsSameAsIPHeader<br>IPsecCreateFwdStateHelper<br>IPsecDestroyAleDiscardState<br>IPsecFwInboundVerifyPacketAgainstSATS<br>IPsecInboundAcceptAuthorizeCalloutProcessSecurityRealmId<br>IPsecPacketStateCloneInbound<br>IPsecPacketStateCloneOutbound<br>IPsecParseFwdPkt<br>IPsecRestoreTransProtoForInboundPkt<br>IPsecSaOnConnectionOffloaded<br>IPsecToggleFragGrouping<br>IPsecTransformClearTextPacket<br>Icmpv6pHandleEchoRequest<br>IdpCheckAndFireStopEvent<br>IdpCreateStateEntry<br>IdpFireDiagEvent<br>IdpQosCreateFlow<br>IdpQosCreatePacerHandle<br>IndicateAleSuccessAudit<br>IndicateDoSAttackAudit<br>IndicateDropAudit<br>IndicateVetoAudit<br>InetAllocateAndQueryAncillaryDataAf<br>InetCreateAf<br>InetCreateClient<br>InetFastSendDatagramsOnPathAf_scrap<br>InetInitializeTransport<br>InetInspectReceiveTcpDatagram<br>InetInspectSetBindEndpointInterface<br>InetJoinPathAf<br>InetLogPacketDrop<br>InetReferencePathAf<br>InetResolveLocalAddressAndSockAddrToPathAndAf<br>InetSendDatagramsAf<br>InetSetPathBHConfirmationAf<br>InetSetPathConnectionFailedAf<br>InetSetPathInfoRttAf<br>InetStartInspectionModule<br>InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>InitalizeClientGlobals<br>InternalGetIpInterfaceEntry<br>IpFlcAddInterface<br>IpGetAllCompartmentParameters<br>IpGetAllGlobalParameters<br>IpGetAllInterfaceHopParameters<br>IpGetAllInterfaceParameters<br>IpGetAllNeighborParameters<br>IpGetAllSortedAddressParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderSendIcmpError<br>IpNlpFastContinueSendLoopbackDatagrams<br>IpSecAhCompleteOutbound<br>IpSecAhInitInbound<br>IpSecAhProcessAuthenticationData<br>IpSecEntry<br>IpSecEspInitOutbound<br>IpSecGetSessionInformation<br>IpSecIsIcmpNeeded<br>IpSecLookupApplicableOverheadToTcpConnection<br>IpSecProcessInboundSecureDiscardedPacket<br>IpSecTlPacketsInProcessing<br>IpSecTlPacketsOutProcessing<br>IppAddQualifiedRouteAndNextHop<br>IppAddressSetTimeout<br>IppAllocatePathUnderLock<br>IppConfigureIscsiAddress<br>IppCreateForwardPath<br>IppCreateMulticastSessionState<br>IppDadAnnouncementTimeout<br>IppDiscardReceivedPackets<br>IppFillInterfaceData<br>IppFillSortingElement<br>IppFindNextHopAtDpcForForwarding<br>IppFindNextHopInFwdCacheOrRouteTable<br>IppFindOrCreateCompartmentByIdEx<br>IppForwardPackets<br>IppFragmentPackets<br>IppGetAddressesFromRoute<br>IppGetAllBestRouteParameters<br>IppGetAllLocalAddressParameters<br>IppHandleWolContextEviction<br>IppIndicateArpPacketsToIpsServiceChain<br>IppIndicatePacketsToIpsServiceChain<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInitializePathSet<br>IppInitializeProtocolSettings<br>IppInitializeSessionState<br>IppInjectIpsPackets<br>IppInspectBuildHeaders<br>IppInspectInjectForward<br>IppInspectInjectRawSend<br>IppInspectInjectTlSend<br>IppInspectLocalDatagramsOut<br>IppInspectOutboundNetworkConnection<br>IppInspectQueryRealNextHopInterfaceInternal<br>IppIpsFindNextHopWithRestrictions<br>IppIpsL3ForwardNbl<br>IppJoinPath<br>IppLbIndicatePacketsToIpsServiceChain<br>IppLogHwUsoFailure<br>IppLogMediaSenseEvent<br>IppLogPacketDiscard<br>IppLogPbrFailure<br>IppLogRouteBlockedEvent<br>IppLogRouteChangeEvents<br>IppLogRouteDgdStateChange<br>IppLogRouteLookupEvent<br>IppLogRouteNotificationEvent<br>IppLogRouteSelectionEvent<br>IppLogSourceConstraint<br>IppLogSrcAddrLookupEvent<br>IppLogStandbyTransitionAdjustment<br>IppLoopbackEnqueue<br>IppNeighborSetTimeout<br>IppNotifyAddressChangeAtPassive<br>IppNotifyDad<br>IppNotifyEchoRequestChangeWorker<br>IppNotifyInterfaceChangeAtPassive<br>IppNotifyMfeChangeWorker<br>IppNotifyNeighborChangeAtPassive<br>IppNotifyRouteChangeAtPassive<br>IppNotifyRoutingEpochChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPktMonRegisterInterface<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppProcessPhysicalInterfaceRequest<br>IppProtocolNeighborRundown<br>IppProtocolRouteRundown<br>IppReceiveEspNbl<br>IppReceivePackets<br>IppRefreshRouteLifetimes<br>IppRegQueryDwordValue<br>IppSendDatagramsCommon<br>IppSendDirect<br>IppSendError<br>IppSendMulticastDiscoveryRecords<br>IppStartProtocolManager<br>IppTraceAddressChangeNotificationEvent<br>IppTraceDadStateChangeEvent<br>IppTraceDisconnectInterface<br>IppTraceNeighborChangeNotificationEvent<br>IppTraceNeighborDiscovery<br>IppTraceNeighborReset<br>IppTraceNeighborState<br>IppTraceWolAddress<br>IppTraceWolContext<br>IppTransformIPsecPacket<br>IppUpdateBestSourceAddress<br>IppUpdatePathNotificationAtPassiveLevel<br>IppUpdateRoutesWithLocalAddressAsNextHopUnderLock<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbRegisterChangeNotification<br>IpsLbStartup<br>IpsecPktMonClientComponentUnregister<br>IpsecPktMonDetachProvider<br>Ipv4SetEchoRequestCreate<br>Ipv4pAddressInterface<br>Ipv4pCompactFragmentationHeader<br>Ipv4pHandleAddressMaskRequest<br>Ipv4pHandleEchoRequest<br>Ipv4pHandleTimestampRequest<br>Ipv4pReassemblyTimeout<br>Ipv4pRegSyncInterfaceDefaultGatewayChangeHandler<br>Ipv6GetAllPotentialRouters<br>Ipv6GetAllRouterInformation<br>Ipv6NotifyPotentialRouterChangeAtPassive<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddressInterface<br>Ipv6pEnumRoutesAndAddPrefixBasedAddresses<br>Ipv6pNotifyRouteChange<br>Ipv6pNotifyRouterInformationChangeWorker<br>Ipv6pReassemblyTimeout<br>Ipv6pSendRedirectHelper<br>LogEtwIcmpDrop<br>LogEtwIcmpMessage<br>LruCleanupDpcRoutine<br>LwInitializeQueueEx<br>McGenControlCallbackV2<br>NetioAddressChangeCallBack<br>NetioHistogramUpload<br>NetioInterfaceChangeCallBack<br>NlShimFwLayerDirectClassify<br>OlmQuerySetRscCapabilities<br>OlmTcpRscGetAllStats<br>PktMonClientComponentUnregister<br>PktMonDetachProvider<br>ProcessOutTransportStackIndicationFast<br>ProcessRedirectLayerForNonNativeTCP<br>QimUpdateUDPEndpointOnPolicyChange<br>QueryAttributes<br>RawActivateEndpoint<br>RawBindEndpoint<br>RawCreateMessageIndication<br>RawSendMessages<br>RawSendMessagesOnPathCreation<br>RawSetSockOptEndpoint<br>RawStartNetworkModule<br>RssPrepareReceiveScaleParameters<br>RssQueryInterfacePortInformation<br>RssQueryPortAdapterInfo<br>RssQueryPortIndex<br>RssQueryPortProcessorInfo<br>RssSelectStaticProcessors<br>RssStartDistribution<br>RtlStringCbPrintfExW<br>RtlStringCchPrintfExW<br>RtlStringExHandleOtherFlagsW<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>ShimIndicateDiscard<br>ShimIpDiscardV4<br>ShimIpDiscardV6<br>ShimIpForwardDiscard<br>ShimIpFragmentInV4<br>ShimIpFragmentInV6<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>TcpBwNotifyReceive<br>TcpBwUpdateEre<br>TcpCleanupTcbWorkQueueRoutine<br>TcpComputeMssOption<br>TcpComputeSynRcvdLimit<br>TcpConnectionRundown<br>TcpCreateEndpoint<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateSynTcb<br>TcpDeplumbWakePattern<br>TcpDequeueTcbSend<br>TcpDisconnectTcb<br>TcpEnumerateBoundEndpoints<br>TcpEnumerateListeners<br>TcpGetAllGlobalParameters<br>TcpGetSockOptTcb<br>TcpGetTcbConnectionObject<br>TcpHistogramIncrement<br>TcpInitializeIsnGenerator<br>TcpInitializeRttEstimateTcb<br>TcpInitializeTcb<br>TcpInspectListenerReceive<br>TcpInspectListenerRedirect<br>TcpMppInitialize<br>TcpMppNppEvaluationHelper<br>TcpNotifyRetransmitTimeoutAtPassive<br>TcpOptionsForSynSend<br>TcpPlumbWakePattern<br>TcpProcessFastDatagramBatch<br>TcpRecentFailureTrace<br>TcpRemoveTcbTuple<br>TcpRemoveTimewaitTcbTuple<br>TcpRequestReceive<br>TcpResetSend<br>TcpResolveConnectRequestToPathAndAf<br>TcpScheduleNotificationChannelWorkItemTcb<br>TcpSendTrackerCreateTransmit<br>TcpSendTrackerMarkTransmits<br>TcpSetFastopenPathInfoTcb<br>TcpSetSockOptListener<br>TcpStartInetModule<br>TcpStartOlmModule<br>TcpTcbEarlyReceive<br>TcpTcbIssueOrCancelPathBwEstimation<br>TcpTcbProcessNotificationChannelSetup<br>TcpTcbProcessNotificationChannelSetupRequest<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbQueryIpsecMtuAndRetransmit<br>TcpTcbReceive<br>TcpTraceConnectionSummary<br>TcpTryToEnterBHMode<br>TcpTuneTcbEstats<br>TcpipEvaluateTlFilter<br>TcpipPcwGlobalCallback<br>TcpipPcwGlobalExCallback<br>TcpipPcwPerCpuCallback<br>TcpipPcwTlDropsCallback<br>TlShimDirectClassify<br>TraceFilterEngineValidateAndStoreRules<br>UQoSAttachClient<br>UQoSCreatePolicyInternal<br>UQoSUpdatePolicyInternal<br>UQoSpParseDescriptor<br>UQoSpValidateFilterConditions<br>UdpActivateEndpoint<br>UdpCleanupEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEnumerateEndpoints<br>UdpGetSockOptEndpoint<br>UdpOffloadAddInterface<br>UdpScheduleNotificationChannelTeardownRequest<br>UdpSendMessages<br>UdpSendMessagesOnPath<br>UdpSetDestinationEndpoint<br>UdpTlProviderMessageCalloutRoutine<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleAcquireFqbnFromToken<br>WfpAleAcquirePackageIdentityFromToken<br>WfpAleAcquireTokenInformationFromToken<br>WfpAleAllocateSecureSocketPolicy<br>WfpAleAuditEvent<br>WfpAleAuthHistogramUpload<br>WfpAleAuthLogHistogramDatapointWorkQueueRoutine<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeReceive<br>WfpAleAuthorizeSend<br>WfpAleCompleteOperation<br>WfpAleCopyEndpointToPublic<br>WfpAleCreatePeerInformation<br>WfpAleEndpointCreationHandler<br>WfpAleFastUdpInspection<br>WfpAleFindRemoteEndpoint<br>WfpAleGetPolicyAppIdTagFromToken<br>WfpAleGetServiceSidsFromToken<br>WfpAleInitialize<br>WfpAleInitializeIo<br>WfpAleInsertCredentialInformation<br>WfpAleInsertPeerInformation<br>WfpAleInsertProcessInformation<br>WfpAleInsertRemoteEndpoint<br>WfpAleInsertTupleStateEntry<br>WfpAleMarshalFqbnValue<br>WfpAleMatchStatefulEndpoint<br>WfpAleProcessEndpointEnumIoctl<br>WfpAleProcessExplicitCredentialQuery<br>WfpAleProcessSocketOption<br>WfpAleSecureSocketAdd<br>WfpAleUninitializeTupleState<br>WfpAleValidateISCSIEndPoint<br>WfpAlepAuthorizeAccept<br>WfpAlepAuthorizeConnect<br>WfpAlepAuthorizeOrClassifyListen<br>WfpAlepAuthorizeOrClassifyPort<br>WfpAlepAuthorizeOrClassifyRaw<br>WfpAlepAuthorizePromiscuousMode<br>WfpAlepAuthorizeReceive<br>WfpAlepAuthorizeSend<br>WfpAlepDeleteEntryFromTable<br>WfpAlepFlowEstablishedNotification<br>WfpAlepReauthorizeInboundConnection<br>WfpAlepReauthorizeOutboundConnection<br>WfpAlepSecureSocketAddAsync<br>WfpAlepSetPeerTarget<br>WfpCreateProcessNotifyRoutine<br>WfpDestroyAppSidTable<br>WfpDestroyFilePathTable<br>WfpFreeTemporaryAleEndpoint<br>WfpHandOffTupleStateToTemporaryAleEntry<br>WfpInTransportShimV4Discard<br>WfpInTransportShimV6Discard<br>WfpIndicateSendControl<br>WfpInitializeTimerManager<br>WfpInspectReceiveControlShimV4<br>WfpInspectReceiveControlShimV6<br>WfpIpAddressCheckAndAdd<br>WfpIsLayerOffloadPossible<br>WfpLookupFilePathTableAndUpdateCount<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpNlShimInspectForwardDatagram<br>WfpNlShimInspectvSwitchForwardDatagram<br>WfpPacketQueueInit<br>WfpProcessInTransportStackIndication<br>WfpProcessInTransportStackIndicationFast<br>WfpRegGetUint32Value<br>WfpRegisterNlClient<br>WfpReinjectTunnelPacketFL<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpShimGetStorageForClassifyValues<br>WfpShimIndicateDiscardGeneral<br>WfpSysTimerModuleInit<br>WfpTagAppIdToNblForRio<br>WfpTlShimInspectOutboundNetworkConnection<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfpTlShimInspectStreamPacket<br>WfpUpdateConnectionContext<br>WfpVpnDisconnectDebounceDpcHandler<br>WfpVpnHandleCalloutClassify<br>WfpVpnHandleFlowDelete<br>WfpVpnNrptDpcHandler<br>WfpVpnNrptTriggerHandlerThread<br>WfpVpnResetFlowCounts<br>WfpVpnResetNrptTriggerInternal<br>WppTraceCallback<br>switchD_140008e31::caseD_0</details>|<details><summary>Expand for full list:<br>AleInspectAcceptRequest<br>AleInspectBindRequest<br>AleInspectBindRequestComplete<br>AleInspectConnectRequest<br>AleInspectConnectRequestComplete<br>AleNotifyEndpointDeactivate<br>AleNotifyEndpointTeardown<br>AleRedirectRecordsSerializeToBuffer<br>AlepGetCachedConnectionPolicy<br>CBufferAllocate<br>CcmClientInitialize</summary>CheckAcceptBypass<br>CopyEnterpriseId<br>CreateConnectionSocketContext<br>CreateFqbnString<br>CreateListeningSocketContext<br>CreateMessageContext<br>CreatePartition<br>CreateTlgAggregateSession<br>DriverEntry<br>EQoSCreateNetBlockWithUninitializedNetPolicies<br>EQoSCreatePolicyOwner<br>EQoSCreatePolicyTable<br>EQoSCreateQoSProfile<br>EQoSCreateUrlSection<br>EQoSHkeClientNotifyAttachProvider<br>EQoSOpenUserPolicyRootKey<br>EQoSProcessQoSPolicies<br>EQoSQueryRegValueUnderQoSRootKey<br>EQoSStartPacerClient<br>EQoSpAllocateAndInitializePolicy<br>EQoSpCreateQoSFlow<br>EQoSpNmrRegisterClient<br>EQoSpPolicyAddPacketPolicyToScratchTable<br>EQoSpPolicyAddUrlPolicyToScratchTable<br>EQoSpPolicyParseAppName<br>EQoSpPolicyParseUrl<br>EQoSpProcessOnePolicy<br>EQoSpReturnNetPolicy<br>EQoSpReturnUrlPolicy<br>ExitBHMode<br>FUN_1400ff37d<br>FUN_1401c3828<br>FUN_1401c4f66<br>FUN_1401c5070<br>FUN_1401c50e1<br>FUN_1401c9e79<br>FUN_1401ca216<br>FUN_1401cb3da<br>FUN_1401ccb2c<br>FUN_1401cffd4<br>FUN_1401d0099<br>FUN_1401d33f9<br>FUN_1401d8820<br>FUN_1401d9aee<br>FUN_1401dd8ea<br>FillAddressEntry<br>FillIfEntryWithInterfaceInfo<br>FindPermittedPorts<br>Fl48pMapMulticastAddress<br>Fl48pReceiveArpPackets<br>Fl68pMapMulticastAddress<br>Fl6tpMapNonUnicastAddress<br>Fl8pPCFSetARPFilter<br>Fl8pPCFSetUDPFilter<br>FlBindAdapter<br>FlIfCreateVirtualInterface<br>FlIfProviderQueryObject<br>FlIfpDeleteInterfaceSubKey<br>FlIfpGenerateVirtualInterfaceAlias<br>FlIfpRegisterNdisInterface<br>FlPktMonRegisterProvider<br>FlRdmapNSINotificationWorkerRoutine<br>FlStatus<br>FlTeredoNotifyChangeAtPassive<br>FlTeredoPortNotifyChangeAtPassive<br>FlTunnelNotifyChangeAtPassive<br>FllpGetCompartmentInformation<br>FlpCheckAndCoalesceNBLChain<br>FlpChecksumCsoNbl<br>FlpCreateTcpWolPattern<br>FlpFlsInterceptReceivePackets<br>FlpGenerateWolPatternForAddress<br>FlpInitializeWolPattern<br>FlpInterfaceRundown<br>FlpNdisDirectRequestUnderReference<br>FlpNdisRequestUnderReference<br>FlpNdisSendNbls<br>FlpSerializedWolAddressEvictionWorker<br>FlpSetArpNDOffload<br>FlpSetDirectWolPattern<br>FlpSetWolPattern<br>FseGetCompleteMessage<br>FseInitializeSocketOpContext<br>GetAttribute<br>GetEnterpriseContext<br>HandOffIpsecStateToAleEntry<br>IPSecAddInboundSaToTrafficIndex<br>IPSecAddOutboundSaToTrafficIndex<br>IPSecAuditEvent<br>IPSecClearRekeyOriginalStateOnLarvalSaDeletion<br>IPSecComputeCpusForAllTunnels<br>IPSecCreateInboundPacketContext<br>IPSecCreateOutboundSessionContext<br>IPSecDetermineSaMatchInbound<br>IPSecDetermineSaMatchOutbound<br>IPSecDetermineSecureFilterMatch<br>IPSecDoCommonPerTransformInitOutboundProcessing<br>IPSecFindDuplicateInboundLarvalSA<br>IPSecFindDuplicateOutboundSA<br>IPSecFireDiagEvent<br>IPSecFireExternalDiagEvent<br>IPSecFireLpmPacketArrivalEvent<br>IPSecForwardInboundTunnelFilterCalloutClassifyV4<br>IPSecForwardInboundTunnelFilterCalloutClassifyV6<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV4<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV6<br>IPSecFwParseTunneledInnerPkt5Tulple<br>IPSecGetPkt5TupleFromNLTLInfo<br>IPSecGetTunnelInfoFromIPInformation<br>IPSecInboundAcceptAuthorizeCalloutClassify<br>IPSecInitAllModules<br>IPSecInitConf<br>IPSecInitializeUpcallModule<br>IPSecInitiateTransportKeying<br>IPSecInitiateTunnelKeying<br>IPSecIsOnlyActiveIPsec<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecNlSendTunnelDatagram<br>IPSecNlSendTunnelIcmpError<br>IPSecNsProcessInboundSecurePacketCommon<br>IPSecNsProcessInboundSecurePacketIcmpError<br>IPSecNsProcessOutboundSecurePacketIcmpError<br>IPSecOutboundTransportFilterCalloutClassifyCommon<br>IPSecOutboundTransportFilterCalloutClassifyV4<br>IPSecOutboundTransportFilterCalloutClassifyV6<br>IPSecOutboundTunnelFilterCalloutClassifyCommon<br>IPSecProcessAsyncPendComplete<br>IPSecProcessAsyncUpcallNotifySaNegotiation<br>IPSecProcessClearTextOnInboundTransportFilter<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecResponderCreateSPIHndlr<br>IPSecSetUpSendDatagram<br>IPSecSetupSendSessionInfo<br>IPSecUpcallNotifySaNegotiation<br>IPSecValidateNLInfoOnInboundTransportModePacket<br>IPSecValidateNLInfoOnInboundTransportModePacketV4<br>IPSecValidateNLInfoOnInboundTransportModePacketV6<br>IPsecAreTunnelEndpointsSameAsIPHeader<br>IPsecCreateFwdStateHelper<br>IPsecDestroyAleDiscardState<br>IPsecFwInboundVerifyPacketAgainstSATS<br>IPsecInboundAcceptAuthorizeCalloutProcessSecurityRealmId<br>IPsecPacketStateCloneInbound<br>IPsecPacketStateCloneOutbound<br>IPsecParseFwdPkt<br>IPsecRestoreTransProtoForInboundPkt<br>IPsecSaOnConnectionOffloaded<br>IPsecToggleFragGrouping<br>IPsecTransformClearTextPacket<br>Icmpv6pHandleEchoRequest<br>IdpCheckAndFireStopEvent<br>IdpCreateStateEntry<br>IdpFireDiagEvent<br>IdpQosCreateFlow<br>IdpQosCreatePacerHandle<br>IndicateAleSuccessAudit<br>IndicateDoSAttackAudit<br>IndicateDropAudit<br>IndicateVetoAudit<br>InetAllocateAndQueryAncillaryDataAf<br>InetCreateAf<br>InetCreateClient<br>InetFastSendDatagramsOnPathAf_scrap<br>InetInitializeTransport<br>InetInspectReceiveTcpDatagram<br>InetInspectSetBindEndpointInterface<br>InetJoinPathAf<br>InetLogPacketDrop<br>InetReferencePathAf<br>InetResolveLocalAddressAndSockAddrToPathAndAf<br>InetSendDatagramsAf<br>InetSetPathBHConfirmationAf<br>InetSetPathConnectionFailedAf<br>InetSetPathInfoRttAf<br>InetStartInspectionModule<br>InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>InitalizeClientGlobals<br>InternalGetIpInterfaceEntry<br>IpFlcAddInterface<br>IpGetAllCompartmentParameters<br>IpGetAllGlobalParameters<br>IpGetAllInterfaceHopParameters<br>IpGetAllInterfaceParameters<br>IpGetAllNeighborParameters<br>IpGetAllSortedAddressParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderSendIcmpError<br>IpNlpFastContinueSendLoopbackDatagrams<br>IpSecAhCompleteOutbound<br>IpSecAhInitInbound<br>IpSecAhProcessAuthenticationData<br>IpSecEntry<br>IpSecEspInitOutbound<br>IpSecGetSessionInformation<br>IpSecIsIcmpNeeded<br>IpSecLookupApplicableOverheadToTcpConnection<br>IpSecProcessInboundSecureDiscardedPacket<br>IpSecTlPacketsInProcessing<br>IpSecTlPacketsOutProcessing<br>IppAddQualifiedRouteAndNextHop<br>IppAddressSetTimeout<br>IppAllocatePathUnderLock<br>IppConfigureIscsiAddress<br>IppCreateForwardPath<br>IppCreateMulticastSessionState<br>IppDadAnnouncementTimeout<br>IppDiscardReceivedPackets<br>IppFillInterfaceData<br>IppFillSortingElement<br>IppFindNextHopAtDpcForForwarding<br>IppFindNextHopInFwdCacheOrRouteTable<br>IppFindOrCreateCompartmentByIdEx<br>IppForwardPackets<br>IppFragmentPackets<br>IppGetAddressesFromRoute<br>IppGetAllBestRouteParameters<br>IppGetAllLocalAddressParameters<br>IppHandleWolContextEviction<br>IppIndicateArpPacketsToIpsServiceChain<br>IppIndicatePacketsToIpsServiceChain<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInitializePathSet<br>IppInitializeProtocolSettings<br>IppInitializeSessionState<br>IppInjectIpsPackets<br>IppInspectBuildHeaders<br>IppInspectInjectForward<br>IppInspectInjectRawSend<br>IppInspectInjectTlSend<br>IppInspectLocalDatagramsOut<br>IppInspectOutboundNetworkConnection<br>IppInspectQueryRealNextHopInterfaceInternal<br>IppIpsFindNextHopWithRestrictions<br>IppIpsL3ForwardNbl<br>IppJoinPath<br>IppLbIndicatePacketsToIpsServiceChain<br>IppLogHwUsoFailure<br>IppLogMediaSenseEvent<br>IppLogPacketDiscard<br>IppLogPbrFailure<br>IppLogRouteBlockedEvent<br>IppLogRouteChangeEvents<br>IppLogRouteDgdStateChange<br>IppLogRouteLookupEvent<br>IppLogRouteNotificationEvent<br>IppLogRouteSelectionEvent<br>IppLogSourceConstraint<br>IppLogSrcAddrLookupEvent<br>IppLogStandbyTransitionAdjustment<br>IppLoopbackEnqueue<br>IppNeighborSetTimeout<br>IppNotifyAddressChangeAtPassive<br>IppNotifyDad<br>IppNotifyEchoRequestChangeWorker<br>IppNotifyInterfaceChangeAtPassive<br>IppNotifyMfeChangeWorker<br>IppNotifyNeighborChangeAtPassive<br>IppNotifyRouteChangeAtPassive<br>IppNotifyRoutingEpochChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPktMonRegisterInterface<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppProcessPhysicalInterfaceRequest<br>IppProtocolNeighborRundown<br>IppProtocolRouteRundown<br>IppReceiveEspNbl<br>IppReceivePackets<br>IppRefreshRouteLifetimes<br>IppRegQueryDwordValue<br>IppSendDatagramsCommon<br>IppSendDirect<br>IppSendError<br>IppSendMulticastDiscoveryRecords<br>IppStartProtocolManager<br>IppTraceAddressChangeNotificationEvent<br>IppTraceDadStateChangeEvent<br>IppTraceDisconnectInterface<br>IppTraceNeighborChangeNotificationEvent<br>IppTraceNeighborDiscovery<br>IppTraceNeighborReset<br>IppTraceNeighborState<br>IppTraceWolAddress<br>IppTraceWolContext<br>IppTransformIPsecPacket<br>IppUpdateBestSourceAddress<br>IppUpdatePathNotificationAtPassiveLevel<br>IppUpdateRoutesWithLocalAddressAsNextHopUnderLock<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbRegisterChangeNotification<br>IpsLbStartup<br>IpsecPktMonClientComponentUnregister<br>IpsecPktMonDetachProvider<br>Ipv4SetEchoRequestCreate<br>Ipv4pAddressInterface<br>Ipv4pCompactFragmentationHeader<br>Ipv4pHandleAddressMaskRequest<br>Ipv4pHandleEchoRequest<br>Ipv4pHandleTimestampRequest<br>Ipv4pReassemblyTimeout<br>Ipv4pRegSyncInterfaceDefaultGatewayChangeHandler<br>Ipv6GetAllPotentialRouters<br>Ipv6GetAllRouterInformation<br>Ipv6NotifyPotentialRouterChangeAtPassive<br>Ipv6SetEchoRequestCreate<br>Ipv6pAddressInterface<br>Ipv6pEnumRoutesAndAddPrefixBasedAddresses<br>Ipv6pNotifyRouteChange<br>Ipv6pNotifyRouterInformationChangeWorker<br>Ipv6pReassemblyTimeout<br>Ipv6pSendRedirectHelper<br>LogEtwIcmpDrop<br>LogEtwIcmpMessage<br>LruCleanupDpcRoutine<br>LwInitializeQueueEx<br>McGenControlCallbackV2<br>NetioAddressChangeCallBack<br>NetioHistogramUpload<br>NetioInterfaceChangeCallBack<br>NlShimFwLayerDirectClassify<br>OlmQuerySetRscCapabilities<br>OlmTcpRscGetAllStats<br>PktMonClientComponentUnregister<br>PktMonDetachProvider<br>ProcessOutTransportStackIndicationFast<br>ProcessRedirectLayerForNonNativeTCP<br>QimUpdateUDPEndpointOnPolicyChange<br>QueryAttributes<br>RawActivateEndpoint<br>RawBindEndpoint<br>RawCreateMessageIndication<br>RawSendMessages<br>RawSendMessagesOnPathCreation<br>RawSetSockOptEndpoint<br>RawStartNetworkModule<br>RssPrepareReceiveScaleParameters<br>RssQueryInterfacePortInformation<br>RssQueryPortAdapterInfo<br>RssQueryPortIndex<br>RssQueryPortProcessorInfo<br>RssSelectStaticProcessors<br>RssStartDistribution<br>RtlStringCbPrintfExW<br>RtlStringCchPrintfExW<br>RtlStringExHandleOtherFlagsW<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>ShimIndicateDiscard<br>ShimIpDiscardV4<br>ShimIpDiscardV6<br>ShimIpForwardDiscard<br>ShimIpFragmentInV4<br>ShimIpFragmentInV6<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>TcpBwNotifyReceive<br>TcpBwUpdateEre<br>TcpCleanupTcbWorkQueueRoutine<br>TcpComputeMssOption<br>TcpComputeSynRcvdLimit<br>TcpConnectionRundown<br>TcpCreateEndpoint<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateSynTcb<br>TcpDeplumbWakePattern<br>TcpDequeueTcbSend<br>TcpDisconnectTcb<br>TcpEnumerateBoundEndpoints<br>TcpEnumerateListeners<br>TcpGetAllGlobalParameters<br>TcpGetSockOptTcb<br>TcpGetTcbConnectionObject<br>TcpHistogramIncrement<br>TcpInitializeIsnGenerator<br>TcpInitializeRttEstimateTcb<br>TcpInitializeTcb<br>TcpInspectListenerReceive<br>TcpInspectListenerRedirect<br>TcpMppInitialize<br>TcpMppNppEvaluationHelper<br>TcpNotifyRetransmitTimeoutAtPassive<br>TcpOptionsForSynSend<br>TcpPlumbWakePattern<br>TcpProcessFastDatagramBatch<br>TcpRecentFailureTrace<br>TcpRemoveTcbTuple<br>TcpRemoveTimewaitTcbTuple<br>TcpRequestReceive<br>TcpResetSend<br>TcpResolveConnectRequestToPathAndAf<br>TcpScheduleNotificationChannelWorkItemTcb<br>TcpSendTrackerCreateTransmit<br>TcpSendTrackerMarkTransmits<br>TcpSetFastopenPathInfoTcb<br>TcpSetSockOptListener<br>TcpStartInetModule<br>TcpStartOlmModule<br>TcpTcbEarlyReceive<br>TcpTcbIssueOrCancelPathBwEstimation<br>TcpTcbProcessNotificationChannelSetup<br>TcpTcbProcessNotificationChannelSetupRequest<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbQueryIpsecMtuAndRetransmit<br>TcpTcbReceive<br>TcpTraceConnectionSummary<br>TcpTryToEnterBHMode<br>TcpTuneTcbEstats<br>TcpipEvaluateTlFilter<br>TcpipPcwGlobalCallback<br>TcpipPcwGlobalExCallback<br>TcpipPcwPerCpuCallback<br>TcpipPcwTlDropsCallback<br>TlShimDirectClassify<br>TraceFilterEngineValidateAndStoreRules<br>UQoSAttachClient<br>UQoSCreatePolicyInternal<br>UQoSUpdatePolicyInternal<br>UQoSpParseDescriptor<br>UQoSpValidateFilterConditions<br>UdpActivateEndpoint<br>UdpCleanupEndpointWorkQueueRoutine<br>UdpConnectRedirectObsolete<br>UdpEndpointProcessNotificationChannelSetup<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEnumerateEndpoints<br>UdpGetSockOptEndpoint<br>UdpOffloadAddInterface<br>UdpScheduleNotificationChannelTeardownRequest<br>UdpSendMessages<br>UdpSendMessagesOnPath<br>UdpSetDestinationEndpoint<br>UdpTlProviderMessageCalloutRoutine<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleAcquireFqbnFromToken<br>WfpAleAcquirePackageIdentityFromToken<br>WfpAleAcquireTokenInformationFromToken<br>WfpAleAllocateSecureSocketPolicy<br>WfpAleAuditEvent<br>WfpAleAuthHistogramUpload<br>WfpAleAuthLogHistogramDatapointWorkQueueRoutine<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeReceive<br>WfpAleAuthorizeSend<br>WfpAleCompleteOperation<br>WfpAleCopyEndpointToPublic<br>WfpAleCreatePeerInformation<br>WfpAleEndpointCreationHandler<br>WfpAleFastUdpInspection<br>WfpAleFindRemoteEndpoint<br>WfpAleGetPolicyAppIdTagFromToken<br>WfpAleGetServiceSidsFromToken<br>WfpAleInitialize<br>WfpAleInitializeIo<br>WfpAleInsertCredentialInformation<br>WfpAleInsertPeerInformation<br>WfpAleInsertProcessInformation<br>WfpAleInsertRemoteEndpoint<br>WfpAleInsertTupleStateEntry<br>WfpAleMarshalFqbnValue<br>WfpAleMatchStatefulEndpoint<br>WfpAleProcessEndpointEnumIoctl<br>WfpAleProcessExplicitCredentialQuery<br>WfpAleProcessSocketOption<br>WfpAleSecureSocketAdd<br>WfpAleUninitializeTupleState<br>WfpAleValidateISCSIEndPoint<br>WfpAlepAuthorizeAccept<br>WfpAlepAuthorizeConnect<br>WfpAlepAuthorizeOrClassifyListen<br>WfpAlepAuthorizeOrClassifyPort<br>WfpAlepAuthorizeOrClassifyRaw<br>WfpAlepAuthorizePromiscuousMode<br>WfpAlepAuthorizeReceive<br>WfpAlepAuthorizeSend<br>WfpAlepDeleteEntryFromTable<br>WfpAlepFlowEstablishedNotification<br>WfpAlepReauthorizeInboundConnection<br>WfpAlepReauthorizeOutboundConnection<br>WfpAlepSecureSocketAddAsync<br>WfpAlepSetPeerTarget<br>WfpCreateProcessNotifyRoutine<br>WfpDestroyAppSidTable<br>WfpDestroyFilePathTable<br>WfpFreeTemporaryAleEndpoint<br>WfpHandOffTupleStateToTemporaryAleEntry<br>WfpInTransportShimV4Discard<br>WfpInTransportShimV6Discard<br>WfpIndicateSendControl<br>WfpInitializeTimerManager<br>WfpInspectReceiveControlShimV4<br>WfpInspectReceiveControlShimV6<br>WfpIpAddressCheckAndAdd<br>WfpIsLayerOffloadPossible<br>WfpLookupFilePathTableAndUpdateCount<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpNlShimInspectForwardDatagram<br>WfpNlShimInspectvSwitchForwardDatagram<br>WfpPacketQueueInit<br>WfpProcessInTransportStackIndication<br>WfpProcessInTransportStackIndicationFast<br>WfpRegGetUint32Value<br>WfpRegisterNlClient<br>WfpReinjectTunnelPacketFL<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpShimGetStorageForClassifyValues<br>WfpShimIndicateDiscardGeneral<br>WfpSysTimerModuleInit<br>WfpTagAppIdToNblForRio<br>WfpTlShimInspectOutboundNetworkConnection<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfpTlShimInspectStreamPacket<br>WfpUpdateConnectionContext<br>WfpVpnDisconnectDebounceDpcHandler<br>WfpVpnHandleCalloutClassify<br>WfpVpnHandleFlowDelete<br>WfpVpnNrptDpcHandler<br>WfpVpnNrptTriggerHandlerThread<br>WfpVpnResetFlowCounts<br>WfpVpnResetNrptTriggerInternal<br>WppTraceCallback<br>switchD_140035171::caseD_0</details>|
|paramcount|3|3|
|`address`|1401c2b40|1401c3140|
|sig|void * __cdecl memset(void * _Dst, int _Val, size_t _Size)|void * __cdecl memset(void * _Dst, int _Val, size_t _Size)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### memset Calling Diff


```diff
--- memset calling
+++ memset calling
@@ -42,15 +42,15 @@
-FUN_14010032d
-FUN_1401c5c22
-FUN_1401c5d2c
-FUN_1401c5d9d
-FUN_1401c658c
-FUN_1401c9216
-FUN_1401cc96b
-FUN_1401ccd08
-FUN_1401cd58a
-FUN_1401cf3ce
-FUN_1401cf493
-FUN_1401d0ae3
-FUN_1401d9c44
-FUN_1401da94a
-FUN_1401dd68a
+FUN_1400ff37d
+FUN_1401c3828
+FUN_1401c4f66
+FUN_1401c5070
+FUN_1401c50e1
+FUN_1401c9e79
+FUN_1401ca216
+FUN_1401cb3da
+FUN_1401ccb2c
+FUN_1401cffd4
+FUN_1401d0099
+FUN_1401d33f9
+FUN_1401d8820
+FUN_1401d9aee
+FUN_1401dd8ea
@@ -439 +439 @@
-UdpConnectRedirect
+UdpConnectRedirectObsolete
@@ -541 +541 @@
-switchD_140008e31::caseD_0
+switchD_140035171::caseD_0
```


## RtlAcquireWriteLockAtDpcLevel

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.82|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|RtlAcquireWriteLockAtDpcLevel|RtlAcquireWriteLockAtDpcLevel|
|fullname|RtlAcquireWriteLockAtDpcLevel|RtlAcquireWriteLockAtDpcLevel|
|`refcount`|37|38|
|length|34|34|
|called|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel|
|`calling`|<details><summary>Expand for full list:<br>CreateExclusion<br>EQoSGetAppName<br>EQoSGetQoSProfileFlowHandle<br>EQoSUpdateQoSProfile<br>FUN_1401c5bca<br>FUN_1401d1d06<br>Icmpv4HandleRouterAdvertisement<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveSubinterfacesProcessorContext<br>IppCommitSetAllSubInterfaceParameters<br>IppDeleteSubInterface</summary>IppGarbageCollectLoopbackAddressSet<br>IppResetNeighborsAtDpc<br>IppRouteSetTimeout<br>IppSetAllNeighborParametersHelper<br>IppSetDhcpOperationalStatus<br>IppUpdateCompartment<br>Ipv4pRouterDiscoveryTimeout<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pRouterPref64GetNextExpirationTick<br>Ipv6pRouterPref64Timeout<br>TcpConnectionRundown<br>TcpFlushDelay<br>TcpGetAndWriteLockPartitionAtDpcLevel<br>TcpPartitionStartOrContinueMppEvaluation<br>TcpPartitionStopMppEvaluation<br>TcpRepartitionState</details>|<details><summary>Expand for full list:<br>CreateExclusion<br>EQoSGetAppName<br>EQoSGetQoSProfileFlowHandle<br>EQoSUpdateQoSProfile<br>FUN_1401c4f0e<br>FUN_1401d1c68<br>Icmpv4HandleRouterAdvertisement<br>IppAddRemoveInterfaceProcessorContext<br>IppAddRemoveSubinterfacesProcessorContext<br>IppCommitSetAllSubInterfaceParameters<br>IppDeleteSubInterface</summary>IppGarbageCollectLoopbackAddressSet<br>IppResetNeighborsAtDpc<br>IppRouteSetTimeout<br>IppSetAllNeighborParametersHelper<br>IppSetDhcpOperationalStatus<br>IppUpdateCompartment<br>Ipv4pRouterDiscoveryTimeout<br>Ipv6pHandleNeighborSolicitation<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pRouterPref64GetNextExpirationTick<br>Ipv6pRouterPref64Timeout<br>TcpConnectionRundown<br>TcpFlushDelay<br>TcpGetAndWriteLockPartitionAtDpcLevel<br>TcpPartitionStartOrContinueMppEvaluation<br>TcpPartitionStopMppEvaluation<br>TcpRepartitionState</details>|
|paramcount|0|0|
|`address`|1400b2ff0|1400c57c0|
|sig|undefined RtlAcquireWriteLockAtDpcLevel(void)|undefined RtlAcquireWriteLockAtDpcLevel(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### RtlAcquireWriteLockAtDpcLevel Calling Diff


```diff
--- RtlAcquireWriteLockAtDpcLevel calling
+++ RtlAcquireWriteLockAtDpcLevel calling
@@ -5,2 +5,2 @@
-FUN_1401c5bca
-FUN_1401d1d06
+FUN_1401c4f0e
+FUN_1401d1c68
@@ -18,0 +19 @@
+Ipv6pHandleNeighborSolicitation
```


## NDIS.SYS::NdisRetreatNetBufferDataStart

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NdisRetreatNetBufferDataStart|NdisRetreatNetBufferDataStart|
|fullname|NDIS.SYS::NdisRetreatNetBufferDataStart|NDIS.SYS::NdisRetreatNetBufferDataStart|
|`refcount`|49|50|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>FlpSendPacketsHelper<br>IPSecCalculateIPHeaderChecksumBeforeTunneling<br>IgmppCreateMulticastDiscoveryReport<br>IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams<br>IppAddEspHeader<br>IppCreateClonePacketForRaw<br>IppCreateStrongClonePacket<br>IppDeliverPreValidatedListToProtocol<br>IppEnsureContiguousHeaders<br>IppIndicatePrevalidatedPacketsToIpsServiceChain</summary>IppInsertExtensionHeaders<br>IppInspectSkipNetworkLayerHeaders<br>IppIsUdpEspPacket<br>IppLbIndicatePackets<br>IppPacketizeDatagrams<br>IppPacketizeDatagramsForHeaderBuild<br>IppReceiveEspNbl<br>IppReceiveUdpEspInternal<br>IppSegmentRscForwardNbl<br>IppSegmentUroNbl<br>Ipv6pFragmentPacketHelper<br>NetioRetreatNetBuffer<br>RawBeginDelivery<br>RawReceiveDatagrams<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtGetDataBufferWithOffset<br>SegLibPvtGetTcpDataOffset<br>TcpDiscardReceive<br>TcpMatchReceive<br>TcpTcbReceive<br>TlShimInjectRedirectedPacket<br>UdpReceiveDatagrams</details>|<details><summary>Expand for full list:<br>FlpSendPacketsHelper<br>IPSecCalculateIPHeaderChecksumBeforeTunneling<br>IgmppCreateMulticastDiscoveryReport<br>IpNlpFastContinueSendDatagrams<br>IpNlpFastContinueSendLoopbackDatagrams<br>IppAddEspHeader<br>IppBuildFirstHeader<br>IppBuildNextHeader<br>IppCreateClonePacketForRaw<br>IppCreateStrongClonePacket<br>IppDeliverPreValidatedListToProtocol</summary>IppEnsureContiguousHeaders<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInsertExtensionHeaders<br>IppInspectSkipNetworkLayerHeaders<br>IppIsUdpEspPacket<br>IppLbIndicatePackets<br>IppPacketizeDatagrams<br>IppPacketizeDatagramsForHeaderBuild<br>IppReceiveEspNbl<br>IppReceiveUdpEspInternal<br>IppSegmentRscForwardNbl<br>IppSegmentUroNbl<br>Ipv6pFragmentPacketHelper<br>NetioRetreatNetBuffer<br>RawBeginDelivery<br>RawReceiveDatagrams<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtGetDataBufferWithOffset<br>SegLibPvtGetTcpDataOffset<br>TcpDiscardReceive<br>TcpMatchReceive<br>TcpTcbReceive<br>TlShimInjectRedirectedPacket<br>UdpReceiveDatagrams</details>|
|paramcount|0|0|
|`address`|EXTERNAL:000002d8|EXTERNAL:000002d9|
|sig|undefined NdisRetreatNetBufferDataStart(void)|undefined NdisRetreatNetBufferDataStart(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NDIS.SYS::NdisRetreatNetBufferDataStart Calling Diff


```diff
--- NDIS.SYS::NdisRetreatNetBufferDataStart calling
+++ NDIS.SYS::NdisRetreatNetBufferDataStart calling
@@ -6,0 +7,2 @@
+IppBuildFirstHeader
+IppBuildNextHeader
```


## WfpPoolFree

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.86|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|WfpPoolFree|WfpPoolFree|
|fullname|WfpPoolFree|WfpPoolFree|
|`refcount`|175|174|
|length|50|50|
|called|NTOSKRNL.EXE::ExFreePoolWithTag|NTOSKRNL.EXE::ExFreePoolWithTag|
|`calling`|<details><summary>Expand for full list:<br>AleAcceptRedirectRecordFree<br>AleConnectionPolicyRecordFreeCallback<br>AleInspectAcceptRequest<br>AleInspectConnectRequest<br>AleNotifyEndpointDeactivate<br>AleNotifyEndpointTeardown<br>AleRedirectRecordFree<br>AleReleseDeactivateNotifyContext<br>AleRequestTcpConnectionAbort<br>AlepCacheConnectionPolicyRecord<br>AlepDestroyRedirectCallbackContext</summary>AlepFreeCloneAcceptRedirectLayerData<br>AlepInitializeConnectionPolicyMapping<br>AlepInitializeProxyMapping<br>AlepReleaseBindRequestInspectContext<br>AlepReleaseConnectRequestInspectContext<br>AlepReleseBindRedirectLayerData<br>AlepReleseConnectRedirectLayerData<br>CheckAcceptBypass<br>CheckConnectBypass<br>FUN_1401c34fa<br>FUN_1401cccc7<br>FUN_1401d26bf<br>FUN_1401d3334<br>FUN_1401d366a<br>FindPermittedPorts<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecInitializePacketBatchQueue<br>IPSecInitializeSchedulerModule<br>IPSecShutdownPacketProcessingModule<br>IPSecShutdownSchedulerModule<br>IPsecDestroyAleDiscardState<br>IPsecFreePickledMemory<br>IPsecFwAddFlowContext<br>IPsecFwDereferenceFlowContext<br>IPsecFwFlowEventCallback<br>IPsecInitializePerProcPacketQueuesList<br>IPsecProcessAllBatchingQueuesForCurrentProcessor<br>IsLayerBypassAllowed<br>MIDL_user_free<br>NLShimDereferenceFwLayerCache<br>NlShimCacheMatchedFwLayerFilterList<br>NlShimForwardFlowEventCallback<br>ProcessRedirectLayerForNonNativeTCP<br>ReadExemptPortRangeList<br>TlShimInjectRedirectedPacket<br>TlShimInjectRedirectedPacketComplete<br>WfpAleAuditEvent<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeListen<br>WfpAleAuthorizeReceive<br>WfpAleCopyPeerTokenInfoToTupleIPsecState<br>WfpAleDestroyTupleEntry<br>WfpAleDisableWaitRef<br>WfpAleExtractExplicitCredentials<br>WfpAleFree<br>WfpAleFreeTokenInformation<br>WfpAleInitializeEndpointHandleTable<br>WfpAleInitializeProcessNotification<br>WfpAleInitializeRemoteEndpointPartition<br>WfpAleReleaseCredentialInformation<br>WfpAleSetOrClearPeerTokenInformation<br>WfpAleUninitializeEndpointHandleTable<br>WfpAleUninitializeRemoteEndpointPartition<br>WfpAlepAuthorizeAccept<br>WfpAlepAuthorizeConnect<br>WfpAlepAuthorizeOrClassifyListen<br>WfpAlepAuthorizeOrClassifyPort<br>WfpAlepAuthorizeOrClassifyRaw<br>WfpAlepAuthorizePromiscuousMode<br>WfpAlepAuthorizeReceive<br>WfpAlepAuthorizeSend<br>WfpAlepAuthorizeSendSecureCompletion<br>WfpAlepCopyCredentialData<br>WfpAlepCopyPeerTokenInformation<br>WfpAlepDeactivateFilters<br>WfpAlepEndpointCleanup<br>WfpAlepFlowEstablishedNotification<br>WfpAlepFreePeerTokenInformation<br>WfpAlepFreeProcessInformation<br>WfpAlepReauthorizeInboundConnection<br>WfpAlepReauthorizeOutboundConnection<br>WfpAlepSecureSocketAddComplete<br>WfpAlepSetSecurity<br>WfpAppTriggerPerformUpcall<br>WfpCreateNrptEventSD<br>WfpDerefOrderEntry<br>WfpDestroyAppSidTable<br>WfpDestroyFilePathTable<br>WfpDestroyNextHopCtxt<br>WfpDestroyNexthopIfMap<br>WfpFreeAppSidEntry<br>WfpFreeFilePathEntry<br>WfpFreeRioAppId<br>WfpFreeSecurityDescriptorEntry<br>WfpFreeTemporaryAleEndpoint<br>WfpFreeTriggerTimeEntries<br>WfpHistogramCreate<br>WfpHistogramDelete<br>WfpIncrementTriggerCountAndQ<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpNrptSDFree<br>WfpRegNotifyDestroy<br>WfpSetVpnTriggerFilePaths<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpSetVpnTriggerSids<br>WfpUnitializeModifiedCorrelationList<br>WfpVpnCalloutClassifyV4<br>WfpVpnCalloutClassifyV6<br>WfpVpnHandleFlowDelete<br>WfpVpnInitNrptTriggers<br>WfpVpnNrptTriggerHandlerThread<br>WfpVpnQueueDisconnectWorkItem<br>WfpVpnUninitNrptTriggerInternal</details>|<details><summary>Expand for full list:<br>AleAcceptRedirectRecordFree<br>AleConnectionPolicyRecordFreeCallback<br>AleInspectAcceptRequest<br>AleNotifyEndpointDeactivate<br>AleNotifyEndpointTeardown<br>AleRedirectRecordFree<br>AleReleseDeactivateNotifyContext<br>AleRequestTcpConnectionAbort<br>AlepCacheConnectionPolicyRecord<br>AlepDestroyRedirectCallbackContext<br>AlepFreeCloneAcceptRedirectLayerData</summary>AlepInitializeConnectionPolicyMapping<br>AlepInitializeProxyMapping<br>AlepReleaseBindRequestInspectContext<br>AlepReleaseConnectRequestInspectContext<br>AlepReleseBindRedirectLayerData<br>AlepReleseConnectRedirectLayerData<br>CheckAcceptBypass<br>CheckConnectBypass<br>FUN_1401c6c40<br>FUN_1401ca1d5<br>FUN_1401cb7e8<br>FUN_1401cbb1e<br>FUN_1401d3eaf<br>FindPermittedPorts<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecInitializePacketBatchQueue<br>IPSecInitializeSchedulerModule<br>IPSecShutdownPacketProcessingModule<br>IPSecShutdownSchedulerModule<br>IPsecDestroyAleDiscardState<br>IPsecFreePickledMemory<br>IPsecFwAddFlowContext<br>IPsecFwDereferenceFlowContext<br>IPsecFwFlowEventCallback<br>IPsecInitializePerProcPacketQueuesList<br>IPsecProcessAllBatchingQueuesForCurrentProcessor<br>IsLayerBypassAllowed<br>MIDL_user_free<br>NLShimDereferenceFwLayerCache<br>NlShimCacheMatchedFwLayerFilterList<br>NlShimForwardFlowEventCallback<br>ProcessRedirectLayerForNonNativeTCP<br>ReadExemptPortRangeList<br>TlShimInjectRedirectedPacket<br>TlShimInjectRedirectedPacketComplete<br>WfpAleAuditEvent<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeListen<br>WfpAleAuthorizeReceive<br>WfpAleCopyPeerTokenInfoToTupleIPsecState<br>WfpAleDestroyTupleEntry<br>WfpAleDisableWaitRef<br>WfpAleExtractExplicitCredentials<br>WfpAleFree<br>WfpAleFreeTokenInformation<br>WfpAleInitializeEndpointHandleTable<br>WfpAleInitializeProcessNotification<br>WfpAleInitializeRemoteEndpointPartition<br>WfpAleReleaseCredentialInformation<br>WfpAleSetOrClearPeerTokenInformation<br>WfpAleUninitializeEndpointHandleTable<br>WfpAleUninitializeRemoteEndpointPartition<br>WfpAlepAuthorizeAccept<br>WfpAlepAuthorizeConnect<br>WfpAlepAuthorizeOrClassifyListen<br>WfpAlepAuthorizeOrClassifyPort<br>WfpAlepAuthorizeOrClassifyRaw<br>WfpAlepAuthorizePromiscuousMode<br>WfpAlepAuthorizeReceive<br>WfpAlepAuthorizeSend<br>WfpAlepAuthorizeSendSecureCompletion<br>WfpAlepCopyCredentialData<br>WfpAlepCopyPeerTokenInformation<br>WfpAlepDeactivateFilters<br>WfpAlepEndpointCleanup<br>WfpAlepFlowEstablishedNotification<br>WfpAlepFreePeerTokenInformation<br>WfpAlepFreeProcessInformation<br>WfpAlepReauthorizeInboundConnection<br>WfpAlepReauthorizeOutboundConnection<br>WfpAlepSecureSocketAddComplete<br>WfpAlepSetSecurity<br>WfpAppTriggerPerformUpcall<br>WfpCreateNrptEventSD<br>WfpDerefOrderEntry<br>WfpDestroyAppSidTable<br>WfpDestroyFilePathTable<br>WfpDestroyNextHopCtxt<br>WfpDestroyNexthopIfMap<br>WfpFreeAppSidEntry<br>WfpFreeFilePathEntry<br>WfpFreeRioAppId<br>WfpFreeSecurityDescriptorEntry<br>WfpFreeTemporaryAleEndpoint<br>WfpFreeTriggerTimeEntries<br>WfpHistogramCreate<br>WfpHistogramDelete<br>WfpIncrementTriggerCountAndQ<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpNrptSDFree<br>WfpRegNotifyDestroy<br>WfpSetVpnTriggerFilePaths<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpSetVpnTriggerSids<br>WfpUnitializeModifiedCorrelationList<br>WfpVpnCalloutClassifyV4<br>WfpVpnCalloutClassifyV6<br>WfpVpnHandleFlowDelete<br>WfpVpnInitNrptTriggers<br>WfpVpnNrptTriggerHandlerThread<br>WfpVpnQueueDisconnectWorkItem<br>WfpVpnUninitNrptTriggerInternal</details>|
|paramcount|0|0|
|`address`|140006830|140032b70|
|sig|undefined WfpPoolFree(void)|undefined WfpPoolFree(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### WfpPoolFree Calling Diff


```diff
--- WfpPoolFree calling
+++ WfpPoolFree calling
@@ -4 +3,0 @@
-AleInspectConnectRequest
@@ -21,5 +20,5 @@
-FUN_1401c34fa
-FUN_1401cccc7
-FUN_1401d26bf
-FUN_1401d3334
-FUN_1401d366a
+FUN_1401c6c40
+FUN_1401ca1d5
+FUN_1401cb7e8
+FUN_1401cbb1e
+FUN_1401d3eaf
```


## NETIO.SYS::NetioPhFillUInt16AtOffset

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NetioPhFillUInt16AtOffset|NetioPhFillUInt16AtOffset|
|fullname|NETIO.SYS::NetioPhFillUInt16AtOffset|NETIO.SYS::NetioPhFillUInt16AtOffset|
|`refcount`|5|3|
|length|0|0|
|called|||
|`calling`|FUN_1401c647f<br>IppLoopbackEnqueue|IppTranslateTransmitToReceiveNbl|
|paramcount|0|0|
|`address`|EXTERNAL:00000226|EXTERNAL:00000227|
|sig|undefined NetioPhFillUInt16AtOffset(void)|undefined NetioPhFillUInt16AtOffset(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NETIO.SYS::NetioPhFillUInt16AtOffset Calling Diff


```diff
--- NETIO.SYS::NetioPhFillUInt16AtOffset calling
+++ NETIO.SYS::NetioPhFillUInt16AtOffset calling
@@ -1,2 +1 @@
-FUN_1401c647f
-IppLoopbackEnqueue
+IppTranslateTransmitToReceiveNbl
```


## McTemplateK0ppqqq_EtwWriteTransfer

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.93|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|McTemplateK0ppqqq_EtwWriteTransfer|McTemplateK0ppqqq_EtwWriteTransfer|
|fullname|McTemplateK0ppqqq_EtwWriteTransfer|McTemplateK0ppqqq_EtwWriteTransfer|
|`refcount`|38|39|
|length|156|156|
|called|McGenEventWrite_EtwWriteTransfer<br>__security_check_cookie|McGenEventWrite_EtwWriteTransfer<br>__security_check_cookie|
|`calling`|<details><summary>Expand for full list:<br>InetInspectAcceptComplete<br>InetInspectAcquirePort<br>InetInspectBindEndpointRequest<br>InetInspectConnectComplete<br>InetInspectCreateEndpoint<br>InetInspectListen<br>InetInspectOffload<br>InetInspectRaw<br>InetInspectReceiveControlMessage<br>InetInspectReceiveDatagram<br>InetInspectReceiveTcpDatagram</summary>InetInspectRemoteDisconnect<br>InetInspectRespondDatagram<br>InetInspectSocketOption<br>TcpBindEndpointWorkQueueRoutine<br>TcpContinueCreateAndConnect<br>TcpCreateAndConnectTcbComplete<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>TcpCreateEndpointWorkQueueRoutine<br>TcpDiscardReceive<br>TcpDisconnectTcb<br>TcpEnqueueTcbSend<br>TcpInspectBindEndpoint<br>TcpInspectListenerReceive<br>TcpInspectReceive<br>TcpMatchReceive<br>TcpProcessFastDatagramBatch<br>TcpTcbFastDatagram<br>TcpTcbReceive<br>UdpBindEndpointRequestInspectComplete<br>UdpBindEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpCreateEndpointWorkQueueRoutine<br>UdpEndpointSignalNotificationChannelEvent</details>|<details><summary>Expand for full list:<br>InetInspectAcceptComplete<br>InetInspectAcquirePort<br>InetInspectBindEndpointRequest<br>InetInspectConnectComplete<br>InetInspectConnectRequest<br>InetInspectCreateEndpoint<br>InetInspectListen<br>InetInspectOffload<br>InetInspectRaw<br>InetInspectReceiveControlMessage<br>InetInspectReceiveDatagram</summary>InetInspectReceiveTcpDatagram<br>InetInspectRemoteDisconnect<br>InetInspectRespondDatagram<br>InetInspectSocketOption<br>TcpBindEndpointWorkQueueRoutine<br>TcpContinueCreateAndConnect<br>TcpCreateAndConnectTcbComplete<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>TcpCreateEndpointWorkQueueRoutine<br>TcpDiscardReceive<br>TcpDisconnectTcb<br>TcpEnqueueTcbSend<br>TcpInspectBindEndpoint<br>TcpInspectListenerReceive<br>TcpInspectReceive<br>TcpMatchReceive<br>TcpProcessFastDatagramBatch<br>TcpTcbFastDatagram<br>TcpTcbReceive<br>UdpBindEndpointRequestInspectComplete<br>UdpBindEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpCreateEndpointWorkQueueRoutine<br>UdpEndpointSignalNotificationChannelEvent</details>|
|paramcount|0|0|
|`address`|140091b30|1400a1160|
|sig|undefined McTemplateK0ppqqq_EtwWriteTransfer(void)|undefined McTemplateK0ppqqq_EtwWriteTransfer(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### McTemplateK0ppqqq_EtwWriteTransfer Calling Diff


```diff
--- McTemplateK0ppqqq_EtwWriteTransfer calling
+++ McTemplateK0ppqqq_EtwWriteTransfer calling
@@ -4,0 +5 @@
+InetInspectConnectRequest
```


## NTOSKRNL.EXE::KfRaiseIrql

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KfRaiseIrql|KfRaiseIrql|
|fullname|NTOSKRNL.EXE::KfRaiseIrql|NTOSKRNL.EXE::KfRaiseIrql|
|`refcount`|168|169|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>CreateExclusion<br>IPSecAuditEvent<br>IPsecToggleFragGrouping<br>IndicateDoSAttackAudit<br>InetFindAndReferenceAf<br>InetResolveSetSockOptSs<br>InetResolveSockAddrToRemoteAddressAndAf<br>IpEnumerateAllInterfaces<br>IpEnumerateAllNeighbors<br>IpFlcReceivePreValidatedPackets<br>IpGetAllInterfaceParameters</summary>IpGetAllRouteParameters<br>IpNlpReferenceCompartment<br>IppDispatchMfeQueuedPackets<br>IppDispatchSendPacketHelper<br>IppEnumerateInterfaceAddresses<br>IppEvaluateSortInformation<br>IppEvaluateSortInformationEx<br>IppFillInterfaceData<br>IppFillPathInformation<br>IppFillUnicastRouteData<br>IppFindAddressInAddressSet<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAnySubInterfaceOnInterface<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindCompartmentById<br>IppFindInterfaceByIndex<br>IppFindInterfaceByLuid<br>IppFindInterfaceForThread<br>IppFindNextHopAndSource<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateNeighborWithoutType<br>IppFindOrCreatePath<br>IppFindOrSpoofLocalAddressForRawSend<br>IppFindPath<br>IppFindPathFromPrimitiveIds<br>IppFindSourceAtDpcHelper<br>IppFragmentPackets<br>IppGetAllBestRouteParameters<br>IppGetCompartment<br>IppGetForwardInjectionParameters<br>IppGetNextCompartment<br>IppGetNextHopFromPath<br>IppGetNextInterface<br>IppGetNextInterfaceForThread<br>IppGetNextRoute<br>IppGetNextSubInterfaceOnInterface<br>IppGetRouteFromPath<br>IppGetRouteKey<br>IppGetThreadCompartmentInfo<br>IppIndicateArpPacketsToIpsServiceChain<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectRawSend<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppInspectInjectTlSend<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLbTransmitAdaptiveOrWorkerMode<br>IppLookupPrefixPolicy<br>IppLoopbackEnqueue<br>IppNotifyInterfaceChangeToNlClients<br>IppProcessHeaderIncludeHeader<br>IppReassembledReceive<br>IppReceivePackets<br>IppSendDatagramsCommon<br>IppUpdateBestSourceAddress<br>Ipv6GetAllRouterInformation<br>QimInspectCreateEndpoint<br>RawBindEndpointRequestInspectComplete<br>RawSendMessagesOnPathCreation<br>RtlAcquireReadLock<br>RtlAcquireScalableReadLock<br>TcpAcquireAndInspectWildcardPort<br>TcpBindEndpointRequestInspectComplete<br>TcpBindEndpointWorkQueueRoutine<br>TcpCheckAndPlumbWakePattern<br>TcpConnectionRundown<br>TcpContinueCreateAndConnect<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateListenerInspectComplete<br>TcpDisconnectTcbInspectComplete<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpGetConnectionObject<br>TcpGetTcbConnectionParameters<br>TcpInspectBindEndpoint<br>TcpInspectFindAndReferenceTcb<br>TcpMppIsCandidate<br>TcpNlClientLocalAddressChange<br>TcpNlClientReceiveControlMessage<br>TcpPortPropertyGetAllParameters<br>TcpPowerStateChangeHandler<br>TcpRemoveTcbTuple<br>TcpResolveConnectRequestToPathAndAf<br>TcpResolveConnectRequestToPorts<br>TcpSelectWildcardPort<br>TcpSetConnectionObject<br>TcpSetSockOptEndpoint<br>TcpTimerPowerStateChangeHandler<br>TcpUnbindListenerWorkQueueRoutine<br>TcpipEvaluateTlFilter<br>TlShimLookupLayerCache<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpCheckAndPlumbWakePattern<br>UdpCloseEndpoint<br>UdpCountEndpoints<br>UdpEnumerateEndpoints<br>UdpGetAllGlobalParameters<br>UdpIoControlEndpoint<br>UdpNlClientReceiveControlMessage<br>UdpSendMessages<br>WfpAleAcquireEndpoint<br>WfpAleAcquireEndpointContextFromHandle<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4<br>WfpRaiseIrqlToDispatchLevel<br>WfpShimGetStorageForClassifyValues</details>|<details><summary>Expand for full list:<br>CreateExclusion<br>IPSecAuditEvent<br>IPsecToggleFragGrouping<br>IndicateDoSAttackAudit<br>InetFindAndReferenceAf<br>InetResolveSetSockOptSs<br>InetResolveSockAddrToRemoteAddressAndAf<br>IpEnumerateAllInterfaces<br>IpEnumerateAllNeighbors<br>IpFlcReceivePreValidatedPackets<br>IpGetAllInterfaceParameters</summary>IpGetAllRouteParameters<br>IpNlpReferenceCompartment<br>IpNlpSetSessionInfo<br>IppDispatchMfeQueuedPackets<br>IppDispatchSendPacketHelper<br>IppEnumerateInterfaceAddresses<br>IppEvaluateSortInformation<br>IppEvaluateSortInformationEx<br>IppFillInterfaceData<br>IppFillPathInformation<br>IppFillUnicastRouteData<br>IppFindAddressInAddressSet<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAnySubInterfaceOnInterface<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindCompartmentById<br>IppFindInterfaceByIndex<br>IppFindInterfaceByLuid<br>IppFindInterfaceForThread<br>IppFindNextHopAndSource<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateNeighborWithoutType<br>IppFindOrCreatePath<br>IppFindOrSpoofLocalAddressForRawSend<br>IppFindPath<br>IppFindPathFromPrimitiveIds<br>IppFindSourceAtDpcHelper<br>IppFragmentPackets<br>IppGetAllBestRouteParameters<br>IppGetCompartment<br>IppGetForwardInjectionParameters<br>IppGetNextCompartment<br>IppGetNextHopFromPath<br>IppGetNextInterface<br>IppGetNextInterfaceForThread<br>IppGetNextRoute<br>IppGetNextSubInterfaceOnInterface<br>IppGetRouteFromPath<br>IppGetRouteKey<br>IppGetThreadCompartmentInfo<br>IppIndicateArpPacketsToIpsServiceChain<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectRawSend<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppInspectInjectTlSend<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLbTransmitAdaptiveOrWorkerMode<br>IppLookupPrefixPolicy<br>IppLoopbackEnqueue<br>IppNotifyInterfaceChangeToNlClients<br>IppProcessHeaderIncludeHeader<br>IppReassembledReceive<br>IppReceivePackets<br>IppSendDatagramsCommon<br>IppUpdateBestSourceAddress<br>Ipv6GetAllRouterInformation<br>QimInspectCreateEndpoint<br>RawBindEndpointRequestInspectComplete<br>RawSendMessagesOnPathCreation<br>RtlAcquireReadLock<br>RtlAcquireScalableReadLock<br>TcpAcquireAndInspectWildcardPort<br>TcpBindEndpointRequestInspectComplete<br>TcpBindEndpointWorkQueueRoutine<br>TcpCheckAndPlumbWakePattern<br>TcpConnectionRundown<br>TcpContinueCreateAndConnect<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateListenerInspectComplete<br>TcpDisconnectTcbInspectComplete<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpGetConnectionObject<br>TcpGetTcbConnectionParameters<br>TcpInspectBindEndpoint<br>TcpInspectFindAndReferenceTcb<br>TcpMppIsCandidate<br>TcpNlClientLocalAddressChange<br>TcpNlClientReceiveControlMessage<br>TcpPortPropertyGetAllParameters<br>TcpPowerStateChangeHandler<br>TcpRemoveTcbTuple<br>TcpResolveConnectRequestToPathAndAf<br>TcpResolveConnectRequestToPorts<br>TcpSelectWildcardPort<br>TcpSetConnectionObject<br>TcpSetSockOptEndpoint<br>TcpTimerPowerStateChangeHandler<br>TcpUnbindListenerWorkQueueRoutine<br>TcpipEvaluateTlFilter<br>TlShimLookupLayerCache<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpCheckAndPlumbWakePattern<br>UdpCloseEndpoint<br>UdpCountEndpoints<br>UdpEnumerateEndpoints<br>UdpGetAllGlobalParameters<br>UdpIoControlEndpoint<br>UdpNlClientReceiveControlMessage<br>UdpSendMessages<br>WfpAleAcquireEndpoint<br>WfpAleAcquireEndpointContextFromHandle<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4<br>WfpRaiseIrqlToDispatchLevel<br>WfpShimGetStorageForClassifyValues</details>|
|paramcount|0|0|
|address|EXTERNAL:00000045|EXTERNAL:00000045|
|sig|undefined KfRaiseIrql(void)|undefined KfRaiseIrql(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KfRaiseIrql Calling Diff


```diff
--- NTOSKRNL.EXE::KfRaiseIrql calling
+++ NTOSKRNL.EXE::KfRaiseIrql calling
@@ -13,0 +14 @@
+IpNlpSetSessionInfo
```


## NETIO.SYS::KfdClassify

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KfdClassify|KfdClassify|
|fullname|NETIO.SYS::KfdClassify|NETIO.SYS::KfdClassify|
|`refcount`|46|47|
|length|0|0|
|called|||
|calling|<details><summary>Expand for full list:<br>AleInspectAcceptRequest<br>AleInspectBindRequest<br>AleInspectBindRequestComplete<br>AleInspectConnectRequest<br>AleInspectConnectRequestComplete<br>AleInspectConnectRequestProcessLocalAddressRedirection<br>AleNotifyEndpointDeactivate<br>AleNotifyEndpointTeardown<br>InetInspectReceiveTcpDatagram<br>ProcessIPsecNattTransportLayerReclassifyInbound<br>ProcessIPsecNattTransportLayerReclassifyOutbound</summary>ProcessInboundTransportLayerClassify<br>ProcessOutboundTransportLayerClassify<br>ShimIndicateDiscard<br>ShimIpDiscardV4<br>ShimIpFragmentInV4<br>ShimIpFragmentInV6<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleClassify<br>WfpInTransportShimV4Discard<br>WfpInTransportShimV6Discard<br>WfpIndicateSendControl<br>WfpInspectReceiveControlShimV4<br>WfpInspectReceiveControlShimV6<br>WfpIsLayerOffloadPossible<br>WfpNlShimInspectForwardDatagram<br>WfpNlShimInspectvSwitchForwardDatagram<br>WfpShimIndicateDiscardGeneral<br>WfpTlShimInspectOutboundNetworkConnection<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfpTlShimInspectStreamPacket</details>|<details><summary>Expand for full list:<br>AleInspectAcceptRequest<br>AleInspectBindRequest<br>AleInspectBindRequestComplete<br>AleInspectConnectRequest<br>AleInspectConnectRequestComplete<br>AleInspectConnectRequestProcessLocalAddressRedirection<br>AleNotifyEndpointDeactivate<br>AleNotifyEndpointTeardown<br>InetInspectReceiveTcpDatagram<br>ProcessIPsecNattTransportLayerReclassifyInbound<br>ProcessIPsecNattTransportLayerReclassifyOutbound</summary>ProcessInboundTransportLayerClassify<br>ProcessOutboundTransportLayerClassify<br>ShimIndicateDiscard<br>ShimIpDiscardV4<br>ShimIpFragmentInV4<br>ShimIpFragmentInV6<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleClassify<br>WfpInTransportShimV4Discard<br>WfpInTransportShimV6Discard<br>WfpIndicateSendControl<br>WfpInspectReceiveControlShimV4<br>WfpInspectReceiveControlShimV6<br>WfpIsLayerOffloadPossible<br>WfpNlShimInspectForwardDatagram<br>WfpNlShimInspectvSwitchForwardDatagram<br>WfpShimIndicateDiscardGeneral<br>WfpTlShimInspectOutboundNetworkConnection<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfpTlShimInspectStreamPacket</details>|
|paramcount|0|0|
|`address`|EXTERNAL:00000296|EXTERNAL:00000297|
|sig|undefined KfdClassify(void)|undefined KfdClassify(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

## NETIO.SYS::KfdAreAllIpv4InLayersEmpty

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KfdAreAllIpv4InLayersEmpty|KfdAreAllIpv4InLayersEmpty|
|fullname|NETIO.SYS::KfdAreAllIpv4InLayersEmpty|NETIO.SYS::KfdAreAllIpv4InLayersEmpty|
|`refcount`|3|2|
|length|0|0|
|called|||
|`calling`|IppFragmentPackets<br>IppLoopbackEnqueue|IppTranslateTransmitToReceiveNbl|
|paramcount|0|0|
|`address`|EXTERNAL:00000227|EXTERNAL:00000228|
|sig|undefined KfdAreAllIpv4InLayersEmpty(void)|undefined KfdAreAllIpv4InLayersEmpty(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NETIO.SYS::KfdAreAllIpv4InLayersEmpty Calling Diff


```diff
--- NETIO.SYS::KfdAreAllIpv4InLayersEmpty calling
+++ NETIO.SYS::KfdAreAllIpv4InLayersEmpty calling
@@ -1,2 +1 @@
-IppFragmentPackets
-IppLoopbackEnqueue
+IppTranslateTransmitToReceiveNbl
```


## __security_check_cookie

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|__security_check_cookie|__security_check_cookie|
|fullname|__security_check_cookie|__security_check_cookie|
|`refcount`|1126|1128|
|length|30|30|
|called|__report_gsfailure|__report_gsfailure|
|`calling`|<details><summary>Expand for full list:<br>AcquirePortReservationWithFlags<br>AleCacheAcceptBypass<br>AleCacheConnectBypass<br>AleInspectAcceptRequest<br>AleInspectBindRequest<br>AleInspectBindRequestComplete<br>AleInspectConnectRequest<br>AleInspectConnectRequestComplete<br>AleInspectConnectRequestProcessLocalAddressRedirection<br>AleInspectTcpDatagram<br>AleNotifyEndpointDeactivate</summary>AleNotifyEndpointTeardown<br>BfeArrayValidate<br>CcmClientInitialize<br>ChangeHystartState<br>CheckAcceptBypass<br>CreateFqbnString<br>CubicCumulativeAck<br>DctcpUpdateEcnAlpha<br>DriverEntry<br>EQoSCheckNLAUsageOverride<br>EQoSCreateQoSFlow<br>EQoSDaclDeviceObject<br>EQoSHiveLoadNotifyRegister<br>EQoSHiveLoadTryPolicyChange<br>EQoSOpenMachinePolicyRootKey<br>EQoSQueryQoSFlowStatistics<br>EQoSpCounterSetCallback<br>EQoSpCreateQoSFlow<br>EQoSpPolicyIPMatch<br>EQoSpPolicyParseIP<br>EQoSpPolicyParseIPPrefix<br>EQoSpPolicyParseUrl<br>EQoSpProcessAppMarkingSettings<br>EQoSpProcessOnePolicy<br>EQoSpProcessTcpAutoTuningSettings<br>EQoSpRegistryQueryRoutineV2<br>EQoSpUpdateTcpNSIProvider<br>EdpWriteLogAndCacheAppInfo<br>EfsRpcInit<br>EnableFlushTimer<br>EtwEx_tidActivityInfo<br>EtwEx_tidActivityInfoTransfer<br>ExitBHMode<br>FUN_14005512b<br>FUN_14005b789<br>FUN_14007c45c<br>FUN_1400a2c65<br>FUN_1400b16b0<br>FUN_14027bfd7<br>FallbackCheck<br>FallbackLoad<br>FallbackUpdate<br>FindPermittedPorts<br>Fl48pReceiveArpPackets<br>Fl6tpTeredoShuntSendPackets<br>Fl8AddGroup<br>Fl8pPCFInitializeInterface<br>Fl8pPCFSetARPFilter<br>Fl8pPCFSetUDPFilter<br>FlAttachFlsClient<br>FlCompartmentChangeNotificationHandler<br>FlEtRegisterCallouts<br>FlIfCreateVirtualInterface<br>FlIfDeleteVirtualInterface<br>FlIfProviderQueryObject<br>FlIfpDeleteInterfaceSubKey<br>FlIfpGenerateVirtualInterfaceAlias<br>FlIfpQueryVirtualInterfaceLuid<br>FlPktMonRegisterInterface<br>FlReceiveNetBufferListChainCalloutRoutine<br>FlSetAllVirtualInterfaceParameters<br>FlStatus<br>FllpEnumerateAndCreateLoopbackInterfaces<br>FlpAddInterfaceComplete<br>FlpCheckAndCoalesceNBLChain<br>FlpChecksumCsoNbl<br>FlpEnableWakeupCapabilities<br>FlpFlsInterceptReceivePackets<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpGenerateWolPatternForAddress<br>FlpInterfaceRundown<br>FlpLogVirtualIfCtlError<br>FlpNdisDirectRequestUnderReference<br>FlpNdisRequestUnderReference<br>FlpNdisSendNbls<br>FlpPCFClearFilter<br>FlpRestartPnpEvent<br>FlpSerializedWolAddressEvictionWorker<br>FlpSetArpNDOffload<br>FlpSetDirectWolPattern<br>FlpTraceWakeStatistics<br>FlpValidateNetBufferListChain<br>FltpInitializeInterface<br>FseCreateClientInitMessage<br>FseCreateInvalidMsgTypeMessage<br>FseCreateInvalidVersionMessage<br>FseCreatePortReleaseRequestMessage<br>FseCreatePortReserveRequestMessage<br>FseProcessIncomingMessages<br>FseProcessPortReserveRequest<br>FseWskAcceptEvent<br>FseWskSetupListeningSocket<br>GetPortTrackerModeFromRegistry<br>GetProductType<br>GetQueueIndexFromNblFwd<br>GetWcosLoopbackSupportedValue<br>HandOffAuthFwIpsecStateToAleEntry<br>IPSecAddInboundSaToTrafficIndex<br>IPSecAddOutboundSa<br>IPSecAddOutboundSaToTrafficIndex<br>IPSecAuditEvent<br>IPSecCalculateIPHeaderChecksumBeforeTunneling<br>IPSecCalloutsRegister<br>IPSecClearRekeyOriginalStateOnLarvalSaDeletion<br>IPSecCreateSa<br>IPSecDetermineSaMatchInbound<br>IPSecDetermineSaMatchOutbound<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecDoCommonPerPacketInitOutboundProcessing<br>IPSecFindDuplicateInboundLarvalSA<br>IPSecFindDuplicateOutboundSA<br>IPSecFireDiagEvent<br>IPSecForwardInboundTunnelFilterCalloutClassifyV4<br>IPSecForwardInboundTunnelFilterCalloutClassifyV6<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV4<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV6<br>IPSecGetFilterEnumHandle<br>IPSecGetTunnelInfoFromIPInformation<br>IPSecInboundTransportFilterCalloutClassifyV4<br>IPSecInboundTransportFilterCalloutClassifyV6<br>IPSecInboundTunnelFilterCalloutClassifyCommon<br>IPSecInboundTunnelFilterCalloutClassifyV4<br>IPSecInboundTunnelFilterCalloutClassifyV6<br>IPSecInitiateTransportKeying<br>IPSecInitiateTunnelKeying<br>IPSecInitiatorNegotiateSa<br>IPSecIsOnlyActiveIPsec<br>IPSecNsProcessInboundSecurePacket<br>IPSecNsProcessInboundSecurePacketIcmpError<br>IPSecNsProcessOutboundSecurePacketIcmpError<br>IPSecNsProcessOutboundSecurePacketList<br>IPSecOutboundTransportFilterCalloutClassifyV4<br>IPSecOutboundTransportFilterCalloutClassifyV6<br>IPSecOutboundTunnelFilterCalloutClassifyCommon<br>IPSecOutboundTunnelFilterCalloutClassifyV4<br>IPSecOutboundTunnelFilterCalloutClassifyV6<br>IPSecProcessAsyncPendComplete<br>IPSecProcessAsyncUpcallNotifySaNegotiation<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecRekeySa<br>IPSecResponderCreateSPIHndlr<br>IPSecResponderNegotiateSa<br>IPSecSACommonHashLookupComparisonCallback<br>IPSecSetAleIPSecOutboundSecIdentityState<br>IPSecUpdateOffloadStatus<br>IPSecValidateNLInfoOnInboundTransportModePacket<br>IPSecValidatePeerIdentitityOnInboundTransportModePacket<br>IPsecComparePeerImpTokens<br>IPsecFwdStateLogClosed<br>IPsecFwdStateLogNew<br>IPsecGetDontFragmentSettingOnFwdPath<br>IPsecGetSpiFromIPsecHeader<br>IPsecHandleSALookupFailure<br>IPsecInboundAcceptAuthorizeCalloutProcessSecurityRealmId<br>IPsecInsertIPHeader<br>IPsecParseFwdPktIcmp<br>IPsecParseFwdPktTcp<br>IPsecReceiveSecureNbl<br>IPsecRestoreTransProtoForInboundPkt<br>IPsecToggleFragGrouping<br>IPsecTransformClearTextPacket<br>Icmpv4ReceiveControlMessage<br>Icmpv4ReceiveDatagrams<br>Icmpv4pHandleError<br>Icmpv6ReceiveControlMessage<br>Icmpv6ReceiveDatagrams<br>Icmpv6pHandleEchoRequest<br>Icmpv6pHandleError<br>IdpCalloutInit<br>IdpFireDiagEvent<br>IdpProcessInboundUdpPacket<br>IdpProcessOutboundUdpPacket<br>IgmpReceiveDatagrams<br>IndicateAleSuccessAudit<br>IndicateDropAudit<br>IndicateVetoAudit<br>InetAcquireSpecificPortUnderLock<br>InetAcquireWildcardPortUnderLock<br>InetCreatePortPool<br>InetDeletePortPool<br>InetFastSendDatagramsOnPathAf<br>InetFastSendDatagramsOnPathAf_scrap<br>InetInspectAcceptComplete<br>InetInspectAcquirePort<br>InetInspectBindEndpointRequest<br>InetInspectConnectComplete<br>InetInspectCreateEndpoint<br>InetInspectListen<br>InetInspectOffload<br>InetInspectRaw<br>InetInspectReceiveControlMessage<br>InetInspectReceiveDatagram<br>InetInspectReceiveTcpDatagram<br>InetInspectRemoteDisconnect<br>InetInspectRespondDatagram<br>InetInspectSocketOption<br>InetLogPacketDrop<br>InetPortPoolInitializeInformationObjects<br>InetReleasePortReservationsByKey<br>InetSendDatagramsOnPathAf<br>InetSetAllPortPoolExParameters<br>InetSetAllPortPoolParameters<br>InetSetPathBHConfirmationAf<br>InetSetPathConnectionFailedAf<br>InetSetPathInfoRttAf<br>InetSetSockAddr<br>InetTraceBasicDataCore<br>InetTraceConfigDataCore<br>InetTraceConnectionDataCore<br>InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>InternalGetIfEntry2Ex<br>InternalGetIpInterfaceEntry<br>IpAttachIpsClient<br>IpEnumerateAllInterfaces<br>IpEnumerateAllNeighbors<br>IpFlcAddSubInterface<br>IpFlcReturnNetworkAddressList<br>IpFlcUpdateInterface<br>IpGetAllCompartmentParameters<br>IpGetAllInterfaceHopParameters<br>IpGetAllInterfaceParameters<br>IpGetAllNeighborParameters<br>IpGetAllResolveNeighborParameters<br>IpGetAllRouteParameters<br>IpGetAllSitePrefixParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderQueryAddressInformation<br>IpIsPacketFragmentGrouped<br>IpNlpSetSessionInfo<br>IpSecAhCompleteInbound<br>IpSecAhCompleteOutbound<br>IpSecAhProcessAuthenticationData<br>IpSecEspAuthCompleteInbound<br>IpSecEspAuthInbound<br>IpSecEspCompleteOutbound<br>IpSecEspDecryptCompleteInbound<br>IpSecEspDecryptInbound<br>IpSecEspInitInbound<br>IpSecEspInitOutbound<br>IpSecEspProcessOutbound<br>IpSecGetSessionInformation<br>IpSecOutboundPktTunnelProcessingCommon<br>IpSecTlPacketsInProcessing<br>IpSecTlPacketsOutProcessing<br>IpSetAllDisconnectInterfaceParameters<br>IpSetAllNeighborParameters<br>IppAddAuthenticationHeader<br>IppAddEspHeader<br>IppAddOrDeletePersistentRoutes<br>IppAddressSetTimeout<br>IppAhProcessPacket<br>IppAllocateAndCopyHeaderIncludeHeader<br>IppAuthenticateAuthenticationHeader<br>IppAuthenticatePacket<br>IppClearWolContext<br>IppCommitSetAllInterfaceParameters<br>IppComputeIcmpPayloadSize<br>IppConfigureIscsiAddress<br>IppConfigureIscsiTargetAndDefaultRoutes<br>IppCreateLocalTemporaryAddress<br>IppCreateSortedAddressPairs<br>IppDadAnnouncementTimeout<br>IppDadComplete<br>IppDadLogEvent<br>IppDetectGatewayReachability<br>IppDisconnectInterface<br>IppEnumerateAllAddresses<br>IppEnumerateInterfaceAddresses<br>IppEphemeralLoopbackAddressSetTimeout<br>IppEspProcessPacket<br>IppEvaluateSortInformation<br>IppFillSortingElement<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindInterfaceForThread<br>IppFindLinkLocalUnicastAddress<br>IppFindNextHopAtDpc<br>IppFindNextHopAtDpcForForwarding<br>IppFindNextHopInFwdCacheOrRouteTable<br>IppFindOrCreateCompartmentByIdEx<br>IppFragmentPackets<br>IppGarbageCollectLoopbackAddressSet<br>IppGetAddressesFromRoute<br>IppGetAllBestRouteParameters<br>IppGetAllLocalAddressParameters<br>IppGetAllUnicastAddressesOnHost<br>IppGetBasicHeaderLength<br>IppGetHostRouteRW<br>IppGetMillisecondsFromMidnight<br>IppGetNextAddress<br>IppGetNextCompartment<br>IppHandleNeighborAdvertisement<br>IppHandleWolContextEviction<br>IppIndicateArpPacketsToIpsServiceChain<br>IppIndicatePacketsToIpsServiceChain<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInitializeProtocolSettings<br>IppInjectIpsPackets<br>IppInspectBuildHeaders<br>IppInspectInjectRawSend<br>IppInspectLocalDatagramsIn<br>IppInspectLocalDatagramsOut<br>IppInspectLocalPacketsIn<br>IppInspectLocalPacketsOut<br>IppInspectOutboundNetworkConnection<br>IppInspectQueryRealNextHopInterfaceInternal<br>IppInterfaceBwQueryParameters<br>IppIpsFindNextHopWithRestrictions<br>IppIpsL3ForwardNbl<br>IppIsCompartmentAccessibleByThread<br>IppIsErrorPacket<br>IppIsUdpEspPacket<br>IppJoinPath<br>IppLbIndicatePacketsToIpsServiceChain<br>IppLogHwUsoFailure<br>IppLogMediaSenseEvent<br>IppLogPacketDiscard<br>IppLogPbrFailure<br>IppLogRouteBlockedEvent<br>IppLogRouteChangeEvents<br>IppLogRouteDgdStateChange<br>IppLogRouteLookupEvent<br>IppLogRouteNotificationEvent<br>IppLogRouteSelectionEvent<br>IppLogSourceConstraint<br>IppLogSrcAddrLookupEvent<br>IppLogStandbyTransitionAdjustment<br>IppLoopbackEnqueue<br>IppNeighborSetTimeout<br>IppNotifyAddressChange<br>IppNotifyAddressChangeAtPassive<br>IppNotifyNeighborChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPacketizeDatagrams<br>IppParseTransProtocolAndPorts<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPktMonRegisterInterface<br>IppProcessInternetConnectivityFlags<br>IppProcessMulticastDiscoveryQuery<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppProcessPhysicalInterfaceRequest<br>IppProcessRawData<br>IppProtocolNeighborRundown<br>IppProtocolRouteRundown<br>IppRandomizeIdentifier<br>IppReceiveAhControl<br>IppReceiveAuthenticationHeader<br>IppReceiveEspNbl<br>IppReceivePackets<br>IppReceiveUdpEspInternal<br>IppReconnectAddresses<br>IppRefreshRouteLifetimes<br>IppRegQueryDwordValue<br>IppRegenerateLinkLayerSuffixAddresses<br>IppResetAllMulticastGroups<br>IppReverseGenericAddressArray<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetOffloadEncapsulation<br>IppSetOffloadEncapsulationAtPassive<br>IppSetWolContext<br>IppSetWolParametersWorker<br>IppStartProtocolManager<br>IppStopLinkLocalAddressConfiguration<br>IppTraceAddressChangeNotificationEvent<br>IppTraceDadStateChangeEvent<br>IppTraceDisconnectInterface<br>IppTraceNeighborChangeNotificationEvent<br>IppTraceNeighborDiscovery<br>IppTraceNeighborReset<br>IppTraceNeighborState<br>IppTraceNsUnderDs<br>IppTraceSortedAddressPairs<br>IppTraceWolAddress<br>IppTraceWolContext<br>IppTransformIPsecPacket<br>IppUnAddressInterfaceUnderLock<br>IppUpdateAutoConfiguredRoute<br>IppUpdateBestSourceAddress<br>IppUpdateOnLinkRouteForAddress<br>IppUpdatePathNotificationAtPassiveLevel<br>IppUpdateRoutesWithLocalAddressAsNextHopUnderLock<br>IppUpdateWolForAllAddresses<br>IppUpdateZoneIndices<br>IppValidateSetAllRouteParameters<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbProcessLoopbackPacketChain<br>IpsecPktMonClientNblDrop<br>IpsecReportPacketDropToPktMon<br>Ipv4EnumerateAllPaths<br>Ipv4ProcessOptionsHelper<br>Ipv4ReloadRegistryConfig<br>Ipv4pAddressInterface<br>Ipv4pConfigureIscsiAddress<br>Ipv4pConfigureIscsiInterface<br>Ipv4pDeferredAuthenticateIpv4Header<br>Ipv4pFragmentPacketHelper<br>Ipv4pHandleRedirect<br>Ipv4pInitializeSubInterface<br>Ipv4pReceiveRoutingHeader<br>Ipv4pSkipNetworkLayerHeaders<br>Ipv4pUpdateDefaultGateway<br>Ipv6EnumerateAllPaths<br>Ipv6ReloadRegistryConfig<br>Ipv6pAddHopByHopOptionsHeader<br>Ipv6pAddLinkLayerSuffixAddresses<br>Ipv6pAddressInterface<br>Ipv6pAuthenticateRoutingHeader<br>Ipv6pConfigureIscsiInterface<br>Ipv6pCreatePublicAddress<br>Ipv6pDeferredAuthenticateIpv6Header<br>Ipv6pEnumRoutesAndAddPrefixBasedAddresses<br>Ipv6pFindAndReleaseSolicitedNodeGroup<br>Ipv6pFindOrCreateSolicitedNodeGroup<br>Ipv6pFragmentPacketHelper<br>Ipv6pGenerateLinkLayerSuffixAddress<br>Ipv6pHandleMldQuery<br>Ipv6pHandleMldReport<br>Ipv6pHandleNeighborAdvertisement<br>Ipv6pHandleNeighborSolicitation<br>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pInitializeSubInterface<br>Ipv6pJoinGroupAtMultipleScopes<br>Ipv6pLeaveGroupAtMultipleScopes<br>Ipv6pProcessOptions<br>Ipv6pReceiveRoutingHeader<br>Ipv6pResetAutoConfiguredAddresses<br>Ipv6pRouterDiscoveryTimeout<br>Ipv6pSendNeighborSolicitation<br>Ipv6pSendRedirectHelper<br>Ipv6pSkipNetworkLayerHeaders<br>Ipv6pStartAddressManager<br>Ipv6pUpdateAutoConfiguredAddressesUnderLock<br>Ipv6pUpdateDNSSL<br>Ipv6pUpdateRDNSS<br>Ipv6pUpdateSitePrefix<br>IsICMPError<br>IsLayerBypassAllowed<br>IsRemoteAddressSet<br>IsReusableAssignment<br>IsSystemRunningAsVailGuest<br>KfdDriverEntry<br>LedbatCumulativeAck<br>LedbatEtwEvent<br>LedbatRttSample<br>LogEtwIcmpDrop<br>LogEtwIcmpMessage<br>LogIcmpPktmonDrop<br>LookUpTableFlushComplete<br>LruCleanupDpcRoutine<br>McTemplateK0_EtwWriteTransfer<br>McTemplateK0dd_EtwWriteTransfer<br>McTemplateK0hhhhhhq_EtwWriteTransfer<br>McTemplateK0hhhhq_EtwWriteTransfer<br>McTemplateK0hhhhz_EtwWriteTransfer<br>McTemplateK0p_EtwWriteTransfer<br>McTemplateK0phhq_EtwWriteTransfer<br>McTemplateK0phqp_EtwWriteTransfer<br>McTemplateK0phqq_EtwWriteTransfer<br>McTemplateK0pp_EtwWriteTransfer<br>McTemplateK0ppp_EtwWriteTransfer<br>McTemplateK0pppppxq_EtwWriteTransfer<br>McTemplateK0ppppqpqqqq_EtwWriteTransfer<br>McTemplateK0ppppqqqqpp_EtwWriteTransfer<br>McTemplateK0pppqpqxpq_EtwWriteTransfer<br>McTemplateK0pppqq_EtwWriteTransfer<br>McTemplateK0pppqqdqd_EtwWriteTransfer<br>McTemplateK0pppqqdqdq_EtwWriteTransfer<br>McTemplateK0pppqqdqdxq_EtwWriteTransfer<br>McTemplateK0ppq_EtwWriteTransfer<br>McTemplateK0ppqbr2qbr4qqppq_EtwWriteTransfer<br>McTemplateK0ppqq_EtwWriteTransfer<br>McTemplateK0ppqqj_EtwWriteTransfer<br>McTemplateK0ppqqppq_EtwWriteTransfer<br>McTemplateK0ppqqq_EtwWriteTransfer<br>McTemplateK0ppqqqqbr5br5br5_EtwWriteTransfer<br>McTemplateK0ppqqqqq_EtwWriteTransfer<br>McTemplateK0ppxppq_EtwWriteTransfer<br>McTemplateK0ppxqp_EtwWriteTransfer<br>McTemplateK0pq_EtwWriteTransfer<br>McTemplateK0pqbr1p_EtwWriteTransfer<br>McTemplateK0pqbr1q_EtwWriteTransfer<br>McTemplateK0pqbr1qbr3q_EtwWriteTransfer<br>McTemplateK0pqbr1qbr3qq_EtwWriteTransfer<br>McTemplateK0pqbr1qbr3qqxqq_EtwWriteTransfer<br>McTemplateK0pqbr1qqqqx_EtwWriteTransfer<br>McTemplateK0pqhhhq_EtwWriteTransfer<br>McTemplateK0pqp_EtwWriteTransfer<br>McTemplateK0pqpppppppp_EtwWriteTransfer<br>McTemplateK0pqpq_EtwWriteTransfer<br>McTemplateK0pqpqq_EtwWriteTransfer<br>McTemplateK0pqpqqp_EtwWriteTransfer<br>McTemplateK0pqpxhp_EtwWriteTransfer<br>McTemplateK0pqq_EtwWriteTransfer<br>McTemplateK0pqqbr1qh_EtwWriteTransfer<br>McTemplateK0pqqbr2qbr4qq_EtwWriteTransfer<br>McTemplateK0pqqbr2qq_EtwWriteTransfer<br>McTemplateK0pqqp_EtwWriteTransfer<br>McTemplateK0pqqppdd_EtwWriteTransfer<br>McTemplateK0pqqppddqxq_EtwWriteTransfer<br>McTemplateK0pqqppq_EtwWriteTransfer<br>McTemplateK0pqqpqquqhqq_EtwWriteTransfer<br>McTemplateK0pqqpxxxqqqqq_EtwWriteTransfer<br>McTemplateK0pqqq_EtwWriteTransfer<br>McTemplateK0pqqqbr3_EtwWriteTransfer<br>McTemplateK0pqqqbr3br3q_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5q_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5qx_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5qxxqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqpxhp_EtwWriteTransfer<br>McTemplateK0pqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqbr4qbr6_EtwWriteTransfer<br>McTemplateK0pqqqqhhqd_EtwWriteTransfer<br>McTemplateK0pqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqbr5qbr7qqq_EtwWriteTransfer<br>McTemplateK0pqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqbr5qqbr5hh_EtwWriteTransfer<br>McTemplateK0pqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqiqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqqqqqqqqqbr17qbr19_EtwWriteTransfer<br>McTemplateK0pqqqqqqu_EtwWriteTransfer<br>McTemplateK0pqqqquxxqxqqqu_EtwWriteTransfer<br>McTemplateK0pqqqqx_EtwWriteTransfer<br>McTemplateK0pqqqqxqq_EtwWriteTransfer<br>McTemplateK0pqqqxx_EtwWriteTransfer<br>McTemplateK0pqqu_EtwWriteTransfer<br>McTemplateK0pqqxq_EtwWriteTransfer<br>McTemplateK0pqqz_EtwWriteTransfer<br>McTemplateK0pqqzq_EtwWriteTransfer<br>McTemplateK0pqxqq_EtwWriteTransfer<br>McTemplateK0pqxqqqqq_EtwWriteTransfer<br>McTemplateK0pqz_EtwWriteTransfer<br>McTemplateK0pqzx_EtwWriteTransfer<br>McTemplateK0pxxx_EtwWriteTransfer<br>McTemplateK0pxxxxxxqqqqqqqqqqqqxqqxqqxxqqqqqqqqbr34qbr36qqqqqqqt_EtwWriteTransfer<br>McTemplateK0pzqq_EtwWriteTransfer<br>McTemplateK0pzqqp_EtwWriteTransfer<br>McTemplateK0pzqqq_EtwWriteTransfer<br>McTemplateK0pzqqqpxxxqqqqq_EtwWriteTransfer<br>McTemplateK0q_EtwWriteTransfer<br>McTemplateK0qbr0br0br0br0qsqqq_EtwWriteTransfer<br>McTemplateK0qbr0br0br0qqqq_EtwWriteTransfer<br>McTemplateK0qbr0br0qqqbr0_EtwWriteTransfer<br>McTemplateK0qbr0br0xx_EtwWriteTransfer<br>McTemplateK0qbr0br0xxqh_EtwWriteTransfer<br>McTemplateK0qbr0q_EtwWriteTransfer<br>McTemplateK0qbr0qbr2ppzq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2q_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqpx_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqpxq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqpxt_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqqqq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqqqqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqxqq_EtwWriteTransfer<br>McTemplateK0qbr0qp_EtwWriteTransfer<br>McTemplateK0qbr0qpqx_EtwWriteTransfer<br>McTemplateK0qbr0qqqq_EtwWriteTransfer<br>McTemplateK0qbr0qqqqq_EtwWriteTransfer<br>McTemplateK0qbr0qqqqx_EtwWriteTransfer<br>McTemplateK0qbr0qqsqqqq_EtwWriteTransfer<br>McTemplateK0qh_EtwWriteTransfer<br>McTemplateK0qhq_EtwWriteTransfer<br>McTemplateK0qhqqq_EtwWriteTransfer<br>McTemplateK0qhqxqbr4_EtwWriteTransfer<br>McTemplateK0qjqqbr3br3qqquttttt_EtwWriteTransfer<br>McTemplateK0qpq_EtwWriteTransfer<br>McTemplateK0qpqbr2qbr4qqqx_EtwWriteTransfer<br>McTemplateK0qpqq_EtwWriteTransfer<br>McTemplateK0qpxx_EtwWriteTransfer<br>McTemplateK0qq_EtwWriteTransfer<br>McTemplateK0qqbr1_EtwWriteTransfer<br>McTemplateK0qqbr1br1qq_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqhhhqx_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqq_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqqq_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqquu_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3quuqbr8qbr10xqq_EtwWriteTransfer<br>McTemplateK0qqbr1qq_EtwWriteTransfer<br>McTemplateK0qqbr1qqbr4qbr6qqqqq_EtwWriteTransfer<br>McTemplateK0qqbr1qqbr4qbr6qqqqqbr12qbr14qqqq_EtwWriteTransfer<br>McTemplateK0qqbr1qqbr4xqq_EtwWriteTransfer<br>McTemplateK0qqbr1qqq_EtwWriteTransfer<br>McTemplateK0qqd_EtwWriteTransfer<br>McTemplateK0qqhhx_EtwWriteTransfer<br>McTemplateK0qqq_EtwWriteTransfer<br>McTemplateK0qqqbr1br1br1qqq_EtwWriteTransfer<br>McTemplateK0qqqbr2_EtwWriteTransfer<br>McTemplateK0qqqbr2qbr4qq_EtwWriteTransfer<br>McTemplateK0qqqbr2qbr4qqqq_EtwWriteTransfer<br>McTemplateK0qqqbr2qqbr5qqqxxxq_EtwWriteTransfer<br>McTemplateK0qqqhxxqqbr7_EtwWriteTransfer<br>McTemplateK0qqqp_EtwWriteTransfer<br>McTemplateK0qqqq_EtwWriteTransfer<br>McTemplateK0qqqqbr3br3_EtwWriteTransfer<br>McTemplateK0qqqqbr3q_EtwWriteTransfer<br>McTemplateK0qqqqbr3qbr5qq_EtwWriteTransfer<br>McTemplateK0qqqqbr3qbr5sq_EtwWriteTransfer<br>McTemplateK0qqqqbr3qq_EtwWriteTransfer<br>McTemplateK0qqqqhhx_EtwWriteTransfer<br>McTemplateK0qqqqq_EtwWriteTransfer<br>McTemplateK0qqqqqbr3br4_EtwWriteTransfer<br>McTemplateK0qqqqqbr3br4qq_EtwWriteTransfer<br>McTemplateK0qqqqqbr4br4_EtwWriteTransfer<br>McTemplateK0qqqqqbr4qbr6qqqqbr11qbr13qqp_EtwWriteTransfer<br>McTemplateK0qqqqqiq_EtwWriteTransfer<br>McTemplateK0qqqqqq_EtwWriteTransfer<br>McTemplateK0qqqqqqbr5qbr7_EtwWriteTransfer<br>McTemplateK0qqqqqqj_EtwWriteTransfer<br>McTemplateK0qqqqqqqqbr7qbr9_EtwWriteTransfer<br>McTemplateK0qqqqqqqqbr7qbr9q_EtwWriteTransfer<br>McTemplateK0qqqqqqqqqbr7qqqq_EtwWriteTransfer<br>McTemplateK0qqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0qqqqx_EtwWriteTransfer<br>McTemplateK0qqqu_EtwWriteTransfer<br>McTemplateK0qqqxxqqq_EtwWriteTransfer<br>McTemplateK0qqqxxqqqqq_EtwWriteTransfer<br>McTemplateK0qqqz_EtwWriteTransfer<br>McTemplateK0qqqzqqqqqqq_EtwWriteTransfer<br>McTemplateK0qqsqqbr3q_EtwWriteTransfer<br>McTemplateK0qqsqqqbr3br4qqq_EtwWriteTransfer<br>McTemplateK0qqxjqqqq_EtwWriteTransfer<br>McTemplateK0qqxq_EtwWriteTransfer<br>McTemplateK0qqxxq_EtwWriteTransfer<br>McTemplateK0qqxxqqq_EtwWriteTransfer<br>McTemplateK0qqzqqqq_EtwWriteTransfer<br>McTemplateK0qsq_EtwWriteTransfer<br>McTemplateK0qsqqbr2qqqqqqqqjq_EtwWriteTransfer<br>McTemplateK0qsqqbr3qqbr5qq_EtwWriteTransfer<br>McTemplateK0qsqqbr3qqbr5qqqq_EtwWriteTransfer<br>McTemplateK0qsqqbr3qqbr6qqqqqqqqq_EtwWriteTransfer<br>McTemplateK0qsqqqq_EtwWriteTransfer<br>McTemplateK0quu_EtwWriteTransfer<br>McTemplateK0quuuuuuuuqqqqquuqq_EtwWriteTransfer<br>McTemplateK0qxqqqbr4qqxqqqqxqqq_EtwWriteTransfer<br>McTemplateK0qxqqqbr4qqxxq_EtwWriteTransfer<br>McTemplateK0qxqqqqqbr6qqqqzq_EtwWriteTransfer<br>McTemplateK0qz_EtwWriteTransfer<br>McTemplateK0qzq_EtwWriteTransfer<br>McTemplateK0qzz_EtwWriteTransfer<br>McTemplateK0s_EtwWriteTransfer<br>McTemplateK0sqbr1br1qqqqqbr1q_EtwWriteTransfer<br>McTemplateK0xqbr1qqqp_EtwWriteTransfer<br>McTemplateK0xqjqqqqxq_EtwWriteTransfer<br>McTemplateK0xqqqq_EtwWriteTransfer<br>McTemplateK0xqqqqq_EtwWriteTransfer<br>McTemplateK0xxxx_EtwWriteTransfer<br>McTemplateK0xzqbr2br2qbr5br5qhh_EtwWriteTransfer<br>McTemplateK0xzqbr2br2qqqhh_EtwWriteTransfer<br>McTemplateK0z_EtwWriteTransfer<br>McTemplateK0zq_EtwWriteTransfer<br>McTemplateK0zqqqqq_EtwWriteTransfer<br>McTemplateK0zqqqqqqq_EtwWriteTransfer<br>MicrosoftTelemetryAssertTriggeredWorker<br>NdkpiAccept<br>NdkpiAcceptEx<br>NdkpiArmCq<br>NdkpiBind<br>NdkpiBuildLAM<br>NdkpiCloseConnector<br>NdkpiCloseCq<br>NdkpiCloseListener<br>NdkpiCloseMr<br>NdkpiCloseMw<br>NdkpiClosePd<br>NdkpiCloseQp<br>NdkpiCloseSharedEndpoint<br>NdkpiCloseSrq<br>NdkpiCompleteConnect<br>NdkpiCompleteConnectEx<br>NdkpiConnect<br>NdkpiConnectEventCallback<br>NdkpiConnectWithSharedEndpoint<br>NdkpiControlCqInterruptModeration<br>NdkpiCqNotificationCallback<br>NdkpiCreateConnector<br>NdkpiCreateCq<br>NdkpiCreateListener<br>NdkpiCreateMr<br>NdkpiCreateMw<br>NdkpiCreatePd<br>NdkpiCreateQp<br>NdkpiCreateQpWithSrq<br>NdkpiCreateSharedEndpoint<br>NdkpiCreateSrq<br>NdkpiDeregisterMr<br>NdkpiDisconnect<br>NdkpiDisconnectEventCallback<br>NdkpiDisconnectEventCallbackEx<br>NdkpiFastRegister<br>NdkpiFlush<br>NdkpiGetConnectionData<br>NdkpiGetCqResults<br>NdkpiGetCqResultsEx<br>NdkpiGetListenerLocalAddress<br>NdkpiGetLocalAddress<br>NdkpiGetLocalTokenFromMr<br>NdkpiGetPeerAddress<br>NdkpiGetPrivilegedMemoryRegionToken<br>NdkpiGetRemoteTokenFromMr<br>NdkpiGetRemoteTokenFromMw<br>NdkpiGetSharedEndpointLocalAddress<br>NdkpiInitializeFastRegisterMr<br>NdkpiInvalidate<br>NdkpiListen<br>NdkpiModifySrq<br>NdkpiRead<br>NdkpiReceive<br>NdkpiRegisterMr<br>NdkpiReject<br>NdkpiReleaseLAM<br>NdkpiResizeCq<br>NdkpiSend<br>NdkpiSendAndInvalidate<br>NdkpiSrqNotificationCallback<br>NdkpiSrqReceive<br>NdkpiWrite<br>NetioAddressChangeCallBack<br>NetioHistogramUpload<br>NetioInterfaceChangeCallBack<br>NlShimFwLayerDirectClassify<br>NlShimMarshalFwLayerFields<br>OlmIncrementRscConnectionCount<br>OlmNotifyRscIncompatibleCallout<br>OlmQuerySegmentationOffloadSupport<br>OlmQuerySetRscCapabilities<br>OlmTcpRscGetAllStats<br>OlmWorkQueueRoutine<br>PktMonClientHeaderInfoDropWithContext<br>PktMonClientNblDrop<br>ProcessIcmpErrorClassify<br>ProcessInboundTransportLayerClassify<br>ProcessOutTransportStackIndicationFast<br>ProcessOutboundTransportLayerClassify<br>ProcessRedirectLayerForNonNativeTCP<br>QueryAttributes<br>RLedbatDataReceive<br>RLedbatEtwEvent<br>RLedbatUpdateDelaySample<br>RawBindEndpoint<br>RawBindEndpointInspectComplete<br>RawBindEndpointRequestInspectComplete<br>RawCloseEndpoint<br>RawCreateEndpoint<br>RawCreateEndpointWorkQueueRoutine<br>RawCreateMessageIndication<br>RawDeliverDatagrams<br>RawGetSockOptEndpoint<br>RawLogPacketDiscard<br>RawReceiveDatagrams<br>RawReceiveFilterUnderprivilegedDatagram<br>RawSendFilterUnderprivilegedMessages<br>RawSendMessages<br>RawSendMessagesOnPathCreation<br>RawSetSockOptEndpoint<br>RawStartNetworkModule<br>RetrieveICMPInformation<br>RssControlAddInterface<br>RssControlDeleteInterface<br>RssCreateAdapter<br>RssFindOrCreateAdapter<br>RssHashAccessCheck<br>RssQueryInterfacePortInformation<br>RssQueryPortIndex<br>RssQueryPortRssInfo<br>RssRefreshLinkState<br>RssRefreshPortPresence<br>RssRemoveAdapterFromBindingAndDereference<br>RssRundown<br>RssTraceAdapterActivityStart<br>RssTraceAdapterActivityStop<br>RssTraceBindingActivityStart<br>RssTraceBindingActivityStop<br>RssUpdateAdapter<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtGetTcpDataOffset<br>SelectPortFromRange<br>ShimIndicateDiscard<br>ShimIpDiscardV4<br>ShimIpDiscardV6<br>ShimIpForwardDiscard<br>ShimIpFragmentInV4<br>ShimIpFragmentInV6<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>TcpAbortTcb<br>TcpAbortTcbComplete<br>TcpAcceptFin<br>TcpAcquireAndInspectWildcardPort<br>TcpAfRundown<br>TcpApplySynOptionsToTcb<br>TcpBeginProbeTcbSend<br>TcpBeginTcbSend<br>TcpBindEndpointInspectComplete<br>TcpBindEndpointRequestInspectComplete<br>TcpBindEndpointWorkQueueRoutine<br>TcpBwUpdateEre<br>TcpCheckAndPlumbWakePattern<br>TcpCheckAndThrottleInitialCwndTcb<br>TcpCleanupEndpointWorkQueueRoutine<br>TcpCleanupSynTcb<br>TcpCloseEndpoint<br>TcpCloseEndpointWorkQueueRoutine<br>TcpCloseListenerWorkQueueRoutine<br>TcpCloseTcb<br>TcpCloseTcbWorkQueueRoutine<br>TcpCompleteClientReceiveRequest<br>TcpCompleteTcbSend<br>TcpComputeMssOption<br>TcpComputeRtoTcbSend<br>TcpComputeSynRcvdLimit<br>TcpConnectTimeout<br>TcpConnectionRundown<br>TcpContinueCreateAndConnect<br>TcpCovetNetBufferList<br>TcpCreateAndAcceptTcb<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateAndConnectTcb<br>TcpCreateAndConnectTcbInspectConnectComplete<br>TcpCreateAndConnectTcbInspectConnectRequestComplete<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>TcpCreateEndpoint<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateListener<br>TcpCreateListenerInspectComplete<br>TcpCreateListenerWorkQueueRoutine<br>TcpCreateSynTcb<br>TcpCreateTimeWaitTcb<br>TcpDelayOrScheduleAck<br>TcpDeliverDataToClient<br>TcpDeliverFinToClient<br>TcpDeliverInput<br>TcpDeliverReceive<br>TcpDeplumbWakePattern<br>TcpDequeueTcbInput<br>TcpDequeueTcbSend<br>TcpDiscardReceive<br>TcpDisconnectTcb<br>TcpDisconnectTcbComplete<br>TcpDisconnectTcbInspectComplete<br>TcpDisconnectTimeout<br>TcpEndProbeTcbSend<br>TcpEnqueueTcbSend<br>TcpEnterLossRecovery<br>TcpExitBHModeDuetoAckRcved<br>TcpExitBHModeDuetoTimeout<br>TcpFastRetransmitTcbSend<br>TcpFinishDeferredPortSelection<br>TcpFlushDelay<br>TcpFlushTcbDelivery<br>TcpGenerateFastopenCookie<br>TcpGetSockOptTcb<br>TcpGetTcbConnectionObject<br>TcpHandleServerSideFastopenOption<br>TcpHistogramIncrement<br>TcpIndicateData<br>TcpInitializeHashFunctionState<br>TcpInitializeNsiObject<br>TcpInitializeRttEstimateTcb<br>TcpInitializeTemplates<br>TcpInjectFin<br>TcpInjectReceive<br>TcpInsertTcb<br>TcpInspectBindEndpoint<br>TcpInspectCompleteTcbSend<br>TcpInspectConnectionOnListener<br>TcpInspectListenerReceive<br>TcpInspectListenerRedirect<br>TcpInspectReceive<br>TcpIoControlTcb<br>TcpIsCoalescedPatternRequired<br>TcpKeepAliveTimeout<br>TcpLimitedTransmitTcbSend<br>TcpListenerAbortPendingConnections<br>TcpListenerReceive<br>TcpLogPacketDiscard<br>TcpMatchReceive<br>TcpMppNppEvaluationHelper<br>TcpOlmInterfaceRundown<br>TcpOptionsForSynSend<br>TcpPlumbWakePattern<br>TcpPortReservationWorkQueueRoutine<br>TcpProcessExpiredTcbTimers<br>TcpProcessFastDatagramBatch<br>TcpPtoTimeout<br>TcpPushRequestReceive<br>TcpRackTimeout<br>TcpRcvBufTuningOnBytesDelivered<br>TcpReceiveSack<br>TcpRecentFailureTrace<br>TcpRemoveTcbTuple<br>TcpRemoveTimewaitTcbTuple<br>TcpRepartitionState<br>TcpRequestReceive<br>TcpResolveConnectRequestToPathAndAf<br>TcpResolveConnectRequestToPorts<br>TcpRetransmitTimeout<br>TcpRtoTimeout<br>TcpSackRetransmitTcbSend<br>TcpSatisfyReceiveRequests<br>TcpSelectWildcardPort<br>TcpSendDatagramsComplete<br>TcpSendTrackerAck<br>TcpSendTrackerDetectLoss<br>TcpSendTrackerMarkTransmits<br>TcpSendTrackerUpdateReoWnd<br>TcpSetFastopenPathInfoTcb<br>TcpSetSockOptEndpoint<br>TcpSetSockOptListener<br>TcpSetSockOptTcb<br>TcpSetTcbConnectionObject<br>TcpShutdownTcb<br>TcpStartInetModule<br>TcpStartSecurityModule<br>TcpStartTimerTcbInternal<br>TcpStopTimerTcbInternal<br>TcpSwsTimeout<br>TcpSystemAbortTcb<br>TcpTcbAcceptDatagram<br>TcpTcbCarefulDatagram<br>TcpTcbChangeCongestionState<br>TcpTcbChangeFastopenState<br>TcpTcbFastDatagram<br>TcpTcbHeaderSend<br>TcpTcbIncreaseDupAckCount<br>TcpTcbIssueOrCancelPathBwEstimation<br>TcpTcbKeepAliveSend<br>TcpTcbProcessCarefulCumulativeAck<br>TcpTcbProcessNotificationChannelSetupRequest<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbProcessNotificationChannelUnmarkRequest<br>TcpTcbQueryIpsecMtuAndRetransmit<br>TcpTcbReassemblyCheckConflicts<br>TcpTcbReassemblyInsertSegment<br>TcpTcbReassemblyRateTimeout<br>TcpTcbReceive<br>TcpTcbSend<br>TcpTcbSendDatagramsComplete<br>TcpTcbSetReassembly<br>TcpTcbSignalNotificationChannelEvent<br>TcpTemplatesInit<br>TcpTerminateSpuriousRtoDetection<br>TcpTlEndpointCloseEndpointCalloutRoutine<br>TcpTraceConnectionSummary<br>TcpTryToEnterBHMode<br>TcpTryToIncreaseBacklogTcbSend<br>TcpTryToStartSynOrRstValidation<br>TcpTuneTcbEstats<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUnlinkNcmContext<br>TcpUpdateBacklogTcbSend<br>TcpUpdateFastopenKey<br>TcpUpdatePathInfoTcb<br>TcpUpdateRtt<br>TcpUpdateTemplateAndCacheTemplateOptions<br>TcpValidateReceive<br>TcpipEtwTransferActivity<br>TcpipGetAppNameFromProcess<br>TcpipHealthTelemetryTimerRoutine<br>TcpipPcwGlobalCallback<br>TcpipPcwGlobalExCallback<br>TcpipPcwPerCpuCallback<br>TcpipPcwTlDropsCallback<br>TcpipTraceActivityIDStart<br>TcpipTraceActivityIDStop<br>TlRdmaProviderOpenNDKAdapter<br>TlShimDirectClassify<br>TlShimGetRedirectRecordForNonTCPEndpoint<br>TlShimMarshalInTransportFields<br>TlShimMarshalOutTransportFields<br>TlShimMarshalStreamPacketLayerFields<br>TlShimOptionalReauthorizeConnection<br>TraceLoggingRegisterEx_EtwRegister_EtwSetInformation<br>TraceVailGuestPortFailure<br>UQoSCreatePolicyInternal<br>UQoSUpdatePolicyInternal<br>UdpBeginDelivery<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpBindEndpointWorkQueueRoutine<br>UdpCheckAndPlumbWakePattern<br>UdpCloseEndpoint<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpCreateEndpoint<br>UdpCreateEndpointWorkQueueRoutine<br>UdpCreateMessageIndication<br>UdpCreateMessageIndications<br>UdpDeliverDatagrams<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEndpointSignalNotificationChannelEvent<br>UdpGetSockOptEndpoint<br>UdpLogPacketDiscard<br>UdpOffloadAddInterface<br>UdpOffloadSendUroOid<br>UdpQueryOffloadSupport<br>UdpReceiveControlMessages<br>UdpReceiveDatagrams<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSegmentMessage<br>UdpSendMessages<br>UdpSendMessagesOnPath<br>UdpSetDestinationEndpoint<br>UdpSetSockOptEndpoint<br>UdpUnlinkNcmContext<br>UrlpIsValidHostName<br>VerifyAccessToExclusion<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleAuditEvent<br>WfpAleAuthHistogramUpload<br>WfpAleAuthLogHistogramDatapointWorkQueueRoutine<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeAcceptComplete<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeConnectComplete<br>WfpAleAuthorizeListen<br>WfpAleAuthorizePromiscuousMode<br>WfpAleAuthorizeRAW<br>WfpAleAuthorizeReceive<br>WfpAleAuthorizeSend<br>WfpAleBfeWatchDogCallback<br>WfpAleCaptureTokenIdByHandle<br>WfpAleCompleteOperation<br>WfpAleConnectCompletionNotification<br>WfpAleFastUdpInspection<br>WfpAleGetCapabilities<br>WfpAleHandleSendCompletion<br>WfpAleInitialize<br>WfpAleInsertRemoteEndpoint<br>WfpAleIsNameIpAddress<br>WfpAleIsSystemSid<br>WfpAleMatchStatefulEndpoint<br>WfpAlePartitionProcessorAddHandler<br>WfpAleProcessSocketOption<br>WfpAleProcessTokenReference<br>WfpAleReauthorizeConnection<br>WfpAleReauthorizePerfCounterIncrement<br>WfpAleValidateISCSIEndPoint<br>WfpAleValidateRemoteAddressAndProxyInRecord<br>WfpAlepAuthorizeAccept<br>WfpAlepAuthorizeConnectCompletion<br>WfpAlepAuthorizeOrClassifyListen<br>WfpAlepAuthorizeOrClassifyPort<br>WfpAlepAuthorizeOrClassifyRaw<br>WfpAlepAuthorizePortByFamily<br>WfpAlepAuthorizePromiscuousMode<br>WfpAlepAuthorizeReceive<br>WfpAlepAuthorizeSend<br>WfpAlepCalloutsRegister<br>WfpAlepCreateTokenFromLogonId<br>WfpAlepDeleteEntryFromTable<br>WfpAlepFlowEstablishedNotification<br>WfpAlepReauthorizeOrReclassifyListen<br>WfpAlepReauthorizeOrReclassifyPort<br>WfpAlepReauthorizeOrReclassifyRaw<br>WfpAlepSecureSocketAddAsync<br>WfpAllowBfeGenericAll<br>WfpCheckForTupleStateOnIcmpError<br>WfpCreateNrptEventSD<br>WfpGetMD5HashBytes<br>WfpGetTLInfoForReceiveOnRawEndpoint<br>WfpGetTransportSpecificTuplePacketHash<br>WfpGetTuplePacketHash<br>WfpInTransportShimV4Discard<br>WfpInTransportShimV6Discard<br>WfpIndicateSendControl<br>WfpInspectReceiveControlShimV4<br>WfpInspectReceiveControlShimV6<br>WfpIpAddressCheckAndAdd<br>WfpIsLayerOffloadPossible<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpNlShimInspectForwardDatagram<br>WfpNlShimInspectvSwitchForwardDatagram<br>WfpPreprocessInboundTransportIndication<br>WfpProcessInTransportStackIndicationFast<br>WfpRegGetUint32Value<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpShimIndicateDiscardGeneral<br>WfpTlShimInspectOutboundNetworkConnection<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfpTlShimInspectStreamPacket<br>WfpTraceActivityIdStart<br>WfpTraceActivityIdStop<br>WfpTransferActivityId<br>WfpV4FireIpsecDiagEventFromNbl<br>WfpV6FireIpsecDiagEventFromNbl<br>WfpVpnCalloutInit<br>__GSHandlerCheckCommon<br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EtwWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByVal<4>,_tlgWrapperByVal<1>,_tlgWrapperByRef<16>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<4>,_tlgWrapperByVal<1>_><br>ndkpiCloseCompletionCore<br>ndkpiCreateCompletionCore<br>ndkpiRequestCompletionCore<br>wil_RtlStagingConfig_QueryFeatureState<br>wil_details_FeatureReporting_ReportUsageToServiceDirect<br>wil_details_PopulateInitialConfiguredFeatureStates<br>wil_details_RecordCachedUsage<br>wil_details_UpdateFeatureConfiguredStates</details>|<details><summary>Expand for full list:<br>AcquirePortReservationWithFlags<br>AleCacheAcceptBypass<br>AleCacheConnectBypass<br>AleInspectAcceptRequest<br>AleInspectBindRequest<br>AleInspectBindRequestComplete<br>AleInspectConnectRequest<br>AleInspectConnectRequestComplete<br>AleInspectConnectRequestProcessLocalAddressRedirection<br>AleInspectTcpDatagram<br>AleNotifyEndpointDeactivate</summary>AleNotifyEndpointTeardown<br>BfeArrayValidate<br>CcmClientInitialize<br>ChangeHystartState<br>CheckAcceptBypass<br>CreateFqbnString<br>CubicCumulativeAck<br>DctcpUpdateEcnAlpha<br>DriverEntry<br>EQoSCheckNLAUsageOverride<br>EQoSCreateQoSFlow<br>EQoSDaclDeviceObject<br>EQoSHiveLoadNotifyRegister<br>EQoSHiveLoadTryPolicyChange<br>EQoSOpenMachinePolicyRootKey<br>EQoSQueryQoSFlowStatistics<br>EQoSpCounterSetCallback<br>EQoSpCreateQoSFlow<br>EQoSpPolicyIPMatch<br>EQoSpPolicyParseIP<br>EQoSpPolicyParseIPPrefix<br>EQoSpPolicyParseUrl<br>EQoSpProcessAppMarkingSettings<br>EQoSpProcessOnePolicy<br>EQoSpProcessTcpAutoTuningSettings<br>EQoSpRegistryQueryRoutineV2<br>EQoSpUpdateTcpNSIProvider<br>EdpWriteLogAndCacheAppInfo<br>EfsRpcInit<br>EnableFlushTimer<br>EtwEx_tidActivityInfo<br>EtwEx_tidActivityInfoTransfer<br>ExitBHMode<br>FUN_14001980c<br>FUN_14002e1d9<br>FUN_14009a39b<br>FUN_1400b4ce0<br>FUN_1400be5b5<br>FUN_14027bfd7<br>FallbackCheck<br>FallbackLoad<br>FallbackUpdate<br>FindPermittedPorts<br>Fl48pReceiveArpPackets<br>Fl6tpTeredoShuntSendPackets<br>Fl8AddGroup<br>Fl8pPCFInitializeInterface<br>Fl8pPCFSetARPFilter<br>Fl8pPCFSetUDPFilter<br>FlAttachFlsClient<br>FlCompartmentChangeNotificationHandler<br>FlEtRegisterCallouts<br>FlIfCreateVirtualInterface<br>FlIfDeleteVirtualInterface<br>FlIfProviderQueryObject<br>FlIfpDeleteInterfaceSubKey<br>FlIfpGenerateVirtualInterfaceAlias<br>FlIfpQueryVirtualInterfaceLuid<br>FlPktMonRegisterInterface<br>FlReceiveNetBufferListChainCalloutRoutine<br>FlSetAllVirtualInterfaceParameters<br>FlStatus<br>FllpEnumerateAndCreateLoopbackInterfaces<br>FlpAddInterfaceComplete<br>FlpCheckAndCoalesceNBLChain<br>FlpChecksumCsoNbl<br>FlpEnableWakeupCapabilities<br>FlpFlsInterceptReceivePackets<br>FlpFlushQueuedPmRemoveOidsUnderLock<br>FlpGenerateWolPatternForAddress<br>FlpInterfaceRundown<br>FlpLogVirtualIfCtlError<br>FlpNdisDirectRequestUnderReference<br>FlpNdisRequestUnderReference<br>FlpNdisSendNbls<br>FlpPCFClearFilter<br>FlpRestartPnpEvent<br>FlpSerializedWolAddressEvictionWorker<br>FlpSetArpNDOffload<br>FlpSetDirectWolPattern<br>FlpTraceWakeStatistics<br>FlpValidateNetBufferListChain<br>FltpInitializeInterface<br>FseCreateClientInitMessage<br>FseCreateInvalidMsgTypeMessage<br>FseCreateInvalidVersionMessage<br>FseCreatePortReleaseRequestMessage<br>FseCreatePortReserveRequestMessage<br>FseProcessIncomingMessages<br>FseProcessPortReserveRequest<br>FseWskAcceptEvent<br>FseWskSetupListeningSocket<br>GetPortTrackerModeFromRegistry<br>GetProductType<br>GetQueueIndexFromNblFwd<br>GetWcosLoopbackSupportedValue<br>HandOffAuthFwIpsecStateToAleEntry<br>IPSecAddInboundSaToTrafficIndex<br>IPSecAddOutboundSa<br>IPSecAddOutboundSaToTrafficIndex<br>IPSecAuditEvent<br>IPSecCalculateIPHeaderChecksumBeforeTunneling<br>IPSecCalloutsRegister<br>IPSecClearRekeyOriginalStateOnLarvalSaDeletion<br>IPSecCreateSa<br>IPSecDetermineSaMatchInbound<br>IPSecDetermineSaMatchOutbound<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecDoCommonPerPacketInitOutboundProcessing<br>IPSecFindDuplicateInboundLarvalSA<br>IPSecFindDuplicateOutboundSA<br>IPSecFireDiagEvent<br>IPSecForwardInboundTunnelFilterCalloutClassifyV4<br>IPSecForwardInboundTunnelFilterCalloutClassifyV6<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV4<br>IPSecForwardOutboundTunnelFilterCalloutClassifyV6<br>IPSecGetFilterEnumHandle<br>IPSecGetTunnelInfoFromIPInformation<br>IPSecInboundTransportFilterCalloutClassifyV4<br>IPSecInboundTransportFilterCalloutClassifyV6<br>IPSecInboundTunnelFilterCalloutClassifyCommon<br>IPSecInboundTunnelFilterCalloutClassifyV4<br>IPSecInboundTunnelFilterCalloutClassifyV6<br>IPSecInitiateTransportKeying<br>IPSecInitiateTunnelKeying<br>IPSecInitiatorNegotiateSa<br>IPSecIsOnlyActiveIPsec<br>IPSecNsProcessInboundSecurePacket<br>IPSecNsProcessInboundSecurePacketIcmpError<br>IPSecNsProcessOutboundSecurePacketIcmpError<br>IPSecNsProcessOutboundSecurePacketList<br>IPSecOutboundTransportFilterCalloutClassifyV4<br>IPSecOutboundTransportFilterCalloutClassifyV6<br>IPSecOutboundTunnelFilterCalloutClassifyCommon<br>IPSecOutboundTunnelFilterCalloutClassifyV4<br>IPSecOutboundTunnelFilterCalloutClassifyV6<br>IPSecProcessAsyncPendComplete<br>IPSecProcessAsyncUpcallNotifySaNegotiation<br>IPSecRekeyInboundSa<br>IPSecRekeyOutboundSa<br>IPSecRekeySa<br>IPSecResponderCreateSPIHndlr<br>IPSecResponderNegotiateSa<br>IPSecSACommonHashLookupComparisonCallback<br>IPSecSetAleIPSecOutboundSecIdentityState<br>IPSecUpdateOffloadStatus<br>IPSecValidateNLInfoOnInboundTransportModePacket<br>IPSecValidatePeerIdentitityOnInboundTransportModePacket<br>IPsecComparePeerImpTokens<br>IPsecFwdStateLogClosed<br>IPsecFwdStateLogNew<br>IPsecGetDontFragmentSettingOnFwdPath<br>IPsecGetSpiFromIPsecHeader<br>IPsecHandleSALookupFailure<br>IPsecInboundAcceptAuthorizeCalloutProcessSecurityRealmId<br>IPsecInsertIPHeader<br>IPsecParseFwdPktIcmp<br>IPsecParseFwdPktTcp<br>IPsecReceiveSecureNbl<br>IPsecRestoreTransProtoForInboundPkt<br>IPsecToggleFragGrouping<br>IPsecTransformClearTextPacket<br>Icmpv4ReceiveControlMessage<br>Icmpv4ReceiveDatagrams<br>Icmpv4pHandleError<br>Icmpv6ReceiveControlMessage<br>Icmpv6ReceiveDatagrams<br>Icmpv6pHandleEchoRequest<br>Icmpv6pHandleError<br>IdpCalloutInit<br>IdpFireDiagEvent<br>IdpProcessInboundUdpPacket<br>IdpProcessOutboundUdpPacket<br>IgmpReceiveDatagrams<br>IndicateAleSuccessAudit<br>IndicateDropAudit<br>IndicateVetoAudit<br>InetAcquireSpecificPortUnderLock<br>InetAcquireWildcardPortUnderLock<br>InetCreatePortPool<br>InetDeletePortPool<br>InetFastSendDatagramsOnPathAf<br>InetFastSendDatagramsOnPathAf_scrap<br>InetInspectAcceptComplete<br>InetInspectAcquirePort<br>InetInspectBindEndpointRequest<br>InetInspectConnectComplete<br>InetInspectConnectRequest<br>InetInspectCreateEndpoint<br>InetInspectListen<br>InetInspectOffload<br>InetInspectRaw<br>InetInspectReceiveControlMessage<br>InetInspectReceiveDatagram<br>InetInspectReceiveTcpDatagram<br>InetInspectRemoteDisconnect<br>InetInspectRespondDatagram<br>InetInspectSocketOption<br>InetLogPacketDrop<br>InetPortPoolInitializeInformationObjects<br>InetReleasePortReservationsByKey<br>InetSendDatagramsOnPathAf<br>InetSetAllPortPoolExParameters<br>InetSetAllPortPoolParameters<br>InetSetPathBHConfirmationAf<br>InetSetPathConnectionFailedAf<br>InetSetPathInfoRttAf<br>InetSetSockAddr<br>InetTraceBasicDataCore<br>InetTraceConfigDataCore<br>InetTraceConnectionDataCore<br>InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>InternalGetIfEntry2Ex<br>InternalGetIpInterfaceEntry<br>IpAttachIpsClient<br>IpEnumerateAllInterfaces<br>IpEnumerateAllNeighbors<br>IpFlcAddSubInterface<br>IpFlcReturnNetworkAddressList<br>IpFlcUpdateInterface<br>IpGetAllCompartmentParameters<br>IpGetAllInterfaceHopParameters<br>IpGetAllInterfaceParameters<br>IpGetAllNeighborParameters<br>IpGetAllResolveNeighborParameters<br>IpGetAllRouteParameters<br>IpGetAllSitePrefixParameters<br>IpGetAllSubInterfaceParameters<br>IpIpsProviderQueryAddressInformation<br>IpIsPacketFragmentGrouped<br>IpNlpSetSessionInfo<br>IpSecAhCompleteInbound<br>IpSecAhCompleteOutbound<br>IpSecAhProcessAuthenticationData<br>IpSecEspAuthCompleteInbound<br>IpSecEspAuthInbound<br>IpSecEspCompleteOutbound<br>IpSecEspDecryptCompleteInbound<br>IpSecEspDecryptInbound<br>IpSecEspInitInbound<br>IpSecEspInitOutbound<br>IpSecEspProcessOutbound<br>IpSecGetSessionInformation<br>IpSecOutboundPktTunnelProcessingCommon<br>IpSecTlPacketsInProcessing<br>IpSecTlPacketsOutProcessing<br>IpSetAllDisconnectInterfaceParameters<br>IpSetAllNeighborParameters<br>IppAddAuthenticationHeader<br>IppAddEspHeader<br>IppAddOrDeletePersistentRoutes<br>IppAddressSetTimeout<br>IppAhProcessPacket<br>IppAllocateAndCopyHeaderIncludeHeader<br>IppAuthenticateAuthenticationHeader<br>IppAuthenticatePacket<br>IppClearWolContext<br>IppCommitSetAllInterfaceParameters<br>IppComputeIcmpPayloadSize<br>IppConfigureIscsiAddress<br>IppConfigureIscsiTargetAndDefaultRoutes<br>IppCreateLocalTemporaryAddress<br>IppCreateSortedAddressPairs<br>IppDadAnnouncementTimeout<br>IppDadComplete<br>IppDadLogEvent<br>IppDetectGatewayReachability<br>IppDisconnectInterface<br>IppEnumerateAllAddresses<br>IppEnumerateInterfaceAddresses<br>IppEphemeralLoopbackAddressSetTimeout<br>IppEspProcessPacket<br>IppEvaluateSortInformation<br>IppFillSortingElement<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindInterfaceForThread<br>IppFindLinkLocalUnicastAddress<br>IppFindNextHopAtDpc<br>IppFindNextHopAtDpcForForwarding<br>IppFindNextHopInFwdCacheOrRouteTable<br>IppFindOrCreateCompartmentByIdEx<br>IppFragmentPackets<br>IppGarbageCollectLoopbackAddressSet<br>IppGetAddressesFromRoute<br>IppGetAllBestRouteParameters<br>IppGetAllLocalAddressParameters<br>IppGetAllUnicastAddressesOnHost<br>IppGetBasicHeaderLength<br>IppGetHostRouteRW<br>IppGetMillisecondsFromMidnight<br>IppGetNextAddress<br>IppGetNextCompartment<br>IppHandleNeighborAdvertisement<br>IppHandleWolContextEviction<br>IppIndicateArpPacketsToIpsServiceChain<br>IppIndicatePacketsToIpsServiceChain<br>IppIndicatePrevalidatedPacketsToIpsServiceChain<br>IppInitializeProtocolSettings<br>IppInjectIpsPackets<br>IppInspectBuildHeaders<br>IppInspectInjectRawSend<br>IppInspectLocalDatagramsIn<br>IppInspectLocalDatagramsOut<br>IppInspectLocalPacketsIn<br>IppInspectLocalPacketsOut<br>IppInspectOutboundNetworkConnection<br>IppInspectQueryRealNextHopInterfaceInternal<br>IppInterfaceBwQueryParameters<br>IppIpsFindNextHopWithRestrictions<br>IppIpsL3ForwardNbl<br>IppIsCompartmentAccessibleByThread<br>IppIsErrorPacket<br>IppIsUdpEspPacket<br>IppJoinPath<br>IppLbIndicatePacketsToIpsServiceChain<br>IppLogHwUsoFailure<br>IppLogMediaSenseEvent<br>IppLogPacketDiscard<br>IppLogPbrFailure<br>IppLogRouteBlockedEvent<br>IppLogRouteChangeEvents<br>IppLogRouteDgdStateChange<br>IppLogRouteLookupEvent<br>IppLogRouteNotificationEvent<br>IppLogRouteSelectionEvent<br>IppLogSourceConstraint<br>IppLogSrcAddrLookupEvent<br>IppLogStandbyTransitionAdjustment<br>IppLoopbackEnqueue<br>IppNeighborSetTimeout<br>IppNotifyAddressChange<br>IppNotifyAddressChangeAtPassive<br>IppNotifyNeighborChangeAtPassive<br>IppNotifySitePrefixChangeAtPassive<br>IppPacketizeDatagrams<br>IppParseTransProtocolAndPorts<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPktMonRegisterInterface<br>IppProcessInternetConnectivityFlags<br>IppProcessMulticastDiscoveryQuery<br>IppProcessMulticastDiscoveryTimeoutEvents<br>IppProcessPhysicalInterfaceRequest<br>IppProcessRawData<br>IppProtocolNeighborRundown<br>IppProtocolRouteRundown<br>IppRandomizeIdentifier<br>IppReceiveAhControl<br>IppReceiveAuthenticationHeader<br>IppReceiveEspNbl<br>IppReceivePackets<br>IppReceiveUdpEspInternal<br>IppReconnectAddresses<br>IppRefreshRouteLifetimes<br>IppRegQueryDwordValue<br>IppRegenerateLinkLayerSuffixAddresses<br>IppResetAllMulticastGroups<br>IppReverseGenericAddressArray<br>IppSetAllPrefixPolicyParametersHelper<br>IppSetDhcpOperationalStatus<br>IppSetOffloadEncapsulation<br>IppSetOffloadEncapsulationAtPassive<br>IppSetWolContext<br>IppSetWolParametersWorker<br>IppStartProtocolManager<br>IppStopLinkLocalAddressConfiguration<br>IppTraceAddressChangeNotificationEvent<br>IppTraceDadStateChangeEvent<br>IppTraceDisconnectInterface<br>IppTraceNeighborChangeNotificationEvent<br>IppTraceNeighborDiscovery<br>IppTraceNeighborReset<br>IppTraceNeighborState<br>IppTraceNsUnderDs<br>IppTraceSortedAddressPairs<br>IppTraceWolAddress<br>IppTraceWolContext<br>IppTransformIPsecPacket<br>IppUnAddressInterfaceUnderLock<br>IppUpdateAutoConfiguredRoute<br>IppUpdateBestSourceAddress<br>IppUpdateOnLinkRouteForAddress<br>IppUpdatePathNotificationAtPassiveLevel<br>IppUpdateRoutesWithLocalAddressAsNextHopUnderLock<br>IppUpdateWolForAllAddresses<br>IppUpdateZoneIndices<br>IppValidateSetAllRouteParameters<br>IpsLbFindAndPopulateLoopbackIfInfo<br>IpsLbHandleInitialInterfaceNotification<br>IpsLbHandleInterfaceAddition<br>IpsLbProcessLoopbackPacketChain<br>IpsecPktMonClientNblDrop<br>IpsecReportPacketDropToPktMon<br>Ipv4EnumerateAllPaths<br>Ipv4ProcessOptionsHelper<br>Ipv4ReloadRegistryConfig<br>Ipv4pAddressInterface<br>Ipv4pConfigureIscsiAddress<br>Ipv4pConfigureIscsiInterface<br>Ipv4pDeferredAuthenticateIpv4Header<br>Ipv4pFragmentPacketHelper<br>Ipv4pHandleRedirect<br>Ipv4pInitializeSubInterface<br>Ipv4pReceiveRoutingHeader<br>Ipv4pSkipNetworkLayerHeaders<br>Ipv4pUpdateDefaultGateway<br>Ipv6EnumerateAllPaths<br>Ipv6ReloadRegistryConfig<br>Ipv6pAddHopByHopOptionsHeader<br>Ipv6pAddLinkLayerSuffixAddresses<br>Ipv6pAddressInterface<br>Ipv6pAuthenticateRoutingHeader<br>Ipv6pConfigureIscsiInterface<br>Ipv6pCreatePublicAddress<br>Ipv6pDeferredAuthenticateIpv6Header<br>Ipv6pEnumRoutesAndAddPrefixBasedAddresses<br>Ipv6pFindAndReleaseSolicitedNodeGroup<br>Ipv6pFindOrCreateSolicitedNodeGroup<br>Ipv6pFragmentPacketHelper<br>Ipv6pGenerateLinkLayerSuffixAddress<br>Ipv6pHandleMldQuery<br>Ipv6pHandleMldReport<br>Ipv6pHandleNeighborAdvertisement<br>Ipv6pHandleNeighborSolicitation<br>Ipv6pHandleRedirect<br>Ipv6pHandleRouterAdvertisement<br>Ipv6pHandleRouterSolicitation<br>Ipv6pInitializeSubInterface<br>Ipv6pJoinGroupAtMultipleScopes<br>Ipv6pLeaveGroupAtMultipleScopes<br>Ipv6pProcessOptions<br>Ipv6pReceiveRoutingHeader<br>Ipv6pResetAutoConfiguredAddresses<br>Ipv6pRouterDiscoveryTimeout<br>Ipv6pSendNeighborSolicitation<br>Ipv6pSendRedirectHelper<br>Ipv6pSkipNetworkLayerHeaders<br>Ipv6pStartAddressManager<br>Ipv6pUpdateAutoConfiguredAddressesUnderLock<br>Ipv6pUpdateDNSSL<br>Ipv6pUpdateRDNSS<br>Ipv6pUpdateSitePrefix<br>IsICMPError<br>IsLayerBypassAllowed<br>IsRemoteAddressSet<br>IsReusableAssignment<br>IsSystemRunningAsVailGuest<br>KfdDriverEntry<br>LedbatCumulativeAck<br>LedbatEtwEvent<br>LedbatRttSample<br>LogEtwIcmpDrop<br>LogEtwIcmpMessage<br>LogIcmpPktmonDrop<br>LookUpTableFlushComplete<br>LruCleanupDpcRoutine<br>McTemplateK0_EtwWriteTransfer<br>McTemplateK0dd_EtwWriteTransfer<br>McTemplateK0hhhhhhq_EtwWriteTransfer<br>McTemplateK0hhhhq_EtwWriteTransfer<br>McTemplateK0hhhhz_EtwWriteTransfer<br>McTemplateK0p_EtwWriteTransfer<br>McTemplateK0phhq_EtwWriteTransfer<br>McTemplateK0phqp_EtwWriteTransfer<br>McTemplateK0phqq_EtwWriteTransfer<br>McTemplateK0pp_EtwWriteTransfer<br>McTemplateK0ppp_EtwWriteTransfer<br>McTemplateK0pppppxq_EtwWriteTransfer<br>McTemplateK0ppppqpqqqq_EtwWriteTransfer<br>McTemplateK0ppppqqqqpp_EtwWriteTransfer<br>McTemplateK0pppqpqxpq_EtwWriteTransfer<br>McTemplateK0pppqq_EtwWriteTransfer<br>McTemplateK0pppqqdqd_EtwWriteTransfer<br>McTemplateK0pppqqdqdq_EtwWriteTransfer<br>McTemplateK0pppqqdqdxq_EtwWriteTransfer<br>McTemplateK0ppq_EtwWriteTransfer<br>McTemplateK0ppqbr2qbr4qqppq_EtwWriteTransfer<br>McTemplateK0ppqq_EtwWriteTransfer<br>McTemplateK0ppqqj_EtwWriteTransfer<br>McTemplateK0ppqqppq_EtwWriteTransfer<br>McTemplateK0ppqqq_EtwWriteTransfer<br>McTemplateK0ppqqqqbr5br5br5_EtwWriteTransfer<br>McTemplateK0ppqqqqq_EtwWriteTransfer<br>McTemplateK0ppxppq_EtwWriteTransfer<br>McTemplateK0ppxqp_EtwWriteTransfer<br>McTemplateK0pq_EtwWriteTransfer<br>McTemplateK0pqbr1p_EtwWriteTransfer<br>McTemplateK0pqbr1q_EtwWriteTransfer<br>McTemplateK0pqbr1qbr3q_EtwWriteTransfer<br>McTemplateK0pqbr1qbr3qq_EtwWriteTransfer<br>McTemplateK0pqbr1qbr3qqxqq_EtwWriteTransfer<br>McTemplateK0pqbr1qqqqx_EtwWriteTransfer<br>McTemplateK0pqhhhq_EtwWriteTransfer<br>McTemplateK0pqp_EtwWriteTransfer<br>McTemplateK0pqpppppppp_EtwWriteTransfer<br>McTemplateK0pqpq_EtwWriteTransfer<br>McTemplateK0pqpqq_EtwWriteTransfer<br>McTemplateK0pqpqqp_EtwWriteTransfer<br>McTemplateK0pqpxhp_EtwWriteTransfer<br>McTemplateK0pqq_EtwWriteTransfer<br>McTemplateK0pqqbr1qh_EtwWriteTransfer<br>McTemplateK0pqqbr2qbr4qq_EtwWriteTransfer<br>McTemplateK0pqqbr2qq_EtwWriteTransfer<br>McTemplateK0pqqp_EtwWriteTransfer<br>McTemplateK0pqqppdd_EtwWriteTransfer<br>McTemplateK0pqqppddqxq_EtwWriteTransfer<br>McTemplateK0pqqppq_EtwWriteTransfer<br>McTemplateK0pqqpqquqhqq_EtwWriteTransfer<br>McTemplateK0pqqpxxxqqqqq_EtwWriteTransfer<br>McTemplateK0pqqq_EtwWriteTransfer<br>McTemplateK0pqqqbr3_EtwWriteTransfer<br>McTemplateK0pqqqbr3br3q_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5q_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5qx_EtwWriteTransfer<br>McTemplateK0pqqqbr3qbr5qxxqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqpxhp_EtwWriteTransfer<br>McTemplateK0pqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqbr4qbr6_EtwWriteTransfer<br>McTemplateK0pqqqqhhqd_EtwWriteTransfer<br>McTemplateK0pqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqbr5qbr7qqq_EtwWriteTransfer<br>McTemplateK0pqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqbr5qqbr5hh_EtwWriteTransfer<br>McTemplateK0pqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqiqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0pqqqqqqqqqqqqqqqqqbr17qbr19_EtwWriteTransfer<br>McTemplateK0pqqqqqqu_EtwWriteTransfer<br>McTemplateK0pqqqquxxqxqqqu_EtwWriteTransfer<br>McTemplateK0pqqqqx_EtwWriteTransfer<br>McTemplateK0pqqqqxqq_EtwWriteTransfer<br>McTemplateK0pqqqxx_EtwWriteTransfer<br>McTemplateK0pqqu_EtwWriteTransfer<br>McTemplateK0pqqxq_EtwWriteTransfer<br>McTemplateK0pqqz_EtwWriteTransfer<br>McTemplateK0pqqzq_EtwWriteTransfer<br>McTemplateK0pqxqq_EtwWriteTransfer<br>McTemplateK0pqxqqqqq_EtwWriteTransfer<br>McTemplateK0pqz_EtwWriteTransfer<br>McTemplateK0pqzx_EtwWriteTransfer<br>McTemplateK0pxxx_EtwWriteTransfer<br>McTemplateK0pxxxxxxqqqqqqqqqqqqxqqxqqxxqqqqqqqqbr34qbr36qqqqqqqt_EtwWriteTransfer<br>McTemplateK0pzqq_EtwWriteTransfer<br>McTemplateK0pzqqp_EtwWriteTransfer<br>McTemplateK0pzqqq_EtwWriteTransfer<br>McTemplateK0pzqqqpxxxqqqqq_EtwWriteTransfer<br>McTemplateK0q_EtwWriteTransfer<br>McTemplateK0qbr0br0br0br0qsqqq_EtwWriteTransfer<br>McTemplateK0qbr0br0br0qqqq_EtwWriteTransfer<br>McTemplateK0qbr0br0qqqbr0_EtwWriteTransfer<br>McTemplateK0qbr0br0xx_EtwWriteTransfer<br>McTemplateK0qbr0br0xxqh_EtwWriteTransfer<br>McTemplateK0qbr0q_EtwWriteTransfer<br>McTemplateK0qbr0qbr2ppzq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2q_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqpx_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqpxq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqpxt_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqqqq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqqqqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0qbr0qbr2qqqxqq_EtwWriteTransfer<br>McTemplateK0qbr0qp_EtwWriteTransfer<br>McTemplateK0qbr0qpqx_EtwWriteTransfer<br>McTemplateK0qbr0qqqq_EtwWriteTransfer<br>McTemplateK0qbr0qqqqq_EtwWriteTransfer<br>McTemplateK0qbr0qqqqx_EtwWriteTransfer<br>McTemplateK0qbr0qqsqqqq_EtwWriteTransfer<br>McTemplateK0qh_EtwWriteTransfer<br>McTemplateK0qhq_EtwWriteTransfer<br>McTemplateK0qhqqq_EtwWriteTransfer<br>McTemplateK0qhqxqbr4_EtwWriteTransfer<br>McTemplateK0qjqqbr3br3qqquttttt_EtwWriteTransfer<br>McTemplateK0qpq_EtwWriteTransfer<br>McTemplateK0qpqbr2qbr4qqqx_EtwWriteTransfer<br>McTemplateK0qpqq_EtwWriteTransfer<br>McTemplateK0qpxx_EtwWriteTransfer<br>McTemplateK0qq_EtwWriteTransfer<br>McTemplateK0qqbr1_EtwWriteTransfer<br>McTemplateK0qqbr1br1qq_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqhhhqx_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqq_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqqq_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3qqquu_EtwWriteTransfer<br>McTemplateK0qqbr1qbr3quuqbr8qbr10xqq_EtwWriteTransfer<br>McTemplateK0qqbr1qq_EtwWriteTransfer<br>McTemplateK0qqbr1qqbr4qbr6qqqqq_EtwWriteTransfer<br>McTemplateK0qqbr1qqbr4qbr6qqqqqbr12qbr14qqqq_EtwWriteTransfer<br>McTemplateK0qqbr1qqbr4xqq_EtwWriteTransfer<br>McTemplateK0qqbr1qqq_EtwWriteTransfer<br>McTemplateK0qqd_EtwWriteTransfer<br>McTemplateK0qqhhx_EtwWriteTransfer<br>McTemplateK0qqq_EtwWriteTransfer<br>McTemplateK0qqqbr1br1br1qqq_EtwWriteTransfer<br>McTemplateK0qqqbr2_EtwWriteTransfer<br>McTemplateK0qqqbr2qbr4qq_EtwWriteTransfer<br>McTemplateK0qqqbr2qbr4qqqq_EtwWriteTransfer<br>McTemplateK0qqqbr2qqbr5qqqxxxq_EtwWriteTransfer<br>McTemplateK0qqqhxxqqbr7_EtwWriteTransfer<br>McTemplateK0qqqp_EtwWriteTransfer<br>McTemplateK0qqqq_EtwWriteTransfer<br>McTemplateK0qqqqbr3br3_EtwWriteTransfer<br>McTemplateK0qqqqbr3q_EtwWriteTransfer<br>McTemplateK0qqqqbr3qbr5qq_EtwWriteTransfer<br>McTemplateK0qqqqbr3qbr5sq_EtwWriteTransfer<br>McTemplateK0qqqqbr3qq_EtwWriteTransfer<br>McTemplateK0qqqqhhx_EtwWriteTransfer<br>McTemplateK0qqqqq_EtwWriteTransfer<br>McTemplateK0qqqqqbr3br4_EtwWriteTransfer<br>McTemplateK0qqqqqbr3br4qq_EtwWriteTransfer<br>McTemplateK0qqqqqbr4br4_EtwWriteTransfer<br>McTemplateK0qqqqqbr4qbr6qqqqbr11qbr13qqp_EtwWriteTransfer<br>McTemplateK0qqqqqiq_EtwWriteTransfer<br>McTemplateK0qqqqqq_EtwWriteTransfer<br>McTemplateK0qqqqqqbr5qbr7_EtwWriteTransfer<br>McTemplateK0qqqqqqj_EtwWriteTransfer<br>McTemplateK0qqqqqqqqbr7qbr9_EtwWriteTransfer<br>McTemplateK0qqqqqqqqbr7qbr9q_EtwWriteTransfer<br>McTemplateK0qqqqqqqqqbr7qqqq_EtwWriteTransfer<br>McTemplateK0qqqqqqqqqqqq_EtwWriteTransfer<br>McTemplateK0qqqqx_EtwWriteTransfer<br>McTemplateK0qqqu_EtwWriteTransfer<br>McTemplateK0qqqxxqqq_EtwWriteTransfer<br>McTemplateK0qqqxxqqqqq_EtwWriteTransfer<br>McTemplateK0qqqz_EtwWriteTransfer<br>McTemplateK0qqqzqqqqqqq_EtwWriteTransfer<br>McTemplateK0qqsqqbr3q_EtwWriteTransfer<br>McTemplateK0qqsqqqbr3br4qqq_EtwWriteTransfer<br>McTemplateK0qqxjqqqq_EtwWriteTransfer<br>McTemplateK0qqxq_EtwWriteTransfer<br>McTemplateK0qqxxq_EtwWriteTransfer<br>McTemplateK0qqxxqqq_EtwWriteTransfer<br>McTemplateK0qqzqqqq_EtwWriteTransfer<br>McTemplateK0qsq_EtwWriteTransfer<br>McTemplateK0qsqqbr2qqqqqqqqjq_EtwWriteTransfer<br>McTemplateK0qsqqbr3qqbr5qq_EtwWriteTransfer<br>McTemplateK0qsqqbr3qqbr5qqqq_EtwWriteTransfer<br>McTemplateK0qsqqbr3qqbr6qqqqqqqqq_EtwWriteTransfer<br>McTemplateK0qsqqqq_EtwWriteTransfer<br>McTemplateK0quu_EtwWriteTransfer<br>McTemplateK0quuuuuuuuqqqqquuqq_EtwWriteTransfer<br>McTemplateK0qxqqqbr4qqxqqqqxqqq_EtwWriteTransfer<br>McTemplateK0qxqqqbr4qqxxq_EtwWriteTransfer<br>McTemplateK0qxqqqqqbr6qqqqzq_EtwWriteTransfer<br>McTemplateK0qz_EtwWriteTransfer<br>McTemplateK0qzq_EtwWriteTransfer<br>McTemplateK0qzz_EtwWriteTransfer<br>McTemplateK0s_EtwWriteTransfer<br>McTemplateK0sqbr1br1qqqqqbr1q_EtwWriteTransfer<br>McTemplateK0xqbr1qqqp_EtwWriteTransfer<br>McTemplateK0xqjqqqqxq_EtwWriteTransfer<br>McTemplateK0xqqqq_EtwWriteTransfer<br>McTemplateK0xqqqqq_EtwWriteTransfer<br>McTemplateK0xxxx_EtwWriteTransfer<br>McTemplateK0xzqbr2br2qbr5br5qhh_EtwWriteTransfer<br>McTemplateK0xzqbr2br2qqqhh_EtwWriteTransfer<br>McTemplateK0z_EtwWriteTransfer<br>McTemplateK0zq_EtwWriteTransfer<br>McTemplateK0zqqqqq_EtwWriteTransfer<br>McTemplateK0zqqqqqqq_EtwWriteTransfer<br>MicrosoftTelemetryAssertTriggeredWorker<br>NdkpiAccept<br>NdkpiAcceptEx<br>NdkpiArmCq<br>NdkpiBind<br>NdkpiBuildLAM<br>NdkpiCloseConnector<br>NdkpiCloseCq<br>NdkpiCloseListener<br>NdkpiCloseMr<br>NdkpiCloseMw<br>NdkpiClosePd<br>NdkpiCloseQp<br>NdkpiCloseSharedEndpoint<br>NdkpiCloseSrq<br>NdkpiCompleteConnect<br>NdkpiCompleteConnectEx<br>NdkpiConnect<br>NdkpiConnectEventCallback<br>NdkpiConnectWithSharedEndpoint<br>NdkpiControlCqInterruptModeration<br>NdkpiCqNotificationCallback<br>NdkpiCreateConnector<br>NdkpiCreateCq<br>NdkpiCreateListener<br>NdkpiCreateMr<br>NdkpiCreateMw<br>NdkpiCreatePd<br>NdkpiCreateQp<br>NdkpiCreateQpWithSrq<br>NdkpiCreateSharedEndpoint<br>NdkpiCreateSrq<br>NdkpiDeregisterMr<br>NdkpiDisconnect<br>NdkpiDisconnectEventCallback<br>NdkpiDisconnectEventCallbackEx<br>NdkpiFastRegister<br>NdkpiFlush<br>NdkpiGetConnectionData<br>NdkpiGetCqResults<br>NdkpiGetCqResultsEx<br>NdkpiGetListenerLocalAddress<br>NdkpiGetLocalAddress<br>NdkpiGetLocalTokenFromMr<br>NdkpiGetPeerAddress<br>NdkpiGetPrivilegedMemoryRegionToken<br>NdkpiGetRemoteTokenFromMr<br>NdkpiGetRemoteTokenFromMw<br>NdkpiGetSharedEndpointLocalAddress<br>NdkpiInitializeFastRegisterMr<br>NdkpiInvalidate<br>NdkpiListen<br>NdkpiModifySrq<br>NdkpiRead<br>NdkpiReceive<br>NdkpiRegisterMr<br>NdkpiReject<br>NdkpiReleaseLAM<br>NdkpiResizeCq<br>NdkpiSend<br>NdkpiSendAndInvalidate<br>NdkpiSrqNotificationCallback<br>NdkpiSrqReceive<br>NdkpiWrite<br>NetioAddressChangeCallBack<br>NetioHistogramUpload<br>NetioInterfaceChangeCallBack<br>NlShimFwLayerDirectClassify<br>NlShimMarshalFwLayerFields<br>OlmIncrementRscConnectionCount<br>OlmNotifyRscIncompatibleCallout<br>OlmQuerySegmentationOffloadSupport<br>OlmQuerySetRscCapabilities<br>OlmTcpRscGetAllStats<br>OlmWorkQueueRoutine<br>PktMonClientHeaderInfoDropWithContext<br>PktMonClientNblDrop<br>ProcessIcmpErrorClassify<br>ProcessInboundTransportLayerClassify<br>ProcessOutTransportStackIndicationFast<br>ProcessOutboundTransportLayerClassify<br>ProcessRedirectLayerForNonNativeTCP<br>QueryAttributes<br>RLedbatDataReceive<br>RLedbatEtwEvent<br>RLedbatUpdateDelaySample<br>RawBindEndpoint<br>RawBindEndpointInspectComplete<br>RawBindEndpointRequestInspectComplete<br>RawCloseEndpoint<br>RawCreateEndpoint<br>RawCreateEndpointWorkQueueRoutine<br>RawCreateMessageIndication<br>RawDeliverDatagrams<br>RawGetSockOptEndpoint<br>RawLogPacketDiscard<br>RawReceiveDatagrams<br>RawReceiveFilterUnderprivilegedDatagram<br>RawSendFilterUnderprivilegedMessages<br>RawSendMessages<br>RawSendMessagesOnPathCreation<br>RawSetSockOptEndpoint<br>RawStartNetworkModule<br>RetrieveICMPInformation<br>RssControlAddInterface<br>RssControlDeleteInterface<br>RssCreateAdapter<br>RssFindOrCreateAdapter<br>RssHashAccessCheck<br>RssQueryInterfacePortInformation<br>RssQueryPortIndex<br>RssQueryPortRssInfo<br>RssRefreshLinkState<br>RssRefreshPortPresence<br>RssRemoveAdapterFromBindingAndDereference<br>RssRundown<br>RssTraceAdapterActivityStart<br>RssTraceAdapterActivityStop<br>RssTraceBindingActivityStart<br>RssTraceBindingActivityStop<br>RssUpdateAdapter<br>SegLibCreateMultiNbNblClone<br>SegLibCreateMultiNbNblUsoClone<br>SegLibPvtGetTcpDataOffset<br>SelectPortFromRange<br>ShimIndicateDiscard<br>ShimIpDiscardV4<br>ShimIpDiscardV6<br>ShimIpForwardDiscard<br>ShimIpFragmentInV4<br>ShimIpFragmentInV6<br>ShimIpPacketInV4<br>ShimIpPacketInV6<br>ShimIpPacketOutV4<br>ShimIpPacketOutV6<br>TcpAbortTcb<br>TcpAbortTcbComplete<br>TcpAcceptFin<br>TcpAcquireAndInspectWildcardPort<br>TcpAfRundown<br>TcpApplySynOptionsToTcb<br>TcpBeginProbeTcbSend<br>TcpBeginTcbSend<br>TcpBindEndpointInspectComplete<br>TcpBindEndpointRequestInspectComplete<br>TcpBindEndpointWorkQueueRoutine<br>TcpBwUpdateEre<br>TcpCheckAndPlumbWakePattern<br>TcpCheckAndThrottleInitialCwndTcb<br>TcpCleanupEndpointWorkQueueRoutine<br>TcpCleanupSynTcb<br>TcpCloseEndpoint<br>TcpCloseEndpointWorkQueueRoutine<br>TcpCloseListenerWorkQueueRoutine<br>TcpCloseTcb<br>TcpCloseTcbWorkQueueRoutine<br>TcpCompleteClientReceiveRequest<br>TcpCompleteTcbSend<br>TcpComputeMssOption<br>TcpComputeRtoTcbSend<br>TcpComputeSynRcvdLimit<br>TcpConnectTimeout<br>TcpConnectionRundown<br>TcpContinueCreateAndConnect<br>TcpCovetNetBufferList<br>TcpCreateAndAcceptTcb<br>TcpCreateAndAcceptTcbComplete<br>TcpCreateAndConnectTcb<br>TcpCreateAndConnectTcbInspectConnectComplete<br>TcpCreateAndConnectTcbInspectConnectRequestComplete<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>TcpCreateEndpoint<br>TcpCreateEndpointWorkQueueRoutine<br>TcpCreateListener<br>TcpCreateListenerInspectComplete<br>TcpCreateListenerWorkQueueRoutine<br>TcpCreateSynTcb<br>TcpCreateTimeWaitTcb<br>TcpDelayOrScheduleAck<br>TcpDeliverDataToClient<br>TcpDeliverFinToClient<br>TcpDeliverInput<br>TcpDeliverReceive<br>TcpDeplumbWakePattern<br>TcpDequeueTcbInput<br>TcpDequeueTcbSend<br>TcpDiscardReceive<br>TcpDisconnectTcb<br>TcpDisconnectTcbComplete<br>TcpDisconnectTcbInspectComplete<br>TcpDisconnectTimeout<br>TcpEndProbeTcbSend<br>TcpEnqueueTcbSend<br>TcpEnterLossRecovery<br>TcpExitBHModeDuetoAckRcved<br>TcpExitBHModeDuetoTimeout<br>TcpFastRetransmitTcbSend<br>TcpFinishDeferredPortSelection<br>TcpFlushDelay<br>TcpFlushTcbDelivery<br>TcpGenerateFastopenCookie<br>TcpGetSockOptTcb<br>TcpGetTcbConnectionObject<br>TcpHandleServerSideFastopenOption<br>TcpHistogramIncrement<br>TcpIndicateData<br>TcpInitializeHashFunctionState<br>TcpInitializeNsiObject<br>TcpInitializeRttEstimateTcb<br>TcpInitializeTemplates<br>TcpInjectFin<br>TcpInjectReceive<br>TcpInsertTcb<br>TcpInspectBindEndpoint<br>TcpInspectCompleteTcbSend<br>TcpInspectConnectionOnListener<br>TcpInspectListenerReceive<br>TcpInspectListenerRedirect<br>TcpInspectReceive<br>TcpIoControlTcb<br>TcpIsCoalescedPatternRequired<br>TcpKeepAliveTimeout<br>TcpLimitedTransmitTcbSend<br>TcpListenerAbortPendingConnections<br>TcpListenerReceive<br>TcpLogPacketDiscard<br>TcpMatchReceive<br>TcpMppNppEvaluationHelper<br>TcpOlmInterfaceRundown<br>TcpOptionsForSynSend<br>TcpPlumbWakePattern<br>TcpPortReservationWorkQueueRoutine<br>TcpProcessExpiredTcbTimers<br>TcpProcessFastDatagramBatch<br>TcpPtoTimeout<br>TcpPushRequestReceive<br>TcpRackTimeout<br>TcpRcvBufTuningOnBytesDelivered<br>TcpReceiveSack<br>TcpRecentFailureTrace<br>TcpRemoveTcbTuple<br>TcpRemoveTimewaitTcbTuple<br>TcpRepartitionState<br>TcpRequestReceive<br>TcpResolveConnectRequestToPathAndAf<br>TcpResolveConnectRequestToPorts<br>TcpRetransmitTimeout<br>TcpRtoTimeout<br>TcpSackRetransmitTcbSend<br>TcpSatisfyReceiveRequests<br>TcpSelectWildcardPort<br>TcpSendDatagramsComplete<br>TcpSendTrackerAck<br>TcpSendTrackerDetectLoss<br>TcpSendTrackerMarkTransmits<br>TcpSendTrackerUpdateReoWnd<br>TcpSetFastopenPathInfoTcb<br>TcpSetSockOptEndpoint<br>TcpSetSockOptListener<br>TcpSetSockOptTcb<br>TcpSetTcbConnectionObject<br>TcpShutdownTcb<br>TcpStartInetModule<br>TcpStartSecurityModule<br>TcpStartTimerTcbInternal<br>TcpStopTimerTcbInternal<br>TcpSwsTimeout<br>TcpSystemAbortTcb<br>TcpTcbAcceptDatagram<br>TcpTcbCarefulDatagram<br>TcpTcbChangeCongestionState<br>TcpTcbChangeFastopenState<br>TcpTcbFastDatagram<br>TcpTcbHeaderSend<br>TcpTcbIncreaseDupAckCount<br>TcpTcbIssueOrCancelPathBwEstimation<br>TcpTcbKeepAliveSend<br>TcpTcbProcessCarefulCumulativeAck<br>TcpTcbProcessNotificationChannelSetupRequest<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbProcessNotificationChannelUnmarkRequest<br>TcpTcbQueryIpsecMtuAndRetransmit<br>TcpTcbReassemblyCheckConflicts<br>TcpTcbReassemblyInsertSegment<br>TcpTcbReassemblyRateTimeout<br>TcpTcbReceive<br>TcpTcbSend<br>TcpTcbSendDatagramsComplete<br>TcpTcbSetReassembly<br>TcpTcbSignalNotificationChannelEvent<br>TcpTemplatesInit<br>TcpTerminateSpuriousRtoDetection<br>TcpTlEndpointCloseEndpointCalloutRoutine<br>TcpTraceConnectionSummary<br>TcpTryToEnterBHMode<br>TcpTryToIncreaseBacklogTcbSend<br>TcpTryToStartSynOrRstValidation<br>TcpTuneTcbEstats<br>TcpUnbindListenerWorkQueueRoutine<br>TcpUnlinkNcmContext<br>TcpUpdateBacklogTcbSend<br>TcpUpdateFastopenKey<br>TcpUpdatePathInfoTcb<br>TcpUpdateRtt<br>TcpUpdateTemplateAndCacheTemplateOptions<br>TcpValidateReceive<br>TcpipEtwTransferActivity<br>TcpipGetAppNameFromProcess<br>TcpipHealthTelemetryTimerRoutine<br>TcpipPcwGlobalCallback<br>TcpipPcwGlobalExCallback<br>TcpipPcwPerCpuCallback<br>TcpipPcwTlDropsCallback<br>TcpipTraceActivityIDStart<br>TcpipTraceActivityIDStop<br>TlRdmaProviderOpenNDKAdapter<br>TlShimDirectClassify<br>TlShimGetRedirectRecordForNonTCPEndpoint<br>TlShimMarshalInTransportFields<br>TlShimMarshalOutTransportFields<br>TlShimMarshalStreamPacketLayerFields<br>TlShimOptionalReauthorizeConnection<br>TraceLoggingRegisterEx_EtwRegister_EtwSetInformation<br>TraceVailGuestPortFailure<br>UQoSCreatePolicyInternal<br>UQoSUpdatePolicyInternal<br>UdpBeginDelivery<br>UdpBindEndpointInspectComplete<br>UdpBindEndpointRequestInspectComplete<br>UdpBindEndpointWorkQueueRoutine<br>UdpCheckAndPlumbWakePattern<br>UdpCloseEndpoint<br>UdpCloseEndpointWorkQueueRoutine<br>UdpConnectRedirect<br>UdpConnectRedirectCallback<br>UdpConnectRedirectObsolete<br>UdpCreateEndpoint<br>UdpCreateEndpointWorkQueueRoutine<br>UdpCreateMessageIndication<br>UdpCreateMessageIndications<br>UdpDeliverDatagrams<br>UdpEndpointProcessNotificationChannelTeardown<br>UdpEndpointSignalNotificationChannelEvent<br>UdpGetSockOptEndpoint<br>UdpLogPacketDiscard<br>UdpOffloadAddInterface<br>UdpOffloadSendUroOid<br>UdpQueryOffloadSupport<br>UdpReceiveControlMessages<br>UdpReceiveDatagrams<br>UdpScheduleNotificationChannelSetupRequest<br>UdpSegmentMessage<br>UdpSendMessages<br>UdpSendMessagesOnPath<br>UdpSetDestinationEndpoint<br>UdpSetSockOptEndpoint<br>UdpUnlinkNcmContext<br>UrlpIsValidHostName<br>VerifyAccessToExclusion<br>WFPDatagramDataShimV4<br>WFPDatagramDataShimV6<br>WfpAleAuditEvent<br>WfpAleAuthHistogramUpload<br>WfpAleAuthLogHistogramDatapointWorkQueueRoutine<br>WfpAleAuthorizeAccept<br>WfpAleAuthorizeAcceptComplete<br>WfpAleAuthorizeConnect<br>WfpAleAuthorizeConnectComplete<br>WfpAleAuthorizeListen<br>WfpAleAuthorizePromiscuousMode<br>WfpAleAuthorizeRAW<br>WfpAleAuthorizeReceive<br>WfpAleAuthorizeSend<br>WfpAleBfeWatchDogCallback<br>WfpAleCaptureTokenIdByHandle<br>WfpAleCompleteOperation<br>WfpAleConnectCompletionNotification<br>WfpAleFastUdpInspection<br>WfpAleGetCapabilities<br>WfpAleHandleSendCompletion<br>WfpAleInitialize<br>WfpAleInsertRemoteEndpoint<br>WfpAleIsNameIpAddress<br>WfpAleIsSystemSid<br>WfpAleMatchStatefulEndpoint<br>WfpAlePartitionProcessorAddHandler<br>WfpAleProcessSocketOption<br>WfpAleProcessTokenReference<br>WfpAleReauthorizeConnection<br>WfpAleReauthorizePerfCounterIncrement<br>WfpAleValidateISCSIEndPoint<br>WfpAleValidateRemoteAddressAndProxyInRecord<br>WfpAlepAuthorizeAccept<br>WfpAlepAuthorizeConnectCompletion<br>WfpAlepAuthorizeOrClassifyListen<br>WfpAlepAuthorizeOrClassifyPort<br>WfpAlepAuthorizeOrClassifyRaw<br>WfpAlepAuthorizePortByFamily<br>WfpAlepAuthorizePromiscuousMode<br>WfpAlepAuthorizeReceive<br>WfpAlepAuthorizeSend<br>WfpAlepCalloutsRegister<br>WfpAlepCreateTokenFromLogonId<br>WfpAlepDeleteEntryFromTable<br>WfpAlepFlowEstablishedNotification<br>WfpAlepReauthorizeOrReclassifyListen<br>WfpAlepReauthorizeOrReclassifyPort<br>WfpAlepReauthorizeOrReclassifyRaw<br>WfpAlepSecureSocketAddAsync<br>WfpAllowBfeGenericAll<br>WfpCheckForTupleStateOnIcmpError<br>WfpCreateNrptEventSD<br>WfpGetMD5HashBytes<br>WfpGetTLInfoForReceiveOnRawEndpoint<br>WfpGetTransportSpecificTuplePacketHash<br>WfpGetTuplePacketHash<br>WfpInTransportShimV4Discard<br>WfpInTransportShimV6Discard<br>WfpIndicateSendControl<br>WfpInspectReceiveControlShimV4<br>WfpInspectReceiveControlShimV6<br>WfpIpAddressCheckAndAdd<br>WfpIsLayerOffloadPossible<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpNlShimInspectForwardDatagram<br>WfpNlShimInspectvSwitchForwardDatagram<br>WfpPreprocessInboundTransportIndication<br>WfpProcessInTransportStackIndicationFast<br>WfpRegGetUint32Value<br>WfpSetVpnTriggerSecurityDescriptor<br>WfpShimIndicateDiscardGeneral<br>WfpTlShimInspectOutboundNetworkConnection<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram<br>WfpTlShimInspectStreamPacket<br>WfpTraceActivityIdStart<br>WfpTraceActivityIdStop<br>WfpTransferActivityId<br>WfpV4FireIpsecDiagEventFromNbl<br>WfpV6FireIpsecDiagEventFromNbl<br>WfpVpnCalloutInit<br>__GSHandlerCheckCommon<br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EtwWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByVal<4>,_tlgWrapperByVal<1>,_tlgWrapperByRef<16>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<8>,_tlgWrapperByVal<1>,_tlgWrapperBinary,_tlgWrapperByVal<4>,_tlgWrapperByVal<1>_><br>ndkpiCloseCompletionCore<br>ndkpiCreateCompletionCore<br>ndkpiRequestCompletionCore<br>wil_RtlStagingConfig_QueryFeatureState<br>wil_details_FeatureReporting_ReportUsageToServiceDirect<br>wil_details_PopulateInitialConfiguredFeatureStates<br>wil_details_RecordCachedUsage<br>wil_details_UpdateFeatureConfiguredStates</details>|
|paramcount|1|1|
|`address`|1401c24e0|1401c2ad0|
|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
@@ -45,5 +45,5 @@
-FUN_14005512b
-FUN_14005b789
-FUN_14007c45c
-FUN_1400a2c65
-FUN_1400b16b0
+FUN_14001980c
+FUN_14002e1d9
+FUN_14009a39b
+FUN_1400b4ce0
+FUN_1400be5b5
@@ -198,0 +199 @@
+InetInspectConnectRequest
@@ -1010,0 +1012 @@
+UdpConnectRedirectObsolete
```


## NDIS.SYS::NdisReleaseRWLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|NdisReleaseRWLock|NdisReleaseRWLock|
|fullname|NDIS.SYS::NdisReleaseRWLock|NDIS.SYS::NdisReleaseRWLock|
|`refcount`|74|77|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>FlPnpEvent<br>FlRdmaUnbindAdapter<br>FlUnbindAdapter<br>FlpAcceptPacket<br>FlpAddInterfaceComplete<br>FlpInterfaceReleaseReadLock<br>FlpMulticastListSet<br>FlpSetVirtualInterfaceHelper<br>FlpSplitNetBufferListChainByIsolationId<br>IPSecDoCommonPerPacketInitInboundProcessing<br>IPSecHandlePossibleUdpIdle</summary>IPSecInboundSaExpired<br>IPSecLookupSaInbound<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecNotifyStatusHndlr<br>IPSecNsProcessInboundSecurePacketCommon<br>IPSecPauseOffloadOnInterface<br>IPSecPendOrCopyPacket<br>IPSecResumeOffloadOnInterface<br>IPsecGetCachedTLShimEpoch<br>KfdDispatchDevCtl<br>LruCleanupDpcRoutine<br>TlShimDiscoverPhysicalNexthopInterface<br>WfpAleAcquirePeerInformation<br>WfpAleAcquireProcessInformation<br>WfpAleAcquireTokenInformation<br>WfpAleAcquireTokenInformationEx<br>WfpAleCaptureSecurityInformation<br>WfpAleFastFindRemoteEndpoint<br>WfpAleFindRemoteEndpoint<br>WfpAleGetAndWriteLockPartition<br>WfpAleGetTupleStateEntry<br>WfpAleInsertProcessInformation<br>WfpAleInsertRemoteEndpoint<br>WfpAleInsertTokenInformation<br>WfpAleLookupPeerInformation<br>WfpAleLookupProcessInformation<br>WfpAleMatchStatefulEndpoint<br>WfpAleReleasePeerInformation<br>WfpAleReleaseTokenInformationById<br>WfpAlepEndpointCleanupWorkQueueRoutine<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepRemoveProcessInformation<br>WfpAlepTokenInformationCleanup<br>WfpCreateProcessNotifyRoutine<br>WfpDiscoverPhysicalNexthopInterfaceComplete<br>WfpFindAleUserIDByModifiedID<br>WfpInsertModifiedIdCorrelationEntry<br>WfpLookupFilePathTableAndUpdateCount<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpReleaseFastReadLock<br>WfpRemoveModifiedIdCorrelationEntry</details>|<details><summary>Expand for full list:<br>Fl8AddGroup<br>FlPnpEvent<br>FlRdmaUnbindAdapter<br>FlUnbindAdapter<br>FlpAcceptPacket<br>FlpAddInterfaceComplete<br>FlpInterfaceReleaseReadLock<br>FlpMulticastListSet<br>FlpSetVirtualInterfaceHelper<br>FlpSplitNetBufferListChainByIsolationId<br>IPSecDoCommonPerPacketInitInboundProcessing</summary>IPSecHandlePossibleUdpIdle<br>IPSecInboundSaExpired<br>IPSecLookupSaInbound<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecNotifyStatusHndlr<br>IPSecNsProcessInboundSecurePacketCommon<br>IPSecPauseOffloadOnInterface<br>IPSecPendOrCopyPacket<br>IPSecResumeOffloadOnInterface<br>IPsecGetCachedTLShimEpoch<br>KfdDispatchDevCtl<br>LruCleanupDpcRoutine<br>TlShimDiscoverPhysicalNexthopInterface<br>WfpAleAcquirePeerInformation<br>WfpAleAcquireProcessInformation<br>WfpAleAcquireTokenInformation<br>WfpAleAcquireTokenInformationEx<br>WfpAleCaptureSecurityInformation<br>WfpAleFastFindRemoteEndpoint<br>WfpAleFindRemoteEndpoint<br>WfpAleGetAndWriteLockPartition<br>WfpAleGetTupleStateEntry<br>WfpAleInsertProcessInformation<br>WfpAleInsertRemoteEndpoint<br>WfpAleInsertTokenInformation<br>WfpAleLookupPeerInformation<br>WfpAleLookupProcessInformation<br>WfpAleMatchStatefulEndpoint<br>WfpAleReleasePeerInformation<br>WfpAleReleaseTokenInformationById<br>WfpAlepEndpointCleanupWorkQueueRoutine<br>WfpAlepFreeRemoteEndpointsForEndpointContext<br>WfpAlepRemoveProcessInformation<br>WfpAlepTokenInformationCleanup<br>WfpCreateProcessNotifyRoutine<br>WfpDiscoverPhysicalNexthopInterfaceComplete<br>WfpFindAleUserIDByModifiedID<br>WfpInsertModifiedIdCorrelationEntry<br>WfpLookupFilePathTableAndUpdateCount<br>WfpLookupSecurityDescriptorAndUpdateCount<br>WfpLookupSidTableAndUpdateCount<br>WfpReleaseFastReadLock<br>WfpRemoveModifiedIdCorrelationEntry</details>|
|paramcount|0|0|
|`address`|EXTERNAL:000002cc|EXTERNAL:000002cd|
|sig|undefined NdisReleaseRWLock(void)|undefined NdisReleaseRWLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NDIS.SYS::NdisReleaseRWLock Calling Diff


```diff
--- NDIS.SYS::NdisReleaseRWLock calling
+++ NDIS.SYS::NdisReleaseRWLock calling
@@ -0,0 +1 @@
+Fl8AddGroup
```


## INETADDR_ISEQUAL

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.72|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|INETADDR_ISEQUAL|INETADDR_ISEQUAL|
|fullname|INETADDR_ISEQUAL|INETADDR_ISEQUAL|
|`refcount`|7|6|
|length|66|66|
|called|||
|`calling`|AleHasRedirectRecordForFlow<br>AlepCreateRedirectRecord<br>TcpFindConnectionTuple<br>UdpConnectRedirect<br>UdpConnectRedirectCallback|AleHasRedirectRecordForFlow<br>AlepCreateRedirectRecord<br>TcpFindConnectionTuple<br>UdpConnectRedirectCallback|
|paramcount|0|0|
|`address`|140114ba0|14010b8c0|
|sig|undefined INETADDR_ISEQUAL(void)|undefined INETADDR_ISEQUAL(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### INETADDR_ISEQUAL Calling Diff


```diff
--- INETADDR_ISEQUAL calling
+++ INETADDR_ISEQUAL calling
@@ -4 +3,0 @@
-UdpConnectRedirect
```


## AleAcquireEndpointLockEx

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.71|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleAcquireEndpointLockEx|AleAcquireEndpointLockEx|
|fullname|AleAcquireEndpointLockEx|AleAcquireEndpointLockEx|
|`refcount`|73|72|
|length|366|366|
|called|NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>WPP_SF_sD<br>WfpReportSysErrorAsNtStatus<br>WfpStringCchCopyA|NTOSKRNL.EXE::ExAllocatePool2<br>NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLock<br>WPP_SF_sD<br>WfpReportSysErrorAsNtStatus<br>WfpStringCchCopyA|
|`calling`|<details><summary>Expand for full list:<br>AleEdgeIFsFlushCache<br>AleEdgeIFsUpdateOriginalProfileId<br>AleHasRedirectRecordForFlow<br>AleProxiedEndpointRegisterForExitingEndpoint<br>AleProxiedEndpointUnRegisterForExitingEndpoint<br>AleReleseDeactivateNotifyContext<br>AlepCacheConnectionPolicyRecord<br>AlepCreateRedirectRecord<br>AlepGetCachedConnectionPolicy<br>AlepInitializeConnectionPolicyMapping<br>AlepInitializeProxyMapping</summary>FUN_1401c46f6<br>HandOffAuthFwIpsecStateToAleEntry<br>IPSecCopySecurityRealmIdToAleIPsecContext<br>IPSecCopyTokenInfoFromAleEndpt<br>IPSecGetIndexingIdInfoFromAleEndpt<br>IPSecInboundAcceptAuthorizeCalloutClassify<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecProcessSecurePacketOnInboundTransportFilter<br>IPSecSetAleIPSecOutboundSecIdentityState<br>IPSecValidatePeerIdentitityOnInboundTransportModePacket<br>IPsecGetSpecificTuplesFromEndptIfAvail<br>InetInspectReevaluateOffload<br>OptionalUpdateNonTcpAleState<br>ProcessInboundTransportLayerClassify<br>TlShimGetRedirectRecordForNonTCPEndpoint<br>WfpAleAcquireStackEndpoint<br>WfpAleActivatePendedEndpoint<br>WfpAleAuthorizeAcceptComplete<br>WfpAleAuthorizeConnectComplete<br>WfpAleAuthorizeSend<br>WfpAleCancelEndpointDeleteNotification<br>WfpAleCloseRemoteEndpointConnection<br>WfpAleCopySecurityRealmIdFromEndpoint<br>WfpAleEDPPolicyChangedForProcess<br>WfpAleEnumEndpoints<br>WfpAleFreeRemoteEndpoint<br>WfpAleInsertRemoteEndpoint<br>WfpAleOnProxyHandleChanged<br>WfpAleProcessPostClassifySocketOptions<br>WfpAleProcessSocketOption<br>WfpAleQueryPeerTokenInformation<br>WfpAleRemoveSecurityRealmIdFromEndpoint<br>WfpAleSetLogonIdMappedLocalTokenInformation<br>WfpAleStreamLayerChanged<br>WfpAleUpdateEndpointSaIds<br>WfpAlepEndpointCleanup<br>WfpAlepNotifyEndpointDeletion<br>WfpAlepQuerySecurity<br>WfpAlepSetPeerTarget<br>WfpAlepSetSecurity<br>WfpGetEpochContext<br>WfpIsOffloadPossibleEx<br>WfpProcessOutTransportStackIndication<br>WfpRepartitionRemoteEndPointbHashTable<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram</details>|<details><summary>Expand for full list:<br>AleEdgeIFsFlushCache<br>AleEdgeIFsUpdateOriginalProfileId<br>AleHasRedirectRecordForFlow<br>AleProxiedEndpointRegisterForExitingEndpoint<br>AleProxiedEndpointUnRegisterForExitingEndpoint<br>AleReleseDeactivateNotifyContext<br>AlepCacheConnectionPolicyRecord<br>AlepCreateRedirectRecord<br>AlepGetCachedConnectionPolicy<br>AlepInitializeConnectionPolicyMapping<br>AlepInitializeProxyMapping</summary>FUN_1401cef02<br>HandOffAuthFwIpsecStateToAleEntry<br>IPSecCopySecurityRealmIdToAleIPsecContext<br>IPSecCopyTokenInfoFromAleEndpt<br>IPSecGetIndexingIdInfoFromAleEndpt<br>IPSecInboundAcceptAuthorizeCalloutClassify<br>IPSecLookupSaOutboundFromPacketSecurityContext<br>IPSecProcessSecurePacketOnInboundTransportFilter<br>IPSecSetAleIPSecOutboundSecIdentityState<br>IPSecValidatePeerIdentitityOnInboundTransportModePacket<br>IPsecGetSpecificTuplesFromEndptIfAvail<br>InetInspectReevaluateOffload<br>OptionalUpdateNonTcpAleState<br>ProcessInboundTransportLayerClassify<br>TlShimGetRedirectRecordForNonTCPEndpoint<br>WfpAleAcquireStackEndpoint<br>WfpAleActivatePendedEndpoint<br>WfpAleAuthorizeAcceptComplete<br>WfpAleAuthorizeConnectComplete<br>WfpAleCancelEndpointDeleteNotification<br>WfpAleCloseRemoteEndpointConnection<br>WfpAleCopySecurityRealmIdFromEndpoint<br>WfpAleEDPPolicyChangedForProcess<br>WfpAleEnumEndpoints<br>WfpAleFreeRemoteEndpoint<br>WfpAleInsertRemoteEndpoint<br>WfpAleOnProxyHandleChanged<br>WfpAleProcessPostClassifySocketOptions<br>WfpAleProcessSocketOption<br>WfpAleQueryPeerTokenInformation<br>WfpAleRemoveSecurityRealmIdFromEndpoint<br>WfpAleSetLogonIdMappedLocalTokenInformation<br>WfpAleStreamLayerChanged<br>WfpAleUpdateEndpointSaIds<br>WfpAlepEndpointCleanup<br>WfpAlepNotifyEndpointDeletion<br>WfpAlepQuerySecurity<br>WfpAlepSetPeerTarget<br>WfpAlepSetSecurity<br>WfpGetEpochContext<br>WfpIsOffloadPossibleEx<br>WfpProcessOutTransportStackIndication<br>WfpRepartitionRemoteEndPointbHashTable<br>WfpTlShimInspectRecvTcpDatagram<br>WfpTlShimInspectSendTcpDatagram</details>|
|paramcount|0|0|
|`address`|14000a310|140036650|
|sig|undefined AleAcquireEndpointLockEx(void)|undefined AleAcquireEndpointLockEx(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleAcquireEndpointLockEx Calling Diff


```diff
--- AleAcquireEndpointLockEx calling
+++ AleAcquireEndpointLockEx calling
@@ -12 +12 @@
-FUN_1401c46f6
+FUN_1401cef02
@@ -31 +30,0 @@
-WfpAleAuthorizeSend
```


## AlepValidateConnectRedirectLayerData

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.69|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AlepValidateConnectRedirectLayerData|AlepValidateConnectRedirectLayerData|
|fullname|AlepValidateConnectRedirectLayerData|AlepValidateConnectRedirectLayerData|
|`refcount`|4|6|
|length|181|181|
|called|MicrosoftTelemetryAssertTriggeredArgsMsgKM<br>NTOSKRNL.EXE::KeBugCheckEx|MicrosoftTelemetryAssertTriggeredArgsMsgKM<br>NTOSKRNL.EXE::KeBugCheckEx|
|`calling`|AleInspectConnectRequest<br>AlepFreeCloneConnectRedirectLayerData<br>FUN_1401dc73c|AleInspectConnectRequest<br>AlepFreeCloneConnectRedirectLayerData<br>FUN_1401dbbc2|
|paramcount|0|0|
|`address`|140114c4c|14010b96c|
|sig|undefined AlepValidateConnectRedirectLayerData(void)|undefined AlepValidateConnectRedirectLayerData(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AlepValidateConnectRedirectLayerData Calling Diff


```diff
--- AlepValidateConnectRedirectLayerData calling
+++ AlepValidateConnectRedirectLayerData calling
@@ -3 +3 @@
-FUN_1401dc73c
+FUN_1401dbbc2
```


## NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeAcquireInStackQueuedSpinLockAtDpcLevel|KeAcquireInStackQueuedSpinLockAtDpcLevel|
|fullname|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel|NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel|
|`refcount`|199|198|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>InetFindAndReferenceAf<br>InetLookupPortEndpoint<br>IpEnumerateAllInterfaces<br>IpFlcUpdateSubInterface<br>IpGetAllInterfaceParameters<br>IpNlpConfirmForwardReachability<br>IpNlpSetSessionInfo<br>IppAddAutoConfiguredRoutesForAddress<br>IppAddressSetGetNextExpirationTick<br>IppAddressSetTimeout<br>IppCommitSetAllLocalAddressParameters</summary>IppCompartmentSetGetNextExpirationTick<br>IppCreateForwardPath<br>IppCreateSubInterface<br>IppDadAnnouncementGetNextExpirationTick<br>IppDadAnnouncementTimeout<br>IppDeleteAutoConfiguredRoutesForAddress<br>IppDeleteNeighbor<br>IppDeleteNeighborsUnderNSLock<br>IppEnumerateInterfaceAddresses<br>IppEphemeralLoopbackAddressSetTimeout<br>IppEvaluateSortInformation<br>IppFillInterfaceData<br>IppFillUnicastRouteData<br>IppFindAddressInAddressSet<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAnySubInterfaceOnInterface<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindCompartmentById<br>IppFindInterfaceByIndex<br>IppFindInterfaceByLuid<br>IppFindInterfaceForThread<br>IppFindNeighborUnderNSLock<br>IppFindNextHopAtDpc<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateLocalEphemeralAddressAtDpc<br>IppFindOrCreateNeighborAtDpc<br>IppFindOrCreatePath<br>IppFindPath<br>IppForwardMulticastPackets<br>IppGetAllBestRouteParameters<br>IppGetCompartment<br>IppGetNeighborReachability<br>IppGetNextCompartment<br>IppGetNextHopFromPath<br>IppGetNextInterfaceForThread<br>IppGetNextRoute<br>IppGetRouteFromPath<br>IppGetRouteKey<br>IppGetThreadCompartmentInfo<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInsertNeighbor<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLinkLocalAddressConfigurationTimeout<br>IppLookupPrefixPolicy<br>IppMfeSetTimeOut<br>IppMorphNeighborAtDpc<br>IppMulticastDiscoveryGetNextExpirationTick<br>IppNeighborSetTimeout<br>IppNeighborSolicitationWorker<br>IppPathSetTimeout<br>IppProbeNeighborReachability<br>IppPruneNeighborSet<br>IppResetNeighborsUnderNSLock<br>IppRouteSetGetNextExpirationTick<br>IppSetInterfaceMtuAtDpc<br>IppUpdateBestSourceAddress<br>IppUpdateUnicastRoute<br>Ipv4SetAllRouteParameters<br>Ipv6SetAllRouteParameters<br>Ipv6pHandleAnycastAdvertisementTimeout<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pRouterDiscoveryTimeout<br>Ipv6pRouterDnsGetNextExpirationTick<br>Ipv6pRouterDnsTimeout<br>QimInspectCreateEndpoint<br>QimMatchPolicyForTCPConnection<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointRequestInspectComplete<br>RawCloseEndpoint<br>RawReceiveDatagrams<br>RtlAcquireReadLock<br>RtlAcquireReadLockAtDpcLevel<br>RtlAcquireScalableReadLock<br>RtlAcquireScalableReadLockAtDpcLevel<br>RtlAcquireScalableWriteLockAtDpcLevel<br>RtlAcquireWriteLockAtDpcLevel<br>TcpConnectionRundown<br>TcpDelayOrScheduleAck<br>TcpDequeueTcbSend<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpGetAndReadLockPartitionAtDpcLevel<br>TcpGetAndWriteLockPartitionAtDpcLevel<br>TcpInsertTcb<br>TcpInspectReceive<br>TcpMatchReceive<br>TcpMppIsCandidate<br>TcpPartitionGetNextExpirationTick<br>TcpPortPoolReferenceFunction<br>TcpPortPropertyGetAllParameters<br>TcpProcessExpiredSynTcbTimers<br>TcpProcessExpiredTcbTimers<br>TcpProcessExpiredTimeWaitTcbTimers<br>TcpProcessFastDatagramBatch<br>TcpRemoveTcb<br>TcpResizeHashTablesForProcessor<br>TcpStartTimerTcbInternal<br>TcpTcbAcceptDatagram<br>TcpTcbReceive<br>TcpTcbSend<br>TcpUpdateIsnGenerator<br>TlShimCacheMatchedFilterList<br>TlShimLookupLayerCache<br>UdpCountEndpoints<br>UdpEnumerateEndpoints<br>UdpPortPoolReferenceFunction<br>UdpReceiveDatagrams<br>UdpSendMessages<br>WfpAleAcquireEndpoint<br>WfpAleAcquireEndpointContextFromHandle<br>WfpAleFindTupleStateEntry<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4</details>|<details><summary>Expand for full list:<br>InetFindAndReferenceAf<br>InetLookupPortEndpoint<br>IpEnumerateAllInterfaces<br>IpFlcUpdateSubInterface<br>IpGetAllInterfaceParameters<br>IpNlpConfirmForwardReachability<br>IpNlpSetSessionInfo<br>IppAddAutoConfiguredRoutesForAddress<br>IppAddressSetGetNextExpirationTick<br>IppAddressSetTimeout<br>IppCommitSetAllLocalAddressParameters</summary>IppCompartmentSetGetNextExpirationTick<br>IppCreateSubInterface<br>IppDadAnnouncementGetNextExpirationTick<br>IppDadAnnouncementTimeout<br>IppDeleteAutoConfiguredRoutesForAddress<br>IppDeleteNeighbor<br>IppDeleteNeighborsUnderNSLock<br>IppEnumerateInterfaceAddresses<br>IppEphemeralLoopbackAddressSetTimeout<br>IppEvaluateSortInformation<br>IppFillInterfaceData<br>IppFillUnicastRouteData<br>IppFindAddressInAddressSet<br>IppFindAddressInScopeEx<br>IppFindAddressOnInterfaceEx<br>IppFindAnySubInterfaceOnInterface<br>IppFindBestSourceAddressOnHost<br>IppFindBestSourceAddressOnInterfaceUnderLock<br>IppFindCompartmentById<br>IppFindInterfaceByIndex<br>IppFindInterfaceByLuid<br>IppFindInterfaceForThread<br>IppFindNeighborUnderNSLock<br>IppFindNextHopAtDpc<br>IppFindNextHopInForwardPathSet<br>IppFindOrCreateLocalEphemeralAddressAtDpc<br>IppFindOrCreateNeighborAtDpc<br>IppFindOrCreatePath<br>IppFindPath<br>IppForwardMulticastPackets<br>IppGetAllBestRouteParameters<br>IppGetCompartment<br>IppGetNeighborReachability<br>IppGetNextCompartment<br>IppGetNextHopFromPath<br>IppGetNextInterfaceForThread<br>IppGetNextRoute<br>IppGetRouteFromPath<br>IppGetRouteKey<br>IppGetThreadCompartmentInfo<br>IppHandleNeighborAdvertisement<br>IppHandleNeighborSolicitation<br>IppInsertNeighbor<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLinkLocalAddressConfigurationTimeout<br>IppLookupPrefixPolicy<br>IppMfeSetTimeOut<br>IppMorphNeighborAtDpc<br>IppMulticastDiscoveryGetNextExpirationTick<br>IppNeighborSetTimeout<br>IppNeighborSolicitationWorker<br>IppPathSetTimeout<br>IppProbeNeighborReachability<br>IppPruneNeighborSet<br>IppResetNeighborsUnderNSLock<br>IppRouteSetGetNextExpirationTick<br>IppSetInterfaceMtuAtDpc<br>IppUpdateBestSourceAddress<br>IppUpdateUnicastRoute<br>Ipv4SetAllRouteParameters<br>Ipv6SetAllRouteParameters<br>Ipv6pHandleAnycastAdvertisementTimeout<br>Ipv6pInterfaceSetGetNextExpirationTick<br>Ipv6pRouterDiscoveryTimeout<br>Ipv6pRouterDnsGetNextExpirationTick<br>Ipv6pRouterDnsTimeout<br>QimInspectCreateEndpoint<br>QimMatchPolicyForTCPConnection<br>RawActivateEndpointBindRequestComplete<br>RawBindEndpointRequestInspectComplete<br>RawCloseEndpoint<br>RawReceiveDatagrams<br>RtlAcquireReadLock<br>RtlAcquireReadLockAtDpcLevel<br>RtlAcquireScalableReadLock<br>RtlAcquireScalableReadLockAtDpcLevel<br>RtlAcquireScalableWriteLockAtDpcLevel<br>RtlAcquireWriteLockAtDpcLevel<br>TcpConnectionRundown<br>TcpDelayOrScheduleAck<br>TcpDequeueTcbSend<br>TcpEnumerateConnections<br>TcpEnumerateListeners<br>TcpGetAndReadLockPartitionAtDpcLevel<br>TcpGetAndWriteLockPartitionAtDpcLevel<br>TcpInsertTcb<br>TcpInspectReceive<br>TcpMatchReceive<br>TcpMppIsCandidate<br>TcpPartitionGetNextExpirationTick<br>TcpPortPoolReferenceFunction<br>TcpPortPropertyGetAllParameters<br>TcpProcessExpiredSynTcbTimers<br>TcpProcessExpiredTcbTimers<br>TcpProcessExpiredTimeWaitTcbTimers<br>TcpProcessFastDatagramBatch<br>TcpRemoveTcb<br>TcpResizeHashTablesForProcessor<br>TcpStartTimerTcbInternal<br>TcpTcbAcceptDatagram<br>TcpTcbReceive<br>TcpTcbSend<br>TcpUpdateIsnGenerator<br>TlShimCacheMatchedFilterList<br>TlShimLookupLayerCache<br>UdpCountEndpoints<br>UdpEnumerateEndpoints<br>UdpPortPoolReferenceFunction<br>UdpReceiveDatagrams<br>UdpSendMessages<br>WfpAleAcquireEndpoint<br>WfpAleAcquireEndpointContextFromHandle<br>WfpAleFindTupleStateEntry<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4</details>|
|paramcount|0|0|
|address|EXTERNAL:000000f1|EXTERNAL:000000f1|
|sig|undefined KeAcquireInStackQueuedSpinLockAtDpcLevel(void)|undefined KeAcquireInStackQueuedSpinLockAtDpcLevel(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel Calling Diff


```diff
--- NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel calling
+++ NTOSKRNL.EXE::KeAcquireInStackQueuedSpinLockAtDpcLevel calling
@@ -13 +12,0 @@
-IppCreateForwardPath
```


## NTOSKRNL.EXE::KeQueryInterruptTimePrecise

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|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|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeQueryInterruptTimePrecise|KeQueryInterruptTimePrecise|
|fullname|NTOSKRNL.EXE::KeQueryInterruptTimePrecise|NTOSKRNL.EXE::KeQueryInterruptTimePrecise|
|`refcount`|4|5|
|length|0|0|
|called|||
|`calling`|AleGetTickCount<br>WfpAlepAuthTelemetry|AleGetTickCount<br>WfpAleAuthorizeSend<br>WfpAlepAuthTelemetry|
|paramcount|0|0|
|`address`|EXTERNAL:0000014a|EXTERNAL:0000014b|
|sig|undefined KeQueryInterruptTimePrecise(void)|undefined KeQueryInterruptTimePrecise(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeQueryInterruptTimePrecise Calling Diff


```diff
--- NTOSKRNL.EXE::KeQueryInterruptTimePrecise calling
+++ NTOSKRNL.EXE::KeQueryInterruptTimePrecise calling
@@ -1,0 +2 @@
+WfpAleAuthorizeSend
```


## INETADDR_SETSOCKADDR

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.73|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|INETADDR_SETSOCKADDR|INETADDR_SETSOCKADDR|
|fullname|INETADDR_SETSOCKADDR|INETADDR_SETSOCKADDR|
|`refcount`|122|123|
|length|400|400|
|called|||
|`calling`|<details><summary>Expand for full list:<br>AleInspectAcceptRequest<br>AleTerminateTcpConnection<br>FUN_1401c33cf<br>FUN_1401c5c22<br>FillAddressEntry<br>InetLogPacketDrop<br>IppDadComplete<br>IppFindNextHopAtDpc<br>IppFindNextHopAtDpcForForwarding<br>IppFindNextHopInFwdCacheOrRouteTable<br>IppFragmentPackets</summary>IppGetAddressesFromRoute<br>IppLogHwUsoFailure<br>IppLogPacketDiscard<br>IppLogPbrFailure<br>IppLogRouteBlockedEvent<br>IppLogRouteDgdStateChange<br>IppLogRouteLookupEvent<br>IppLogRouteSelectionEvent<br>IppLogSourceConstraint<br>IppLogSrcAddrLookupEvent<br>IppLogStandbyTransitionAdjustment<br>IppLoopbackEnqueue<br>IppNotifyAddressChange<br>IppProtocolNeighborRundown<br>IppProtocolRouteRundown<br>IppRefreshRouteLifetimes<br>IppTraceAddressChangeNotificationEvent<br>IppTraceDadStateChangeEvent<br>IppTraceDisconnectInterface<br>IppTraceNeighborChangeNotificationEvent<br>IppTraceNeighborDiscovery<br>IppTraceNeighborReset<br>IppTraceNeighborState<br>IppTraceWolAddress<br>IppTraceWolContext<br>IppUpdateBestSourceAddress<br>LogEtwIcmpDrop<br>LogEtwIcmpMessage<br>LruCleanupDpcRoutine<br>ProcessRedirectLayerForNonNativeTCP<br>TcpConnectionRundown<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>TcpEnumerateBoundEndpoints<br>TcpEnumerateConnections<br>TcpIoControlEndpoint<br>TcpRemoveTcbTuple<br>TcpRemoveTimewaitTcbTuple<br>TcpSelectWildcardPort<br>TcpTraceConnectionSummary<br>TlShimGetRedirectRecordForNonTCPEndpoint<br>UdpConnectRedirect<br>UdpIoControlEndpoint<br>WfpAleInsertRemoteEndpoint<br>WfpAlepAcceptRedirectToProxyClassify<br>WfpAlepDeleteEntryFromTable</details>|<details><summary>Expand for full list:<br>AleInspectAcceptRequest<br>AleTerminateTcpConnection<br>FUN_1401c4f66<br>FUN_1401c6b2f<br>FillAddressEntry<br>InetLogPacketDrop<br>IppDadComplete<br>IppFindNextHopAtDpc<br>IppFindNextHopAtDpcForForwarding<br>IppFindNextHopInFwdCacheOrRouteTable<br>IppFragmentPackets</summary>IppGetAddressesFromRoute<br>IppLogHwUsoFailure<br>IppLogPacketDiscard<br>IppLogPbrFailure<br>IppLogRouteBlockedEvent<br>IppLogRouteDgdStateChange<br>IppLogRouteLookupEvent<br>IppLogRouteSelectionEvent<br>IppLogSourceConstraint<br>IppLogSrcAddrLookupEvent<br>IppLogStandbyTransitionAdjustment<br>IppLoopbackEnqueue<br>IppNotifyAddressChange<br>IppProtocolNeighborRundown<br>IppProtocolRouteRundown<br>IppRefreshRouteLifetimes<br>IppTraceAddressChangeNotificationEvent<br>IppTraceDadStateChangeEvent<br>IppTraceDisconnectInterface<br>IppTraceNeighborChangeNotificationEvent<br>IppTraceNeighborDiscovery<br>IppTraceNeighborReset<br>IppTraceNeighborState<br>IppTraceWolAddress<br>IppTraceWolContext<br>IppUpdateBestSourceAddress<br>LogEtwIcmpDrop<br>LogEtwIcmpMessage<br>LruCleanupDpcRoutine<br>ProcessRedirectLayerForNonNativeTCP<br>TcpConnectionRundown<br>TcpCreateAndConnectTcbWorkQueueRoutine<br>TcpEnumerateBoundEndpoints<br>TcpEnumerateConnections<br>TcpIoControlEndpoint<br>TcpRemoveTcbTuple<br>TcpRemoveTimewaitTcbTuple<br>TcpSelectWildcardPort<br>TcpTraceConnectionSummary<br>TlShimGetRedirectRecordForNonTCPEndpoint<br>UdpConnectRedirect<br>UdpConnectRedirectObsolete<br>UdpIoControlEndpoint<br>WfpAleInsertRemoteEndpoint<br>WfpAlepAcceptRedirectToProxyClassify<br>WfpAlepDeleteEntryFromTable</details>|
|paramcount|0|0|
|`address`|140020060|1400152a0|
|sig|undefined INETADDR_SETSOCKADDR(void)|undefined INETADDR_SETSOCKADDR(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### INETADDR_SETSOCKADDR Calling Diff


```diff
--- INETADDR_SETSOCKADDR calling
+++ INETADDR_SETSOCKADDR calling
@@ -3,2 +3,2 @@
-FUN_1401c33cf
-FUN_1401c5c22
+FUN_1401c4f66
+FUN_1401c6b2f
@@ -52,0 +53 @@
+UdpConnectRedirectObsolete
```


## AleInspectConnectRequestProcessLocalAddressRedirection

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.92|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AleInspectConnectRequestProcessLocalAddressRedirection|AleInspectConnectRequestProcessLocalAddressRedirection|
|fullname|AleInspectConnectRequestProcessLocalAddressRedirection|AleInspectConnectRequestProcessLocalAddressRedirection|
|`refcount`|3|2|
|length|278|278|
|called|NETIO.SYS::KfdClassify<br>__security_check_cookie|NETIO.SYS::KfdClassify<br>__security_check_cookie|
|`calling`|AleInspectConnectRequest<br>AleInspectConnectRequestComplete|AleInspectConnectRequestComplete|
|paramcount|0|0|
|`address`|14011470c|14010b2dc|
|sig|undefined AleInspectConnectRequestProcessLocalAddressRedirection(void)|undefined AleInspectConnectRequestProcessLocalAddressRedirection(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AleInspectConnectRequestProcessLocalAddressRedirection Calling Diff


```diff
--- AleInspectConnectRequestProcessLocalAddressRedirection calling
+++ AleInspectConnectRequestProcessLocalAddressRedirection calling
@@ -1 +0,0 @@
-AleInspectConnectRequest
```


## _tlgWriteAgg

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.82|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|_tlgWriteAgg|_tlgWriteAgg|
|fullname|_tlgWriteAgg|_tlgWriteAgg|
|`refcount`|10|9|
|length|366|366|
|called|InsertEventEntryInLookUpTable<br>NTOSKRNL.EXE::EtwWriteTransfer|InsertEventEntryInLookUpTable<br>NTOSKRNL.EXE::EtwWriteTransfer|
|`calling`|FUN_1401d2b5d<br>IpGetAllResolveNeighborParameters<br>IpNlpSetSessionInfo<br>IppTraceNsUnderDs<br>Ipv6pFragmentPacketHelper<br>RawCreateEndpoint<br>TraceVailGuestPortFailure|FUN_1401d2667<br>IpGetAllResolveNeighborParameters<br>IpNlpSetSessionInfo<br>IppTraceNsUnderDs<br>Ipv6pFragmentPacketHelper<br>RawCreateEndpoint<br>TraceVailGuestPortFailure|
|paramcount|0|0|
|`address`|1400d26c0|1400cc600|
|sig|undefined _tlgWriteAgg(void)|undefined _tlgWriteAgg(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### _tlgWriteAgg Calling Diff


```diff
--- _tlgWriteAgg calling
+++ _tlgWriteAgg calling
@@ -1 +1 @@
-FUN_1401d2b5d
+FUN_1401d2667
```


## AlepCleanupModifiedConnectRedirectLayerData

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.67|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|AlepCleanupModifiedConnectRedirectLayerData|AlepCleanupModifiedConnectRedirectLayerData|
|fullname|AlepCleanupModifiedConnectRedirectLayerData|AlepCleanupModifiedConnectRedirectLayerData|
|`refcount`|5|2|
|length|45|45|
|called|AlepFreeCloneConnectRedirectLayerData|AlepFreeCloneConnectRedirectLayerData|
|`calling`|AleInspectConnectRequest<br>AleInspectConnectRequestComplete|AleInspectConnectRequestComplete|
|paramcount|0|0|
|`address`|1401146d8|14010b2a8|
|sig|undefined AlepCleanupModifiedConnectRedirectLayerData(void)|undefined AlepCleanupModifiedConnectRedirectLayerData(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### AlepCleanupModifiedConnectRedirectLayerData Calling Diff


```diff
--- AlepCleanupModifiedConnectRedirectLayerData calling
+++ AlepCleanupModifiedConnectRedirectLayerData calling
@@ -1 +0,0 @@
-AleInspectConnectRequest
```


## InetSetInterfacePropertyAf

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.84|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|InetSetInterfacePropertyAf|InetSetInterfacePropertyAf|
|fullname|InetSetInterfacePropertyAf|InetSetInterfacePropertyAf|
|`refcount`|7|8|
|length|110|110|
|called|IpNlpSetInterfaceProperty<br>_guard_dispatch_icall|IpNlpSetInterfaceProperty<br>_guard_dispatch_icall|
|calling|InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>OlmRssSetInterface<br>TcpPlumbWakePattern<br>UdpOffloadSendUroOid|InetWakeAcquirePortAf<br>InetWakeReleasePortAf<br>OlmRssSetInterface<br>TcpPlumbWakePattern<br>UdpOffloadSendUroOid|
|paramcount|0|0|
|`address`|140110c48|140112df8|
|sig|undefined InetSetInterfacePropertyAf(void)|undefined InetSetInterfacePropertyAf(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## NTOSKRNL.EXE::IoQueueWorkItem

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|IoQueueWorkItem|IoQueueWorkItem|
|fullname|NTOSKRNL.EXE::IoQueueWorkItem|NTOSKRNL.EXE::IoQueueWorkItem|
|`refcount`|65|66|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>FUN_1401df952<br>FlDetachClient<br>FlDetachFlsClient<br>FlRdmaBindAdapter<br>FlRdmaPnpEvent<br>FlRdmaUnbindAdapter<br>FlTeredoNotifyChange<br>FlTeredoPortNotifyChange<br>FlTunnelNotifyChange<br>FlpEdgeTraversalCalloutNotify<br>FlpEdgeTraversalReclassify</summary>FlpSerializedNdisRequestUnderLock<br>IPSecAllocateAndQueueWorkItem<br>InetDereferenceLocalAddressAf<br>InetReleaseWeakReferencePort<br>IpDetachIpsClient<br>IpEnumerateAllInterfaces<br>IpGetAllInterfaceParameters<br>IpGetAllRouteParameters<br>IpNlpDereferenceCompartment<br>IppCleanupSubInterface<br>IppCreateSortedAddressPairs<br>IppDeferNetworkStateUpdateProcessing<br>IppDereferenceCompartment<br>IppDereferenceInterface<br>IppDereferenceNlClient<br>IppDereferenceSubInterface<br>IppFindInterfaceForThread<br>IppGetAllBestRouteParameters<br>IppGetNextInterfaceForThread<br>IppGetThreadCompartmentInfo<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppInspectQueryRealNextHopInterface<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbIndicatePacketsToIpsServiceChain<br>IppLbTransmitAdaptiveOrWorkerMode<br>IppNotifyDad<br>IppNotifyMfeChange<br>IppProcessDeliverList<br>IppResetMulticastTimer<br>IppResolveNeighbor<br>IppSetOffloadChange<br>IppUpdatePathNotification<br>IppValidateSettingsOnReconnect<br>IpsLbNotifyDetachProvider<br>Ipv6pReassembleDatagram<br>LwEnqueueEx<br>TcpCleanupEndpointWorkQueueRoutine<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4<br>WfpSysTimerQueuePassiveCallback<br>_InetDereferenceCompartmentAf</details>|<details><summary>Expand for full list:<br>FUN_1401da9c6<br>FlDetachClient<br>FlDetachFlsClient<br>FlRdmaBindAdapter<br>FlRdmaPnpEvent<br>FlRdmaUnbindAdapter<br>FlTeredoNotifyChange<br>FlTeredoPortNotifyChange<br>FlTunnelNotifyChange<br>FlpEdgeTraversalCalloutNotify<br>FlpEdgeTraversalReclassify</summary>FlpSerializedNdisRequestUnderLock<br>IPSecAllocateAndQueueWorkItem<br>InetDereferenceLocalAddressAf<br>InetReleaseWeakReferencePort<br>IpDetachIpsClient<br>IpEnumerateAllInterfaces<br>IpGetAllInterfaceParameters<br>IpGetAllRouteParameters<br>IpNlpDereferenceCompartment<br>IppCleanupSubInterface<br>IppCreateSortedAddressPairs<br>IppDeferNetworkStateUpdateProcessing<br>IppDereferenceCompartment<br>IppDereferenceInterface<br>IppDereferenceNlClient<br>IppDereferenceSubInterface<br>IppFindInterfaceForThread<br>IppGetAllBestRouteParameters<br>IppGetNextInterfaceForThread<br>IppGetThreadCompartmentInfo<br>IppInspectFindInterfaceByIndex<br>IppInspectInjectReceive<br>IppInspectInjectReceiveEx<br>IppInspectQueryRealNextHopInterface<br>IppIsCompartmentAccessibleByThread<br>IppJoinPath<br>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbIndicatePacketsToIpsServiceChain<br>IppLbTransmitAdaptiveOrWorkerMode<br>IppNotifyDad<br>IppNotifyMfeChange<br>IppProcessDeliverList<br>IppResetMulticastTimer<br>IppResolveNeighbor<br>IppSetOffloadChange<br>IppUpdatePathNotification<br>IppValidateSettingsOnReconnect<br>IpsLbNotifyDetachProvider<br>Ipv6pReassembleDatagram<br>LwEnqueueEx<br>TcpCleanupEndpointWorkQueueRoutine<br>WfpAleAuthorizeSend<br>WfpGetProfileIdFromInterface<br>WfpGetProfileIdFromPacketInbound<br>WfpInspectReceiveControlShimV4<br>WfpSysTimerQueuePassiveCallback<br>_InetDereferenceCompartmentAf</details>|
|paramcount|0|0|
|address|EXTERNAL:00000097|EXTERNAL:00000097|
|sig|undefined IoQueueWorkItem(void)|undefined IoQueueWorkItem(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::IoQueueWorkItem Calling Diff


```diff
--- NTOSKRNL.EXE::IoQueueWorkItem calling
+++ NTOSKRNL.EXE::IoQueueWorkItem calling
@@ -1 +1 @@
-FUN_1401df952
+FUN_1401da9c6
@@ -52,0 +53 @@
+WfpAleAuthorizeSend
```


## NTOSKRNL.EXE::KeReleaseSpinLock

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|name|KeReleaseSpinLock|KeReleaseSpinLock|
|fullname|NTOSKRNL.EXE::KeReleaseSpinLock|NTOSKRNL.EXE::KeReleaseSpinLock|
|`refcount`|280|281|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br>EQoSpNotifyPolicyChangedWorkItemRoutine<br>FUN_1401d4248<br>FlpEdgeTraversalCalloutClassify<br>FlpEdgeTraversalCalloutNotify<br>FlpEtDeleteEtFilter<br>FlpEtEndpointDeleteNotification<br>HashTableUninitialize<br>Icmpv4pHandleEchoReplyAndError<br>Icmpv6pHandleEchoReplyAndError<br>InetAcquirePort<br>InetWakeAcquirePortAf</summary>InetWakeIsValidWakePort<br>InetWakeReleasePortAf<br>IpEnumerateFeatureFallbackParameters<br>IpGetAllTunnelPhysicalInterface<br>IpNlpFeatureFallbackCheck<br>IpNlpFeatureFallbackFlush<br>IpNlpFeatureFallbackUpdate<br>IpNlpSetPathInfo<br>IpSetAllTunnelPhysicalInterface<br>IppAddOrRemoveBandwidthListeners<br>IppCheckReassemblyQuota<br>IppCleanupEchoRequestManager<br>IppCleanupLocalAddress<br>IppCleanupPhysicalInterfaceRequestManager<br>IppCreateAndInsertFragmentIntoGroup<br>IppCreateInReassemblySet<br>IppCreatePhysicalInterfaceRequest<br>IppDeleteSitePrefixes<br>IppDereferenceAddressPrimitive<br>IppDereferenceLocalAddress<br>IppDereferenceLocalAddressIdentifier<br>IppDiscoverPhysicalInterfaceRequestComplete<br>IppFillPathInformation<br>IppFindBestDropCandidateInSet<br>IppFindLocationInFragmentGroup<br>IppFindOrCreateGroupForFragment<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindSitePrefix<br>IppGetFirstCompartmentSitePrefix<br>IppGetNextSitePrefix<br>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbTransmitWorker<br>IppLoadOrCreateLocationTableForNetwork<br>IppLocalitySetManagedAddressConfig<br>IppLocalitySetOtherStatefulAddressConfig<br>IppNeighborSetTimeout<br>IppNeighborSolicitationWorker<br>IppPathRandomizeIdentifiers<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPersistNetworkTable<br>IppPopulateNetworkTable<br>IppReassemblyFindLocation<br>IppReassemblyInterfaceCleanup<br>IppRemoveFromReassemblySet<br>IppRemoveNeighborFromNSQueue<br>IppResolveNeighbor<br>IppTimerPowerStateChangeHandler<br>Ipv4GetAllEchoRequestParameters<br>Ipv4SendEchoRequestComplete<br>Ipv4SetAllEchoRequestParameters<br>Ipv4SetEchoRequestCreate<br>Ipv6GetAllEchoRequestParameters<br>Ipv6SendEchoRequestComplete<br>Ipv6SetAllEchoRequestParameters<br>Ipv6SetEchoRequestCreate<br>Ipv6SitePrefixMatch<br>Ipv6pResetAutoConfiguredRoutes<br>Ipv6pUpdateSitePrefix<br>LwUnlockQueue<br>MicrosoftTelemetryAssertTriggeredWorker<br>OlmActivateAfInterface<br>OlmGetNextRscInterface<br>OlmNotifyAddInterface<br>OlmNotifyDeleteInterface<br>OlmNotifyDetachAf<br>OlmNotifyOffloadEventInterface<br>OlmNotifyRscIncompatibleCallout<br>OlmNotifyWakeEventInterface<br>OlmProcessRscStateChange<br>OlmQuerySetRscCapabilities<br>OlmQueryTcpInterfaceParametersByLuid<br>OlmSetTcpInterfaceParametersByLuid<br>OlmUpdateInterface<br>OlmUpdateTcpGlobalParameters<br>OlmWorkQueueRoutine<br>PplpLazyInitializeLookasideList<br>RngGetBufferRngPool<br>RssFindNewBindingForAdapter<br>RssGetProcessorAffinity<br>RssInsertAdapter<br>RssQueryScalabilityInfo<br>RssQueueUpdateAllAdapters<br>RssRemoveAdapter<br>RssRundown<br>RssStartStaticAdapter<br>RssUpdateAdapter<br>RssUpdateAdapterLinkSpeed<br>RssWorkQueueRoutine<br>TcpAbortTcb<br>TcpArmGlobalTimer<br>TcpBindEndpointInspectComplete<br>TcpBindEndpointRequestInspectComplete<br>TcpCloseEndpoint<br>TcpCloseSynTcb<br>TcpCloseTcb<br>TcpCompleteAcceptSynTcb<br>TcpCreateAndConnectTcb<br>TcpCreateAndConnectTcbCancelRoutine<br>TcpCreateAndConnectTcbInspectConnectComplete<br>TcpDeliverInput<br>TcpDequeueTcbInput<br>TcpDisconnectTcb<br>TcpEnqueueTcbSend<br>TcpEnumerateBoundEndpoints<br>TcpEnumerateConnections<br>TcpFindReceiveProcessorTcb<br>TcpFinishDeferredPortSelection<br>TcpFlushTcbInput<br>TcpGetSockOptTcb<br>TcpHandleSockOptSioWakeEndpoint<br>TcpInjectFin<br>TcpIoControlEndpoint<br>TcpIoControlTcb<br>TcpIsInterfaceAoAcCapable<br>TcpNotifyAbortDelivery<br>TcpNotifyDisconnectDelivery<br>TcpOlmInterfaceRundown<br>TcpPushRequestReceive<br>TcpRequestReceive<br>TcpRestartTimer<br>TcpResumeConnectionOnListener<br>TcpSendDatagramsComplete<br>TcpSetSockOptEndpoint<br>TcpSetSockOptTcb<br>TcpSynTcbSend<br>TcpSystemAbortTcb<br>TcpTcbHeaderSend<br>TcpTcbProcessNotificationChannelSetup<br>TcpTcbProcessNotificationChannelSetupRequest<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbProcessNotificationChannelUnmarkRequest<br>TcpTcbQueryIpsecMtuAndRetransmit<br>TcpTcbSend<br>TcpTimeWaitTcbSend<br>TcpTlEndpointCloseEndpointCalloutRoutine<br>TcpTlEndpointIoControlEndpointCalloutRoutine<br>TcpipHealthTelemetryTimerRoutine<br>TcpipPowerNsiGetPowerPolicy<br>TcpipPowerNsiSetPowerPolicy<br>TcpipPowerQueryPowerPolicy<br>TcpipUpdateUroDisabledMask<br>UdpBindEndpointRequestInspectComplete<br>UdpOffloadAddInterface<br>UdpOffloadDeleteInterface<br>UdpOffloadDisableUroForIpsec<br>UdpOffloadEnableUroForIpsec<br>UdpOffloadEventInterface<br>UdpOffloadUpdateInterface<br>UdpOffloadUroGetAllStats<br>UdpOffloadWorkQueueRoutine<br>WfpAleStreamLayerChanged</details>|<details><summary>Expand for full list:<br>EQoSpNotifyPolicyChangedWorkItemRoutine<br>FUN_1401df28a<br>FlpEdgeTraversalCalloutClassify<br>FlpEdgeTraversalCalloutNotify<br>FlpEtDeleteEtFilter<br>FlpEtEndpointDeleteNotification<br>HashTableUninitialize<br>Icmpv4pHandleEchoReplyAndError<br>Icmpv6pHandleEchoReplyAndError<br>InetAcquirePort<br>InetWakeAcquirePortAf</summary>InetWakeIsValidWakePort<br>InetWakeReleasePortAf<br>IpEnumerateFeatureFallbackParameters<br>IpGetAllTunnelPhysicalInterface<br>IpNlpFeatureFallbackCheck<br>IpNlpFeatureFallbackFlush<br>IpNlpFeatureFallbackUpdate<br>IpNlpSetPathInfo<br>IpSetAllTunnelPhysicalInterface<br>IppAddOrRemoveBandwidthListeners<br>IppCheckReassemblyQuota<br>IppCleanupEchoRequestManager<br>IppCleanupLocalAddress<br>IppCleanupPhysicalInterfaceRequestManager<br>IppCreateAndInsertFragmentIntoGroup<br>IppCreateInReassemblySet<br>IppCreatePhysicalInterfaceRequest<br>IppDeleteSitePrefixes<br>IppDereferenceAddressPrimitive<br>IppDereferenceLocalAddress<br>IppDereferenceLocalAddressIdentifier<br>IppDiscoverPhysicalInterfaceRequestComplete<br>IppFillPathInformation<br>IppFindBestDropCandidateInSet<br>IppFindLocationInFragmentGroup<br>IppFindOrCreateGroupForFragment<br>IppFindOrCreateLocalAddressIdentifier<br>IppFindSitePrefix<br>IppGetFirstCompartmentSitePrefix<br>IppGetNextSitePrefix<br>IppLbEnqueueAdaptiveOrWorkerMode<br>IppLbTransmitWorker<br>IppLoadOrCreateLocationTableForNetwork<br>IppLocalitySetManagedAddressConfig<br>IppLocalitySetOtherStatefulAddressConfig<br>IppNeighborSetTimeout<br>IppNeighborSolicitationWorker<br>IppPathRandomizeIdentifiers<br>IppPersistAndDeleteLocationTableForNetwork<br>IppPersistNetworkTable<br>IppPopulateNetworkTable<br>IppReassemblyFindLocation<br>IppReassemblyInterfaceCleanup<br>IppRemoveFromReassemblySet<br>IppRemoveNeighborFromNSQueue<br>IppResolveNeighbor<br>IppTimerPowerStateChangeHandler<br>Ipv4GetAllEchoRequestParameters<br>Ipv4SendEchoRequestComplete<br>Ipv4SetAllEchoRequestParameters<br>Ipv4SetEchoRequestCreate<br>Ipv6GetAllEchoRequestParameters<br>Ipv6SendEchoRequestComplete<br>Ipv6SetAllEchoRequestParameters<br>Ipv6SetEchoRequestCreate<br>Ipv6SitePrefixMatch<br>Ipv6pResetAutoConfiguredRoutes<br>Ipv6pUpdateSitePrefix<br>LwUnlockQueue<br>MicrosoftTelemetryAssertTriggeredWorker<br>OlmActivateAfInterface<br>OlmGetNextRscInterface<br>OlmNotifyAddInterface<br>OlmNotifyDeleteInterface<br>OlmNotifyDetachAf<br>OlmNotifyOffloadEventInterface<br>OlmNotifyRscIncompatibleCallout<br>OlmNotifyWakeEventInterface<br>OlmProcessRscStateChange<br>OlmQuerySetRscCapabilities<br>OlmQueryTcpInterfaceParametersByLuid<br>OlmSetTcpInterfaceParametersByLuid<br>OlmUpdateInterface<br>OlmUpdateTcpGlobalParameters<br>OlmWorkQueueRoutine<br>PplpLazyInitializeLookasideList<br>RngGetBufferRngPool<br>RssFindNewBindingForAdapter<br>RssGetProcessorAffinity<br>RssInsertAdapter<br>RssQueryScalabilityInfo<br>RssQueueUpdateAllAdapters<br>RssRemoveAdapter<br>RssRundown<br>RssStartStaticAdapter<br>RssUpdateAdapter<br>RssUpdateAdapterLinkSpeed<br>RssWorkQueueRoutine<br>TcpAbortTcb<br>TcpArmGlobalTimer<br>TcpBindEndpointInspectComplete<br>TcpBindEndpointRequestInspectComplete<br>TcpCloseEndpoint<br>TcpCloseSynTcb<br>TcpCloseTcb<br>TcpCompleteAcceptSynTcb<br>TcpCreateAndConnectTcb<br>TcpCreateAndConnectTcbCancelRoutine<br>TcpCreateAndConnectTcbInspectConnectComplete<br>TcpDeliverInput<br>TcpDequeueTcbInput<br>TcpDisconnectTcb<br>TcpEnqueueTcbSend<br>TcpEnumerateBoundEndpoints<br>TcpEnumerateConnections<br>TcpFindReceiveProcessorTcb<br>TcpFinishDeferredPortSelection<br>TcpFlushTcbInput<br>TcpGetSockOptTcb<br>TcpHandleSockOptSioWakeEndpoint<br>TcpInjectFin<br>TcpIoControlEndpoint<br>TcpIoControlTcb<br>TcpIsInterfaceAoAcCapable<br>TcpNotifyAbortDelivery<br>TcpNotifyDisconnectDelivery<br>TcpOlmInterfaceRundown<br>TcpPushRequestReceive<br>TcpRequestReceive<br>TcpRestartTimer<br>TcpResumeConnectionOnListener<br>TcpSendDatagramsComplete<br>TcpSetSockOptEndpoint<br>TcpSetSockOptTcb<br>TcpSynTcbSend<br>TcpSystemAbortTcb<br>TcpTcbHeaderSend<br>TcpTcbProcessNotificationChannelSetup<br>TcpTcbProcessNotificationChannelSetupRequest<br>TcpTcbProcessNotificationChannelTeardown<br>TcpTcbProcessNotificationChannelUnmarkRequest<br>TcpTcbQueryIpsecMtuAndRetransmit<br>TcpTcbSend<br>TcpTimeWaitTcbSend<br>TcpTlEndpointCloseEndpointCalloutRoutine<br>TcpTlEndpointIoControlEndpointCalloutRoutine<br>TcpipHealthTelemetryTimerRoutine<br>TcpipPowerNsiGetPowerPolicy<br>TcpipPowerNsiSetPowerPolicy<br>TcpipPowerQueryPowerPolicy<br>TcpipUpdateUroDisabledMask<br>UdpBindEndpointRequestInspectComplete<br>UdpOffloadAddInterface<br>UdpOffloadDeleteInterface<br>UdpOffloadDisableUroForIpsec<br>UdpOffloadEnableUroForIpsec<br>UdpOffloadEventInterface<br>UdpOffloadUpdateInterface<br>UdpOffloadUroGetAllStats<br>UdpOffloadWorkQueueRoutine<br>WfpAleStreamLayerChanged</details>|
|paramcount|0|0|
|address|EXTERNAL:0000012f|EXTERNAL:0000012f|
|sig|undefined KeReleaseSpinLock(void)|undefined KeReleaseSpinLock(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### NTOSKRNL.EXE::KeReleaseSpinLock Calling Diff


```diff
--- NTOSKRNL.EXE::KeReleaseSpinLock calling
+++ NTOSKRNL.EXE::KeReleaseSpinLock calling
@@ -2 +2 @@
-FUN_1401d4248
+FUN_1401df28a
```


## _guard_dispatch_icall

### Match Info



|Key|tcpip-06.sys - tcpip-07.sys|
| :---: | :---: |
|diff_type|name,fullname,refcount,length,sig,address,calling,called|
|ratio|0.08|
|i_ratio|0.0|
|m_ratio|0.01|
|b_ratio|0.01|
|match_types|Implied Match|

### Function Meta Diff



|Key|tcpip-06.sys|tcpip-07.sys|
| :---: | :---: | :---: |
|`name`|_guard_dispatch_icall|IppBuildFirstHeader|
|`fullname`|_guard_dispatch_icall|IppBuildFirstHeader|
|`refcount`|6|2|
|`length`|2|520|
|`called`||Feature_DPT_K2_IppBuildHeaderCleanup__private_IsEnabledDeviceUsageNoInline<br>NDIS.SYS::NdisAdvanceNetBufferDataStart<br>NDIS.SYS::NdisRetreatNetBufferDataStart<br>NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache<br>NetioGetDataBufferIfSafe<br>_guard_dispatch_icall<br>memmove|
|`calling`||IppPacketizeDatagramsForHeaderBuild|
|paramcount|0|0|
|`address`|1401c26a0|1400b6b20|
|`sig`|undefined _guard_dispatch_icall(void)|undefined IppBuildFirstHeader(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### _guard_dispatch_icall Called Diff


```diff
--- _guard_dispatch_icall called
+++ IppBuildFirstHeader called
@@ -0,0 +1,7 @@
+Feature_DPT_K2_IppBuildHeaderCleanup__private_IsEnabledDeviceUsageNoInline
+NDIS.SYS::NdisAdvanceNetBufferDataStart
+NDIS.SYS::NdisRetreatNetBufferDataStart
+NTOSKRNL.EXE::MmMapLockedPagesSpecifyCache
+NetioGetDataBufferIfSafe
+_guard_dispatch_icall
+memmove
```


### _guard_dispatch_icall Calling Diff


```diff
--- _guard_dispatch_icall calling
+++ IppBuildFirstHeader calling
@@ -0,0 +1 @@
+IppPacketizeDatagramsForHeaderBuild
```




<sub>Generated with `ghidriff` version: 1.0.0 on 2026-08-28T15:44:51</sub>