;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PpmPerfQosGroupPolicyDisable dd ?	; DATA XREF: PpmPerfCalculateQosClassPolicies:loc_5617D6r
					; PopInitializeHeteroProcessors(x)+68r	...
_PopAggressiveStandbyActionsRegValue dd	? ; DATA XREF: PoInitSystem:loc_AC176Cr
					; INIT:00AF4BB0o
_PopEnableDsNetRefresh dd ?		; DATA XREF: PopNetIsNetworkRefreshEnabled()+10r
					; INIT:00AF4BC8o
_PpmDisableVsyncLatencyUpdate dd ?	; DATA XREF: PopFxGetLatencyLimitWithoutResiliency()+9r
					; INIT:00AF4A18o
_PopEventProcessorEnabled dd ?		; DATA XREF: PopArmIdlePhaseWatchdog(x)+A1r
					; INIT:00AF47D8o
_PopPromoteHibernateToShutdown dd ?	; DATA XREF: PopVerifyPowerActionPolicy+D7r
					; PopIsDozeSupported:loc_8DFAD2r ...
_PpmParkInitialClass1UnParkCount dd ?	; DATA XREF: PpmParkApplyPolicy:loc_573FFAr
					; INIT:00AF46B8o
_PpmPerfBoostAtGuaranteed dd ?		; DATA XREF: PpmPerfSelectProcessorState+14Ar
					; PpmPerfApplyDomainState+33Dr	...
_PpmIpiLastClockOwnerDisable dd	?	; DATA XREF: PoIdle(x)+4A9r
					; INIT:00AF4580o
_PpmMfBufferingThreshold dd ?		; DATA XREF: PpmPerfSelectProcessorState+15r
					; INIT:00AF4598o
_PopModernStandbyDisabled dd ?		; DATA XREF: PopInitPlatformSettings+11A6Ar
					; INIT:00AF4520o
_PopHiberbootEnabledReg	db    ?	;	; DATA XREF: INIT:00AF4370o
		db    ?	;
		db    ?	;
		db    ?	;
_PopHiberForceDisabledReg dd ?		; DATA XREF: PoInitHiberServices:loc_885FD8r
					; INIT:00AF41A8o
unk_70EC44	db    ?	;		; DATA XREF: INIT:00AF41C0o
		db    ?	;
		db    ?	;
		db    ?	;
_PopFlushPolicy	dd ?			; DATA XREF: PopFlushVolumes:loc_729CD6r
					; INIT:00AF4148o
_PopHeteroSystem dd ?			; DATA XREF: PpmPerfCalculateQosClassPolicies+C2r
					; PpmPerfClearBootOverrides+11r ...
_PopDripsWakePeriodAccountingBucketLimitsMs dd ?
					; DATA XREF: PopInitDripsWakeAccounting()+65w
dword_70EC54	dd ?			; DATA XREF: PopInitDripsWakeAccounting()+6Bw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_70ECA8	dd ?			; DATA XREF: PopInitDripsWakeAccounting()+79w
dword_70ECAC	dd ?			; DATA XREF: PopInitDripsWakeAccounting()+80w
_PopDripsWakeIdleAccountingBucketLimitsQpc dd ?
					; DATA XREF: PopInitDripsWakeAccounting()+29w
dword_70ECB4	dd ?			; DATA XREF: PopInitDripsWakeAccounting()+2Fw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_70ECF8	dd ?			; DATA XREF: PopInitDripsWakeAccounting()+3Dw
dword_70ECFC	dd ?			; DATA XREF: PopInitDripsWakeAccounting()+44w
_PopCoordinatedIdleExitTimeout dd ?	; DATA XREF: PpmExitCoordinatedIdleState(x,x)+19r
					; PpmInitIdlePolicy+85w ...
dword_70ED04	dd ?			; DATA XREF: PpmExitCoordinatedIdleState(x,x)+28r
					; PpmInitIdlePolicy+8Bw ...
_PopIdleTransitionTimeout dd ?		; DATA XREF: PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+299r
					; PoInitiateProcessorWake(x)+10Fr ...
dword_70ED0C	dd ?			; DATA XREF: PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+2A4r
					; PoInitiateProcessorWake(x)+11Cr ...
_PopFirmwarePlatformRole dd ?		; DATA XREF: PopDiagTracePlatformRoleRundown()+3Eo
					; PopInitPlatformSettings+ADw ...
_PpmPerfArtificialDomainEnabled	dd ?	; DATA XREF: PpmPerfApplyDomainStates+9r
					; PpmPerfApplyDomainState+A2r ...
_PpmHvPerformanceDistributionShift dd ?	; DATA XREF: PpmCapturePerformanceDistributionCallback(x,x,x)+DCr
					; PoInitSystem+8Fo
_PpmHvPerformanceCounterShift dd ?	; DATA XREF: PpmGetThroughputInfoCallback(x,x,x)+66r
					; PoInitSystem+8Ao
_PpmPerformanceDistributionShift dd ?	; DATA XREF: PpmCapturePerformanceDistributionCallback(x,x,x)+EBr
					; PoInitSystem+75o
_PpmPerformanceCounterShift dd ?	; DATA XREF: PpmGetThroughputInfoCallback(x,x,x)+6Er
					; PoInitSystem+65o
_PopQpcFrequency dd ?			; DATA XREF: PopGetIdleTimesCallback+19Fr
					; PopGetIdleTimesCallback+1E0r	...
dword_70ED2C	dd ?			; DATA XREF: PopGetIdleTimesCallback+199r
					; PopGetIdleTimesCallback+1DAr	...
_PpmPerfQosDisableReasons dd ?		; DATA XREF: PpmPerfUpdateQosDisableReasons+50r
					; PpmPerfUpdateQosDisableReasons+77r ...
_PpmPerfQosDisableRefcount dd ?		; DATA XREF: PpmPerfCalculateQosClassPolicies:loc_561830r
					; PopPowerInformationInternal+171597r ...
_PpmPerfQosDisableAccounting dd	?	; DATA XREF: PpmPerfUpdateQosDisableReasons+25r
					; PpmPerfUpdateQosDisableReasons+68r ...
dword_70ED3C	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons+2Br
					; PpmPerfUpdateQosDisableReasons+6Dr ...
dword_70ED40	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons+31w
					; PpmPerfTelemetryWorker(x)+30r
dword_70ED44	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons+37w
					; PpmPerfTelemetryWorker(x)+3Br
dword_70ED48	dd ?			; DATA XREF: PpmPerfTelemetryWorker(x)+43r
					; PpmPerfTelemetryWorker(x)+5Bw
dword_70ED4C	dd ?			; DATA XREF: PpmPerfTelemetryWorker(x)+4Dr
					; PpmPerfTelemetryWorker(x)+75w
dword_70ED50	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons:loc_5E387Aw
					; PpmPerfTelemetryWorker(x)+61r
dword_70ED54	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons+82274w
					; PpmPerfTelemetryWorker(x)+7Br
dword_70ED58	dd ?			; DATA XREF: PpmPerfTelemetryWorker(x)+69r
					; PpmPerfTelemetryWorker(x)+9Cw
dword_70ED5C	dd ?			; DATA XREF: PpmPerfTelemetryWorker(x)+83r
					; PpmPerfTelemetryWorker(x)+A4w
dword_70ED60	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons:loc_5616A6w
					; PpmPerfTelemetryWorker(x):loc_9A73DDr
dword_70ED64	dd ?			; DATA XREF: PpmPerfUpdateQosDisableReasons+A1w
					; PpmPerfTelemetryWorker(x)+BCr
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_70EDA8	dd ?			; DATA XREF: PpmPerfTelemetryWorker(x)+B6r
					; PpmPerfTelemetryWorker(x)+E4w
dword_70EDAC	dd ?			; DATA XREF: PpmPerfTelemetryWorker(x)+C4r
					; PpmPerfTelemetryWorker(x)+DCw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
byte_70EDF0	db ?			; DATA XREF: PpmCheckResumePpmEngineFromSx()+55w
					; PpmCheckPausePpmEngineForSx()+16w ...
		align 8
_PpmPerfSchedulerDirectedPerfStatesSupported db	?
					; DATA XREF: PpmPerfCalculateQosClassPolicies:loc_5617E2r
					; PopInitializeHeteroProcessors(x):loc_8A0BEFr	...
_PpmPerfVmQosSupported db ?		; DATA XREF: PoSetProcessorQoS(x,x):loc_6481E5r
					; PpmPerfUpdateDomainPolicy:loc_86B036r ...
_PpmPerfQosEnabled db ?			; DATA XREF: PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+399r
					; PpmPerfUpdateQosDisableReasons+3Dr ...
_PpmPerfAutonomousActivityWindowViaPerfControl db ?
					; DATA XREF: PpmPerfCalculateQosClassPolicies:loc_5619E0r
					; PpmGetPolicyAction+12Fr ...
_PpmPerfEppViaPerfControl db ?		; DATA XREF: PpmPerfCalculateQosClassPolicies+287r
					; PpmRegisterPerfStates:loc_92FC33w ...
_PpmIdleCoordinatedMode	db ?		; DATA XREF: PpmIdleSelectCoordinatedProcessorDependency(x,x,x,x,x,x,x)+34r
					; PpmInstallCoordinatedIdleStates(x)+52Bw ...
_PpmPerfQosSupportedAndConfigured db ?	; DATA XREF: PopInitializeHeteroProcessors(x):loc_8A0E5Dw
					; PopPowerInformationInternal+171618r
_PopCoalescingEnforced db ?		; DATA XREF: PopCoalescingSetActiveState(x)+9r
					; PopCoalescingSetActiveState(x)+68r ...
_PpmHeteroQosBias dd ?			; DATA XREF: PpmPerfCalculateQosClassPolicies+387r
					; PopConfigureHeteroPolicies(x,x)+4B2r	...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PpmPerfDomainCount dd ?		; DATA XREF: PpmRegisterPerfStates+64Bw
					; PpmHeteroComputeRelativePerformance+17r ...
_PpmPerfQosIdleExpirationTimeout dd ?	; DATA XREF: PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+626r
					; PopConfigureHeteroPolicies(x,x)+3DCw	...
dword_70EE1C	dd ?			; DATA XREF: PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+62Er
					; PopConfigureHeteroPolicies(x,x)+3D6w	...
_PpmPerfDomainHead dd ?			; DATA XREF: PpmCheckStart:loc_4871BBr
					; PpmCheckStart+141o ...
dword_70EE24	dd ?			; DATA XREF: PpmRegisterPerfStates:loc_8A04F5r
					; PpmRegisterPerfStates+668w ...
_PpmPlatformStates dd ?			; DATA XREF: PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+B23r
					; PpmIdleExecuteTransition(x,x,x,x,x,x,x,x,x,x,x)+B77r	...
_PopCurrentCoalescingSpindownTimeout dd	? ; DATA XREF: PopScanIdleList(x,x,x)+45r
					; PopCoalescingSetActiveState(x)+23w ...
_PpmIdleLastIdleDurationExpirationTime dd ? ; DATA XREF: PoExecuteIdleCheck:loc_5B672Dr
					; PoExecuteIdleCheck+12EE34w
dword_70EE34	dd ?			; DATA XREF: PoExecuteIdleCheck+12EE01r
					; PoExecuteIdleCheck+12EE3Bw
_PpmIdleDurationExpirationTimeout dd ?	; DATA XREF: PoExecuteIdleCheck+12r
					; PpmEstimateIdleDuration(x,x,x,x,x,x,x,x,x,x,x):loc_596BB1r ...
dword_70EE3C	dd ?			; DATA XREF: PoExecuteIdleCheck+1Cr
					; PpmEstimateIdleDuration(x,x,x,x,x,x,x,x,x,x,x)+128r ...
_PopDppeCoalescingSpindownTimeout dd ?	; DATA XREF: PopCoalescingSetActiveState(x)+17r
					; PopCheckResiliencyScenarios+64r ...
_PopEnforcedCoalescingSpindownTimeout dd ? ; DATA XREF:	PopCoalescingSetActiveState(x)+10r
					; PopEnforceResiliencyScenarios+A5F69w	...
_PopHiberSkipMemoryMapValidation db ?	; DATA XREF: PopBuildMemoryImageHeader(x,x)+1D4r
					; PopHiberEvaluateSkippingMemoryMapValidation():loc_ADC42Fw
_PopCriticalShutdownInProgress db ?	; DATA XREF: PAGELK:0071F9B7w
					; PoEnableCriticalShutdown+A1D46w ...
_PopAutomaticDebuggerTransitions db ?	; DATA XREF: PopPepInitializeDebuggerMasks(x,x)+5Cw
					; PopFxDebuggerPowerCriticalTransitionCallback(x,x,x)+5r
_PpmPerfQosSupportedAndAllowed db ?	; DATA XREF: PopInitializeHeteroProcessors(x)+20Dr
					; PopInitializeHeteroProcessors(x)+2F9w
_PopPowerActionResumingWatchdogTimeout dd ?
					; DATA XREF: PopGetPowerActionWatchdogTimeout(x)+17r
					; PopUpdatePowerActionWatchdogTimeouts()+16w ...
_PopPowerActionTransitioningWatchdogTimeout dd ?
					; DATA XREF: PopGetPowerActionWatchdogTimeout(x)+5r
					; PopUpdatePowerActionWatchdogTimeouts()+Cw ...
_PpmParkSoftParkingEnabled db ?		; DATA XREF: PpmParkApplyPolicy+2D9w
					; PpmParkCalculateCoreParkingMask+12A31Ar ...
_PpmHeteroHgsHeteroCoreTypes db	?	; DATA XREF: PpmHeteroDetectHgsCores:loc_5F762Cr
					; PpmHeteroHgsProcessorInit+7E1E4w
_PpmHeteroHighestPerformanceClasses db ? ; DATA	XREF: PopInitializeHeteroProcessors(x)+F8r
					; PpmHeteroComputeRelativePerformance+8ED0Ew
_PpmHeteroNominalPerformanceClasses db ?
					; DATA XREF: PpmPerfSelectProcessorState:loc_48F373r
					; PpmGetPerfPolicyClass+4r ...
_PpmHeteroHgsDisabled dd ?		; DATA XREF: PpmHeteroInitializeHgsSupport+16r
_PpmHeteroCapabilityTest dd ?		; DATA XREF: PopInitializeHeteroProcessors(x)+83r
					; PpmInitHeteroEngine+49w
; void *PpmHeteroCapability
_PpmHeteroCapability dd	?		; DATA XREF: PopInitializeHeteroProcessors(x)+1A0r
					; PopInitializeHeteroProcessors(x)+1DBr ...
_PpmHeteroMinRelativePerformance dd ?	; DATA XREF: PpmHeteroUtilityGreaterThanOrEqualThreshold(x,x,x,x,x,x,x)+6r
					; PpmHeteroComputeRelativePerformance+8EB9Dw ...
_PpmHeteroParkBias dd ?			; DATA XREF: PpmHeteroDistributeUtility()+A7r
					; PopConfigureHeteroPolicies(x,x)+49Er	...
_PpmHeteroHgsUpdateQueued dd ?		; DATA XREF: PpmHeteroDispatchHgsInterrupt()+7o
					; PpmHeteroHgsUpdateWorker(x)+Cw
_PpmHeteroHgsUpdateWorkItem dd ?	; DATA XREF: PpmHeteroInitializeHgsSupport+7E8F5w
					; PpmHeteroHgsUpdateDpcRoutine(x,x,x,x)+2o
		align 8
dword_70EE78	dd ?			; DATA XREF: PpmHeteroInitializeHgsSupport+7E8E5w
dword_70EE7C	dd ?			; DATA XREF: PpmHeteroInitializeHgsSupport+7E8EFw
_PpmHeteroHgsUpdateDpc db    ? ;	; DATA XREF: PpmHeteroInitializeHgsSupport+7E8CAo
					; PpmHeteroDispatchHgsInterrupt()+18o
byte_70EE81	db ?			; DATA XREF: PpmHeteroInitializeHgsSupport+7E8DEw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PpmHeteroHgsTableMdl dd ?		; DATA XREF: PpmCheckResumePpmEngineFromSx()+1Dr
					; PpmHeteroInitializeHgsSupport+7E8FBw
_PpmHeteroHgsInterface dd ?		; DATA XREF: PpmHeteroUpdateHgsConfiguration+83690r
					; PpmHeteroUpdateHgsConfiguration+83854r ...
_PpmHeteroHgsPopulated db ?		; DATA XREF: PpmHeteroDetectHgsCores:loc_5F76B9r
					; PpmHeteroUpdateHgsConfiguration+83642w
_PpmHeteroHgsEnabled db	?		; DATA XREF: PpmHeteroGetHgsEnablementStatus()r
					; PpmCheckResumePpmEngineFromSx()+14r ...
_PopDeepSleepEnforced db ?		; DATA XREF: PopDeepSleepEvaluateCallback(x)+1Fr
					; PopCheckResiliencyScenarios+13r ...
_PsCpuFairShareEnabled db ?		; DATA XREF: PsQueryCpuQuotaInformation+11r
					; PsSetCpuQuotaInformation(x,x,x)+13r ...
_PsIdleProcess	dd ?			; DATA XREF: PsUpdateComponentPower+19r
					; PfpLogApplicationEvent+17Fr ...
_PsDisableDiskCounters dd ?		; DATA XREF: PsIsDiskCountersEnabled()r
					; PspAllocateProcess(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)+283r ...
_PspAlwaysTrackIoBoosting dd ?		; DATA XREF: .text:0051EC53r
					; INIT:00AF40B8o
_PspDisableControlFlowGuardExportSuppression dd	?
					; DATA XREF: PspApplyMitigationOptions(x,x,x,x,x,x,x)+2FFr
					; PspApplyMitigationOptions(x,x,x,x,x,x,x)+361r ...
_PspHwTraceExtensionHost dd ?		; DATA XREF: PsSetProcessFaultInformation:loc_84784Br
					; PsSetProcessFaultInformation+B398Er ...
_PspSystemMitigationOptions dd ?	; DATA XREF: .data:006B1E70o
					; PspAllocateProcess(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)+12F6o ...
dword_70EEC4	dd ?			; DATA XREF: PspInitPhase0+193w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
; void PspSystemMitigationAuditOptions
_PspSystemMitigationAuditOptions dd ?	; DATA XREF: PspAllocateProcess(x,x,x,x,x,x,x,x,x,x,x,x,x,x,x)+1328o
					; PspInitPhase0+1B5o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PspDamExtensionHost dd	?		; DATA XREF: PspCallProcessNotifyRoutines+19r
					; PspCallProcessNotifyRoutines+162B0Br	...
_PspBamExtensionHost dd	?		; DATA XREF: PsQueryActivityModerationUserSettings(x)+Er
					; PsQueryActivityModerationUserSettings(x):loc_65ED18r	...
_PspDfssConfigurationNotify dd ?	; DATA XREF: PspReadDfssConfigurationValues()+B2r
					; PspReadDfssConfigurationValues()+C7w	...
_PspDfssConfigurationKey dd ?		; DATA XREF: PspReadDfssConfigurationValues()+19r
					; PspReadDfssConfigurationValues()+DFw	...
_PspHardenedMitigationOptionsMap dd ?	; DATA XREF: PspHardenMitigationOptions(x)+2Eo
					; PspInitPhase0+33o ...
dword_70EF04	dd ?			; DATA XREF: PspInitPhase0+101r
					; PspInitPhase0+113w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PspMmcssExtensionHost dd ?		; DATA XREF: PspChangeProcessExecutionState+1A2r
					; PspChangeProcessExecutionState+1BBr ...
_PspActivityReferenceObjectType	dd ?	; DATA XREF: PspCreateActivityReference(x,x)+44r
					; PspInitPhase0+5C9o
_PspMemoryReserveObjectTypes dd	?	; DATA XREF: NtQueueApcThreadEx2(x,x,x,x,x,x,x)+81r
					; NtAllocateReserveObject+59r ...
dword_70EF24	dd ?			; DATA XREF: NtSetIoCompletionEx+5Dr
; Exported entry 1868. PsPartitionType
		public _PsPartitionType
_PsPartitionType dd ?			; DATA XREF: PsReferencePartitionByHandle(x,x,x,x,x,x)+4Br
					; KsepCacheDeviceInsertData+A3r ...
; Exported entry 1860. PsJobType
		public _PsJobType
_PsJobType	dd ?			; DATA XREF: PsGetJobProperty(x,x)+37r
					; PsSetJobProperty(x,x,x)+32r ...
; Exported entry 1923. PsThreadType
		public _PsThreadType
_PsThreadType	dd ?			; DATA XREF: PspValidateThread(x)+37r
					; PsGetThreadProperty+58r ...
; Exported entry 1869. PsProcessType
		public _PsProcessType
_PsProcessType	dd ?			; DATA XREF: SmRereferenceProcessObject(x,x,x,x)+6r
					; IopCheckInitiatorHint(x,x)+79r ...
; Exported entry 1839. PsInitialSystemProcess
		public _PsInitialSystemProcess
_PsInitialSystemProcess	dd ?		; DATA XREF: PsUpdateComponentPower:loc_434E71r
					; PsReturnProcessPagedPoolQuota(x,x)+8r ...
_PspCidTable	dd ?			; DATA XREF: .data:006B1AE0o
					; PspProcessDelete+17Ar ...
_PsPrioritySeparation dd ?		; DATA XREF: KiApplyForegroundBoostThread+7Fr
					; KeStartThread+279r ...
_PspSystemPartition dd ?		; DATA XREF: ExQueueWorkItemEx(x,x,x):loc_446610r
					; ExQueueWorkItem:loc_44DB63r ...
_PspResourceFlags db ?			; DATA XREF: PspChargeQuota(x,x,x,x)+11r
					; ExAllocatePoolWithQuotaTag+D4r ...
		align 4
dword_70EF4C	dd ?			; DATA XREF: PspChargeQuota(x,x,x,x)+118r
					; PspRegisterResource+Fw ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PsAltSystemCallHandlers dd ?		; DATA XREF: .data:006B1EB0o
					; PspSanitizeResourceLimits+2Ao ...
		align 10h
_PspSystemPartitionHandle db	? ;	; DATA XREF: PspInitPhase1()+3o
		db    ?	;
		db    ?	;
		db    ?	;
_WmipGuidObjectType dd ?		; DATA XREF: WmipReceiveNotifications+9Er
					; WmipQueryAllData+77r	...
_WmipDefaultAccessSd dd	?		; DATA XREF: WmipCreateGuidObject(x,x,x,x)+1C1r
					; WmipGetGuidSecurityDescriptor:loc_7BAC2Ar ...
_EtwpLastBranchSupportedOptions	dd ?	; DATA XREF: EtwpInitializeLastBranchTracing+82EA9w
					; EtwpUpdateLastBranchTracingConfiguration(x,x)r ...
_WmipDefaultAccessSecurityDescriptor db	   ? ; ; DATA XREF: WmipInitializeSecurity+11Do
					; WmipInitializeSecurity+148o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_EtwpLastBranchStackSize dd ?		; DATA XREF: EtwpTraceLastBranchRecord(x,x,x,x)+ADr
					; EtwpInitializeLastBranchTracing+82EA1w ...
_EtwpSiloAllowedGroupMask dd ?		; DATA XREF: EtwpCheckSiloGroupMasks(x)+3o
					; EtwpInitializeSiloAllowedGroupMask()w ...
dword_70EF9C	dd ?			; DATA XREF: EtwpInitializeSiloAllowedGroupMask()+Fw
dword_70EFA0	dd ?			; DATA XREF: EtwpInitializeSiloAllowedGroupMask()+19w
		align 10h
dword_70EFB0	dd ?			; DATA XREF: EtwpInitializeSiloAllowedGroupMask()+23w
		align 8
_EtwpRegistrationObjectType dd ?	; DATA XREF: .text:00446FEFr
					; FsRtlInsertPerFileContext+C3r ...
_EtwpSessionDemuxObjectType dd ?	; DATA XREF: EtwpInitializePrivateSessionDemuxObject()+69o
					; EtwpQuerySessionDemuxObject(x,x)+6r ...
_PerfGlobalGroupMask dd	?		; DATA XREF: PfHardFaultRecord+3Ar
					; MiIssueHardFault(x,x):loc_44818Ar ...
byte_70EFC4	db ?			; DATA XREF: PspStorageEmptyArrayNonReadonly:loc_4314D2r
					; PspStorageEmptyArrayNonReadonly:loc_43154Cr ...
		db    ?	;
byte_70EFC6	db ?			; DATA XREF: ExpUpdateTimerResolution+65r
					; ExpInsertTimerResolutionEntry+3Cr ...
		align 4
dword_70EFC8	dd ?			; DATA XREF: CmpRemoveHiveFromNamespace(x,x,x)+64r
					; KiResumeThread+254r ...
		align 10h
dword_70EFD0	dd ?			; DATA XREF: CcScheduleReadAheadEx:loc_438A53r
					; CcScheduleReadAheadEx+298r ...
byte_70EFD4	db ?			; DATA XREF: PAGELK:loc_720A97r
		align 10h
_ExCallbackObjectType dd ?		; DATA XREF: ExCreateCallback(x,x,x,x)+3Dr
					; ExCreateCallback(x,x,x,x):loc_7DD7C1r ...
_ExpCacheLineSize dd ?			; DATA XREF: ExAllocateHeapPool:loc_53370Ar
					; ExAllocateHeapPool:loc_53372Br ...
_ExpPoolFlags	dd ?			; DATA XREF: ExpFreePoolChecks+6r
					; ExpFreePoolChecks:loc_505FAAr ...
_ExpPoolQuotaCookie dd ?		; DATA XREF: ExReturnPoolQuota:loc_503F6Er
					; ExpGetBilledProcess+18r ...
; Exported entry 316. ExActivationObjectType
		public _ExActivationObjectType
_ExActivationObjectType	dd ?		; DATA XREF: ExpWin32OpenProcedure+53r
					; ExpWin32OkayToCloseProcedure+5Er ...
; Exported entry 336. ExCoreMessagingObjectType
		public _ExCoreMessagingObjectType
_ExCoreMessagingObjectType dd ?		; DATA XREF: ExpWin32OpenProcedure+5Fr
					; ExpWin32OkayToCloseProcedure+6Ar ...
; Exported entry 410. ExRawInputManagerObjectType
		public _ExRawInputManagerObjectType
_ExRawInputManagerObjectType dd	?	; DATA XREF: ExpWin32OpenProcedure+67r
					; ExpWin32OkayToCloseProcedure+72r ...
; Exported entry 332. ExCompositionObjectType
		public _ExCompositionObjectType
_ExCompositionObjectType dd ?		; DATA XREF: ExpWin32OpenProcedure+6Fr
					; ExpWin32OkayToCloseProcedure+7Ar ...
; Exported entry 344. ExDesktopObjectType
		public _ExDesktopObjectType
_ExDesktopObjectType dd	?		; DATA XREF: ExpWin32OpenProcedure+77r
					; ExpWin32OkayToCloseProcedure+82r ...
; Exported entry 457. ExWindowStationObjectType
		public _ExWindowStationObjectType
_ExWindowStationObjectType dd ?		; DATA XREF: ExpWin32OpenProcedure+7Fr
					; ExpWin32OkayToCloseProcedure+8Ar ...
_ExpTimerFreedCookie db	?		; DATA XREF: ExpCheckForFreedEnhancedTimer+3r
					; ExAllocateTimer:loc_43CEC3r ...
		align 4
_ExpIRTimerObjectType dd ?		; DATA XREF: ExpSetTimer2+A8r
					; .text:0053D1B9r ...
; Exported entry 444. ExTimerObjectType
		public _ExTimerObjectType
_ExTimerObjectType dd ?			; DATA XREF: .text:0053D1C5r
					; ExpSetTimer+53r ...
; Exported entry 354. ExEventObjectType
		public _ExEventObjectType
_ExEventObjectType dd ?			; DATA XREF: .text:0059157Br
					; DbgkCaptureLiveKernelDump(x)+10Er ...
ALMOSTRO	ends

; Section 7. (virtual address 00310000)
; Virtual size			: 00000001 (	  1.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 002B7600
; Flags	C8000040: Data Not pageable Readable Writable
; Alignment	: default
; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

; Segment type:	Pure data
; Segment permissions: Read/Write
CFGRO		segment	para public 'DATA' use32
		assume cs:CFGRO
		;org 710000h
_KiKvaShadow	db 0			; DATA XREF: KiFlushTb+3r
					; KiFlushCurrentTbOnlyr ...
		align 200h
CFGRO		ends

; Section 8. (virtual address 00311000)
; Virtual size			: 00007744 (  30532.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 002B7800
; Flags	C8000040: Data Not pageable Readable Writable
; Alignment	: default
; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

; Segment type:	Pure data
; Segment permissions: Read/Write
CACHEALI	segment	para public 'DATA' use32
		assume cs:CACHEALI
		;org 711000h
_KiClockState	dd 4			; DATA XREF: KeClockInterruptNotify:loc_488043r
					; KeClockInterruptNotify+21Co ...
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
_CmpRegistryLock db    0		; DATA XREF: CmpDoQueryKeyName+6Eo
					; CmpIsRegistryLockContended()+3o ...
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
word_71104E	dw 0			; DATA XREF: ExTryConvertSharedToExclusiveLite(x)r
					; ExpTryConvertSharedToExclusiveLite(x)+41w
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
dword_711058	dd 0			; DATA XREF: ExpTryConvertSharedToExclusiveLite(x)+71o
					; ExpTryConvertSharedToExclusiveLite(x)+7Bw
dword_71105C	dd 0			; DATA XREF: ExpTryConvertSharedToExclusiveLite(x)+89w
dword_711060	dd 0			; DATA XREF: ExpTryConvertSharedToExclusiveLite(x)+2Br
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
unk_711074	db    0			; DATA XREF: ExpTryConvertSharedToExclusiveLite(x)+12o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
_KeNodeBlock	dd 0			; DATA XREF: KeQueryNodeActiveAffinity(x,x,x)+31r
					; KeStartThread+107r ...
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
_KiInitialProcess db	0		; DATA XREF: KeQueryValuesThread+3Co
					; KeQueryPriorityThread(x)+8o ...
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
byte_711134	db 0			; DATA XREF: KiEnableKvaShadowing(x,x)+A5w
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
unk_7111B8	db    0			; DATA XREF: KiInitializeIdleThread(x,x,x,x)+129o
					; INIT:00ABFE4Bo
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_711290	dd ?			; DATA XREF: KiInitializeIdleThread(x,x,x,x)+7Fo
					; KiInitializeIdleThread(x,x,x,x)+123w
dword_711294	dd ?			; DATA XREF: KiInitializeIdleThread(x,x,x,x)+ECr
					; KiInitializeIdleThread(x,x,x,x)+FFw ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_711468	db    ?	;		; DATA XREF: KiEnableKvaShadowing(x,x)+A0o
					; KiInitializeIdleThread(x,x,x,x)+136o	...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_ExNode0	db    ?	;		; DATA XREF: KiConfigureInitialNodes(x)+16o
					; KePerformGroupConfiguration(x)+1Bo
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_711608	dd ?			; DATA XREF: KiConfigureInitialNodes(x)+39w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_711654	dd ?			; DATA XREF: KiConfigureInitialNodes(x)+24w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
byte_711664	db ?			; DATA XREF: KiConfigureInitialNodes(x)+11w
					; KePerformGroupConfiguration(x)+9w
byte_711665	db ?			; DATA XREF: KiConfigureInitialNodes(x)+5w
					; KePerformGroupConfiguration(x)w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiPendingTimersMask0 db    ? ;		; DATA XREF: KeInitializeTimerTable+BDo
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiInitialThread db    ? ;		; DATA XREF: KiSystemStartup(x)+29o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_IopTimerLock	dd ?			; DATA XREF: IopRemoveTimerFromTimerList(x)+10o
					; IopRemoveTimerFromTimerList(x)+46o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_IopErrorLogLock dd ?			; DATA XREF: .text:005607CAo
					; .text:005647BAo ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
; Exported entry 1014. IoStatisticsLock
		public _IoStatisticsLock
_IoStatisticsLock dd ?			; DATA XREF: INIT:00AC27E5w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KdDebuggerLock	db    ?	;		; DATA XREF: sub_5FB8A3+73o
					; KdAcquireDebuggerLock(x)+12o	...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiReverseStallIpiLock dd ?		; DATA XREF: KeInvalidateAllCaches+3Eo
					; KeInvalidateAllCaches+77o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_IopCancelSpinLock dd ?			; DATA XREF: KiInitPrcb(x,x)+215o
					; KiInitPrcb(x,x)+2DDw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_NonPagedPoolLock dd ?			; DATA XREF: KiInitPrcb(x,x)+20Bo
					; KiInitPrcb(x,x)+2F5w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_IopDatabaseLock dd ?			; DATA XREF: KiInitPrcb(x,x)+229o
					; KiInitPrcb(x,x)+2E9w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_IopVpbSpinLock	dd ?			; DATA XREF: KiInitPrcb(x,x)+21Fo
					; KiInitPrcb(x,x)+2EFw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_NtfsStructLock	dd ?			; DATA XREF: KiInitPrcb(x,x)+23Do
					; KiInitPrcb(x,x)+2FBw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_IopCompletionLock dd ?			; DATA XREF: KiInitPrcb(x,x)+233o
					; KiInitPrcb(x,x)+2E3w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_AfdWorkQueueSpinLock dd ?		; DATA XREF: KiInitPrcb(x,x)+247o
					; KiInitPrcb(x,x)+301w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_CcBcbSpinLock	dd ?			; DATA XREF: KiInitPrcb(x,x)+1EDo
					; KiInitPrcb(x,x)+2CBw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_CcVacbSpinLock	dd ?			; DATA XREF: KiInitPrcb(x,x)+201o
					; KiInitPrcb(x,x)+2D7w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_CcMasterSpinLock dd ?			; DATA XREF: KiInitPrcb(x,x)+1F7o
					; KiInitPrcb(x,x)+2D1w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiFreezeExecutionLock dd ?		; DATA XREF: KiFreezeTargetExecution(x,x)+2Er
					; KeFreezeExecution(x,x)+9Cr ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_ExpResourceSpinLock dd	?		; DATA XREF: ExDeleteResourceLite+2Eo
					; ExDeleteResourceLite:loc_49734Br ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiObjectRundownLocks db    ? ;		; DATA XREF: KiAcquireReleaseObjectRundownLockExclusive(x)+Eo
					; KiActivateWaiterQueueWithNoLocks+16o	...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiFreezeLockBackup dd ?		; DATA XREF: KiFreezeTargetExecution(x,x)+37r
					; KeFreezeExecution(x,x)+12Do ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiTimer2CollectionLock	db    ?	;	; DATA XREF: KeCancelTimer2+58o
					; KeDisableTimer2+11Do	...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PsLoadedModuleSpinLock	dd ?		; DATA XREF: MiAddWorkingSetEntries:loc_46D896o
					; MiAddWorkingSetEntries:loc_46D8D3o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiSchedulingGroupLock db    ? ;	; DATA XREF: KeQuerySchedulingGroupHistory+23o
					; KeSetSchedulingGroupWeights+19o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_AlpcpNextCallbackId dd	?		; DATA XREF: AlpcpAllocateMessage(x,x,x)+78w
					; AlpcpSendLegacySynchronousRequest(x,x,x,x)+11Cw ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_ObsSecurityDescriptorCache dd ?	; DATA XREF: PAGE:00816D70o
					; PAGE:00817090o ...
dword_7171C4	dd ?			; DATA XREF: ObpInitSecurityDescriptorCache()+9w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PspTimeZoneStateBuffer	db    ?	;	; DATA XREF: INIT:00ACD0AFo
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_717B74	dd ?			; DATA XREF: INIT:00ACD06Aw
					; INIT:00AF3560o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_PspHostSiloGlobals db	  ? ;		; DATA XREF: EtwGetKernelTraceTimestampSilo+26o
					; PsGetCurrentServerSiloGlobals():loc_490B89o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_717EF0	dd ?			; DATA XREF: KiExecuteAllDpcs+198r
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_717F48	db    ?	;		; DATA XREF: StartFirstUserProcess+A6o
		db    ?	;
word_717F4A	dw ?			; DATA XREF: StartFirstUserProcess:loc_AD5644r
					; StartFirstUserProcess+99r
		align 10h
unk_717F50	db    ?	;		; DATA XREF: StartFirstUserProcess+E9o
		db    ?	;
word_717F52	dw ?			; DATA XREF: StartFirstUserProcess+2Fr
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
byte_717F61	db ?			; DATA XREF: INIT:00ACD0AAw
		align 8
dword_717F68	dd ?			; DATA XREF: INIT:00ACD0AFw
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_717F7C	dd ?			; DATA XREF: PsGetSiloContext(x,x,x)+8r
					; PsGetPermanentSiloContext+Cr	...
dword_717F80	dd ?			; DATA XREF: INIT:00ACD0A5w
dword_717F84	dd ?			; DATA XREF: INIT:00ACD076w
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_717F8C	dd ?			; DATA XREF: PspInitializeSiloStructures+31w
					; PspInitializeSiloStructures+48r
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
; void SmGlobals
?SmGlobals@@3U_SM_GLOBALS@@A dd	?	; DATA XREF: ST_STORE_SM_TRAITS___StWorkItemProcess+B9o
					; ST_STORE_SM_TRAITS___StWorkItemProcess+122o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_7180B0	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmFeEvictInitiate+6Ao
					; SMKM_STORE_MGR_SM_TRAITS___SmFeEvictInitiate+9Ao ...
		db    ?	;
		db    ?	;
		db    ?	;
unk_7180B4	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmFeEvictInitiate+7Ao
					; SMKM_STORE_MGR<SM_TRAITS>::SmFeSetEvictFailed(SMKM_STORE_MGR<SM_TRAITS> *,_SM_PAGE_KEY *,ulong,ulong)+79o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_7182C0	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmWorkItemFree+12Bo
					; SMKM_STORE_MGR_SM_TRAITS___SmPageRead:loc_54BEA2o
		db    ?	;
		db    ?	;
		db    ?	;
word_7182C4	dw ?			; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmWorkItemFree+11Er
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_718320	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmWorkItemFree+6Bo
					; MiWriteComplete+4E7o	...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_718328	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmpPageEvict+55o
					; SMKM_STORE_MGR_SM_TRAITS___SmpPageEvict+88o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_71836C	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmPageRead+C3o
					; SMKM_STORE_MGR_SM_TRAITS___SmIoCtxWorkItemComplete+122D34o
		db    ?	;
		db    ?	;
		db    ?	;
unk_718370	db    ?	;		; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmIoCtxWorkItemComplete+122D6Ao
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
byte_71839E	db ?			; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmIoCtxWorkItemComplete+122D50r
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_7183AC	dd ?			; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmIoCtxWorkItemComplete+8Fr
					; SMKM_STORE_MGR_SM_TRAITS___SmIoCtxWorkItemComplete+122D5Fo
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_718424	dd ?			; DATA XREF: SMKM_STORE_MGR_SM_TRAITS___SmpPageEvict+5Cr
					; SMKM_STORE_MGR_SM_TRAITS___SmIoCtxWorkItemComplete:loc_4993F0r ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_718438	db    ?	;		; DATA XREF: SmcCacheManagerStart(x,x)+30o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_718440	dd ?			; DATA XREF: SmStoreCreate(x,x,x)+52r
					; SmStoreDelete(x,x)+46r ...
		align 10h
dword_718450	dd ?			; DATA XREF: SmFirstTimeInit:loc_4CFE07r
					; SmFirstTimeInit:loc_4CFE24r ...
dword_718454	dd ?			; DATA XREF: SmFirstTimeInit:loc_4CFE3Cr
					; SmFirstTimeInit+46Cw
dword_718458	dd ?			; DATA XREF: SmFirstTimeInit+68r
					; SmFirstTimeInit+2D1w	...
dword_71845C	dd ?			; DATA XREF: SmFirstTimeInit:loc_4CFE14r
					; SmFirstTimeInit+38Ew	...
dword_718460	dd ?			; DATA XREF: SmFirstTimeInit+394w
					; SmFirstTimeInit+4AEr	...
unk_718464	db    ?	;		; DATA XREF: SmFirstTimeInit+5Eo
					; SmFirstTimeInit+E6o ...
		db    ?	;
		db    ?	;
		db    ?	;
byte_718468	db ?			; DATA XREF: SmUpdateMemoryCondition(x,x)+6r
					; SmUpdateMemoryCondition(x,x)+26w ...
byte_718469	db ?			; DATA XREF: SmUpdateMemoryCondition(x,x)+16r
					; SmUpdateMemoryCondition(x,x)+2Fw
		align 4
dword_71846C	dd ?			; DATA XREF: SmFirstTimeInit+478o
					; SMKM_STORE_MGR_SM_TRAITS___SmAsyncReadQueueInsert+E6r
dword_718470	dd ?			; DATA XREF: SmAcquireReleaseResAvailForRead+11r
					; SmAcquireReleaseResAvailForRead+54o ...
dword_718474	dd ?			; DATA XREF: SmFirstTimeInit:loc_4D022Cr
					; SmProcessCreateNotification(x,x)r ...
unk_718478	db    ?	;		; DATA XREF: SmStoreExistsForProcess(x)+10o
					; SmpPageWrite(x,x,x,x,x,x,x)+32o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_718490	dd ?			; DATA XREF: SmpPageWrite(x,x,x,x,x,x,x)+54r
					; SmpProcessQueryStoreStats(x,x):loc_546208r ...
unk_718494	db    ?	;		; DATA XREF: SmProcessConfigRequest+101o
					; MiCreatePagingFile+961DDo
		db    ?	;
		db    ?	;
		db    ?	;
unk_718498	db    ?	;		; DATA XREF: SmQueryStoreInformation+A0o
					; SmSetStoreInformation+135EC9o ...
		db    ?	;
		db    ?	;
		db    ?	;
unk_71849C	db    ?	;		; DATA XREF: SmcVolumePnpNotification(x,x)+70o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_7184A4	db    ?	;		; DATA XREF: SmcVolumePnpNotification(x,x):loc_9E834Bo
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_7185B0	dd ?			; DATA XREF: SmFirstTimeInit:loc_4D0065o
					; SmGetRegistrationInfo+49o ...
unk_7185B4	db    ?	;		; DATA XREF: SMKM_STORE_SM_TRAITS___SmStStart:loc_5C7D12o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_7185C0	db    ?	;		; DATA XREF: SMKM_STORE_SM_TRAITS___SmStStart+1B8o
					; SmFirstTimeInit+432o	...
		db    ?	;
		db    ?	;
		db    ?	;
unk_7185C4	db    ?	;		; DATA XREF: SmFirstTimeInit+F8353o
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_718604	db    ?	;		; DATA XREF: SmFirstTimeInit+454o
					; SMKM_STORE_SM_TRAITS___SmStReadThread+FEo ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
unk_718648	db    ?	;		; DATA XREF: SmEtwEnabled(x)+3Eo
					; ST_STORE_SM_TRAITS___StDmpSinglePageInsert+FB8DBo ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_718650	dd ?			; DATA XREF: SmInitSystem(x)+26w
dword_718654	dd ?			; DATA XREF: ST_STORE_SM_TRAITS___StDmpSinglePageInsert+1B0r
					; SmEtwEnabled(x)+2Fr ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
dword_718664	dd ?			; DATA XREF: ST_STORE<SM_TRAITS>::StDmHandleDecompressionFailure(ST_STORE<SM_TRAITS>::_ST_DATA_MGR *,char *,char *,ST_STORE<SM_TRAITS>::_ST_PAGE_LOCATION *,ST_STORE<SM_TRAITS>::_STDM_READ_CONTEXT *)+206w
					; ST_STORE<SM_TRAITS>::StDmHandleDecompressionFailure(ST_STORE<SM_TRAITS>::_ST_DATA_MGR	*,char *,char *,ST_STORE<SM_TRAITS>::_ST_PAGE_LOCATION *,ST_STORE<SM_TRAITS>::_STDM_READ_CONTEXT *)+20Dr
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_ExpPoolBigEntriesInUse	dd ?		; DATA XREF: ExRemovePoolTag:loc_505E61w
					; ExFreeHeapPool+5B0o ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
; Exported entry 1319. KeTickCount
		public _KeTickCount
_KeTickCount	dd ?			; DATA XREF: KeQueryValuesThread:loc_435F9Er
					; KeQueryValuesThread:loc_436231r ...
dword_7186C4	dd ?			; DATA XREF: KiGroupSchedulingQuantumEnd+12r
					; SMKM_STORE_SM_TRAITS___SmStWorkItemGet+102r ...
dword_7186C8	dd ?			; DATA XREF: KiGroupSchedulingQuantumEnd:loc_443748r
					; SMKM_STORE_SM_TRAITS___SmStWorkItemGet+118r ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiCacheFlushTimeStamp dd ?		; DATA XREF: MiWorkingSetManager(x,x)+73r
					; MiDereferenceIoPages+234r ...
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
		db    ?	;
_KiTbFlushTimeStamp dd ?		; DATA XREF: .text:00431EE3r
					; .text:00432197r ...
CACHEALI	ends

; Section 9. (virtual address 00319000)
; Virtual size			: 00000001 (	  1.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 002B7A00
; Flags	48000040: Data Not pageable Readable
; Alignment	: default
; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

; Segment type:	Pure data
; Segment permissions: Read
PROTDATA	segment	para public 'DATA' use32
		assume cs:PROTDATA
		;org 719000h
_SeILSigningPolicy db 0			; DATA XREF: .data:_SeILSigningPolicyPtro
					; SepGetSystemSigningLevel()r ...
		align 200h
PROTDATA	ends

; Section 10. (virtual address 0031A000)
; Virtual size			: 00017058 (  94296.)
; Section size in file		: 00017200 (  94720.)
; Offset to raw	data for section: 002B7C00
; Flags	60000020: Text Executable Readable
; Alignment	: default
; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

; Segment type:	Pure code
; Segment permissions: Read/Execute
PAGELK		segment	para public 'CODE' use32
		assume cs:PAGELK
		;org 71A000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiSystemStartup(x)
		public _KiSystemStartup@4
_KiSystemStartup@4 proc	near		; DATA XREF: KiInitializeProcessorState(x,x,x,x,x,x,x,x,x,x)+1E5o

var_E4		= dword	ptr -0E4h
var_20		= byte ptr -20h
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	ebx, [ebp+arg_0]
		mov	ds:_KeLoaderBlock, ebx
		mov	ecx, ds:_KeNumberProcessors
		mov	[ebp+var_18], ecx
		or	ecx, ecx
		jnz	short loc_71A07E
		push	ds:_KeLoaderBlock
		push	0FFFFFFFFh
		call	KdInitSystem
		mov	dword ptr [ebx+54h], offset _KiInitialThread
		sgdt	fword ptr [esp+20h+var_20]
		mov	edx, dword ptr [esp+20h+var_20+2]
		add	edx, 30h
		mov	dword ptr [edx+4], offset dword_409200
		mov	eax, [ebx+4Ch]
		sub	eax, 120h
		mov	[edx+2], ax
		shr	eax, 10h
		mov	[edx+4], al
		mov	[edx+7], ah
		mov	word ptr [edx],	6020h
		push	30h
		pop	fs
		assume fs:nothing
		mov	eax, cr0
		and	eax, 0FFFFFFF3h
		or	eax, 22h
		mov	cr0, eax
		mov	eax, cr4
		or	eax, 600h
		mov	cr4, eax
		mov	large fs:4ECh, ecx

loc_71A07E:				; CODE XREF: KiSystemStartup(x)+1Aj
		mov	large dword ptr	fs:8, 1F80h
		ldmxcsr	large dword ptr	fs:8
		mov	eax, [ebx+54h]
		mov	dword ptr [ebp+var_20],	eax
		lea	ecx, [eax+70h]
		mov	[eax+70h], ecx
		mov	[eax+74h], ecx
		mov	eax, [ebx+48h]
		mov	dword ptr [ebp+var_20+4], eax
		call	_KiInitializeMachineType@0 ; KiInitializeMachineType()
		cmp	[ebp+var_18], 0
		jnz	loc_71A140
		call	GetMachineBootPointers@0
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], esi
		mov	[ebp+var_C], edx
		mov	[ebp+var_10], eax
		lea	ecx, [edi+28h]
		mov	byte ptr [ecx+5], 89h
		push	ecx
		push	[ebp+var_C]
		call	_KiInitializeTRTSS@8 ; KiInitializeTRTSS(x,x)
		mov	cx, 28h
		ltr	cx
		push	[ebp+var_4]
		push	[ebp+var_10]
		push	[ebp+arg_0]
		call	_KiInitializeIdtGates@12 ; KiInitializeIdtGates(x,x,x)
		push	0
		push	0
		push	dword ptr [ebp+var_20]
		push	[ebp+var_C]
		push	[ebp+var_4]
		push	[ebp+var_10]
		push	[ebp+var_8]
		push	[ebp+var_18]
		call	_KiInitializePcr@32 ; KiInitializePcr(x,x,x,x,x,x,x,x)
		mov	edx, dword ptr [ebp+var_20]
		mov	ecx, offset _KiInitialProcess
		mov	[edx+80h], ecx
		mov	large dword ptr	fs:18h,	0
		mov	large dword ptr	fs:424h, 0
		mov	large dword ptr	fs:428h, 0
		mov	eax, 23h
		db	66h
		mov	ds, ax
		assume ds:nothing
		db	66h
		mov	es, ax
		assume es:nothing

loc_71A140:				; CODE XREF: KiSystemStartup(x)+AFj
		call	KiProcessorStart
		mov	ecx, [ebp+var_18]
		mov	large fs:51h, cl
		mov	eax, 1
		shl	eax, cl
		mov	large fs:48h, eax
		mov	large fs:14h, eax
		mov	large fs:4E8h, eax
		cmp	[ebp+var_18], 0
		jnz	short loc_71A18A
		push	ds:_KeLoaderBlock
		push	0FFFFFFFFh
		call	_HalInitializeBios@8 ; HalInitializeBios(x,x)
		push	0
		push	ds:_KeLoaderBlock
		push	0FFFFFFFFh
		call	_InbvDriverInitialize@12 ; InbvDriverInitialize(x,x,x)

loc_71A18A:				; CODE XREF: KiSystemStartup(x)+16Cj
		call	_KiInitializeNXSupport@0 ; KiInitializeNXSupport()
		push	[ebp+arg_0]
		push	[ebp+var_18]
		call	ds:__imp__HalInitializeProcessor@8 ; HalInitializeProcessor(x,x)
		cmp	[ebp+var_18], 0
		jnz	short loc_71A1AD
		inc	ds:_KeNumberProcessors
		inc	ds:_KeNumberProcessorsGroup0

loc_71A1AD:				; CODE XREF: KiSystemStartup(x)+19Fj
		cmp	[ebp+var_18], 0
		jnz	short loc_71A1D0
		push	ds:_KeLoaderBlock
		push	0
		call	KdInitSystem
		call	KdPollBreakIn
		or	al, al
		jz	short loc_71A1D0
		push	1
		call	_DbgBreakPointWithStatus@4 ; DbgBreakPointWithStatus(x)

loc_71A1D0:				; CODE XREF: KiSystemStartup(x)+1B1j
					; KiSystemStartup(x)+1C7j
		nop
		push	[ebp+var_18]
		push	ds:_KeLoaderBlock
		call	KiInitializeXSave
		mov	ecx, 1Fh
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		mov	[ebp+var_14], al
		mov	ebx, dword ptr [ebp+var_20]
		mov	edx, dword ptr [ebp+var_20+4]
		mov	eax, [ebp+var_18]
		xor	ebp, ebp
		mov	esp, edx
		sub	esp, ds:_KiXSaveAreaLength
		and	esp, 0FFFFFFC0h
		lea	esp, [esp-0B0h]
		push	ds:_KeLoaderBlock
		push	eax
		push	large dword ptr	fs:20h
		push	edx
		push	ebx
		push	offset _KiInitialProcess
		call	_KiInitializeKernel@24 ; KiInitializeKernel(x,x,x,x,x,x)
		cmp	large byte ptr fs:51h, 0
		jnz	short loc_71A233
		call	_KiInitializeGSCookieValue@0 ; KiInitializeGSCookieValue()

loc_71A233:				; CODE XREF: KiSystemStartup(x)+22Cj
		sti
		mov	ecx, 2
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		mov	ebx, large fs:1Ch

loc_71A246:				; CODE XREF: KiSystemStartup(x)+24Fj
		cmp	ds:_KiBarrierWait, 0
		pause
		jnz	short loc_71A246
		push	0
		jmp	@KiIdleLoop@0	; KiIdleLoop()
_KiSystemStartup@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiDetectFpuLeakage()
_KiDetectFpuLeakage@0 proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+2E2p

var_200		= dword	ptr -200h
var_1F8		= dword	ptr -1F8h
var_1F4		= dword	ptr -1F4h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		and	esp, 0FFFFFFC0h
		fxsave	[esp+200h+var_200]
		fnclex
		ffree	st(7)
		fild	[esp+200h+var_200]
		xor	edx, edx
		dec	edx
		mov	[esp+200h+var_1F8], edx
		fxrstor	[esp+200h+var_200]
		fnsave	byte ptr [esp+200h+var_200]
		mov	ecx, [esp+200h+var_1F4]
		xor	eax, eax
		cmp	edx, ecx
		jz	short loc_71A288
		inc	eax

loc_71A288:				; CODE XREF: KiDetectFpuLeakage()+2Dj
		mov	esp, ebp
		pop	ebp
		retn
_KiDetectFpuLeakage@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall Ki386EnableGlobalPage(x)
_Ki386EnableGlobalPage@4 proc near	; DATA XREF: KiInitMachineDependent+38o

arg_0		= dword	ptr  10h

		push	esi
		push	edi
		push	ebx
		mov	edx, [esp+arg_0]
		pushf
		cli
		lock dec dword ptr [edx]

loc_71A298:				; CODE XREF: Ki386EnableGlobalPage(x)+11j
		pause
		cmp	dword ptr [edx], 0
		jnz	short loc_71A298
		cmp	large byte ptr fs:51h, 0
		jnz	short loc_71A2C1
		mov	edi, offset _KeFlushCurrentTb@0	; KeFlushCurrentTb()
		mov	esi, offset loc_5A242F
		mov	ecx, 19h
		rep movsb
		mov	ds:byte_5A2447,	0

loc_71A2C1:				; CODE XREF: Ki386EnableGlobalPage(x)+1Bj
					; Ki386EnableGlobalPage(x)+3Cj
		cmp	ds:byte_5A2447,	0
		jnz	short loc_71A2C1
		mov	eax, cr4
		mov	ecx, cr3
		mov	cr3, ecx
		or	al, 80h
		mov	cr4, eax
		popf
		pop	ebx
		pop	edi
		pop	esi
		retn	4
_Ki386EnableGlobalPage@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall Ki386EnableDE(x)
_Ki386EnableDE@4 proc near		; CODE XREF: KiConfigureDynamicProcessor()+6p
					; DATA XREF: KiInitMachineDependent+63o
		mov	eax, cr4
		or	eax, 8
		mov	cr4, eax
		retn	4
_Ki386EnableDE@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall Ki386EnableCurrentLargePage(x, x)
_Ki386EnableCurrentLargePage@8 proc near
		mov	eax, eax
		retn	8
_Ki386EnableCurrentLargePage@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
_Ki386EnableCurrentLargePageEnd	db 3 dup(0CCh)

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

GetMachineBootPointers@0 proc near	; CODE XREF: KiSystemStartup(x)+B5p

var_8		= byte ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		sgdt	fword ptr [ebp+var_8]
		mov	edi, dword ptr [ebp+var_8+2]
		mov	cx, fs
		and	cx, 0FFFCh
		movzx	ecx, cx
		add	ecx, edi
		mov	dh, [ecx+7]
		mov	dl, [ecx+4]
		shl	edx, 10h
		mov	dx, [ecx+2]
		mov	esi, edx
		db	66h
		str	cx
		movzx	ecx, cx
		add	ecx, edi
		mov	dh, [ecx+7]
		mov	dl, [ecx+4]
		shl	edx, 10h
		mov	dx, [ecx+2]
		sidt	fword ptr [ebp+var_8]
		mov	eax, dword ptr [ebp+var_8+2]
		mov	esp, ebp
		pop	ebp
		retn
GetMachineBootPointers@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiSetProcessorType()
_KiSetProcessorType@0 proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x):loc_72518Cp
		mov	large byte ptr fs:135h,	0
		push	edi
		push	esi
		push	ebx
		xor	ecx, ecx
		xor	eax, eax
		cpuid
		cmp	ebx, 756E6547h
		jnz	short loc_71A38C
		cmp	ecx, 6C65746Eh
		jnz	short loc_71A38C
		cmp	edx, 49656E69h
		jnz	short loc_71A38C

loc_71A369:				; CODE XREF: KiSetProcessorType()+64j
		mov	eax, 1
		cpuid
		mov	ebx, eax
		mov	edx, eax
		mov	ecx, eax
		and	edx, 0F00h
		cmp	edx, 600h
		jnz	short loc_71A3B9
		and	ebx, 0F00h
		jmp	short loc_71A3CC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A38C:				; CODE XREF: KiSetProcessorType()+17j
					; KiSetProcessorType()+1Fj ...
		cmp	ebx, 746E6543h
		jnz	short loc_71A3A6
		cmp	ecx, 736C7561h
		jnz	short loc_71A3A6
		cmp	edx, 48727561h
		jnz	short loc_71A3A6
		jmp	short loc_71A369
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A3A6:				; CODE XREF: KiSetProcessorType()+52j
					; KiSetProcessorType()+5Aj ...
		mov	eax, 1
		cpuid
		mov	ebx, eax
		mov	edx, eax
		mov	ecx, eax
		and	edx, 0F00h

loc_71A3B9:				; CODE XREF: KiSetProcessorType()+42j
		cmp	edx, 0F00h
		jnz	short loc_71A3DA
		and	ebx, 0FF00000h
		shr	ebx, 0Ch
		add	ebx, edx

loc_71A3CC:				; CODE XREF: KiSetProcessorType()+4Aj
		mov	ah, al
		shr	eax, 4
		mov	al, cl
		and	eax, 0FF0Fh
		jmp	short loc_71A3EF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A3DA:				; CODE XREF: KiSetProcessorType()+7Fj
		and	eax, 0F0h
		shl	eax, 4
		mov	al, bl
		and	eax, 0F0Fh
		and	ebx, 0F00h

loc_71A3EF:				; CODE XREF: KiSetProcessorType()+98j
		mov	large byte ptr fs:135h,	1
		mov	large fs:134h, bh
		mov	large fs:136h, ax
		pop	ebx
		pop	esi
		pop	edi
		retn
_KiSetProcessorType@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopSaveHiberContextWrapper(x)
_PopSaveHiberContextWrapper@4 proc near	; DATA XREF: PopInvokeSystemStateHandler+EFo

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	edi
		cmp	large byte ptr fs:51h, 0
		jnz	short loc_71A43F
		mov	edi, offset _PoWakeState
		mov	ecx, 320h
		xor	eax, eax
		push	edi
		rep stosb
		call	_KeSaveStateForHibernate
		add	esp, 4
		call	PopHiberCheckResume
		test	al, al
		mov	eax, 40000294h
		jnz	short loc_71A447

loc_71A43F:				; CODE XREF: PopSaveHiberContextWrapper(x)+Cj
		push	[ebp+arg_0]
		call	PopSaveHiberContext

loc_71A447:				; CODE XREF: PopSaveHiberContextWrapper(x)+31j
		pop	edi
		pop	ebp
		retn	4
_PopSaveHiberContextWrapper@4 endp ; sp	= -4

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; __stdcall KiRemoveModelSpecificUnsupportedFeatures(x,	x)
_KiRemoveModelSpecificUnsupportedFeatures@8: ; CODE XREF: PAGELK:0072749Ep
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	eax, ecx
		mov	ebx, edx
		push	esi
		push	edi
		xor	esi, esi
		mov	[ebp-4], eax
		xor	edi, edi
		cmp	byte ptr [eax+3BEh], 2
		jnz	short loc_71A47B
		mov	cl, [eax+14h]
		cmp	cl, 10h
		jz	short loc_71A476
		cmp	cl, 12h
		jnz	short loc_71A47B

loc_71A476:				; CODE XREF: PAGELK:0071A46Fj
		push	40h
		xor	esi, esi
		pop	edi

loc_71A47B:				; CODE XREF: PAGELK:0071A467j
					; PAGELK:0071A474j
		cmp	dword ptr [eax+3CCh], 0
		jz	short loc_71A49F
		xor	ecx, ecx
		call	_KeGetPrcb@4	; KeGetPrcb(x)
		mov	ecx, [eax+3D50h]
		mov	eax, [eax+3D54h]
		and	ecx, esi
		and	eax, edi
		or	ecx, eax
		jnz	short loc_71A4AD

loc_71A49F:				; CODE XREF: PAGELK:0071A482j
		not	esi
		not	edi
		and	[ebx], esi
		and	[ebx+4], edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A4AD:				; CODE XREF: PAGELK:0071A49Dj
		mov	eax, [ebp-4]
		xor	ecx, ecx
		push	dword ptr [eax+3CCh]
		call	_KeGetPrcb@4	; KeGetPrcb(x)
		push	dword ptr [eax+3D50h]
		push	esi
		push	4D535546h
		push	5Dh
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		dd 4 dup(0CCCCCCCCh)

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopAcquirePolicyLock()
_PopAcquirePolicyLock@0	proc near	; CODE XREF: PopHandleSystemRequiredPowerRequestsUpdate:loc_43CA58p
					; PopThermalSxExit+Fp ...
		mov	ecx, large fs:124h
		xor	dl, dl
		call	_PsBoostThreadIo@8 ; PsBoostThreadIo(x,x)
		mov	eax, large fs:124h
		dec	word ptr [eax+13Ch]
		nop
		push	1
		push	offset _PopPolicyLock
		call	ExAcquireResourceExclusiveLite
		mov	eax, large fs:124h
		mov	ds:_PopPolicyLockThread, eax
		retn
_PopAcquirePolicyLock@0	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopReleasePolicyLock()
_PopReleasePolicyLock@0	proc near	; CODE XREF: PopHandleSystemRequiredPowerRequestsUpdate+88p
					; PopThermalSxExit:loc_555F38p	...
		mov	edi, edi
		push	ecx
		and	ds:_PopPolicyLockThread, 0
		mov	ecx, offset _PopPolicyLock
		call	ExReleaseResourceLite
		call	PopCheckForWork
		call	_KeLeaveCriticalRegion@0 ; KeLeaveCriticalRegion()
		mov	ecx, large fs:124h
		mov	dl, 1
		call	_PsBoostThreadIo@8 ; PsBoostThreadIo(x,x)
		pop	ecx
		retn
_PopReleasePolicyLock@0	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

RtlCompressWorkSpaceSizeLZNT1 proc near	; DATA XREF: .text:00403FB8o

arg_0		= word ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 0072835C SIZE 00000023 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	loc_72835C
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 8010h

loc_71A55B:				; CODE XREF: RtlCompressWorkSpaceSizeLZNT1+DE2Ej
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax], 1000h
		xor	eax, eax

loc_71A566:				; CODE XREF: RtlCompressWorkSpaceSizeLZNT1:loc_72837Aj
		pop	ebp
		retn	0Ch
RtlCompressWorkSpaceSizeLZNT1 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

KeInitThread:				; CODE XREF: KiInitializeIdleThread(x,x,x,x)+1Dp
					; PspAllocateThread+398p
		push	10h
		push	offset dword_6A0CE8
		call	__SEH_prolog4
		mov	ebx, edx
		mov	edi, ecx
		mov	[ebp-1Ch], edi
		lea	eax, [edi+8]
		mov	[eax+4], eax
		mov	[eax], eax
		lea	eax, [edi+1DCh]
		mov	[eax+4], eax
		mov	[eax], eax
		lea	eax, [edi+0ECh]
		push	4
		pop	ecx

loc_71A599:				; CODE XREF: PAGELK:0071A5A1j
		mov	[eax], edi
		lea	eax, [eax+18h]
		sub	ecx, 1
		jnz	short loc_71A599
		mov	edx, [ebp+1Ch]
		mov	ecx, [edx+64h]
		and	ecx, 1
		or	ecx, 8010h
		shl	ecx, 2
		mov	eax, [edi+5Ch]
		and	eax, 0FFFFFFFBh
		or	ecx, eax
		mov	[edi+5Ch], ecx
		mov	eax, ds:_KiShortExecutionCycles
		shl	eax, 4
		mov	[edi+44h], eax
		mov	dword ptr [edi+3Ch], offset _KeServiceDescriptorTable
		lea	eax, [edi+70h]
		mov	[eax+4], eax
		mov	[eax], eax
		lea	eax, [edi+78h]
		mov	[eax+4], eax
		mov	[eax], eax
		mov	[edi+80h], edx
		mov	[edi+150h], edx
		mov	eax, [edi+58h]
		or	eax, 4000h
		mov	[edi+58h], eax
		cmp	dword ptr [ebp+14h], 0
		jz	loc_71A722

loc_71A603:				; CODE XREF: PAGELK:0071A72Aj
		push	edi
		push	0
		push	offset KiSchedulerApc
		push	offset _KeSetDmaIoCoherency@4 ;	KeSetDmaIoCoherency(x)
		push	offset _KiSchedulerApcNop@20 ; KiSchedulerApcNop(x,x,x,x,x)
		push	0
		push	edi
		lea	eax, [edi+190h]
		push	eax
		call	_KeInitializeApc@32 ; KeInitializeApc(x,x,x,x,x,x,x,x)
		push	1
		push	0
		lea	eax, [edi+1C4h]
		push	eax
		call	_KeInitializeEvent@12 ;	KeInitializeEvent(x,x,x)
		lea	esi, [edi+0B8h]
		push	0
		push	esi
		call	_KeInitializeTimerEx@8 ; KeInitializeTimerEx(x,x)
		and	dword ptr [esi+20h], 0
		lea	eax, [edi+128h]
		mov	dword ptr [eax+8], 1020401h
		add	esi, 8
		mov	ecx, [esi]
		cmp	[ecx+4], esi
		jnz	loc_71A738
		mov	[eax], ecx
		mov	[eax+4], esi
		mov	[ecx+4], eax
		mov	[esi], eax
		mov	eax, [ebp+18h]
		mov	[edi+0A8h], eax
		mov	byte ptr [edi],	6
		mov	byte ptr [ebp+1Bh], 0
		test	ebx, ebx
		jnz	short loc_71A6BB
		mov	eax, large fs:124h
		movzx	ecx, word ptr [eax+168h]
		mov	eax, [ebp+20h]
		test	eax, eax
		jnz	loc_71A72F
		mov	eax, ecx
		mov	ecx, [ebp+1Ch]
		movzx	eax, word ptr [ecx+eax*2+70h]

loc_71A6A1:				; CODE XREF: PAGELK:0071A733j
		push	edi
		movzx	edx, ax
		push	8
		pop	ecx
		call	MmCreateKernelStack
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_72837F
		mov	byte ptr [ebp+1Bh], 1

loc_71A6BB:				; CODE XREF: PAGELK:0071A67Dj
		mov	[edi+20h], ebx
		mov	[edi+28h], ebx
		sub	ebx, ds:_KeKernelStackSize
		mov	[edi+24h], ebx
		mov	al, [edi+62h]
		and	al, 88h
		or	al, 8
		mov	[edi+62h], al
		cmp	ds:_KeHeteroSystem, 0
		jnz	loc_728389

loc_71A6E1:				; CODE XREF: PAGELK:00728391j
		mov	ecx, edi
		call	_KeAbInitializeThreadState@4 ; KeAbInitializeThreadState(x)
		mov	dword ptr [edi+228h], 1
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		mov	edx, [ebp+8]
		call	KiInitializeContextThread
		mov	dword ptr [ebp-4], 0FFFFFFFEh
		xor	eax, eax

loc_71A710:				; CODE XREF: PAGELK:00728384j
					; PAGELK:007283C9j
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	1Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A722:				; CODE XREF: PAGELK:0071A5FDj
		or	eax, 400h
		mov	[edi+58h], eax
		jmp	loc_71A603
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A72F:				; CODE XREF: PAGELK:0071A691j
		dec	eax
		movzx	eax, ax
		jmp	loc_71A6A1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A738:				; CODE XREF: PAGELK:0071A65Bj
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
					; AL = character to display
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 3 dup(0CCh)
		db 2 dup(0CCh)
; Exported entry 277. EmClientQueryRuleState

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	EmClientQueryRuleState(void *,int)
		public EmClientQueryRuleState
EmClientQueryRuleState proc near	; CODE XREF: PopFilterCapabilities+64p
					; PoInitHiberServices+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 007283CE SIZE 00000014 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		push	edi
		cmp	[ebp+arg_0], esi
		jz	loc_7283D8
		mov	edi, [ebp+arg_4]
		test	edi, edi
		jz	loc_7283D8
		mov	dword ptr [edi], 1
		call	_EmpAcquirePagingReference@0 ; EmpAcquirePagingReference()
		test	al, al
		jz	loc_7283CE
		push	ebx
		xor	edx, edx
		mov	ecx, offset _EmpDatabaseLock
		call	ExAcquirePushLockExclusiveEx
		mov	ecx, [ebp+arg_0] ; void	*
		call	_EmpSearchRuleDatabase@4 ; EmpSearchRuleDatabase(x)
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_71A7D7
		mov	ecx, ebx
		call	_EmpSearchTargetRuleList@4 ; EmpSearchTargetRuleList(x)
		mov	[ebp+arg_0], eax
		test	eax, eax
		jz	short loc_71A7D7
		lock inc dword ptr [eax]
		xor	edx, edx
		call	EmpUpdateRuleState
		mov	eax, [ebp+arg_0]
		lock dec dword ptr [eax]
		mov	eax, [ebx+10h]
		mov	[edi], eax

loc_71A7B0:				; CODE XREF: EmClientQueryRuleState+9Aj
		or	eax, 0FFFFFFFFh
		mov	edi, offset _EmpDatabaseLock
		lock xadd [edi], eax
		and	al, 6
		pop	ebx
		cmp	al, 2
		jz	short loc_71A7DE

loc_71A7C3:				; CODE XREF: EmClientQueryRuleState+A3j
		mov	ecx, edi
		call	KeAbPostRelease
		call	EmpReleasePagingReference

loc_71A7CF:				; CODE XREF: EmClientQueryRuleState+DC91j
					; EmClientQueryRuleState+DC9Bj
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A7D7:				; CODE XREF: EmClientQueryRuleState+49j
					; EmClientQueryRuleState+57j
		mov	esi, 0C0000225h
		jmp	short loc_71A7B0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A7DE:				; CODE XREF: EmClientQueryRuleState+7Fj
		mov	ecx, edi
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)
		jmp	short loc_71A7C3
EmClientQueryRuleState endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4
		dd 0CCCCCCCCh
; Exported entry 279. EmClientRuleEvaluate

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	EmClientRuleEvaluate(void *,int,int,int)
		public EmClientRuleEvaluate
EmClientRuleEvaluate proc near		; CODE XREF: PopPepInitializeVetoMasks(x,x)+F5p
					; PoRegisterPowerSettingCallback+234p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

; FUNCTION CHUNK AT 007283E2 SIZE 0000000A BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		push	esi
		push	edi
		jz	loc_7283E2
		cmp	[ebp+arg_4], 0
		jz	loc_7283E2
		mov	esi, [ebp+arg_C]
		test	esi, esi
		jz	loc_7283E2
		mov	edi, [ebp+arg_8]
		test	edi, edi
		jz	loc_7283E2
		mov	dword ptr [esi], 1
		call	_EmpAcquirePagingReference@0 ; EmpAcquirePagingReference()
		test	al, al
		jz	short loc_71A891
		push	ebx
		mov	ebx, offset _EmpDatabaseLock
		xor	edx, edx
		mov	ecx, ebx
		call	ExAcquirePushLockExclusiveEx
		mov	ecx, [ebp+arg_0] ; void	*
		call	_EmpSearchRuleDatabase@4 ; EmpSearchRuleDatabase(x)
		mov	ecx, eax
		test	ecx, ecx
		jz	short loc_71A898
		call	_EmpSearchTargetRuleList@4 ; EmpSearchTargetRuleList(x)
		test	eax, eax
		jz	short loc_71A898
		cmp	edi, [ecx+28h]
		jnz	short loc_71A89F
		mov	edx, [ebp+arg_4]
		mov	ecx, eax
		push	edi
		call	EmpEvaluateTargetRule
		mov	[esi], eax
		xor	esi, esi

loc_71A866:				; CODE XREF: EmClientRuleEvaluate+B1j
					; EmClientRuleEvaluate+B8j
		or	eax, 0FFFFFFFFh
		lock xadd [ebx], eax
		and	al, 6
		cmp	al, 2
		jz	short loc_71A888

loc_71A873:				; CODE XREF: EmClientRuleEvaluate+A3j
		mov	ecx, ebx
		call	KeAbPostRelease
		call	EmpReleasePagingReference
		pop	ebx

loc_71A880:				; CODE XREF: EmClientRuleEvaluate+AAj
					; EmClientRuleEvaluate+DBFBj
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A888:				; CODE XREF: EmClientRuleEvaluate+85j
		mov	ecx, ebx
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)
		jmp	short loc_71A873
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A891:				; CODE XREF: EmClientRuleEvaluate+3Ej
		mov	esi, 0C0000006h
		jmp	short loc_71A880
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A898:				; CODE XREF: EmClientRuleEvaluate+5Bj
					; EmClientRuleEvaluate+64j
		mov	esi, 0C0000225h
		jmp	short loc_71A866
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A89F:				; CODE XREF: EmClientRuleEvaluate+69j
		mov	esi, 0C000000Dh
		jmp	short loc_71A866
EmClientRuleEvaluate endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall EmpAcquirePagingReference()
_EmpAcquirePagingReference@0 proc near	; CODE XREF: EmClientQueryRuleState+23p
					; EmClientRuleEvaluate+37p
		mov	edi, edi
		push	ebx
		push	esi
		mov	esi, offset _EmpPagingLock
		xor	edx, edx
		mov	ecx, esi
		xor	bl, bl
		call	ExAcquirePushLockExclusiveEx
		mov	ecx, ds:dword_6CDC44
		test	ecx, ecx
		jns	short loc_71A8D8
		lea	eax, [ecx+1]
		xor	eax, ecx
		and	eax, 7FFFFFFFh
		xor	ecx, eax
		inc	bl
		mov	ds:dword_6CDC44, ecx

loc_71A8D8:				; CODE XREF: EmpAcquirePagingReference()+1Cj
		or	edx, 0FFFFFFFFh
		lock xadd [esi], edx
		and	dl, 6
		cmp	dl, 2
		jz	short loc_71A8F3

loc_71A8E7:				; CODE XREF: EmpAcquirePagingReference()+54j
		mov	ecx, esi
		call	KeAbPostRelease
		pop	esi
		mov	al, bl
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A8F3:				; CODE XREF: EmpAcquirePagingReference()+3Fj
		mov	ecx, esi
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)
		jmp	short loc_71A8E7
_EmpAcquirePagingReference@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


EmpReleasePagingReference proc near	; CODE XREF: EmClientQueryRuleState+88p
					; EmClientRuleEvaluate+8Ep

; FUNCTION CHUNK AT 007283EC SIZE 0000000F BYTES

		mov	edi, edi
		push	esi
		mov	esi, offset _EmpPagingLock
		xor	edx, edx
		mov	ecx, esi
		call	ExAcquirePushLockExclusiveEx
		mov	ecx, ds:dword_6CDC44
		mov	edx, 7FFFFFFFh
		lea	eax, [ecx-1]
		xor	eax, ecx
		and	eax, edx
		xor	ecx, eax
		mov	ds:dword_6CDC44, ecx
		test	ecx, edx
		jnz	short loc_71A938
		mov	eax, ds:_EmpPagingStatus
		test	eax, eax
		jnz	loc_7283EC

loc_71A938:				; CODE XREF: EmpReleasePagingReference+2Dj
					; EmpReleasePagingReference+DAFAj
		or	eax, 0FFFFFFFFh
		lock xadd [esi], eax
		and	al, 6
		cmp	al, 2
		jz	short loc_71A94D

loc_71A945:				; CODE XREF: EmpReleasePagingReference+58j
		mov	ecx, esi
		pop	esi
		jmp	KeAbPostRelease
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A94D:				; CODE XREF: EmpReleasePagingReference+47j
		mov	ecx, esi
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)
		jmp	short loc_71A945
EmpReleasePagingReference endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

RtlCompressBufferLZNT1 proc near	; DATA XREF: .text:00403FCCo

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

; FUNCTION CHUNK AT 007283FB SIZE 0000001F BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_10]
		mov	ecx, [ebp+arg_C]
		add	eax, ecx
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	bl, 1
		add	edx, edi
		mov	[ebp+arg_4], eax
		cmp	word ptr [ebp+arg_0], 0
		mov	[ebp+arg_8], edx
		jnz	loc_7283FB
		mov	eax, offset _LZNT1FindMatchStandard@8 ;	LZNT1FindMatchStandard(x,x)

loc_71A98B:				; CODE XREF: RtlCompressBufferLZNT1+DAB5j
		mov	[ebp+arg_0], eax
		mov	esi, ecx
		cmp	edi, edx
		jnb	short loc_71A9C9

loc_71A994:				; CODE XREF: RtlCompressBufferLZNT1+6Ej
		push	[ebp+arg_1C]
		lea	ecx, [ebp+var_4]
		push	ecx
		push	[ebp+arg_4]
		mov	ecx, eax
		push	esi
		push	edx
		mov	edx, edi
		call	LZNT1CompressChunk
		test	eax, eax
		js	short loc_71A9EB
		test	bl, bl
		jnz	short loc_71A9F2

loc_71A9B1:				; CODE XREF: RtlCompressBufferLZNT1+A1j
		xor	bl, bl

loc_71A9B3:				; CODE XREF: RtlCompressBufferLZNT1+A5j
		add	esi, [ebp+var_4]
		add	edi, 1000h
		mov	edx, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		cmp	edi, edx
		jb	short loc_71A994
		mov	ecx, [ebp+arg_C]

loc_71A9C9:				; CODE XREF: RtlCompressBufferLZNT1+3Cj
		mov	eax, [ebp+arg_4]
		add	eax, 0FFFFFFFEh
		cmp	esi, eax
		ja	short loc_71A9D8
		mov	word ptr [esi],	0

loc_71A9D8:				; CODE XREF: RtlCompressBufferLZNT1+7Bj
		mov	eax, [ebp+arg_18]
		sub	esi, ecx
		mov	[eax], esi
		movzx	eax, bl
		neg	eax
		sbb	eax, eax
		and	eax, 117h

loc_71A9EB:				; CODE XREF: RtlCompressBufferLZNT1+55j
					; RtlCompressBufferLZNT1+DABFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	20h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71A9F2:				; CODE XREF: RtlCompressBufferLZNT1+59j
		cmp	eax, 117h
		jnz	short loc_71A9B1
		mov	bl, 1
		jmp	short loc_71A9B3
RtlCompressBufferLZNT1 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

LZNT1CompressChunk proc	near		; CODE XREF: RtlCompressBufferLZNT1+4Ep

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

; FUNCTION CHUNK AT 0072841A SIZE 00000025 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, edx
		mov	[ebp+var_30], ecx
		xor	ch, ch
		mov	[ebp+var_14], esi
		xor	edx, edx
		mov	[ebp+var_2], ch
		push	edi
		lea	eax, [esi+1000h]
		mov	[ebp+var_10], edx
		cmp	eax, ebx
		jnb	short loc_71AA2F
		mov	ebx, eax
		mov	[ebp+arg_0], ebx

loc_71AA2F:				; CODE XREF: LZNT1CompressChunk+28j
		mov	edx, [ebp+arg_4]
		mov	edi, [ebp+arg_8]
		lea	eax, [edx+0FFFh]
		mov	[ebp+var_1C], eax
		cmp	eax, edi
		jnb	loc_72841A

loc_71AA46:				; CODE XREF: LZNT1CompressChunk+DA1Dj
		lea	eax, [edx+2]
		mov	[ebp+var_18], 0
		mov	edi, eax
		mov	[ebp+var_38], eax
		mov	eax, [ebp+arg_10]
		mov	edx, esi
		mov	[ebp+var_28], edi
		xor	cl, cl
		inc	edi
		mov	[ebp+var_1], cl
		cmp	edx, ebx
		mov	[eax], edx
		mov	edx, 0
		mov	[eax+4], ebx
		mov	dword ptr [eax+8], 1002h
		jnb	short loc_71AAF2
		mov	eax, offset _FormatMaxDisplacement
		mov	[ebp+var_2C], eax

loc_71AA80:				; CODE XREF: LZNT1CompressChunk+E2j
		mov	eax, [eax]
		add	eax, [ebp+var_14]
		cmp	eax, esi
		jb	loc_71AC80

loc_71AA8D:				; CODE XREF: LZNT1CompressChunk+2A4j
		lea	eax, [esi+3]
		cmp	eax, ebx
		ja	short loc_71AAA5
		push	[ebp+arg_10]
		push	esi
		call	[ebp+var_30]
		mov	ecx, eax
		test	ecx, ecx
		jnz	loc_71AB34

loc_71AAA5:				; CODE XREF: LZNT1CompressChunk+92j
		cmp	edi, [ebp+var_1C]
		jnb	short loc_71AAE4
		mov	al, [esi]
		mov	ecx, 1
		or	[ebp+var_2], al
		movzx	edx, [ebp+var_1]
		mov	[edi], al
		mov	eax, [ebp+var_18]
		btr	edx, eax

loc_71AAC0:				; CODE XREF: LZNT1CompressChunk+221j
		add	esi, ecx
		inc	edi
		mov	ecx, [ebp+var_18]
		mov	eax, edi
		inc	ecx
		and	ecx, 7
		mov	[ebp+var_18], ecx
		mov	cl, dl
		mov	[ebp+var_1], cl
		jz	loc_71AC26

loc_71AADA:				; CODE XREF: LZNT1CompressChunk+242j
		cmp	esi, ebx

loc_71AADC:				; CODE XREF: LZNT1CompressChunk+22Dj
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+var_2C]
		jb	short loc_71AA80

loc_71AAE4:				; CODE XREF: LZNT1CompressChunk+A8j
					; LZNT1CompressChunk+13Dj
		cmp	esi, ebx
		jb	loc_71AD2C
		mov	cl, [ebp+var_1]
		mov	ch, [ebp+var_2]

loc_71AAF2:				; CODE XREF: LZNT1CompressChunk+76j
		mov	eax, [ebp+var_28]
		cmp	eax, [ebp+var_1C]
		jnb	loc_728439
		mov	[eax], cl

loc_71AB00:				; CODE XREF: LZNT1CompressChunk+DA3Aj
		mov	edx, [ebp+arg_4]
		sub	edi, edx
		mov	eax, [ebp+arg_C]
		mov	[eax], edi
		lea	eax, [edi-3]
		and	eax, 0FFFh
		or	ah, 0B0h
		test	dl, 1
		jnz	loc_71AD02
		mov	[edx], ax

loc_71AB21:				; CODE XREF: LZNT1CompressChunk+30Aj
		test	ch, ch
		jz	loc_71ACF4

loc_71AB29:				; CODE XREF: LZNT1CompressChunk+DA2Aj
		xor	eax, eax

loc_71AB2B:				; CODE XREF: LZNT1CompressChunk+DA34j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	14h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AB34:				; CODE XREF: LZNT1CompressChunk+9Fj
		lea	eax, [edi+1]
		mov	[ebp+var_34], eax
		cmp	eax, [ebp+var_1C]
		jnb	short loc_71AAE4
		mov	eax, [ebp+var_18]
		mov	ebx, [ebp+arg_10]
		movzx	edx, [ebp+var_1]
		bts	edx, eax
		mov	ax, si
		sub	ax, [ebx+0Ch]
		dec	ax
		movzx	ebx, cx
		cmp	[ebp+var_10], 0
		movzx	eax, ax
		mov	[ebp+var_20], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_C], eax
		jz	loc_71ACDD
		cmp	[ebp+var_10], 1
		movzx	eax, ax
		mov	[ebp+var_C], eax
		jz	loc_71AD0F
		cmp	[ebp+var_10], 2
		movzx	eax, ax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_20]
		movzx	ebx, ax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], ebx
		mov	ebx, [ebp+arg_0]
		jz	loc_71ACC6
		cmp	[ebp+var_10], 3
		movzx	eax, ax
		mov	[ebp+var_20], eax
		jz	loc_71ACA9
		cmp	[ebp+var_10], 4
		movzx	eax, ax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_24]
		movzx	ebx, ax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20], ebx
		mov	ebx, [ebp+arg_0]
		jz	loc_71AC6E
		cmp	[ebp+var_10], 5
		mov	ebx, [ebp+var_20]
		movzx	ebx, bx
		movzx	eax, ax
		mov	[ebp+var_20], ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_24], eax
		jz	short loc_71AC5C
		movzx	eax, ax
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_20]
		add	eax, 0FFFFFFFDh
		movzx	eax, ax
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_10]
		cmp	eax, 6
		jz	short loc_71AC50
		cmp	eax, 7
		mov	eax, [ebp+var_24]
		jz	short loc_71AC47
		shl	eax, 4
		and	[ebp+var_C], 0Fh

loc_71AC0D:				; CODE XREF: LZNT1CompressChunk+24Ej
					; LZNT1CompressChunk+25Aj
		or	eax, [ebp+var_C]

loc_71AC10:				; CODE XREF: LZNT1CompressChunk+26Cj
					; LZNT1CompressChunk+27Ej ...
		mov	[edi], al
		mov	edi, [ebp+var_34]
		mov	word ptr [ebp+var_8], ax
		mov	eax, [ebp+var_8]
		shr	eax, 8
		mov	[edi], al
		jmp	loc_71AAC0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AC26:				; CODE XREF: LZNT1CompressChunk+D4j
		mov	[ebp+var_1], dl
		mov	edi, eax
		cmp	esi, ebx
		jnb	loc_71AADC
		mov	ecx, [ebp+var_28]
		lea	edi, [eax+1]
		mov	[ebp+var_1], 0
		mov	[ebp+var_28], eax
		mov	[ecx], dl
		jmp	loc_71AADA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AC47:				; CODE XREF: LZNT1CompressChunk+204j
		shl	eax, 5
		and	[ebp+var_C], 1Fh
		jmp	short loc_71AC0D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AC50:				; CODE XREF: LZNT1CompressChunk+1FCj
		mov	eax, [ebp+var_24]
		shl	eax, 6
		and	[ebp+var_C], 3Fh
		jmp	short loc_71AC0D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AC5C:				; CODE XREF: LZNT1CompressChunk+1E2j
		mov	eax, [ebp+var_20]
		shl	[ebp+var_24], 7
		add	eax, 0FFFFFFFDh
		and	eax, 7Fh
		or	eax, [ebp+var_24]
		jmp	short loc_71AC10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AC6E:				; CODE XREF: LZNT1CompressChunk+1C6j
		mov	eax, [ebp+var_20]
		shl	[ebp+var_C], 8
		add	eax, 0FFFFFFFDh
		movzx	eax, al
		or	eax, [ebp+var_C]
		jmp	short loc_71AC10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AC80:				; CODE XREF: LZNT1CompressChunk+87j
					; LZNT1CompressChunk+299j
		mov	ecx, ds:dword_731038[edx*4]
		inc	edx
		lea	eax, _FormatMaxDisplacement[edx*4]
		mov	[ebp+var_2C], eax
		mov	eax, [eax]
		add	eax, [ebp+var_14]
		cmp	eax, esi
		jb	short loc_71AC80
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_10], edx
		mov	[eax+8], ecx
		jmp	loc_71AA8D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71ACA9:				; CODE XREF: LZNT1CompressChunk+1A7j
		mov	ebx, [ebp+var_24]
		shl	[ebp+var_20], 9
		movzx	eax, bx
		mov	ebx, [ebp+arg_0]
		add	eax, 0FFFFFFFDh
		and	eax, 1FFh
		or	eax, [ebp+var_20]
		jmp	loc_71AC10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71ACC6:				; CODE XREF: LZNT1CompressChunk+197j
		mov	eax, [ebp+var_24]
		shl	[ebp+var_C], 0Ah
		add	eax, 0FFFFFFFDh
		and	eax, 3FFh
		or	eax, [ebp+var_C]
		jmp	loc_71AC10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71ACDD:				; CODE XREF: LZNT1CompressChunk+168j
		mov	eax, [ebp+var_20]
		shl	[ebp+var_C], 0Ch
		add	eax, 0FFFFFFFDh
		and	eax, 0FFFh
		or	eax, [ebp+var_C]
		jmp	loc_71AC10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71ACF4:				; CODE XREF: LZNT1CompressChunk+123j
		pop	edi
		pop	esi
		mov	eax, 117h
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	14h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AD02:				; CODE XREF: LZNT1CompressChunk+118j
		mov	[edx], al
		shr	eax, 8
		mov	[edx+1], al
		jmp	loc_71AB21
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AD0F:				; CODE XREF: LZNT1CompressChunk+178j
		mov	ebx, [ebp+var_20]
		shl	[ebp+var_C], 0Bh
		movzx	eax, bx
		mov	ebx, [ebp+arg_0]
		add	eax, 0FFFFFFFDh
		and	eax, 7FFh
		or	eax, [ebp+var_C]
		jmp	loc_71AC10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AD2C:				; CODE XREF: LZNT1CompressChunk+E6j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_14]
		add	eax, 2
		sub	ebx, ecx
		add	eax, ebx
		cmp	eax, [ebp+arg_8]
		ja	loc_72842F
		push	ebx		; size_t
		push	ecx		; void *
		push	[ebp+var_38]	; void *
		call	_memcpy
		mov	eax, [ebp+arg_C]
		lea	ecx, [ebx+2]
		add	esp, 0Ch
		mov	[eax], ecx
		add	ecx, 0FFFFFFFDh
		mov	eax, [ebp+arg_4]
		and	ecx, 0FFFh
		or	ch, 30h
		test	al, 1
		jnz	loc_728422
		pop	edi
		pop	esi
		mov	[eax], cx
		xor	eax, eax
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	14h
LZNT1CompressChunk endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall LZNT1FindMatchStandard(x, x)
_LZNT1FindMatchStandard@8 proc near	; DATA XREF: RtlCompressBufferLZNT1+30o

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	edx, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	eax, [edx]
		mov	[ebp+var_10], eax
		mov	al, [ebx]
		mov	cl, [ebx+2]
		mov	ah, [ebx+1]
		mov	[ebp+var_1], cl
		movzx	ecx, al
		mov	[ebp+var_2], al
		mov	[ebp+var_3], ah
		movzx	eax, ah
		shl	ecx, 4
		xor	ecx, eax
		mov	esi, [edx+8]
		movzx	eax, [ebp+var_1]
		shl	ecx, 4
		xor	ecx, eax
		imul	eax, ecx, 0FFFF9E5Fh
		lea	ecx, [edx+10h]
		push	edi
		mov	edi, [edx+4]
		xor	edx, edx
		sar	eax, 4
		and	eax, 0FFFh
		lea	ecx, [ecx+eax*8]
		lea	eax, ds:14h[eax*8]
		mov	[ebp+var_18], ecx
		add	eax, [ebp+arg_4]
		mov	ecx, [ecx]
		mov	[ebp+var_14], eax
		mov	[ebp+var_C], ecx
		mov	eax, [eax]
		mov	[ebp+var_8], eax
		xor	eax, eax
		cmp	ecx, [ebp+var_10]
		jb	short loc_71AE46
		cmp	ecx, ebx
		jnb	short loc_71AE46
		mov	bl, [ebp+var_2]
		cmp	[ecx], bl
		mov	ebx, [ebp+arg_0]
		jnz	short loc_71AE46
		mov	bl, [ebp+var_3]
		cmp	[ecx+1], bl
		mov	ebx, [ebp+arg_0]
		jnz	short loc_71AE46
		mov	bl, [ebp+var_1]
		cmp	[ecx+2], bl
		mov	ebx, [ebp+arg_0]
		jnz	short loc_71AE46
		mov	edx, 3
		cmp	esi, edx
		jbe	short loc_71AE46
		lea	eax, [ebx+3]
		mov	ebx, ecx
		sub	ebx, [ebp+arg_0]
		lea	ecx, [ecx+0]

loc_71AE30:				; CODE XREF: LZNT1FindMatchStandard(x,x)+BFj
		cmp	eax, edi
		jnb	short loc_71AE41
		mov	cl, [eax]
		cmp	cl, [ebx+eax]
		jnz	short loc_71AE41
		inc	edx
		inc	eax
		cmp	edx, esi
		jb	short loc_71AE30

loc_71AE41:				; CODE XREF: LZNT1FindMatchStandard(x,x)+B2j
					; LZNT1FindMatchStandard(x,x)+B9j
		mov	ebx, [ebp+arg_0]
		xor	eax, eax

loc_71AE46:				; CODE XREF: LZNT1FindMatchStandard(x,x)+76j
					; LZNT1FindMatchStandard(x,x)+7Aj ...
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+var_10]
		mov	ecx, [ebp+var_C]
		jnb	short loc_71AE74

loc_71AE51:				; CODE XREF: LZNT1FindMatchStandard(x,x)+F7j
					; LZNT1FindMatchStandard(x,x)+107j ...
		mov	esi, [ebp+var_14]
		pop	edi
		mov	[esi], ecx
		mov	esi, [ebp+var_18]
		mov	[esi], ebx
		pop	esi
		pop	ebx
		cmp	edx, eax
		jb	loc_71AEE2
		mov	eax, [ebp+arg_4]
		mov	[eax+0Ch], ecx
		mov	eax, edx

loc_71AE6E:				; CODE XREF: LZNT1FindMatchStandard(x,x)+16Bj
		mov	esp, ebp
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AE74:				; CODE XREF: LZNT1FindMatchStandard(x,x)+CFj
		cmp	[ebp+var_8], ebx
		jnb	short loc_71AE51
		mov	ebx, [ebp+var_8]
		mov	cl, [ebp+var_2]
		cmp	[ebx], cl
		mov	ecx, [ebp+var_C]
		mov	ebx, [ebp+arg_0]
		jnz	short loc_71AE51
		mov	ecx, [ebp+var_8]
		mov	bl, [ebp+var_3]
		cmp	[ecx+1], bl
		mov	ecx, [ebp+var_C]
		mov	ebx, [ebp+arg_0]
		jnz	short loc_71AE51
		mov	ebx, [ebp+var_8]
		mov	cl, [ebp+var_1]
		cmp	[ebx+2], cl
		mov	ecx, [ebp+var_C]
		mov	ebx, [ebp+arg_0]
		jnz	short loc_71AE51
		mov	eax, 3
		mov	[ebp+var_10], eax
		cmp	esi, eax
		jbe	short loc_71AE51
		lea	ecx, [ebx+3]
		mov	ebx, [ebp+var_8]
		sub	ebx, [ebp+arg_0]

loc_71AEC0:				; CODE XREF: LZNT1FindMatchStandard(x,x)+155j
		cmp	ecx, edi
		jnb	short loc_71AED7
		mov	al, [ecx]
		cmp	al, [ebx+ecx]
		mov	eax, [ebp+var_10]
		jnz	short loc_71AED7
		inc	eax
		inc	ecx
		mov	[ebp+var_10], eax
		cmp	eax, esi
		jb	short loc_71AEC0

loc_71AED7:				; CODE XREF: LZNT1FindMatchStandard(x,x)+142j
					; LZNT1FindMatchStandard(x,x)+14Cj
		mov	ecx, [ebp+var_C]
		mov	ebx, [ebp+arg_0]
		jmp	loc_71AE51
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AEE2:				; CODE XREF: LZNT1FindMatchStandard(x,x)+E0j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+0Ch], edx
		jmp	loc_71AE6E
_LZNT1FindMatchStandard@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	KiCloneDescriptor(void *)
KiCloneDescriptor proc near		; CODE XREF: KiInitializeProcessorState(x,x,x,x,x,x,x,x,x,x)+68p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		movzx	esi, word ptr [ecx+2]
		inc	esi
		push	esi		; size_t
		push	dword ptr [ecx+4] ; void *
		lea	eax, [esi-1]
		mov	[edx+2], ax
		mov	eax, [ebp+arg_0]
		push	eax		; void *
		mov	[edx+4], eax
		call	_memcpy
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn	4
KiCloneDescriptor endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiComputeProcessorDataSize(x)
_KiComputeProcessorDataSize@4 proc near	; CODE XREF: KiStartDynamicProcessor(x,x,x,x)+F7p
					; KeStartAllProcessors+103p
		shl	ecx, 5
		lea	eax, [ecx+603Fh]
		and	eax, 0FFFFFFC0h
		add	eax, 680h
		retn
_KiComputeProcessorDataSize@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopStartMirroring()
_PopStartMirroring@0 proc near		; DATA XREF: PopTransitionToSleep+57o
		xor	eax, eax
		retn
_PopStartMirroring@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall WheapDefaultErrSrcInitialize(x, x, x)
_WheapDefaultErrSrcInitialize@12 proc near ; DATA XREF:	WheaUnconfigureErrorSource(x)+8Fo
					; WheapSetDefaultErrorSourceConfiguration()+14o
		xor	eax, eax
		retn	0Ch
_WheapDefaultErrSrcInitialize@12 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalDpUnmaskLevelTriggeredInterrupts()
_xHalDpUnmaskLevelTriggeredInterrupts@0	proc near ; CODE XREF: PnprQuiesceProcessors()+E4p
					; PnprWakeProcessors()+BBj
					; DATA XREF: ...
		mov	eax, 0C00000BBh
		retn
_xHalDpUnmaskLevelTriggeredInterrupts@0	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalDpReplaceControl(x, x)
_xHalDpReplaceControl@8	proc near	; CODE XREF: PnprEndMirroring(x)+40p
					; PnprInitiateReplaceOperation()+1C0p ...
		mov	eax, 0C00000BBh
		retn	8
_xHalDpReplaceControl@8	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalLocateHiberRanges(x)
_xHalLocateHiberRanges@4 proc near	; CODE XREF: PopMarkComponentsBootPhase+C8p
					; PopHiberCheckResume+59p ...
		retn	4
_xHalLocateHiberRanges@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalDpReplayInterrupts(x)
_xHalDpReplayInterrupts@4 proc near	; CODE XREF: PnprQuiesceProcessorDpc(x,x,x,x)+2E0p
					; DATA XREF: .data:off_6B12C0o
		mov	eax, 0C00000BBh
		retn	4
_xHalDpReplayInterrupts@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalPciEarlyRestore(x)
_xHalPciEarlyRestore@4 proc near	; CODE XREF: PopHiberCheckResume+8Ep
					; DATA XREF: .data:off_6B1328o
		xor	eax, eax
		retn	4
_xHalPciEarlyRestore@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalPciMarkHiberPhase()
_xHalPciMarkHiberPhase@0 proc near	; DATA XREF: .data:006B1348o
		retn	0
_xHalPciMarkHiberPhase@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalPciMultiStageResumeCapable()
_xHalPciMultiStageResumeCapable@0 proc near ; CODE XREF: PopSaveHiberContext:loc_71D718p
					; DATA XREF: .data:off_6B1370o
		mov	al, 1
		retn
_xHalPciMultiStageResumeCapable@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall xHalSetWakeAlarm(x,	x, x, x)
_xHalSetWakeAlarm@16 proc near		; CODE XREF: PAGELK:0071F255p
					; PAGELK:0071F859p
					; DATA XREF: ...
		mov	eax, 0C00000BBh
		retn	10h
_xHalSetWakeAlarm@16 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfpScenCtxScenarioSet proc near		; CODE XREF: PfPowerActionNotify+A0p
					; PfPowerActionNotify+ACp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0072843F SIZE 0000001C BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		push	ebx
		push	esi
		xor	ebx, ebx
		mov	[ebp+var_4], edx
		push	edi
		mov	edi, [ebp+arg_0]
		inc	ebx
		mov	esi, ecx
		cmp	edi, 5
		jz	loc_71B069
		cmp	edi, ebx
		jz	loc_71B069
		cmp	edi, 2
		jz	loc_71B069

loc_71AF9E:				; CODE XREF: PfpScenCtxScenarioSet+10Bj
		mov	eax, large fs:124h
		dec	word ptr [eax+13Ch]
		nop
		xor	edx, edx
		mov	ecx, esi
		call	ExAcquirePushLockExclusiveEx
		test	edi, edi
		jnz	short loc_71AFF9
		mov	eax, [ebp+var_4]
		cmp	[esi+1Ch], eax
		jz	short loc_71AFF9

loc_71AFC1:				; CODE XREF: PfpScenCtxScenarioSet+CFj
					; PfpScenCtxScenarioSet+F2j
		or	eax, 0FFFFFFFFh
		lock xadd [esi], eax
		and	al, 6
		cmp	al, 2
		jz	loc_71B05D

loc_71AFD2:				; CODE XREF: PfpScenCtxScenarioSet+FEj
		mov	ecx, esi
		call	KeAbPostRelease
		call	_KeLeaveCriticalRegion@0 ; KeLeaveCriticalRegion()
		cmp	[ebp+var_C], 0
		jnz	loc_72843F

loc_71AFE8:				; CODE XREF: PfpScenCtxScenarioSet+D4E1j
		cmp	[ebp+var_8], 0
		jnz	loc_72844C

loc_71AFF2:				; CODE XREF: PfpScenCtxScenarioSet+D4F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71AFF9:				; CODE XREF: PfpScenCtxScenarioSet+51j
					; PfpScenCtxScenarioSet+59j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_71B076
		push	ebx
		push	0
		mov	edx, eax
		mov	ecx, esi
		call	PfpScenCtxPrefetchStateSet
		mov	ecx, esi
		call	PfpScenCtxWaiterTimedOut
		mov	eax, [esi+1Ch]
		and	dword ptr [esi+18h], 0
		and	dword ptr [esi+4], 0FFFFFFF3h
		test	eax, eax
		jz	short loc_71B076

loc_71B022:				; CODE XREF: PfpScenCtxScenarioSet+112j
		mov	ecx, ebx

loc_71B024:				; CODE XREF: PfpScenCtxScenarioSet+116j
		mov	[esi+1Ch], edi
		test	edi, edi
		jz	short loc_71B02E
		inc	dword ptr [esi+20h]

loc_71B02E:				; CODE XREF: PfpScenCtxScenarioSet+C3j
		cmp	edi, 3
		jz	short loc_71B07E

loc_71B033:				; CODE XREF: PfpScenCtxScenarioSet+11Ej
		test	ecx, ecx
		jz	short loc_71AFC1
		test	edi, edi
		jz	short loc_71B04D
		cmp	[ebp+var_C], 0
		jz	short loc_71B086
		lea	edx, [ebp+var_C]
		mov	ecx, esi
		call	PfpServiceMainThreadBoost
		xor	ebx, ebx

loc_71B04D:				; CODE XREF: PfpScenCtxScenarioSet+D3j
					; PfpScenCtxScenarioSet+123j
		push	0
		push	ebx
		push	dword ptr [esi+28h]
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		jmp	loc_71AFC1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B05D:				; CODE XREF: PfpScenCtxScenarioSet+66j
		mov	ecx, esi
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)
		jmp	loc_71AFD2
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B069:				; CODE XREF: PfpScenCtxScenarioSet+21j
					; PfpScenCtxScenarioSet+29j ...
		lea	edx, [ebp+var_C]
		call	PfpServiceMainThreadBoostPrep
		jmp	loc_71AF9E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B076:				; CODE XREF: PfpScenCtxScenarioSet+98j
					; PfpScenCtxScenarioSet+BAj
		test	edi, edi
		jnz	short loc_71B022
		xor	ecx, ecx
		jmp	short loc_71B024
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B07E:				; CODE XREF: PfpScenCtxScenarioSet+CBj
		mov	eax, [ebp+arg_4]
		mov	[esi+24h], eax
		jmp	short loc_71B033
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B086:				; CODE XREF: PfpScenCtxScenarioSet+D9j
		push	4
		pop	ebx
		jmp	short loc_71B04D
PfpScenCtxScenarioSet endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


MmPerformMemoryListCommand proc	near	; CODE XREF: PfPowerActionNotify+D9p
					; PfpPowerActionStartScenarioTracing(x)+1Cp ...

; FUNCTION CHUNK AT 0072845B SIZE 0000004C BYTES

		mov	edi, edi
		push	ecx
		call	_MiGetControlAreaPartition@4 ; MiGetControlAreaPartition(x)
		sub	ecx, 0
		jz	short loc_71B0B0
		sub	ecx, 1
		jnz	loc_72845B
		xor	edx, edx
		inc	edx

loc_71B0A5:				; CODE XREF: MmPerformMemoryListCommand+26j
		mov	ecx, eax
		call	_MiCaptureAllWorkingSetAccessBits@8 ; MiCaptureAllWorkingSetAccessBits(x,x)

loc_71B0AC:				; CODE XREF: MmPerformMemoryListCommand+D3F9j
					; MmPerformMemoryListCommand+D40Aj ...
		xor	eax, eax
		pop	ecx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B0B0:				; CODE XREF: MmPerformMemoryListCommand+Bj
		xor	edx, edx
		jmp	short loc_71B0A5
MmPerformMemoryListCommand endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfSnBeginBootPhase proc	near		; CODE XREF: PfPowerActionNotify+95p
					; PfSnSetPrefetcherInformation+14Dp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 007284A7 SIZE 00000022 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	ecx
		push	ecx
		push	esi
		push	edi
		cmp	ecx, 5
		jnb	loc_7284A7
		xor	esi, esi
		sub	ecx, esi
		jz	short loc_71B13B
		sub	ecx, 1
		jz	short loc_71B134
		sub	ecx, 1
		jnz	short loc_71B0F6
		xor	edx, edx
		push	4
		inc	edx
		pop	ecx
		call	PfSnUpdatePrefetcherFlags
		push	11h
		xor	edx, edx
		pop	ecx

loc_71B0E9:				; CODE XREF: PfSnBeginBootPhase+85j
		call	PfSnUpdatePrefetcherFlags

loc_71B0EE:				; CODE XREF: PfSnBeginBootPhase+4Ej
					; PfSnBeginBootPhase+5Cj ...
		pop	edi
		mov	eax, esi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B0F6:				; CODE XREF: PfSnBeginBootPhase+23j
		sub	ecx, 1
		jz	loc_7284B1
		sub	ecx, 1
		jnz	short loc_71B0EE
		push	10h
		pop	ecx
		call	_PfSnAllocateEnablePrefetcherTimer@4 ; PfSnAllocateEnablePrefetcherTimer(x)
		mov	edi, eax
		test	edi, edi
		jz	short loc_71B0EE
		xor	edx, edx
		push	10h
		inc	edx
		pop	ecx
		call	PfSnUpdatePrefetcherFlags
		push	0FFFFFFFFh
		push	0DC3CBA00h
		lea	eax, [edi+28h]
		xor	edx, edx
		push	eax
		push	esi
		mov	ecx, edi
		call	KiSetTimerEx
		jmp	short loc_71B0EE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B134:				; CODE XREF: PfSnBeginBootPhase+1Ej
					; PfSnBeginBootPhase+D410j
		xor	ecx, ecx
		xor	edx, edx
		inc	ecx
		jmp	short loc_71B0E9
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B13B:				; CODE XREF: PfSnBeginBootPhase+19j
		push	offset dword_6D49E8
		push	esi
		push	esi
		push	offset _MS_Kernel_Prefetch_Provider
		call	_EtwRegister@16	; EtwRegister(x,x,x,x)
		call	PfSnDetermineEnablePrefetcher
		xor	edx, edx
		push	3
		inc	edx
		pop	ecx
		call	PfSnUpdatePrefetcherFlags
		or	[esp+10h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+10h+var_8]
		mov	[esp+10h+var_8], 4D2FA200h
		call	_PfSnQueueEnablePrefetcherTimer@4 ; PfSnQueueEnablePrefetcherTimer(x)
		jmp	loc_71B0EE
PfSnBeginBootPhase endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopHiberEarlyCleanup(x)
_PopHiberEarlyCleanup@4	proc near	; CODE XREF: PopInvokeSystemStateHandler+314p
		mov	edi, edi
		push	esi
		push	13h
		mov	esi, ecx
		mov	ecx, ds:dword_6C24BC
		pop	edx
		call	_MmInvalidateDumpAddresses@8 ; MmInvalidateDumpAddresses(x,x)
		mov	ecx, [esi+0C0h]
		test	ecx, ecx
		jz	short loc_71B1AC
		mov	edx, [esi+0A4h]
		shl	edx, 4
		pop	esi
		jmp	_MmInvalidateDumpAddresses@8 ; MmInvalidateDumpAddresses(x,x)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B1AC:				; CODE XREF: PopHiberEarlyCleanup(x)+1Bj
		pop	esi
		retn
_PopHiberEarlyCleanup@4	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall MmInvalidateDumpAddresses(x, x)
_MmInvalidateDumpAddresses@8 proc near	; CODE XREF: PopHiberEarlyCleanup(x)+Ep
					; PopHiberEarlyCleanup(x)+27j
		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, ecx
		call	_MiGetPteAddress@4 ; MiGetPteAddress(x)
		mov	edx, eax
		test	esi, esi
		jz	short loc_71B1F5
		mov	ebx, esi

loc_71B1C4:				; CODE XREF: MmInvalidateDumpAddresses(x,x)+2Dj
		mov	ecx, ds:_ZeroPte
		mov	[edx], ecx
		nop
		mov	eax, ds:dword_40F9FC
		lea	edx, [edx+8]
		mov	[edx-4], eax
		sub	ebx, 1
		jnz	short loc_71B1C4
		test	esi, esi
		jz	short loc_71B1F5

loc_71B1E1:				; CODE XREF: MmInvalidateDumpAddresses(x,x)+45j
		xor	edx, edx
		mov	ecx, edi
		call	KeFlushSingleCurrentTb
		add	edi, 1000h
		sub	esi, 1
		jnz	short loc_71B1E1

loc_71B1F5:				; CODE XREF: MmInvalidateDumpAddresses(x,x)+12j
					; MmInvalidateDumpAddresses(x,x)+31j
		mov	ecx, ds:dword_6D306C
		push	20h
		pop	edx

loc_71B1FE:				; CODE XREF: MmInvalidateDumpAddresses(x,x)+66j
		mov	eax, ds:_ZeroPte
		mov	[ecx], eax
		nop
		mov	eax, ds:dword_40F9FC
		lea	ecx, [ecx+8]
		mov	[ecx-4], eax
		sub	edx, 1
		jnz	short loc_71B1FE
		pop	edi
		pop	esi
		pop	ebx
		retn
_MmInvalidateDumpAddresses@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall BgkResumeInitialize()
_BgkResumeInitialize@0 proc near	; CODE XREF: PopRestoreHiberContext+3E0p
		mov	edi, edi
		push	ecx
		mov	ecx, ds:dword_6D4AB4
		mov	ds:byte_6D4AB8,	0
		test	ecx, ecx
		jz	short loc_71B241
		or	edx, 0FFFFFFFFh
		call	_BgLibraryInitialize@8 ; BgLibraryInitialize(x,x)
		test	eax, eax
		js	short loc_71B241
		mov	ds:byte_6D4AB8,	1

loc_71B241:				; CODE XREF: BgkResumeInitialize()+12j
					; BgkResumeInitialize()+1Ej
		pop	ecx
		retn
_BgkResumeInitialize@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiCalibrateTimeAdjustment proc near	; DATA XREF: KeAdjustInterruptTime(x,x,x)+56o

var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 007284C9 SIZE 000000CA BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 54h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, large fs:20h
		push	edi
		xor	edi, edi
		mov	[ebp+var_20], ebx
		mov	[ebp+var_38], edi
		mov	[ebp+var_34], edi
		mov	[ebp+var_38], edi
		mov	[ebp+var_34], edi
		mov	[ebp+var_3C], edi
		mov	[ebp+var_30], edi
		mov	[ebp+var_2C], edi
		mov	eax, [esi+3CCh]
		mov	[ebp+var_24], esi
		cmp	eax, [ebx+4]
		jz	loc_71B31A
		call	_KeDisableInterrupts@0 ; KeDisableInterrupts()
		mov	[ebp+var_15], al

loc_71B297:				; CODE XREF: KiCalibrateTimeAdjustment+5Dj
		call	KiPollFreezeExecution
		mov	ecx, [ebx+1Ch]
		test	ecx, ecx
		jnz	short loc_71B297

loc_71B2A3:				; CODE XREF: KiCalibrateTimeAdjustment+24Aj
		mov	dl, 1
		mov	ecx, esi
		call	_KiSelectActiveTimerTable@8 ; KiSelectActiveTimerTable(x,x)
		test	eax, eax
		jnz	loc_71B493

loc_71B2B4:				; CODE XREF: KiCalibrateTimeAdjustment+290j
		mov	eax, ds:_KeTickCount
		mov	[esi+2240h], eax
		cmp	byte ptr [ebx],	0
		mov	eax, [ebx+0Ch]
		mov	edi, [ebx+8]
		mov	[ebp+var_20], eax
		jz	short loc_71B2F5
		push	dword ptr [ebx+14h]
		lea	eax, [ebx+18h]
		push	dword ptr [ebx+10h]
		push	eax
		call	ds:__imp__HalCalibratePerformanceCounter@12 ; HalCalibratePerformanceCounter(x,x,x)
		call	_KeRebaselineInterruptTime@0 ; KeRebaselineInterruptTime()
		test	ds:dword_70EFD0, 8000h
		jnz	loc_7284F4

loc_71B2F2:				; CODE XREF: KiCalibrateTimeAdjustment+D2ECj
		mov	eax, [ebp+var_20]

loc_71B2F5:				; CODE XREF: KiCalibrateTimeAdjustment+87j
		cmp	byte ptr [esi+3D0h], 0
		jnz	loc_71B4D9

loc_71B302:				; CODE XREF: KiCalibrateTimeAdjustment+2A1j
		cmp	[ebp+var_15], 0
		pop	edi
		pop	esi
		pop	ebx
		jz	short loc_71B30C
		sti

loc_71B30C:				; CODE XREF: KiCalibrateTimeAdjustment+C5j
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B31A:				; CODE XREF: KiCalibrateTimeAdjustment+45j
		call	_KeDisableInterrupts@0 ; KeDisableInterrupts()
		mov	esi, [ebx+0Ch]
		mov	edi, [ebx+8]
		mov	[ebp+var_15], al
		mov	[ebp+var_4C], esi
		call	KeQueryInterruptTime
		mov	ecx, eax
		mov	eax, edx
		add	ecx, edi
		mov	[ebp+var_44], ecx
		adc	eax, esi
		mov	[ebp+var_40], eax
		lea	eax, [ebp+var_30]
		push	eax
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		cmp	byte ptr [ebx],	0
		mov	[ebp+var_48], eax
		mov	[ebp+var_1C], edx
		jz	short loc_71B3B9
		mov	ebx, [ebp+var_4C]
		mov	eax, edi
		mul	[ebp+var_30]
		mov	[ebp+var_28], eax
		mov	ecx, edx
		mov	eax, edi
		mul	[ebp+var_2C]
		mov	edi, eax
		mov	esi, edx
		mov	eax, ebx
		mul	[ebp+var_30]
		add	edi, eax
		adc	esi, edx
		add	edi, ecx
		adc	esi, 0
		imul	ebx, [ebp+var_2C]
		push	ebx
		push	0
		push	(offset	loc_98967E+2)
		add	esi, ebx
		push	esi
		push	edi
		call	__aulldvrm
		mov	[ebp+var_4C], ebx
		pop	ebx
		nop
		mov	ebx, [ebp+var_20]
		push	0
		push	(offset	loc_98967E+2)
		push	ecx
		push	[ebp+var_28]
		mov	[ebp+var_4C], edx
		mov	[ebx+14h], eax
		call	__aulldiv
		mov	[ebx+10h], eax
		mov	eax, [ebp+var_48]
		add	[ebx+10h], eax
		mov	eax, [ebp+var_1C]
		adc	[ebx+14h], eax

loc_71B3B9:				; CODE XREF: KiCalibrateTimeAdjustment+10Dj
		lea	eax, [ebp+var_3C]
		push	eax
		push	ds:_KeMaximumIncrement
		push	[ebp+var_40]
		push	[ebp+var_44]
		call	_RtlExtendedLargeIntegerDivide@16 ; RtlExtendedLargeIntegerDivide(x,x,x,x)
		mov	ecx, ds:_KeMaximumIncrement
		mov	edi, edx
		sub	ecx, [ebp+var_3C]
		mov	ds:_KiTickOffset, ecx
		mov	esi, ds:0FFDF03B0h
		add	esi, [ebx+8]
		mov	ecx, ds:0FFDF03B4h
		adc	ecx, [ebx+0Ch]
		mov	[ebp+var_28], eax
		mov	eax, 0FFDF03B0h
		mov	ds:0FFDF03B0h, esi
		mov	ds:0FFDF03B4h, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		test	eax, eax
		jg	short loc_71B41C
		jl	loc_71B4EA
		test	ecx, ecx
		jb	loc_71B4EA

loc_71B41C:				; CODE XREF: KiCalibrateTimeAdjustment+1C8j
		mov	esi, 0FFDF0340h
		mov	ecx, esi
		call	RtlWriteAcquireTickLock
		mov	eax, [ebp+var_40]
		mov	ecx, [ebp+var_44]
		mov	ds:0FFDF0010h, eax
		mov	ds:0FFDF0008h, ecx
		mov	ecx, esi
		mov	ds:0FFDF000Ch, eax
		mov	eax, [ebp+var_28]
		mov	ds:dword_7186C8, edi
		mov	ds:_KeTickCount, eax
		mov	ds:dword_7186C4, edi
		mov	ds:0FFDF0328h, edi
		mov	ds:0FFDF0320h, eax
		mov	eax, [ebp+var_48]
		mov	ds:0FFDF0324h, edi
		xor	edi, edi
		mov	ds:0FFDF0350h, eax
		mov	eax, [ebp+var_1C]
		mov	ds:0FFDF0354h, eax
		mov	ds:_KiInterruptTimeErrorAccumulator, edi
		mov	ds:dword_6D4B04, edi
		call	_RtlWriteReleaseTickLock@4 ; RtlWriteReleaseTickLock(x)
		mov	esi, [ebp+var_24]
		mov	[ebx+1Ch], edi
		jmp	loc_71B2A3
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B493:				; CODE XREF: KiCalibrateTimeAdjustment+6Aj
		mov	[ebp+var_54], edi
		mov	edi, ds:0FFDF000Ch
		mov	eax, ds:0FFDF0008h
		mov	[ebp+var_1C], eax
		cmp	edi, ds:0FFDF0010h
		jnz	loc_7284C9

loc_71B4B0:				; CODE XREF: KiCalibrateTimeAdjustment+D2ABj
		add	esi, 4080h
		push	esi
		call	_KeRemoveQueueDpc@4 ; KeRemoveQueueDpc(x)
		mov	eax, [ebp+var_1C]
		shrd	eax, edi, 12h
		push	0
		sub	eax, 100h
		push	eax
		push	esi
		call	_KeInsertQueueDpc@12 ; KeInsertQueueDpc(x,x,x)
		mov	esi, [ebp+var_24]
		jmp	loc_71B2B4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B4D9:				; CODE XREF: KiCalibrateTimeAdjustment+B8j
		push	eax
		push	edi
		push	3
		pop	edx
		xor	ecx, ecx
		call	KiUpdateSystemTime
		jmp	loc_71B302
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B4EA:				; CODE XREF: KiCalibrateTimeAdjustment+1CAj
					; KiCalibrateTimeAdjustment+1D2j
		push	5
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
					; AL = character to display
		int	3		; Trap to Debugger

MiUpdateUserMappings:			; CODE XREF: PopInvokeSystemStateHandler+26Fp
					; PopInvokeSystemStateHandler+335p
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	ecx, ecx
		call	_MiGetPdeAddress@4 ; MiGetPdeAddress(x)
		mov	ecx, ds:_MmHighestUserAddress
		mov	esi, eax
		call	_MiGetPdeAddress@4 ; MiGetPdeAddress(x)
		mov	ebx, eax
		cmp	esi, ebx
		ja	short loc_71B54D
		push	edi

loc_71B513:				; CODE XREF: KiCalibrateTimeAdjustment+306j
		mov	edi, [esi]
		nop
		mov	edx, [esi+4]
		mov	ecx, esi
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	short loc_71B530
		push	edx
		push	edi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	edi, eax

loc_71B530:				; CODE XREF: KiCalibrateTimeAdjustment+2E1j
		mov	ecx, edi
		and	ecx, 1
		or	ecx, 0
		jnz	short loc_71B551
		mov	eax, edi
		and	eax, 400h
		or	eax, ecx
		jnz	short loc_71B560

loc_71B545:				; CODE XREF: KiCalibrateTimeAdjustment+31Aj
					; KiCalibrateTimeAdjustment+338j ...
		add	esi, 8
		cmp	esi, ebx
		jbe	short loc_71B513
		pop	edi

loc_71B54D:				; CODE XREF: KiCalibrateTimeAdjustment+2CCj
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B551:				; CODE XREF: KiCalibrateTimeAdjustment+2F4j
		push	edx
		push	edi
		call	_MiMakeQuasiPte@8 ; MiMakeQuasiPte(x,x)
		mov	[esi], eax
		nop
		mov	[esi+4], edx
		jmp	short loc_71B545
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B560:				; CODE XREF: KiCalibrateTimeAdjustment+2FFj
		push	edx
		push	edi
		call	_MiRevertQuasiPte@8 ; MiRevertQuasiPte(x,x)
		xor	edi, edi
		mov	ecx, eax
		cmp	[ebp+var_4], edi
		jnz	loc_728535

loc_71B574:				; CODE XREF: KiCalibrateTimeAdjustment+D304j
					; KiCalibrateTimeAdjustment+D322j ...
		mov	[esi+4], edx
		nop
		mov	[esi], ecx
		test	edi, edi
		jz	short loc_71B545
		jmp	loc_728585
KiCalibrateTimeAdjustment endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopWriteHeaderPages proc near		; CODE XREF: PopSaveHiberContext+31Dp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00728593 SIZE 00000069 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	ebx, edx
		mov	[ebp+var_C], edi
		mov	eax, [edi+6Ch]
		mov	ecx, [edi+68h]
		and	dword ptr [edi+7Ch], 0
		shl	eax, 0Ch
		push	eax		; size_t
		push	0		; int
		push	ecx		; void *
		mov	[ebp+var_4], ecx
		call	_memset
		mov	eax, [edi+54h]
		add	esp, 0Ch
		test	eax, eax
		jz	loc_7285F2
		mov	eax, [eax+14h]
		mov	esi, ds:_PopHiberScratchPages
		shr	eax, 0Ch
		mov	[ebx+3Ch], eax
		cmp	eax, esi
		jb	loc_7285F2
		mov	eax, [edi+54h]
		shl	esi, 2
		add	eax, 1Ch
		push	esi		; size_t
		push	eax		; void *
		push	[ebp+var_4]	; void *
		call	_memcpy
		mov	eax, [edi+0A0h]
		add	esp, 0Ch
		add	eax, 2
		mov	ecx, edi
		push	eax
		lea	eax, [esi+0FFFh]
		mov	esi, [ebp+var_4]
		shr	eax, 0Ch
		mov	edx, esi
		push	eax
		call	PopWriteHiberPages
		mov	eax, ds:_PopHiberScratchPages
		mov	[ebx+3Ch], eax
		lea	eax, ds:0FFFh[eax*4]
		and	eax, 0FFFFF000h
		push	eax
		push	esi
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		mov	[ebx+40h], eax
		mov	al, ds:_PopHiberResumeXhciHandoffSkip
		mov	[ebx+336h], al
		cmp	dword ptr [edi+9Ch], 0
		jz	short loc_71B6B9
		mov	eax, [edi+6Ch]
		shl	eax, 0Ch
		push	eax		; size_t
		push	0		; int
		push	esi		; void *
		mov	dword ptr [edi+7Ch], 1
		call	_memset
		mov	esi, [edi+0A0h]
		add	esp, 0Ch
		shl	esi, 0Ch
		push	esi		; size_t
		push	dword ptr [edi+9Ch] ; void *
		push	[ebp+var_4]	; void *
		call	_memcpy
		add	esp, 0Ch
		push	esi
		push	[ebp+var_4]
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		mov	edx, [ebp+var_4]
		mov	ecx, edi
		mov	[ebx+2D4h], eax
		mov	eax, [edi+0A0h]
		push	2
		push	eax
		mov	[ebx+2D8h], eax
		call	PopWriteHiberPages
		push	esi
		mov	esi, [ebp+var_4]
		push	esi
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		mov	ecx, [ebx+2D4h]
		mov	[ebp+var_8], eax
		cmp	ecx, eax
		jnz	loc_728593

loc_71B6B9:				; CODE XREF: PopWriteHeaderPages+B8j
		mov	eax, [edi+6Ch]
		shl	eax, 0Ch
		push	eax		; size_t
		push	0		; int
		push	esi		; void *
		mov	dword ptr [edi+7Ch], 2
		call	_memset
		mov	esi, [edi+78h]
		add	esp, 0Ch
		mov	edi, [ebp+var_4]
		mov	ecx, 0C8h
		rep movsd
		mov	esi, [ebp+var_4]
		mov	edi, 320h
		push	edi
		push	esi
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		mov	ecx, [ebp+var_C]
		mov	edx, esi
		push	1
		push	1
		mov	[ebx+44h], eax
		call	PopWriteHiberPages
		push	edi
		push	esi
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		mov	edi, eax
		mov	eax, [ebx+44h]
		cmp	eax, edi
		jnz	loc_7285B2
		push	1000h
		push	esi
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		mov	esi, eax
		mov	eax, [ebx+44h]
		cmp	eax, esi
		jnz	loc_7285CE
		xor	eax, eax

loc_71B733:				; CODE XREF: PopWriteHeaderPages+D073j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
PopWriteHeaderPages endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopWriteHiberPages proc	near		; CODE XREF: PopWriteHeaderPages+81p
					; PopWriteHeaderPages+113p ...

var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= word ptr -0A4h
var_A2		= word ptr -0A2h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 007285FC SIZE 000000A8 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0E4h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		push	0A0h		; size_t
		xor	ebx, ebx
		mov	[ebp+var_B0], edx
		lea	eax, [ebp+var_A8]
		mov	esi, ecx
		push	ebx		; int
		push	eax		; void *
		mov	edi, edx
		mov	[ebp+var_BC], esi
		call	_memset
		add	esp, 0Ch
		mov	[ebp+var_C8], ebx
		test	byte ptr ds:_PopWatchdogTimerCount, 1Fh
		mov	[ebp+var_C4], ebx
		mov	[ebp+var_D0], ebx
		mov	[ebp+var_CC], ebx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_DC], ebx
		jz	loc_71B991

loc_71B7A8:				; CODE XREF: PopWriteHiberPages+25Fj
		inc	ds:_PopWatchdogTimerCount
		cmp	[esi+80h], ebx
		jl	loc_71B980
		mov	ebx, [ebp+arg_0]
		xor	eax, eax
		mov	edx, [ebp+arg_4]
		lea	ecx, [ebx+edx]
		shld	eax, ecx, 0Ch
		shl	ecx, 0Ch
		cmp	eax, ds:dword_6C24AC
		jb	short loc_71B7E6
		ja	loc_7285FC
		cmp	ecx, ds:dword_6C24A8
		ja	loc_7285FC

loc_71B7E6:				; CODE XREF: PopWriteHiberPages+9Aj
		cmp	ebx, 0FFFFFh
		ja	loc_72866B
		mov	eax, [esi+70h]
		xor	ecx, ecx
		shld	ecx, edx, 0Ch
		mov	[ebp+var_DC], eax
		shl	edx, 0Ch
		shl	ebx, 0Ch
		mov	[ebp+var_B8], ecx
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_0], ebx

loc_71B813:				; CODE XREF: PopWriteHiberPages+243j
		test	ebx, ebx
		jz	loc_71B980
		push	ecx
		push	edx
		lea	edx, [ebp+var_C8]
		mov	ecx, eax
		call	PopGetIoLocation
		mov	[ebp+var_D0], eax
		xor	eax, eax
		mov	[ebp+var_CC], edx
		cmp	eax, [ebp+var_C4]
		jb	short loc_71B852
		mov	ecx, [ebp+var_C8]
		mov	[ebp+var_AC], ecx
		ja	short loc_71B85A
		cmp	ebx, ecx
		ja	short loc_71B85A

loc_71B852:				; CODE XREF: PopWriteHiberPages+106j
		mov	ecx, ebx
		mov	[ebp+var_AC], ebx

loc_71B85A:				; CODE XREF: PopWriteHiberPages+114j
					; PopWriteHiberPages+118j
		mov	edx, edi
		lea	esi, [ecx+0FFFh]
		and	edx, 0FFFh
		add	esi, edx
		shr	esi, 0Ch
		mov	[ebp+var_B4], esi
		cmp	esi, 10h
		ja	loc_728675

loc_71B87C:				; CODE XREF: PopWriteHiberPages+CF56j
		mov	[ebp+var_A8], eax
		lea	eax, [ecx+0FFFh]
		add	eax, edx
		mov	[ebp+var_9C], edi
		shr	eax, 0Ch
		mov	[ebp+var_90], edx
		mov	[ebp+var_94], ecx
		lea	eax, ds:1Ch[eax*4]
		mov	[ebp+var_A4], ax
		mov	eax, edi
		and	eax, 0FFFFF000h
		mov	[ebp+var_98], eax
		xor	eax, eax
		inc	eax
		mov	[ebp+var_A2], ax
		xor	eax, eax
		mov	edi, eax
		test	esi, esi
		jz	short loc_71B8F1
		mov	ebx, [ebp+var_B0]

loc_71B8D2:				; CODE XREF: PopWriteHiberPages+1B4j
		push	ebx
		call	_MmGetPhysicalAddress@4	; MmGetPhysicalAddress(x)
		shrd	eax, edx, 0Ch
		add	ebx, 1000h
		mov	[ebp+edi*4+var_8C], eax
		inc	edi
		cmp	edi, esi
		jb	short loc_71B8D2
		mov	ebx, [ebp+arg_0]

loc_71B8F1:				; CODE XREF: PopWriteHiberPages+192j
		rdtsc
		mov	esi, eax
		mov	edi, edx
		mov	eax, [ebp+var_BC]
		mov	ecx, [eax+74h]
		lea	eax, [ebp+var_A8]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		call	dword ptr [ecx+30h]
		mov	ecx, [ebp+var_B8]
		mov	[ebp+var_D8], eax
		rdtsc
		sub	eax, esi
		mov	esi, [ebp+var_D8]
		push	0
		sbb	edx, edi
		add	ds:dword_6C28B8, eax
		mov	eax, [ebp+var_B4]
		adc	ds:dword_6C28BC, edx
		add	ds:dword_6C2A90, eax
		mov	eax, [ebp+var_AC]
		sub	ebx, eax
		mov	edx, [ebp+arg_4]
		add	edx, eax
		mov	[ebp+arg_0], ebx
		pop	edi
		adc	ecx, edi
		mov	[ebp+arg_4], edx
		mov	edi, [ebp+var_B0]
		add	edi, eax
		mov	[ebp+var_B8], ecx
		mov	[ebp+var_B0], edi
		test	esi, esi
		js	loc_728693
		mov	eax, [ebp+var_DC]
		jmp	loc_71B813
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B980:				; CODE XREF: PopWriteHiberPages+7Cj
					; PopWriteHiberPages+DDj ...
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71B991:				; CODE XREF: PopWriteHiberPages+6Aj
		call	ds:off_6B13A8	; SymCryptFatalIntercept(x)
		jmp	loc_71B7A8
PopWriteHiberPages endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopInvokeSystemStateHandler proc near	; CODE XREF: PopTransitionToSleep+9376p
					; PopShutdownSystem(x)+5Fp ...

var_132		= byte ptr -132h
var_131		= byte ptr -131h
var_130		= dword	ptr -130h
var_12A		= byte ptr -12Ah
var_129		= byte ptr -129h
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= byte ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_B8		= dword	ptr -0B8h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0071BECB SIZE 00000002 BYTES
; FUNCTION CHUNK AT 007286A4 SIZE 00000337 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 12Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+12Ch+var_4], eax
		push	ebx
		push	esi
		push	edi
		push	8
		mov	ebx, ecx
		mov	[esp+13Ch+var_110], 0C0000001h
		pop	ecx
		mov	esi, edx
		mov	[esp+138h+var_114], ebx
		xor	edx, edx
		mov	[esp+138h+var_108], esi
		xor	eax, eax
		mov	[esp+138h+var_100], edx
		lea	edi, [esp+138h+var_B8]
		mov	[esp+138h+var_FC], edx
		push	38h		; size_t
		rep stosd
		push	edx		; int
		lea	eax, [esp+140h+var_F8]
		mov	[esp+140h+var_129], dl
		push	eax		; void *
		mov	[esp+144h+var_128], edx
		mov	[esp+144h+var_124], edx
		call	_memset
		xor	eax, eax
		mov	[esp+144h+var_E8], offset _PopPowerStateNotifyHandler
		lea	edi, [esp+144h+var_14]
		mov	[esp+144h+var_E4], ebx
		stosd
		add	esp, 0Ch
		stosd
		stosd
		stosd
		lea	eax, [esp+138h+var_14]
		mov	[esp+138h+var_F8], eax
		cmp	ebx, 7
		jz	short loc_71BA48
		mov	ecx, ebx
		shl	ecx, 4
		lea	eax, _PopPowerStateHandlers[ecx]
		mov	[esp+138h+var_F8], eax
		cmp	ds:dword_6C2DA8[ecx], 0
		jz	loc_7286A4

loc_71BA48:				; CODE XREF: PopInvokeSystemStateHandler+8Ej
		mov	eax, ds:_KeNumberProcessors
		mov	[esp+138h+var_DC], eax
		mov	eax, ds:_KeNumberProcessors
		mov	[esp+138h+var_D0], eax
		xor	eax, eax
		inc	eax
		mov	[esp+138h+var_D4], eax
		cmp	ebx, 4
		jz	short loc_71BA78
		cmp	ebx, 5
		jz	short loc_71BA78
		cmp	ds:_PopCheckpointSystemSleepEnabled, 0
		jnz	loc_7286AE

loc_71BA78:				; CODE XREF: PopInvokeSystemStateHandler+C8j
					; PopInvokeSystemStateHandler+CDj ...
		cmp	ebx, 3
		jnz	loc_7286BE

loc_71BA81:				; CODE XREF: PopInvokeSystemStateHandler+CD25j
		test	esi, esi
		jz	loc_7286C7
		mov	edi, esi
		mov	[esp+138h+var_F4], offset _PopSaveHiberContextWrapper@4	; PopSaveHiberContextWrapper(x)
		mov	ebx, esi
		mov	[esp+138h+var_EC], edi
		mov	[esp+138h+var_F0], ebx

loc_71BA9D:				; CODE XREF: PopInvokeSystemStateHandler+CD33j
		push	50h		; size_t
		lea	eax, [esp+13Ch+var_68]
		push	0		; int
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		test	esi, esi
		jz	loc_7286D4
		mov	eax, [esp+138h+var_F8]
		lea	edx, [esp+138h+var_20]
		mov	ds:_PopHibernateSystemContext, eax
		mov	ecx, offset dword_6C33F0
		mov	eax, [esp+138h+var_F4]
		mov	ds:dword_6C33C4, eax
		mov	eax, [esp+138h+var_E8]
		mov	ds:dword_6C33D0, eax
		mov	eax, [esp+138h+var_E4]
		mov	ds:dword_6C33D4, eax
		mov	al, [esp+138h+var_E0]
		mov	ds:byte_6C33D8,	al
		mov	eax, [esp+138h+var_DC]
		mov	ds:dword_6C33DC, eax
		mov	eax, [esp+138h+var_D0]
		mov	ds:dword_6C33E8, eax
		mov	eax, [esp+138h+var_D4]
		mov	ds:dword_6C33C8, ebx
		mov	ebx, offset _PopHibernateSystemContext
		mov	ds:dword_6C33CC, edi
		mov	ds:dword_6C33E4, eax
		call	@InterlockedPushEntrySList@8 ; InterlockedPushEntrySList(x,x)

loc_71BB23:				; CODE XREF: PopInvokeSystemStateHandler+CDDCj
		push	2
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		push	3
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		cmp	ds:dword_6C26E0, 4
		jz	loc_72877D
		mov	eax, ds:dword_70ED2C
		mov	edi, ds:_PopQpcFrequency
		push	0
		mov	[esp+13Ch+var_10C], eax
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		mov	ecx, eax
		mov	[esp+13Ch+var_11C], edx
		mov	eax, [esp+13Ch+var_110]
		mov	[esp+13Ch+var_120], ecx

loc_71BB75:				; CODE XREF: PopInvokeSystemStateHandler+CE05j
		test	ds:dword_70EFD0, 8000h
		jnz	loc_7287A6

loc_71BB85:				; CODE XREF: PopInvokeSystemStateHandler+CE6Dj
		push	4
		lea	edx, [esp+140h+var_6C]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		test	esi, esi
		jz	short loc_71BBAD
		mov	ds:_RtlpDebugPrintCallbacksActive, 0
		call	_VfIsVerifierEnabled@0 ; VfIsVerifierEnabled()
		test	eax, eax
		jnz	loc_72880E

loc_71BBAD:				; CODE XREF: PopInvokeSystemStateHandler+1FBj
					; PopInvokeSystemStateHandler+CE79j
		push	11h
		pop	ecx
		mov	ds:_PoAllProcIntrDisabled, 1
		call	PopCheckpointSystemSleep
		cmp	[esp+13Ch+var_2C], 0
		jl	loc_72885E
		push	0Ch
		lea	edx, [esp+140h+var_6C]
		mov	byte ptr [ebx+18h], 1
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		mov	eax, [esp+13Ch+var_118]
		cmp	eax, 3
		jnz	loc_72881A

loc_71BBEB:				; CODE XREF: PopInvokeSystemStateHandler+CE81j
					; PopInvokeSystemStateHandler+CE8Dj
		test	esi, esi
		jz	short loc_71BC20
		push	5
		lea	edx, [esp+140h+var_6C]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		test	ds:_PopSimulateHiberBugcheck, 100h
		jnz	short loc_71BC10
		call	MiUpdateUserMappings

loc_71BC10:				; CODE XREF: PopInvokeSystemStateHandler+26Dj
		push	0Ah
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)

loc_71BC20:				; CODE XREF: PopInvokeSystemStateHandler+251j
		push	12h
		pop	ecx
		call	PopCheckpointSystemSleep
		push	6
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		push	1Ah
		pop	ecx
		call	PopCheckpointSystemSleep
		mov	edi, [esp+138h+var_28]
		mov	[esp+138h+var_110], edi
		call	_KeRebaselineInterruptTime@0 ; KeRebaselineInterruptTime()
		call	ds:off_6B13A4	; SymCryptFatalIntercept(x)
		test	esi, esi
		jz	short loc_71BC72
		cmp	edi, 40000294h
		jnz	short loc_71BC72
		push	7
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)

loc_71BC72:				; CODE XREF: PopInvokeSystemStateHandler+2BCj
					; PopInvokeSystemStateHandler+2C4j
		push	8
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		test	esi, esi
		jz	short loc_71BCF1
		cmp	edi, 40000294h
		jnz	short loc_71BCAE
		push	1Bh
		pop	ecx
		call	PopCheckpointSystemSleep
		push	9
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		push	20h
		pop	ecx
		call	PopCheckpointSystemSleep

loc_71BCAE:				; CODE XREF: PopInvokeSystemStateHandler+2F0j
		mov	ecx, esi
		call	_PopHiberEarlyCleanup@4	; PopHiberEarlyCleanup(x)
		push	0Ah
		lea	edx, [esp+13Ch+var_68]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		test	ds:_PopSimulateHiberBugcheck, 100h
		jnz	short loc_71BCDD
		call	MiUpdateUserMappings
		xor	ecx, ecx
		call	_MiConvertHiberPhasePages@4 ; MiConvertHiberPhasePages(x)

loc_71BCDD:				; CODE XREF: PopInvokeSystemStateHandler+333j
		push	0Bh
		lea	edx, [esp+138h+var_64]
		mov	byte ptr [esi+3], 0
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)

loc_71BCF1:				; CODE XREF: PopInvokeSystemStateHandler+2E8j
		mov	eax, ds:_PopDebugFlags
		xor	ecx, ecx
		inc	ecx
		mov	[esp+134h+var_110], eax
		test	al, cl
		jnz	loc_72882E

loc_71BD05:				; CODE XREF: PopInvokeSystemStateHandler+CE99j
					; PopInvokeSystemStateHandler+CEACj
		test	al, 2
		jnz	loc_72884D
		xor	edx, edx
		mov	ds:_PopNoMoreInput, dl
		test	edi, edi
		js	short loc_71BD52
		inc	ds:_PoPowerSequence
		mov	ds:_PopFullWake, edx
		mov	ds:_PopPendingUserPresenceDuringSystemSleep, edx
		mov	ds:_PopPendingUserPresenceMonitorOnReason, edx
		mov	ds:dword_6C22A8, ecx
		cmp	ds:_PoResumeFromHibernate, dl
		jz	short loc_71BD52
		mov	eax, offset _PopPendingUserPresenceDuringSystemSleep
		lock or	[eax], ecx
		push	19h
		pop	ecx
		mov	eax, offset _PopPendingUserPresenceMonitorOnReason
		lock or	[eax], ecx

loc_71BD52:				; CODE XREF: PopInvokeSystemStateHandler+37Bj
					; PopInvokeSystemStateHandler+3A1j
		mov	[ebx+18h], dl
		mov	ecx, ebx
		push	0Ch
		lea	edx, [esp+138h+var_64]
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)

loc_71BD65:				; CODE XREF: PopInvokeSystemStateHandler+CEC7j
		test	esi, esi
		jz	short loc_71BDB6
		cmp	edi, 0C00000C0h
		jz	loc_728868
		mov	ds:_PoHiberInProgress, 0
		cmp	byte ptr [esi],	0
		mov	[esi+80h], edi
		jnz	loc_72887D

loc_71BD8B:				; CODE XREF: PopInvokeSystemStateHandler+CF0Cj
		call	_VfIsVerifierEnabled@0 ; VfIsVerifierEnabled()
		test	eax, eax
		jnz	loc_7288AD

loc_71BD98:				; CODE XREF: PopInvokeSystemStateHandler+CF18j
		cmp	ds:_RtlpDebugPrintCallbackList,	offset _RtlpDebugPrintCallbackList
		jnz	short loc_71BDAC
		xor	eax, eax
		inc	eax
		mov	ds:_RtlpDebugPrintCallbacksActive, al

loc_71BDAC:				; CODE XREF: PopInvokeSystemStateHandler+406j
		mov	dword ptr [esi+80h], 40000294h

loc_71BDB6:				; CODE XREF: PopInvokeSystemStateHandler+3CBj
		call	_KeRebaselineInterruptTime@0 ; KeRebaselineInterruptTime()
		call	_KeRebaselineSystemTime@0 ; KeRebaselineSystemTime()
		push	21h
		pop	ecx
		call	PopCheckpointSystemSleep
		push	0Dh
		lea	edx, [esp+138h+var_64]
		mov	ds:_PoAllProcIntrDisabled, 0
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		test	edi, edi
		js	short loc_71BE30
		cmp	ds:dword_6C26E0, 4
		jz	loc_7288B9

loc_71BDF0:				; CODE XREF: PopInvokeSystemStateHandler+CF24j
		push	0
		mov	byte ptr [esp+138h+var_128+2], 0
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		push	offset dword_6C29B0
		push	offset unk_6C29A8
		mov	[esp+140h+var_128], eax
		mov	[esp+140h+var_124], edx
		call	ds:off_6B1298	; xHalpIsInterruptTypeSecondary(x,x)

loc_71BE15:				; CODE XREF: PopInvokeSystemStateHandler+CF40j
					; PopInvokeSystemStateHandler+CF50j
		test	ds:dword_70EFD0, 8000h
		jnz	loc_7288F1

loc_71BE25:				; CODE XREF: PopInvokeSystemStateHandler+CFABj
		cmp	[esp+140h+var_132], 0
		jnz	loc_72894C

loc_71BE30:				; CODE XREF: PopInvokeSystemStateHandler+445j
					; PopInvokeSystemStateHandler+D02Bj
		push	0Eh
		lea	edx, [esp+144h+var_70]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		push	0Fh
		lea	edx, [esp+144h+var_70]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		push	10h
		lea	edx, [esp+144h+var_70]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)
		cmp	[esp+140h+var_30], 0
		jl	short loc_71BE80
		mov	ecx, [ebx]
		and	[esp+140h+var_30], 0
		mov	al, [ecx+5]
		cmp	al, 0FFh
		jz	short loc_71BE80
		inc	al
		mov	[ecx+5], al

loc_71BE80:				; CODE XREF: PopInvokeSystemStateHandler+4CCj
					; PopInvokeSystemStateHandler+4DDj
		test	esi, esi
		jz	loc_7289CC
		cmp	edi, 40000294h
		jnz	short loc_71BEAF
		cmp	ds:byte_6C24D1,	0
		jnz	short loc_71BEAF
		cmp	ds:byte_6D4AB8,	0
		jz	short loc_71BEAF
		mov	ecx, ds:dword_6D4AB4
		xor	edx, edx
		call	_BgLibraryInitialize@8 ; BgLibraryInitialize(x,x)

loc_71BEAF:				; CODE XREF: PopInvokeSystemStateHandler+4F2j
					; PopInvokeSystemStateHandler+4FBj ...
		mov	eax, [esp+140h+var_30]

loc_71BEB6:				; CODE XREF: PopInvokeSystemStateHandler+CD0Dj
		mov	ecx, [esp+140h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
PopInvokeSystemStateHandler endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopInvokeSystemStateHandler

loc_71BECB:				; CODE XREF: PopInvokeSystemStateHandler:loc_71BECBj
					; PopInvokeSystemStateHandler+CED6j
		jmp	short loc_71BECB
; END OF FUNCTION CHUNK	FOR PopInvokeSystemStateHandler
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopIssueNextState(x, x, x)
_PopIssueNextState@12 proc near		; CODE XREF: PopInvokeSystemStateHandler+192p
					; PopInvokeSystemStateHandler+1A2p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		xor	eax, eax
		lea	ebx, [edi+20h]
		xchg	eax, [ebx]
		mov	esi, [ebp+arg_0]
		lea	eax, [edi+24h]
		xchg	esi, [eax]
		and	dword ptr [edx], 0
		call	_PopHandleNextState@8 ;	PopHandleNextState(x,x)
		and	[ebp+arg_0], 0
		jmp	short loc_71BEFD
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71BEF5:				; CODE XREF: PopIssueNextState(x,x,x)+34j
		lea	ecx, [ebp+arg_0]
		call	KeYieldProcessorEx

loc_71BEFD:				; CODE XREF: PopIssueNextState(x,x,x)+25j
		mov	eax, [ebx]
		cmp	eax, [edi+1Ch]
		jnz	short loc_71BEF5
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
_PopIssueNextState@12 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopInvokeStateHandlerTargetProcessor(x, x, x, x)
_PopInvokeStateHandlerTargetProcessor@16 proc near ; DATA XREF:	PAGELK:00720B2Co
					; PopInvokeSystemStateHandler+CD66o

var_58		= dword	ptr -58h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 5Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+5Ch+var_4], eax
		push	esi
		mov	esi, [ebp+arg_4]
		lea	eax, [esp+60h+var_58]
		push	50h		; size_t
		push	0		; int
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		lea	ecx, [esi+30h]
		lea	edx, [esp+60h+var_10]
		call	@InterlockedPushEntrySList@8 ; InterlockedPushEntrySList(x,x)

loc_71BF43:				; CODE XREF: PopInvokeStateHandlerTargetProcessor(x,x,x,x)+47j
		lea	edx, [esp+60h+var_58]
		mov	ecx, esi
		call	_PopHandleNextState@8 ;	PopHandleNextState(x,x)
		cmp	[esp+60h+var_58], 10h
		jnz	short loc_71BF43
		mov	ecx, [esp+60h+var_4]
		pop	esi
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn	10h
_PopInvokeStateHandlerTargetProcessor@16 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopHandleNextState(x, x)
_PopHandleNextState@8 proc near		; CODE XREF: PopIssueNextState(x,x,x)+1Cp
					; PopInvokeStateHandlerTargetProcessor(x,x,x,x)+3Dp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	ebx, ecx
		mov	esi, edx
		mov	ecx, large fs:20h
		push	edi
		xor	edi, edi
		mov	[ebp+var_4], ecx
		mov	eax, [ebx+24h]
		cmp	eax, [esi]
		jnz	short loc_71BFB8

loc_71BF92:				; CODE XREF: PopHandleNextState(x,x)+43j
		inc	edi
		test	ds:_HvlLongSpinCountMask, edi
		jnz	short loc_71BFAC
		test	byte ptr ds:_HvlEnlightenments,	40h
		jz	short loc_71BFAC
		push	edi
		call	_HvlNotifyLongSpinWait@4 ; HvlNotifyLongSpinWait(x)
		jmp	short loc_71BFAE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71BFAC:				; CODE XREF: PopHandleNextState(x,x)+29j
					; PopHandleNextState(x,x)+32j
		pause

loc_71BFAE:				; CODE XREF: PopHandleNextState(x,x)+3Aj
		mov	eax, [ebx+24h]
		cmp	eax, [esi]
		jz	short loc_71BF92
		mov	ecx, [ebp+var_4]

loc_71BFB8:				; CODE XREF: PopHandleNextState(x,x)+20j
		mov	eax, [ebx+24h]
		mov	[esi], eax
		add	eax, 0FFFFFFFEh	; switch 14 cases
		cmp	eax, 0Dh
		ja	loc_71C1B9	; default
		jmp	ds:off_71C1C4[eax*4] ; switch jump

loc_71BFD0:				; DATA XREF: PAGELK:off_71C1C4o
		mov	eax, ds:dword_6C26E0 ; case 0x2
		mov	dl, 1
		push	eax
		call	PopFxNotifySystemStateTransition
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71BFE2:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		call	KeSaveIptStateBeforeProcessorGoesOffline ; case	0x3
		mov	byte ptr [esi+5], 0
		lea	ecx, [esi+8]
		mov	edx, ds:0FFDF03D8h
		mov	eax, ds:0FFDF03DCh
		or	edx, ds:0FFDF05F0h
		or	eax, ds:0FFDF05F4h
		or	edx, 3
		push	eax
		push	edx
		call	KeSaveExtendedAndSupervisorState
		test	eax, eax
		setns	al
		mov	[esi+5], al
		mov	eax, large fs:1Ch
		mov	[esi+44h], eax
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C025:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		mov	cl, 1Fh		; case 0x4
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		mov	[esi+7], al
		call	_KeDisableInterrupts@0 ; KeDisableInterrupts()
		mov	[esi+4], al
		call	_KeSuspendClockTimer@0 ; KeSuspendClockTimer()
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C042:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		mov	eax, large fs:124h ; case 0x5
		mov	eax, [eax+80h]
		cmp	eax, ds:_PsInitialSystemProcess
		jz	loc_71C1B9	; default
		mov	byte ptr [esi+6], 1
		lea	edx, [esi+28h]
		mov	ecx, ds:_PsInitialSystemProcess
		push	1
		call	KeForceAttachProcess
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C073:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		test	ds:_PopSimulate, 800000h ; case	0x6
		jz	short loc_71C096
		cmp	dword ptr [ebx+4], 0
		jz	short loc_71C096
		xor	eax, eax
		mov	ds:_PoResumeFromHibernate, 1
		mov	[esi+40h], eax
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C096:				; CODE XREF: PopHandleNextState(x,x)+10Dj
					; PopHandleNextState(x,x)+113j
		cmp	dword ptr [ecx+3CCh], 0
		jnz	short loc_71C0AC
		cmp	dword ptr [ebx+4], 0
		jnz	short loc_71C0AC
		push	4
		call	_KdPowerTransition@4 ; KdPowerTransition(x)

loc_71C0AC:				; CODE XREF: PopHandleNextState(x,x)+12Dj
					; PopHandleNextState(x,x)+133j
		mov	ecx, [ebx]
		lea	eax, [ebx+28h]
		push	eax
		mov	eax, [ebx+1Ch]
		push	eax
		mov	eax, [ebx+8]
		push	eax
		mov	eax, [ebx+4]
		push	eax
		mov	eax, [ecx+0Ch]
		push	eax
		mov	eax, [ecx+8]
		call	eax
		mov	edi, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	ecx, [edi+3CCh]
		test	ecx, ecx
		jnz	short loc_71C103
		cmp	ds:_PoResumeFromHibernate, cl
		jnz	short loc_71C0EF
		push	1
		call	_KdPowerTransition@4 ; KdPowerTransition(x)
		mov	ecx, [edi+3CCh]
		mov	eax, [ebp+var_8]

loc_71C0EF:				; CODE XREF: PopHandleNextState(x,x)+16Dj
		test	ecx, ecx
		jnz	short loc_71C103
		rdtsc
		mov	ds:dword_6C29A0, eax
		mov	eax, [ebp+var_8]
		mov	ds:dword_6C29A4, edx

loc_71C103:				; CODE XREF: PopHandleNextState(x,x)+165j
					; PopHandleNextState(x,x)+181j
		mov	[esi+40h], eax
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C10B:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		mov	ecx, [ebx+0Ch]	; case 0x9
		call	PopRestoreHiberContext
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C118:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		call	_KeFlushCurrentTbImmediately@0 ; case 0xA
		nop
		wbinvd
		jmp	loc_71C1B9	; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C125:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		cmp	byte ptr [esi+6], 0 ; case 0xB
		jz	loc_71C1B9	; default
		lea	ecx, [esi+28h]
		mov	edx, 1
		call	_KeForceDetachProcess@8	; KeForceDetachProcess(x,x)
		mov	byte ptr [esi+6], 0
		jmp	short loc_71C1B9 ; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C142:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		mov	ecx, [ebx+10h]	; case 0xC
		mov	edx, [ecx]
		test	edx, edx
		jz	short loc_71C1B9 ; default
		movzx	eax, byte ptr [ebx+18h]
		push	eax
		mov	eax, [ecx+4]
		push	eax
		mov	eax, [ebx+14h]
		push	eax
		call	edx
		jmp	short loc_71C1B9 ; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C15C:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		mov	cl, 1		; case 0x7
		call	HvlEnlightenProcessor
		jmp	short loc_71C1B9 ; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C165:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		call	_KeRestoreProcessorSpecificFeatures@0 ;	case 0x8
		jmp	short loc_71C1B9 ; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C16C:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		call	_KeResumeClockTimer@0 ;	case 0xD
		mov	ecx, [ebp+var_4]
		xor	dl, dl
		call	_PpmResetPerfEngineForProcessorEx@8 ; PpmResetPerfEngineForProcessorEx(x,x)
		cmp	byte ptr [esi+4], 0
		jz	short loc_71C182
		sti

loc_71C182:				; CODE XREF: PopHandleNextState(x,x)+20Fj
		mov	cl, [esi+7]
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		jmp	short loc_71C1B9 ; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C18D:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		mov	eax, ds:dword_6C26E0 ; case 0xE
		xor	dl, dl
		push	eax
		call	PopFxNotifySystemStateTransition
		jmp	short loc_71C1B9 ; default
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C19C:				; CODE XREF: PopHandleNextState(x,x)+59j
					; DATA XREF: PAGELK:off_71C1C4o
		cmp	byte ptr [esi+5], 0 ; case 0xF
		jz	short loc_71C1AA
		lea	ecx, [esi+8]
		call	KeRestoreExtendedAndSupervisorState

loc_71C1AA:				; CODE XREF: PopHandleNextState(x,x)+230j
		call	KeRestoreIptStateAfterProcessorComesOnline
		mov	ecx, [ebp+var_4]
		mov	dl, 1
		call	_PpmResetPerfEngineForProcessorEx@8 ; PpmResetPerfEngineForProcessorEx(x,x)

loc_71C1B9:				; CODE XREF: PopHandleNextState(x,x)+53j
					; PopHandleNextState(x,x)+6Dj ...
		lock inc dword ptr [ebx+20h] ; default
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
_PopHandleNextState@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
off_71C1C4	dd offset loc_71BFD0	; DATA XREF: PopHandleNextState(x,x)+59r
		dd offset loc_71BFE2	; jump table for switch	statement
		dd offset loc_71C025
		dd offset loc_71C042
		dd offset loc_71C073
		dd offset loc_71C15C
		dd offset loc_71C165
		dd offset loc_71C10B
		dd offset loc_71C118
		dd offset loc_71C125
		dd offset loc_71C142
		dd offset loc_71C16C
		dd offset loc_71C18D
		dd offset loc_71C19C

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiRestoreXSaveSupport()
_KiRestoreXSaveSupport@0 proc near	; CODE XREF: KeRestoreProcessorSpecificFeatures()+2Ap
		jmp	KiEnableXSave
_KiRestoreXSaveSupport@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopCreateDumpMdl proc near		; CODE XREF: PopSaveHiberContext+2ABp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 007289DB SIZE 00000033 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, large fs:20h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ebx, ecx
		mov	eax, [eax+3CCh]
		push	edi
		mov	edi, edx
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_0]
		cmp	edx, esi
		jnb	loc_7289DB
		mov	eax, [ebx+0B4h]
		sub	esi, edx
		cmp	esi, eax
		jnb	short loc_71C2A2

loc_71C238:				; CODE XREF: PopCreateDumpMdl+A2j
		and	dword ptr [edi], 0
		mov	ecx, esi
		shl	ecx, 0Ch
		mov	eax, ecx
		mov	[edi+14h], ecx
		shr	eax, 0Ch
		lea	eax, ds:1Ch[eax*4]
		mov	[edi+4], ax
		xor	eax, eax
		and	[edi+10h], eax
		and	[edi+18h], eax
		mov	[edi+6], ax
		lea	eax, [edi+1Ch]
		test	esi, esi
		jz	short loc_71C271

loc_71C266:				; CODE XREF: PopCreateDumpMdl+6Dj
		mov	[eax], edx
		inc	edx
		lea	eax, [eax+4]
		sub	esi, 1
		jnz	short loc_71C266

loc_71C271:				; CODE XREF: PopCreateDumpMdl+62j
		imul	ecx, [ebp+var_4], 70h
		xor	esi, esi
		mov	eax, [ebx+0A8h]
		push	esi
		push	edi
		push	dword ptr [ebx+0B4h]
		push	dword ptr [eax+ecx+4]
		call	_MmMapMemoryDumpMdlEx@16 ; MmMapMemoryDumpMdlEx(x,x,x,x)
		test	dword ptr [edi+14h], 0FFFh
		jnz	loc_7289E5
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C2A2:				; CODE XREF: PopCreateDumpMdl+34j
		mov	esi, eax
		jmp	short loc_71C238
PopCreateDumpMdl endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopHiberReadChecksums proc near		; CODE XREF: PopRestoreHiberContext+189p

var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 00728A0E SIZE 000000B5 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 44h
		push	ebx
		push	esi
		xor	eax, eax
		mov	esi, ecx
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		mov	[ebp+var_40], eax
		mov	eax, [esi+128h]
		mov	[ebp+var_14], eax
		push	edi
		test	eax, eax
		jz	loc_71C45B
		mov	ecx, [esi+88h]
		rdtsc
		mov	[ebp+var_28], eax
		mov	eax, [esi+0C8h]
		mov	ebx, [ecx+58h]
		mov	[ebp+var_4], eax
		mov	eax, [ecx+60h]
		mov	[ebp+var_2C], edx
		xor	edx, edx
		shld	edx, ebx, 0Ch
		mov	[ebp+var_24], ecx
		shl	ebx, 0Ch
		lea	eax, ds:0FFFh[eax*2]
		and	eax, 0FFFFF000h
		mov	[ebp+var_20], edx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], eax
		jz	loc_71C435

loc_71C313:				; CODE XREF: PopHiberReadChecksums+186j
		mov	ecx, [esi+70h]
		push	edx
		push	ebx
		lea	edx, [ebp+var_40]
		call	PopGetIoLocation
		mov	edi, [ebp+var_40]
		mov	[ebp+var_38], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_34], edx
		mov	[ebp+var_8], edi
		cmp	eax, edi
		jnb	short loc_71C338
		mov	edi, eax
		mov	[ebp+var_8], eax

loc_71C338:				; CODE XREF: PopHiberReadChecksums+8Bj
		mov	eax, [esi+6Ch]
		shl	eax, 0Ch
		cmp	edi, eax
		jb	short loc_71C347
		mov	edi, eax
		mov	[ebp+var_8], edi

loc_71C347:				; CODE XREF: PopHiberReadChecksums+9Aj
		mov	eax, [esi+110h]
		shl	eax, 0Ch
		cmp	edi, eax
		jnb	loc_728A04

loc_71C358:				; CODE XREF: PopCreateDumpMdl+C807j
		mov	edx, [esi+68h]
		mov	ecx, edx
		mov	eax, [ebp+var_4]
		and	ecx, 0FFFh
		and	edx, 0FFFFF000h
		and	dword ptr [eax], 0
		lea	ebx, [ecx+0FFFh]
		add	ebx, edi
		shr	ebx, 0Ch
		mov	[ebp+var_1C], ebx
		lea	eax, ds:1Ch[ebx*4]
		mov	ebx, [ebp+var_4]
		mov	[ebx+4], ax
		xor	ebx, ebx
		mov	eax, [ebp+var_4]
		and	[ebp+var_18], ebx
		mov	[eax+18h], ecx
		mov	ecx, [ebp+var_4]
		mov	[eax+6], bx
		mov	[eax+10h], edx
		mov	[eax+14h], edi
		mov	eax, [esi+68h]
		mov	[ecx+0Ch], eax
		xor	eax, eax
		inc	eax
		cmp	[ebp+var_1C], ebx
		mov	ebx, [ebp+var_10]
		mov	[ecx+6], ax
		jbe	short loc_71C3EA
		xor	ebx, ebx
		mov	edi, ecx

loc_71C3BC:				; CODE XREF: PopHiberReadChecksums+139j
		mov	eax, [esi+68h]
		add	eax, ebx
		push	eax
		call	_MmGetPhysicalAddress@4	; MmGetPhysicalAddress(x)
		mov	ecx, [ebp+var_18]
		add	ebx, 1000h
		shrd	eax, edx, 0Ch
		mov	[edi+ecx*4+1Ch], eax
		inc	ecx
		mov	[ebp+var_18], ecx
		cmp	ecx, [ebp+var_1C]
		jb	short loc_71C3BC
		mov	edi, [ebp+var_8]
		mov	ebx, [ebp+var_10]
		mov	ecx, [ebp+var_4]

loc_71C3EA:				; CODE XREF: PopHiberReadChecksums+110j
		mov	eax, [esi+74h]
		push	ecx
		lea	ecx, [ebp+var_38]
		push	ecx
		push	0
		call	dword ptr [eax+6Ch]
		mov	[ebp+var_1C], eax
		test	eax, eax
		js	loc_728A0E
		push	edi		; size_t
		push	dword ptr [esi+68h] ; void *
		push	[ebp+var_14]	; void *
		call	_memcpy
		mov	eax, [ebp+var_C]
		add	esp, 0Ch
		mov	edx, [ebp+var_20]
		sub	eax, edi
		add	ebx, edi
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], ebx
		adc	edx, 0
		add	[ebp+var_14], edi
		mov	[ebp+var_20], edx
		test	eax, eax
		jnz	loc_71C313
		mov	ecx, [ebp+var_24]

loc_71C435:				; CODE XREF: PopHiberReadChecksums+67j
		mov	eax, [ecx+60h]
		mov	[esi+118h], eax
		mov	eax, [ecx+64h]
		mov	[esi+11Ch], eax
		rdtsc
		sub	eax, [ebp+var_28]
		sbb	edx, [ebp+var_2C]
		add	ds:dword_6C2A30, eax
		adc	ds:dword_6C2A34, edx

loc_71C45B:				; CODE XREF: PopHiberReadChecksums+23j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
PopHiberReadChecksums endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	PopAddPagesToCompressedPageSet(int,void	*,int,int,int)
PopAddPagesToCompressedPageSet proc near ; CODE	XREF: PopSaveHiberContext+101p
					; PopSaveHiberContext+4D4p ...

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_C]
		push	ebx
		push	esi
		mov	esi, edx
		mov	[ebp+var_18], ecx
		xor	ebx, ebx
		shl	eax, 0Ch
		mov	[ebp+var_10], esi
		mov	[ebp+var_8], ebx
		mov	ecx, [esi+0Ch]
		mov	[ebp+var_4], ecx
		mov	[ebp+arg_C], eax
		test	ecx, ecx
		jz	loc_71C51E
		push	edi
		cmp	byte ptr [ebp+arg_8], bl
		jz	loc_728A33
		mov	ecx, [esi]
		push	eax		; size_t
		push	[ebp+arg_4]	; void *
		mov	[ebp+arg_8], ecx
		push	ecx		; void *
		call	_memcpy
		add	esp, 0Ch

loc_71C4AA:				; CODE XREF: PopHiberReadChecksums+C818j
		push	ecx
		push	[ebp+var_18]
		rdtsc
		push	[ebp+arg_10]
		mov	esi, eax
		mov	edi, edx
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+arg_8]
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_8]
		push	eax
		push	ecx
		push	[ebp+var_4]
		mov	cx, ds:_PopCompressMethodMap[ebx*2]
		push	[ebp+arg_C]
		call	RtlCompressBufferProgress
		mov	ecx, eax
		rdtsc
		sub	eax, esi
		mov	esi, [ebp+var_10]
		sbb	edx, edi
		pop	edi
		add	[esi+18h], eax
		adc	[esi+1Ch], edx
		test	ecx, ecx
		js	short loc_71C526
		imul	eax, [ebp+arg_C], 7
		shr	eax, 3
		cmp	[ebp+var_8], eax
		jnb	short loc_71C526
		mov	eax, [ebp+var_8]

loc_71C4FD:				; CODE XREF: PopAddPagesToCompressedPageSet+C4j
					; PopAddPagesToCompressedPageSet+CFj
		mov	edx, [ebp+arg_0]
		shl	eax, 8
		shl	ebx, 1Eh
		pop	esi
		movzx	ecx, byte ptr [edx]
		or	ecx, eax
		mov	eax, [ebp+var_4]
		and	ecx, 3FFFFFFFh
		or	ecx, ebx
		mov	[edx], ecx
		pop	ebx
		leave
		retn	14h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C51E:				; CODE XREF: PopAddPagesToCompressedPageSet+28j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_71C4FD
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C526:				; CODE XREF: PopAddPagesToCompressedPageSet+8Cj
					; PopAddPagesToCompressedPageSet+98j
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_C]
		jmp	short loc_71C4FD
PopAddPagesToCompressedPageSet endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopCountDataAsProduced(x, x, x, x, x, x)
_PopCountDataAsProduced@24 proc	near	; CODE XREF: PopSaveHiberContext+11Ap
					; PopSaveHiberContext+4F1p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		mov	ebx, ds:dword_6C2500
		push	esi
		mov	eax, [eax]
		movzx	esi, al
		shr	eax, 8
		and	eax, 3FFFFFh
		mov	[ebp+var_C], ecx
		push	edi
		push	[ebp+arg_C]
		shl	esi, 2
		lea	ecx, [eax+4]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_8]
		add	ecx, esi
		shl	eax, 0Ch
		mov	edx, ecx
		mov	[ebp+var_8], ecx
		mov	ecx, ebx
		push	eax
		call	ProducerGetBuffer
		mov	edi, eax
		mov	[ebp+arg_C], edi
		test	edi, edi
		jz	short loc_71C5E7
		mov	ecx, [ebp+arg_0] ; int
		push	edi		; void *
		push	ebx		; int
		push	4
		pop	edx
		call	_ProducerConsumerCopyToContextBuffer@16	; ProducerConsumerCopyToContextBuffer(x,x,x,x)
		mov	ecx, [ebp+arg_4] ; int
		lea	eax, [edi+4]
		push	eax		; void *
		push	ebx		; int
		mov	edx, esi	; size_t
		call	_ProducerConsumerCopyToContextBuffer@16	; ProducerConsumerCopyToContextBuffer(x,x,x,x)
		mov	ecx, [ebp+var_4] ; int
		lea	eax, [esi+4]
		add	eax, edi
		push	eax		; void *
		mov	eax, [ebp+arg_0]
		push	ebx		; int
		mov	edx, [eax]
		shr	edx, 8
		and	edx, 3FFFFFh	; size_t
		call	_ProducerConsumerCopyToContextBuffer@16	; ProducerConsumerCopyToContextBuffer(x,x,x,x)
		push	[ebp+var_8]
		rdtsc
		push	[ebp+arg_C]
		mov	edi, edx
		mov	ecx, ebx
		lea	edx, [ebx+18h]
		mov	esi, eax
		call	_ProducerConsumerBufferComplete@16 ; ProducerConsumerBufferComplete(x,x,x,x)
		mov	ecx, [ebp+var_C]
		rdtsc
		sub	eax, esi
		sbb	edx, edi
		add	[ecx+40h], eax
		mov	al, 1
		adc	[ecx+44h], edx

loc_71C5E0:				; CODE XREF: PopCountDataAsProduced(x,x,x,x,x,x)+B7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C5E7:				; CODE XREF: PopCountDataAsProduced(x,x,x,x,x,x)+4Cj
		xor	al, al
		jmp	short loc_71C5E0
_PopCountDataAsProduced@24 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __fastcall ProducerConsumerCopyToContextBuffer(int,size_t,int,void *)
_ProducerConsumerCopyToContextBuffer@16	proc near
					; CODE XREF: PopCountDataAsProduced(x,x,x,x,x,x)+56p
					; PopCountDataAsProduced(x,x,x,x,x,x)+65p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		mov	[ebp+var_4], ecx
		mov	ecx, [eax+4]
		mov	esi, [eax]
		push	edi
		mov	edi, edx
		mov	edx, [ebp+arg_4]
		lea	eax, [esi+ecx]
		cmp	edx, eax
		jnb	short loc_71C650

loc_71C60C:				; CODE XREF: ProducerConsumerCopyToContextBuffer(x,x,x,x)+66j
		mov	ebx, edx
		sub	ebx, esi
		xor	esi, esi
		lea	eax, [ebx+edi]
		cmp	eax, ecx
		ja	short loc_71C632

loc_71C619:				; CODE XREF: ProducerConsumerCopyToContextBuffer(x,x,x,x)+4Ej
		mov	ebx, [ebp+var_4]
		push	edi		; size_t
		push	ebx		; void *
		push	edx		; void *
		call	_memcpy
		add	esp, 0Ch
		test	esi, esi
		jnz	short loc_71C63C

loc_71C62B:				; CODE XREF: ProducerConsumerCopyToContextBuffer(x,x,x,x)+62j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C632:				; CODE XREF: ProducerConsumerCopyToContextBuffer(x,x,x,x)+2Bj
		mov	esi, ebx
		sub	esi, ecx
		add	esi, edi
		sub	edi, esi
		jmp	short loc_71C619
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C63C:				; CODE XREF: ProducerConsumerCopyToContextBuffer(x,x,x,x)+3Dj
		push	esi		; size_t
		lea	eax, [ebx+edi]
		push	eax		; void *
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]	; void *
		call	_memcpy
		add	esp, 0Ch
		jmp	short loc_71C62B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C650:				; CODE XREF: ProducerConsumerCopyToContextBuffer(x,x,x,x)+1Ej
		sub	edx, ecx
		jmp	short loc_71C60C
_ProducerConsumerCopyToContextBuffer@16	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopRequestWrite	proc near		; CODE XREF: PopSaveHiberContext+47Dp
					; PopCompressCallback(x)+10p ...

var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00728AC3 SIZE 00000132 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 3Ch
		push	ebx
		xor	eax, eax
		mov	[esp+40h+var_2C], edx
		mov	ebx, ecx
		mov	[esp+40h+var_20], eax
		push	esi
		push	edi
		mov	[esp+48h+var_14], ebx
		mov	esi, [ebx+0C8h]
		mov	[esp+48h+var_8], eax
		mov	[esp+48h+var_4], eax
		mov	[esp+48h+var_34], esi
		mov	[esp+48h+var_1C], eax
		mov	[esp+48h+var_C], eax
		mov	[esp+48h+var_38], eax
		mov	[esp+48h+var_3C], eax

loc_71C694:				; CODE XREF: PopRequestWrite+171j
					; PopRequestWrite+228j
		mov	ecx, [ebx+0CCh]
		sub	ecx, eax
		jnz	loc_71C76A
		test	byte ptr ds:_PopWatchdogTimerCount, 1Fh
		jz	loc_71CA0C

loc_71C6AF:				; CODE XREF: PopRequestWrite+3BEj
		push	dword ptr [ebx+0FCh]
		mov	ecx, [ebx+70h]
		lea	edx, [esp+4Ch+var_8]
		push	dword ptr [ebx+0F8h]
		inc	ds:_PopWatchdogTimerCount
		lea	esi, [ebx+0F0h]
		call	PopGetIoLocation
		mov	edi, [ebx+110h]
		mov	ecx, edi
		mov	[esi], eax
		xor	eax, eax
		shld	eax, ecx, 0Ch
		mov	[esi+4], edx
		push	eax
		shl	ecx, 0Ch
		push	ecx
		push	dword ptr [ebx+0DCh]
		push	dword ptr [ebx+0D8h]
		call	__aullrem
		mov	ecx, eax
		mov	esi, edx
		mov	eax, edi
		mov	edx, 1000h
		mul	edx
		mov	edi, eax
		mov	eax, edx
		sub	edi, ecx
		mov	[esp+48h+var_24], edi
		sbb	eax, esi
		mov	[esp+48h+var_10], edi
		mov	[esp+48h+var_30], eax
		mov	[esp+48h+var_C], eax
		cmp	eax, [esp+48h+var_4]
		jb	short loc_71C737
		ja	loc_728AC3
		cmp	edi, [esp+48h+var_8]
		jnb	loc_728AC3

loc_71C737:				; CODE XREF: PopRequestWrite+D1j
					; PopRequestWrite+C487j
		push	[ebp+arg_0]
		mov	ecx, [esp+4Ch+var_2C]
		lea	edx, [esp+4Ch+var_10]
		call	ConsumerGetBuffer
		mov	esi, eax
		test	esi, esi
		jnz	loc_71C881
		mov	eax, [esp+48h+var_10]
		or	eax, [esp+48h+var_C]
		jz	loc_728BED

loc_71C75F:				; CODE XREF: PopRequestWrite+163j
		xor	eax, eax

loc_71C761:				; CODE XREF: PopRequestWrite+C59Cj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C76A:				; CODE XREF: PopRequestWrite+48j
		rdtsc
		mov	edi, eax
		mov	[esp+48h+var_38], edi
		sub	ecx, 1
		jnz	short loc_71C7CA
		mov	ecx, [ebx+74h]
		lea	eax, [ebx+0F0h]
		push	0
		push	esi
		push	eax
		push	2
		mov	[esp+58h+var_3C], edx
		call	dword ptr [ecx+54h]
		mov	[esp+58h+var_34], eax
		rdtsc
		sub	eax, edi
		mov	edi, [esp+58h+var_34]
		sbb	edx, [esp+58h+var_4C]
		add	ds:dword_6C28C0, eax
		adc	ds:dword_6C28C4, edx
		test	edi, edi
		js	loc_728B2A
		cmp	edi, 103h
		jz	short loc_71C75F
		mov	dword ptr [ebx+0CCh], 2

loc_71C7C3:				; CODE XREF: PopRequestWrite+3B3j
		xor	eax, eax
		jmp	loc_71C694
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C7CA:				; CODE XREF: PopRequestWrite+121j
		mov	eax, edx
		mov	ecx, edi
		sub	ecx, [ebx+0D0h]
		mov	[esp+48h+var_3C], eax
		sbb	eax, [ebx+0D4h]
		add	ds:dword_6C28B8, ecx
		adc	ds:dword_6C28BC, eax
		mov	eax, [esp+48h+var_2C]
		mov	ecx, eax
		push	dword ptr [ebx+0E8h]
		push	dword ptr [ebx+100h]
		lea	edx, [eax+28h]
		call	_ProducerConsumerBufferComplete@16 ; ProducerConsumerBufferComplete(x,x,x,x)
		rdtsc
		sub	eax, edi
		sbb	edx, [esp+48h+var_3C]
		add	ds:dword_6C28E0, eax
		adc	ds:dword_6C28E4, edx
		mov	eax, [ebx+0E8h]
		add	ds:dword_6C2A88, eax
		mov	eax, [ebx+0ECh]
		adc	ds:dword_6C2A8C, eax
		mov	eax, [ebx+0E0h]
		add	eax, 0FFFh
		shr	eax, 0Ch
		add	ds:dword_6C2A90, eax
		mov	eax, [ebx+0E0h]
		add	[ebx+0F8h], eax
		mov	ecx, [ebx+0E4h]
		adc	[ebx+0FCh], ecx
		add	[ebx+0D8h], eax
		adc	[ebx+0DCh], ecx
		xor	eax, eax
		mov	[ebx+0E0h], eax
		mov	[ebx+0E4h], eax
		mov	[ebx+0CCh], eax
		jmp	loc_71C694
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71C881:				; CODE XREF: PopRequestWrite+F7j
		mov	eax, [esp+48h+var_C]
		mov	ecx, [ebx+0FCh]
		mov	edx, [esp+48h+var_10]
		mov	[ebx+0ECh], eax
		mov	eax, [ebx+0F8h]
		mov	[esp+48h+var_28], ecx
		mov	ecx, eax
		mov	[esp+48h+var_18], eax
		add	ecx, edi
		mov	eax, [esp+48h+var_28]
		adc	eax, [esp+48h+var_30]
		mov	[ebx+100h], esi
		mov	[ebx+0E8h], edx
		cmp	eax, ds:dword_6C24AC
		jb	short loc_71C8D5
		ja	loc_728BD6
		cmp	ecx, ds:dword_6C24A8
		ja	loc_728BD6

loc_71C8D5:				; CODE XREF: PopRequestWrite+26Dj
		push	edx
		push	esi
		push	[esp+50h+var_28]
		xor	eax, eax
		mov	ecx, ebx
		push	[esp+54h+var_18]
		lea	edx, [eax+1]
		call	PopHiberChecksumHiberFileData
		mov	edx, [esp+48h+var_34]
		mov	ecx, esi
		and	[esp+48h+var_18], 0
		and	ecx, 0FFFh
		and	dword ptr [edx], 0
		lea	eax, [ecx+0FFFh]
		mov	[edx+18h], ecx
		add	eax, edi
		mov	[edx+14h], edi
		shr	eax, 0Ch
		mov	[esp+48h+var_28], eax
		mov	[edx+0Ch], esi
		lea	eax, ds:1Ch[eax*4]
		mov	[edx+4], ax
		mov	eax, esi
		and	eax, 0FFFFF000h
		mov	[edx+10h], eax
		xor	eax, eax
		inc	eax
		cmp	[esp+48h+var_28], 0
		mov	[edx+6], ax
		jbe	short loc_71C964
		mov	edi, [esp+48h+var_18]
		mov	ebx, edx

loc_71C940:				; CODE XREF: PopRequestWrite+306j
		push	esi
		call	_MmGetPhysicalAddress@4	; MmGetPhysicalAddress(x)
		shrd	eax, edx, 0Ch
		mov	[ebx+edi*4+1Ch], eax
		mov	eax, 1000h
		inc	edi
		add	esi, eax
		cmp	edi, [esp+48h+var_28]
		jb	short loc_71C940
		mov	ebx, [esp+48h+var_14]
		mov	edi, [esp+48h+var_24]

loc_71C964:				; CODE XREF: PopRequestWrite+2E4j
		cmp	byte ptr [ebx+104h], 0
		mov	eax, [esp+48h+var_30]
		mov	esi, [esp+48h+var_34]
		mov	[ebx+0E0h], edi
		mov	[ebx+0E4h], eax
		jz	loc_71CA20
		rdtsc
		push	0
		push	esi
		mov	[esp+50h+var_38], eax
		lea	ecx, [ebx+0F0h]
		mov	eax, [ebx+74h]
		push	ecx
		push	1
		mov	[esp+58h+var_3C], edx
		call	dword ptr [eax+54h]
		mov	ecx, [esp+58h+var_4C]
		mov	edi, eax
		rdtsc
		sub	eax, [esp+58h+var_48]
		sbb	edx, ecx
		add	ds:dword_6C28C0, eax
		adc	ds:dword_6C28C4, edx
		cmp	edi, 0C00000BBh
		jz	short loc_71CA17
		test	edi, edi
		js	loc_728B2A
		cmp	ds:_PopSimulateHiberBugcheck, 2
		jz	loc_728B2A
		xor	eax, eax
		cmp	edi, 103h
		setnz	al
		inc	eax
		mov	[ebx+0CCh], eax

loc_71C9EA:				; CODE XREF: PopRequestWrite+3CAj
					; PopRequestWrite+3D0j
		cmp	byte ptr [ebx+104h], 0
		jz	loc_728AE0
		mov	edi, [esp+58h+var_48]

loc_71C9FB:				; CODE XREF: PopRequestWrite+C4D1j
		mov	[ebx+0D0h], edi
		mov	[ebx+0D4h], ecx
		jmp	loc_71C7C3
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CA0C:				; CODE XREF: PopRequestWrite+55j
		call	ds:off_6B13A8	; SymCryptFatalIntercept(x)
		jmp	loc_71C6AF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CA17:				; CODE XREF: PopRequestWrite+36Dj
		mov	byte ptr [ebx+104h], 0
		jmp	short loc_71C9EA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CA20:				; CODE XREF: PopRequestWrite+32Bj
		mov	ecx, [esp+48h+var_3C]
		jmp	short loc_71C9EA
PopRequestWrite	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopRestoreHiberContext proc near	; CODE XREF: PopHandleNextState(x,x)+19Ep

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00728BF5 SIZE 000000C9 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	ebx
		xor	eax, eax
		mov	ebx, ecx
		push	esi
		push	edi
		lea	edi, [ebp+var_48]
		mov	[ebp+var_10], ebx
		stosd
		stosd
		stosd
		stosd
		mov	eax, large fs:20h
		mov	eax, [eax+3CCh]
		mov	[ebp+var_38], eax
		cmp	eax, [ebx+0A4h]
		jnb	loc_71CC34
		imul	ecx, eax, 70h
		xor	esi, esi
		add	ecx, [ebx+0A8h]
		mov	[ebp+var_C], ecx
		mov	[ecx+40h], esi
		mov	[ecx+44h], esi
		cmp	eax, [ebx+84h]
		jz	loc_71CE00

loc_71CA7A:				; CODE XREF: PopRestoreHiberContext+400j
		test	eax, eax
		jnz	loc_71CC1C
		mov	edi, [ebx+88h]
		mov	eax, ds:dword_6C2500
		mov	[ebp+var_2C], eax
		rdtsc
		mov	ecx, [edi+48h]
		mov	[ebp+var_24], esi
		mov	[ebp+var_28], esi
		mov	[ebp+var_34], eax
		mov	[ebp+var_38], edx
		cmp	ecx, [edi+208h]
		jnz	loc_728BF5
		mov	eax, [edi+4Ch]
		cmp	eax, [edi+20Ch]
		jnz	loc_728BF5
		mov	eax, [edi+220h]
		mov	ecx, [edi+224h]
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], ecx

loc_71CACE:				; CODE XREF: PopRestoreHiberContext+C1D9j
		mov	edi, [ebp+var_10]
		mov	[ebx+108h], eax
		mov	[ebx+10Ch], ecx
		mov	eax, ds:dword_6C2500
		mov	ebx, [ebx+0B0h]
		mov	edi, [edi+0ACh]
		push	38h		; size_t
		push	esi		; int
		push	eax		; void *
		mov	[ebp+var_30], eax
		call	_memset
		mov	eax, [ebp+var_30]
		add	esp, 0Ch
		mov	ecx, [ebp+var_20]
		mov	[eax+4], ebx
		mov	ebx, [ebp+var_10]
		mov	[eax+8], ecx
		mov	ecx, [ebp+var_1C]
		mov	[eax+0Ch], ecx
		push	2
		mov	[eax+10h], esi
		mov	[eax], edi
		pop	ecx
		mov	byte ptr [ebx+4], 1
		call	_IoNotifyDump@4	; IoNotifyDump(x)
		mov	eax, [ebx+108h]
		or	eax, [ebx+10Ch]
		jz	loc_71CC51
		lea	eax, [ebp+var_48]
		mov	dword ptr [ebx+7Ch], 9
		mov	[ebx+70h], eax
		mov	eax, ds:dword_6C24B0
		push	esi
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], eax
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], esi
		call	ds:off_6B1374	; KeSetDmaIoCoherency(x)
		mov	ecx, [ebx+74h]
		call	_IoInitializeDumpStack@8 ; IoInitializeDumpStack(x,x)
		mov	edi, eax
		test	edi, edi
		js	loc_728C04
		cmp	ds:_PopSimulateHiberBugcheck, 4
		jz	loc_728C04
		rdtsc
		sub	eax, [ebp+var_34]
		mov	ds:dword_6C2A00, eax
		sbb	edx, [ebp+var_38]
		mov	ds:dword_6C2A04, edx
		mov	eax, [ebx+74h]
		mov	[ebx+0CCh], esi
		mov	[ebx+0D8h], esi
		mov	[ebx+0DCh], esi
		cmp	[eax+54h], esi
		jz	short loc_71CBAD
		mov	byte ptr [ebx+104h], 1

loc_71CBAD:				; CODE XREF: PopRestoreHiberContext+17Ej
		mov	ecx, ebx
		call	PopHiberReadChecksums
		mov	eax, [ebx+88h]
		xor	ecx, ecx
		mov	edi, [ebp+var_C]
		mov	dword ptr [ebx+7Ch], 0Ah
		mov	eax, [eax+54h]
		shld	ecx, eax, 0Ch
		shl	eax, 0Ch
		mov	[ebx+0F8h], eax
		mov	[ebx+0FCh], ecx

loc_71CBDC:				; CODE XREF: PopRestoreHiberContext+1E6j
					; PopRestoreHiberContext+1EEj ...
		mov	eax, [ebx+108h]
		mov	ecx, ebx
		or	eax, [ebx+10Ch]
		jz	short loc_71CC39
		mov	edx, [ebp+var_2C]
		push	1
		call	PopRequestRead
		push	offset _PopDecompressCallback@4	; PopDecompressCallback(x)
		push	esi
		push	1
		mov	edx, edi
		mov	ecx, ebx
		call	PopDecompressHiberBlocks
		cmp	eax, 80000022h
		jnz	short loc_71CBDC
		cmp	[ebx+0CCh], esi
		jnz	short loc_71CBDC
		pause
		jmp	short loc_71CBDC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CC1A:				; CODE XREF: PopRestoreHiberContext+1FBj
		pause

loc_71CC1C:				; CODE XREF: PopRestoreHiberContext+56j
		mov	al, [ebx+4]
		test	al, al
		jz	short loc_71CC1A
		push	esi
		push	1
		mov	edx, ecx
		mov	ecx, ebx
		push	esi
		call	PopDecompressHiberBlocks
		lock inc dword ptr [ebx+10h]

loc_71CC34:				; CODE XREF: PopRestoreHiberContext+2Ej
					; PopRestoreHiberContext+3D5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CC39:				; CODE XREF: PopRestoreHiberContext+1C4j
		push	esi
		push	1
		push	1
		mov	edx, edi
		call	PopDecompressHiberBlocks
		mov	eax, [ebx+74h]
		mov	eax, [eax+34h]
		test	eax, eax
		jz	short loc_71CC51
		call	eax

loc_71CC51:				; CODE XREF: PopRestoreHiberContext+109j
					; PopRestoreHiberContext+227j
		push	3
		pop	ecx
		call	_IoNotifyDump@4	; IoNotifyDump(x)
		push	1
		call	ds:off_6B1374	; KeSetDmaIoCoherency(x)
		lea	edx, [ebx+10h]
		lock inc dword ptr [edx]
		mov	eax, [edx]
		mov	ecx, [ebx+0A4h]
		mov	[ebp+var_4], ecx
		cmp	eax, ecx
		jnz	loc_728C2B

loc_71CC7A:				; CODE XREF: PopRestoreHiberContext+C21Bj
		mov	[ebp+var_18], esi
		mov	edi, esi
		mov	[ebp+var_14], esi
		mov	eax, esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_1C], esi
		mov	[ebp+var_30], edi
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], esi
		mov	[ebp+var_10], esi
		mov	[ebp+var_2C], esi
		test	ecx, ecx
		jz	loc_71CD71
		mov	ecx, [ebx+0A8h]
		mov	edx, esi

loc_71CCA9:				; CODE XREF: PopRestoreHiberContext+33Dj
		mov	eax, [edx+ecx+30h]
		add	ds:dword_6C29E0, eax
		mov	eax, [edx+ecx+34h]
		adc	ds:dword_6C29E4, eax
		mov	ecx, [ebx+0A8h]
		mov	eax, [edx+ecx+38h]
		add	ds:dword_6C29F0, eax
		mov	eax, [edx+ecx+3Ch]
		adc	ds:dword_6C29F4, eax
		mov	ecx, [ebx+0A8h]
		mov	eax, [edx+ecx+40h]
		add	ds:dword_6C2A18, eax
		mov	eax, [edx+ecx+44h]
		adc	ds:dword_6C2A1C, eax
		mov	ecx, [ebx+0A8h]
		mov	eax, [edx+ecx+38h]
		add	eax, [edx+ecx+30h]
		mov	esi, [edx+ecx+3Ch]
		adc	esi, [edx+ecx+34h]
		cmp	esi, [ebp+var_28]
		jb	short loc_71CD19
		ja	short loc_71CD13
		cmp	eax, [ebp+var_24]
		jbe	short loc_71CD19

loc_71CD13:				; CODE XREF: PopRestoreHiberContext+2E6j
		mov	[ebp+var_24], eax
		mov	[ebp+var_28], esi

loc_71CD19:				; CODE XREF: PopRestoreHiberContext+2E4j
					; PopRestoreHiberContext+2EBj
		mov	eax, [edx+ecx+48h]
		add	[ebp+var_18], eax
		mov	eax, [edx+ecx+4Ch]
		adc	[ebp+var_14], eax
		mov	eax, [edx+ecx+50h]
		add	[ebp+var_20], eax
		mov	eax, [edx+ecx+54h]
		adc	[ebp+var_1C], eax
		add	edi, [edx+ecx+58h]
		mov	eax, [edx+ecx+5Ch]
		adc	[ebp+var_C], eax
		mov	eax, [edx+ecx+60h]
		add	[ebp+var_8], eax
		mov	eax, [edx+ecx+64h]
		adc	[ebp+var_10], eax
		add	edx, 70h
		mov	eax, [ebp+var_2C]
		mov	esi, [ebx+0A4h]
		inc	eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], esi
		cmp	eax, esi
		jb	loc_71CCA9
		mov	eax, [ebp+var_C]
		xor	esi, esi
		mov	[ebp+var_30], edi

loc_71CD71:				; CODE XREF: PopRestoreHiberContext+275j
		mov	ebx, [ebp+var_30]
		mov	ecx, ebx
		add	ecx, 1
		adc	eax, esi
		push	eax
		push	ecx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	__alldiv
		mov	edi, [ebp+var_8]
		mov	ecx, [ebp+var_10]
		add	edi, 1
		mov	[ebp+var_30], eax
		adc	ecx, esi
		mov	[ebp+var_18], edx
		push	ecx
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	__alldiv
		mov	edi, eax
		mov	eax, edx
		mov	[ebp+var_2C], eax
		cmp	eax, [ebp+var_18]
		jl	short loc_71CDC1
		jg	loc_728C46
		cmp	edi, [ebp+var_30]
		ja	loc_728C46

loc_71CDC1:				; CODE XREF: PopRestoreHiberContext+38Aj
		mov	ds:dword_6C24D4, 1

loc_71CDCB:				; CODE XREF: PopRestoreHiberContext+C288j
					; PopRestoreHiberContext+C293j
		rdtsc
		sub	eax, [ebp+var_34]
		mov	ds:dword_6C2A08, eax
		sbb	edx, [ebp+var_38]
		sub	eax, ds:dword_6C2A00
		mov	ds:dword_6C2A0C, edx
		sbb	edx, ds:dword_6C2A04
		sub	eax, [ebp+var_24]
		mov	ds:dword_6C29D8, eax
		sbb	edx, [ebp+var_28]
		mov	ds:dword_6C29DC, edx
		jmp	loc_71CC34
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CE00:				; CODE XREF: PopRestoreHiberContext+4Ej
		rdtsc
		mov	edi, eax
		mov	ebx, edx
		call	_BgkResumeInitialize@0 ; BgkResumeInitialize()
		mov	ecx, [ebp+var_C]
		rdtsc
		sub	eax, edi
		sbb	edx, ebx
		add	ds:dword_6C2A20, eax
		mov	ebx, [ebp+var_10]
		adc	ds:dword_6C2A24, edx
		mov	eax, [ebp+var_38]
		jmp	loc_71CA7A
PopRestoreHiberContext endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	PopHiberPeekRangeTable(void *,int,int)
_PopHiberPeekRangeTable@12 proc	near	; CODE XREF: ConsumerPeekAndConsumeBuffer+6Cp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_4] ; int
		lea	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0] ; void	*
		and	[ebp+var_4], 0
		push	0		; char
		push	[ebp+arg_8]	; int
		push	ds:dword_6C2500	; int
		push	eax		; int
		call	_PopReadProducerConsumerBuffer@24 ; PopReadProducerConsumerBuffer(x,x,x,x,x,x)
		mov	ecx, [eax]
		movzx	eax, cl
		shr	ecx, 8
		and	ecx, 3FFFFFh
		inc	eax
		lea	eax, [ecx+eax*4]
		leave
		retn	0Ch
_PopHiberPeekRangeTable@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopDecompressHiberBlocks proc near	; CODE XREF: PopRestoreHiberContext+1DCp
					; PopRestoreHiberContext+205p ...

var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= word ptr -0A8h
var_A6		= word ptr -0A6h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_4C		= dword	ptr -4Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 00728CBE SIZE 00000089 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0F8h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		push	edi
		push	5Ch		; size_t
		mov	[ebp+var_E0], eax
		mov	edi, edx
		lea	eax, [ebp+var_AC]
		mov	[ebp+var_C4], edi
		push	ebx		; int
		push	eax		; void *
		mov	[ebp+var_C8], ecx
		mov	[ebp+var_F4], esi
		call	_memset
		mov	eax, ds:dword_6C2500
		add	esp, 0Ch
		mov	[ebp+var_F0], ebx
		mov	[ebp+var_E8], ebx
		mov	[ebp+var_EC], ebx
		mov	[ebp+var_C0], eax
		mov	[ebp+var_E4], ebx

loc_71CED5:				; CODE XREF: PopDecompressHiberBlocks+3AFj
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	eax, ds:dword_6C2A38
		or	eax, ds:dword_6C2A3C
		jz	loc_71D33C

loc_71CEEB:				; CODE XREF: PopDecompressHiberBlocks+4EFj
					; PopDecompressHiberBlocks+4FCj ...
		mov	ecx, large fs:20h
		mov	eax, [ebp+var_C8]
		mov	eax, [eax+84h]
		cmp	eax, [ecx+3CCh]
		jz	loc_71D22E

loc_71CF0A:				; CODE XREF: PopDecompressHiberBlocks+3CFj
					; PopDecompressHiberBlocks+424j ...
		push	edi
		push	ecx
		mov	ecx, [ebp+var_C0]
		lea	edx, [ebp+var_D8]
		push	esi
		mov	[ebp+var_D8], 4
		call	ConsumerPeekAndConsumeBuffer
		mov	[ebp+var_CC], eax
		test	eax, eax
		jz	loc_71D2D5
		push	1		; char
		push	edi		; int
		push	[ebp+var_C0]	; int
		lea	ecx, [ebp+var_F0]
		push	ecx		; int
		push	4
		pop	edx
		mov	ecx, eax	; void *
		call	_PopReadProducerConsumerBuffer@24 ; PopReadProducerConsumerBuffer(x,x,x,x,x,x)
		mov	edx, [ebp+var_C4]
		mov	ecx, eax
		mov	eax, [ebp+var_CC]
		push	1		; char
		push	edx		; int
		movzx	edi, byte ptr [ecx]
		add	eax, 4
		push	[ebp+var_C0]	; int
		mov	[ebp+var_D0], ecx
		lea	ecx, [ebp+var_4C]
		shl	edi, 2
		push	ecx		; int
		mov	edx, edi	; int
		mov	[ebp+var_B8], eax
		mov	ecx, eax	; void *
		call	_PopReadProducerConsumerBuffer@24 ; PopReadProducerConsumerBuffer(x,x,x,x,x,x)
		add	[ebp+var_B8], edi
		mov	ecx, eax
		lea	eax, [ebp+var_90]
		mov	[ebp+var_BC], ecx
		mov	[ebp+var_B4], eax
		mov	edx, ebx
		mov	eax, [ebp+var_D0]
		mov	edi, ebx
		movzx	eax, byte ptr [eax]
		mov	[ebp+var_B0], eax
		test	eax, eax
		jz	short loc_71CFFF
		mov	esi, [ebp+var_B4]
		mov	ebx, eax

loc_71CFC2:				; CODE XREF: PopDecompressHiberBlocks+18Fj
		mov	eax, [ecx+edi*4]
		mov	ecx, eax
		and	eax, 0Fh
		shr	ecx, 4
		inc	eax
		add	eax, ecx
		mov	[ebp+var_B4], eax
		sub	eax, ecx
		add	edx, eax
		mov	eax, [ebp+var_B4]
		jmp	short loc_71CFE8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71CFE2:				; CODE XREF: PopDecompressHiberBlocks+184j
		mov	[esi], ecx
		inc	ecx
		add	esi, 4

loc_71CFE8:				; CODE XREF: PopDecompressHiberBlocks+17Aj
		cmp	ecx, eax
		jb	short loc_71CFE2
		mov	ecx, [ebp+var_BC]
		inc	edi
		cmp	edi, ebx
		jb	short loc_71CFC2
		mov	esi, [ebp+var_F4]
		xor	ebx, ebx

loc_71CFFF:				; CODE XREF: PopDecompressHiberBlocks+152j
		mov	edi, [ebp+var_C8]
		cmp	edx, [edi+0B4h]
		ja	loc_728CF9
		mov	edi, [ebp+var_C4]
		shl	edx, 0Ch
		mov	eax, edx
		mov	[ebp+var_DC], edx
		shr	eax, 0Ch
		mov	ecx, [edi+4]
		push	1
		mov	[ebp+var_AC], ebx
		lea	eax, ds:1Ch[eax*4]
		mov	[ebp+var_9C], ebx
		mov	[ebp+var_A8], ax
		xor	eax, eax
		mov	[ebp+var_A6], ax
		lea	eax, [ebp+var_AC]
		push	eax
		mov	[ebp+var_94], ebx
		mov	[ebp+var_98], edx
		call	_MmMapMemoryDumpMdlEx2@16 ; MmMapMemoryDumpMdlEx2(x,x,x,x)
		mov	eax, [ebp+var_D0]
		push	[ebp+var_B8]	; void *
		mov	ecx, [eax]
		rdtsc
		mov	[ebp+var_BC], edx
		mov	edx, [ebp+var_C0]
		mov	[ebp+var_D4], eax
		shr	ecx, 8
		and	ecx, 3FFFFFh
		lea	eax, [edx+28h]
		mov	[ebp+var_B0], eax
		mov	eax, [ebp+var_DC]
		push	edx		; int
		cmp	ecx, eax
		jz	loc_71D2DF
		mov	edx, ecx	; size_t
		mov	ecx, [edi+0Ch]	; int
		call	_ProducerConsumerCopyFromContextBuffer@16 ; ProducerConsumerCopyFromContextBuffer(x,x,x,x)
		push	[ebp+var_D8]
		rdtsc
		push	[ebp+var_CC]
		mov	ecx, edx
		mov	[ebp+var_B8], eax
		sub	eax, [ebp+var_D4]
		mov	edx, edi
		mov	[ebp+var_B4], ecx
		sbb	ecx, [ebp+var_BC]
		add	[edx+38h], eax
		mov	edx, [ebp+var_B0]
		adc	[edi+3Ch], ecx
		mov	ecx, [ebp+var_C0]
		call	_ProducerConsumerBufferComplete@16 ; ProducerConsumerBufferComplete(x,x,x,x)
		rdtsc
		sub	eax, [ebp+var_B8]
		sbb	edx, [ebp+var_B4]
		add	[edi+40h], eax
		mov	eax, [ebp+var_E0]
		adc	[edi+44h], edx
		test	eax, eax
		jnz	loc_71D28F

loc_71D115:				; CODE XREF: PopDecompressHiberBlocks+447j
		rdtsc
		mov	[ebp+var_D4], eax
		mov	eax, [ebp+var_D0]
		mov	[ebp+var_CC], edx
		mov	edx, [ebp+var_A0]
		mov	ecx, [eax]
		lea	eax, [ebp+var_E4]
		push	ecx
		push	[ebp+var_C8]
		push	[ebp+var_E0]
		push	dword ptr [edi+8]
		mov	edi, ecx
		shr	ecx, 1Eh
		push	eax
		shr	edi, 8
		and	edi, 3FFFFFh
		mov	cx, ds:_PopCompressMethodMap[ecx*2]
		push	edi
		mov	edi, [ebp+var_C4]
		push	dword ptr [edi+0Ch]
		push	[ebp+var_DC]
		call	RtlDecompressBufferProgress
		mov	ecx, eax
		rdtsc
		mov	[ebp+var_B0], eax
		mov	[ebp+var_BC], edx
		test	ecx, ecx
		js	loc_728CD0
		mov	edx, [ebp+var_DC]
		cmp	[ebp+var_E4], edx
		jnz	loc_728CD0
		mov	ecx, [edi+30h]
		sub	ecx, [ebp+var_D4]
		mov	eax, [edi+34h]
		sbb	eax, [ebp+var_CC]
		add	ecx, [ebp+var_B0]
		mov	[edi+30h], ecx
		adc	eax, [ebp+var_BC]
		cmp	[ebp+var_E0], 0
		mov	[edi+34h], eax
		jnz	loc_71D2B2

loc_71D1CE:				; CODE XREF: PopDecompressHiberBlocks+46Aj
		mov	eax, [ebp+var_D0]
		mov	ecx, [eax]
		shr	ecx, 1Eh
		cmp	ecx, 2
		sbb	eax, eax
		and	eax, 0FFFFFFF8h
		add	[eax+edi+60h], edx
		mov	edx, [ebp+var_BC]
		adc	[eax+edi+64h], ebx
		cmp	ecx, 2
		mov	ecx, [ebp+var_B0]
		sbb	eax, eax
		and	eax, 0FFFFFFF8h
		sub	ecx, [ebp+var_B8]
		sbb	edx, [ebp+var_B4]
		add	[eax+edi+50h], ecx
		adc	[eax+edi+54h], edx

loc_71D211:				; CODE XREF: PopDecompressHiberBlocks+4D1j
		cmp	[ebp+arg_4], 0
		jnz	loc_71CED5

loc_71D21B:				; CODE XREF: PopDecompressHiberBlocks+474j
		mov	ecx, [ebp+var_8]
		mov	eax, ebx
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D22E:				; CODE XREF: PopDecompressHiberBlocks+9Ej
		cmp	ds:byte_6C24D1,	0
		jnz	loc_71CF0A
		cmp	ds:dword_6C24B8, 640h
		jbe	loc_728CBE

loc_71D24B:				; CODE XREF: PopDecompressHiberBlocks+BE5Fj
		cmp	ds:byte_6D4AB8,	0
		rdtsc
		mov	[ebp+var_B4], eax
		mov	[ebp+var_B0], edx
		jz	short loc_71D270
		mov	cl, 1
		call	_BgDisplayProgressIndicator@4 ;	BgDisplayProgressIndicator(x)
		mov	ds:byte_6D4C7A,	1

loc_71D270:				; CODE XREF: PopDecompressHiberBlocks+3FAj
		rdtsc
		sub	eax, [ebp+var_B4]
		sbb	edx, [ebp+var_B0]
		add	ds:dword_6C2A20, eax
		adc	ds:dword_6C2A24, edx
		jmp	loc_71CF0A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D28F:				; CODE XREF: PopDecompressHiberBlocks+2A9j
		push	[ebp+var_C8]
		call	eax
		mov	eax, ds:dword_6C2A10
		mov	[ebp+var_E8], eax
		mov	eax, ds:dword_6C2A14
		mov	[ebp+var_EC], eax
		jmp	loc_71D115
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D2B2:				; CODE XREF: PopDecompressHiberBlocks+362j
		sub	ecx, ds:dword_6C2A10
		sbb	eax, ds:dword_6C2A14
		add	ecx, [ebp+var_E8]
		mov	[edi+30h], ecx
		adc	eax, [ebp+var_EC]
		mov	[edi+34h], eax
		jmp	loc_71D1CE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D2D5:				; CODE XREF: PopDecompressHiberBlocks+CAj
		mov	ebx, 80000022h
		jmp	loc_71D21B	; int
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D2DF:				; CODE XREF: PopDecompressHiberBlocks+23Cj
		mov	ecx, [ebp+var_A0] ; int
		mov	edx, eax	; size_t
		call	_ProducerConsumerCopyFromContextBuffer@16 ; ProducerConsumerCopyFromContextBuffer(x,x,x,x)
		push	[ebp+var_D8]
		mov	ecx, [ebp+var_C0]
		push	[ebp+var_CC]
		rdtsc
		sub	eax, [ebp+var_D4]
		sbb	edx, [ebp+var_BC]
		add	[edi+38h], eax
		adc	[edi+3Ch], edx
		rdtsc
		mov	ebx, edx
		mov	edi, eax
		mov	edx, [ebp+var_B0]
		call	_ProducerConsumerBufferComplete@16 ; ProducerConsumerBufferComplete(x,x,x,x)
		rdtsc
		sub	eax, edi
		mov	edi, [ebp+var_C4]
		sbb	edx, ebx
		add	[edi+40h], eax
		adc	[edi+44h], edx
		xor	ebx, ebx
		jmp	loc_71D211
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D33C:				; CODE XREF: PopDecompressHiberBlocks+7Fj
		mov	ecx, large fs:20h
		mov	eax, [ebp+var_C8]
		mov	eax, [eax+84h]
		cmp	eax, [ecx+3CCh]
		jnz	loc_71CEEB
		cmp	ds:byte_6C24D0,	0
		jz	loc_71CEEB
		push	ebx
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		mov	ds:dword_6C2A38, eax
		mov	ds:dword_6C2A3C, edx
		jmp	loc_71CEEB
PopDecompressHiberBlocks endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __fastcall PopReadProducerConsumerBuffer(void *,int,int,int,int,char)
_PopReadProducerConsumerBuffer@24 proc near ; CODE XREF: PopHiberPeekRangeTable(x,x,x)+1Fp
					; PopDecompressHiberBlocks+E5p	...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_C], 0
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+var_4], edx
		jz	short loc_71D3C2

loc_71D393:				; CODE XREF: PopReadProducerConsumerBuffer(x,x,x,x,x,x)+4Bj
		push	esi
		push	edi
		rdtsc
		push	ecx		; void *
		push	ebx		; int
		mov	ebx, [ebp+arg_0]
		mov	edi, edx
		mov	edx, [ebp+var_4] ; size_t
		mov	ecx, ebx	; int
		mov	esi, eax
		call	_ProducerConsumerCopyFromContextBuffer@16 ; ProducerConsumerCopyFromContextBuffer(x,x,x,x)
		mov	ecx, [ebp+arg_8]
		rdtsc
		sub	eax, esi
		sbb	edx, edi
		add	[ecx+38h], eax
		pop	edi
		adc	[ecx+3Ch], edx
		pop	esi

loc_71D3BB:				; CODE XREF: PopReadProducerConsumerBuffer(x,x,x,x,x,x)+4Fj
		mov	eax, ebx
		pop	ebx
		leave
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D3C2:				; CODE XREF: PopReadProducerConsumerBuffer(x,x,x,x,x,x)+11j
		mov	eax, ecx
		sub	eax, [ebx]
		add	eax, edx
		cmp	eax, [ebx+4]
		ja	short loc_71D393
		mov	ebx, ecx
		jmp	short loc_71D3BB
_PopReadProducerConsumerBuffer@24 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __fastcall ProducerConsumerCopyFromContextBuffer(int,size_t,int,void *)
_ProducerConsumerCopyFromContextBuffer@16 proc near
					; CODE XREF: PopDecompressHiberBlocks+247p
					; PopDecompressHiberBlocks+481p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		mov	edi, edx
		mov	[ebp+var_4], ecx
		mov	ecx, [eax+4]
		mov	edx, ebx
		sub	edx, [eax]
		xor	esi, esi
		cmp	edx, ecx
		jnb	short loc_71D431

loc_71D3F3:				; CODE XREF: ProducerConsumerCopyFromContextBuffer(x,x,x,x)+63j
		lea	eax, [edx+edi]
		cmp	eax, ecx
		ja	short loc_71D413

loc_71D3FA:				; CODE XREF: ProducerConsumerCopyFromContextBuffer(x,x,x,x)+49j
		push	edi		; size_t
		push	ebx		; void *
		mov	ebx, [ebp+var_4]
		push	ebx		; void *
		call	_memcpy
		add	esp, 0Ch
		test	esi, esi
		jnz	short loc_71D41D

loc_71D40C:				; CODE XREF: ProducerConsumerCopyFromContextBuffer(x,x,x,x)+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D413:				; CODE XREF: ProducerConsumerCopyFromContextBuffer(x,x,x,x)+26j
		mov	esi, edx
		sub	esi, ecx
		add	esi, edi
		sub	edi, esi
		jmp	short loc_71D3FA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D41D:				; CODE XREF: ProducerConsumerCopyFromContextBuffer(x,x,x,x)+38j
		mov	eax, [ebp+arg_0]
		push	esi		; size_t
		push	dword ptr [eax]	; void *
		lea	eax, [ebx+edi]
		push	eax		; void *
		call	_memcpy
		add	esp, 0Ch
		jmp	short loc_71D40C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D431:				; CODE XREF: ProducerConsumerCopyFromContextBuffer(x,x,x,x)+1Fj
		sub	edx, ecx
		sub	ebx, ecx
		jmp	short loc_71D3F3
_ProducerConsumerCopyFromContextBuffer@16 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

ConsumerPeekAndConsumeBuffer proc near	; CODE XREF: PopDecompressHiberBlocks+BDp

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 00728D47 SIZE 00000014 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		mov	esi, ecx
		xor	eax, eax
		push	edi
		mov	edi, edx
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], edi
		mov	ecx, 1
		lea	ebx, [esi+10h]
		lock cmpxchg [ebx], ecx
		test	eax, eax
		jnz	loc_71D500
		jmp	short loc_71D470
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

loc_71D470:				; CODE XREF: ConsumerPeekAndConsumeBuffer+2Bj
					; ConsumerPeekAndConsumeBuffer+DBj ...
		mov	edx, [esi+20h]
		mov	ebx, [esi+28h]
		sub	edx, ebx
		mov	eax, [esi+8]
		or	eax, [esi+0Ch]
		mov	ecx, [esi+2Ch]
		mov	edi, [edi]
		mov	[ebp+var_10], ecx
		mov	[ebp+var_C], edx
		jz	short loc_71D4E5

loc_71D48B:				; CODE XREF: ConsumerPeekAndConsumeBuffer+B7j
		cmp	edi, edx
		ja	short loc_71D4DB
		test	edi, edi
		jz	short loc_71D4E1
		mov	eax, [esi+4]
		push	0
		push	eax
		push	ecx
		push	ebx
		call	__aullrem
		push	[ebp+arg_8]	; int
		mov	ecx, [esi]
		add	ecx, eax
		push	edi		; int
		push	ecx		; void *
		mov	[ebp+var_8], ecx
		call	_PopHiberPeekRangeTable@12 ; PopHiberPeekRangeTable(x,x,x)
		mov	edi, eax
		cmp	edi, [ebp+var_C]
		ja	short loc_71D4DB
		mov	eax, [ebp+var_4]
		mov	[eax], edi
		test	edi, edi
		jz	short loc_71D4E1
		add	[esi+28h], edi
		mov	eax, [ebp+var_8]
		adc	dword ptr [esi+2Ch], 0

loc_71D4CB:				; CODE XREF: ConsumerPeekAndConsumeBuffer+A3j
		mov	dword ptr [esi+10h], 0
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D4DB:				; CODE XREF: ConsumerPeekAndConsumeBuffer+4Dj
					; ConsumerPeekAndConsumeBuffer+76j
		test	[ebp+arg_0], 1
		jz	short loc_71D523

loc_71D4E1:				; CODE XREF: ConsumerPeekAndConsumeBuffer+51j
					; ConsumerPeekAndConsumeBuffer+7Fj
		xor	eax, eax
		jmp	short loc_71D4CB
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D4E5:				; CODE XREF: ConsumerPeekAndConsumeBuffer+49j
		mov	eax, [esi+18h]
		sub	eax, ebx
		cmp	edi, eax
		jnb	loc_71D5A8

loc_71D4F2:				; CODE XREF: ConsumerPeekAndConsumeBuffer+16Aj
		mov	eax, [ebp+var_4]
		mov	[eax], edi
		jmp	short loc_71D48B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

loc_71D500:				; CODE XREF: ConsumerPeekAndConsumeBuffer+25j
					; ConsumerPeekAndConsumeBuffer+CEj ...
		call	KePollFreezeExecution
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_71D500
		mov	ecx, 1
		lock cmpxchg [ebx], ecx
		test	eax, eax
		jz	loc_71D470
		jmp	short loc_71D500
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D523:				; CODE XREF: ConsumerPeekAndConsumeBuffer+9Fj
		mov	dword ptr [esi+10h], 0
		lea	ebx, [ebx+0]

loc_71D530:				; CODE XREF: ConsumerPeekAndConsumeBuffer+12Aj
		call	KePollFreezeExecution
		mov	eax, large fs:20h
		cmp	dword ptr [eax+3CCh], 0
		jz	loc_728D22

loc_71D548:				; CODE XREF: PopDecompressHiberBlocks+BEC9j
					; PopDecompressHiberBlocks+BEDCj
		mov	ecx, [esi+20h]
		mov	edx, [esi+28h]
		sub	ecx, edx
		mov	eax, [esi+8]
		or	eax, [esi+0Ch]
		jz	loc_728D47

loc_71D55C:				; CODE XREF: ConsumerPeekAndConsumeBuffer+B90Ej
					; ConsumerPeekAndConsumeBuffer+B916j
		cmp	edx, ebx
		jnz	short loc_71D56C
		mov	eax, [esi+2Ch]
		cmp	edi, ecx
		jbe	short loc_71D56C
		cmp	eax, [ebp+var_10]
		jz	short loc_71D530

loc_71D56C:				; CODE XREF: ConsumerPeekAndConsumeBuffer+11Ej
					; ConsumerPeekAndConsumeBuffer+125j
		mov	ecx, 1
		lea	ebx, [esi+10h]
		xor	eax, eax
		lock cmpxchg [ebx], ecx
		mov	edi, [ebp+var_4]
		test	eax, eax
		jz	loc_71D470

loc_71D585:				; CODE XREF: ConsumerPeekAndConsumeBuffer+153j
					; ConsumerPeekAndConsumeBuffer+166j
		call	KePollFreezeExecution
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	eax, [ebx]
		test	eax, eax
		jnz	short loc_71D585
		mov	ecx, 1
		lock cmpxchg [ebx], ecx
		test	eax, eax
		jz	loc_71D470
		jmp	short loc_71D585
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D5A8:				; CODE XREF: ConsumerPeekAndConsumeBuffer+ACj
		mov	edi, eax
		jmp	loc_71D4F2
ConsumerPeekAndConsumeBuffer endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopSaveHiberContext proc near		; CODE XREF: PopSaveHiberContextWrapper(x)+36p
					; DATA XREF: PopMarkComponentsBootPhase+1Fo

var_36A		= byte ptr -36Ah
var_369		= byte ptr -369h
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_35C		= dword	ptr -35Ch
var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_33C		= dword	ptr -33Ch
var_338		= dword	ptr -338h
var_328		= dword	ptr -328h
var_31C		= dword	ptr -31Ch
var_2C8		= dword	ptr -2C8h
var_2BC		= dword	ptr -2BCh
var_268		= dword	ptr -268h
var_25C		= dword	ptr -25Ch
var_208		= dword	ptr -208h
var_1FC		= dword	ptr -1FCh
var_1A8		= dword	ptr -1A8h
var_19C		= dword	ptr -19Ch
var_194		= dword	ptr -194h
var_108		= dword	ptr -108h
var_C8		= dword	ptr -0C8h
var_88		= dword	ptr -88h
var_48		= dword	ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00728D5B SIZE 000004B1 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 36Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+36Ch+var_4], eax
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	eax, eax
		push	edi		; struct _exception *
		lea	edi, [esp+378h+var_338]
		stosd
		push	0A0h		; size_t
		push	0		; int
		stosd
		stosd
		stosd
		lea	eax, [esp+380h+var_1A8]
		push	eax		; void *
		call	_memset
		mov	eax, large fs:20h
		add	esp, 0Ch
		mov	[esp+378h+var_344], 0
		mov	ebx, [eax+3CCh]
		test	ebx, ebx
		jz	loc_71DAC2
		test	byte ptr ds:_HvlpFlags,	2
		jnz	loc_728D5B

loc_71D61C:				; CODE XREF: PopSaveHiberContext+51Cj
					; PopSaveHiberContext+B7DFj ...
		cmp	ebx, [esi+0A4h]
		jnb	loc_728DA5
		test	ebx, ebx
		jz	loc_71D6D1
		mov	al, [esi+4]
		test	al, al
		jnz	short loc_71D643

loc_71D637:				; CODE XREF: PopSaveHiberContext+91j
		call	KePollFreezeExecution
		mov	al, [esi+4]
		test	al, al
		jz	short loc_71D637

loc_71D643:				; CODE XREF: PopSaveHiberContext+85j
		mov	edi, [esi+0A8h]
		imul	eax, ebx, 70h
		push	5Ch		; size_t
		push	0		; int
		mov	[esp+380h+var_368], eax
		add	edi, eax
		lea	eax, [esp+380h+var_328]
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		mov	[esp+378h+var_360], 0
		jmp	short loc_71D670
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

loc_71D670:				; CODE XREF: PopSaveHiberContext+BBj
					; PopSaveHiberContext+11Fj
		mov	eax, [edi+4]
		lea	edx, [esp+378h+var_360]
		push	eax
		push	1
		lea	eax, [esp+380h+var_328]
		mov	ecx, esi
		push	eax
		lea	eax, [esp+384h+var_108]
		push	eax
		call	PopGetNextTable
		mov	ebx, eax
		test	ebx, ebx
		jz	loc_728DAC
		add	[edi+28h], ebx
		lea	eax, [esp+378h+var_360]
		push	0		; int
		adc	dword ptr [edi+2Ch], 0
		mov	edx, edi
		push	ebx		; int
		push	1		; int
		push	[esp+384h+var_31C] ; void *
		mov	ecx, esi
		push	eax		; int
		call	PopAddPagesToCompressedPageSet
		push	0
		push	ebx
		lea	ecx, [esp+380h+var_108]
		mov	edx, eax
		push	ecx
		lea	ecx, [esp+384h+var_360]
		push	ecx
		mov	ecx, edi
		call	_PopCountDataAsProduced@24 ; PopCountDataAsProduced(x,x,x,x,x,x)
		jmp	short loc_71D670
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71D6D1:				; CODE XREF: PopSaveHiberContext+7Aj
		mov	ds:_PopWatchdogTimerCount, 0
		call	_KeDisableInterrupts@0 ; KeDisableInterrupts()
		test	al, al
		jnz	loc_728E4C
		test	byte ptr ds:_PopSimulateHiberBugcheck, 80h
		jnz	loc_728E56
		lea	ecx, [esp+378h+var_344]
		call	_IoDumpStackResumeCapable@4 ; IoDumpStackResumeCapable(x)
		mov	[esp+378h+var_369], al
		test	al, al
		jz	loc_728E5B

loc_71D70A:				; CODE XREF: PopSaveHiberContext+B8B9j
		call	ds:__imp__PshedArePluginsPresent@0 ; PshedArePluginsPresent()
		test	eax, eax
		jnz	loc_728E6E

loc_71D718:				; CODE XREF: PopSaveHiberContext+B8CCj
		call	ds:off_6B1370	; xHalPciMultiStageResumeCapable()
		test	al, al
		jz	loc_728E81

loc_71D726:				; CODE XREF: PopSaveHiberContext+B8DFj
		call	_MiIsSoftwareEnclave@4 ; MiIsSoftwareEnclave(x)
		test	eax, eax
		jnz	loc_728E94

loc_71D733:				; CODE XREF: PopSaveHiberContext+B8F2j
		cmp	ds:_HvlHypervisorConnected, 0
		lea	eax, [esp+378h+var_338]
		mov	ebx, [esi+88h]
		mov	[esp+378h+var_358], ebx
		mov	[esi+70h], eax
		mov	byte ptr [esi+2], 1
		mov	dword ptr [esi+78h], offset _PoWakeState
		jnz	loc_728EA7

loc_71D75C:				; CODE XREF: PopSaveHiberContext+B904j
		inc	dword ptr [ebx]
		xor	edi, edi
		test	dword ptr [esi+28h], 0FFFFFFE0h
		lea	ebx, [esi+28h]
		mov	ecx, [esi+2Ch]
		mov	edx, [esi+24h]
		jbe	short loc_71D787

loc_71D772:				; CODE XREF: PopSaveHiberContext+1D5j
		mov	eax, [edx]
		lea	ecx, [ecx+4]
		or	[ecx-4], eax
		lea	edx, [edx+4]
		mov	eax, [ebx]
		inc	edi
		shr	eax, 5
		cmp	edi, eax
		jb	short loc_71D772

loc_71D787:				; CODE XREF: PopSaveHiberContext+1C0j
		cmp	ds:byte_6C24D1,	0
		lea	eax, [esi+20h]
		jnz	loc_728EB9
		push	0
		push	eax
		push	ebx
		call	RtlCopyBitMap

loc_71D7A0:				; CODE XREF: PopSaveHiberContext+B90Bj
		push	ebx
		call	_RtlSetAllBits@4 ; RtlSetAllBits(x)
		mov	edx, [esi+74h]
		mov	dword ptr [esi+7Ch], 8
		call	IoGetDumpHiberRanges
		cmp	ds:byte_6C24D1,	0
		jnz	short loc_71D7C8
		mov	ecx, 1
		call	_IoNotifyDump@4	; IoNotifyDump(x)

loc_71D7C8:				; CODE XREF: PopSaveHiberContext+20Cj
		mov	ecx, [esi+74h]
		rdtsc
		mov	edi, eax
		mov	ebx, edx
		call	_IoInitializeDumpStack@8 ; IoInitializeDumpStack(x,x)
		mov	ecx, eax
		rdtsc
		sub	eax, edi
		mov	[esp+378h+var_348], ecx
		sbb	edx, ebx
		add	ds:dword_6C28C8, eax
		adc	ds:dword_6C28CC, edx
		test	ecx, ecx
		js	loc_7291C7
		cmp	ds:_PopSimulateHiberBugcheck, 1
		jz	loc_7291C7
		mov	ecx, esi
		call	PopMarkComponentsBootPhase
		lea	eax, [esi+30h]
		mov	ds:_PoHiberInProgress, 1
		mov	edi, [eax]
		cmp	edi, eax
		jz	short loc_71D899
		lea	ebx, [ebx+0]

loc_71D820:				; CODE XREF: PopSaveHiberContext+2E7j
		mov	ecx, [edi+14h]
		lea	eax, [edi]
		mov	ebx, [eax+0Ch]
		mov	edi, [edi]
		mov	[esp+378h+var_368], ecx
		mov	ecx, [eax+10h]
		mov	eax, ecx
		sub	eax, ebx
		mov	[esp+378h+var_364], edi
		add	[esi+40h], eax
		mov	[esp+378h+var_35C], ecx
		adc	dword ptr [esi+44h], 0
		cmp	ebx, ecx
		jnb	short loc_71D892
		mov	edi, ecx
		lea	ebx, [ebx+0]

loc_71D850:				; CODE XREF: PopSaveHiberContext+2DCj
		push	edi
		push	ebx
		lea	edx, [esp+380h+var_1A8]
		mov	ecx, esi
		call	PopCreateDumpMdl
		push	[esp+378h+var_194] ; size_t
		push	[esp+37Ch+var_19C] ; void *
		push	[esp+380h+var_368] ; void *
		call	_memcpy
		mov	eax, [esp+384h+var_194]
		add	esp, 0Ch
		add	[esp+378h+var_368], eax
		shr	eax, 0Ch
		add	ebx, eax
		cmp	ebx, edi
		jb	short loc_71D850
		mov	edi, [esp+378h+var_364]

loc_71D892:				; CODE XREF: PopSaveHiberContext+296j
		lea	eax, [esi+30h]
		cmp	edi, eax
		jnz	short loc_71D820

loc_71D899:				; CODE XREF: PopSaveHiberContext+268j
		mov	ecx, esi
		call	_PopResetRangeEnum@4 ; PopResetRangeEnum(x)
		mov	ecx, [esi+70h]
		mov	eax, ds:dword_6C24B0
		mov	ebx, [esp+378h+var_358]
		mov	[ecx], eax
		mov	[ecx+4], eax
		rdtsc
		mov	dword ptr [ecx+8], 0
		mov	dword ptr [ecx+0Ch], 0
		mov	ecx, esi
		mov	[esp+378h+var_340], edx
		mov	edx, ebx
		mov	[esp+378h+var_33C], eax
		call	PopWriteHeaderPages
		mov	edi, eax
		test	edi, edi
		js	loc_72915B
		mov	eax, [ebx+44h]
		mov	[esp+378h+var_348], eax
		lea	eax, [esi+28h]
		push	eax
		mov	dword ptr [esi+7Ch], 4
		mov	[esi+48h], eax
		call	_RtlNumberOfClearBits@4	; RtlNumberOfClearBits(x)
		mov	ebx, [esi+44h]
		mov	ecx, 1000h
		mov	edi, [esi+0ACh]
		mul	ecx
		mov	ecx, [esi+40h]
		shld	ebx, ecx, 0Ch
		push	38h		; size_t
		shl	ecx, 0Ch
		add	ecx, eax
		mov	eax, ds:dword_6C2500
		push	0		; int
		adc	ebx, edx
		mov	[esp+380h+var_35C], ecx
		mov	[esp+380h+var_368], ebx
		mov	ebx, [esi+0B0h]
		push	eax		; void *
		mov	[esp+384h+var_364], eax
		call	_memset
		mov	eax, [esp+384h+var_364]
		add	esp, 0Ch
		cmp	[esp+378h+var_369], 0
		mov	ecx, [esp+378h+var_35C]
		mov	[eax+8], ecx
		mov	ecx, [esp+378h+var_368]
		mov	dword ptr [eax+10h], 0
		mov	[eax], edi
		mov	[eax+4], ebx
		mov	[eax+0Ch], ecx
		mov	ds:dword_6C2A58, 0
		mov	ds:dword_6C2A5C, 0
		mov	ds:dword_6C2A60, 0
		mov	ds:dword_6C2A64, 0
		mov	dword ptr [esi+0CCh], 0
		mov	dword ptr [esi+0D8h], 0
		mov	dword ptr [esi+0DCh], 0
		jz	short loc_71D9B3
		mov	eax, [esi+74h]
		cmp	dword ptr [eax+54h], 0
		jz	short loc_71D9B3
		mov	byte ptr [esi+104h], 1

loc_71D9B3:				; CODE XREF: PopSaveHiberContext+3F1j
					; PopSaveHiberContext+3FAj
		mov	eax, ds:_PopHiberScratchPages
		push	5Ch		; size_t
		push	0		; int
		lea	ecx, ds:0FFFh[eax*4]
		mov	eax, [esi+0A0h]
		add	eax, 2
		shr	ecx, 0Ch
		add	ecx, eax
		mov	eax, [esp+380h+var_358]
		mov	[eax+50h], ecx
		xor	eax, eax
		shld	eax, ecx, 0Ch
		mov	[esi+0FCh], eax
		lea	eax, [esp+380h+var_268]
		shl	ecx, 0Ch
		mov	[esi+0F8h], ecx
		push	eax		; void *
		mov	byte ptr [esi+4], 1
		call	_memset
		mov	eax, ds:dword_6C2500
		add	esp, 0Ch
		mov	edi, [esi+0A8h]
		xor	ebx, ebx
		mov	[esp+378h+var_350], 0
		mov	[esp+378h+var_364], eax
		mov	[esp+378h+var_368], ebx
		mov	edi, edi

loc_71DA20:				; CODE XREF: PopSaveHiberContext+507j
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	edx, [esp+378h+var_364]
		mov	ecx, esi
		push	1
		call	PopRequestWrite
		mov	[esp+378h+var_369], al
		mov	eax, [esp+378h+var_368]
		test	eax, eax
		jnz	short loc_71DA8D
		mov	ecx, [edi+4]
		lea	eax, [esp+378h+var_268]
		push	ecx
		push	1
		push	eax
		lea	eax, [esp+384h+var_88]
		mov	ecx, esi
		push	eax
		lea	edx, [esp+388h+var_350]
		call	PopGetNextTable
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_71DAB2
		add	[edi+28h], ebx
		lea	eax, [esp+378h+var_350]
		push	offset _PopCompressCallback@4 ;	int
		adc	dword ptr [edi+2Ch], 0
		mov	edx, edi
		push	ebx		; int
		push	1		; int
		push	[esp+384h+var_25C] ; void *
		mov	ecx, esi
		push	eax		; int
		call	PopAddPagesToCompressedPageSet
		mov	[esp+378h+var_368], eax

loc_71DA8D:				; CODE XREF: PopSaveHiberContext+48Cj
		push	1
		push	ebx
		lea	ecx, [esp+380h+var_88]
		mov	edx, eax
		push	ecx
		lea	ecx, [esp+384h+var_350]
		push	ecx
		mov	ecx, edi
		call	_PopCountDataAsProduced@24 ; PopCountDataAsProduced(x,x,x,x,x,x)
		test	al, al
		jz	short loc_71DAB2
		mov	[esp+378h+var_368], 0

loc_71DAB2:				; CODE XREF: PopSaveHiberContext+4B3j
					; PopSaveHiberContext+4F8j
		cmp	[esp+378h+var_369], 0
		jz	loc_71DA20
		jmp	loc_728EC0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DAC2:				; CODE XREF: PopSaveHiberContext+59j
		mov	ecx, 13h
		call	PopCheckpointSystemSleep
		jmp	loc_71D61C
PopSaveHiberContext endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopDecompressCallback(x)
_PopDecompressCallback@4 proc near	; DATA XREF: PopRestoreHiberContext+1D0o

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, ds:dword_6C2500
		mov	ecx, [ebp+arg_0]
		push	1
		call	PopRequestRead
		pop	ecx
		pop	ebp
		retn	4
_PopDecompressCallback@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopRequestRead	proc near		; CODE XREF: PopRestoreHiberContext+1CBp
					; PopDecompressCallback(x)+11p

var_36		= byte ptr -36h
var_35		= byte ptr -35h
var_2A		= byte ptr -2Ah
var_29		= byte ptr -29h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0072920C SIZE 000000D4 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 2Ch
		and	[esp+2Ch+var_8], 0
		and	[esp+2Ch+var_4], 0
		push	ebx
		mov	ebx, ecx
		mov	[esp+30h+var_24], edx
		push	esi
		push	edi
		mov	[esp+38h+var_20], ebx
		mov	eax, [ebx+108h]
		or	eax, [ebx+10Ch]
		mov	esi, [ebx+0C8h]
		mov	[esp+38h+var_28], esi
		jz	loc_71DBFA
		mov	ecx, [ebx+0CCh]
		xor	edx, edx
		inc	edx

loc_71DB35:				; CODE XREF: PopRequestRead+262j
		sub	ecx, 0
		jnz	loc_71DC03
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		push	dword ptr [ebx+0FCh]
		mov	ecx, [ebx+70h]
		lea	edx, [esp+3Ch+var_8]
		push	dword ptr [ebx+0F8h]
		lea	esi, [ebx+0F0h]
		call	PopGetIoLocation
		mov	edi, [ebx+110h]
		xor	ecx, ecx
		mov	[esi+4], edx
		mov	edx, edi
		shld	ecx, edx, 0Ch
		mov	[esi], eax
		push	ecx
		shl	edx, 0Ch
		push	edx
		push	dword ptr [ebx+0DCh]
		push	dword ptr [ebx+0D8h]
		call	__aullrem
		mov	ecx, eax
		mov	esi, edx
		mov	eax, edi
		mov	edx, 1000h
		mul	edx
		mov	edi, eax
		mov	eax, edx
		sub	edi, ecx
		mov	[esp+38h+var_10], edi
		sbb	eax, esi
		mov	[esp+38h+var_C], eax
		cmp	eax, [esp+38h+var_4]
		jb	short loc_71DBBD
		ja	loc_7291F7
		cmp	edi, [esp+38h+var_8]
		jnb	loc_7291F7

loc_71DBBD:				; CODE XREF: PopRequestRead+BDj
					; PopSaveHiberContext+BC57j
		mov	edx, [ebx+10Ch]
		mov	ecx, [ebx+108h]
		cmp	eax, edx
		jb	short loc_71DBDB
		ja	loc_71DEC2
		cmp	edi, ecx
		jnb	loc_71DEC2

loc_71DBDB:				; CODE XREF: PopRequestRead+DDj
		mov	ecx, edi
		mov	[esp+38h+var_14], eax

loc_71DBE1:				; CODE XREF: PopRequestRead+3D8j
		push	[ebp+arg_0]
		mov	edx, edi
		push	ecx
		mov	ecx, [esp+40h+var_24]
		call	ProducerGetBuffer
		mov	esi, eax
		test	esi, esi
		jnz	loc_71DD5B

loc_71DBFA:				; CODE XREF: PopRequestRead+38j
					; PopRequestRead+165j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DC03:				; CODE XREF: PopRequestRead+4Aj
		sub	ecx, 1
		jnz	short loc_71DC65
		add	ds:dword_6C29F8, edx
		push	[esp+38h+var_28]
		adc	ds:dword_6C29FC, ecx
		lea	ecx, [ebx+0F0h]
		mov	esi, [ebx+74h]
		rdtsc
		push	ecx
		push	2
		mov	edi, eax
		mov	[esp+44h+var_C], edx
		call	dword ptr [esi+6Ch]
		mov	esi, eax
		test	esi, esi
		js	loc_729243
		rdtsc
		sub	eax, edi
		sbb	edx, [esp+44h+var_18]
		add	ds:dword_6C2A10, eax
		adc	ds:dword_6C2A14, edx
		cmp	esi, 103h
		jz	short loc_71DBFA

loc_71DC55:				; CODE XREF: PopRequestRead+3A2j
					; PopRequestRead+3AAj
		push	2
		pop	edx
		mov	ecx, edx
		mov	[ebx+0CCh], edx
		jmp	loc_71DD41
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DC65:				; CODE XREF: PopRequestRead+118j
		push	dword ptr [ebx+0E8h]
		xor	dl, dl
		mov	ecx, ebx
		push	dword ptr [ebx+100h]
		push	dword ptr [ebx+0FCh]
		push	dword ptr [ebx+0F8h]
		call	PopHiberChecksumHiberFileData
		rdtsc
		mov	edi, eax
		mov	ebx, edx
		mov	eax, [esp+38h+var_20]
		mov	esi, edi
		mov	ecx, ebx
		sub	esi, [eax+0D0h]
		sbb	ecx, [eax+0D4h]
		add	ds:dword_6C29E8, esi
		adc	ds:dword_6C29EC, ecx
		mov	ecx, [esp+38h+var_24]
		push	dword ptr [eax+0E8h]
		push	dword ptr [eax+100h]
		lea	esi, [ecx+18h]
		mov	edx, esi
		call	_ProducerConsumerBufferComplete@16 ; ProducerConsumerBufferComplete(x,x,x,x)
		rdtsc
		sub	eax, edi
		sbb	edx, ebx
		add	ds:dword_6C2A18, eax
		mov	ebx, [esp+38h+var_20]
		adc	ds:dword_6C2A1C, edx
		mov	eax, [ebx+0E8h]
		sub	[ebx+108h], eax
		mov	eax, [ebx+0ECh]
		mov	ecx, [ebx+108h]
		sbb	[ebx+10Ch], eax
		or	ecx, [ebx+10Ch]
		jz	loc_71DEAE

loc_71DD06:				; CODE XREF: PopRequestRead+3CFj
		mov	eax, [ebx+0E0h]
		add	[ebx+0F8h], eax
		mov	ecx, [ebx+0E4h]
		adc	[ebx+0FCh], ecx
		add	[ebx+0D8h], eax
		adc	[ebx+0DCh], ecx
		and	dword ptr [ebx+0E0h], 0
		and	dword ptr [ebx+0E4h], 0
		and	dword ptr [ebx+0CCh], 0
		xor	ecx, ecx

loc_71DD41:				; CODE XREF: PopRequestRead+172j
		xor	edx, edx
		inc	edx

loc_71DD44:				; CODE XREF: PopRequestRead+3BBj
		mov	eax, [ebx+108h]
		or	eax, [ebx+10Ch]
		jnz	loc_71DB35
		jmp	loc_71DBFA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DD5B:				; CODE XREF: PopRequestRead+106j
		mov	edx, [esp+38h+var_28]
		lea	eax, [edi+0FFFh]
		and	[esp+38h+var_18], 0
		mov	ecx, esi
		and	ecx, 0FFFh
		mov	[ebx+100h], esi
		add	eax, ecx
		and	dword ptr [edx], 0
		shr	eax, 0Ch
		mov	[esp+38h+var_1C], eax
		mov	[edx+18h], ecx
		mov	[edx+14h], edi
		lea	eax, ds:1Ch[eax*4]
		mov	[edx+0Ch], esi
		mov	[edx+4], ax
		mov	eax, esi
		and	eax, 0FFFFF000h
		mov	[edx+10h], eax
		xor	eax, eax
		inc	eax
		cmp	[esp+38h+var_1C], 0
		mov	[edx+6], ax
		jbe	short loc_71DDE0
		mov	edi, [esp+38h+var_1C]
		mov	ebx, edx

loc_71DDB6:				; CODE XREF: PopRequestRead+2E8j
		push	esi
		call	_MmGetPhysicalAddress@4	; MmGetPhysicalAddress(x)
		mov	ecx, [esp+38h+var_18]
		shrd	eax, edx, 0Ch
		mov	[ebx+ecx*4+1Ch], eax
		inc	ecx
		mov	eax, 1000h
		mov	[esp+38h+var_18], ecx
		add	esi, eax
		cmp	ecx, edi
		jb	short loc_71DDB6
		mov	ebx, [esp+38h+var_20]
		mov	edi, [esp+38h+var_10]

loc_71DDE0:				; CODE XREF: PopRequestRead+2C0j
		mov	al, [ebx+104h]
		mov	esi, [esp+38h+var_28]
		mov	ecx, [ebx+74h]
		mov	[esp+38h+var_29], al
		rdtsc
		mov	[ebx+0D0h], eax
		lea	eax, [ebx+0F0h]
		push	esi
		push	eax
		xor	eax, eax
		mov	[ebx+0D4h], edx
		cmp	[esp+40h+var_29], al
		setnz	al
		push	eax
		call	dword ptr [ecx+6Ch]
		mov	ecx, eax
		mov	[esp+44h+var_1C], ecx
		cmp	ecx, 0C00000BBh
		jz	loc_72920C

loc_71DE26:				; CODE XREF: PopRequestRead+B750j
		test	ecx, ecx
		js	loc_72926B
		cmp	ds:_PopSimulateHiberBugcheck, 8
		jz	loc_72926B
		rdtsc
		sub	eax, [ebx+0D0h]
		sbb	edx, [ebx+0D4h]
		add	ds:dword_6C2A10, eax
		mov	eax, [esp+44h+var_18]
		adc	ds:dword_6C2A14, edx
		mov	esi, [ebx+10Ch]
		mov	edx, [ebx+108h]
		cmp	eax, esi
		jb	short loc_71DE6F
		ja	short loc_71DE73
		cmp	edi, edx
		jnb	short loc_71DE73

loc_71DE6F:				; CODE XREF: PopRequestRead+379j
		mov	edx, edi
		mov	esi, eax

loc_71DE73:				; CODE XREF: PopRequestRead+37Bj
					; PopRequestRead+37Fj
		cmp	[esp+44h+var_35], 0
		mov	[ebx+0E8h], edx
		mov	[ebx+0ECh], esi
		mov	[ebx+0E0h], edi
		mov	[ebx+0E4h], eax
		jz	loc_71DC55
		test	ecx, ecx
		jz	loc_71DC55
		xor	edx, edx
		inc	edx
		mov	[ebx+0CCh], edx
		mov	ecx, edx
		jmp	loc_71DD44
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DEAE:				; CODE XREF: PopRequestRead+212j
		mov	ecx, [esp+38h+var_24]
		mov	eax, [ecx+20h]
		mov	[esi], eax
		mov	eax, [ecx+24h]
		mov	[esi+4], eax
		jmp	loc_71DD06
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DEC2:				; CODE XREF: PopRequestRead+DFj
					; PopRequestRead+E7j
		mov	[esp+38h+var_14], edx
		jmp	loc_71DBE1
PopRequestRead	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

ProducerGetBuffer proc near		; CODE XREF: PopCountDataAsProduced(x,x,x,x,x,x)+40p
					; PopRequestRead+FDp

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	ebx, ecx
		mov	[ebp+var_4], edx
		push	edi
		xor	esi, esi
		xor	eax, eax
		inc	esi
		lea	edi, [ebx+10h]
		mov	[ebp+var_8], edi
		lock cmpxchg [edi], esi

loc_71DEEA:				; CODE XREF: ProducerGetBuffer+92j
		test	eax, eax
		jnz	short loc_71DF47

loc_71DEEE:				; CODE XREF: PopRequestRead+B7EDj
		mov	eax, [ebx+30h]
		sub	eax, [ebx+18h]
		mov	ecx, [ebx+4]
		add	eax, ecx
		cmp	[ebp+var_4], eax
		jbe	short loc_71DF17
		test	[ebp+arg_4], 1
		jz	loc_729299
		xor	eax, eax

loc_71DF0A:				; CODE XREF: ProducerGetBuffer+79j
		mov	dword ptr [edi], 0
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DF17:				; CODE XREF: ProducerGetBuffer+30j
		mov	esi, [ebx+1Ch]
		mov	edi, [ebx+18h]
		push	0
		push	ecx
		push	esi
		push	edi
		call	__aullrem
		add	eax, [ebx]
		xor	ecx, ecx
		mov	edx, [ebp+var_4]
		add	edx, edi
		mov	edi, [ebp+var_8]
		mov	[ebx+18h], edx
		adc	ecx, esi
		mov	[ebx+1Ch], ecx
		mov	ecx, [ebp+arg_0]
		sub	[ebx+8], ecx
		sbb	dword ptr [ebx+0Ch], 0
		jmp	short loc_71DF0A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71DF47:				; CODE XREF: ProducerGetBuffer+20j
					; ProducerGetBuffer+89j
		call	KePollFreezeExecution
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_71DF47
		xor	ecx, ecx
		inc	ecx
		lock cmpxchg [edi], ecx
		jmp	short loc_71DEEA
ProducerGetBuffer endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopGetIoLocation proc near		; CODE XREF: PopWriteHiberPages+EDp
					; PopHiberReadChecksums+75p ...

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 007292E0 SIZE 000000C2 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		mov	esi, ecx
		mov	[ebp+var_1C], edx
		mov	ecx, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	eax, [esi+0Ch]
		mov	ebx, [esi+8]
		mov	edx, [esi+4]
		mov	[ebp+var_14], esi
		mov	[ebp+var_8], eax
		cmp	edi, eax
		ja	short loc_71DF97
		jb	loc_7292E0
		cmp	ecx, ebx
		jb	loc_7292E0

loc_71DF97:				; CODE XREF: PopGetIoLocation+27j
		mov	eax, [edx]
		mov	[ebp+arg_4], eax
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		add	eax, ebx
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_4]
		adc	eax, [ebp+var_8]
		cmp	edi, eax
		jb	short loc_71DFC3
		ja	loc_7292E0
		cmp	ecx, [ebp+var_10]
		jnb	loc_7292E0

loc_71DFC3:				; CODE XREF: PopGetIoLocation+52j
					; PopGetIoLocation+B3D3j ...
		mov	eax, [edx+8]
		sub	ecx, ebx
		mov	edx, [edx+0Ch]
		sbb	edi, [ebp+var_8]
		add	eax, ecx
		mov	ebx, [ebp+arg_4]
		mov	esi, [ebp+var_1C]
		adc	edx, edi
		sub	ebx, ecx
		mov	ecx, [ebp+var_4]
		sbb	ecx, edi
		pop	edi
		mov	[esi], ebx
		mov	[esi+4], ecx
		pop	esi
		pop	ebx
		leave
		retn	8
PopGetIoLocation endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopHiberCheckForDebugBreak()
_PopHiberCheckForDebugBreak@0 proc near	; CODE XREF: PopDecompressHiberBlocks:loc_71CED5p
					; ConsumerPeekAndConsumeBuffer+C5p ...
		mov	eax, large fs:20h
		cmp	dword ptr [eax+3CCh], 0
		jnz	short locret_71E00A
		mov	eax, ds:_PopDebugCount
		inc	eax
		mov	ds:_PopDebugCount, eax
		test	al, 3Fh
		jz	short loc_71E00B

locret_71E00A:				; CODE XREF: PopHiberCheckForDebugBreak()+Dj
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E00B:				; CODE XREF: PopHiberCheckForDebugBreak()+1Cj
		call	KdCheckForDebugBreak
		push	0
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		retn
_PopHiberCheckForDebugBreak@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall ProducerConsumerBufferComplete(x, x, x, x)
_ProducerConsumerBufferComplete@16 proc	near
					; CODE XREF: PopCountDataAsProduced(x,x,x,x,x,x)+98p
					; PopRequestWrite+1ABp	...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, edx
		xor	eax, eax
		mov	edx, ecx
		push	esi
		push	edi
		xor	esi, esi
		mov	[ebp+var_4], edx
		lea	edi, [edx+10h]
		inc	esi
		mov	[ebp+var_C], edi
		lock cmpxchg [edi], esi
		test	eax, eax
		jnz	loc_71E0E2

loc_71E043:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+E6j
		mov	esi, [ebp+arg_0]
		sub	esi, [edx]
		mov	edx, [edx+4]
		mov	eax, [ebx+0Ch]
		mov	ecx, [ebx+8]
		push	0
		push	edx
		push	eax
		push	ecx
		mov	[ebp+arg_0], ecx
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], edx
		call	__aullrem
		cmp	eax, esi
		ja	loc_71E117

loc_71E06C:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+100j
		mov	edx, [ebp+var_8]
		sub	esi, eax
		xor	ecx, ecx
		add	esi, [ebp+arg_0]
		adc	ecx, edx
		mov	[ebp+var_4], ecx
		cmp	esi, [ebp+arg_0]
		jnz	short loc_71E0A1
		cmp	ecx, edx
		jnz	short loc_71E0A1

loc_71E084:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+C4j
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		add	eax, [ebp+arg_0]
		mov	[ebx+8], eax
		adc	ecx, edx
		mov	[ebx+0Ch], ecx
		mov	dword ptr [edi], 0
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E0A1:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+64j
					; ProducerConsumerBufferComplete(x,x,x,x)+68j ...
		mov	dword ptr [edi], 0
		mov	edi, [ebp+var_4]

loc_71E0AA:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+9Dj
					; ProducerConsumerBufferComplete(x,x,x,x)+A2j
		call	KePollFreezeExecution
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		cmp	esi, [ebx+8]
		jnz	short loc_71E0AA
		cmp	edi, [ebx+0Ch]
		jnz	short loc_71E0AA
		mov	edi, [ebp+var_C]

loc_71E0C1:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+F9j
		xor	ecx, ecx
		xor	eax, eax
		inc	ecx
		lock cmpxchg [edi], ecx
		test	eax, eax
		jnz	short loc_71E105
		mov	eax, [ebx+8]
		mov	edx, [ebx+0Ch]
		mov	[ebp+arg_0], eax
		cmp	esi, eax
		jnz	short loc_71E0A1
		cmp	[ebp+var_4], edx
		jz	short loc_71E084
		jmp	short loc_71E0A1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E0E2:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+23j
					; ProducerConsumerBufferComplete(x,x,x,x)+D6j ...
		call	KePollFreezeExecution
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_71E0E2
		xor	ecx, ecx
		inc	ecx
		lock cmpxchg [edi], ecx
		test	eax, eax
		jnz	short loc_71E0E2
		mov	edx, [ebp+var_4]
		jmp	loc_71E043
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E105:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+B2j
					; ProducerConsumerBufferComplete(x,x,x,x)+FBj
		call	KePollFreezeExecution
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_71E0C1
		jmp	short loc_71E105
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E117:				; CODE XREF: ProducerConsumerBufferComplete(x,x,x,x)+4Cj
		add	esi, [ebp+var_4]
		jmp	loc_71E06C
_ProducerConsumerBufferComplete@16 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopHiberChecksumHiberFileData proc near	; CODE XREF: PopRequestWrite+292p
					; PopRequestRead+193p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

; FUNCTION CHUNK AT 007293A2 SIZE 00000051 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	dword ptr [ecx+128h], 0
		push	ebx
		mov	bl, dl
		mov	[ebp+var_10], ecx
		rdtsc
		push	esi
		push	edi
		mov	[ebp+var_1], bl
		mov	[ebp+var_18], eax
		mov	[ebp+var_1C], edx
		jz	loc_71E251
		test	bl, bl
		jnz	loc_71E262
		mov	eax, [ecx+118h]
		mov	edx, [ecx+11Ch]

loc_71E15C:				; CODE XREF: PopHiberChecksumHiberFileData+14Cj
		mov	esi, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		shrd	esi, ebx, 9
		mov	[ebp+var_C], edx
		shr	ebx, 9
		mov	[ebp+var_8], eax
		cmp	ebx, edx
		jb	short loc_71E181
		ja	loc_71E251
		cmp	esi, eax
		jnb	loc_71E251

loc_71E181:				; CODE XREF: PopHiberChecksumHiberFileData+51j
		mov	edx, [ebp+arg_C]
		xor	edi, edi
		mov	eax, edx
		and	eax, 1FFh
		mov	[ebp+arg_4], eax
		or	eax, edi
		jnz	loc_71E29A

loc_71E198:				; CODE XREF: PopHiberChecksumHiberFileData+18Ej
		shrd	edx, edi, 9
		shr	edi, 9
		add	edx, esi
		mov	[ebp+var_14], edx
		adc	edi, ebx
		mov	[ebp+arg_4], edi
		cmp	edi, [ebp+var_C]
		jb	short loc_71E1BF
		ja	loc_71E2B3
		mov	eax, [ebp+var_8]
		cmp	edx, eax
		jnb	loc_71E2B6

loc_71E1BF:				; CODE XREF: PopHiberChecksumHiberFileData+8Cj
		mov	eax, [ebp+arg_4]

loc_71E1C2:				; CODE XREF: PopHiberChecksumHiberFileData+1A1j
		xor	edi, edi
		cmp	ebx, eax
		jb	short loc_71E1D0
		ja	short loc_71E235
		cmp	esi, edx
		jnb	short loc_71E235
		mov	edi, edi

loc_71E1D0:				; CODE XREF: PopHiberChecksumHiberFileData+A6j
					; PopHiberChecksumHiberFileData+10Cj ...
		mov	eax, [ecx+128h]
		lea	eax, [eax+esi*2]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_C]
		sub	eax, edi
		cmp	eax, 200h
		jbe	short loc_71E1ED
		mov	eax, 200h

loc_71E1ED:				; CODE XREF: PopHiberChecksumHiberFileData+C6j
		push	eax
		mov	eax, [ebp+arg_8]
		add	eax, edi
		push	eax
		push	0
		call	_tcpxsum@12	; tcpxsum(x,x,x)
		cmp	[ebp+var_1], 0
		mov	edx, eax
		mov	ecx, [ebp+var_C]
		jnz	short loc_71E25A
		movzx	ecx, word ptr [ecx]
		cmp	ecx, edx
		jnz	loc_7293A2
		mov	eax, ecx

loc_71E213:				; CODE XREF: PopHiberChecksumHiberFileData+140j
		mov	ecx, [ebp+var_10]
		add	edi, 200h
		add	esi, 1
		adc	ebx, 0
		mov	[ecx+120h], ax
		cmp	ebx, [ebp+arg_4]
		jb	short loc_71E1D0
		ja	short loc_71E235
		cmp	esi, [ebp+var_14]
		jb	short loc_71E1D0

loc_71E235:				; CODE XREF: PopHiberChecksumHiberFileData+A8j
					; PopHiberChecksumHiberFileData+ACj ...
		cmp	[ebp+var_1], 0
		jnz	short loc_71E271

loc_71E23B:				; CODE XREF: PopHiberChecksumHiberFileData+15Dj
		rdtsc
		jnz	short loc_71E27F
		sub	eax, [ebp+var_18]
		sbb	edx, [ebp+var_1C]
		add	ds:dword_6C2A28, eax
		adc	ds:dword_6C2A2C, edx

loc_71E251:				; CODE XREF: PopHiberChecksumHiberFileData+22j
					; PopHiberChecksumHiberFileData+53j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E25A:				; CODE XREF: PopHiberChecksumHiberFileData+E4j
		movzx	eax, dx
		mov	[ecx], ax
		jmp	short loc_71E213
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E262:				; CODE XREF: PopHiberChecksumHiberFileData+2Aj
		mov	eax, [ecx+12Ch]
		shr	eax, 1
		xor	edx, edx
		jmp	loc_71E15C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E271:				; CODE XREF: PopHiberChecksumHiberFileData+119j
		mov	[ecx+118h], esi
		mov	[ecx+11Ch], ebx
		jmp	short loc_71E23B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E27F:				; CODE XREF: PopHiberChecksumHiberFileData+11Dj
		sub	eax, [ebp+var_18]
		pop	edi
		sbb	edx, [ebp+var_1C]
		add	ds:dword_6C28E8, eax
		pop	esi
		adc	ds:dword_6C28EC, edx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E29A:				; CODE XREF: PopHiberChecksumHiberFileData+72j
		mov	ecx, 200h
		mov	eax, edi
		sub	ecx, [ebp+arg_4]
		sbb	eax, 0
		add	edx, ecx
		mov	ecx, [ebp+var_10]
		adc	edi, eax
		jmp	loc_71E198
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E2B3:				; CODE XREF: PopHiberChecksumHiberFileData+8Ej
		mov	eax, [ebp+var_8]

loc_71E2B6:				; CODE XREF: PopHiberChecksumHiberFileData+99j
		mov	edx, eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_14], edx
		mov	[ebp+arg_4], eax
		jmp	loc_71E1C2
PopHiberChecksumHiberFileData endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopCompressCallback(x)
_PopCompressCallback@4 proc near	; DATA XREF: PopSaveHiberContext+4BCo
					; PopSaveHiberContext+BAD7o

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	edx, ds:dword_6C2500
		mov	ecx, [ebp+arg_0]
		push	1
		call	PopRequestWrite
		pop	ebp
		retn	4
_PopCompressCallback@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

ConsumerGetBuffer proc near		; CODE XREF: PopRequestWrite+EEp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  8

; FUNCTION CHUNK AT 007293F3 SIZE 0000007F BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, edx
		xor	eax, eax
		mov	edx, ecx
		mov	[ebp+var_8], ebx
		push	esi
		push	edi
		xor	esi, esi
		mov	[ebp+var_4], edx
		lea	edi, [edx+10h]
		inc	esi
		mov	[ebp+var_C], edi
		lock cmpxchg [edi], esi
		test	eax, eax
		jnz	loc_7293D0

loc_71E30C:				; CODE XREF: PopHiberChecksumHiberFileData+B2CEj
					; ConsumerGetBuffer+B16Cj
		mov	esi, [edx+20h]
		mov	ecx, [edx+28h]
		sub	esi, ecx
		mov	eax, [edx+8]
		or	eax, [edx+0Ch]
		mov	ebx, [ebx]
		jz	loc_7293F3

loc_71E322:				; CODE XREF: ConsumerGetBuffer+B123j
		cmp	ebx, esi
		jbe	short loc_71E33F
		test	[ebp+arg_0], 1
		jz	loc_729408

loc_71E330:				; CODE XREF: ConsumerGetBuffer+61j
		xor	eax, eax

loc_71E332:				; CODE XREF: ConsumerGetBuffer+88j
		mov	dword ptr [edi], 0
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E33F:				; CODE XREF: ConsumerGetBuffer+44j
		test	ebx, ebx
		jz	short loc_71E330
		mov	esi, [edx+2Ch]
		mov	edi, ecx
		push	0
		push	dword ptr [edx+4]
		push	esi
		push	edi
		call	__aullrem
		mov	edx, [ebp+var_4]
		xor	ecx, ecx
		add	eax, [edx]
		add	ebx, edi
		mov	edi, [ebp+var_C]
		adc	ecx, esi
		mov	[edx+28h], ebx
		mov	[edx+2Ch], ecx
		jmp	short loc_71E332
ConsumerGetBuffer endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


PopCheckpointSystemSleep proc near	; CODE XREF: PopPrepareSleep(x,x)+Dp
					; PopPrepareSleep(x,x)+2Bj ...

; FUNCTION CHUNK AT 00729472 SIZE 0000006C BYTES

		cmp	ds:_PopBootStatCheckpointAvailable, 0
		push	ebx
		push	esi
		rdtsc
		mov	esi, ecx
		mov	ebx, edx
		push	edi
		mov	edi, eax
		mov	ds:_PopSleepCheckpoint,	esi
		jz	short loc_71E389
		call	_PopRecordSleepCheckpoint@4 ; PopRecordSleepCheckpoint(x)

loc_71E389:				; CODE XREF: PopCheckpointSystemSleep+18j
		xor	edx, edx
		cmp	ds:_PopCheckpointSystemSleepEnabled, edx
		jnz	loc_729472

loc_71E397:				; CODE XREF: PopCheckpointSystemSleep+B116j
					; PopCheckpointSystemSleep+B16Fj
		rdtsc
		sub	eax, edi
		pop	edi
		sbb	edx, ebx
		add	ds:dword_6C28B0, eax
		pop	esi
		adc	ds:dword_6C28B4, edx
		pop	ebx
		retn
PopCheckpointSystemSleep endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PoBroadcastSystemState proc near	; CODE XREF: PopSetDevicesSystemState+6Ap
					; PnprQuiesceDevices(x)+E6p ...

var_5C		= dword	ptr -5Ch
var_42		= byte ptr -42h
var_41		= byte ptr -41h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 007294DE SIZE 0000022A BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 44h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+44h+var_4], eax
		push	ebx
		push	esi
		mov	esi, ds:dword_6C231C
		xor	ebx, ebx
		push	edi
		mov	edi, ecx
		mov	dl, [edi+19h]
		mov	al, [edi+1Ah]
		mov	[esi], al
		mov	eax, [edi+4]
		mov	[esi+4], eax
		mov	[esi+0F8h], ebx
		mov	[esi+0FCh], ebx
		mov	[esi+101h], bx
		mov	[esi+103h], bl
		mov	[esi+100h], dl
		mov	ds:dword_6C2314, ebx
		mov	ecx, [edi]
		and	ecx, 0Fh
		mov	[esp+50h+var_41], dl
		shl	ecx, 10h
		mov	ds:dword_6C2314, ecx
		test	dl, dl
		jnz	loc_71E74A
		mov	eax, [edi+8]
		and	eax, 0Fh
		shl	eax, 8
		or	eax, ecx
		mov	ds:dword_6C2314, eax
		mov	ecx, [edi+4]
		and	ecx, 0Fh
		shl	ecx, 0Ch
		or	ecx, eax
		mov	ds:dword_6C2314, ecx
		cmp	dword ptr [edi+10h], 5
		jz	loc_7294DE

loc_71E449:				; CODE XREF: PoBroadcastSystemState+3A8j
		test	ds:dword_70EFD0, 8000h
		mov	eax, [edi+10h]
		mov	ds:dword_6C2318, eax
		mov	ds:_PopCurrentBroadcast, 1
		jnz	loc_7294F5

loc_71E468:				; CODE XREF: PoBroadcastSystemState+B19Bj
		cmp	byte ptr [edi+1Ah], 2
		mov	eax, 4000000h
		jnz	short loc_71E47F
		test	[edi+14h], eax
		jnz	short loc_71E47F
		mov	byte ptr [esi+102h], 1

loc_71E47F:				; CODE XREF: PoBroadcastSystemState+C3j
					; PoBroadcastSystemState+C8j
		cmp	[edi+18h], bl
		jnz	loc_72954E

loc_71E488:				; CODE XREF: PoBroadcastSystemState+B1A4j
					; PoBroadcastSystemState+B1B1j
		mov	ebx, [edi+14h]
		test	ebx, 8000000h
		jnz	loc_729564

loc_71E497:				; CODE XREF: PoBroadcastSystemState+B1C3j
		and	ebx, eax
		mov	[esp+50h+var_3C], ebx
		jnz	loc_729576

loc_71E4A3:				; CODE XREF: PoBroadcastSystemState+B1D2j
		test	dl, dl
		jnz	loc_71E5BB
		cmp	byte ptr [edi+1Ah], 2
		jnz	short loc_71E4B8
		mov	cl, 1
		call	PopFxNotifySxTransitionState

loc_71E4B8:				; CODE XREF: PoBroadcastSystemState+101j
		cmp	dword ptr [esi+0F8h], 0
		jl	loc_71E5A7
		mov	ecx, esi
		call	_PopSetupSleepNotifies@4 ; PopSetupSleepNotifies(x)
		mov	edx, ds:dword_6C2314
		mov	eax, edx
		shr	eax, 0Ch
		shr	edx, 8
		and	eax, 0Fh
		and	edx, 0Fh
		cmp	byte ptr [edi+1Ah], 3
		push	eax
		setz	cl
		call	_PopDiagTraceDevicesSuspend@12 ; PopDiagTraceDevicesSuspend(x,x,x)
		xor	ecx, ecx
		cmp	byte ptr [edi+1Ah], 3
		setz	cl
		dec	ecx
		and	ecx, 3
		add	ecx, 0Bh
		call	PopCheckpointSystemSleep
		mov	eax, [edi+10h]
		push	4
		pop	ebx
		cmp	eax, ebx
		jz	loc_729585

loc_71E510:				; CODE XREF: PoBroadcastSystemState+B1E7j
		and	[esp+50h+var_40], 0
		cmp	eax, 2
		jnz	loc_7295A4

loc_71E51E:				; CODE XREF: PoBroadcastSystemState+B1FFj
		cmp	byte ptr [esi],	2
		jz	loc_71E75B

loc_71E527:				; CODE XREF: PoBroadcastSystemState+1D2j
					; PoBroadcastSystemState+3B5j ...
		cmp	ebx, 1
		jz	loc_71E60D

loc_71E530:				; CODE XREF: PoBroadcastSystemState+263j
					; PoBroadcastSystemState+26Ej ...
		movzx	eax, byte ptr [esi]
		xor	edx, edx
		push	1
		push	eax
		mov	ecx, ebx
		call	_PopDiagTraceDevicesLevel@16 ; PopDiagTraceDevicesLevel(x,x,x,x)
		imul	eax, ebx, 28h
		lea	edx, [esi+24h]
		add	edx, eax
		cmp	dword ptr [edx], 0
		jbe	short loc_71E55F
		cmp	dword ptr [edi+14h], 0
		jge	short loc_71E558
		mov	eax, [esi+20h]
		and	dword ptr [eax], 0

loc_71E558:				; CODE XREF: PoBroadcastSystemState+1A2j
		mov	ecx, esi
		call	PopSleepDeviceList

loc_71E55F:				; CODE XREF: PoBroadcastSystemState+19Cj
		movzx	eax, byte ptr [esi]
		xor	edx, edx
		push	0
		push	eax
		mov	ecx, ebx
		call	_PopDiagTraceDevicesLevel@16 ; PopDiagTraceDevicesLevel(x,x,x,x)
		cmp	dword ptr [esi+0F8h], 0
		jl	loc_7295D8
		dec	ebx
		cmp	ebx, [esp+50h+var_40]
		jge	short loc_71E527
		mov	ebx, [esp+50h+var_3C]

loc_71E586:				; CODE XREF: PoBroadcastSystemState+B275j
					; PoBroadcastSystemState+B286j
		cmp	byte ptr [esi],	2
		jnz	short loc_71E593
		test	ebx, ebx
		jnz	loc_729639

loc_71E593:				; CODE XREF: PoBroadcastSystemState+1DBj
					; PoBroadcastSystemState+B290j
		mov	ecx, offset _POP_ETW_EVENT_DEVICESSUSPEND_END
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		cmp	byte ptr [edi+1Ah], 3
		jz	loc_71E768

loc_71E5A7:				; CODE XREF: PoBroadcastSystemState+111j
					; PoBroadcastSystemState+3C2j
		test	ds:_PopSimulate, 20000h
		jnz	loc_729643

loc_71E5B7:				; CODE XREF: PoBroadcastSystemState+B299j
		mov	dl, [esp+50h+var_41]

loc_71E5BB:				; CODE XREF: PoBroadcastSystemState+F7j
					; PoBroadcastSystemState+B2BAj
		mov	[esi+100h], dl
		test	dl, dl
		jnz	loc_71E662

loc_71E5C9:				; CODE XREF: PoBroadcastSystemState+397j
		test	ds:dword_70EFD0, 8000h
		jnz	loc_7296C4

loc_71E5D9:				; CODE XREF: PoBroadcastSystemState+B355j
		cmp	[esp+50h+var_41], 0
		jnz	loc_71E84D

loc_71E5E4:				; CODE XREF: PoBroadcastSystemState+4A3j
					; PoBroadcastSystemState+4B0j
		and	ds:dword_6C2314, 0FF7FFFFFh
		mov	ecx, [esp+50h+var_4]
		pop	edi
		mov	ds:_PopCurrentBroadcast, 0
		mov	eax, [esi+0F8h]
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E60D:				; CODE XREF: PoBroadcastSystemState+17Cj
		cmp	byte ptr [edi+1Ah], 2
		jnz	loc_71E530
		cmp	[esp+50h+var_3C], 0
		jnz	loc_71E530
		cmp	ds:dword_6C26E8, 5
		jnz	short loc_71E630
		call	_WmiAcquireSmbiosLockExclusive@0 ; WmiAcquireSmbiosLockExclusive()

loc_71E630:				; CODE XREF: PoBroadcastSystemState+27Bj
		xor	cl, cl
		call	EmPowerPagingEnabled
		call	PopVerifierFlushMemoryBeforeSleep
		xor	eax, eax
		mov	ecx, offset _PopPagingEnabled
		xchg	eax, [ecx]
		cmp	byte ptr [edi+18h], 0
		jnz	loc_7295B2
		mov	cl, 1
		call	_ExAcquireTimeRefreshLock@4 ; ExAcquireTimeRefreshLock(x)
		mov	byte ptr [esi+104h], 1
		jmp	loc_71E530
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E662:				; CODE XREF: PoBroadcastSystemState+215j
		mov	byte ptr [esi+102h], 1
		mov	byte ptr [esi],	2
		mov	dword ptr [esi+4], 1
		cmp	byte ptr [edi+1Ah], 2
		jnz	short loc_71E69B
		mov	ecx, (offset loc_4252B4+4)
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		push	0
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		mov	ds:dword_6C2878, eax
		mov	ds:dword_6C287C, edx
		cmp	byte ptr [esi],	2
		jnz	short loc_71E6A3

loc_71E69B:				; CODE XREF: PoBroadcastSystemState+2C9j
		test	ebx, ebx
		jnz	loc_72966D

loc_71E6A3:				; CODE XREF: PoBroadcastSystemState+2EBj
					; PoBroadcastSystemState+B2C7j
		xor	ebx, ebx

loc_71E6A5:				; CODE XREF: PoBroadcastSystemState+34Cj
		cmp	ds:_PoResumeFromHibernate, 0
		jz	short loc_71E6B6
		test	ebx, ebx
		jz	loc_71E775

loc_71E6B6:				; CODE XREF: PoBroadcastSystemState+2FEj
					; PoBroadcastSystemState+3EAj ...
		movzx	eax, byte ptr [esi]
		xor	edx, edx
		push	1
		push	eax
		inc	edx
		mov	ecx, ebx
		call	_PopDiagTraceDevicesLevel@16 ; PopDiagTraceDevicesLevel(x,x,x,x)
		imul	eax, ebx, 28h
		lea	edx, [esi+24h]
		add	edx, eax
		mov	eax, [eax+esi+28h]
		cmp	eax, [edx]
		jnb	short loc_71E6DD
		mov	ecx, esi
		call	PopWakeDeviceList

loc_71E6DD:				; CODE XREF: PoBroadcastSystemState+326j
		movzx	eax, byte ptr [esi]
		xor	edx, edx
		push	0
		push	eax
		inc	edx
		mov	ecx, ebx
		call	_PopDiagTraceDevicesLevel@16 ; PopDiagTraceDevicesLevel(x,x,x,x)
		cmp	ebx, 1
		jz	loc_71E7B6

loc_71E6F6:				; CODE XREF: PoBroadcastSystemState+40Cj
					; PoBroadcastSystemState+417j ...
		inc	ebx
		cmp	ebx, 4
		jle	short loc_71E6A5
		cmp	byte ptr [edi+1Ah], 2
		jnz	short loc_71E73A
		call	_PopFxIdleDevicesFromSx@4 ; PopFxIdleDevicesFromSx(x)
		xor	ebx, ebx
		push	ebx
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		mov	ds:dword_6C2880, eax
		mov	ds:dword_6C2884, edx
		call	_PopDiagTraceDevicesWakeEnd@0 ;	PopDiagTraceDevicesWakeEnd()
		push	24h
		pop	ecx
		call	PopCheckpointSystemSleep
		call	PopHandleWakeSources
		mov	eax, ds:_PopDebugFlags
		test	al, 8
		jnz	loc_72969B

loc_71E73A:				; CODE XREF: PoBroadcastSystemState+352j
		mov	al, [edi+1Ah]
		mov	[esi], al
		mov	eax, [edi+4]
		mov	[esi+4], eax
		jmp	loc_71E5C9
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E74A:				; CODE XREF: PoBroadcastSystemState+6Aj
		or	ecx, 1100h

loc_71E750:				; CODE XREF: PoBroadcastSystemState+B142j
		mov	ds:dword_6C2314, ecx
		jmp	loc_71E449
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E75B:				; CODE XREF: PoBroadcastSystemState+173j
		xor	ecx, ecx
		inc	ecx
		call	_PopFxActivateDevicesForSx@4 ; PopFxActivateDevicesForSx(x)
		jmp	loc_71E527
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E768:				; CODE XREF: PoBroadcastSystemState+1F3j
		push	0Ch
		pop	ecx
		call	PopCheckpointSystemSleep
		jmp	loc_71E5A7
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E775:				; CODE XREF: PoBroadcastSystemState+302j
		cmp	ds:byte_6C24D0,	0
		jz	short loc_71E791
		push	0
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		mov	ds:dword_6C2A40, eax
		mov	ds:dword_6C2A44, edx

loc_71E791:				; CODE XREF: PoBroadcastSystemState+3CEj
		cmp	ds:byte_6D4AB8,	0
		jz	loc_71E6B6
		call	_BgDisplayFade@0 ; BgDisplayFade()
		mov	ds:byte_6D4C7A,	0
		mov	ds:byte_6D4C79,	0
		jmp	loc_71E6B6
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E7B6:				; CODE XREF: PoBroadcastSystemState+342j
		cmp	byte ptr [edi+1Ah], 2
		jnz	loc_71E6F6
		cmp	[esp+54h+var_40], 0
		jnz	loc_71E6F6
		cmp	byte ptr [esi+104h], 0
		jz	short loc_71E7E0
		mov	byte ptr [esi+104h], 0
		call	_ExReleaseTimeRefreshLock@0 ; ExReleaseTimeRefreshLock()

loc_71E7E0:				; CODE XREF: PoBroadcastSystemState+424j
		cmp	ds:_PoResumeFromHibernate, 0
		jz	short loc_71E81C
		call	_PopBootLoaderSiDataProcess@0 ;	PopBootLoaderSiDataProcess()
		mov	eax, ds:dword_6C26F8
		mov	eax, [eax+88h]
		push	dword ptr [eax+32Ch]
		mov	dl, [eax+335h]
		push	dword ptr [eax+328h]
		mov	cl, [eax+334h]
		push	dword ptr [eax+330h]
		call	_PopUpdateSmbiosData@20	; PopUpdateSmbiosData(x,x,x,x,x)

loc_71E81C:				; CODE XREF: PoBroadcastSystemState+439j
		cmp	ds:dword_6C26E8, 5
		jnz	short loc_71E82A
		call	_WmiReleaseSmbiosLockExclusive@0 ; WmiReleaseSmbiosLockExclusive()

loc_71E82A:				; CODE XREF: PoBroadcastSystemState+475j
		mov	cl, 1
		call	EmPowerPagingEnabled
		xor	eax, eax
		mov	ecx, offset _PopPagingEnabled
		inc	eax
		xchg	eax, [ecx]
		mov	eax, ds:_PopDebugFlags
		test	al, 4
		jz	loc_71E6F6
		jmp	loc_72967A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E84D:				; CODE XREF: PoBroadcastSystemState+230j
		cmp	byte ptr [edi+1Ah], 2
		jnz	loc_71E5E4
		xor	cl, cl
		call	PopFxNotifySxTransitionState
		jmp	loc_71E5E4
PoBroadcastSystemState endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopDiagTraceDevicesLevel(x,	x, x, x)
_PopDiagTraceDevicesLevel@16 proc near	; CODE XREF: PoBroadcastSystemState+18Cp
					; PoBroadcastSystemState+1BBp ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	[ebp+var_28], ecx
		push	esi
		test	edx, edx
		jnz	short loc_71E8FA
		cmp	[ebp+arg_4], dl
		jnz	short loc_71E8F3
		mov	esi, offset _POP_ETW_EVENT_DEVICESSUSPENDLEVEL_END

loc_71E888:				; CODE XREF: PopDiagTraceDevicesLevel(x,x,x,x)+94j
					; PopDiagTraceDevicesLevel(x,x,x,x)+9Fj ...
		cmp	ds:_PopDiagHandleRegistered, 0
		jz	short loc_71E8E4
		push	ebx
		mov	ebx, ds:_PopDiagHandle
		push	edi
		mov	edi, ds:dword_6C1D74
		push	esi
		push	edi
		push	ebx
		call	EtwEventEnabled
		test	al, al
		jz	short loc_71E8E2
		lea	eax, [ebp+var_28]
		mov	[ebp+var_1C], 4
		mov	[ebp+var_24], eax
		xor	ecx, ecx
		lea	eax, [ebp+arg_0]
		mov	[ebp+var_20], ecx
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_24]
		push	eax
		push	2
		push	ecx
		push	esi
		push	edi
		push	ebx
		mov	[ebp+var_18], ecx
		mov	[ebp+var_10], ecx
		mov	[ebp+var_C], 1
		mov	[ebp+var_8], ecx
		call	_EtwWrite@24	; EtwWrite(x,x,x,x,x,x)

loc_71E8E2:				; CODE XREF: PopDiagTraceDevicesLevel(x,x,x,x)+45j
		pop	edi
		pop	ebx

loc_71E8E4:				; CODE XREF: PopDiagTraceDevicesLevel(x,x,x,x)+2Bj
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		pop	esi
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E8F3:				; CODE XREF: PopDiagTraceDevicesLevel(x,x,x,x)+1Dj
		mov	esi, offset _POP_ETW_EVENT_DEVICESSUSPENDLEVEL
		jmp	short loc_71E888
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71E8FA:				; CODE XREF: PopDiagTraceDevicesLevel(x,x,x,x)+18j
		cmp	[ebp+arg_4], 0
		mov	esi, offset _POP_ETW_EVENT_DEVICESWAKELEVEL
		jnz	short loc_71E888
		mov	esi, offset _POP_ETW_EVENT_DEVICESWAKELEVEL_END
		jmp	loc_71E888
_PopDiagTraceDevicesLevel@16 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopNotifyDevice	proc near		; CODE XREF: PopWakeDeviceList+112p
					; PopSleepDeviceList+153p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729708 SIZE 00000039 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, edx
		cmp	byte ptr [esi+100h], 0
		mov	eax, [esi+20h]
		mov	[ebp+var_C], eax
		jnz	short loc_71E941
		mov	eax, [eax]
		cmp	eax, [edi+20h]
		jz	loc_729708

loc_71E941:				; CODE XREF: PopNotifyDevice+24j
		mov	al, 1

loc_71E943:				; CODE XREF: PopNotifyDevice+ADFAj
		mov	ecx, ds:dword_6C2318
		mov	edx, [esi+4]
		push	eax
		call	PopMapInternalActionToIrpAction
		mov	[ebp+var_10], eax
		mov	ebx, edx
		cmp	eax, 7
		jz	loc_72970F

loc_71E960:				; CODE XREF: PopNotifyDevice+AE07j
					; PopNotifyDevice+AE10j ...
		mov	ecx, [edi+18h]
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	1
		push	ebx
		push	eax
		movzx	eax, byte ptr [esi]
		push	eax
		call	PopAllocateIrp
		mov	eax, [ebp+var_4]
		mov	edx, [ebp+var_8]
		mov	[eax+84h], edi
		mov	byte ptr [eax+88h], 0
		mov	ecx, [edx+60h]
		mov	eax, [ebp+var_10]
		and	dword ptr [ecx-1Ch], 0
		mov	[ecx-18h], ebx
		mov	[ecx-14h], eax
		mov	eax, ds:dword_6C2314
		mov	[ecx-20h], eax
		mov	eax, [edx+60h]
		mov	ecx, [ebp+var_4]
		mov	dword ptr [eax-8], offset PopSystemIrpCompletion
		mov	[eax-4], ecx
		mov	byte ptr [eax-21h], 0E0h
		test	ds:dword_70EFD0, 8000h
		jnz	loc_729731

loc_71E9CC:				; CODE XREF: PopNotifyDevice+AE2Cj
		mov	al, [esi]
		cmp	al, 2
		jnz	short loc_71EA08

loc_71E9D2:				; CODE XREF: PopNotifyDevice+FAj
		cmp	ebx, 1
		jle	short loc_71E9FB
		mov	ecx, [edi+18h]
		mov	edx, 72496F50h
		call	IoGetDeviceAttachmentBaseRefWithTag
		cmp	byte ptr [esi],	2
		mov	ecx, eax
		setz	dl
		call	_PoFxActivateDeviceForSystemTransition@8 ; PoFxActivateDeviceForSystemTransition(x,x)
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax+88h], 1

loc_71E9FB:				; CODE XREF: PopNotifyDevice+C5j
					; PopNotifyDevice+FCj
		mov	ecx, [ebp+var_8]
		call	PopQueueQuerySetIrp
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EA08:				; CODE XREF: PopNotifyDevice+C0j
		cmp	al, 3
		jz	short loc_71E9D2
		jmp	short loc_71E9FB
PopNotifyDevice	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; __stdcall PopTransitionSystemPowerStateEx(x)
_PopTransitionSystemPowerStateEx@4:	; CODE XREF: NtSetSystemPowerState(x,x,x)+49p
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		inc	ecx
		push	edi
		push	8
		mov	[esi+84h], ecx
		mov	edx, ecx
		mov	[esi+88h], ecx
		mov	[esi+0E8h], cl
		mov	[esi+140h], ecx
		mov	[esi+18h], bl
		mov	[esi+24h], bl
		mov	[esi+28h], ebx
		mov	[esi+50h], ebx
		mov	[esi+54h], ebx
		mov	[esi+38h], ebx
		mov	[esi+3Ch], ebx
		mov	[esi+6Ch], ebx
		mov	[esi+0DCh], ebx
		mov	[esi+0C8h], ebx
		mov	[esi+0CCh], ebx
		mov	[esi+0D0h], ebx
		mov	[esi+128h], ebx
		mov	[esi+12Ch], ebx
		mov	[esi+148h], bl
		mov	[esi+138h], ebx
		mov	[esi+13Ch], ebx
		mov	[esi+144h], ebx
		mov	[esi+0D4h], ebx
		mov	[esi+0D8h], ebx
		mov	eax, ds:_PopSimulate
		and	eax, 10000h
		mov	[esi+60h], ebx
		neg	eax
		pop	ecx
		sbb	eax, eax
		and	eax, 0EE1E5D00h
		add	eax, 23C34600h
		mov	[esi+14Ch], eax
		call	_PopTransitionCheckpoint@8 ; PopTransitionCheckpoint(x,x)
		mov	eax, [esi+4]
		dec	eax
		cmp	eax, 5
		ja	loc_71FB59
		mov	ecx, [esi]
		lea	eax, [ecx-1]
		cmp	eax, 6
		ja	loc_71FB59
		test	dword ptr [esi+8], 0CFFFFC0h
		jnz	loc_71FB59
		cmp	ecx, 4
		jge	short loc_71EAFD
		cmp	ds:dword_6C26D4, 10h
		jge	loc_71FB59

loc_71EAFD:				; CODE XREF: PAGELK:0071EAEEj
		mov	eax, large fs:124h
		mov	al, [eax+15Ah]
		mov	cl, al
		mov	[esi+48h], al
		test	cl, cl
		jz	short loc_71EB44
		push	ecx
		push	ds:dword_A949BC
		push	ds:_SeShutdownPrivilege
		call	SeSinglePrivilegeCheck
		test	al, al
		jnz	short loc_71EB32
		mov	eax, 0C0000061h
		jmp	loc_71FB5E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EB32:				; CODE XREF: PAGELK:0071EB26j
		push	dword ptr [esi+8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		call	_ZwSetSystemPowerState@12 ; ZwSetSystemPowerState(x,x,x)
		jmp	loc_71FB5E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EB44:				; CODE XREF: PAGELK:0071EB10j
		call	_PsGetCurrentServerSilo@0 ; PsGetCurrentServerSilo()
		mov	edi, [esi]
		push	eax
		mov	[esi+5Ch], eax
		call	_PsIsHostSilo@4	; PsIsHostSilo(x)
		test	al, al
		jnz	short loc_71EB90
		lea	eax, [edi-4]
		cmp	eax, 2
		ja	short loc_71EB81
		xor	eax, eax
		cmp	edi, 5
		setz	al
		dec	eax
		and	eax, 400002BAh
		add	eax, 80000031h
		push	eax
		mov	[esi+20h], eax
		push	dword ptr [esi+5Ch]
		call	_PsTerminateServerSilo@8 ; PsTerminateServerSilo(x,x)
		jmp	short loc_71EB86
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EB81:				; CODE XREF: PAGELK:0071EB5Ej
		mov	ebx, 0C00000BBh

loc_71EB86:				; CODE XREF: PAGELK:0071EB7Fj
		mov	[esi+60h], ebx
		mov	eax, ebx
		jmp	loc_71FB5E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EB90:				; CODE XREF: PAGELK:0071EB56j
		cmp	edi, 4
		jnz	short loc_71EB9A
		call	_PopReadShutdownPolicy@0 ; PopReadShutdownPolicy()

loc_71EB9A:				; CODE XREF: PAGELK:0071EB93j
		mov	[esi+14h], ebx
		lea	ecx, [esi+70h]
		mov	eax, [esi]
		mov	edi, ecx
		mov	[esi+0Ch], eax
		mov	eax, [esi+8]
		mov	[esi+10h], eax
		xor	eax, eax
		stosd
		stosd
		stosd
		stosd
		mov	eax, ds:dword_6C26D4
		cmp	eax, 10h
		jl	short loc_71EBC5
		mov	dword ptr [ecx], 5
		jmp	short loc_71EBC7
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EBC5:				; CODE XREF: PAGELK:0071EBBBj
		mov	[ecx], eax

loc_71EBC7:				; CODE XREF: PAGELK:0071EBC3j
		xor	ecx, ecx
		mov	dword ptr [esi+74h], 80h
		inc	ecx
		call	_PopAcquireTransitionLock@4 ; PopAcquireTransitionLock(x)
		push	ds:_ExPageLockHandle
		call	_MmLockPagableSectionByHandle@4	; MmLockPagableSectionByHandle(x)
		call	_PopRunMaximumIrpWorkers@0 ; PopRunMaximumIrpWorkers()
		xor	cl, cl
		mov	ds:dword_6C0568, offset	_PopUnlockAfterSleepWorker@4 ; PopUnlockAfterSleepWorker(x)
		mov	ds:dword_6C056C, ebx
		mov	ds:_PopUnlockAfterSleepWorkItem, ebx
		call	CmSetLazyFlushState
		call	_PopNotifyCallbacksPreSleep@0 ;	PopNotifyCallbacksPreSleep()
		xor	cl, cl
		call	_ExSwapinWorkerThreads@4 ; ExSwapinWorkerThreads(x)
		xor	ecx, ecx
		call	PoInitializeBroadcast
		mov	[esi+60h], eax
		test	eax, eax
		jns	short loc_71EC31
		push	1
		push	offset _PopUnlockAfterSleepWorkItem
		call	ExQueueWorkItem

loc_71EC29:				; CODE XREF: PAGELK:0071FB54j
		mov	eax, [esi+60h]
		jmp	loc_71FB5E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EC31:				; CODE XREF: PAGELK:0071EC1Bj
		call	PopCheckPowerSourceAfterRtcWakeCancel
		call	_PopAcquirePolicyLock@0	; PopAcquirePolicyLock()
		mov	edx, offset unk_6C2780
		mov	byte ptr [esi+40h], 1
		mov	ecx, offset _PopCapabilities
		call	PopFilterCapabilities
		mov	al, ds:byte_6C26C1
		test	al, al
		jz	short loc_71EC7B
		cmp	al, 2
		jz	short loc_71EC80
		call	_PopReleasePolicyLock@0	; PopReleasePolicyLock()
		call	_PoClearBroadcast@0 ; PoClearBroadcast()
		push	1
		push	offset _PopUnlockAfterSleepWorkItem
		call	ExQueueWorkItem
		mov	eax, 0C0000021h
		jmp	loc_71FB5E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EC7B:				; CODE XREF: PAGELK:0071EC55j
		call	_PopResetActionDefaults@0 ; PopResetActionDefaults()

loc_71EC80:				; CODE XREF: PAGELK:0071EC59j
		mov	cl, 3
		call	_PopSetPowerActionState@4 ; PopSetPowerActionState(x)
		mov	eax, ds:dword_6C231C
		lea	ecx, [esi+70h]
		push	1
		mov	ds:dword_6C26F4, eax
		xor	edx, edx
		push	dword ptr [esi+4]
		lea	eax, [esi+0Ch]
		push	eax
		call	PopExecutePowerAction
		call	PopIgnoreBatteryStatusChange
		call	PopCheckResiliencyScenarios
		lea	ecx, [esi+0E0h]
		call	PopEnforceResiliencyScenarios
		push	ebx
		push	ebx
		mov	edx, offset _PpmStopIllegalProcessorThrottleLogging@12 ; PpmStopIllegalProcessorThrottleLogging(x,x,x)
		mov	ecx, offset _KeActiveProcessors
		call	_PopExecuteOnTargetProcessors@16 ; PopExecuteOnTargetProcessors(x,x,x,x)
		mov	eax, [esi]
		push	6
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_71ECDB
		mov	ds:dword_6C26C4, ecx
		mov	eax, [esi]

loc_71ECDB:				; CODE XREF: PAGELK:0071ECD1j
		cmp	eax, 4
		jz	short loc_71ECE9
		cmp	eax, 5
		jz	short loc_71ECE9
		cmp	eax, ecx
		jnz	short loc_71ED26

loc_71ECE9:				; CODE XREF: PAGELK:0071ECDEj
					; PAGELK:0071ECE3j
		mov	ds:_PoPowerDownActionInProgress, 1
		cmp	eax, 5
		jnz	short loc_71ECFC
		mov	ds:_PoPowerResetActionInProgress, 1

loc_71ECFC:				; CODE XREF: PAGELK:0071ECF3j
		cmp	ds:_PopHiberInfo, ebx
		jz	short loc_71ED26
		cmp	ds:dword_6C24A4, ebx
		jz	short loc_71ED26
		call	_MmZeroPageFileAtShutdown@0 ; MmZeroPageFileAtShutdown()
		test	eax, eax
		jz	short loc_71ED26
		mov	edx, ds:dword_6C24A4
		mov	ecx, ds:_PopHiberInfo
		call	_PopZeroHiberFile@8 ; PopZeroHiberFile(x,x)

loc_71ED26:				; CODE XREF: PAGELK:0071ECE7j
					; PAGELK:0071ED02j ...
		mov	eax, [esi]
		lea	edi, [esi+58h]
		mov	[edi], bl
		lea	ecx, [esi+1Ch]
		mov	[ecx], ebx
		cmp	eax, 2
		jz	short loc_71ED3C
		cmp	eax, 3
		jnz	short loc_71ED43

loc_71ED3C:				; CODE XREF: PAGELK:0071ED35j
		mov	ds:_PoPowerDownActionInProgress, 1

loc_71ED43:				; CODE XREF: PAGELK:0071ED3Aj
		mov	dword ptr [esi+60h], 0C0000120h
		mov	[esi+68h], bl

loc_71ED4D:				; CODE XREF: PAGELK:0071EF8Ej
					; PAGELK:0071EF9Dj ...
		cmp	[esi+40h], bl
		jnz	short loc_71ED5E
		call	_PopAcquirePolicyLock@0	; PopAcquirePolicyLock()
		mov	byte ptr [esi+40h], 1
		lea	ecx, [esi+1Ch]

loc_71ED5E:				; CODE XREF: PAGELK:0071ED50j
		mov	eax, ds:__imp__KeQueryPerformanceCounter@4 ; KeQueryPerformanceCounter(x)
		mov	[ebp-8], eax
		cmp	ds:dword_6C26C4, ebx
		jz	loc_71FA11
		mov	al, ds:_PopAction
		mov	[esi+80h], al
		mov	ds:_PopAction, bl
		mov	eax, [esi+60h]
		cmp	eax, 0C0000120h
		jnz	short loc_71EDEB
		test	byte ptr [esi+80h], 2
		jz	short loc_71EDAF
		test	ds:dword_6C26CC, 80000000h
		jnz	short loc_71EDAF
		test	byte ptr ds:dword_6C26CC, 3
		jnz	loc_71F128

loc_71EDAF:				; CODE XREF: PAGELK:0071ED94j
					; PAGELK:0071EDA0j
		push	edi
		mov	edx, ecx
		mov	ecx, offset dword_6C26C8
		push	offset dword_6C26E0
		call	PopActionRetrieveInitialState
		mov	eax, ds:dword_6C26C4
		cmp	eax, 4
		jz	short loc_71EDD7
		cmp	eax, 5
		jz	short loc_71EDD7
		push	6
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_71EDE6

loc_71EDD7:				; CODE XREF: PAGELK:0071EDC9j
					; PAGELK:0071EDCEj
		mov	ds:byte_6C26C2,	1
		mov	eax, [esi+8]
		mov	ds:dword_6C26CC, eax

loc_71EDE6:				; CODE XREF: PAGELK:0071EDD5j
		mov	[esi+60h], ebx
		mov	eax, ebx

loc_71EDEB:				; CODE XREF: PAGELK:0071ED8Bj
		test	eax, eax
		js	loc_71F130
		call	_PopReleasePolicyLock@0	; PopReleasePolicyLock()
		lea	ecx, [esi+140h]
		mov	[esi+40h], bl
		lea	eax, [esi+144h]
		mov	dword ptr [ecx], 1
		mov	edx, ecx
		mov	[eax], ebx
		push	eax
		mov	ecx, (offset loc_408D2F+1)
		call	_PopQueryPowerSettingUlong@12 ;	PopQueryPowerSettingUlong(x,x,x)
		test	ds:dword_6C26CC, 40000000h
		lea	eax, [esi+144h]
		jz	short loc_71EE36
		mov	[esi+140h], ebx
		mov	[eax], ebx

loc_71EE36:				; CODE XREF: PAGELK:0071EE2Cj
		cmp	ds:byte_6C279E,	bl
		jnz	short loc_71EE50
		cmp	ds:byte_6C278C,	bl
		jnz	short loc_71EE50
		cmp	ds:byte_6C2793,	bl
		jnz	short loc_71EE50
		mov	[eax], ebx

loc_71EE50:				; CODE XREF: PAGELK:0071EE3Cj
					; PAGELK:0071EE44j ...
		call	PopInitializePowerPolicySimulate
		mov	edx, ds:dword_6C26CC
		mov	ecx, offset dword_6C26E4
		mov	eax, ds:dword_6C26E0
		shr	edx, 1Bh
		mov	ds:dword_6C26E4, eax
		and	edx, 2
		mov	[esi+64h], edx
		push	dword ptr [esi+1Ch]
		push	ds:dword_6C26C8
		call	PopAdvanceSystemPowerState
		test	byte ptr [esi+8], 8
		jz	short loc_71EEA9
		mov	ds:byte_6C24D0,	1
		mov	[esi+24h], bl
		mov	ds:dword_6C26E8, 5
		mov	dword ptr [esi+2Ch], 6
		mov	eax, ds:dword_6C26E0
		jmp	short loc_71EEDD
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EEA9:				; CODE XREF: PAGELK:0071EE85j
		call	PopFastS4Check
		test	al, al
		mov	eax, ds:dword_6C26E0
		jz	short loc_71EECD
		mov	[esi+2Ch], eax
		push	6
		mov	ds:dword_6C26E8, 5
		mov	byte ptr [esi+24h], 1
		pop	eax
		jmp	short loc_71EEE4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EECD:				; CODE XREF: PAGELK:0071EEB5j
		mov	ds:dword_6C26E8, eax
		mov	[esi+2Ch], eax
		mov	eax, ds:dword_6C26E0
		mov	[esi+24h], bl

loc_71EEDD:				; CODE XREF: PAGELK:0071EEA7j
		mov	eax, ds:_PopPowerStateHandlerLookup[eax*4]

loc_71EEE4:				; CODE XREF: PAGELK:0071EECBj
		mov	[esi+44h], eax
		test	eax, eax
		js	loc_71EF71
		cmp	eax, 7
		jge	short loc_71EF71
		shl	eax, 4
		cmp	ds:dword_6C2DA8[eax], ebx
		jz	short loc_71EF71
		test	byte ptr [esi+8], 8
		jz	short loc_71EF0A
		push	6
		pop	ecx
		jmp	short loc_71EF18
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EF0A:				; CODE XREF: PAGELK:0071EF03j
		cmp	ds:byte_6C26C2,	bl
		jnz	short loc_71EF1F
		mov	ecx, ds:dword_6C26E0

loc_71EF18:				; CODE XREF: PAGELK:0071EF08j
		call	_PopSetSleepMarker@4 ; PopSetSleepMarker(x)
		jmp	short loc_71EF24
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EF1F:				; CODE XREF: PAGELK:0071EF10j
		call	_PopSetShutdownMarker@0	; PopSetShutdownMarker()

loc_71EF24:				; CODE XREF: PAGELK:0071EF1Dj
		call	_PopAcquirePolicyLock@0	; PopAcquirePolicyLock()
		test	ds:_PopAction, 6
		jz	short loc_71EF3F
		mov	byte ptr [esi+40h], 1
		mov	dword ptr [esi+60h], 0C0000120h
		jmp	short loc_71EF8B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EF3F:				; CODE XREF: PAGELK:0071EF30j
		call	_PopReleasePolicyLock@0	; PopReleasePolicyLock()
		push	0Ah
		pop	ecx
		call	PopCheckpointSystemSleep
		mov	ds:byte_6C26DC,	3
		mov	cl, [edi]
		call	_PopDiagTraceKernelQueriesAllowed@4 ; PopDiagTraceKernelQueriesAllowed(x)
		cmp	[edi], bl
		jz	short loc_71EF97
		call	PopSetDevicesSystemState
		mov	[esi+60h], eax
		test	eax, eax
		jns	short loc_71EF93
		cmp	eax, 0C0000120h
		jz	short loc_71EF97

loc_71EF71:				; CODE XREF: PAGELK:0071EEE9j
					; PAGELK:0071EEF2j ...
		mov	dl, [esi+24h]
		mov	ecx, [esi+1Ch]
		push	edi
		call	_PopFindNextSystemPowerState@12	; PopFindNextSystemPowerState(x,x,x)
		mov	[esi+30h], al
		test	al, al
		jz	loc_71F130
		mov	[esi+60h], ebx

loc_71EF8B:				; CODE XREF: PAGELK:0071EF3Dj
					; PAGELK:0071F0C0j
		lea	ecx, [esi+1Ch]
		jmp	loc_71ED4D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71EF93:				; CODE XREF: PAGELK:0071EF68j
		mov	byte ptr [esi+68h], 1

loc_71EF97:				; CODE XREF: PAGELK:0071EF5Cj
					; PAGELK:0071EF6Fj
		lea	ecx, [esi+1Ch]
		cmp	[esi+60h], ebx
		jl	loc_71ED4D
		push	0Dh
		pop	ecx
		call	PopCheckpointSystemSleep
		call	PopAllocateHiberContext
		mov	[esi+60h], eax
		lea	ecx, [esi+1Ch]
		test	eax, eax
		js	loc_71ED4D
		mov	edx, ds:dword_6C26E0
		mov	ecx, ds:dword_6C26C4
		push	1
		push	dword ptr [esi+8]
		push	ds:dword_6C26E8
		call	PopNotifyTelemetryOsState
		push	9
		xor	edx, edx
		mov	[esi+6Ch], eax
		pop	ecx
		call	_PopTransitionCheckpoint@8 ; PopTransitionCheckpoint(x,x)
		cmp	ds:byte_6C26C2,	bl
		jnz	short loc_71F019
		push	dword ptr [esi+6Ch]
		mov	edx, ds:dword_6C26E8
		push	ds:dword_6C26D8
		mov	ecx, [esi+2Ch]
		push	ds:dword_6C26D4
		call	_PopDiagTracePreSleepNotification@20 ; PopDiagTracePreSleepNotification(x,x,x,x,x)
		push	10h
		pop	ecx
		call	PopCheckpointSystemSleep
		call	_PopUmpoSendFlushSleepStudyLoggerNotification@0	; PopUmpoSendFlushSleepStudyLoggerNotification()

loc_71F019:				; CODE XREF: PAGELK:0071EFEDj
		call	_PopEsEnterSleepShutdown@0 ; PopEsEnterSleepShutdown()
		call	_PopThermalSxEntry@0 ; PopThermalSxEntry()
		cmp	[esi+18h], bl
		jnz	short loc_71F06D
		cmp	ds:byte_6C26C2,	bl
		jz	short loc_71F069
		lea	eax, [ebp-1]
		mov	byte ptr [ebp-1], 1
		push	ebx
		mov	[ebp-28h], eax
		lea	eax, [ebp-2Ch]
		push	2
		push	eax
		mov	dword ptr [ebp-2Ch], 5
		mov	dword ptr [ebp-24h], 1
		mov	dword ptr [ebp-20h], 0Bh
		mov	dword ptr [ebp-1Ch], 0FFDF02C4h
		mov	dword ptr [ebp-18h], 4
		call	_RtlSetSystemBootStatusEx@12 ; RtlSetSystemBootStatusEx(x,x,x)

loc_71F069:				; CODE XREF: PAGELK:0071F02Ej
		mov	byte ptr [esi+18h], 1

loc_71F06D:				; CODE XREF: PAGELK:0071F026j
		cmp	[esi+24h], bl
		jz	short loc_71F077
		push	5
		pop	ecx
		jmp	short loc_71F07D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F077:				; CODE XREF: PAGELK:0071F070j
		mov	ecx, ds:dword_6C26E0

loc_71F07D:				; CODE XREF: PAGELK:0071F075j
		call	PopFlushVolumes
		mov	eax, ds:dword_6C26E0
		cmp	ds:dword_6C26E8, eax
		jge	short loc_71F094
		mov	ds:dword_6C26E8, eax

loc_71F094:				; CODE XREF: PAGELK:0071F08Dj
		mov	ds:byte_6C26DC,	2
		cmp	ds:byte_6C26C2,	bl
		jnz	loc_71F99B
		mov	ecx, [esi+44h]
		lea	edx, [esi+0ECh]
		mov	ds:_KeMtrrComparisonFailed, bl
		call	_PopInitSystemSleeperThread@8 ;	PopInitSystemSleeperThread(x,x)
		mov	[esi+60h], eax
		test	eax, eax
		js	loc_71EF8B
		cmp	ds:byte_6C2768,	bl
		jnz	short loc_71F0DA
		call	ExWakeTimersPause
		mov	ds:byte_6C2768,	1

loc_71F0DA:				; CODE XREF: PAGELK:0071F0CCj
		call	KeQueryInterruptTime
		mov	[esi+0B0h], eax
		lea	eax, [esi+0B8h]
		push	eax
		mov	[esi+0B4h], edx
		call	KeQuerySystemTime
		mov	ecx, ds:_PopWakeAlarmTimeOverride
		mov	eax, ecx
		mov	edx, ds:dword_6C219C
		or	eax, edx
		mov	[esi+0D0h], ebx
		jz	loc_71F394
		mov	[esi+0CCh], edx
		mov	dword ptr [esi+0D0h], 0FFFFFFFDh
		jmp	loc_71F4B9
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F128:				; CODE XREF: PAGELK:0071EDA9j
		push	2
		pop	ecx
		call	PopGetPolicyWorker

loc_71F130:				; CODE XREF: PAGELK:0071EDEDj
					; PAGELK:0071EF82j ...
		mov	eax, [ebp-8]

loc_71F133:				; CODE XREF: PAGELK:0071FA14j
		cmp	ds:byte_6C24D0,	bl
		jz	short loc_71F15D
		push	ebx
		call	eax
		mov	ds:dword_6C2A44, edx
		mov	ecx, offset dword_6C2A38
		mov	edx, offset dword_6C2A40
		mov	ds:dword_6C2A40, eax
		call	PopQpcTimeInMs
		mov	ds:dword_6C24B8, eax

loc_71F15D:				; CODE XREF: PAGELK:0071F139j
		cmp	[esi+60h], ebx
		jl	short loc_71F1CF
		mov	eax, [esi+128h]
		xor	edx, edx
		inc	edx
		mov	ds:dword_6C2708, eax
		mov	eax, [esi+12Ch]
		mov	cl, dl
		mov	ds:dword_6C270C, eax
		call	ExUpdateSystemTimeFromCmos
		push	1
		call	ds:off_6B13EC	; xHalTimerQueryAndResetRtcErrors(x)
		test	al, al
		jz	short loc_71F195
		mov	byte ptr [esi+0C0h], 1

loc_71F195:				; CODE XREF: PAGELK:0071F18Cj
		push	ebx
		call	dword ptr [ebp-8]
		push	ebx
		push	2
		mov	ds:dword_6C286C, edx
		xor	edx, edx
		pop	ecx
		mov	ds:dword_6C2868, eax
		call	PfPowerActionNotify
		call	KeQueryInterruptTime
		mov	ds:dword_6C2700, eax
		mov	ds:dword_6C2704, edx
		call	_PopDiagComputeEarlyHiberStats@0 ; PopDiagComputeEarlyHiberStats()
		cmp	dword ptr [esi+28h], 4
		jnz	short loc_71F1CF
		call	_PopDiagTraceFirmwareS3Stats@0 ; PopDiagTraceFirmwareS3Stats()

loc_71F1CF:				; CODE XREF: PAGELK:0071F160j
					; PAGELK:0071F1C8j
		mov	ds:byte_6C26DD,	1
		mov	ds:_PoPowerDownActionInProgress, bl
		mov	ds:_PoPowerResetActionInProgress, bl
		cmp	[esi+68h], bl
		jz	short loc_71F203
		push	ebx
		push	3
		xor	edx, edx
		pop	ecx
		call	PfPowerActionNotify
		call	PopSetDevicesSystemState
		push	ebx
		xor	edx, edx
		push	3
		inc	edx
		pop	ecx
		call	PfPowerActionNotify

loc_71F203:				; CODE XREF: PAGELK:0071F1E5j
		call	_PpmCheckResumePpmEngineFromSx@0 ; PpmCheckResumePpmEngineFromSx()
		cmp	[esi+0C0h], bl
		jz	short loc_71F220
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset _WNF_BOOT_INVALID_TIME_SOURCE
		call	_ZwUpdateWnfStateData@28 ; ZwUpdateWnfStateData(x,x,x,x,x,x,x)

loc_71F220:				; CODE XREF: PAGELK:0071F20Ej
		cmp	ds:_PopSleepReliabilityDetailedDiagEnabled, bl
		jnz	short loc_71F22F
		mov	cl, 1
		call	_RtlBootStatusDisableFlushing@4	; RtlBootStatusDisableFlushing(x)

loc_71F22F:				; CODE XREF: PAGELK:0071F226j
		push	38h
		pop	ecx
		mov	ds:_PopBootStatCheckpointAvailable, 1
		call	PopCheckpointSystemSleep
		lea	edi, [esi+0DCh]
		mov	ecx, [edi]
		test	ecx, ecx
		jz	short loc_71F251
		call	_ExDeleteWakeTimerInfo@4 ; ExDeleteWakeTimerInfo(x)
		mov	[edi], ebx

loc_71F251:				; CODE XREF: PAGELK:0071F248j
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	ds:off_6B1228	; xHalSetWakeAlarm(x,x,x,x)
		mov	edx, ds:dword_6C26E0
		mov	ecx, ds:dword_6C26C4
		push	ebx
		push	dword ptr [esi+8]
		push	ds:dword_6C26E8
		call	PopNotifyTelemetryOsState
		mov	[esi+6Ch], eax
		call	_PopQueueBatteryStatusTimeout@0	; PopQueueBatteryStatusTimeout()
		push	ebx
		push	ebx
		mov	edx, offset _PpmStartIllegalProcessorThrottleLogging@12	; PpmStartIllegalProcessorThrottleLogging(x,x,x)
		mov	ecx, offset _KeActiveProcessors
		call	_PopExecuteOnTargetProcessors@16 ; PopExecuteOnTargetProcessors(x,x,x,x)
		cmp	[esi+40h], bl
		jz	short loc_71F29C
		call	_PopReleasePolicyLock@0	; PopReleasePolicyLock()
		mov	[esi+40h], bl

loc_71F29C:				; CODE XREF: PAGELK:0071F292j
		call	_PoClearBroadcast@0 ; PoClearBroadcast()
		mov	ds:dword_6C26F4, ebx
		call	_PopEsExitSleep@0 ; PopEsExitSleep()
		lea	ecx, [esi+8Ch]
		xor	edx, edx
		call	_PopCurrentPowerStatePrecise@8 ; PopCurrentPowerStatePrecise(x,x)
		mov	eax, ds:dword_6C2D0C
		mov	[esi+88h], eax
		push	1
		push	offset _PopSpoilEstimatesOnPowerStateTransitionWorkItem
		mov	ds:dword_6C0548, offset	_PopSpoilEstimatesOnPowerStateTransitionWorker@4 ; PopSpoilEstimatesOnPowerStateTransitionWorker(x)
		mov	ds:dword_6C054C, ebx
		mov	ds:_PopSpoilEstimatesOnPowerStateTransitionWorkItem, ebx
		call	ExQueueWorkItem
		call	PopThermalSxExit
		cmp	[esi+40h], bl
		jnz	short loc_71F2F9
		call	_PopAcquirePolicyLock@0	; PopAcquirePolicyLock()
		mov	byte ptr [esi+40h], 1

loc_71F2F9:				; CODE XREF: PAGELK:0071F2EEj
		cmp	[esi+60h], ebx
		jl	loc_71FABA
		xor	ecx, ecx
		inc	ecx
		call	PopInitSIdle
		mov	edi, ds:dword_6C2718
		mov	dl, bl
		mov	ds:_PopAction, dl
		cmp	edi, 3
		jnb	loc_71FABA
		imul	ecx, edi, 18h
		mov	eax, ds:dword_6C2728[ecx]
		mov	ds:dword_6C2770, eax
		mov	eax, ds:dword_6C272C[ecx]
		mov	ds:dword_6C2774, eax
		imul	eax, edi, 18h
		mov	ds:_PopFullWake, ebx
		mov	ds:_PopPendingUserPresenceDuringSystemSleep, ebx
		mov	ds:_PopPendingUserPresenceMonitorOnReason, ebx
		mov	eax, ds:dword_6C2730[eax]
		cmp	eax, 0FFFFFFFFh
		jnz	loc_71FA33
		mov	edx, [esi+144h]
		lea	eax, [esi+8Ch]
		mov	ecx, [esi+140h]
		push	eax
		call	_PopDeferDoze@12 ; PopDeferDoze(x,x,x)
		test	al, al
		jz	loc_71FA19
		mov	eax, [esi]
		mov	ds:dword_6C26C4, eax
		mov	eax, [esi+4]
		or	ds:_PopAction, 2
		jmp	loc_71FA92
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F394:				; CODE XREF: PAGELK:0071F10Dj
		mov	eax, ds:_PopPolicy
		mov	[ebp-0Ch], eax
		cmp	[eax+58h], ebx
		jz	loc_71F426
		cmp	ds:dword_6C26E0, 5
		jz	short loc_71F426
		mov	ecx, offset _PopCapabilities
		call	PopIsDozeSupported
		test	al, al
		jz	short loc_71F426
		test	ds:dword_6C26CC, 40000000h
		jnz	short loc_71F426
		mov	eax, [ebp-0Ch]
		mov	edx, 989680h
		mov	ecx, [esi+0B0h]
		mov	edi, [esi+0B4h]
		mov	[esi+0C8h], ecx
		mov	[esi+0CCh], edi
		mov	eax, [eax+58h]
		mul	edx
		add	eax, ecx
		mov	[esi+0C8h], eax
		adc	edx, edi
		or	dword ptr [esi+0D0h], 0FFFFFFFFh
		mov	[esi+0CCh], edx
		mov	eax, ds:dword_6C2778
		or	eax, ds:dword_6C277C
		jnz	loc_71F4BF
		mov	ds:dword_6C2778, ecx
		mov	ds:dword_6C277C, edi
		jmp	loc_71F4BF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F426:				; CODE XREF: PAGELK:0071F39Fj
					; PAGELK:0071F3ACj ...
		cmp	ds:byte_6C2E34,	bl
		jz	loc_71F4BF
		cmp	ds:dword_6C26E0, 5
		jnz	loc_71F4BF
		cmp	ds:byte_6C24D0,	bl
		jnz	short loc_71F4BF
		mov	edi, ds:dword_6C22C8
		mov	eax, edi
		mov	ecx, ds:dword_6C22CC
		or	eax, ecx
		jz	short loc_71F4BF
		cmp	ds:dword_6C26D4, 0Bh
		jnz	short loc_71F4BF
		lea	eax, [esi+0B8h]
		mov	edx, 989680h
		sub	edi, [eax]
		mov	[esi+130h], edi
		sbb	ecx, [eax+4]
		mov	[esi+134h], ecx
		mov	eax, ds:_PopSmartUserPresenceWakeOffset
		mul	edx
		mov	dword ptr [esi+0D0h], 0FFFFFFFEh
		sub	edi, eax
		mov	eax, [esi+0B4h]
		mov	[esi+130h], edi
		sbb	ecx, edx
		mov	[ebp-0Ch], ecx
		mov	[esi+134h], ecx
		mov	ecx, [esi+0B0h]
		add	ecx, edi
		adc	eax, [ebp-0Ch]
		mov	[esi+0CCh], eax

loc_71F4B9:				; CODE XREF: PAGELK:0071F123j
		mov	[esi+0C8h], ecx

loc_71F4BF:				; CODE XREF: PAGELK:0071F40Fj
					; PAGELK:0071F421j ...
		push	48h
		push	ebx
		push	offset dword_6C2720
		call	_memset
		add	esp, 0Ch
		mov	ds:dword_6C2718, 3
		push	0FFFFFFFDh
		pop	eax
		cmp	[esi+0D0h], eax
		jnz	short loc_71F525
		mov	ds:dword_6C2730, eax
		mov	eax, [esi+0C8h]
		mov	ds:dword_6C2720, eax
		mov	eax, [esi+0CCh]
		mov	ds:dword_6C2724, eax
		mov	eax, [esi+0D0h]
		mov	ds:dword_6C2748, eax
		mov	eax, [esi+0C8h]
		mov	ds:dword_6C2738, eax
		mov	eax, [esi+0CCh]
		mov	ds:dword_6C273C, eax
		jmp	loc_71F74A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F525:				; CODE XREF: PAGELK:0071F4E2j
		cmp	ds:byte_6C24D0,	bl
		jnz	loc_71F74A
		cmp	ds:dword_6C26D4, 0Eh
		jz	loc_71F74A
		cmp	ds:dword_6C26E0, 5
		lea	edi, [esi+140h]
		jnz	short loc_71F594
		cmp	dword ptr [edi], 1
		jz	short loc_71F594
		cmp	dword ptr [esi+144h], 1
		jz	short loc_71F594
		lea	edi, [esi+0D8h]
		mov	ecx, offset _GUID_LEGACY_RTC_MITIGATION
		push	edi
		lea	edx, [esi+0D4h]
		call	_PopQueryPowerSettingUlong@12 ;	PopQueryPowerSettingUlong(x,x,x)
		cmp	[esi+0D4h], ebx
		jnz	short loc_71F57E
		cmp	[edi], ebx
		jz	short loc_71F58E

loc_71F57E:				; CODE XREF: PAGELK:0071F578j
		lea	edi, [esi+140h]
		mov	[esi+144h], ebx
		mov	[edi], ebx
		jmp	short loc_71F594
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F58E:				; CODE XREF: PAGELK:0071F57Cj
		lea	edi, [esi+140h]

loc_71F594:				; CODE XREF: PAGELK:0071F54Bj
					; PAGELK:0071F550j ...
		mov	ecx, [esi+0C8h]
		mov	eax, ecx
		mov	edx, [esi+0CCh]
		or	eax, edx
		jz	short loc_71F622
		cmp	dword ptr [esi+0D0h], 0FFFFFFFEh
		jnz	short loc_71F5EA
		cmp	[edi], ebx
		jz	short loc_71F5CA
		mov	ds:dword_6C2720, ecx
		mov	ds:dword_6C2724, edx
		mov	eax, [esi+0D0h]
		mov	ds:dword_6C2730, eax

loc_71F5CA:				; CODE XREF: PAGELK:0071F5B1j
		cmp	[esi+144h], ebx
		jz	short loc_71F622
		mov	eax, [esi+0C8h]
		mov	ds:dword_6C2738, eax
		mov	eax, [esi+0CCh]
		mov	ds:dword_6C273C, eax
		jmp	short loc_71F617
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F5EA:				; CODE XREF: PAGELK:0071F5ADj
		mov	ds:dword_6C2720, ecx
		mov	ds:dword_6C2724, edx
		mov	eax, [esi+0C8h]
		mov	ds:dword_6C2738, eax
		mov	eax, [esi+0CCh]
		mov	ds:dword_6C273C, eax
		mov	eax, [esi+0D0h]
		mov	ds:dword_6C2730, eax

loc_71F617:				; CODE XREF: PAGELK:0071F5E8j
		mov	eax, [esi+0D0h]
		mov	ds:dword_6C2748, eax

loc_71F622:				; CODE XREF: PAGELK:0071F5A4j
					; PAGELK:0071F5D0j
		mov	eax, ds:dword_6C2770
		mov	[esi+50h], eax
		mov	eax, ds:dword_6C2774
		mov	edx, eax
		mov	edi, [esi+50h]
		mov	[esi+54h], eax
		mov	eax, edi
		or	eax, edx
		jz	short loc_71F660
		mov	eax, [esi+0B0h]
		mov	ecx, [esi+0B4h]
		add	eax, 1312D00h
		adc	ecx, ebx
		cmp	edx, ecx
		ja	short loc_71F660
		jb	short loc_71F65A
		cmp	edi, eax
		jnb	short loc_71F660

loc_71F65A:				; CODE XREF: PAGELK:0071F654j
		mov	[esi+50h], eax
		mov	[esi+54h], ecx

loc_71F660:				; CODE XREF: PAGELK:0071F63Bj
					; PAGELK:0071F652j ...
		mov	eax, [esi+140h]
		test	eax, eax
		jz	short loc_71F6D7
		cmp	eax, 2
		jnz	short loc_71F67D
		test	ds:_PopSimulate, 80000000h
		mov	cl, 1
		jz	short loc_71F67F

loc_71F67D:				; CODE XREF: PAGELK:0071F66Dj
		mov	cl, bl

loc_71F67F:				; CODE XREF: PAGELK:0071F67Bj
		mov	[esi+0C1h], cl
		lea	eax, [esi+0DCh]
		mov	edx, [esi+50h]
		lea	edi, [esi+38h]
		push	eax
		push	dword ptr [esi+0CCh]
		mov	eax, [esi+54h]
		add	edx, 1
		push	dword ptr [esi+0C8h]
		adc	eax, ebx
		push	eax
		push	edx
		mov	edx, edi
		call	_ExGetNextWakeTime@28 ;	ExGetNextWakeTime(x,x,x,x,x,x,x)
		mov	[esi+148h], al
		lea	edx, [esi+0DCh]
		test	al, al
		jz	short loc_71F6E0
		mov	eax, [edi]
		mov	ds:dword_6C2720, eax
		mov	eax, [edi+4]
		mov	ds:dword_6C2724, eax
		mov	eax, [edx]
		mov	ds:dword_6C2730, eax
		jmp	short loc_71F6E0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F6D7:				; CODE XREF: PAGELK:0071F668j
		lea	edi, [esi+38h]
		lea	edx, [esi+0DCh]

loc_71F6E0:				; CODE XREF: PAGELK:0071F6BDj
					; PAGELK:0071F6D5j
		mov	eax, [esi+144h]
		test	eax, eax
		jz	short loc_71F74A
		cmp	eax, 2
		jnz	short loc_71F6FD
		test	ds:_PopSimulate, 80000000h
		mov	cl, 1
		jz	short loc_71F6FF

loc_71F6FD:				; CODE XREF: PAGELK:0071F6EDj
		mov	cl, bl

loc_71F6FF:				; CODE XREF: PAGELK:0071F6FBj
		push	edx
		mov	[esi+0C1h], cl
		push	dword ptr [esi+0CCh]
		mov	edx, [esi+50h]
		push	dword ptr [esi+0C8h]
		mov	eax, [esi+54h]
		add	edx, 1
		adc	eax, ebx
		push	eax
		push	edx
		mov	edx, edi
		call	_ExGetNextWakeTime@28 ;	ExGetNextWakeTime(x,x,x,x,x,x,x)
		mov	[esi+148h], al
		test	al, al
		jz	short loc_71F74A
		mov	eax, [edi]
		mov	ds:dword_6C2738, eax
		mov	eax, [edi+4]
		mov	ds:dword_6C273C, eax
		mov	eax, [esi+0DCh]
		mov	ds:dword_6C2748, eax

loc_71F74A:				; CODE XREF: PAGELK:0071F520j
					; PAGELK:0071F52Bj ...
		mov	edi, ds:dword_6C2720
		mov	eax, edi
		mov	edx, ds:dword_6C2724
		or	eax, edx
		mov	ds:dword_6C2728, edi
		mov	ds:dword_6C272C, edx
		jz	short loc_71F792
		mov	eax, [esi+14Ch]
		add	eax, [esi+0B0h]
		push	0
		pop	ecx
		adc	ecx, [esi+0B4h]
		cmp	edx, ecx
		ja	short loc_71F792
		jb	short loc_71F787
		cmp	edi, eax
		jnb	short loc_71F792

loc_71F787:				; CODE XREF: PAGELK:0071F781j
		mov	ds:dword_6C2728, eax
		mov	ds:dword_6C272C, ecx

loc_71F792:				; CODE XREF: PAGELK:0071F766j
					; PAGELK:0071F77Fj ...
		mov	edi, ds:dword_6C2738
		mov	eax, edi
		mov	edx, ds:dword_6C273C
		or	eax, edx
		mov	ds:dword_6C2740, edi
		mov	ds:dword_6C2744, edx
		jz	short loc_71F7DA
		mov	eax, [esi+14Ch]
		add	eax, [esi+0B0h]
		push	0
		pop	ecx
		adc	ecx, [esi+0B4h]
		cmp	edx, ecx
		ja	short loc_71F7DA
		jb	short loc_71F7CF
		cmp	edi, eax
		jnb	short loc_71F7DA

loc_71F7CF:				; CODE XREF: PAGELK:0071F7C9j
		mov	ds:dword_6C2740, eax
		mov	ds:dword_6C2744, ecx

loc_71F7DA:				; CODE XREF: PAGELK:0071F7AEj
					; PAGELK:0071F7C7j ...
		mov	eax, ds:dword_6C2730
		test	eax, eax
		jz	short loc_71F7F5
		cmp	eax, 0FFFFFFFFh
		jz	short loc_71F7F5
		cmp	eax, 0FFFFFFFEh
		jz	short loc_71F7F5
		cmp	eax, 0FFFFFFFDh
		jz	short loc_71F7F5
		mov	eax, [eax+4]

loc_71F7F5:				; CODE XREF: PAGELK:0071F7E1j
					; PAGELK:0071F7E6j ...
		mov	[esi+138h], eax
		mov	eax, ds:dword_6C2748
		test	eax, eax
		jz	short loc_71F816
		cmp	eax, 0FFFFFFFFh
		jz	short loc_71F816
		cmp	eax, 0FFFFFFFEh
		jz	short loc_71F816
		cmp	eax, 0FFFFFFFDh
		jz	short loc_71F816
		mov	eax, [eax+4]

loc_71F816:				; CODE XREF: PAGELK:0071F802j
					; PAGELK:0071F807j ...
		push	ebx
		mov	[esi+13Ch], eax
		call	dword ptr [ebp-8]
		mov	cl, 1
		mov	ds:dword_6C2850, eax
		mov	ds:dword_6C2854, edx
		call	_ExAcquireTimeRefreshLock@4 ; ExAcquireTimeRefreshLock(x)
		xor	edx, edx
		inc	edx
		mov	cl, dl
		call	ExUpdateSystemTimeFromCmos
		call	_ExReleaseTimeRefreshLock@0 ; ExReleaseTimeRefreshLock()
		push	ds:dword_6C2744
		push	ds:dword_6C2740
		push	ds:dword_6C272C
		push	ds:dword_6C2728
		call	ds:off_6B1228	; xHalSetWakeAlarm(x,x,x,x)
		mov	ds:_PopBootStatCheckpointAvailable, bl
		call	_PpmCheckPausePpmEngineForSx@0 ; PpmCheckPausePpmEngineForSx()
		call	PopSetDevicesSystemState
		mov	byte ptr [esi+68h], 1
		call	PopNewWakeInfo
		call	KeQueryInterruptTime
		mov	[esi+128h], eax
		mov	[esi+12Ch], edx
		mov	eax, ds:dword_6C2D0C
		push	1
		mov	[esi+84h], eax
		lea	eax, [esi+0FCh]
		push	ebx
		push	eax
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [esi+10Ch]
		push	eax
		call	KeWaitForSingleObject
		mov	ds:dword_6C251C, ebx
		mov	eax, [esi+120h]
		push	2
		pop	ecx
		mov	[esi+60h], eax
		call	PopSetPowerActionWatchdogState
		mov	eax, ds:dword_6C26E8
		cmp	ds:_PoResumeFromHibernate, bl
		jnz	short loc_71F8DC
		mov	eax, ds:dword_6C26E0

loc_71F8DC:				; CODE XREF: PAGELK:0071F8D5j
		mov	ds:dword_6C26EC, eax
		test	byte ptr [esi+8], 8
		jz	short loc_71F8EF
		push	6
		pop	ecx
		mov	[esi+2Ch], ecx
		jmp	short loc_71F8F9
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F8EF:				; CODE XREF: PAGELK:0071F8E5j
		mov	eax, ds:dword_6C26E0
		mov	ecx, eax
		mov	[esi+2Ch], eax

loc_71F8F9:				; CODE XREF: PAGELK:0071F8EDj
		push	dword ptr [esi+13Ch]
		mov	eax, ds:dword_6C26EC
		push	dword ptr [esi+138h]
		mov	[esi+28h], eax
		push	ds:dword_6C2744
		mov	edx, ds:dword_6C26E8
		push	ds:dword_6C2740
		push	ds:dword_6C272C
		push	ds:dword_6C2728
		push	eax
		call	PopDiagTracePostSleepNotification
		cmp	ds:_KeMtrrComparisonFailed, bl
		jz	short loc_71F93E
		call	_PopDiagTraceMtrrError@0 ; PopDiagTraceMtrrError()

loc_71F93E:				; CODE XREF: PAGELK:0071F937j
		mov	eax, [esi+60h]
		test	eax, eax
		jns	loc_71F130
		cmp	ds:dword_6C26E0, 5
		jnz	loc_71F130
		push	eax
		push	offset ??_C@_19PCNJIDGC@?$AA0?$AAx?$AA?$CF?$AAx@OKHAJAOM@
		push	80h
		mov	edi, offset _PopHibernationErrorSubstitutionString
		mov	[ebp-14h], ebx
		push	edi
		mov	[ebp-10h], ebx
		call	StringCchPrintfW
		add	esp, 10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	ebx
		lea	eax, [ebp-14h]
		push	eax
		push	0C0000411h
		call	_IoRaiseInformationalHardError@12 ; IoRaiseInformationalHardError(x,x,x)
		mov	ecx, [esi+60h]
		call	_PopDiagTraceHibernateErrorStatus@4 ; PopDiagTraceHibernateErrorStatus(x)
		jmp	loc_71F130
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71F99B:				; CODE XREF: PAGELK:0071F0A1j
		call	_PopFxPrepareDevicesForShutdown@0 ; PopFxPrepareDevicesForShutdown()
		mov	ecx, ds:dword_6C26F4
		lea	ecx, [ecx+1Ch]
		call	_IoFreePoDeviceNotifyList@4 ; IoFreePoDeviceNotifyList(x)
		cmp	ds:dword_6C26D4, 2
		jnz	short loc_71F9BE
		mov	ds:_PopCriticalShutdownInProgress, 1

loc_71F9BE:				; CODE XREF: PAGELK:0071F9B5j
		push	2
		pop	edx
		push	8
		pop	ecx
		call	_PopTransitionCheckpoint@8 ; PopTransitionCheckpoint(x,x)
		call	_PsGetCurrentProcess@0 ; PsGetCurrentProcess()
		push	ebx
		cmp	eax, ds:_PsInitialSystemProcess
		jz	loc_71FB63
		push	offset _PopShutdownWorkItem
		mov	ds:dword_6C0558, offset	_PopGracefulShutdown@4 ; PopGracefulShutdown(x)
		mov	ds:dword_6C055C, ebx
		mov	ds:_PopShutdownWorkItem, ebx
		call	ExQueueWorkItem
		mov	ecx, large fs:124h
		call	KeSuspendThread
		mov	eax, 0C00002EBh
		jmp	loc_71FB5E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FA11:				; CODE XREF: PAGELK:0071ED6Cj
		mov	[esi+60h], ebx
		jmp	loc_71F133
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FA19:				; CODE XREF: PAGELK:0071F378j
		push	2
		pop	eax
		or	ds:_PopAction, al
		mov	ds:dword_6C26C4, eax
		mov	ds:dword_6C26C8, 5
		jmp	short loc_71FA97
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FA33:				; CODE XREF: PAGELK:0071F358j
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_71FA5B
		mov	eax, ds:dword_6C2710
		or	eax, ds:dword_6C2714
		jnz	short loc_71FABA
		mov	eax, ds:dword_6C2700
		mov	ds:dword_6C2710, eax
		mov	eax, ds:dword_6C2704
		mov	ds:dword_6C2714, eax
		jmp	short loc_71FABA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FA5B:				; CODE XREF: PAGELK:0071FA36j
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_71FA6E
		mov	ds:_PopWakeAlarmTimeOverride, ebx
		mov	ds:dword_6C219C, ebx
		jmp	short loc_71FABA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FA6E:				; CODE XREF: PAGELK:0071FA5Ej
		cmp	ds:dword_6C2D0C, 1
		jnz	short loc_71FA9F
		cmp	[esi+144h], ebx
		jnz	short loc_71FABA
		mov	eax, [esi]
		or	dl, 2
		mov	ds:dword_6C26C4, eax
		mov	eax, [esi+4]
		mov	ds:_PopAction, dl

loc_71FA92:				; CODE XREF: PAGELK:0071F38Fj
		mov	ds:dword_6C26C8, eax

loc_71FA97:				; CODE XREF: PAGELK:0071FA31j
		mov	[esi+0E8h], bl
		jmp	short loc_71FABA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FA9F:				; CODE XREF: PAGELK:0071FA75j
		cmp	[esi+144h], ebx
		jnz	short loc_71FABA
		mov	eax, [esi+84h]
		cmp	eax, [esi+88h]
		jnz	short loc_71FABA
		call	_PopCheckPowerSourceAfterRtcWakeSet@0 ;	PopCheckPowerSourceAfterRtcWakeSet()

loc_71FABA:				; CODE XREF: PAGELK:0071F2FCj
					; PAGELK:0071F31Bj ...
		cmp	ds:byte_6C2768,	bl
		jz	short loc_71FAE1
		cmp	[esi+0E8h], bl
		jz	short loc_71FAE1
		call	ExWakeTimersResume
		mov	ds:byte_6C2768,	bl
		mov	ds:dword_6C2770, ebx
		mov	ds:dword_6C2774, ebx

loc_71FAE1:				; CODE XREF: PAGELK:0071FAC0j
					; PAGELK:0071FAC8j
		cmp	ds:_PoResumeFromHibernate, bl
		jz	short loc_71FAF4
		call	_PopBootLoaderTraceProcess@0 ; PopBootLoaderTraceProcess()
		mov	ds:_PoResumeFromHibernate, bl

loc_71FAF4:				; CODE XREF: PAGELK:0071FAE7j
		mov	ds:byte_6C24D0,	bl
		call	_PopResetActionDefaults@0 ; PopResetActionDefaults()
		mov	cl, 2
		call	_PopSetPowerActionState@4 ; PopSetPowerActionState(x)
		call	_PopReleasePolicyLock@0	; PopReleasePolicyLock()
		mov	eax, ds:_PopPendingUserPresenceDuringSystemSleep
		test	eax, eax
		jz	short loc_71FB1F
		mov	eax, ds:_PopPendingUserPresenceMonitorOnReason
		push	eax
		call	PoSetUserPresent

loc_71FB1F:				; CODE XREF: PAGELK:0071FB12j
		push	1
		push	offset _PopUnlockAfterSleepWorkItem
		call	ExQueueWorkItem
		call	PopCheckForWork
		cmp	[esi+60h], ebx
		jl	short loc_71FB3A
		call	_PpmPerfReApplyStates@0	; PpmPerfReApplyStates()

loc_71FB3A:				; CODE XREF: PAGELK:0071FB33j
		mov	ds:dword_6C26D4, 10h
		call	_PopCaptureTimeOnProcZero@0 ; PopCaptureTimeOnProcZero()
		mov	ds:dword_6C29D0, eax
		mov	ds:dword_6C29D4, edx
		jmp	loc_71EC29
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FB59:				; CODE XREF: PAGELK:0071EACAj
					; PAGELK:0071EAD8j ...
		mov	eax, 0C000000Dh

loc_71FB5E:				; CODE XREF: PAGELK:0071EB2Dj
					; PAGELK:0071EB3Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FB63:				; CODE XREF: PAGELK:0071F9D5j
		call	_PopGracefulShutdown@4 ; PopGracefulShutdown(x)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 2 dup(0CCh)

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopSetDevicesSystemState proc near	; CODE XREF: PAGELK:0071EF5Ep
					; PAGELK:0071F1F2p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729741 SIZE 0000000D BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	al, ds:byte_6C26DD
		mov	ecx, ds:dword_6C26CC
		mov	[ebp+var_7], al
		mov	al, ds:byte_6C26C2
		mov	[ebp+var_8], al
		mov	al, ds:byte_6C26DC
		mov	[ebp+var_6], al
		mov	eax, ds:dword_6C26EC
		mov	[ebp+var_20], eax
		mov	eax, ds:dword_6C26E8
		mov	[ebp+var_5], 0
		mov	[ebp+var_1C], eax
		test	cl, 8
		jz	loc_729741
		mov	[ebp+var_18], 6

loc_71FBBE:				; CODE XREF: PopSetDevicesSystemState+9BDFj
		mov	eax, ds:dword_6C26E4
		mov	[ebp+var_14], eax
		mov	eax, ds:dword_6C26C4
		mov	[ebp+var_C], ecx
		lea	ecx, [ebp+var_20]
		mov	[ebp+var_10], eax
		call	PoBroadcastSystemState
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
PopSetDevicesSystemState endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfPowerActionNotify proc near		; CODE XREF: PAGELK:0071F1AAp
					; PAGELK:0071F1EDp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_34		= dword	ptr  3Ch

; FUNCTION CHUNK AT 0072974E SIZE 00000021 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 0Ch
		push	ebx
		xor	ebx, ebx
		lea	eax, [ecx+ecx]
		push	esi
		xor	esi, esi
		mov	[esp+14h+var_8], eax
		inc	ebx
		mov	[esp+14h+var_4], esi
		push	edi
		test	dl, bl
		jnz	short loc_71FC4B

loc_71FC08:				; CODE XREF: PfPowerActionNotify+6Bj
		sub	ecx, esi
		jz	loc_71FD30
		sub	ecx, 1
		jz	loc_71FCB2
		sub	ecx, 1
		jz	short loc_71FC63
		sub	ecx, 5
		jz	short loc_71FC53

loc_71FC23:				; CODE XREF: PfPowerActionNotify+76j
					; PfPowerActionNotify+C4j ...
		call	_PFP_GET_CURRENT_TICK_COUNT_MS@0 ; PFP_GET_CURRENT_TICK_COUNT_MS()
		mov	[esp+18h+var_4], eax

loc_71FC2C:				; CODE XREF: PfPowerActionNotify+145j
		push	8		; size_t
		lea	eax, [esp+1Ch+var_8]
		push	eax		; void *
		call	_PFP_GET_CURRENT_TIME@0	; PFP_GET_CURRENT_TIME()
		push	1Ch
		mov	edx, eax
		pop	ecx
		call	PfLogEvent

loc_71FC42:				; CODE XREF: PfPowerActionNotify+CAj
					; PfPowerActionNotify+D5j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FC4B:				; CODE XREF: PfPowerActionNotify+20j
		or	eax, ebx
		mov	[esp+18h+var_8], eax
		jmp	short loc_71FC08
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FC53:				; CODE XREF: PfPowerActionNotify+3Bj
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFFEh
		cmp	eax, 2
		ja	short loc_71FC23
		jmp	loc_72974E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FC63:				; CODE XREF: PfPowerActionNotify+36j
		mov	edi, offset unk_6D4870
		mov	ecx, edi
		call	_PfpPowerActionStartScenarioTracing@4 ;	PfpPowerActionStartScenarioTracing(x)
		cmp	ds:dword_6D488C, 5
		jnz	short loc_71FC80
		push	4
		pop	ecx
		call	PfSnBeginBootPhase

loc_71FC80:				; CODE XREF: PfPowerActionNotify+90j
		push	esi
		push	esi
		mov	edx, ebx
		mov	ecx, edi
		call	PfpScenCtxScenarioSet
		push	esi
		push	esi
		push	2
		pop	edx
		mov	ecx, edi
		call	PfpScenCtxScenarioSet
		push	esi
		push	esi
		push	5
		pop	edx
		mov	ecx, edi
		call	PfpScenCtxScenarioSet
		call	PfpStartLoggingHardFaultEvents
		test	eax, eax
		jns	loc_71FC23
		jmp	short loc_71FC42
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FCB2:				; CODE XREF: PfPowerActionNotify+2Dj
		mov	esi, [ebp+arg_0]
		lea	eax, [esi-2]
		cmp	eax, 3
		ja	short loc_71FC42
		mov	ecx, ebx
		call	MmPerformMemoryListCommand
		push	10h
		pop	ecx
		call	PfTSetTraceWorkerPriority
		mov	edx, ebx
		mov	ecx, offset dword_6D42C0
		mov	edi, eax
		call	PfGenerateTrace
		cmp	edi, 1Fh
		jg	short loc_71FCE6
		mov	ecx, edi
		call	PfTSetTraceWorkerPriority

loc_71FCE6:				; CODE XREF: PfPowerActionNotify+F7j
		cmp	esi, 5
		jnz	loc_729765
		mov	ecx, ds:dword_6D488C
		mov	eax, ds:dword_6D46B8
		cmp	ecx, esi
		jnz	short loc_71FD03
		mov	eax, ds:dword_6D46BC

loc_71FD03:				; CODE XREF: PfPowerActionNotify+116j
		xor	ebx, ebx
		cmp	ecx, 5
		setz	bl
		dec	ebx
		and	ebx, 0FFFFFFFDh
		add	ebx, 5

loc_71FD12:				; CODE XREF: PfPowerActionNotify+9B84j
		push	ecx
		push	eax
		mov	edx, ebx
		mov	ecx, offset unk_6D4870
		call	PfpScenCtxPrefetchWait
		push	0
		mov	[esp-24h+arg_34], eax
		call	PfpServiceMainThreadUnboost
		jmp	loc_71FC2C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FD30:				; CODE XREF: PfPowerActionNotify+24j
		mov	ecx, [ebp+arg_0]
		lea	eax, [ecx-2]
		cmp	eax, 2
		jbe	short loc_71FD54
		cmp	ecx, 5
		jnz	loc_71FC42
		and	dl, 4
		movzx	ebx, dl
		neg	ebx
		sbb	ebx, ebx
		and	ebx, 3
		add	ebx, 2

loc_71FD54:				; CODE XREF: PfPowerActionNotify+153j
		push	esi
		push	ebx
		xor	edx, edx
		mov	ecx, offset unk_6D4870
		call	PfpScenCtxScenarioSet
		jmp	loc_71FC42
PfPowerActionNotify endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopSetupSleepNotifies(x)
_PopSetupSleepNotifies@4 proc near	; CODE XREF: PoBroadcastSystemState+119p
		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		push	4
		pop	edi
		lea	esi, [ecx+0CCh]

loc_71FD76:				; CODE XREF: PopSetupSleepNotifies(x)+78j
		lea	ebx, [esi+8]
		mov	ecx, esi
		mov	edx, ebx
		call	_PopMoveList@8	; PopMoveList(x,x)
		lea	edx, [ebx+10h]
		mov	ecx, esi
		call	_PopMoveList@8	; PopMoveList(x,x)
		lea	edx, [ebx+8]
		mov	ecx, esi
		call	_PopMoveList@8	; PopMoveList(x,x)
		mov	edx, [esi]

loc_71FD98:				; CODE XREF: PopSetupSleepNotifies(x)+46j
					; PopSetupSleepNotifies(x)+6Aj
		cmp	edx, esi
		jz	short loc_71FDD4
		mov	ecx, edx
		mov	edx, [edx]
		mov	eax, [ecx+34h]
		mov	[ecx+38h], eax
		mov	eax, [ecx+2Ch]
		mov	[ecx+30h], eax
		test	eax, eax
		jnz	short loc_71FD98
		cmp	[edx+4], ecx
		jnz	short loc_71FDE6
		mov	eax, [ecx+4]
		cmp	[eax], ecx
		jnz	short loc_71FDE6
		mov	[eax], edx
		mov	[edx+4], eax
		mov	eax, [ebx+4]
		cmp	[eax], ebx
		jnz	short loc_71FDE6
		mov	[ecx], ebx
		mov	[ecx+4], eax
		mov	[eax], ecx
		mov	[ebx+4], ecx
		jmp	short loc_71FD98
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FDD4:				; CODE XREF: PopSetupSleepNotifies(x)+32j
		mov	eax, [esi-8]
		mov	[esi-4], eax
		sub	esi, 28h
		sub	edi, 1
		jns	short loc_71FD76
		pop	edi
		pop	esi
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FDE6:				; CODE XREF: PopSetupSleepNotifies(x)+4Bj
					; PopSetupSleepNotifies(x)+52j	...
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
					; AL = character to display
		int	3		; Trap to Debugger
_PopSetupSleepNotifies@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopMoveList(x, x)
_PopMoveList@8	proc near		; CODE XREF: PopSetupSleepNotifies(x)+15p
					; PopSetupSleepNotifies(x)+1Fp	...
		mov	edi, edi
		push	esi

loc_71FDEF:				; CODE XREF: PopMoveList(x,x)+2Bj
		mov	eax, [edx]
		cmp	eax, edx
		jz	short loc_71FE19
		cmp	[eax+4], edx
		jnz	short loc_71FE1B
		mov	esi, [eax]
		cmp	[esi+4], eax
		jnz	short loc_71FE1B
		mov	[edx], esi
		mov	[esi+4], edx
		mov	esi, [ecx+4]
		cmp	[esi], ecx
		jnz	short loc_71FE1B
		mov	[eax], ecx
		mov	[eax+4], esi
		mov	[esi], eax
		mov	[ecx+4], eax
		jmp	short loc_71FDEF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FE19:				; CODE XREF: PopMoveList(x,x)+7j
		pop	esi
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FE1B:				; CODE XREF: PopMoveList(x,x)+Cj
					; PopMoveList(x,x)+13j	...
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
_PopMoveList@8	endp			; AL = character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

ExUpdateSystemTimeFromCmos proc	near	; CODE XREF: PAGELK:0071F17Dp
					; PAGELK:0071F837p ...

var_36		= byte ptr -36h
var_32		= byte ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072976F SIZE 00000018 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 34h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+34h+var_4], eax
		xor	eax, eax
		mov	[esp+3], cl
		mov	[esp+34h+var_20], eax
		mov	[esp+34h+var_1C], eax
		mov	[esp+34h+var_28], eax
		mov	[esp+34h+var_24], eax
		mov	[esp+34h+var_30], eax
		mov	[esp+34h+var_2C], eax
		push	ebx
		push	esi
		push	edi
		lea	edi, [esp+40h+var_14]
		stosd
		stosd
		stosd
		stosd
		test	edx, edx
		jz	loc_72976F

loc_71FE67:				; CODE XREF: ExUpdateSystemTimeFromCmos+9955j
		mov	eax, edx
		mov	ecx, (offset loc_98967E+2)
		mul	ecx
		mov	ebx, eax
		mov	[esp+40h+var_18], edx
		lea	eax, [esp+40h+var_14]
		push	eax
		call	ds:__imp__HalQueryRealTimeClock@4 ; HalQueryRealTimeClock(x)
		test	al, al
		jz	short loc_71FF00
		lea	eax, [esp+44h+var_2C]
		push	eax
		lea	eax, [esp+48h+var_18]
		push	eax
		call	_RtlTimeFieldsToTime@8 ; RtlTimeFieldsToTime(x,x)
		test	al, al
		jz	short loc_71FF00
		cmp	ds:_ExpRealTimeIsUniversal, 0
		jnz	loc_72977A
		lea	eax, [esp+44h+var_24]
		push	eax
		lea	eax, [esp+48h+var_2C]
		push	eax
		call	_ExLocalTimeToSystemTime@8 ; ExLocalTimeToSystemTime(x,x)
		mov	edi, [esp+44h+var_20]
		mov	esi, [esp+44h+var_24]

loc_71FEBC:				; CODE XREF: ExUpdateSystemTimeFromCmos+9962j
		lea	eax, [esp+10h]
		push	eax
		call	KeQuerySystemTime
		cmp	edi, [esp+44h+var_30]
		jl	short loc_71FF12
		jg	short loc_71FED4
		cmp	esi, [esp+10h]
		jbe	short loc_71FF12

loc_71FED4:				; CODE XREF: ExUpdateSystemTimeFromCmos+ACj
		mov	eax, esi
		mov	ecx, edi
		sub	eax, [esp+10h]
		sbb	ecx, [esp+44h+var_30]

loc_71FEE0:				; CODE XREF: ExUpdateSystemTimeFromCmos+FEj
		cmp	ecx, [esp+44h+var_1C]
		jb	short loc_71FF00
		ja	short loc_71FEEC
		cmp	eax, ebx
		jbe	short loc_71FF00

loc_71FEEC:				; CODE XREF: ExUpdateSystemTimeFromCmos+C6j
		mov	dl, [esp+0Fh]
		lea	eax, [esp+10h]
		push	edi
		push	esi
		push	eax
		push	2
		xor	cl, cl
		call	ExpSetSystemTime

loc_71FF00:				; CODE XREF: ExUpdateSystemTimeFromCmos+63j
					; ExUpdateSystemTimeFromCmos+76j ...
		mov	ecx, [esp+44h+var_8]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_71FF12:				; CODE XREF: ExUpdateSystemTimeFromCmos+AAj
					; ExUpdateSystemTimeFromCmos+B2j
		mov	eax, [esp+10h]
		mov	ecx, [esp+44h+var_30]
		sub	eax, esi
		sbb	ecx, edi
		jmp	short loc_71FEE0
ExUpdateSystemTimeFromCmos endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopDiagTraceFlushSleepStudyLoggerEnd()
_PopDiagTraceFlushSleepStudyLoggerEnd@0	proc near
					; CODE XREF: PopUmpoSendFlushSleepStudyLoggerNotification()+57p
		mov	ecx, offset _POP_ETW_EVENT_FLUSHSLEEPSTUDYLOGGER_STOP
		jmp	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
_PopDiagTraceFlushSleepStudyLoggerEnd@0	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopDiagTraceFlushSleepStudyLogger()
_PopDiagTraceFlushSleepStudyLogger@0 proc near
					; CODE XREF: PopUmpoSendFlushSleepStudyLoggerNotification()+1Bp
		mov	ecx, offset _POP_ETW_EVENT_FLUSHSLEEPSTUDYLOGGER_START
		jmp	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
_PopDiagTraceFlushSleepStudyLogger@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

ExpSetSystemTime proc near		; CODE XREF: ExUpdateSystemTimeFromCmos+DBp
					; NtSetSystemTime(x,x)+152p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

; FUNCTION CHUNK AT 00729787 SIZE 0000006D BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 24h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+24h+var_4], eax
		and	[esp+24h+var_20], 0
		xor	eax, eax
		and	[esp+24h+var_1C], 0
		cmp	ds:_ExpRealTimeIsUniversal, 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	bl, dl
		push	edi
		lea	edi, [esp+30h+var_14]
		mov	bh, cl
		stosd
		stosd
		stosd
		stosd
		jnz	loc_729787
		lea	eax, [esp+30h+var_20]
		push	eax
		lea	eax, [ebp+arg_8]
		push	eax
		call	_ExSystemTimeToLocalTime@8 ; ExSystemTimeToLocalTime(x,x)

loc_71FF83:				; CODE XREF: ExpSetSystemTime+9861j
		movzx	eax, bl
		lea	ecx, [ebp+arg_8]
		neg	eax
		mov	edx, esi
		sbb	eax, eax
		and	eax, 3
		push	eax
		call	_KeSetSystemTime@12 ; KeSetSystemTime(x,x,x)
		test	bh, bh
		jnz	loc_72979A

loc_71FFA0:				; CODE XREF: ExpSetSystemTime+9874j
					; ExpSetSystemTime+98BBj
		push	[ebp+arg_0]
		mov	edx, esi
		lea	ecx, [ebp+arg_8]
		call	_PoNotifySystemTimeSet@12 ; PoNotifySystemTimeSet(x,x,x)
		mov	ecx, [esp+30h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn	10h
ExpSetSystemTime endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfpScenCtxPrefetchWait proc near	; CODE XREF: PfPowerActionNotify+135p
					; PfpProcessScenarioPhase+ACC62p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 007297F4 SIZE 000000AE BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		xor	eax, eax
		mov	[ebp+var_18], edx
		push	esi
		mov	ebx, ecx
		mov	[ebp+var_28], eax
		push	edi
		mov	[ebp+var_14], ebx
		mov	[ebp+var_24], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_4], eax
		call	_PFP_CAN_DO_ACCESS_LOGGING@0 ; PFP_CAN_DO_ACCESS_LOGGING()
		mov	edi, eax
		neg	edi
		sbb	edi, edi
		and	edi, 7D0h
		or	esi, 0FFFFFFFFh
		mov	[ebp+var_8], edi

loc_71FFFA:				; CODE XREF: PfpScenCtxPrefetchWait+98DBj
		mov	eax, large fs:124h
		dec	word ptr [eax+13Ch]
		nop
		xor	edx, edx
		mov	ecx, ebx
		call	ExAcquirePushLockExclusiveEx
		mov	eax, [ebp+var_18]
		cmp	[ebx+1Ch], eax
		jnz	short loc_72004F
		mov	eax, [ebx+4]
		and	al, 0Ch
		cmp	al, 8
		jz	short loc_72004F
		cmp	[ebp+var_10], 0
		jnz	short loc_72007B
		lea	eax, [ebx+8]
		push	eax
		mov	[ebp+var_1C], eax
		call	_KeResetEvent@4	; KeResetEvent(x)
		mov	ecx, [ebx+4]
		xor	edx, edx
		mov	eax, ecx
		inc	edx
		and	eax, 3
		cmp	eax, edx
		jz	loc_7297F4
		test	eax, eax
		jz	loc_729803

loc_72004F:				; CODE XREF: PfpScenCtxPrefetchWait+55j
					; PfpScenCtxPrefetchWait+5Ej ...
		or	eax, 0FFFFFFFFh
		lock xadd [ebx], eax
		and	al, 6
		cmp	al, 2
		jnz	short loc_720063
		mov	ecx, ebx
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)

loc_720063:				; CODE XREF: PfpScenCtxPrefetchWait+98j
		mov	ecx, ebx
		call	KeAbPostRelease
		call	_KeLeaveCriticalRegion@0 ; KeLeaveCriticalRegion()
		mov	ecx, [ebp+var_4]

loc_720072:				; CODE XREF: PfpScenCtxPrefetchWait+98C6j
		pop	edi
		pop	esi
		mov	eax, ecx
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72007B:				; CODE XREF: PfpScenCtxPrefetchWait+64j
					; PfpScenCtxPrefetchWait+9843j
		mov	ecx, ebx
		call	PfpScenCtxWaiterTimedOut
		jmp	short loc_72004F
PfpScenCtxPrefetchWait endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfpStartLoggingHardFaultEvents proc near ; CODE	XREF: PfPowerActionNotify+BDp

var_2		= byte ptr -2
var_1		= byte ptr -1

; FUNCTION CHUNK AT 007298A2 SIZE 00000019 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	edi
		push	44506650h
		push	60h
		push	200h
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	edi, eax
		test	edi, edi
		jz	loc_7298A2
		xor	ebx, ebx
		push	esi
		mov	[edi+58h], ebx
		call	ds:__imp__KeRaiseIrqlToDpcLevel@0 ; KeRaiseIrqlToDpcLevel()
		mov	esi, offset unk_6D48B0
		mov	[ebp+var_1], al
		mov	ecx, esi
		call	_KxAcquireSpinLock@4 ; KxAcquireSpinLock(x)
		mov	edx, ds:dword_6D48B8
		mov	eax, offset byte_6FB62C
		inc	edx
		mov	ds:dword_6D48B8, edx
		mov	[edi+5Ch], edx
		xor	edx, edx
		inc	edx
		lock or	[eax], edx
		test	ds:byte_70EFC6,	dl
		jnz	loc_7298AC
		xor	eax, eax
		lock and [esi],	eax

loc_7200EE:				; CODE XREF: PfpStartLoggingHardFaultEvents+9832j
		mov	cl, [ebp+var_1]
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		push	ebx
		lea	esi, [edi+20h]
		push	esi
		call	_KeInitializeTimerEx@8 ; KeInitializeTimerEx(x,x)
		push	edi
		push	offset PfpPowerActionDpcRoutine
		push	edi
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		push	0FFFFFFFFh
		push	0F4143E00h
		push	edi
		push	ebx
		xor	edx, edx
		mov	ecx, esi
		call	KiSetTimerEx
		pop	esi

loc_720120:				; CODE XREF: PfpStartLoggingHardFaultEvents+9823j
		pop	edi
		mov	eax, ebx
		pop	ebx
		leave
		retn
PfpStartLoggingHardFaultEvents endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PfpPowerActionStartScenarioTracing(x)
_PfpPowerActionStartScenarioTracing@4 proc near	; CODE XREF: PfPowerActionNotify+84p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		push	edi
		mov	esi, ecx
		mov	edi, offset _PfTGlobals
		push	4
		mov	ecx, edi
		call	_PfTAccessTracingCleanup@12 ; PfTAccessTracingCleanup(x,x,x)
		xor	ecx, ecx
		inc	ecx
		call	MmPerformMemoryListCommand
		push	4
		mov	edx, offset _PfKernelGlobals
		mov	ecx, edi
		call	_PfTAccessTracingStart@12 ; PfTAccessTracingStart(x,x,x)
		mov	eax, [esi+1Ch]
		xor	ecx, ecx
		mov	[ebp+var_8], eax
		and	ecx, 0FFFC0000h
		movzx	eax, word ptr [esi+20h]
		shl	eax, 2
		or	eax, ecx
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_8]
		push	8		; size_t
		push	eax		; void *
		call	_PFP_GET_CURRENT_TIME@0	; PFP_GET_CURRENT_TIME()
		push	1Bh
		mov	edx, eax
		pop	ecx
		call	PfLogEvent
		pop	edi
		pop	esi
		leave
		retn
_PfpPowerActionStartScenarioTracing@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PfTAccessTracingCleanup(x, x, x)
_PfTAccessTracingCleanup@12 proc near	; CODE XREF: PfpPowerActionStartScenarioTracing(x)+14p
					; PAGE:008D8A30p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, large fs:124h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		cmp	esi, 4
		push	edi
		setz	byte ptr [ebp+arg_0+3]
		mov	edi, ecx
		dec	word ptr [eax+13Ch]
		nop
		lea	ebx, [edi+0Ch]
		xor	edx, edx
		mov	ecx, ebx
		call	ExAcquirePushLockExclusiveEx
		or	[edi+8], esi
		call	_MmGetDefaultPagePriority@0 ; MmGetDefaultPagePriority()
		mov	edx, eax
		xor	ecx, ecx
		call	MmSetAccessLogging
		and	ds:dword_6FB61C, 0
		mov	ecx, offset unk_6FB608
		call	@ExWaitForRundownProtectionRelease@4 ; ExWaitForRundownProtectionRelease(x)
		mov	ecx, offset unk_6FB620
		call	@ExInterlockedFlushSList@4 ; ExInterlockedFlushSList(x)
		mov	esi, eax
		test	esi, esi
		jz	short loc_7201FD
		mov	bl, byte ptr [ebp+arg_0+3]

loc_7201EB:				; CODE XREF: PfTAccessTracingCleanup(x,x,x)+70j
		mov	ecx, esi
		mov	dl, bl
		mov	esi, [esi]
		call	_MmFreeAccessPfnBuffer@8 ; MmFreeAccessPfnBuffer(x,x)
		test	esi, esi
		jnz	short loc_7201EB
		lea	ebx, [edi+0Ch]

loc_7201FD:				; CODE XREF: PfTAccessTracingCleanup(x,x,x)+5Ej
		xor	cl, cl
		call	_MmEnablePeriodicAccessClearing@4 ; MmEnablePeriodicAccessClearing(x)
		and	ds:dword_6FB61C, 0
		xor	eax, eax
		mov	ecx, offset unk_6FB608
		xchg	eax, [ecx]
		or	eax, 0FFFFFFFFh
		lock xadd [ebx], eax
		and	al, 6
		cmp	al, 2
		jnz	short loc_720228
		mov	ecx, ebx
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)

loc_720228:				; CODE XREF: PfTAccessTracingCleanup(x,x,x)+97j
		mov	ecx, ebx
		call	KeAbPostRelease
		call	_KeLeaveCriticalRegion@0 ; KeLeaveCriticalRegion()
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
_PfTAccessTracingCleanup@12 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopDiagComputeEarlyHiberStats()
_PopDiagComputeEarlyHiberStats@0 proc near ; CODE XREF:	PAGELK:0071F1BFp
		mov	edi, edi
		push	ecx
		push	esi
		push	edi
		call	_PopCaptureTimeOnProcZero@0 ; PopCaptureTimeOnProcZero()
		xor	ecx, ecx
		mov	ds:dword_6C29C8, eax
		mov	ds:dword_6C29CC, edx
		call	_KeGetPrcb@4	; KeGetPrcb(x)
		mov	dl, 1
		mov	ecx, eax
		call	_KeQueryCycleCounterFrequency@8	; KeQueryCycleCounterFrequency(x,x)
		mov	ecx, eax
		mov	edi, 3E8h
		mov	eax, edx
		mul	edi
		mov	esi, eax
		mov	eax, ecx
		mul	edi
		add	esi, edx
		mov	ds:dword_6C2990, eax
		mov	ds:dword_6C2994, esi
		call	_HvlQueryHypervisorTscAdjustment@0 ; HvlQueryHypervisorTscAdjustment()
		mov	ecx, ds:dword_6C2988
		mov	esi, eax
		mov	eax, ds:dword_6C298C
		sub	ecx, esi
		mov	ds:dword_6C2988, ecx
		sbb	eax, edx
		mov	ds:dword_6C29B8, esi
		sub	ecx, ds:dword_6C2920
		mov	ds:dword_6C298C, eax
		sbb	eax, ds:dword_6C2924
		add	esi, ds:dword_6C29B0
		mov	ds:dword_6C29BC, edx
		adc	edx, ds:dword_6C29B4
		sub	ds:dword_6C29A0, esi
		pop	edi
		sbb	ds:dword_6C29A4, edx
		sub	ds:dword_6C29C0, esi
		mov	ds:dword_6C2918, ecx
		sbb	ds:dword_6C29C4, edx
		sub	ds:dword_6C29C8, esi
		mov	ds:dword_6C291C, eax
		sbb	ds:dword_6C29CC, edx
		pop	esi
		pop	ecx
		retn
_PopDiagComputeEarlyHiberStats@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopQpcTimeInMs	proc near		; CODE XREF: PopPowerTransitionTimesInMs(x,x,x,x,x,x)+45p
					; PopPowerTransitionTimesInMs(x,x,x,x,x,x)+5Dp	...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 007298BB SIZE 00000020 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		mov	ebx, [edx+4]
		push	esi
		push	edi
		mov	edi, [edx]
		xor	esi, esi
		mov	eax, edi
		mov	[ebp+var_8], esi
		or	eax, ebx
		mov	[ebp+var_4], esi
		jz	short loc_72034B
		sub	edi, [ecx]
		push	esi
		sbb	ebx, [ecx+4]
		lea	ecx, [ebp+var_8]
		push	3E8h
		push	ebx
		push	edi
		call	_RtlULongLongMult@20 ; RtlULongLongMult(x,x,x,x,x)
		test	eax, eax
		js	loc_7298BB
		push	ds:dword_70ED2C
		push	ds:_PopQpcFrequency
		push	[ebp+var_4]
		push	[ebp+var_8]

loc_720344:				; CODE XREF: PopQpcTimeInMs+95DEj
		call	__aulldiv
		mov	esi, eax

loc_72034B:				; CODE XREF: PopQpcTimeInMs+1Bj
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		leave
		retn
PopQpcTimeInMs	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopCaptureTimeOnProcZero()
_PopCaptureTimeOnProcZero@0 proc near	; CODE XREF: PAGELK:0071FB44p
					; PopDiagComputeEarlyHiberStats()+5p ...

var_38		= dword	ptr -38h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 38h
		push	esi
		push	edi
		xor	eax, eax
		lea	edi, [ebp+var_18]
		stosd
		xor	esi, esi
		push	8
		pop	ecx
		push	esi
		stosd
		push	1
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		stosd
		stosd
		xor	eax, eax
		lea	edi, [ebp+var_38]
		rep stosd
		lea	eax, [ebp+var_18]
		push	eax
		call	_KeInitializeEvent@12 ;	KeInitializeEvent(x,x,x)
		push	esi
		push	offset _PopTimestampTargetProcessor@16 ; PopTimestampTargetProcessor(x,x,x,x)
		lea	eax, [ebp+var_38]
		push	eax
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	eax, [ebp+var_1C]
		mov	byte ptr [ebp+var_38+1], 2
		test	eax, eax
		jnz	short loc_7203A4
		push	20h
		pop	eax
		mov	word ptr [ebp+var_38+2], ax

loc_7203A4:				; CODE XREF: PopCaptureTimeOnProcZero()+49j
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	_KeInsertQueueDpc@12 ; KeInsertQueueDpc(x,x,x)
		push	esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_18]
		push	eax
		call	KeWaitForSingleObject
		mov	eax, [ebp+var_8]
		mov	edx, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
_PopCaptureTimeOnProcZero@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopReleaseAwaymodeLock()
_PopReleaseAwaymodeLock@0 proc near	; CODE XREF: PopIssueActionRequest:loc_85AAFDp
					; PopIssueActionRequest:loc_9022A7p ...
		mov	eax, ds:_PopAwaymodeLockExclusiveThread
		cmp	eax, large fs:124h
		jnz	short loc_7203E1
		and	ds:_PopAwaymodeLockExclusiveThread, 0

loc_7203E1:				; CODE XREF: PopReleaseAwaymodeLock()+Cj
		xor	edx, edx
		mov	ecx, offset _PopAwaymodeLock
		call	ExReleasePushLockEx
		mov	ecx, large fs:124h
		jmp	_KiLeaveCriticalRegionUnsafe@4 ; KiLeaveCriticalRegionUnsafe(x)
_PopReleaseAwaymodeLock@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopAcquireAwaymodeLock()
_PopAcquireAwaymodeLock@0 proc near	; CODE XREF: PopIssueActionRequest+39p
					; PopAwayModePowerRequest(x,x,x)+5p
		mov	eax, large fs:124h
		dec	word ptr [eax+13Ch]
		nop
		xor	edx, edx
		mov	ecx, offset _PopAwaymodeLock
		call	ExAcquirePushLockExclusiveEx
		mov	eax, large fs:124h
		mov	ds:_PopAwaymodeLockExclusiveThread, eax
		retn
_PopAcquireAwaymodeLock@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MiConvertHiberPhasePages(x)
_MiConvertHiberPhasePages@4 proc near	; CODE XREF: PopInvokeSystemStateHandler+33Cp
					; PopMarkComponentsBootPhase+166p

var_58		= dword	ptr -58h
var_52		= byte ptr -52h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	esi
		push	4Ch		; size_t
		lea	eax, [ebp+var_58]
		mov	esi, ecx
		push	0		; int
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		mov	[ebp+var_18], offset MiConvertHiberPhasePte
		mov	eax, 0B01h
		mov	word ptr [ebp+var_58], ax
		push	3
		pop	ecx
		call	_MiGetAnyMultiplexedVm@4 ; MiGetAnyMultiplexedVm(x)
		or	[ebp+var_40], 0FFFFFFFFh
		lea	ecx, [ebp+var_58]
		mov	[ebp+var_48], eax
		mov	eax, ds:_MmSystemRangeStart
		mov	[ebp+var_52], 21h
		mov	[ebp+var_44], eax
		mov	[ebp+var_10], esi
		call	MiWalkPageTables
		test	esi, esi
		jz	short loc_720486
		xor	ecx, ecx
		call	KeFlushCurrentTbOnly

loc_720486:				; CODE XREF: MiConvertHiberPhasePages(x)+5Dj
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		pop	esi
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
_MiConvertHiberPhasePages@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall BgkResumeFinished()
_BgkResumeFinished@0 proc near		; CODE XREF: BgkNotifyDisplayOwnershipChange+E6p
					; PopFreeHiberContext+147p
		mov	edi, edi
		push	ecx
		cmp	ds:dword_6D4AB4, 0
		jnz	short loc_7204A7
		call	BgkpUnlockBgfxCodeSection
		pop	ecx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7204A7:				; CODE XREF: BgkResumeFinished()+Aj
		call	_BgFreeContext@4 ; BgFreeContext(x)
		and	ds:dword_6D4AB4, 0
		call	BgkpUnlockBgfxCodeSection
		mov	ds:byte_6D4AB8,	0
		pop	ecx
		retn
_BgkResumeFinished@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopUnlockAfterSleepWorker(x)
_PopUnlockAfterSleepWorker@4 proc near	; DATA XREF: PAGELK:0071EBE8o
		mov	eax, large fs:124h
		mov	cl, 1
		mov	ds:dword_6C2830, eax
		call	CmSetLazyFlushState
		mov	cl, 1
		call	_ExSwapinWorkerThreads@4 ; ExSwapinWorkerThreads(x)
		push	1
		push	3
		push	ds:_ExCbPowerState
		call	_ExNotifyCallback@12 ; ExNotifyCallback(x,x,x)
		call	_PopRunNormalIrpWorkers@0 ; PopRunNormalIrpWorkers()
		push	ds:_ExPageLockHandle
		call	_MmUnlockPagableImageSection@4 ; MmUnlockPagableImageSection(x)
		xor	cl, cl
		call	_RtlBootStatusDisableFlushing@4	; RtlBootStatusDisableFlushing(x)
		call	_PopClearTransitionCheckpoints@0 ; PopClearTransitionCheckpoints()
		call	_PopClearSleepMarker@0 ; PopClearSleepMarker()
		xor	cl, cl
		call	PopClearSystemSleepCheckpoint
		call	_PopClearShutdownMarker@0 ; PopClearShutdownMarker()
		call	_PopClearSystemShutdownMarker@0	; PopClearSystemShutdownMarker()
		call	PopFreeHiberContext
		call	_PopAcquirePolicyLock@0	; PopAcquirePolicyLock()
		cmp	ds:byte_6C2E28,	0
		jz	short loc_720534
		call	_PopAdjustHiberFile@4 ;	PopAdjustHiberFile(x)

loc_720534:				; CODE XREF: PopUnlockAfterSleepWorker(x)+6Bj
		call	_PopClearHibernateDiagnosticInfo@0 ; PopClearHibernateDiagnosticInfo()
		call	_PopReleasePolicyLock@0	; PopReleasePolicyLock()
		and	ds:dword_6C2830, 0
		xor	ecx, ecx
		inc	ecx
		call	_PopReleaseTransitionLock@4 ; PopReleaseTransitionLock(x)
		retn	4
_PopUnlockAfterSleepWorker@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall IoMarkTriageDumpBlock()
_IoMarkTriageDumpBlock@0 proc near	; CODE XREF: PopMarkComponentsBootPhase+11Ap
		mov	edi, edi
		push	esi
		xor	esi, esi
		cmp	ds:_IopNumTriageDumpDataBlocks,	esi
		jbe	short loc_720589

loc_72055D:				; CODE XREF: IoMarkTriageDumpBlock()+37j
		mov	ecx, ds:_IopTriageDumpDataBlocks[esi*8]
		mov	eax, ds:dword_6CD044[esi*8]
		push	42706D44h
		sub	eax, ecx
		push	eax
		push	ecx
		push	10000h
		push	0
		call	PoSetHiberRange
		inc	esi
		cmp	esi, ds:_IopNumTriageDumpDataBlocks
		jb	short loc_72055D

loc_720589:				; CODE XREF: IoMarkTriageDumpBlock()+Bj
		pop	esi
		retn
_IoMarkTriageDumpBlock@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopTransitionToSleep proc near		; DATA XREF: PopInitSystemSleeperThread(x,x)+3Co

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= dword	ptr -1
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 007298DB SIZE 0000008A BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		xor	eax, eax
		xor	ebx, ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		lea	edi, [ebp+var_18]
		mov	byte ptr [ebp+var_1], bl
		stosd
		stosd
		stosd
		stosd
		stosd
		mov	edi, [esi+30h]
		mov	eax, large fs:124h
		mov	ds:dword_6C251C, eax
		cmp	edi, 3
		jnz	loc_7298DB

loc_7205C0:				; CODE XREF: PopTransitionToSleep+9352j
		test	byte ptr ds:_PopSimulateHiberBugcheck, 20h
		jnz	loc_72990C
		lea	ecx, [ebp+var_1]
		call	_PopEnlargeHiberFile@4 ; PopEnlargeHiberFile(x)
		test	eax, eax
		mov	al, 1
		js	short loc_7205DE
		mov	al, byte ptr [ebp+var_1]

loc_7205DE:				; CODE XREF: PopTransitionToSleep+4Dj
		mov	[ebp+var_C], ebx
		xor	bh, bh
		mov	[ebp+var_18], offset _PopStartMirroring@0 ; PopStartMirroring()
		mov	[ebp+var_14], offset _PopEndMirroring@4	; PopEndMirroring(x)
		mov	[ebp+var_10], offset _PopMirrorPhysicalMemory@16 ; PopMirrorPhysicalMemory(x,x,x,x)
		mov	[ebp+var_8], 10h
		mov	[ebp+arg_0], 3Ch
		test	al, al
		jnz	loc_729929
		test	byte ptr ds:dword_6C26CC, 20h
		jnz	loc_729944

loc_72061B:				; CODE XREF: PopTransitionToSleep+93BFj
		cmp	ds:_PopForceMinimalHiberFile, 0
		jnz	loc_729951
		cmp	edi, 6
		jz	loc_729934
		push	14h
		mov	bl, 1
		mov	[ebp+arg_0], 8
		pop	eax

loc_72063D:				; CODE XREF: PopTransitionToSleep+93B3j
					; PopTransitionToSleep+93D4j
		mov	ecx, offset _POP_ETW_EVENT_FLUSHALLPAGES
		mov	[ebp+var_8], eax
		mov	ds:byte_6C305C,	bl
		mov	ds:byte_6C305D,	bh
		mov	ds:dword_6C3058, eax
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		test	bl, bl
		jz	short loc_72066A
		mov	edx, [ebp+arg_0]
		push	ecx
		mov	cl, bh
		call	_MmFlushAllPagesEx@12 ;	MmFlushAllPagesEx(x,x,x)

loc_72066A:				; CODE XREF: PopTransitionToSleep+D1j
		mov	ecx, offset _POP_ETW_EVENT_FLUSHALLPAGES_END ; "e"
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		lea	ecx, [ebp+var_18]
		mov	ds:_PopHibernatePowerStateHandlerType, edi
		mov	ds:_PopSleeperHandoff, esi
		call	_MmDuplicateMemory@4 ; MmDuplicateMemory(x)
		xor	ebx, ebx
		mov	ds:_PopHibernatePowerStateHandlerType, 7
		mov	ds:_PopSleeperHandoff, ebx

loc_72069A:				; CODE XREF: PopTransitionToSleep+937Bj
		mov	ecx, eax

loc_72069C:				; CODE XREF: PopTransitionToSleep+9398j
		rdtsc
		push	ebx
		mov	ds:dword_6C29C0, eax
		lea	eax, [esi+20h]
		push	ebx
		mov	ds:dword_6C29C4, edx
		push	eax
		mov	[esi+34h], ecx
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
PopTransitionToSleep endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MmDuplicateMemory(x)
_MmDuplicateMemory@4 proc near		; CODE XREF: PopTransitionToSleep+F7p
					; IopLiveDumpCaptureMemoryPages(x)+96p	...

var_36		= byte ptr -36h
var_35		= byte ptr -35h
var_32		= byte ptr -32h
var_31		= byte ptr -31h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 34h
		push	ebx
		xor	eax, eax
		mov	ebx, ecx
		push	esi
		push	edi
		lea	edi, [esp+40h+var_14]
		mov	[esp+40h+var_24], ebx
		stosd
		xor	edx, edx
		push	21h
		mov	[esp+44h+var_20], edx
		mov	[esp+44h+var_1C], edx
		stosd
		stosd
		stosd
		stosd
		pop	eax
		mov	[esp+40h+var_28], eax
		mov	[esp+40h+var_31], al
		mov	eax, [ebx+10h]
		mov	[esp+40h+var_10], eax
		test	al, 1
		jz	short loc_720704
		test	eax, 404h
		jnz	short loc_72073F

loc_720704:				; CODE XREF: MmDuplicateMemory(x)+3Dj
		test	al, 8
		jz	short loc_720711
		and	eax, 0FFFFFBFAh
		mov	[esp+40h+var_10], eax

loc_720711:				; CODE XREF: MmDuplicateMemory(x)+48j
		mov	cl, byte ptr [esp+40h+var_10]
		mov	esi, 400h
		test	eax, esi
		jz	short loc_720723
		test	cl, 4
		jnz	short loc_72073F

loc_720723:				; CODE XREF: MmDuplicateMemory(x)+5Ej
		test	cl, 0C0h
		jz	short loc_720749
		test	eax, 0FFFFFC2Eh
		jnz	short loc_72073F
		and	eax, 11h
		cmp	al, 11h
		jnz	short loc_72073F
		test	cl, 40h
		jz	short loc_720749
		test	cl, cl
		jns	short loc_720749

loc_72073F:				; CODE XREF: MmDuplicateMemory(x)+44j
					; MmDuplicateMemory(x)+63j ...
		mov	eax, 0C000000Dh
		jmp	loc_720A1D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720749:				; CODE XREF: MmDuplicateMemory(x)+68j
					; MmDuplicateMemory(x)+7Bj ...
		test	cl, 0Ah
		jnz	short loc_720755
		call	_CcNotifyWriteBehind@4 ; CcNotifyWriteBehind(x)
		xor	edx, edx

loc_720755:				; CODE XREF: MmDuplicateMemory(x)+8Ej
		mov	edi, large fs:124h
		lea	ecx, [esp+40h+var_20]
		mov	eax, [esp+40h+var_10]
		and	eax, 200h
		mov	[esp+40h+var_14], ebx
		neg	eax
		mov	[esp+40h+var_C], 8
		mov	[esp+40h+var_4], dl
		sbb	eax, eax
		mov	[esp+40h+var_2C], edx
		and	eax, ecx
		mov	[esp+40h+var_30], edi
		push	eax
		push	edx
		push	edx
		push	12h
		push	offset unk_6D3038
		call	KeWaitForSingleObject
		test	eax, eax
		js	loc_720A1D
		mov	ecx, 102h
		cmp	eax, ecx
		jnz	short loc_7207AE
		mov	eax, ecx
		jmp	loc_720A1D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7207AE:				; CODE XREF: MmDuplicateMemory(x)+E7j
		test	byte ptr ds:_MiFlags, 4
		jnz	short loc_7207C2
		push	ds:_ExPageLockHandle
		call	_MmLockPagableSectionByHandle@4	; MmLockPagableSectionByHandle(x)

loc_7207C2:				; CODE XREF: MmDuplicateMemory(x)+F7j
		dec	word ptr [edi+13Eh]
		nop
		xor	edx, edx
		mov	ecx, offset dword_6D2FF4
		call	ExAcquirePushLockExclusiveEx
		mov	edx, edi
		mov	ecx, offset _MiSystemPartition
		call	_MiLockDynamicMemoryExclusive@8	; MiLockDynamicMemoryExclusive(x,x)
		lock inc ds:dword_6D35AC
		call	_MiUpdateMirrorBitmaps@0 ; MiUpdateMirrorBitmaps()
		test	eax, eax
		jnz	short loc_7207FC
		mov	esi, 0C000009Ah
		jmp	loc_72095A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7207FC:				; CODE XREF: MmDuplicateMemory(x)+132j
		xor	edx, edx
		mov	ecx, offset dword_6D3064
		inc	edx
		call	_MiActOnMirrorBitmap@8 ; MiActOnMirrorBitmap(x,x)
		mov	al, byte ptr [esp+40h+var_10]
		xor	edi, edi
		xor	ecx, ecx
		inc	edi
		mov	[esp+40h+var_8], ecx
		test	al, 1
		jz	short loc_720824
		mov	[esp+40h+var_8], 3
		jmp	short loc_720848
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720824:				; CODE XREF: MmDuplicateMemory(x)+15Aj
		test	[esp+40h+var_10], esi
		jnz	short loc_72083C
		test	al, 4
		jz	short loc_720838
		mov	[esp+40h+var_C], 7
		jmp	short loc_720840
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720838:				; CODE XREF: MmDuplicateMemory(x)+16Ej
		test	al, 8
		jz	short loc_72084A

loc_72083C:				; CODE XREF: MmDuplicateMemory(x)+16Aj
		mov	[esp+40h+var_C], ecx

loc_720840:				; CODE XREF: MmDuplicateMemory(x)+178j
		mov	[esp+40h+var_8], 2

loc_720848:				; CODE XREF: MmDuplicateMemory(x)+164j
		mov	edi, ecx

loc_72084A:				; CODE XREF: MmDuplicateMemory(x)+17Cj
		call	dword ptr [ebx]
		mov	esi, eax
		test	esi, esi
		js	loc_720956
		xor	ebx, ebx
		lea	ecx, [esp+40h+var_14]
		inc	ebx
		mov	ds:dword_6D3034, ebx
		call	_MiMirrorBrownPhase@4 ;	MiMirrorBrownPhase(x)
		mov	esi, eax
		test	esi, esi
		js	loc_720956
		test	byte ptr [esp+40h+var_10], 2
		jnz	short loc_72088B
		cmp	[esp+40h+var_4], bl
		jnz	short loc_72088B
		lock dec ds:dword_6D34D0
		mov	[esp+40h+var_4], 0

loc_72088B:				; CODE XREF: MmDuplicateMemory(x)+1B9j
					; MmDuplicateMemory(x)+1BFj
		mov	ebx, ds:__imp__KeGetCurrentIrql@0 ; KeGetCurrentIrql()
		call	ebx
		mov	ecx, [esp+40h+var_24]
		push	0
		mov	byte ptr [esp+44h+var_28], al
		call	dword ptr [ecx+4]
		mov	esi, eax
		test	esi, esi
		js	loc_720956
		call	ebx
		mov	ebx, [esp+44h+var_28]
		mov	[esp+44h+var_35], al
		cmp	dword ptr [ebx+0Ch], 0
		jz	short loc_7208CB
		xor	edx, edx
		mov	ecx, offset dword_6D305C
		inc	edx
		call	_MiActOnMirrorBitmap@8 ; MiActOnMirrorBitmap(x,x)
		mov	al, [esp+44h+var_35]

loc_7208CB:				; CODE XREF: MmDuplicateMemory(x)+1FAj
		cmp	al, 2
		jnb	short loc_7208DB
		mov	cl, 2
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		mov	[esp+44h+var_35], al

loc_7208DB:				; CODE XREF: MmDuplicateMemory(x)+20Fj
		call	_MiLockAllMemoryLists@0	; MiLockAllMemoryLists()
		cmp	byte ptr [esp+44h+var_8], 1
		mov	eax, [esp+10h]
		mov	ds:dword_6D3058, eax
		jnz	short loc_7208FC
		lock dec ds:dword_6D34D0
		mov	byte ptr [esp+44h+var_8], 0

loc_7208FC:				; CODE XREF: MmDuplicateMemory(x)+230j
		lea	ecx, [esp+44h+var_18]
		mov	ds:dword_6D3034, 2
		call	_MiMirrorBlackPhase@4 ;	MiMirrorBlackPhase(x)
		mov	esi, eax
		test	esi, esi
		js	short loc_720956
		mov	ecx, ebx
		call	MiMirrorVerify
		mov	esi, eax
		test	esi, esi
		js	short loc_720956
		push	1
		call	dword ptr [ebx+4]
		and	ds:dword_6D3058, 0
		mov	esi, eax
		cmp	esi, 40000294h
		jnz	short loc_720956
		test	edi, edi
		jnz	short loc_72094C
		mov	ecx, [esp+48h+var_14]
		xor	esi, esi
		call	_MiResumeFromHibernate@4 ; MiResumeFromHibernate(x)
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_720950
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72094C:				; CODE XREF: MmDuplicateMemory(x)+27Cj
		mov	ebx, [esp+14h]

loc_720950:				; CODE XREF: MmDuplicateMemory(x)+28Cj
		mov	edi, [esp+10h]
		jmp	short loc_72095E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720956:				; CODE XREF: MmDuplicateMemory(x)+192j
					; MmDuplicateMemory(x)+1AEj ...
		mov	edi, [esp+40h+var_30]

loc_72095A:				; CODE XREF: MmDuplicateMemory(x)+139j
		mov	ebx, [esp+40h+var_2C]

loc_72095E:				; CODE XREF: MmDuplicateMemory(x)+296j
		and	ds:dword_6D3034, 0
		cmp	[esp+40h+var_4], 1
		jnz	short loc_720973
		lock dec ds:dword_6D34D0

loc_720973:				; CODE XREF: MmDuplicateMemory(x)+2ACj
		cmp	ds:dword_6D3058, 0
		jz	short loc_720983
		and	ds:dword_6D3058, 0

loc_720983:				; CODE XREF: MmDuplicateMemory(x)+2BCj
		mov	eax, [esp+40h+var_28]
		cmp	al, 21h
		jz	short loc_7209A3
		cmp	[esp+40h+var_31], 21h
		jz	short loc_72099B
		call	_MiUnlockAllMemoryLists@0 ; MiUnlockAllMemoryLists()
		mov	eax, [esp+40h+var_28]

loc_72099B:				; CODE XREF: MmDuplicateMemory(x)+2D2j
		mov	cl, al
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)

loc_7209A3:				; CODE XREF: MmDuplicateMemory(x)+2CBj
		cmp	ebx, 1
		jnz	short loc_7209BF
		mov	eax, [esp+40h+var_C]
		push	2
		push	offset dword_6D3048
		mov	ds:dword_6D3054, eax
		call	ExQueueWorkItem
		jmp	short loc_7209D4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7209BF:				; CODE XREF: MmDuplicateMemory(x)+2E8j
		lock dec ds:dword_6D35AC
		push	0
		push	0
		push	offset unk_6D3038
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)

loc_7209D4:				; CODE XREF: MmDuplicateMemory(x)+2FFj
		mov	edx, edi
		mov	ecx, offset _MiSystemPartition
		call	MiUnlockDynamicMemoryExclusive
		or	eax, 0FFFFFFFFh
		mov	ebx, offset dword_6D2FF4
		lock xadd [ebx], eax
		and	al, 6
		cmp	al, 2
		jnz	short loc_7209F9
		mov	ecx, ebx
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)

loc_7209F9:				; CODE XREF: MmDuplicateMemory(x)+332j
		mov	ecx, ebx
		call	KeAbPostRelease
		mov	ecx, edi
		call	_KiLeaveGuardedRegionUnsafe@4 ;	KiLeaveGuardedRegionUnsafe(x)
		test	byte ptr ds:_MiFlags, 4
		jnz	short loc_720A1B
		push	ds:_ExPageLockHandle
		call	_MmUnlockPagableImageSection@4 ; MmUnlockPagableImageSection(x)

loc_720A1B:				; CODE XREF: MmDuplicateMemory(x)+350j
		mov	eax, esi

loc_720A1D:				; CODE XREF: MmDuplicateMemory(x)+86j
					; MmDuplicateMemory(x)+DAj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
_MmDuplicateMemory@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; __stdcall PopEndMirroring(x)
_PopEndMirroring@4:			; DATA XREF: PopTransitionToSleep+5Eo
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 3Ch
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		lea	edi, [esp+28h]
		push	8
		pop	ecx
		mov	[esp+1Ah], ax
		xor	ebx, ebx
		rep stosd
		mov	eax, [ebp+8]
		mov	[esp+0Ch], ebx
		sub	eax, ebx
		jz	short loc_720A97
		sub	eax, 1
		jnz	loc_720BBE
		mov	edx, ds:dword_6C26F8
		mov	esi, [edx+80h]
		test	esi, esi
		js	loc_720BC3
		mov	ecx, ds:_PopHibernatePowerStateHandlerType
		call	_PopSleepSystem@8 ; PopSleepSystem(x,x)
		mov	esi, eax
		test	esi, esi
		js	loc_720BC3
		cmp	ds:_PoResumeFromHibernate, bl
		jz	loc_720BA1
		mov	esi, 40000294h
		jmp	loc_720BA1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720A97:				; CODE XREF: PAGELK:00720A4Dj
		test	ds:byte_70EFD4,	1
		jz	short loc_720AA5
		call	_EtwKernelMemoryRundown@0 ; EtwKernelMemoryRundown()

loc_720AA5:				; CODE XREF: PAGELK:00720A9Ej
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ds:_PopSleeperHandoff
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		mov	eax, ds:_PopSleeperHandoff
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		add	eax, 10h
		push	eax
		call	KeWaitForSingleObject
		mov	ecx, ds:dword_6C26F8
		xor	edx, edx
		call	_PopBuildMemoryImageHeader@8 ; PopBuildMemoryImageHeader(x,x)
		mov	esi, eax
		test	esi, esi
		js	loc_720BC3
		push	ebx
		lea	eax, [esp+20h]
		mov	[esp+24h], ebx
		push	eax
		mov	[esp+2Ch], ebx
		mov	[esp+24h], edi
		call	KeSetSystemGroupAffinityThread
		mov	cl, 2
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		push	38h
		push	ebx
		mov	edi, offset _PopHibernateSystemContext
		push	edi
		call	_memset
		mov	eax, ds:_KeNumberProcessors
		add	esp, 0Ch
		mov	ds:dword_6C33DC, eax
		mov	ds:dword_6C33E8, eax
		lea	eax, [esp+28h]
		mov	ds:dword_6C33E4, 1
		push	edi
		push	offset _PopInvokeStateHandlerTargetProcessor@16	; PopInvokeStateHandlerTargetProcessor(x,x,x,x)
		push	eax
		mov	ds:dword_6C33F0, ebx
		mov	ds:dword_6C33F4, ebx
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		xor	eax, eax
		mov	byte ptr [esp+29h], 2
		mov	[esp+18h], ax
		mov	eax, ds:dword_70E328
		mov	[esp+14h], eax
		mov	dword ptr [esp+10h], offset _KeActiveProcessors
		jmp	short loc_720B8E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720B62:				; CODE XREF: PAGELK:00720B9Fj
		cmp	[esp+0Ch], ebx
		jz	short loc_720B8E
		mov	edi, ds:dword_6C33E0
		lea	ecx, [esp+28h]
		mov	edx, [esp+0Ch]
		call	_KeSetTargetProcessorIndexDpc@8	; KeSetTargetProcessorIndexDpc(x,x)
		push	ebx
		push	ebx
		mov	eax, ecx
		push	eax
		call	_KeInsertQueueDpc@12 ; KeInsertQueueDpc(x,x,x)

loc_720B85:				; CODE XREF: PAGELK:00720B8Cj
		mov	eax, ds:dword_6C33E0
		cmp	edi, eax
		jz	short loc_720B85

loc_720B8E:				; CODE XREF: PAGELK:00720B60j
					; PAGELK:00720B66j
		lea	eax, [esp+10h]
		push	eax
		lea	eax, [esp+10h]
		push	eax
		call	_KeEnumerateNextProcessor@8 ; KeEnumerateNextProcessor(x,x)
		test	eax, eax
		jz	short loc_720B62

loc_720BA1:				; CODE XREF: PAGELK:00720A87j
					; PAGELK:00720A92j
		mov	eax, esi
		lea	esi, [eax-40000294h]
		neg	esi
		sbb	esi, esi
		not	esi
		and	esi, eax
		jl	short loc_720BC3
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720BBE:				; CODE XREF: PAGELK:00720A52j
		mov	esi, 0C0000001h

loc_720BC3:				; CODE XREF: PAGELK:00720A66j
					; PAGELK:00720A7Bj ...
		mov	edx, 178h
		mov	ecx, offset _PopAction
		call	IoAddTriageDumpDataBlock
		mov	ecx, ds:dword_6C26F4
		test	ecx, ecx
		jz	short loc_720BE6
		mov	edx, 108h
		call	IoAddTriageDumpDataBlock

loc_720BE6:				; CODE XREF: PAGELK:00720BDAj
		mov	ecx, ds:dword_6C26F8
		test	ecx, ecx
		jz	short loc_720C29
		mov	edx, 138h
		call	IoAddTriageDumpDataBlock
		mov	eax, ds:dword_6C26F8
		mov	ecx, [eax+74h]
		test	ecx, ecx
		jz	short loc_720C10
		mov	edx, 100h
		call	IoAddTriageDumpDataBlock

loc_720C10:				; CODE XREF: PAGELK:00720C04j
		mov	eax, ds:dword_6C26F8
		mov	ecx, [eax+88h]
		test	ecx, ecx
		jz	short loc_720C29
		mov	edx, 340h
		call	IoAddTriageDumpDataBlock

loc_720C29:				; CODE XREF: PAGELK:00720BEEj
					; PAGELK:00720C1Dj
		push	ebx
		push	dword ptr [ebp+8]
		push	esi
		push	9
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		dw 0CCCCh

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


BgkResumePrepare proc near		; CODE XREF: PopMarkComponentsBootPhase+106p
					; PopAllocateHiberContext+32Cp

; FUNCTION CHUNK AT 00729965 SIZE 0000000A BYTES

		mov	edi, edi
		push	ebx
		push	esi
		mov	ebx, ecx
		xor	esi, esi
		push	edi
		test	ebx, ebx
		jz	short loc_720C84
		call	BgkpLockBgfxCodeSection
		call	_BgGetContext@0	; BgGetContext()
		mov	edi, eax
		test	edi, edi
		jz	loc_729965
		mov	eax, [edi+8]
		test	eax, eax
		jz	short loc_720C78
		push	4B494742h
		push	dword ptr [edi+0Ch]
		push	eax
		push	8000h
		push	ebx
		call	PoSetHiberRange

loc_720C78:				; CODE XREF: BgkResumePrepare+26j
		mov	ds:dword_6D4AB4, edi

loc_720C7E:				; CODE XREF: BgkResumePrepare+7Cj
					; BgkResumePrepare+83j
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720C84:				; CODE XREF: BgkResumePrepare+Bj
		mov	edi, ds:dword_6D4AB4
		test	edi, edi
		jz	short loc_720CBA
		push	esi
		push	dword ptr [edi]
		mov	ebx, 10000h
		push	edi
		push	ebx
		push	esi
		call	PoSetHiberRange
		mov	eax, [edi+8]
		test	eax, eax
		jz	short loc_720CB1
		push	esi
		push	dword ptr [edi+0Ch]
		push	eax
		push	ebx
		push	esi
		call	PoSetHiberRange

loc_720CB1:				; CODE XREF: BgkResumePrepare+67j
		call	_BgMarkHiberPhase@0 ; BgMarkHiberPhase()
		mov	esi, eax
		jmp	short loc_720C7E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720CBA:				; CODE XREF: BgkResumePrepare+50j
					; BgkResumePrepare+8D2Ej
		mov	esi, 0C000009Ah
		jmp	short loc_720C7E
BgkResumePrepare endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MiGatherHiberRange(x, x, x,	x)
_MiGatherHiberRange@16 proc near	; DATA XREF: MmMarkHiberPhase()+22o

arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_C], 2
		jnz	short loc_720CFB
		xor	eax, eax
		inc	eax

loc_720CD0:				; CODE XREF: MiGatherHiberRange(x,x,x,x)+3Fj
		push	74706D4Dh
		push	eax
		push	[ebp+arg_4]
		xor	eax, eax
		cmp	[ebp+arg_C], 2
		setz	al
		dec	eax
		and	eax, 0FFFFC000h
		add	eax, 14000h
		push	eax
		push	0
		call	PoSetHiberRange
		xor	eax, eax
		pop	ebp
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720CFB:				; CODE XREF: MiGatherHiberRange(x,x,x,x)+9j
		mov	eax, [ebp+arg_8]
		shl	eax, 0Ch
		jmp	short loc_720CD0
_MiGatherHiberRange@16 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopBuildMemoryImageHeader(x, x)
_PopBuildMemoryImageHeader@8 proc near	; CODE XREF: PAGELK:00720ACFp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, ecx
		push	esi
		push	edi
		test	edx, edx
		jnz	loc_720EF3
		mov	edi, [ebx+88h]
		push	676D694Dh
		push	340h
		push	edi
		push	8000h
		push	ebx
		mov	[ebp+var_8], edi
		call	PoSetHiberRange
		mov	esi, 1000h
		push	esi		; size_t
		push	0		; int
		push	edi		; void *
		call	_memset
		add	esp, 0Ch
		mov	[edi+14h], esi
		mov	dword ptr [edi+0Ch], 340h
		push	edi
		call	_MmGetPhysicalAddress@4	; MmGetPhysicalAddress(x)
		shrd	eax, edx, 0Ch
		mov	[edi+10h], eax
		lea	eax, [edi+18h]
		push	eax
		call	KeQuerySystemTime
		call	KeQueryInterruptTime
		mov	[edi+20h], eax
		xor	ecx, ecx
		mov	[edi+24h], edx
		mov	eax, ds:dword_6C24C0
		mov	[edi+38h], eax
		mov	dword ptr [edi+34h], 0Ah
		mov	eax, ds:_KeFeatureBits
		mov	[edi+28h], eax
		mov	eax, ds:dword_70E754
		mov	[edi+2Ch], eax
		movzx	eax, ds:_KeProcessorArchitecture
		mov	[edi+4], eax
		mov	al, [ebx+1]
		mov	[edi+30h], al
		mov	byte ptr [edi+31h], 0CAh
		mov	al, ds:byte_6C24D0
		mov	[edi+2DCh], al
		call	_MmGetHighestPhysicalPage@4 ; MmGetHighestPhysicalPage(x)
		mov	[edi+310h], eax
		mov	al, ds:_PopSecureLaunched
		mov	[edi+2DDh], al
		mov	al, [ebx+134h]
		mov	[edi+2DEh], al
		mov	eax, [ebx+54h]
		test	eax, eax
		jz	short loc_720DE6
		mov	eax, [eax+14h]
		shr	eax, 0Ch
		mov	[edi+3Ch], eax

loc_720DE6:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+D7j
		mov	eax, [ebx+0C4h]
		test	eax, eax
		jz	short loc_720E0D
		push	3
		mov	[edi+314h], eax
		lea	ecx, [edi+318h]
		pop	edx

loc_720DFF:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+107j
		mov	eax, [ecx-4]
		inc	eax
		mov	[ecx], eax
		lea	ecx, [ecx+4]
		sub	edx, 1
		jnz	short loc_720DFF

loc_720E0D:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+EAj
		xor	esi, esi
		mov	edx, edi
		mov	ecx, ebx
		mov	[edi+308h], esi
		mov	[edi+30Ch], esi
		call	_PopBootLoaderTraceCopyPfnList@8 ; PopBootLoaderTraceCopyPfnList(x,x)
		mov	ecx, [ebx+94h]
		test	ecx, ecx
		jz	short loc_720E96
		mov	eax, [ecx+14h]
		mov	esi, eax
		and	esi, 0FFFh
		neg	esi
		sbb	esi, esi
		shr	eax, 0Ch
		neg	esi
		add	esi, eax
		cmp	esi, 1
		jbe	short loc_720E4C
		xor	esi, esi
		inc	esi

loc_720E4C:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+143j
		mov	eax, esi
		add	ecx, 1Ch
		shl	eax, 2
		push	eax		; size_t
		push	ecx		; void *
		lea	eax, [edi+264h]
		mov	[ebp+var_4], ecx
		push	eax		; void *
		call	_memcpy
		add	esp, 0Ch
		mov	[edi+260h], esi
		test	esi, esi
		jz	short loc_720E9C
		mov	edi, [ebp+var_4]

loc_720E75:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+18Bj
		push	644D6946h
		push	1
		push	dword ptr [edi]
		push	0C000h
		push	ebx
		call	PoSetHiberRange
		lea	edi, [edi+4]
		sub	esi, 1
		jnz	short loc_720E75
		mov	edi, [ebp+var_8]
		jmp	short loc_720E9C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720E96:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+128j
		mov	[edi+260h], esi

loc_720E9C:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+16Cj
					; PopBuildMemoryImageHeader(x,x)+190j
		lea	ecx, [ebx+30h]
		mov	eax, [ecx]
		jmp	short loc_720EC8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720EA3:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+1C6j
		lea	esi, [eax]
		mov	eax, [eax]
		mov	edx, [esi+10h]
		sub	edx, [esi+0Ch]
		push	ecx
		shl	edx, 0Ch
		mov	ecx, ebx
		mov	[ebp+var_8], eax
		call	PopAllocateOwnMemory
		mov	[esi+14h], eax
		test	eax, eax
		jz	short loc_720EFE
		mov	eax, [ebp+var_8]
		lea	ecx, [ebx+30h]

loc_720EC8:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+19Dj
		cmp	eax, ecx
		jnz	short loc_720EA3
		mov	eax, [ebx+130h]
		mov	[edi+324h], eax
		mov	al, ds:_PopHiberSkipMemoryMapValidation
		mov	[edi+33Ah], al
		call	_Feature_Servicing_HibernateRelaxVBSPolicy__private_IsEnabledNoReporting@0 ; Feature_Servicing_HibernateRelaxVBSPolicy__private_IsEnabledNoReporting()
		test	eax, eax
		jz	short loc_720EF3
		mov	byte ptr [edi+33Bh], 1

loc_720EF3:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+Fj
					; PopBuildMemoryImageHeader(x,x)+1E6j
		mov	eax, [ebx+80h]

loc_720EF9:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+1FFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_720EFE:				; CODE XREF: PopBuildMemoryImageHeader(x,x)+1BCj
		mov	eax, 0C000009Ah
		jmp	short loc_720EF9
_PopBuildMemoryImageHeader@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


PopAllocateOwnMemory proc near		; CODE XREF: PopBuildMemoryImageHeader(x,x)+1B2p

; FUNCTION CHUNK AT 0072996F SIZE 0000000F BYTES

		mov	edi, edi
		push	ecx
		push	ebx
		push	esi
		mov	esi, edx
		mov	ebx, ecx
		and	esi, 0FFFh
		neg	esi
		push	edi
		sbb	esi, esi
		shr	edx, 0Ch
		neg	esi
		add	esi, edx
		mov	ecx, esi
		call	PopAllocatePages
		mov	edi, eax
		test	edi, edi
		jz	loc_72996F
		push	436C6F6Eh
		shl	esi, 0Ch
		push	esi
		push	edi
		push	8000h
		push	ebx
		call	PoSetHiberRange

loc_720F47:				; CODE XREF: PopAllocateOwnMemory+8A73j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn	4
PopAllocateOwnMemory endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiMarkMtrrHiberPhase()
_KiMarkMtrrHiberPhase@0	proc near	; CODE XREF: KeMarkHiberPhase:loc_72174Ap
		mov	ecx, ds:dword_6C75B4
		push	esi
		mov	esi, 7272744Dh
		push	edi
		mov	edi, 10000h
		test	ecx, ecx
		jz	short loc_720F7B
		movzx	eax, byte ptr ds:dword_6C75A8
		push	esi
		shl	eax, 4
		push	eax
		push	ecx
		push	edi
		push	0
		call	PoSetHiberRange

loc_720F7B:				; CODE XREF: KiMarkMtrrHiberPhase()+14j
		mov	eax, ds:dword_6C75B8
		test	eax, eax
		jz	short loc_720F90
		push	esi
		push	58h
		push	eax
		push	edi
		push	0
		call	PoSetHiberRange

loc_720F90:				; CODE XREF: KiMarkMtrrHiberPhase()+32j
		pop	edi
		pop	esi
		retn
_KiMarkMtrrHiberPhase@0	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopMarkHiberPhase(x)
_PopMarkHiberPhase@4 proc near		; CODE XREF: PopMarkComponentsBootPhase+D0p
		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	edi, ecx
		push	ebx
		push	138h
		push	edi
		mov	esi, 10000h
		push	esi
		push	ebx
		call	PoSetHiberRange
		push	ebx
		push	ds:dword_6C24E0
		push	ds:dword_6C24DC
		push	esi
		push	ebx
		call	PoSetHiberRange
		mov	eax, [edi+0B8h]
		test	eax, eax
		jz	short loc_720FDD
		push	ebx
		push	dword ptr [edi+0BCh]
		push	eax
		push	esi
		push	ebx
		call	PoSetHiberRange

loc_720FDD:				; CODE XREF: PopMarkHiberPhase(x)+38j
		mov	eax, [edi+6Ch]
		push	ebx
		shl	eax, 0Ch
		push	eax
		push	dword ptr [edi+68h]
		push	esi
		push	ebx
		call	PoSetHiberRange
		mov	esi, [edi+54h]
		push	ebx
		push	dword ptr [esi+14h]
		push	ebx
		call	_MmSizeOfMdl@8	; MmSizeOfMdl(x,x)
		push	eax
		push	esi
		mov	esi, 10000h
		push	esi
		push	ebx
		call	PoSetHiberRange
		mov	eax, [edi+0A0h]
		push	ebx
		shl	eax, 0Ch
		push	eax
		push	dword ptr [edi+9Ch]
		push	esi
		push	ebx
		call	PoSetHiberRange
		push	ebx
		push	ds:dword_6C24B4
		push	ds:dword_6C24B0
		push	esi
		push	ebx
		call	PoSetHiberRange
		add	edi, 30h
		mov	esi, [edi]
		jmp	short loc_721050
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72103D:				; CODE XREF: PopMarkHiberPhase(x)+BEj
		push	ebx
		push	18h
		mov	eax, esi
		mov	esi, [esi]
		push	eax
		push	10000h
		push	ebx
		call	PoSetHiberRange

loc_721050:				; CODE XREF: PopMarkHiberPhase(x)+A7j
		cmp	esi, edi
		jnz	short loc_72103D
		pop	edi
		pop	esi
		pop	ebx
		retn
_PopMarkHiberPhase@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MmMarkHiberPhase()
_MmMarkHiberPhase@0 proc near		; CODE XREF: PopMarkComponentsBootPhase+115p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		xor	esi, esi
		push	edi
		mov	[ebp+var_14], esi
		mov	[ebp+var_10], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	_MiMarkKernelPageTablePages@0 ;	MiMarkKernelPageTablePages()
		mov	eax, ds:_PsInitialSystemProcess
		mov	[ebp+var_1C], offset _MiGatherHiberRange@16 ; MiGatherHiberRange(x,x,x,x)
		mov	[ebp+var_18], esi
		mov	[ebp+var_4], esi
		mov	edi, [eax+194h]

loc_72108D:				; CODE XREF: MmMarkHiberPhase()+76j
		mov	esi, [edi]
		nop
		mov	edx, [edi+4]
		mov	ecx, edi
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		test	eax, eax
		jz	short loc_7210A7
		push	edx
		push	esi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	esi, eax

loc_7210A7:				; CODE XREF: MmMarkHiberPhase()+44j
		push	2
		shrd	esi, edx, 0Ch
		push	1
		and	esi, 1FFFFFFh
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		add	edi, 8
		call	[ebp+var_1C]
		test	eax, eax
		js	short loc_7210E7
		mov	edx, [ebp+var_4]
		inc	edx
		mov	[ebp+var_4], edx
		cmp	edx, 4
		jb	short loc_72108D
		mov	eax, ds:_PsInitialSystemProcess
		push	2
		push	1
		mov	eax, [eax+18h]
		shr	eax, 0Ch
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	[ebp+var_1C]

loc_7210E7:				; CODE XREF: MmMarkHiberPhase()+6Aj
		imul	edx, ds:dword_6D5D84, 1Ch
		mov	ecx, ds:_MmPfnDatabase
		push	200h
		add	edx, 1Bh
		add	edx, ecx
		call	_MiMarkNonPagedHiberPhasePages@12 ; MiMarkNonPagedHiberPhasePages(x,x,x)
		push	61676D4Dh
		push	1
		push	ds:dword_6D3518
		xor	edi, edi
		push	14000h
		push	edi
		call	PoSetHiberRange
		mov	eax, ds:dword_6D35B4
		mov	esi, 10000h
		push	62706D4Dh
		push	edi
		pop	ecx
		test	al, 1Fh
		setnz	cl
		shr	eax, 5
		add	ecx, eax
		shl	ecx, 2
		push	ecx
		push	ds:dword_6D35B8
		push	esi
		push	edi
		call	PoSetHiberRange
		mov	eax, large fs:124h
		push	62706D4Dh
		push	500h
		push	dword ptr [eax+80h]
		push	esi
		push	edi
		call	PoSetHiberRange
		mov	eax, large fs:124h
		mov	eax, [eax+80h]
		mov	eax, [eax+304h]
		test	eax, eax
		jz	short loc_72118E
		push	62706D4Dh
		push	1000h
		push	eax
		push	esi
		push	edi
		call	PoSetHiberRange

loc_72118E:				; CODE XREF: MmMarkHiberPhase()+122j
		push	edi
		or	edx, 0FFFFFFFFh
		mov	ecx, 0FFC00000h
		call	_MiMarkNonPagedHiberPhasePages@12 ; MiMarkNonPagedHiberPhasePages(x,x,x)
		push	64736D4Dh
		push	1000h
		push	0FFDF0000h
		push	esi
		push	edi
		call	PoSetHiberRange
		push	64736D4Dh
		push	4B0h
		push	ds:_MmUnloadedDrivers
		push	esi
		push	edi
		call	PoSetHiberRange
		mov	esi, edi

loc_7211CB:				; CODE XREF: MmMarkHiberPhase()+189j
		mov	eax, ds:_MmUnloadedDrivers
		mov	ecx, [esi+eax+4]
		test	ecx, ecx
		jnz	short loc_7211F0

loc_7211D8:				; CODE XREF: MmMarkHiberPhase()+1AEj
		add	esi, 18h
		cmp	esi, 4B0h
		jb	short loc_7211CB
		push	4
		pop	edi

loc_7211E6:				; CODE XREF: MmMarkHiberPhase()+208j
		mov	eax, ds:dword_6D3444[edi]
		xor	esi, esi
		jmp	short loc_72120C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7211F0:				; CODE XREF: MmMarkHiberPhase()+17Ej
		movzx	eax, word ptr [esi+eax]
		push	64736D4Dh
		push	eax
		push	ecx
		push	10000h
		push	edi
		call	PoSetHiberRange
		jmp	short loc_7211D8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721208:				; CODE XREF: MmMarkHiberPhase()+1B6j
		mov	esi, eax
		mov	eax, [eax]

loc_72120C:				; CODE XREF: MmMarkHiberPhase()+196j
		test	eax, eax
		jnz	short loc_721208
		jmp	short loc_72123B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721212:				; CODE XREF: MmMarkHiberPhase()+1F0j
		mov	esi, eax
		mov	ecx, [esi]
		test	ecx, ecx
		jz	short loc_721224

loc_72121A:				; CODE XREF: MmMarkHiberPhase()+1CAj
		mov	eax, [ecx]
		mov	esi, ecx
		mov	ecx, eax
		test	eax, eax
		jnz	short loc_72121A

loc_721224:				; CODE XREF: MmMarkHiberPhase()+1C0j
					; MmMarkHiberPhase()+1F8j ...
		push	6F496D4Dh
		push	420h
		push	edx
		push	10000h
		push	0
		call	PoSetHiberRange

loc_72123B:				; CODE XREF: MmMarkHiberPhase()+1B8j
		test	esi, esi
		jz	short loc_72125A
		mov	eax, [esi+4]
		mov	edx, esi
		mov	ecx, esi
		test	eax, eax
		jnz	short loc_721212

loc_72124A:				; CODE XREF: MmMarkHiberPhase()+200j
		mov	esi, [esi+8]
		and	esi, 0FFFFFFFCh
		jz	short loc_721224
		cmp	[esi], ecx
		jz	short loc_721224
		mov	ecx, esi
		jmp	short loc_72124A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72125A:				; CODE XREF: MmMarkHiberPhase()+1E5j
		add	edi, 4
		cmp	edi, 8
		jbe	short loc_7211E6
		call	_MiMarkHiberNotCachedPages@0 ; MiMarkHiberNotCachedPages()
		pop	edi
		pop	esi
		leave
		retn
_MmMarkHiberPhase@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

MiMarkHiberNotCachedPte	proc near	; DATA XREF: MiMarkHiberNotCachedPages()+22o

var_8		= dword	ptr -8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 0072997E SIZE 0000001F BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	ebx
		push	esi
		mov	esi, [ecx]
		nop
		mov	edx, [ecx+4]
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		test	eax, eax
		jz	short loc_721290
		push	edx
		push	esi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	esi, eax

loc_721290:				; CODE XREF: MiMarkHiberNotCachedPte+19j
		mov	ecx, esi
		xor	ebx, ebx
		and	ecx, 1
		or	ecx, ebx
		jnz	short loc_7212A3

loc_72129B:				; CODE XREF: MiMarkHiberNotCachedPte+4Dj
					; MiMarkHiberNotCachedPte+7Ej
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7212A3:				; CODE XREF: MiMarkHiberNotCachedPte+2Dj
		mov	ecx, esi
		and	ecx, 10h
		mov	eax, ecx
		or	eax, ebx
		jnz	short loc_7212B7
		mov	eax, esi
		and	eax, 8
		or	eax, ebx
		jnz	short loc_7212BB

loc_7212B7:				; CODE XREF: MiMarkHiberNotCachedPte+40j
		or	ecx, ebx
		jz	short loc_72129B

loc_7212BB:				; CODE XREF: MiMarkHiberNotCachedPte+49j
		push	edi
		mov	edi, esi
		nop
		lea	ecx, [ebp+var_8]
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		test	eax, eax
		jz	short loc_7212D4
		push	edx
		push	edi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	edi, eax

loc_7212D4:				; CODE XREF: MiMarkHiberNotCachedPte+5Dj
		shrd	edi, edx, 0Ch
		and	edi, 1FFFFFFh
		mov	ecx, edi
		call	_MiIsPfn@4	; MiIsPfn(x)
		test	eax, eax
		jnz	short loc_7212EC

loc_7212E9:				; CODE XREF: MiMarkHiberNotCachedPte+91j
					; MiMarkHiberNotCachedPte+98j ...
		pop	edi
		jmp	short loc_72129B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7212EC:				; CODE XREF: MiMarkHiberNotCachedPte+7Bj
		and	esi, 80h
		or	esi, ebx
		jnz	loc_72997E
		cmp	[ebp+arg_8], ebx
		jnz	short loc_7212E9
		xor	eax, eax
		inc	eax

loc_721302:				; CODE XREF: MiMarkHiberNotCachedPte+872Cj
		test	eax, eax
		jz	short loc_7212E9

loc_721306:				; CODE XREF: MiMarkHiberNotCachedPte+871Dj
		push	636E6D4Dh
		push	eax
		push	edi
		push	14000h
		push	ebx
		call	PoSetHiberRange
		jmp	short loc_7212E9
MiMarkHiberNotCachedPte	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


PopMarkComponentsBootPhase proc	near	; CODE XREF: PopSaveHiberContext+255p

; FUNCTION CHUNK AT 0072999D SIZE 000000BB BYTES

		cmp	ds:byte_6C24D1,	0
		push	edi
		mov	edi, ecx
		jnz	loc_721489
		push	ebx
		push	esi
		push	6E72654Bh
		xor	ebx, ebx
		mov	esi, 10000h
		push	ebx
		push	offset PopSaveHiberContext
		push	esi
		push	ebx
		call	PoSetHiberRange
		push	6348616Ch
		push	ebx
		push	ds:__imp__HalAllocateCrashDumpRegisters@8 ; HalAllocateCrashDumpRegisters(x,x)
		push	esi
		push	ebx
		call	PoSetHiberRange
		mov	esi, ds:_PsLoadedModuleList

loc_72135E:				; CODE XREF: PopMarkComponentsBootPhase+A9j
		cmp	esi, offset _PsLoadedModuleList
		jz	short loc_7213C5
		push	6E72654Bh
		push	5Ch
		push	esi
		push	10000h
		push	ebx
		call	PoSetHiberRange
		push	dword ptr [esi+30h]
		call	_MmIsAddressValid@4 ; MmIsAddressValid(x)
		test	al, al
		jz	short loc_72139D
		movzx	eax, word ptr [esi+2Eh]
		push	6E72654Bh
		push	eax
		push	dword ptr [esi+30h]
		push	10000h
		push	ebx
		call	PoSetHiberRange

loc_72139D:				; CODE XREF: PopMarkComponentsBootPhase+69j
		push	dword ptr [esi+28h]
		call	_MmIsAddressValid@4 ; MmIsAddressValid(x)
		test	al, al
		jz	short loc_7213C1
		movzx	eax, word ptr [esi+26h]
		push	6E72654Bh
		push	eax
		push	dword ptr [esi+28h]
		push	10000h
		push	ebx
		call	PoSetHiberRange

loc_7213C1:				; CODE XREF: PopMarkComponentsBootPhase+8Dj
		mov	esi, [esi]
		jmp	short loc_72135E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7213C5:				; CODE XREF: PopMarkComponentsBootPhase+4Aj
		push	offset dword_6C33F0
		call	_FirstEntrySList@4 ; FirstEntrySList(x)
		mov	esi, eax
		jmp	short loc_7213DD
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7213D3:				; CODE XREF: PopMarkComponentsBootPhase+C5j
		mov	ecx, [esi-4]
		call	KeMarkHiberPhase
		mov	esi, [esi]

loc_7213DD:				; CODE XREF: PopMarkComponentsBootPhase+B7j
		test	esi, esi
		jnz	short loc_7213D3
		push	ebx
		call	ds:off_6B121C	; xHalLocateHiberRanges(x)
		mov	ecx, edi
		call	_PopMarkHiberPhase@4 ; PopMarkHiberPhase(x)
		push	626C644Bh
		push	ebx
		push	offset _KdPitchDebugger
		push	10000h
		push	ebx
		call	PoSetHiberRange
		cmp	ds:_KdPitchDebugger, bl
		jz	loc_72999D

loc_721411:				; CODE XREF: PopMarkComponentsBootPhase+8696j
					; PopMarkComponentsBootPhase+86C6j
		call	_VfIsVerifierEnabled@0 ; VfIsVerifierEnabled()
		test	eax, eax
		jnz	loc_7299E5

loc_72141E:				; CODE XREF: PopMarkComponentsBootPhase+86FBj
					; PopMarkComponentsBootPhase+8708j ...
		xor	ecx, ecx
		call	BgkResumePrepare
		call	_RtlMarkHiberPhase@0 ; RtlMarkHiberPhase()
		call	_HvlMarkHiberPhase@0 ; HvlMarkHiberPhase()
		call	_MmMarkHiberPhase@0 ; MmMarkHiberPhase()
		call	_IoMarkTriageDumpBlock@0 ; IoMarkTriageDumpBlock()
		mov	esi, ds:_PopShutdownNotificationCallback
		test	esi, esi
		jnz	loc_729A3B

loc_721447:				; CODE XREF: PopMarkComponentsBootPhase+8739j
		mov	esi, ds:_PopThermal
		jmp	short loc_721467
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72144F:				; CODE XREF: PopMarkComponentsBootPhase+153j
		push	6D726854h
		push	3A0h
		push	esi
		push	10000h
		push	ebx
		call	PoSetHiberRange
		mov	esi, [esi]

loc_721467:				; CODE XREF: PopMarkComponentsBootPhase+133j
		cmp	esi, offset _PopThermal
		jnz	short loc_72144F
		test	ds:_PopSimulateHiberBugcheck, 100h
		pop	esi
		pop	ebx
		jnz	short loc_721485
		lea	ecx, [edi+20h]
		call	_MiConvertHiberPhasePages@4 ; MiConvertHiberPhasePages(x)

loc_721485:				; CODE XREF: PopMarkComponentsBootPhase+161j
		mov	byte ptr [edi+3], 1

loc_721489:				; CODE XREF: PopMarkComponentsBootPhase+Aj
		mov	byte ptr [edi+1Ch], 1
		pop	edi
		retn
PopMarkComponentsBootPhase endp	; sp = -4

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

MiMarkNonPagedHiberPhasePte proc near	; DATA XREF: MiMarkNonPagedHiberPhasePages(x,x,x)+30o

var_8		= dword	ptr -8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 00729A58 SIZE 0000000D BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	ebx
		push	esi
		mov	esi, [ecx]
		nop
		mov	edx, [ecx+4]
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		test	eax, eax
		jz	short loc_7214B4
		push	edx
		push	esi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	esi, eax

loc_7214B4:				; CODE XREF: MiMarkNonPagedHiberPhasePte+19j
		xor	ebx, ebx
		mov	ecx, esi
		inc	ebx
		and	ecx, ebx
		or	ecx, 0
		jnz	short loc_7214C8

loc_7214C0:				; CODE XREF: MiMarkNonPagedHiberPhasePte+A8j
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7214C8:				; CODE XREF: MiMarkNonPagedHiberPhasePte+2Ej
		push	edi
		mov	edi, esi
		nop
		lea	ecx, [ebp+var_8]
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		test	eax, eax
		jz	short loc_7214E1
		push	edx
		push	edi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	edi, eax

loc_7214E1:				; CODE XREF: MiMarkNonPagedHiberPhasePte+46j
		shrd	edi, edx, 0Ch
		and	edi, 1FFFFFFh
		mov	ecx, edi
		call	_MiIsPfn@4	; MiIsPfn(x)
		test	eax, eax
		jz	short loc_721537
		and	esi, 80h
		or	esi, 0
		jnz	short loc_72153A
		cmp	[ebp+arg_8], esi
		jnz	short loc_721537
		imul	ecx, edi, 1Ch
		add	ecx, ds:_MmPfnDatabase
		cmp	[ecx+14h], bx
		ja	short loc_72151E
		call	_MiIsPfnTradable@4 ; MiIsPfnTradable(x)
		test	eax, eax
		jnz	short loc_72154C

loc_72151E:				; CODE XREF: MiMarkNonPagedHiberPhasePte+83j
					; MiMarkNonPagedHiberPhasePte+C2j
		mov	eax, ebx

loc_721520:				; CODE XREF: MiMarkNonPagedHiberPhasePte+85D0j
		test	eax, eax
		jz	short loc_721537

loc_721524:				; CODE XREF: MiMarkNonPagedHiberPhasePte+B4j
		push	6C64704Eh
		push	eax
		push	edi
		push	14000h
		push	0
		call	PoSetHiberRange

loc_721537:				; CODE XREF: MiMarkNonPagedHiberPhasePte+64j
					; MiMarkNonPagedHiberPhasePte+74j ...
		pop	edi
		jmp	short loc_7214C0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72153A:				; CODE XREF: MiMarkNonPagedHiberPhasePte+6Fj
		mov	ecx, [ebp+arg_8]
		mov	eax, 200h
		cmp	ecx, ebx
		jle	short loc_721524
		dec	ecx
		jmp	loc_729A58
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72154C:				; CODE XREF: MiMarkNonPagedHiberPhasePte+8Cj
		test	byte ptr [ecx+17h], 8
		jz	short loc_721537
		jmp	short loc_72151E
MiMarkNonPagedHiberPhasePte endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KeMarkHiberPhase proc near		; CODE XREF: PopMarkComponentsBootPhase+BCp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729A65 SIZE 00000029 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	6370654Bh
		mov	edi, ecx
		push	6020h
		push	edi
		push	10000h
		mov	ebx, [edi+20h]
		mov	esi, [edi+40h]
		push	0
		call	PoSetHiberRange
		push	6370654Bh
		push	5F00h
		push	ebx
		push	10000h
		push	0
		call	PoSetHiberRange
		push	6370654Bh
		push	20ACh
		push	esi
		push	10000h
		push	0
		call	PoSetHiberRange
		mov	esi, 6370654Bh
		push	esi
		push	0
		push	offset _KiBootProcessorIdtSize
		push	10000h
		push	0
		call	PoSetHiberRange
		mov	edx, [edi+3Ch]
		push	esi
		push	68h
		movzx	ecx, byte ptr [edx+0A7h]
		movzx	eax, byte ptr [edx+0A4h]
		shl	ecx, 8
		add	ecx, eax
		movzx	eax, word ptr [edx+0A2h]
		shl	ecx, 10h
		add	ecx, eax
		push	ecx
		push	10000h
		push	0
		call	PoSetHiberRange
		mov	edx, [edi+3Ch]
		push	esi
		push	68h
		movzx	ecx, byte ptr [edx+5Fh]
		movzx	eax, byte ptr [edx+5Ch]
		shl	ecx, 8
		add	ecx, eax
		movzx	eax, word ptr [edx+5Ah]
		shl	ecx, 10h
		add	ecx, eax
		push	ecx
		push	10000h
		push	0
		call	PoSetHiberRange
		mov	ecx, [edi+3Ch]
		mov	edi, 6370654Bh
		push	edi
		push	68h
		movzx	esi, byte ptr [ecx+57h]
		movzx	eax, byte ptr [ecx+54h]
		shl	esi, 8
		add	esi, eax
		movzx	eax, word ptr [ecx+52h]
		shl	esi, 10h
		add	esi, eax
		push	esi
		push	10000h
		push	0
		call	PoSetHiberRange
		mov	eax, [esi+4]
		mov	ecx, 3000h
		push	edi
		push	ecx
		sub	eax, ecx
		push	eax
		push	10000h
		xor	edi, edi
		push	edi
		call	PoSetHiberRange
		movzx	eax, word ptr [ebx+316h]
		mov	esi, 7370654Bh
		push	esi
		push	eax
		push	dword ptr [ebx+318h]
		push	10000h
		push	edi
		call	PoSetHiberRange
		movzx	eax, word ptr [ebx+30Eh]
		push	esi
		push	eax
		push	dword ptr [ebx+310h]
		mov	esi, 10000h
		push	esi
		push	edi
		call	PoSetHiberRange
		mov	eax, [ebx+2210h]
		mov	ecx, ds:_KeKernelStackSize
		add	eax, 0FFFh
		push	7473654Bh
		push	ecx
		and	eax, 0FFFFF000h
		sub	eax, ecx
		push	eax
		push	esi
		push	edi
		call	PoSetHiberRange
		push	2
		pop	eax
		lea	edi, [ebx+21E0h]
		mov	[ebp+var_4], eax

loc_7216D2:				; CODE XREF: KeMarkHiberPhase+191j
		mov	esi, [edi]
		test	esi, esi
		jnz	loc_7217CE

loc_7216DC:				; CODE XREF: KeMarkHiberPhase+29Aj
		add	edi, 18h
		sub	eax, 1
		mov	[ebp+var_4], eax
		jnz	short loc_7216D2
		mov	eax, ds:_KeFeatureBits
		xor	esi, esi
		and	eax, 400000h
		mov	ecx, 2CCh
		or	eax, esi
		jz	short loc_721708
		mov	ecx, ds:_KeXStateLength
		add	ecx, 123h

loc_721708:				; CODE XREF: KeMarkHiberPhase+1A6j
		push	7873654Bh
		push	ecx
		push	dword ptr [ebx+4168h]
		mov	edi, 10000h
		push	edi
		push	esi
		call	PoSetHiberRange
		mov	edx, [ebx+47B8h]
		test	edx, edx
		jnz	loc_729A65

loc_72172E:				; CODE XREF: KeMarkHiberPhase+8535j
		mov	eax, [ebx+3D70h]
		test	eax, eax
		jz	short loc_72174A
		push	7349654Bh
		push	150h
		push	eax
		push	edi
		push	esi
		call	PoSetHiberRange

loc_72174A:				; CODE XREF: KeMarkHiberPhase+1E2j
		call	_KiMarkMtrrHiberPhase@0	; KiMarkMtrrHiberPhase()
		mov	eax, [ebx+4]
		xor	ebx, ebx
		push	6874654Bh
		push	4E0h
		push	eax
		mov	edi, [eax+24h]
		mov	esi, [eax+28h]
		add	edi, 0FFFh
		push	10000h
		and	edi, 0FFFFF000h
		push	ebx
		sub	esi, edi
		call	PoSetHiberRange
		push	7473654Bh
		push	esi
		push	edi
		mov	edi, 10000h
		push	edi
		push	ebx
		call	PoSetHiberRange
		mov	esi, ds:_KeBugCheckReasonCallbackListHead
		jmp	short loc_7217AA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721799:				; CODE XREF: KeMarkHiberPhase+25Cj
		push	7473654Bh
		push	1Ch
		push	esi
		push	edi
		push	ebx
		call	PoSetHiberRange
		mov	esi, [esi]

loc_7217AA:				; CODE XREF: KeMarkHiberPhase+243j
		cmp	esi, offset _KeBugCheckReasonCallbackListHead
		jnz	short loc_721799
		push	706C7845h
		push	1000h
		push	ds:_ExLeapSecondData
		push	edi
		push	ebx
		call	PoSetHiberRange
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7217CE:				; CODE XREF: KeMarkHiberPhase+182j
					; KeMarkHiberPhase+295j
		push	7064654Bh
		push	20h
		lea	eax, [esi-4]
		push	eax
		push	10000h
		push	0
		call	PoSetHiberRange
		mov	esi, [esi]
		test	esi, esi
		jnz	short loc_7217CE
		mov	eax, [ebp+var_4]
		jmp	loc_7216DC
KeMarkHiberPhase endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopSetBootPhaseRange(x, x, x, x)
_PopSetBootPhaseRange@16 proc near	; CODE XREF: PopSetRange+32p

var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		mov	ebx, ecx
		mov	[ebp+var_8], edi
		mov	esi, edi
		lea	ecx, [edi+eax]
		cmp	edi, ecx
		jnb	short loc_721834
		mov	edi, ecx

loc_721813:				; CODE XREF: PopSetBootPhaseRange(x,x,x,x)+38j
		mov	eax, [ebx+24h]
		mov	edx, esi
		shr	edx, 5
		mov	ecx, esi
		and	ecx, 1Fh
		mov	eax, [eax+edx*4]
		sar	eax, cl
		test	al, 1
		jz	short loc_721846

loc_721829:				; CODE XREF: PopSetBootPhaseRange(x,x,x,x)+67j
		inc	esi
		cmp	esi, edi
		jb	short loc_721813
		mov	edi, [ebp+var_8]
		mov	eax, [ebp+arg_0]

loc_721834:				; CODE XREF: PopSetBootPhaseRange(x,x,x,x)+1Bj
		push	eax
		push	edi
		lea	eax, [ebx+20h]
		push	eax
		call	_RtlSetBits@12	; RtlSetBits(x,x,x)
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721846:				; CODE XREF: PopSetBootPhaseRange(x,x,x,x)+33j
		mov	edx, esi
		mov	eax, esi
		shr	edx, 3
		and	eax, 7
		add	edx, [ebx+2Ch]
		movsx	ecx, byte ptr [edx]
		btr	ecx, eax
		mov	[edx], cl
		jmp	short loc_721829
_PopSetBootPhaseRange@16 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopDiscardRange(x, x, x, x)
_PopDiscardRange@16 proc near		; CODE XREF: PopSetRange+43p
					; PopAllocateHiberContext+A5806p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		lea	eax, [ecx+20h]
		push	edx
		push	eax
		call	_RtlSetBits@12	; RtlSetBits(x,x,x)
		pop	ebp
		retn	8
_PopDiscardRange@16 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopCloneRange	proc near		; CODE XREF: PopSetRange+53p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 00729A8E SIZE 0000002C BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	eax, edx
		push	edi
		mov	ebx, ecx
		mov	[ebp+var_4], eax
		push	esi
		push	eax
		lea	eax, [ebx+20h]
		push	eax
		call	_RtlSetBits@12	; RtlSetBits(x,x,x)
		mov	edx, [ebp+var_4]
		xor	edi, edi
		lea	eax, [edx+esi]
		mov	[ebp+arg_0], eax
		lea	eax, [ebx+30h]
		mov	esi, [eax]
		cmp	esi, eax
		jz	loc_721955

loc_7218AA:				; CODE XREF: PopCloneRange+67j
		mov	eax, esi
		mov	esi, [esi]
		mov	ecx, [eax+0Ch]
		cmp	edx, ecx
		jb	short loc_7218BA
		cmp	edx, [eax+10h]
		jbe	short loc_721924

loc_7218BA:				; CODE XREF: PopCloneRange+3Fj
		mov	edx, [ebp+var_4]
		cmp	[ebp+arg_0], ecx
		jb	short loc_7218CD
		mov	edx, [ebp+arg_0]
		cmp	edx, [eax+10h]
		mov	edx, [ebp+var_4]
		jbe	short loc_721924

loc_7218CD:				; CODE XREF: PopCloneRange+4Cj
		cmp	edx, ecx
		jbe	short loc_7218DD

loc_7218D1:				; CODE XREF: PopCloneRange+70j
					; PopCloneRange+DCj ...
		lea	eax, [ebx+30h]
		cmp	esi, eax
		jz	short loc_7218E9
		mov	edx, [ebp+var_4]
		jmp	short loc_7218AA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7218DD:				; CODE XREF: PopCloneRange+5Bj
		cmp	ecx, [ebp+arg_0]
		jbe	short loc_721924
		cmp	edx, ecx
		jnb	short loc_7218D1
		mov	esi, [esi+4]

loc_7218E9:				; CODE XREF: PopCloneRange+62j
		test	edi, edi
		jz	short loc_721955

loc_7218ED:				; CODE XREF: PopCloneRange+F6j
		xor	eax, eax
		mov	[edi], eax
		mov	[edi+4], eax
		mov	[edi+14h], eax
		mov	eax, [ebp+arg_4]
		mov	[edi+8], eax
		mov	eax, [ebp+var_4]
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[edi+10h], eax
		mov	eax, [esi+4]
		cmp	[eax], esi
		jnz	short loc_72197B
		mov	[edi], esi
		mov	[edi+4], eax
		mov	[eax], edi
		mov	[esi+4], edi
		inc	dword ptr [ebx+38h]

loc_72191D:				; CODE XREF: PopCloneRange+8231j
					; PopCloneRange+8241j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721924:				; CODE XREF: PopCloneRange+44j
					; PopCloneRange+57j ...
		cmp	edx, ecx
		ja	short loc_721976

loc_721928:				; CODE XREF: PopCloneRange+105j
		mov	ecx, [eax+10h]
		cmp	[ebp+arg_0], ecx
		jb	short loc_721971

loc_721930:				; CODE XREF: PopCloneRange+100j
		dec	dword ptr [ebx+38h]
		mov	edx, [eax]
		cmp	[edx+4], eax
		jnz	short loc_72197B
		mov	ecx, [eax+4]
		cmp	[ecx], eax
		jnz	short loc_72197B
		mov	[ecx], edx
		mov	[edx+4], ecx
		test	edi, edi
		jnz	loc_729A8E
		mov	edi, eax
		jmp	loc_7218D1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721955:				; CODE XREF: PopCloneRange+30j
					; PopCloneRange+77j
		push	70616D48h
		push	18h
		push	200h
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	edi, eax
		test	edi, edi
		jnz	short loc_7218ED
		jmp	loc_729A9E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721971:				; CODE XREF: PopCloneRange+BAj
		mov	[ebp+arg_0], ecx
		jmp	short loc_721930
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721976:				; CODE XREF: PopCloneRange+B2j
		mov	[ebp+var_4], ecx
		jmp	short loc_721928
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72197B:				; CODE XREF: PopCloneRange+9Aj
					; PopCloneRange+C4j ...
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
PopCloneRange	endp			; AL = character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall MmMarkImageForHiberPhase(x)
_MmMarkImageForHiberPhase@4 proc near	; CODE XREF: PoSetHiberRange+1A0p
		mov	edi, edi
		push	ecx
		push	2
		pop	edx
		call	_MiLookupDataTableEntry@8 ; MiLookupDataTableEntry(x,x)
		push	0
		mov	edx, [eax+20h]
		mov	ecx, [eax+18h]
		dec	edx
		add	edx, ecx
		call	_MiMarkNonPagedHiberPhasePages@12 ; MiMarkNonPagedHiberPhasePages(x,x,x)
		pop	ecx
		retn
_MmMarkImageForHiberPhase@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MiMarkNonPagedHiberPhasePages(x, x,	x)
_MiMarkNonPagedHiberPhasePages@12 proc near ; CODE XREF: MmMarkHiberPhase()+A6p
					; MmMarkHiberPhase()+13Fp ...

var_50		= dword	ptr -50h
var_4A		= byte ptr -4Ah
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	esi
		push	edi
		push	4Ch		; size_t
		lea	eax, [ebp+var_50]
		mov	edi, edx
		push	0		; int
		push	eax		; void *
		mov	esi, ecx
		call	_memset
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		or	eax, 901h
		mov	[ebp+var_10], offset MiMarkNonPagedHiberPhasePte
		mov	word ptr [ebp+var_50], ax
		push	3
		pop	ecx
		call	_MiGetAnyMultiplexedVm@4 ; MiGetAnyMultiplexedVm(x)
		lea	ecx, [ebp+var_50]
		mov	[ebp+var_40], eax
		mov	[ebp+var_4A], 21h
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], edi
		call	MiWalkPageTables
		mov	ecx, [ebp+var_4]
		pop	edi
		xor	ecx, ebp
		pop	esi
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	4
_MiMarkNonPagedHiberPhasePages@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


PopAllocatePages proc near		; CODE XREF: PopAllocateOwnMemory+1Dp
					; PopAllocateHiberContext+264p	...

; FUNCTION CHUNK AT 00729ABA SIZE 00000015 BYTES

		add	ds:_PopNumberOfPagesForHibernateProcess, ecx
		push	esi
		xor	esi, esi
		call	_PopGenerateMdl@4 ; PopGenerateMdl(x)
		test	eax, eax
		jz	loc_729ABA
		push	40000020h
		push	1
		push	esi
		push	1
		push	esi
		push	eax
		call	MmMapLockedPagesSpecifyCache
		mov	esi, eax
		test	esi, esi
		jz	loc_729ABA
		mov	ecx, ds:dword_6C26F8
		cmp	dword ptr [ecx+80h], 0
		jl	loc_729ABA

loc_721A4A:				; CODE XREF: PopAllocatePages+80C4j
		mov	eax, esi
		pop	esi
		retn
PopAllocatePages endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MiMirrorBrownPhase(x)
_MiMirrorBrownPhase@4 proc near		; CODE XREF: MmDuplicateMemory(x)+1A5p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		test	al, 0C0h
		jnz	loc_721B2A
		and	[ebp+var_8], 0
		test	al, 0Ah
		push	0
		pop	eax
		setz	al
		xor	ecx, ecx
		mov	[ebp+var_C], eax
		jmp	loc_721B1B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721A7C:				; CODE XREF: MiMirrorBrownPhase(x)+D6j
		test	dword ptr [esi+4], 100h
		mov	eax, [edi]
		mov	[ebp+var_4], eax
		jz	short loc_721A95
		cmp	eax, offset _MiSystemPartition
		jnz	loc_721B19

loc_721A95:				; CODE XREF: MiMirrorBrownPhase(x)+3Aj
		xor	ebx, ebx

loc_721A97:				; CODE XREF: MiMirrorBrownPhase(x)+C0j
		push	2
		pop	edx
		mov	ecx, offset dword_6D305C
		call	_MiActOnMirrorBitmap@8 ; MiActOnMirrorBitmap(x,x)
		cmp	ebx, [ebp+var_C]
		jnz	short loc_721ABA
		cmp	byte ptr [esi+10h], 0
		jnz	short loc_721ABA
		mov	byte ptr [esi+10h], 1
		lock inc ds:dword_6D34D0

loc_721ABA:				; CODE XREF: MiMirrorBrownPhase(x)+59j
					; MiMirrorBrownPhase(x)+5Fj
		mov	eax, [esi+4]
		test	eax, 400h
		jnz	short loc_721AC8
		test	al, 4
		jz	short loc_721ACD

loc_721AC8:				; CODE XREF: MiMirrorBrownPhase(x)+74j
		mov	eax, [esi+8]
		jmp	short loc_721ADB
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721ACD:				; CODE XREF: MiMirrorBrownPhase(x)+78j
		test	al, 10h
		jnz	short loc_721AD9
		mov	ecx, [ebp+var_4]
		call	_MiEmptyAllWorkingSets@4 ; MiEmptyAllWorkingSets(x)

loc_721AD9:				; CODE XREF: MiMirrorBrownPhase(x)+81j
		xor	eax, eax

loc_721ADB:				; CODE XREF: MiMirrorBrownPhase(x)+7Dj
		mov	edx, [ebp+var_4]
		mov	ecx, esi
		push	eax
		push	dword ptr [esi+0Ch]
		call	MiMirrorGatherBrownPages
		mov	edx, [esi+4]
		lea	eax, [ebp+var_8]
		mov	ecx, [esi]
		push	eax
		call	MiMirrorPerformBrownWrites
		mov	[ebp+var_10], eax
		test	eax, eax
		js	short loc_721B3A
		cmp	byte ptr [esi+10h], 1
		jz	short loc_721B10
		cmp	[ebp+var_8], 400h
		jb	short loc_721B10
		inc	ebx
		jmp	short loc_721A97
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721B10:				; CODE XREF: MiMirrorBrownPhase(x)+B4j
					; MiMirrorBrownPhase(x)+BDj
		test	dword ptr [esi+4], 100h
		jnz	short loc_721B31

loc_721B19:				; CODE XREF: MiMirrorBrownPhase(x)+41j
		mov	ecx, edi

loc_721B1B:				; CODE XREF: MiMirrorBrownPhase(x)+29j
		call	_PsGetNextPartition@4 ;	PsGetNextPartition(x)
		mov	edi, eax
		test	edi, edi
		jnz	loc_721A7C

loc_721B2A:				; CODE XREF: MiMirrorBrownPhase(x)+12j
					; MiMirrorBrownPhase(x)+EAj
		xor	eax, eax

loc_721B2C:				; CODE XREF: MiMirrorBrownPhase(x)+F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721B31:				; CODE XREF: MiMirrorBrownPhase(x)+C9j
		mov	ecx, edi
		call	_PsQuitNextPartition@4 ; PsQuitNextPartition(x)
		jmp	short loc_721B2A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721B3A:				; CODE XREF: MiMirrorBrownPhase(x)+AEj
		mov	ecx, edi
		call	_PsQuitNextPartition@4 ; PsQuitNextPartition(x)
		mov	eax, [ebp+var_10]
		jmp	short loc_721B2C
_MiMirrorBrownPhase@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopMirrorPhysicalMemory(x, x, x, x)
_PopMirrorPhysicalMemory@16 proc near	; DATA XREF: PopTransitionToSleep+65o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, ds:dword_6C26F8
		xor	esi, esi
		test	edi, edi
		jz	short loc_721B8C
		mov	ecx, [ebp+arg_8]
		mov	eax, [ebp+arg_C]
		add	ecx, 0FFFh
		adc	eax, esi
		shrd	ecx, eax, 0Ch
		test	ecx, ecx
		jz	short loc_721B93

loc_721B6F:				; CODE XREF: PopMirrorPhysicalMemory(x,x,x,x)+50j
		mov	edx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+arg_4]
		shrd	edx, ecx, 0Ch
		lea	ecx, [edi+28h]
		push	edx
		push	ecx
		call	_RtlClearBits@12 ; RtlClearBits(x,x,x)

loc_721B84:				; CODE XREF: PopMirrorPhysicalMemory(x,x,x,x)+4Bj
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebp
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721B8C:				; CODE XREF: PopMirrorPhysicalMemory(x,x,x,x)+11j
		mov	esi, 0C000009Ah
		jmp	short loc_721B84
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721B93:				; CODE XREF: PopMirrorPhysicalMemory(x,x,x,x)+27j
		xor	ecx, ecx
		inc	ecx
		jmp	short loc_721B6F
_PopMirrorPhysicalMemory@16 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopBootLoaderTraceCopyPfnList(x, x)
_PopBootLoaderTraceCopyPfnList@8 proc near ; CODE XREF:	PopBuildMemoryImageHeader(x,x)+11Bp

var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		mov	eax, ecx
		mov	ebx, edx
		push	esi
		push	edi
		mov	[ebp+var_4], eax
		mov	edi, [eax+90h]
		test	edi, edi
		jz	short loc_721BFC
		mov	esi, [edi+14h]
		add	edi, 1Ch
		shr	esi, 0Ch
		mov	eax, esi
		shl	eax, 2
		push	eax		; size_t
		lea	eax, [ebx+270h]
		push	edi		; void *
		push	eax		; void *
		call	_memcpy
		add	esp, 0Ch
		mov	[ebx+26Ch], esi
		test	esi, esi
		jz	short loc_721C03
		mov	ebx, [ebp+var_4]

loc_721BDE:				; CODE XREF: PopBootLoaderTraceCopyPfnList(x,x)+60j
		push	644D6946h
		push	1
		push	dword ptr [edi]
		push	0C000h
		push	ebx
		call	PoSetHiberRange
		lea	edi, [edi+4]
		sub	esi, 1
		jnz	short loc_721BDE
		jmp	short loc_721C03
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_721BFC:				; CODE XREF: PopBootLoaderTraceCopyPfnList(x,x)+18j
		and	dword ptr [ebx+26Ch], 0

loc_721C03:				; CODE XREF: PopBootLoaderTraceCopyPfnList(x,x)+41j
					; PopBootLoaderTraceCopyPfnList(x,x)+62j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
_PopBootLoaderTraceCopyPfnList@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MiMarkHiberNotCachedPages()
_MiMarkHiberNotCachedPages@0 proc near	; CODE XREF: MmMarkHiberPhase()+20Ap

var_50		= dword	ptr -50h
var_4A		= byte ptr -4Ah
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	4Ch		; size_t
		lea	eax, [ebp+var_50]
		push	0		; int
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		mov	[ebp+var_10], offset MiMarkHiberNotCachedPte
		mov	eax, 0B01h
		mov	word ptr [ebp+var_50], ax
		push	3
		pop	ecx
		call	_MiGetAnyMultiplexedVm@4 ; MiGetAnyMultiplexedVm(x)
		or	[ebp+var_38], 0FFFFFFFFh
		lea	ecx, [ebp+var_50]
		mov	[ebp+var_40], eax
		mov	eax, ds:_MmSystemRangeStart
		mov	[ebp+var_4A], 21h
		mov	[ebp+var_3C], eax
		call	MiWalkPageTables
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
_MiMarkHiberNotCachedPages@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall MiMarkKernelPageTablePages()
_MiMarkKernelPageTablePages@0 proc near	; CODE XREF: MmMarkHiberPhase()+18p

var_50		= dword	ptr -50h
var_4A		= byte ptr -4Ah
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	4Ch		; size_t
		lea	eax, [ebp+var_50]
		push	0		; int
		push	eax		; void *
		call	_memset
		mov	eax, 901h
		mov	[ebp+var_10], offset _MiMarkKernelPageTablePte@12 ; MiMarkKernelPageTablePte(x,x,x)
		mov	word ptr [ebp+var_50], ax
		add	esp, 0Ch
		mov	al, byte ptr [ebp+var_50+2]
		xor	ecx, ecx
		and	al, 0E7h
		inc	ecx
		or	al, 4
		mov	byte ptr [ebp+var_50+2], al
		call	_MiGetAnyMultiplexedVm@4 ; MiGetAnyMultiplexedVm(x)
		or	[ebp+var_38], 0FFFFFFFFh
		lea	ecx, [ebp+var_50]
		mov	[ebp+var_40], eax
		mov	eax, ds:_MmSystemRangeStart
		mov	[ebp+var_4A], 21h
		mov	[ebp+var_3C], eax
		call	MiWalkPageTables
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
_MiMarkKernelPageTablePages@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopGenerateUnHibernatedMdl(x, x)
_PopGenerateUnHibernatedMdl@8 proc near	; CODE XREF: PopAllocateHiberContext+2FBp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		rdtsc
		push	ebx
		mov	[ebp+var_C], edx
		mov	edx, ds:_PopHiberScratchPages
		push	esi
		mov	[ebp+var_4], ecx
		mov	[ebp+var_8], eax
		call	_PopGenerateScratchMdl@8 ; PopGenerateScratchMdl(x,x)
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_721D36
		mov	ecx, [ebx+14h]
		mov	esi, ecx
		and	esi, 0FFFh
		neg	esi
		push	edi
		sbb	esi, esi
		shr	ecx, 0Ch
		neg	esi
		push	0
		pop	edi
		add	esi, ecx
		jz	short loc_721D35
		mov	eax, [ebp+var_4]
		add	eax, 20h
		mov	[ebp+var_4], eax

loc_721D21:				; CODE XREF: PopGenerateUnHibernatedMdl(x,x)+5Dj
		push	1
		push	dword ptr [ebx+edi*4+1Ch]
		push	eax
		call	_RtlSetBits@12	; RtlSetBits(x,x,x)
		mov	eax, [ebp+var_4]
		inc	edi
		cmp	edi, esi
		jb	short loc_721D21

loc_721D35:				; CODE XREF: PopGenerateUnHibernatedMdl(x,x)+40j
		pop	edi

loc_721D36:				; CODE XREF: PopGenerateUnHibernatedMdl(x,x)+24j
		rdtsc
		sub	eax, [ebp+var_8]
		pop	esi
		sbb	edx, [ebp+var_C]
		add	ds:dword_6C28C8, eax
		mov	eax, ebx
		pop	ebx
		adc	ds:dword_6C28CC, edx
		leave
		retn
_PopGenerateUnHibernatedMdl@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopGetBitlockerKeyLocation proc	near	; CODE XREF: PopAllocateHiberContext+1F7p

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729ACF SIZE 00000093 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[ebp+var_38], ecx
		lea	edi, [ebp+var_14]
		xor	ebx, ebx
		stosd
		push	offset ??_C@_1GG@KMAKALDL@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy?$AA?2?$AAM?$AAa?$AAc?$AAh?$AAi@OKHAJAOM@
		mov	[ebp+var_40], ebx
		mov	[ebp+var_3C], ebx
		stosd
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], ebx
		mov	[ebp+var_1C], ebx
		stosd
		mov	[ebp+var_18], ebx
		stosd
		lea	eax, [ebp+var_40]
		mov	edi, ebx
		push	eax
		mov	[ebp+var_2C], edi
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		lea	eax, [ebp+var_40]
		mov	[ebp+var_58], 18h
		mov	[ebp+var_50], eax
		lea	eax, [ebp+var_58]
		push	eax
		push	20019h
		lea	eax, [ebp+var_18]
		mov	[ebp+var_54], ebx
		push	eax
		mov	[ebp+var_4C], 240h
		mov	[ebp+var_48], ebx
		mov	[ebp+var_44], ebx
		call	_ZwOpenKey@12	; ZwOpenKey(x,x,x)
		mov	esi, eax
		test	esi, esi
		js	loc_721E8A
		push	(offset	loc_727F43+1)
		lea	eax, [ebp+var_34]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		lea	eax, [ebp+var_1C]
		push	eax
		push	10h
		lea	eax, [ebp+var_14]
		push	eax
		push	2
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+var_18]
		call	_ZwQueryValueKey@24 ; ZwQueryValueKey(x,x,x,x,x,x)
		mov	esi, eax
		mov	[ebp+var_28], esi
		test	esi, esi
		jns	short loc_721E08
		cmp	esi, 80000005h
		jnz	short loc_721E4E

loc_721E08:				; CODE XREF: PopGetBitlockerKeyLocation+AEj
		cmp	[ebp+var_10], 1
		jnz	loc_729ACF
		mov	esi, [ebp+var_1C]
		push	66756263h
		lea	eax, [esi+2]
		push	eax
		push	200h
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	edi, eax
		mov	[ebp+var_2C], edi
		test	edi, edi
		jz	loc_729AD9
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	edi
		push	2
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+var_18]
		call	_ZwQueryValueKey@24 ; ZwQueryValueKey(x,x,x,x,x,x)
		mov	esi, eax
		mov	[ebp+var_28], eax

loc_721E4E:				; CODE XREF: PopGetBitlockerKeyLocation+B6j
		test	esi, esi
		js	short loc_721E7B
		mov	eax, [edi+8]
		xor	ecx, ecx
		push	offset ??_C@_1BC@KEMNALNF@?$AAF?$AAV?$AAE?$AAB?$AAO?$AAO?$AAT?$AA?$DN@OKHAJAOM@	; wchar_t *
		mov	[eax+edi+0Ch], cx
		lea	eax, [edi+0Ch]
		push	eax		; wchar_t *
		call	_wcsstr
		pop	ecx
		pop	ecx
		mov	ecx, eax
		test	ecx, ecx
		jnz	loc_729AE3

loc_721E76:				; CODE XREF: PopGetBitlockerKeyLocation+7DFCj
		mov	esi, 0C0000001h

loc_721E7B:				; CODE XREF: PopGetBitlockerKeyLocation+100j
					; PopGetBitlockerKeyLocation+7E0Dj
		test	edi, edi
		jz	short loc_721E8A
		push	66756263h
		push	edi
		call	_ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)

loc_721E8A:				; CODE XREF: PopGetBitlockerKeyLocation+7Bj
					; PopGetBitlockerKeyLocation+12Dj ...
		cmp	[ebp+var_18], 0
		jz	short loc_721E98
		push	[ebp+var_18]
		call	_ZwClose@4	; ZwClose(x)

loc_721E98:				; CODE XREF: PopGetBitlockerKeyLocation+13Ej
		mov	ecx, [ebp+var_4]
		mov	eax, esi
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
PopGetBitlockerKeyLocation endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopGetHwConfigurationSignature proc near ; CODE	XREF: PopAllocateHiberContext+1E2p

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729B62 SIZE 0000001B BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		push	4
		pop	ebx
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_18], 41435049h
		push	eax
		push	14h
		xor	esi, esi
		mov	[ebp+var_14], 1
		lea	eax, [ebp+var_18]
		mov	[ebp+var_20], esi
		push	eax
		push	4Ch
		mov	[ebp+var_8], esi
		mov	[ebp+var_24], esi
		mov	[ebp+var_10], 50434146h
		mov	[ebp+var_C], esi
		mov	[ebp+var_1C], esi
		call	_ZwQuerySystemInformation@16 ; ZwQuerySystemInformation(x,x,x,x)
		cmp	eax, 0C0000023h
		jnz	loc_721FA8
		push	206D654Dh
		push	[ebp+var_1C]
		push	200h
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	edi, eax
		test	edi, edi
		jz	loc_721FA8
		mov	dword ptr [edi], 41435049h
		mov	dword ptr [edi+4], 1
		mov	dword ptr [edi+8], 50434146h
		mov	eax, [ebp+var_1C]
		add	eax, 0FFFFFFF0h
		mov	[edi+0Ch], eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_1C]
		push	edi
		push	4Ch
		call	_ZwQuerySystemInformation@16 ; ZwQuerySystemInformation(x,x,x,x)
		test	eax, eax
		js	short loc_721F91
		cmp	byte ptr [edi+18h], 5
		jb	short loc_721F91
		mov	eax, [edi+34h]
		lea	ecx, [ebp+var_20]
		push	ecx
		push	esi
		push	40h
		push	esi
		push	eax
		mov	[ebp+var_28], eax
		call	ds:__imp__HalGetMemoryCachingRequirements@20 ; HalGetMemoryCachingRequirements(x,x,x,x,x)
		cmp	[ebp+var_20], 1
		jnz	loc_729B62

loc_721F75:				; CODE XREF: PopGetHwConfigurationSignature+7CCEj
		push	ebx
		push	40h
		push	esi
		push	[ebp+var_28]
		call	_MmMapIoSpaceEx@16 ; MmMapIoSpaceEx(x,x,x,x)
		mov	esi, eax
		cmp	dword ptr [esi], 53434146h
		jnz	short loc_721F91
		mov	eax, [esi+8]
		mov	[ebp+var_24], eax

loc_721F91:				; CODE XREF: PopGetHwConfigurationSignature+A4j
					; PopGetHwConfigurationSignature+AAj ...
		push	206D654Dh
		push	edi
		call	_ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)
		test	esi, esi
		jz	short loc_721FA8
		push	40h
		push	esi
		call	MmUnmapIoSpace

loc_721FA8:				; CODE XREF: PopGetHwConfigurationSignature+54j
					; PopGetHwConfigurationSignature+70j ...
		mov	ecx, [ebp+var_4]
		mov	eax, [ebp+var_24]
		xor	ecx, ebp
		pop	edi
		pop	esi
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
PopGetHwConfigurationSignature endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

MiConvertHiberPhasePte proc near	; DATA XREF: MiConvertHiberPhasePages(x)+25o

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 00729B7D SIZE 00000062 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		mov	edi, [esi]
		nop
		mov	ebx, [esi+4]
		mov	ecx, esi
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		mov	[ebp+arg_4], eax
		test	eax, eax
		jz	short loc_721FED
		push	ebx
		push	edi
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	edi, eax
		mov	ebx, edx

loc_721FED:				; CODE XREF: MiConvertHiberPhasePte+20j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		cmp	dword ptr [eax+48h], 0
		jz	loc_7220A1
		mov	eax, edi
		and	eax, 1
		or	eax, 0
		jz	loc_7220AD
		cmp	[ebp+arg_8], 0
		jnz	loc_7220AD
		mov	edx, edi
		nop
		lea	ecx, [ebp+var_8]
		call	_MiPteInShadowRange@4 ;	MiPteInShadowRange(x)
		test	eax, eax
		jz	loc_729B7D
		push	ebx
		push	edx
		call	_MiReadPteShadow@12 ; MiReadPteShadow(x,x,x)
		mov	[ebp+arg_4], eax
		mov	eax, edx
		mov	edx, [ebp+arg_4]

loc_72203A:				; CODE XREF: MiConvertHiberPhasePte+7BBFj
		shrd	edx, eax, 0Ch
		and	edx, 1FFFFFFh
		mov	ecx, edx
		mov	[ebp+arg_4], edx
		call	_MiIsPfn@4	; MiIsPfn(x)
		test	eax, eax
		jz	short loc_7220AD
		mov	edx, [ebp+arg_4]
		cmp	edx, ds:dword_6D34E4
		jz	short loc_7220AD
		cmp	edx, ds:dword_6D34F0
		jz	short loc_7220AD
		mov	eax, [ebp+arg_0]
		mov	ecx, edx
		shr	ecx, 5
		and	edx, 1Fh
		mov	eax, [eax+48h]
		mov	eax, [eax+4]
		mov	eax, [eax+ecx*4]
		mov	ecx, edx
		sar	eax, cl
		test	al, 1
		jnz	short loc_7220AD
		and	edi, 0FFFFFFFEh
		mov	[ebp+var_4], ebx
		or	edi, 404h
		mov	[ebp+var_8], edi
		mov	[esi], edi
		nop
		pop	edi
		mov	[esi+4], ebx
		xor	eax, eax
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7220A1:				; CODE XREF: MiConvertHiberPhasePte+3Aj
		lea	ecx, [ebp+var_8]
		call	_MI_CHECK_HIBER_VERIFY_PTE@4 ; MI_CHECK_HIBER_VERIFY_PTE(x)
		test	eax, eax
		jnz	short loc_7220B8

loc_7220AD:				; CODE XREF: MiConvertHiberPhasePte+48j
					; MiConvertHiberPhasePte+52j ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7220B8:				; CODE XREF: MiConvertHiberPhasePte+EBj
		and	edi, 0FFFFFBFBh
		mov	[ebp+var_4], ebx
		mov	ecx, edi
		xor	edx, edx
		or	ecx, 1
		mov	[ebp+var_8], ecx
		cmp	[ebp+arg_4], edx
		jnz	loc_729B84

loc_7220D4:				; CODE XREF: MiConvertHiberPhasePte+7BD9j
					; MiConvertHiberPhasePte+7BFBj	...
		mov	[esi+4], ebx
		nop
		mov	[esi], ecx
		test	edx, edx
		jz	short loc_7220AD
		jmp	loc_729BD1
MiConvertHiberPhasePte endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopSystemIrpCompletion proc near	; CODE XREF: PoFxReportDevicePoweredOn+892C6p
					; DATA XREF: PopNotifyDevice+9Eo

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 00729BDF SIZE 00000072 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_8]
		mov	cl, ds:_PopErrataDisablePrimaryDeviceFastResume
		push	ebx
		push	esi
		mov	ebx, [eax+84h]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_24], edi
		mov	[ebp+var_1D], cl
		movsx	eax, byte ptr [edi+22h]
		add	eax, 3
		imul	eax, 24h
		test	ds:dword_70EFD0, 8000h
		mov	esi, [eax+edi]
		mov	esi, [esi+70h]
		jnz	loc_729BDF

loc_722131:				; CODE XREF: PopSystemIrpCompletion+7B36j
		cmp	ds:_PopPoFxSystemIrpWaitForReportDevicePoweredReg, 0
		jnz	short loc_72213E
		test	cl, cl
		jz	short loc_722147

loc_72213E:				; CODE XREF: PopSystemIrpCompletion+54j
		cmp	esi, 1
		jz	loc_7221CC

loc_722147:				; CODE XREF: PopSystemIrpCompletion+58j
					; PopSystemIrpCompletion+10Aj
		mov	esi, ds:dword_6C2314
		and	esi, (offset loc_7FFFFF+1)
		neg	esi
		sbb	esi, esi
		not	esi
		and	esi, [edi+18h]
		jl	loc_729C42
		and	[ebp+var_24], 0

loc_722166:				; CODE XREF: PopSystemIrpCompletion+7B68j
		mov	ecx, edi
		call	PopDequeueQuerySetIrp
		mov	ecx, edi
		call	_PopFreeIrp@4	; PopFreeIrp(x)
		mov	edi, ds:dword_6C231C
		mov	al, [edi]
		cmp	al, 2
		jnz	short loc_7221F3

loc_722180:				; CODE XREF: PopSystemIrpCompletion+111j
		cmp	dword ptr [edi+4], 1
		jle	short loc_72219B
		mov	ecx, [ebx-4Ch]
		call	_PopFxIncrementDeviceSleepCount@4 ; PopFxIncrementDeviceSleepCount(x)
		mov	ecx, [ebx-4Ch]
		mov	edx, 72496F50h
		call	ObfDereferenceObjectWithTag

loc_72219B:				; CODE XREF: PopSystemIrpCompletion+A0j
					; PopSystemIrpCompletion+113j
		push	[ebp+var_24]
		mov	edx, ebx
		mov	ecx, edi
		push	esi
		call	PopCompleteNotifyTransitionCommon
		push	0
		push	1
		push	0
		push	dword ptr [edi+18h]
		call	KeReleaseSemaphore

loc_7221B6:				; CODE XREF: PopSystemIrpCompletion+7B59j
		mov	ecx, [ebp+var_8]
		mov	eax, 0C0000016h
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7221CC:				; CODE XREF: PopSystemIrpCompletion+5Dj
		lea	esi, [ebx-30h]
		push	esi
		call	ExAcquireSpinLockExclusive
		mov	ecx, [ebx-34h]
		mov	[ebp+var_1D], al
		test	ecx, ecx
		jnz	short loc_7221F9

loc_7221DF:				; CODE XREF: PopSystemIrpCompletion+119j
					; PopSystemIrpCompletion+134j
		push	esi
		call	ExReleaseSpinLockExclusiveFromDpcLevel
		mov	cl, [ebp+var_1D]
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		jmp	loc_722147
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7221F3:				; CODE XREF: PopSystemIrpCompletion+9Aj
		cmp	al, 3
		jz	short loc_722180
		jmp	short loc_72219B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7221F9:				; CODE XREF: PopSystemIrpCompletion+F9j
		cmp	dword ptr [ecx+48h], 0
		jz	short loc_7221DF
		add	ecx, 10h
		xor	edi, edi
		mov	eax, [ecx]

loc_722206:				; CODE XREF: PopSystemIrpCompletion+12Aj
		mov	edx, eax
		or	edx, edi
		lock cmpxchg [ecx], edx
		jnz	short loc_722206
		mov	edi, [ebp+var_24]
		test	eax, 800h
		jz	short loc_7221DF
		jmp	loc_729C1F
PopSystemIrpCompletion endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopBuildDeviceNotifyList proc near	; CODE XREF: PopGracefulShutdown(x)+23Dp
					; PoInitializeBroadcast+A1p

var_58		= dword	ptr -58h
var_30		= dword	ptr -30h
var_10		= dword	ptr -10h

; FUNCTION CHUNK AT 00729C51 SIZE 00000012 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		xor	eax, eax
		push	ebx
		push	esi
		push	edi
		push	8
		mov	ebx, ecx
		lea	edi, [ebp+var_30]
		pop	ecx
		rep stosd
		lea	edi, [ebp+var_10]
		mov	esi, edx
		stosd
		push	0Ah
		pop	ecx
		stosd
		stosd
		stosd
		xor	eax, eax
		lea	edi, [ebp+var_58]
		rep stosd
		xor	edi, edi
		lea	eax, [ebp+var_10]
		push	edi
		push	1
		push	eax
		call	_KeInitializeEvent@12 ;	KeInitializeEvent(x,x,x)
		push	edi
		lea	eax, [ebp+var_58]
		push	eax
		call	_KeInitializeTimerEx@8 ; KeInitializeTimerEx(x,x)
		lea	eax, [ebp+var_10]
		push	eax
		push	offset _PopBuildDeviceNotifyListWatchdog@16 ; PopBuildDeviceNotifyListWatchdog(x,x,x,x)
		lea	eax, [ebp+var_30]
		push	eax
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	eax, ds:_PopWatchdogSleepTimeout
		test	eax, eax
		jz	short loc_722295
		mov	ecx, 0FF676980h
		imul	ecx
		lea	ecx, [ebp+var_58]
		push	edx
		push	eax
		lea	eax, [ebp+var_30]
		xor	edx, edx
		push	eax
		push	edi
		call	KiSetTimerEx

loc_722295:				; CODE XREF: PopBuildDeviceNotifyList+5Bj
		mov	ecx, offset _POP_ETW_EVENT_BUILDNOTIFYLIST
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		mov	edx, esi
		mov	ecx, ebx
		call	IoBuildPoDeviceNotifyList
		mov	ecx, (offset loc_40673F+1)
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		cmp	ds:_PopWatchdogSleepTimeout, edi
		jz	short loc_7222CB
		lea	eax, [ebp+var_58]
		push	eax
		call	_KeCancelTimer@4 ; KeCancelTimer(x)
		test	al, al
		jz	loc_729C51

loc_7222CB:				; CODE XREF: PopBuildDeviceNotifyList+98j
					; PopBuildDeviceNotifyList+7A3Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
PopBuildDeviceNotifyList endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

IoBuildPoDeviceNotifyList proc near	; CODE XREF: PopBuildDeviceNotifyList+83p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729C63 SIZE 00000052 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		lea	eax, [ebp+var_10]
		mov	ebx, edx
		mov	[ebp+var_C], eax
		mov	esi, ecx
		mov	[ebp+var_4], esi
		push	edi
		mov	edi, eax
		lea	eax, [ebp+var_18]
		mov	[ebp+var_10], edi
		mov	[ebp+var_14], eax
		mov	[ebp+var_18], eax
		test	bl, 1
		jnz	short loc_722303
		call	PnpLockDeviceActionQueue
		mov	edi, [ebp+var_10]

loc_722303:				; CODE XREF: IoBuildPoDeviceNotifyList+29j
		push	0D0h		; size_t
		push	0		; int
		push	esi		; void *
		call	_memset
		add	esp, 0Ch
		mov	[esi+0D0h], ebx
		lea	ecx, [esi+1Ch]
		push	5
		pop	edx

loc_72231F:				; CODE XREF: IoBuildPoDeviceNotifyList+74j
		lea	eax, [ecx-0Ch]
		mov	[ecx-8], eax
		mov	[eax], eax
		lea	eax, [ecx-4]
		mov	[ecx], eax
		mov	[eax], eax
		lea	eax, [ecx+4]
		mov	[ecx+8], eax
		mov	[eax], eax
		lea	eax, [ecx+0Ch]
		mov	[ecx+10h], eax
		lea	ecx, [ecx+28h]
		mov	[eax], eax
		sub	edx, 1
		jnz	short loc_72231F
		mov	esi, ds:_IopRootDeviceNode
		jmp	short loc_722350
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72234E:				; CODE XREF: IoBuildPoDeviceNotifyList+85j
		mov	esi, eax

loc_722350:				; CODE XREF: IoBuildPoDeviceNotifyList+7Cj
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_72234E
		cmp	esi, ds:_IopRootDeviceNode
		jz	loc_7223F6

loc_722363:				; CODE XREF: IoBuildPoDeviceNotifyList+D4j
		mov	ecx, esi
		call	_IopPrepareDeviceNotify@4 ; IopPrepareDeviceNotify(x)
		mov	edi, eax
		mov	edx, 2000h
		mov	ecx, edi
		mov	byte ptr [edi+1Ch], 0
		call	_IopCheckDeviceFlags@8 ; IopCheckDeviceFlags(x,x)
		test	al, al
		jz	short loc_722384
		or	byte ptr [edi+1Ch], 2

loc_722384:				; CODE XREF: IoBuildPoDeviceNotifyList+AEj
		lea	ecx, [esi+8]
		mov	eax, [ecx]
		cmp	eax, ds:_IopRootDeviceNode
		jz	short loc_7223B0

loc_722391:				; CODE XREF: IoBuildPoDeviceNotifyList+E7j
					; IoBuildPoDeviceNotifyList+F0j ...
		mov	esi, [esi]
		test	esi, esi
		jz	short loc_7223A8

loc_722397:				; CODE XREF: IoBuildPoDeviceNotifyList+DEj
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_7223AC

loc_72239E:				; CODE XREF: IoBuildPoDeviceNotifyList+DAj
		cmp	esi, ds:_IopRootDeviceNode
		jnz	short loc_722363
		jmp	short loc_7223F3
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7223A8:				; CODE XREF: IoBuildPoDeviceNotifyList+C5j
		mov	esi, [ecx]
		jmp	short loc_72239E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7223AC:				; CODE XREF: IoBuildPoDeviceNotifyList+CCj
		mov	esi, eax
		jmp	short loc_722397
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7223B0:				; CODE XREF: IoBuildPoDeviceNotifyList+BFj
		cmp	dword ptr [esi+12Ch], 0
		jz	short loc_722391
		test	byte ptr [esi+10Ch], 4
		jnz	short loc_722391
		mov	eax, [ebp+var_C]
		lea	edx, [ebp+var_10]
		cmp	[eax], edx
		jnz	loc_722719
		mov	[edi], edx
		mov	[edi+4], eax
		mov	[eax], edi
		mov	[ebp+var_C], edi
		jmp	short loc_722391
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7223DC:				; CODE XREF: IoBuildPoDeviceNotifyList+121j
		or	byte ptr [eax+78h], 1
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_722431

loc_7223E6:				; CODE XREF: IoBuildPoDeviceNotifyList+11Dj
		mov	eax, ecx
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_7223E6

loc_7223EF:				; CODE XREF: IoBuildPoDeviceNotifyList+158j
					; IoBuildPoDeviceNotifyList+164j
		cmp	eax, edi
		jnz	short loc_7223DC

loc_7223F3:				; CODE XREF: IoBuildPoDeviceNotifyList+D6j
		mov	edi, [ebp+var_10]

loc_7223F6:				; CODE XREF: IoBuildPoDeviceNotifyList+8Dj
		lea	eax, [ebp+var_10]
		cmp	edi, eax
		jz	short loc_722436
		cmp	[edi+4], eax
		jnz	loc_722719
		mov	eax, [edi]
		cmp	[eax+4], edi
		jnz	loc_722719
		mov	[ebp+var_10], eax
		lea	ecx, [ebp+var_10]
		mov	[eax+4], ecx
		or	byte ptr [edi+1Ch], 1
		add	edi, 0FFFFFFA4h
		mov	eax, edi
		mov	ecx, [edi+4]

loc_722426:				; CODE XREF: IoBuildPoDeviceNotifyList+15Fj
		test	ecx, ecx
		jz	short loc_7223EF
		mov	eax, ecx
		mov	ecx, [eax+4]
		jmp	short loc_722426
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722431:				; CODE XREF: IoBuildPoDeviceNotifyList+114j
		mov	eax, [eax+8]
		jmp	short loc_7223EF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722436:				; CODE XREF: IoBuildPoDeviceNotifyList+12Bj
					; IoBuildPoDeviceNotifyList+20Dj
		mov	ecx, ds:_IopRootDeviceNode
		xor	bh, bh
		jmp	short loc_722442
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722440:				; CODE XREF: IoBuildPoDeviceNotifyList+177j
		mov	ecx, eax

loc_722442:				; CODE XREF: IoBuildPoDeviceNotifyList+16Ej
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short loc_722440
		jmp	short loc_722467
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72244B:				; CODE XREF: IoBuildPoDeviceNotifyList+182j
		mov	eax, edx
		mov	edx, [eax+4]

loc_722450:				; CODE XREF: IoBuildPoDeviceNotifyList+1ABj
		test	edx, edx
		jnz	short loc_72244B

loc_722454:				; CODE XREF: IoBuildPoDeviceNotifyList+1C3j
					; IoBuildPoDeviceNotifyList+1CAj
		cmp	eax, ecx
		jnz	short loc_722482

loc_722458:				; CODE XREF: IoBuildPoDeviceNotifyList+1A4j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_72247D

loc_72245E:				; CODE XREF: IoBuildPoDeviceNotifyList+195j
		mov	ecx, eax
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short loc_72245E

loc_722467:				; CODE XREF: IoBuildPoDeviceNotifyList+179j
					; IoBuildPoDeviceNotifyList+1B0j
		mov	eax, ds:_IopRootDeviceNode
		cmp	ecx, eax
		jz	short loc_72249E
		test	byte ptr [ecx+78h], 2
		jz	short loc_722458
		mov	edx, [ecx+4]
		mov	eax, ecx
		jmp	short loc_722450
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72247D:				; CODE XREF: IoBuildPoDeviceNotifyList+18Cj
		mov	ecx, [ecx+8]
		jmp	short loc_722467
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722482:				; CODE XREF: IoBuildPoDeviceNotifyList+186j
		or	byte ptr [eax+78h], 2
		mov	edx, [eax]
		test	edx, edx
		jz	short loc_722497

loc_72248C:				; CODE XREF: IoBuildPoDeviceNotifyList+1C5j
		mov	eax, edx
		mov	edx, [eax+4]
		test	edx, edx
		jz	short loc_722454
		jmp	short loc_72248C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722497:				; CODE XREF: IoBuildPoDeviceNotifyList+1BAj
		mov	eax, [eax+8]
		jmp	short loc_722454
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72249C:				; CODE XREF: IoBuildPoDeviceNotifyList+1D3j
		mov	eax, ecx

loc_72249E:				; CODE XREF: IoBuildPoDeviceNotifyList+19Ej
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_72249C
		mov	edi, ds:_IopRootDeviceNode
		cmp	eax, edi
		jz	short loc_7224EC

loc_7224AF:				; CODE XREF: IoBuildPoDeviceNotifyList+209j
		test	byte ptr [eax+78h], 2
		jz	short loc_7224C2
		lea	edx, [eax+64h]
		mov	ecx, [edx]

loc_7224BA:				; CODE XREF: IoBuildPoDeviceNotifyList+79A8j
		cmp	ecx, edx
		jnz	loc_729C63

loc_7224C2:				; CODE XREF: IoBuildPoDeviceNotifyList+1E3j
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_7224E5

loc_7224C8:				; CODE XREF: IoBuildPoDeviceNotifyList+1FFj
		mov	eax, ecx
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_7224C8

loc_7224D1:				; CODE XREF: IoBuildPoDeviceNotifyList+218j
		mov	edi, ds:_IopRootDeviceNode
		cmp	eax, edi
		jnz	short loc_7224AF
		test	bh, bh
		jnz	loc_722436
		jmp	short loc_7224EC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7224E5:				; CODE XREF: IoBuildPoDeviceNotifyList+1F6j
		mov	eax, [eax+8]
		jmp	short loc_7224D1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7224EA:				; CODE XREF: IoBuildPoDeviceNotifyList+221j
		mov	edi, eax

loc_7224EC:				; CODE XREF: IoBuildPoDeviceNotifyList+1DDj
					; IoBuildPoDeviceNotifyList+213j
		mov	eax, [edi+4]
		test	eax, eax
		jnz	short loc_7224EA
		jmp	short loc_722515
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7224F5:				; CODE XREF: IoBuildPoDeviceNotifyList+254j
		inc	al
		lea	ecx, [edi+5Ch]
		mov	[edi+78h], al
		call	_IopCheckDeviceType@8 ;	IopCheckDeviceType(x,x)
		test	al, al
		jnz	short loc_72252D

loc_722506:				; CODE XREF: IoBuildPoDeviceNotifyList+256j
					; IoBuildPoDeviceNotifyList+26Cj ...
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_722528

loc_72250C:				; CODE XREF: IoBuildPoDeviceNotifyList+243j
		mov	edi, eax
		mov	eax, [edi+4]
		test	eax, eax
		jnz	short loc_72250C

loc_722515:				; CODE XREF: IoBuildPoDeviceNotifyList+223j
					; IoBuildPoDeviceNotifyList+25Bj
		mov	esi, ds:_IopRootDeviceNode
		cmp	edi, esi
		jz	short loc_722543
		mov	al, [edi+78h]
		test	al, 2
		jnz	short loc_7224F5
		jmp	short loc_722506
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722528:				; CODE XREF: IoBuildPoDeviceNotifyList+23Aj
		mov	edi, [edi+8]
		jmp	short loc_722515
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72252D:				; CODE XREF: IoBuildPoDeviceNotifyList+234j
		mov	edx, 100h
		lea	ecx, [edi+5Ch]
		call	_IopCheckDeviceFlags@8 ; IopCheckDeviceFlags(x,x)
		test	al, al
		jz	short loc_722506
		jmp	loc_729C7D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722543:				; CODE XREF: IoBuildPoDeviceNotifyList+24Dj
					; IoBuildPoDeviceNotifyList+2EAj
		xor	bh, bh
		jmp	short loc_722549
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722547:				; CODE XREF: IoBuildPoDeviceNotifyList+27Ej
		mov	esi, eax

loc_722549:				; CODE XREF: IoBuildPoDeviceNotifyList+275j
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_722547
		jmp	short loc_722554
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722552:				; CODE XREF: IoBuildPoDeviceNotifyList+2A6j
		mov	esi, [edx]

loc_722554:				; CODE XREF: IoBuildPoDeviceNotifyList+280j
					; IoBuildPoDeviceNotifyList+2ADj
		mov	eax, ds:_IopRootDeviceNode
		cmp	esi, eax
		jz	short loc_722585
		lea	edx, [esi+8]
		mov	ecx, [edx]
		cmp	ecx, eax
		jz	short loc_722572
		mov	al, [esi+78h]
		cmp	[ecx+78h], al
		ja	loc_729C86

loc_722572:				; CODE XREF: IoBuildPoDeviceNotifyList+294j
					; IoBuildPoDeviceNotifyList+79B9j
		mov	esi, [esi]
		test	esi, esi
		jz	short loc_722552

loc_722578:				; CODE XREF: IoBuildPoDeviceNotifyList+2B1j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_722554
		mov	esi, eax
		jmp	short loc_722578
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722583:				; CODE XREF: IoBuildPoDeviceNotifyList+2BAj
		mov	eax, ecx

loc_722585:				; CODE XREF: IoBuildPoDeviceNotifyList+28Bj
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_722583
		mov	esi, ds:_IopRootDeviceNode
		cmp	eax, esi
		jz	short loc_7225BC

loc_722596:				; CODE XREF: IoBuildPoDeviceNotifyList+2E6j
		lea	edx, [eax+6Ch]
		mov	ecx, [edx]

loc_72259B:				; CODE XREF: IoBuildPoDeviceNotifyList+307j
		cmp	ecx, edx
		jnz	short loc_7225C6
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_7225C1

loc_7225A5:				; CODE XREF: IoBuildPoDeviceNotifyList+2DCj
		mov	eax, ecx
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_7225A5

loc_7225AE:				; CODE XREF: IoBuildPoDeviceNotifyList+2F4j
		mov	esi, ds:_IopRootDeviceNode
		cmp	eax, esi
		jnz	short loc_722596
		test	bh, bh
		jnz	short loc_722543

loc_7225BC:				; CODE XREF: IoBuildPoDeviceNotifyList+2C4j
		mov	[ebp+var_8], esi
		jmp	short loc_7225DE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7225C1:				; CODE XREF: IoBuildPoDeviceNotifyList+2D3j
		mov	eax, [eax+8]
		jmp	short loc_7225AE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7225C6:				; CODE XREF: IoBuildPoDeviceNotifyList+2CDj
		mov	esi, [ecx+14h]
		mov	bl, [eax+78h]
		cmp	[esi+1Ch], bl
		ja	loc_729C8E

loc_7225D5:				; CODE XREF: IoBuildPoDeviceNotifyList+79C3j
		mov	ecx, [ecx]
		jmp	short loc_72259B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7225D9:				; CODE XREF: IoBuildPoDeviceNotifyList+313j
		mov	esi, eax
		mov	[ebp+var_8], eax

loc_7225DE:				; CODE XREF: IoBuildPoDeviceNotifyList+2EFj
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_7225D9
		cmp	esi, ds:_IopRootDeviceNode
		jz	loc_72269E
		mov	ebx, [ebp+var_4]

loc_7225F4:				; CODE XREF: IoBuildPoDeviceNotifyList+3C8j
		mov	ecx, [ebx+0D0h]
		lea	edi, [esi+5Ch]
		mov	edx, edi
		call	IopIsNotifyInBroadcast
		test	al, al
		jz	loc_729C98
		movzx	eax, byte ptr [edi+1Ch]
		mov	ecx, [ebp+var_4]
		imul	eax, 28h
		inc	dword ptr [eax+ecx+8]
		mov	edx, [esi+8]
		cmp	edx, ds:_IopRootDeviceNode
		jz	short loc_722646
		mov	ecx, [ecx+0D0h]
		add	edx, 5Ch
		call	IopIsNotifyInBroadcast
		mov	ecx, [ebp+var_4]
		test	al, al
		jz	short loc_722646
		inc	dword ptr [edi+34h]
		mov	eax, [esi+8]
		inc	dword ptr [eax+88h]

loc_722646:				; CODE XREF: IoBuildPoDeviceNotifyList+353j
					; IoBuildPoDeviceNotifyList+368j
		lea	eax, [edi+10h]
		mov	ebx, [eax]
		cmp	ebx, eax
		jnz	short loc_7226C7

loc_72264F:				; CODE XREF: IoBuildPoDeviceNotifyList+41Bj
		lea	eax, [edi+8]
		mov	ebx, [eax]
		cmp	ebx, eax
		jnz	loc_7226F0

loc_72265C:				; CODE XREF: IoBuildPoDeviceNotifyList+444j
		movzx	eax, byte ptr [edi+1Ch]
		mov	ebx, [ebp+var_4]
		imul	eax, 28h
		add	eax, 10h
		add	eax, ebx
		mov	ecx, [eax+4]
		cmp	[ecx], eax
		jnz	loc_722719
		mov	[edi], eax
		mov	[edi+4], ecx
		mov	[ecx], edi
		mov	[eax+4], edi

loc_722680:				; CODE XREF: IoBuildPoDeviceNotifyList+79E0j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_7226B8
		mov	esi, eax
		mov	[ebp+var_8], esi

loc_72268B:				; CODE XREF: IoBuildPoDeviceNotifyList+3F5j
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_7226C0

loc_722692:				; CODE XREF: IoBuildPoDeviceNotifyList+3EEj
		cmp	esi, ds:_IopRootDeviceNode
		jnz	loc_7225F4

loc_72269E:				; CODE XREF: IoBuildPoDeviceNotifyList+31Bj
		lea	ecx, [ebp+var_18]
		call	_IopFreePoDeviceNotifyListHead@4 ; IopFreePoDeviceNotifyListHead(x)
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	dword ptr [eax+4], offset _IopWarmEjectPdo
		mov	byte ptr [eax],	1
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7226B8:				; CODE XREF: IoBuildPoDeviceNotifyList+3B4j
		mov	esi, [esi+8]
		mov	[ebp+var_8], esi
		jmp	short loc_722692
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7226C0:				; CODE XREF: IoBuildPoDeviceNotifyList+3C0j
		mov	esi, eax
		mov	[ebp+var_8], eax
		jmp	short loc_72268B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7226C7:				; CODE XREF: IoBuildPoDeviceNotifyList+37Dj
		lea	esi, [edi+10h]

loc_7226CA:				; CODE XREF: IoBuildPoDeviceNotifyList+416j
		mov	edx, [ebx+14h]
		mov	ecx, [ecx+0D0h]
		call	IopIsNotifyInBroadcast
		test	al, al
		jz	short loc_7226DF
		inc	dword ptr [edi+34h]

loc_7226DF:				; CODE XREF: IoBuildPoDeviceNotifyList+40Aj
		mov	ebx, [ebx]
		mov	ecx, [ebp+var_4]
		cmp	ebx, esi
		jnz	short loc_7226CA
		mov	esi, [ebp+var_8]
		jmp	loc_72264F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7226F0:				; CODE XREF: IoBuildPoDeviceNotifyList+386j
		lea	esi, [edi+8]

loc_7226F3:				; CODE XREF: IoBuildPoDeviceNotifyList+43Fj
		mov	eax, [ebp+var_4]
		mov	edx, [ebx-4]
		mov	ecx, [eax+0D0h]
		call	IopIsNotifyInBroadcast
		test	al, al
		jz	short loc_72270B
		inc	dword ptr [edi+2Ch]

loc_72270B:				; CODE XREF: IoBuildPoDeviceNotifyList+436j
		mov	ebx, [ebx]
		cmp	ebx, esi
		jnz	short loc_7226F3
		mov	esi, [ebp+var_8]
		jmp	loc_72265C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722719:				; CODE XREF: IoBuildPoDeviceNotifyList+FAj
					; IoBuildPoDeviceNotifyList+130j ...
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
IoBuildPoDeviceNotifyList endp		; AL = character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


IopIsNotifyInBroadcast proc near	; CODE XREF: IoBuildPoDeviceNotifyList+32Fp
					; IoBuildPoDeviceNotifyList+35Ep ...

; FUNCTION CHUNK AT 00729CB5 SIZE 00000019 BYTES

		test	cl, 1
		jnz	loc_729CB5
		mov	al, 1
		retn
IopIsNotifyInBroadcast endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall IopCheckDeviceFlags(x, x)
_IopCheckDeviceFlags@8 proc near	; CODE XREF: IoBuildPoDeviceNotifyList+A7p
					; IoBuildPoDeviceNotifyList+265p

var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ecx+18h]
		mov	esi, edx
		mov	edx, 70506F50h
		mov	[ebp+var_4], esi
		mov	ecx, edi
		xor	bl, bl
		call	ObfReferenceObjectWithTag
		test	edi, edi
		jz	short loc_722775

loc_72274D:				; CODE XREF: IopCheckDeviceFlags(x,x)+49j
		mov	edx, 70506F50h
		mov	ecx, edi
		test	[edi+1Ch], esi
		jnz	short loc_72277C
		call	IoGetLowerDeviceObjectWithTag
		mov	edx, 70506F50h
		mov	ecx, edi
		mov	esi, eax
		call	ObfDereferenceObjectWithTag
		mov	edi, esi
		test	esi, esi
		mov	esi, [ebp+var_4]
		jnz	short loc_72274D

loc_722775:				; CODE XREF: IopCheckDeviceFlags(x,x)+21j
					; IopCheckDeviceFlags(x,x)+59j
		pop	edi
		pop	esi
		mov	al, bl
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72277C:				; CODE XREF: IopCheckDeviceFlags(x,x)+2Dj
		mov	bl, 1
		call	ObfDereferenceObjectWithTag
		jmp	short loc_722775
_IopCheckDeviceFlags@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall IopPrepareDeviceNotify(x)
_IopPrepareDeviceNotify@4 proc near	; CODE XREF: IoBuildPoDeviceNotifyList+95p
		xor	eax, eax
		push	esi
		lea	esi, [ecx+5Ch]
		mov	[esi+1Ch], al
		mov	[esi+2Ch], eax
		mov	[esi+30h], eax
		mov	[esi+34h], eax
		mov	[esi+38h], eax
		mov	eax, [ecx+10h]
		mov	[esi+20h], eax
		push	dword ptr [ecx+10h]
		call	IoGetAttachedDeviceReference
		mov	[esi+18h], eax
		mov	ecx, [eax+8]
		call	_IopCaptureObjectName@4	; IopCaptureObjectName(x)
		mov	ecx, [esi+18h]
		mov	[esi+28h], eax
		call	_IopCaptureObjectName@4	; IopCaptureObjectName(x)
		mov	ecx, [esi+20h]
		mov	[esi+24h], eax
		call	@ObfReferenceObject@4 ;	ObfReferenceObject(x)
		mov	eax, esi
		pop	esi
		retn
_IopPrepareDeviceNotify@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall IopCaptureObjectName(x)
_IopCaptureObjectName@4	proc near	; CODE XREF: IopPrepareDeviceNotify(x)+29p
					; IopPrepareDeviceNotify(x)+34p

var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_200		= dword	ptr -200h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 208h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	esi
		push	edi
		lea	eax, [ebp+var_208]
		mov	edi, 200h
		push	eax
		push	edi
		lea	eax, [ebp+var_204]
		xor	esi, esi
		push	eax
		push	ecx
		mov	[ebp+var_208], esi
		call	_ObQueryNameString@16 ;	ObQueryNameString(x,x,x,x)
		test	eax, eax
		js	short loc_722855
		cmp	[ebp+var_200], esi
		jz	short loc_722855
		movzx	eax, word ptr [ebp+var_204]
		push	72775044h
		add	eax, 2
		push	eax
		push	edi
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	esi, eax
		test	esi, esi
		jz	short loc_722855
		movzx	ecx, word ptr [ebp+var_204]
		push	ecx		; size_t
		push	[ebp+var_200]	; void *
		push	esi		; void *
		call	_memcpy
		movzx	eax, word ptr [ebp+var_204]
		add	esp, 0Ch
		shr	eax, 1
		xor	ecx, ecx
		mov	[esi+eax*2], cx

loc_722855:				; CODE XREF: IopCaptureObjectName(x)+3Bj
					; IopCaptureObjectName(x)+43j ...
		mov	ecx, [ebp+var_4]
		mov	eax, esi
		pop	edi
		xor	ecx, ebp
		pop	esi
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
_IopCaptureObjectName@4	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall IopCheckDeviceType(x, x)
_IopCheckDeviceType@8 proc near		; CODE XREF: IoBuildPoDeviceNotifyList+22Dp
		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		mov	edi, [ecx+18h]
		mov	edx, 70506F50h
		mov	ecx, edi
		xor	bl, bl
		call	ObfReferenceObjectWithTag
		test	edi, edi
		jz	short loc_7228A6

loc_722880:				; CODE XREF: IopCheckDeviceType(x,x)+3Ej
		cmp	dword ptr [edi+2Ch], 7
		mov	edx, 70506F50h
		mov	ecx, edi
		jz	short loc_7228AC
		call	IoGetLowerDeviceObjectWithTag
		mov	edx, 70506F50h
		mov	ecx, edi
		mov	esi, eax
		call	ObfDereferenceObjectWithTag
		mov	edi, esi
		test	esi, esi
		jnz	short loc_722880

loc_7228A6:				; CODE XREF: IopCheckDeviceType(x,x)+18j
					; IopCheckDeviceType(x,x)+4Dj
		pop	edi
		pop	esi
		mov	al, bl
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7228AC:				; CODE XREF: IopCheckDeviceType(x,x)+25j
		mov	bl, 1
		call	ObfDereferenceObjectWithTag
		jmp	short loc_7228A6
_IopCheckDeviceType@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall IoFreePoDeviceNotifyList(x)
_IoFreePoDeviceNotifyList@4 proc near	; CODE XREF: PAGELK:0071F9A9p
					; PoClearBroadcast()+22p
		mov	edi, edi
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		cmp	byte ptr [esi],	0
		jz	short loc_7228F9
		push	5
		lea	edi, [esi+18h]
		pop	ebx

loc_7228C8:				; CODE XREF: IoFreePoDeviceNotifyList(x)+37j
		lea	ecx, [edi-8]
		call	_IopFreePoDeviceNotifyListHead@4 ; IopFreePoDeviceNotifyListHead(x)
		mov	ecx, edi
		call	_IopFreePoDeviceNotifyListHead@4 ; IopFreePoDeviceNotifyListHead(x)
		lea	ecx, [edi+8]
		call	_IopFreePoDeviceNotifyListHead@4 ; IopFreePoDeviceNotifyListHead(x)
		lea	ecx, [edi+10h]
		call	_IopFreePoDeviceNotifyListHead@4 ; IopFreePoDeviceNotifyListHead(x)
		add	edi, 28h
		sub	ebx, 1
		jnz	short loc_7228C8
		mov	[esi], bl
		pop	edi
		pop	esi
		pop	ebx
		jmp	PnpUnlockDeviceActionQueue
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7228F9:				; CODE XREF: IoFreePoDeviceNotifyList(x)+Aj
		pop	edi
		pop	esi
		pop	ebx
		retn
_IoFreePoDeviceNotifyList@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall IopFreePoDeviceNotifyListHead(x)
_IopFreePoDeviceNotifyListHead@4 proc near ; CODE XREF:	IoBuildPoDeviceNotifyList+3D1p
					; IoFreePoDeviceNotifyList(x)+15p ...
		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	ebx, 72775044h

loc_72290A:				; CODE XREF: IopFreePoDeviceNotifyListHead(x)+3Fj
					; IopFreePoDeviceNotifyListHead(x)+48j
		mov	esi, [edi]
		cmp	esi, edi
		jz	short loc_722951
		cmp	[esi+4], edi
		jnz	short loc_722955
		mov	eax, [esi]
		cmp	[eax+4], esi
		jnz	short loc_722955
		mov	[edi], eax
		mov	[eax+4], edi
		mov	ecx, [esi+20h]
		call	ObfDereferenceObject
		mov	ecx, [esi+18h]
		call	ObfDereferenceObject
		mov	eax, [esi+24h]
		test	eax, eax
		jnz	short loc_722948

loc_722938:				; CODE XREF: IopFreePoDeviceNotifyListHead(x)+51j
		mov	eax, [esi+28h]
		test	eax, eax
		jz	short loc_72290A
		push	ebx
		push	eax
		call	_ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)
		jmp	short loc_72290A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722948:				; CODE XREF: IopFreePoDeviceNotifyListHead(x)+38j
		push	ebx
		push	eax
		call	_ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)
		jmp	short loc_722938
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722951:				; CODE XREF: IopFreePoDeviceNotifyListHead(x)+10j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722955:				; CODE XREF: IopFreePoDeviceNotifyListHead(x)+15j
					; IopFreePoDeviceNotifyListHead(x)+1Cj
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
_IopFreePoDeviceNotifyListHead@4 endp	; AL = character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall ExpSetSwappingKernelApc(x, x, x, x,	x)
_ExpSetSwappingKernelApc@20 proc near	; DATA XREF: ExSwapinWorkerThreads(x)+94o

arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_C]
		push	esi
		mov	esi, [eax]
		mov	eax, large fs:124h
		test	byte ptr [eax+300h], 1
		jz	short loc_722980
		mov	eax, [ebp+arg_8]
		movzx	eax, byte ptr [eax]
		push	eax
		call	_KeSetKernelStackSwapEnable@4 ;	KeSetKernelStackSwapEnable(x)

loc_722980:				; CODE XREF: ExpSetSwappingKernelApc(x,x,x,x,x)+18j
		push	0
		push	0
		push	esi
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		pop	esi
		pop	ebp
		retn	14h
_ExpSetSwappingKernelApc@20 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopFlushVolumes	proc near		; CODE XREF: PAGELK:loc_71F07Dp

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00729CCE SIZE 000000D6 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		lea	edi, [ebp+var_28]
		push	6
		pop	ecx
		xor	eax, eax
		rep stosd
		xor	edi, edi
		mov	ecx, offset _POP_ETW_EVENT_FLUSHVOLUMES_START
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], edi
		mov	[ebp+var_4], edi
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		lea	eax, [ebp+var_48]
		mov	[ebp+var_40], edi
		push	edi
		mov	[ebp+var_44], eax
		mov	[ebp+var_48], eax
		lea	eax, [ebp+var_3C]
		push	edi
		push	eax
		mov	[ebp+var_3C], edi
		mov	[ebp+var_38], edi
		mov	[ebp+var_34], edi
		mov	[ebp+var_30], edi
		mov	[ebp+var_2C], edi
		call	_KeInitializeEvent@12 ;	KeInitializeEvent(x,x,x)
		cmp	esi, 6
		jz	loc_729CCE
		cmp	ds:byte_6C24D0,	0
		jz	loc_729CD6
		push	3
		pop	ebx

loc_7229FE:				; CODE XREF: PopFlushVolumes+734Cj
		cmp	esi, 5
		jnz	short loc_722A06
		or	ebx, 10h

loc_722A06:				; CODE XREF: PopFlushVolumes+71j
					; PopFlushVolumes+7341j
		test	bl, 4
		jnz	loc_729CE1

loc_722A0F:				; CODE XREF: PopFlushVolumes+7355j
		test	bl, 8
		jnz	loc_729CEA

loc_722A18:				; CODE XREF: PopFlushVolumes+735Ej
		test	bl, 1
		jz	short loc_722A6E
		push	offset ??_C@_1BE@BNJCNEJN@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@OKHAJAOM@ ; "\\Registry"
		lea	eax, [ebp+var_10]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		lea	eax, [ebp+var_10]
		mov	[ebp+var_28], 18h
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_28]
		push	eax
		push	20019h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_24], edi
		push	eax
		mov	[ebp+var_1C], 240h
		mov	[ebp+var_18], edi
		mov	[ebp+var_14], edi
		call	_ZwOpenKey@12	; ZwOpenKey(x,x,x)
		test	eax, eax
		js	short loc_722A6E
		push	[ebp+var_4]
		call	_ZwFlushKey@4	; ZwFlushKey(x)
		push	[ebp+var_4]
		call	_ZwClose@4	; ZwClose(x)

loc_722A6E:				; CODE XREF: PopFlushVolumes+8Bj
					; PopFlushVolumes+CCj
		mov	ecx, offset _PopVolumeLock
		mov	esi, edi
		call	ExAcquireFastMutex
		mov	ecx, ds:_PopVolumeDevices
		jmp	short loc_722ACA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722A82:				; CODE XREF: PopFlushVolumes+150j
		test	dword ptr [eax+20h], 10006h
		jnz	short loc_722ACA
		mov	eax, [edi+0Ch]
		test	eax, eax
		jz	short loc_722A98
		test	byte ptr [eax+20h], 4
		jnz	short loc_722ACA

loc_722A98:				; CODE XREF: PopFlushVolumes+100j
		cmp	[ecx+4], edx
		jnz	loc_722B7A
		mov	eax, [edx+4]
		cmp	[eax], edx
		jnz	loc_722B7A
		mov	[eax], ecx
		lea	edi, [ebp+var_48]
		mov	[ecx+4], eax
		mov	eax, [ebp+var_44]
		cmp	[eax], edi
		jnz	loc_722B7A
		mov	[edx], edi
		inc	esi
		mov	[edx+4], eax
		mov	[eax], edx
		mov	[ebp+var_44], edx

loc_722ACA:				; CODE XREF: PopFlushVolumes+F0j
					; PopFlushVolumes+F9j ...
		cmp	ecx, offset _PopVolumeDevices
		jz	short loc_722AE4
		mov	eax, [ecx-1Ch]
		mov	edx, ecx
		mov	ecx, [ecx]
		mov	edi, [eax+24h]
		test	byte ptr [edi+4], 1
		jnz	short loc_722A82
		jmp	short loc_722ACA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722AE4:				; CODE XREF: PopFlushVolumes+140j
		test	bl, 2
		jz	loc_729CF3

loc_722AED:				; CODE XREF: PopFlushVolumes+73F9j
		mov	ebx, offset _PopVolumeLock
		mov	ecx, ebx
		call	@ExReleaseFastMutex@4 ;	ExReleaseFastMutex(x)
		test	esi, esi
		jz	short loc_722B6B
		cmp	esi, 8
		jg	short loc_722B7F

loc_722B02:				; CODE XREF: PopFlushVolumes+1F2j
		xor	edi, edi
		mov	[ebp+var_28], 18h
		mov	[ebp+var_24], edi
		mov	[ebp+var_1C], 200h
		mov	[ebp+var_20], edi
		mov	[ebp+var_18], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_40], esi

loc_722B21:				; CODE XREF: PopFlushVolumes+1C3j
		dec	esi
		test	esi, esi
		jle	short loc_722B55
		lea	eax, [ebp+var_48]
		push	eax
		push	offset PopFlushVolumeWorker
		push	edi
		push	edi
		lea	eax, [ebp+var_28]
		push	eax
		push	1FFFFFh
		lea	eax, [ebp+var_8]
		push	eax
		call	_PsCreateSystemThread@28 ; PsCreateSystemThread(x,x,x,x,x,x,x)
		test	eax, eax
		js	loc_729D8E
		push	[ebp+var_8]
		call	_ZwClose@4	; ZwClose(x)
		jmp	short loc_722B21
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722B55:				; CODE XREF: PopFlushVolumes+194j
					; PopFlushVolumes+740Fj
		lea	eax, [ebp+var_48]
		push	eax
		call	PopFlushVolumeWorker
		push	edi
		push	edi
		push	edi
		push	edi
		lea	eax, [ebp+var_3C]
		push	eax
		call	KeWaitForSingleObject

loc_722B6B:				; CODE XREF: PopFlushVolumes+16Bj
		mov	ecx, offset _POP_ETW_EVENT_FLUSHVOLUMES_STOP
		call	_PopDiagTraceEventNoPayload@4 ;	PopDiagTraceEventNoPayload(x)
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722B7A:				; CODE XREF: PopFlushVolumes+10Bj
					; PopFlushVolumes+116j	...
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
					; AL = character to display

loc_722B7F:				; CODE XREF: PopFlushVolumes+170j
		push	8
		pop	esi
		jmp	loc_722B02
PopFlushVolumes	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopFlushVolumeWorker proc near		; CODE XREF: PopFlushVolumes+1C9p
					; DATA XREF: PopFlushVolumes+19Ao

var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00729DA4 SIZE 0000002D BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 234h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+234h+var_4], eax
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		xor	ebx, ebx
		push	edi
		push	6
		pop	ecx
		xor	eax, eax
		mov	[esp+240h+var_224], ebx
		lea	edi, [esp+240h+var_220]
		mov	[esp+240h+var_22C], ebx
		push	200h		; size_t
		rep stosd
		lea	eax, [esp+244h+var_208]
		mov	[esp+244h+var_228], ebx
		push	ebx		; int
		push	eax		; void *
		mov	[esp+24Ch+var_230], ebx
		call	_memset
		add	esp, 0Ch

loc_722BDA:				; CODE XREF: PopFlushVolumeWorker+C6j
					; PopFlushVolumeWorker+CCj ...
		mov	ecx, offset _PopVolumeLock
		call	ExAcquireFastMutex
		mov	edi, [esi]
		cmp	edi, esi
		jz	loc_722CD7
		mov	eax, [edi]
		cmp	[eax+4], edi
		jnz	loc_722D0B
		mov	ecx, [edi+4]
		cmp	[ecx], edi
		jnz	loc_722D0B
		mov	[ecx], eax
		mov	[eax+4], ecx
		mov	eax, ds:dword_6C2B84
		cmp	dword ptr [eax], offset	_PopVolumeDevices
		jnz	loc_722D0B
		mov	dword ptr [edi], offset	_PopVolumeDevices
		mov	ecx, offset _PopVolumeLock
		mov	[edi+4], eax
		mov	[eax], edi
		mov	ds:dword_6C2B84, edi
		call	@ExReleaseFastMutex@4 ;	ExReleaseFastMutex(x)
		lea	eax, [esp+240h+var_224]
		push	eax
		push	200h
		lea	eax, [esp+248h+var_208]
		push	eax
		push	dword ptr [edi-1Ch]
		call	_ObQueryNameString@16 ;	ObQueryNameString(x,x,x,x)
		test	eax, eax
		js	short loc_722BDA
		cmp	[esp+240h+var_204], ebx
		jz	short loc_722BDA
		push	ebx
		push	ebx
		push	20h
		push	1
		push	3
		push	0C0000000h
		lea	eax, [esp+258h+var_208]
		mov	[esp+258h+var_220], 18h
		mov	[esp+258h+var_218], eax
		lea	eax, [esp+258h+var_22C]
		push	ebx
		push	eax
		lea	eax, [esp+260h+var_220]
		mov	[esp+260h+var_21C], ebx
		push	eax
		push	100003h
		lea	eax, [esp+268h+var_230]
		mov	[esp+268h+var_214], 240h
		push	eax
		mov	[esp+26Ch+var_210], ebx
		mov	[esp+26Ch+var_20C], ebx
		call	_ZwCreateFile@44 ; ZwCreateFile(x,x,x,x,x,x,x,x,x,x,x)
		test	eax, eax
		js	loc_722BDA
		cmp	[esi+1Ch], bl
		jnz	loc_729DA4
		lea	eax, [esp+240h+var_22C]
		cmp	[esi+1Dh], bl
		jnz	loc_729DB6
		push	eax
		push	[esp+244h+var_230]
		call	_ZwFlushBuffersFile@8 ;	ZwFlushBuffersFile(x,x)

loc_722CC9:				; CODE XREF: PopFlushVolumeWorker+7229j
					; PopFlushVolumeWorker+7244j
		push	[esp+240h+var_230]
		call	_ZwClose@4	; ZwClose(x)
		jmp	loc_722BDA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722CD7:				; CODE XREF: PopFlushVolumeWorker+60j
		sub	dword ptr [esi+8], 1
		jz	short loc_722CFE

loc_722CDD:				; CODE XREF: PopFlushVolumeWorker+181j
		mov	ecx, offset _PopVolumeLock
		call	@ExReleaseFastMutex@4 ;	ExReleaseFastMutex(x)
		mov	ecx, [esp+240h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722CFE:				; CODE XREF: PopFlushVolumeWorker+153j
		push	ebx
		push	ebx
		lea	eax, [esi+0Ch]
		push	eax
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		jmp	short loc_722CDD
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722D0B:				; CODE XREF: PopFlushVolumeWorker+6Bj
					; PopFlushVolumeWorker+76j ...
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
PopFlushVolumeWorker endp		; AL = character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopHandleWakeSources proc near		; CODE XREF: PoBroadcastSystemState+37Ap

var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_1		= dword	ptr -1

; FUNCTION CHUNK AT 00729DD1 SIZE 0000016D BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	edx, ds:_PopSimulate
		xor	eax, eax
		push	ebx
		mov	ebx, ds:_PopFixedWakeSourceMask
		push	esi
		push	edi
		lea	edi, [ebp+var_14]
		mov	byte ptr [ebp+var_1], 0
		stosd
		stosd
		stosd
		xor	edi, edi
		bt	edx, 15h
		mov	[ebp+var_8], edi
		setnb	cl
		test	bl, 1
		setz	al
		test	cl, al
		jz	loc_729DEA
		bt	edx, 16h
		setnb	cl
		test	bl, 2
		setz	al
		test	cl, al
		jz	loc_729DE5
		lea	ecx, [ebp+var_1]
		call	PopValidateRTCWake
		test	al, al
		jnz	loc_729DD1

loc_722D72:				; CODE XREF: PopHandleWakeSources+70CBj
					; PopHandleWakeSources+70E0j
		lea	ecx, [ebp+var_14]
		call	_PopAcquireWakeSourceSpinLock@4	; PopAcquireWakeSourceSpinLock(x)
		mov	esi, ds:_PopCurrentWakeInfo
		test	esi, esi
		jz	short loc_722D8F
		test	edi, edi
		jnz	short loc_722D8F
		mov	ecx, esi
		call	_PopWakeInfoReference@4	; PopWakeInfoReference(x)

loc_722D8F:				; CODE XREF: PopHandleWakeSources+72j
					; PopHandleWakeSources+76j
		lea	ecx, [ebp+var_14]
		call	PopReleaseWakeSourceSpinLock
		test	esi, esi
		jz	loc_729DF5
		test	edi, edi
		jnz	loc_729E08
		xor	ebx, ebx
		lea	edi, [esi+18h]
		push	ebx
		push	offset _PopWakeSourceTimeoutDpc@16 ; PopWakeSourceTimeoutDpc(x,x,x,x)
		push	edi
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		push	ebx
		add	esi, 38h
		push	esi
		call	_KeInitializeTimerEx@8 ; KeInitializeTimerEx(x,x)
		push	0FFFFFFFFh
		push	0FECED300h
		push	edi
		push	ebx
		xor	edx, edx
		mov	ecx, esi
		call	KiSetTimerEx

loc_722DD4:				; CODE XREF: PopHandleWakeSources+70F3j
					; PopHandleWakeSources+71FBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
PopHandleWakeSources endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopNewWakeInfo	proc near		; CODE XREF: PAGELK:0071F873p

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00729F3E SIZE 00000064 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	esi
		push	edi
		lea	edi, [ebp+var_C]
		stosd
		push	206D654Dh
		push	60h
		push	200h
		stosd
		stosd
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	esi, eax
		xor	edi, edi
		test	esi, esi
		jz	short loc_722E28
		push	50h		; size_t
		lea	ecx, [esi+10h]
		push	edi		; int
		push	ecx		; void *
		call	_memset
		lea	eax, [esi+0Ch]
		mov	dword ptr [esi+8], 1
		add	esp, 0Ch
		mov	[esi+4], esi
		mov	[esi], esi
		mov	[eax+4], eax
		mov	[eax], eax

loc_722E28:				; CODE XREF: PopNewWakeInfo+29j
		lea	ecx, [ebp+var_C]
		call	_PopAcquireWakeSourceSpinLock@4	; PopAcquireWakeSourceSpinLock(x)
		mov	eax, ds:_PopPendingWakeInfo
		mov	edx, offset _PopWakeInfoList
		test	eax, eax
		jnz	loc_729F15

loc_722E42:				; CODE XREF: PopHandleWakeSources+7229j
		mov	eax, ds:_PopCurrentWakeInfo
		test	eax, eax
		jnz	loc_729F3E

loc_722E4F:				; CODE XREF: PopNewWakeInfo+7188j
		test	esi, esi
		jz	short loc_722E66
		cmp	ds:_PopWakeInfoCount, 1
		mov	ds:_PopCurrentWakeInfo,	esi
		jz	loc_729F67

loc_722E66:				; CODE XREF: PopNewWakeInfo+77j
					; PopNewWakeInfo+71B5j
		lea	ecx, [ebp+var_C]
		call	PopReleaseWakeSourceSpinLock
		push	offset _PopWakeSourceAvailable
		call	_KeResetEvent@4	; KeResetEvent(x)
		mov	ds:_PopFixedWakeSourceMask, edi
		pop	edi
		pop	esi
		leave
		retn
PopNewWakeInfo	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopValidateRTCWake proc	near		; CODE XREF: PopHandleWakeSources+55p

var_38		= dword	ptr -38h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1

; FUNCTION CHUNK AT 00729FA2 SIZE 000000E0 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 3Ch
		push	ebx
		xor	eax, eax
		xor	ebx, ebx
		and	[ebp+var_8], eax
		inc	ebx
		and	[ebp+var_18], eax
		push	esi
		mov	esi, ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_1], al
		push	edi
		mov	[esi], al
		mov	eax, ds:_PopFixedWakeSourceMask
		and	eax, 18h
		cmp	eax, 10h
		jz	loc_729F99
		cmp	eax, 8
		jz	short loc_722EF4
		test	eax, eax
		jnz	loc_729FA2

loc_722EC0:				; CODE XREF: PopValidateRTCWake+7134j
		mov	eax, ds:dword_6C2718
		test	eax, eax
		js	short loc_722ED0
		xor	edi, edi
		cmp	eax, 3
		jb	short loc_722EFD

loc_722ED0:				; CODE XREF: PopValidateRTCWake+45j
		test	byte ptr ds:_PopFixedWakeSourceMask, 4
		jnz	short loc_722EDB
		mov	[esi], bl

loc_722EDB:				; CODE XREF: PopValidateRTCWake+55j
		mov	edx, ds:dword_6C2740
		mov	eax, edx
		mov	ecx, ds:dword_6C2744
		or	eax, ecx
		jnz	loc_729FBB

loc_722EF1:				; CODE XREF: PopValidateRTCWake+713Fj
					; PopValidateRTCWake+714Fj
		mov	byte ptr [esi],	0

loc_722EF4:				; CODE XREF: PopValidateRTCWake+34j
		mov	edi, ebx
		xor	eax, eax

loc_722EF8:				; CODE XREF: PopNewWakeInfo+71C3j
		mov	ds:dword_6C2718, eax

loc_722EFD:				; CODE XREF: PopValidateRTCWake+4Cj
		imul	eax, 18h
		mov	ecx, ds:dword_6C2728[eax]
		mov	edx, ds:dword_6C272C[eax]
		mov	eax, ecx
		or	eax, edx
		mov	[ebp+var_14], ecx
		mov	[ebp+var_10], edx
		jnz	loc_729FD6
		mov	edx, [ebp+var_C]
		push	3
		pop	eax
		mov	ds:dword_6C2718, eax
		mov	eax, ebx
		mov	byte ptr [esi],	0

loc_722F2C:				; CODE XREF: PopValidateRTCWake+71FBj
		push	[ebp+var_8]
		movzx	ecx, byte ptr [esi]
		push	edx
		movzx	edx, [ebp+var_1]
		push	edi
		push	ebx
		push	ecx
		push	eax
		call	PopDiagTraceRtcWakeInfo
		mov	al, [ebp+var_1]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
PopValidateRTCWake endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PopDiagInterruptTimeToSystemTime(x,	x, x)
_PopDiagInterruptTimeToSystemTime@12 proc near ; CODE XREF: PopDiagTraceRtcWakeInfo+96p
					; PopDiagTraceRtcWakeInfo+ADp ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		call	KeQueryInterruptTime
		mov	ebx, eax
		mov	[ebp+var_4], edx
		lea	eax, [ebp+var_C]
		push	eax
		call	KeQuerySystemTime
		mov	ecx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		test	ecx, ecx
		jg	short loc_722F80
		jl	short loc_722F97
		test	esi, esi
		jb	short loc_722F97

loc_722F80:				; CODE XREF: PopDiagInterruptTimeToSystemTime(x,x,x)+30j
		sub	esi, ebx
		sbb	ecx, [ebp+var_4]

loc_722F85:				; CODE XREF: PopDiagInterruptTimeToSystemTime(x,x,x)+56j
		add	esi, [ebp+var_C]
		mov	[edi], esi
		adc	ecx, [ebp+var_8]
		mov	[edi+4], ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722F97:				; CODE XREF: PopDiagInterruptTimeToSystemTime(x,x,x)+32j
					; PopDiagInterruptTimeToSystemTime(x,x,x)+36j
		neg	esi
		adc	ecx, 0
		neg	ecx
		jmp	short loc_722F85
_PopDiagInterruptTimeToSystemTime@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


PfpScenCtxQueryScenarioInformation proc	near ; CODE XREF: PfpQueryScenarioInformation+65p

; FUNCTION CHUNK AT 0072A082 SIZE 00000014 BYTES

		mov	edi, edi
		push	ecx
		mov	eax, large fs:124h
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, ecx
		dec	word ptr [eax+13Ch]
		nop
		xor	edx, edx
		call	ExAcquirePushLockExclusiveEx
		mov	eax, [esi+1Ch]
		mov	[edi+4], eax
		mov	eax, [esi+20h]
		mov	[edi+0Ch], eax
		cmp	dword ptr [esi+1Ch], 3
		jz	short loc_722FFE

loc_722FD0:				; CODE XREF: PfpScenCtxQueryScenarioInformation+64j
		push	dword ptr [esi+28h]
		call	_KeResetEvent@4	; KeResetEvent(x)
		or	eax, 0FFFFFFFFh
		lock xadd [esi], eax
		test	al, 2
		jnz	loc_72A082

loc_722FE7:				; CODE XREF: PfpScenCtxQueryScenarioInformation+70E4j
					; PfpScenCtxQueryScenarioInformation+70F1j
		mov	ecx, esi
		call	KeAbPostRelease
		mov	ecx, large fs:124h
		call	_KiLeaveCriticalRegionUnsafe@4 ; KiLeaveCriticalRegionUnsafe(x)
		pop	edi
		pop	esi
		pop	ecx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_722FFE:				; CODE XREF: PfpScenCtxQueryScenarioInformation+2Ej
		mov	eax, [esi+24h]
		mov	[edi+14h], eax
		jmp	short loc_722FD0
PfpScenCtxQueryScenarioInformation endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopHiberCheckResume proc near		; CODE XREF: PopSaveHiberContextWrapper(x)+25p

var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= word ptr -0BCh
var_BA		= word ptr -0BAh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_1C		= dword	ptr -1Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A096 SIZE 000000B1 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 0BCh
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+0BCh+var_4], eax
		push	ebx
		push	esi
		push	edi
		push	0A0h		; size_t
		xor	ebx, ebx
		lea	eax, [esp+0CCh+var_A8]
		push	ebx		; int
		push	eax		; void *
		call	_memset
		mov	esi, ds:dword_6C26F8
		add	esp, 0Ch
		mov	[esp+0C8h+var_B8], esi
		mov	edi, [esi+88h]
		mov	[esp+0C8h+var_B4], edi
		cmp	[edi], ebx
		jz	loc_72315B
		push	19h
		pop	ecx
		call	PopCheckpointSystemSleep
		push	ebx
		call	ds:off_6B1364	; xHalLocateHiberRanges(x)
		rdtsc
		push	5
		mov	[esp+0D0h+var_B4], eax
		mov	[esp+0D0h+var_B0], edx
		mov	ds:_PoResumeFromHibernate, 1
		call	ds:off_6B12A8	; KeSetDmaIoCoherency(x)
		push	1
		call	ds:off_6B1364	; xHalLocateHiberRanges(x)
		cmp	ds:_HvlHypervisorConnected, bl
		jnz	loc_72A096

loc_723092:				; CODE XREF: PopHiberCheckResume+709Bj
		push	5
		call	ds:off_6B1328	; xHalPciEarlyRestore(x)
		cmp	ds:_HvlHypervisorConnected, bl
		jnz	loc_72A0A6

loc_7230A6:				; CODE XREF: PopHiberCheckResume+70A7j
		cmp	ds:_KdDebuggerEnabled, bl
		jnz	loc_72A0B2

loc_7230B2:				; CODE XREF: PopHiberCheckResume+70B2j
		cmp	ds:_KdEventLoggingEnabled, bl
		jnz	loc_72A0BE

loc_7230BE:				; CODE XREF: PopHiberCheckResume+70C5j
		cmp	ds:_KdDebuggerEnabled, bl
		jnz	loc_72A0D0

loc_7230CA:				; CODE XREF: PopHiberCheckResume+70D0j
					; PopHiberCheckResume+70D7j
		test	ds:_PopSimulate, 40000000h
		jnz	loc_72A0E2

loc_7230DA:				; CODE XREF: PopHiberCheckResume+70DDj
		push	dword ptr [esi+98h]
		push	dword ptr [esi+94h]
		call	ds:__imp__HalInitializeOnResume@8 ; HalInitializeOnResume(x,x)
		lea	esi, [edi+314h]
		cmp	[esi], ebx
		jnz	loc_72A0E8

loc_7230FA:				; CODE XREF: PopHiberCheckResume+713Cj
		mov	eax, [edi+300h]
		lea	esi, [edi+68h]
		mov	edx, [esp+0E0h+var_C4]
		mov	ds:dword_6BBFD8, eax
		mov	eax, [edi+304h]
		mov	edi, offset dword_6C28B8
		mov	ds:dword_6BBFDC, eax
		mov	eax, [esp+0E0h+var_D0]
		push	7Eh
		pop	ecx
		rep movsd
		mov	ecx, [esp+0E0h+var_C8]
		mov	[eax+4], bl
		mov	ds:dword_6C2988, ecx
		sub	ecx, ds:dword_6C2920
		mov	ds:dword_6C298C, edx
		sbb	edx, ds:dword_6C2924
		test	byte ptr ds:_HvlpFlags,	2
		mov	ds:dword_6C2918, ecx
		mov	ds:dword_6C291C, edx
		jnz	short loc_723172

loc_723159:				; CODE XREF: PopHiberCheckResume+16Fj
		mov	bl, 1

loc_72315B:				; CODE XREF: PopHiberCheckResume+4Aj
		mov	ecx, [esp+0E0h+var_1C]
		mov	al, bl
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723172:				; CODE XREF: PopHiberCheckResume+151j
		mov	[eax+14h], ebx
		jmp	short loc_723159
PopHiberCheckResume endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopDiagTracePostSleepNotification proc near ; CODE XREF: PAGELK:0071F92Cp

var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

; FUNCTION CHUNK AT 0072A147 SIZE 00000051 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 9Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_14]
		push	esi
		push	edi
		push	4
		xor	esi, esi
		mov	[ebp+var_80], ecx
		mov	[ebp+var_84], edx
		mov	[ebp+var_94], esi
		mov	[ebp+var_90], esi
		mov	[ebp+var_9C], esi
		mov	[ebp+var_98], esi
		pop	edi
		push	5
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		jz	loc_72A147
		cmp	eax, 0FFFFFFFEh
		jz	loc_72A14E
		cmp	eax, 0FFFFFFFDh
		jz	loc_72A155

loc_7231D6:				; CODE XREF: PopDiagTracePostSleepNotification+6FD1j
					; PopDiagTracePostSleepNotification+6FD8j ...
		mov	[ebp+var_88], eax
		mov	eax, [ebp+arg_18]
		cmp	eax, 0FFFFFFFFh
		jz	loc_72A15D
		cmp	eax, 0FFFFFFFEh
		jz	short loc_7231F8
		cmp	eax, 0FFFFFFFDh
		jz	loc_72A164
		mov	ecx, eax

loc_7231F8:				; CODE XREF: PopDiagTracePostSleepNotification+73j
					; PopDiagTracePostSleepNotification+6FE7j ...
		mov	eax, [ebp+arg_4]
		or	eax, [ebp+arg_8]
		mov	[ebp+var_8C], ecx
		jnz	loc_72A16C

loc_72320A:				; CODE XREF: PopDiagTracePostSleepNotification+7005j
		mov	eax, [ebp+arg_C]
		or	eax, [ebp+arg_10]
		jnz	loc_72A182

loc_723216:				; CODE XREF: PopDiagTracePostSleepNotification+701Bj
		cmp	ds:_PopDiagHandleRegistered, 0
		jz	loc_7232BB
		lea	eax, [ebp+var_80]
		mov	[ebp+var_78], esi
		mov	[ebp+var_7C], eax
		lea	eax, [ebp+var_84]
		mov	[ebp+var_6C], eax
		lea	eax, [ebp+arg_0]
		mov	[ebp+var_5C], eax
		lea	eax, [ebp+var_94]
		mov	[ebp+var_4C], eax
		lea	eax, [ebp+var_9C]
		mov	[ebp+var_3C], eax
		lea	eax, [ebp+var_88]
		push	8
		pop	ecx
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_8C]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	7
		push	esi
		push	offset _POP_ETW_EVENT_POSTSLEEP_NOTIFICATION
		push	ds:dword_6C1D74
		mov	[ebp+var_74], edi
		push	ds:_PopDiagHandle
		mov	[ebp+var_70], esi
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], edi
		mov	[ebp+var_60], esi
		mov	[ebp+var_58], esi
		mov	[ebp+var_54], edi
		mov	[ebp+var_50], esi
		mov	[ebp+var_48], esi
		mov	[ebp+var_44], ecx
		mov	[ebp+var_40], esi
		mov	[ebp+var_38], esi
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], esi
		mov	[ebp+var_28], esi
		mov	[ebp+var_24], edi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		mov	[ebp+var_14], edi
		mov	[ebp+var_10], esi
		call	_EtwWrite@24	; EtwWrite(x,x,x,x,x,x)

loc_7232BB:				; CODE XREF: PopDiagTracePostSleepNotification+A5j
		mov	ecx, [ebp+var_8]
		pop	edi
		xor	ecx, ebp
		pop	esi
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	1Ch
PopDiagTracePostSleepNotification endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

EtwTraceSystemTimeChange proc near	; CODE XREF: PoNotifySystemTimeSet(x,x,x)+30p

var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0072A198 SIZE 0000011E BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 104h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+104h+var_4], eax
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[esp+110h+var_100], ecx
		push	2
		mov	word ptr [esp+114h+var_F0], ax
		mov	ebx, edx
		pop	eax
		mov	word ptr [esp+110h+var_F0+2], ax
		mov	eax, large fs:124h
		mov	[esp+110h+var_EC], offset ??_C@_11LOCGONAA@@OKHAJAOM@
		mov	esi, [eax+80h]
		push	esi
		call	_PsGetProcessId@4 ; PsGetProcessId(x)
		mov	edi, eax
		mov	[esp+110h+var_F4], edi
		mov	esi, [esi+1C0h]
		test	esi, esi
		jz	short loc_723331
		xor	eax, eax
		cmp	ax, [esi]
		jnz	short loc_723335

loc_723331:				; CODE XREF: EtwTraceSystemTimeChange+5Cj
		lea	esi, [esp+110h+var_F0]

loc_723335:				; CODE XREF: EtwTraceSystemTimeChange+63j
		xor	ecx, ecx
		cmp	ds:dword_6B2A40, 5
		jbe	short loc_72335A
		push	4000h
		push	ecx
		mov	ecx, offset dword_6B2A40
		call	__tlgKeywordOn@12 ; _tlgKeywordOn(x,x,x)
		test	al, al
		jnz	loc_72A198

loc_723358:				; CODE XREF: EtwTraceSystemTimeChange+6FE5j
		xor	ecx, ecx

loc_72335A:				; CODE XREF: EtwTraceSystemTimeChange+72j
		mov	edx, ds:_EtwKernelProvRegHandle
		mov	eax, edx
		mov	edi, ds:dword_6BC12C
		or	eax, edi
		jz	loc_7233FF
		mov	eax, [esp+110h+var_100]
		push	8
		mov	[esp+114h+var_D8], eax
		pop	eax
		push	4
		mov	[esp+114h+var_D0], eax
		mov	[esp+114h+var_C0], eax
		lea	eax, [ebp+arg_0]
		mov	[esp+114h+var_C8], ebx
		pop	ebx
		mov	[esp+110h+var_B8], eax
		mov	[esp+110h+var_D4], ecx
		mov	[esp+110h+var_CC], ecx
		mov	[esp+110h+var_C4], ecx
		mov	[esp+110h+var_BC], ecx
		mov	[esp+110h+var_B4], ecx
		mov	[esp+110h+var_B0], ebx
		mov	[esp+110h+var_AC], ecx
		movzx	ecx, word ptr [esi+2]
		mov	eax, [esi+4]
		xor	esi, esi
		mov	[esp+110h+var_A8], eax
		mov	eax, ecx
		mov	[esp+110h+var_A0], eax
		lea	eax, [esp+110h+var_F4]
		mov	[esp+110h+var_98], eax
		lea	eax, [esp+110h+var_D8]
		push	eax
		push	5
		push	esi
		push	offset _KernelSystemTimeChange
		push	edi
		push	edx
		mov	[esp+128h+var_A4], esi
		mov	[esp+128h+var_9C], esi
		mov	[esp+128h+var_94], esi
		mov	[esp+128h+var_90], ebx
		mov	[esp+128h+var_8C], esi
		call	_EtwWrite@24	; EtwWrite(x,x,x,x,x,x)

loc_7233FF:				; CODE XREF: EtwTraceSystemTimeChange+9Ej
		mov	ecx, [esp+110h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn	4
EtwTraceSystemTimeChange endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfpScenCtxPrefetchStateSet proc	near	; CODE XREF: PfpScenCtxScenarioSet+A1p
					; PfSetSuperfetchInformation+446p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0072A2B6 SIZE 0000002E BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	esi
		push	edi
		mov	edi, edx
		mov	esi, ecx
		jnz	short loc_72343C
		mov	eax, large fs:124h
		dec	word ptr [eax+13Ch]
		nop
		xor	edx, edx
		call	ExAcquirePushLockExclusiveEx

loc_72343C:				; CODE XREF: PfpScenCtxPrefetchStateSet+Fj
		cmp	[esi+1Ch], edi
		jnz	short loc_723497
		cmp	[ebp+arg_0], 1
		jz	loc_72A2B6

loc_72344B:				; CODE XREF: PfpScenCtxPrefetchStateSet+6EA7j
		mov	ecx, [esi+4]
		xor	edi, edi
		mov	eax, ecx
		and	al, 0Ch
		cmp	al, 4
		jz	loc_72A2CD

loc_72345C:				; CODE XREF: PfpScenCtxPrefetchStateSet+6EC9j
		mov	eax, ecx
		xor	eax, [ebp+arg_0]
		and	eax, 3
		xor	eax, ecx
		mov	[esi+4], eax

loc_723469:				; CODE XREF: PfpScenCtxPrefetchStateSet+86j
					; PfpScenCtxPrefetchStateSet+6EB2j
		cmp	[ebp+arg_4], 0
		jnz	short loc_72348F
		or	eax, 0FFFFFFFFh
		lock xadd [esi], eax
		and	al, 6
		cmp	al, 2
		jnz	short loc_723483
		mov	ecx, esi
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)

loc_723483:				; CODE XREF: PfpScenCtxPrefetchStateSet+64j
		mov	ecx, esi
		call	KeAbPostRelease
		call	_KeLeaveCriticalRegion@0 ; KeLeaveCriticalRegion()

loc_72348F:				; CODE XREF: PfpScenCtxPrefetchStateSet+57j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723497:				; CODE XREF: PfpScenCtxPrefetchStateSet+29j
		mov	edi, 0C0000059h
		jmp	short loc_723469
PfpScenCtxPrefetchStateSet endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopBootLoaderSiDataProcess()
_PopBootLoaderSiDataProcess@0 proc near	; CODE XREF: PoBroadcastSystemState+43Bp
		mov	edi, edi
		push	ecx
		mov	eax, ds:dword_6C26F8
		test	eax, eax
		jz	short loc_7234B9
		mov	ecx, [eax+90h]
		test	ecx, ecx
		jz	short loc_7234B9
		call	_PopBootLoaderSiData@4 ; PopBootLoaderSiData(x)

loc_7234B9:				; CODE XREF: PopBootLoaderSiDataProcess()+Aj
					; PopBootLoaderSiDataProcess()+14j
		pop	ecx
		retn
_PopBootLoaderSiDataProcess@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PopBootLoaderSiData(x)
_PopBootLoaderSiData@4 proc near	; CODE XREF: PopBootLoaderSiDataProcess()+16p
		mov	edi, edi
		push	ebx
		mov	ebx, [ecx+10h]
		push	esi
		push	edi
		cmp	dword ptr [ebx], 4C626948h
		jnz	short loc_7234EC
		xor	esi, esi
		lea	edi, [ebx+10h]
		inc	esi

loc_7234D2:				; CODE XREF: PopBootLoaderSiData(x)+2Ej
		mov	edx, [edi+4]
		test	edx, edx
		jz	short loc_7234E3
		mov	ecx, [edi]
		push	esi
		add	ecx, ebx
		call	_BapdRegisterSiData@12 ; BapdRegisterSiData(x,x,x)

loc_7234E3:				; CODE XREF: PopBootLoaderSiData(x)+1Bj
		inc	esi
		add	edi, 8
		cmp	esi, 2
		jbe	short loc_7234D2

loc_7234EC:				; CODE XREF: PopBootLoaderSiData(x)+Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
_PopBootLoaderSiData@4 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall NtSetSystemPowerState(x, x,	x)
_NtSetSystemPowerState@12 proc near	; CODE XREF: NtShutdownSystem(x)+31p
					; DATA XREF: .text:00580C6Co

var_158		= dword	ptr -158h
var_154		= dword	ptr -154h
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 158h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+158h+var_4], eax
		push	144h		; size_t
		lea	eax, [esp+15Ch+var_14C]
		push	0		; int
		push	eax		; void *
		call	_memset
		mov	eax, [ebp+arg_0]
		lea	ecx, [esp+164h+var_158]
		mov	[esp+164h+var_158], eax
		add	esp, 0Ch
		mov	eax, [ebp+arg_4]
		mov	[esp+158h+var_154], eax
		mov	eax, [ebp+arg_8]
		mov	[esp+158h+var_150], eax
		call	_PopTransitionSystemPowerStateEx@4 ; PopTransitionSystemPowerStateEx(x)
		mov	ecx, [esp+158h+var_4]
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn	0Ch
_NtSetSystemPowerState@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfpScenCtxPrefetchAbortSet proc	near	; CODE XREF: PfpPrefetchRequestPerform+136861p
					; PfpPrefetchRequestPerform+13695Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

; FUNCTION CHUNK AT 0072A2E4 SIZE 00000056 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, edx
		test	ebx, ebx
		jz	loc_72A2E4

loc_723569:				; CODE XREF: PfpScenCtxPrefetchAbortSet+6DA7j
		cmp	[esi+1Ch], edi
		jnz	short loc_723598
		mov	ecx, [ebp+arg_4]
		test	ecx, ecx
		jz	loc_72A2FE

loc_723579:				; CODE XREF: PfpScenCtxPrefetchAbortSet+6DB3j
		neg	ecx
		sbb	ecx, ecx
		not	ecx
		and	ecx, [ebp+arg_0]
		xor	edi, edi
		mov	[esi+18h], ecx

loc_723587:				; CODE XREF: PfpScenCtxPrefetchAbortSet+4Bj
					; PfpScenCtxPrefetchAbortSet+6DBEj
		test	ebx, ebx
		jz	loc_72A315

loc_72358F:				; CODE XREF: PfpScenCtxPrefetchAbortSet+6DE3j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723598:				; CODE XREF: PfpScenCtxPrefetchAbortSet+1Aj
		mov	edi, 0C0000059h
		jmp	short loc_723587
PfpScenCtxPrefetchAbortSet endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PopVerifierFlushMemoryBeforeSleep proc near ; CODE XREF: PoBroadcastSystemState+289p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A33A SIZE 0000002A BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		call	MmIsVerifierEnabled
		mov	eax, [ebp+var_4]
		shr	eax, 1
		and	al, 1
		test	byte ptr ds:_PopSimulate, 80h
		jnz	short loc_7235CB

loc_7235C4:				; CODE XREF: PopVerifierFlushMemoryBeforeSleep+2Dj
		test	al, al
		jnz	short loc_7235CF

loc_7235C8:				; CODE XREF: PopVerifierFlushMemoryBeforeSleep+6DBFj
		pop	esi
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7235CB:				; CODE XREF: PopVerifierFlushMemoryBeforeSleep+22j
		mov	al, 1
		jmp	short loc_7235C4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7235CF:				; CODE XREF: PopVerifierFlushMemoryBeforeSleep+26j
		push	2
		pop	esi
		jmp	loc_72A33A
PopVerifierFlushMemoryBeforeSleep endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4
		dd 0CCCCCCCCh
; Exported entry 1721. PoSetFixedWakeSource

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PoSetFixedWakeSource(x)
		public _PoSetFixedWakeSource@4
_PoSetFixedWakeSource@4	proc near

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		or	ds:_PopFixedWakeSourceMask, eax
		pop	ebp
		retn	4
_PoSetFixedWakeSource@4	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h
		dd 0CCCCCCCCh
; Exported entry 1204. KeLoadMTRR

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

		public KeLoadMTRR
KeLoadMTRR	proc near		; CODE XREF: KiLoadMTRRTarget(x)+8p

var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_5D		= byte ptr -5Dh
var_5C		= dword	ptr -5Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0072A364 SIZE 00000022 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 7Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		cmp	ds:byte_6C75B0,	0
		push	ebx
		mov	ebx, [ebp+arg_0]
		mov	[ebp+var_7C], ebx
		jz	loc_723755
		call	_KiCompareVarMtrr@0 ; KiCompareVarMtrr()
		test	al, al
		jz	loc_72A364

loc_723627:				; CODE XREF: KeLoadMTRR+6D77j
		cmp	ds:dword_6C75B8, 0
		jz	short loc_72364E
		lea	ecx, [ebp+var_5C]
		call	KiReadFixedMtrr
		mov	ecx, ds:dword_6C75B8
		lea	edx, [ebp+var_5C]
		call	_KiCompareFixedMtrr@8 ;	KiCompareFixedMtrr(x,x)
		test	al, al
		jz	loc_72A370

loc_72364E:				; CODE XREF: KeLoadMTRR+3Aj
					; KeLoadMTRR+6D83j
		push	edi
		call	_KeDisableInterrupts@0 ; KeDisableInterrupts()
		mov	ecx, ebx
		mov	[ebp+var_5D], al
		call	_KiLockStepExecution@4 ; KiLockStepExecution(x)
		mov	eax, cr0
		mov	ecx, eax
		mov	[ebp+var_78], eax
		and	ecx, 0DFFFFFFFh
		or	ecx, 40000000h
		mov	cr0, ecx
		mov	edi, cr4
		mov	ebx, edi
		mov	[ebp+var_6C], edi
		and	ebx, 80h
		wbinvd
		mov	[ebp+var_70], ebx
		jz	loc_72A37C
		mov	eax, edi
		and	eax, 0FFFFFF7Fh
		mov	cr4, eax

loc_723698:				; CODE XREF: KeLoadMTRR+6D8Dj
		mov	edx, ds:dword_6C75A4
		mov	ecx, 2FFh
		push	esi
		mov	esi, ds:_KiMtrrInfo
		and	esi, 0FFFFF7FFh
		mov	[ebp+var_74], edx
		mov	eax, esi
		mov	[ebp+var_68], esi
		wrmsr
		movzx	eax, byte ptr ds:dword_6C75A8
		xor	ecx, ecx
		cmp	eax, ecx
		jbe	short loc_72370F
		mov	edi, ecx
		mov	ebx, 201h
		mov	esi, ecx

loc_7236D0:				; CODE XREF: KeLoadMTRR+110j
		mov	edx, ds:dword_6C75B4
		lea	ecx, [ebx-1]
		inc	esi
		mov	eax, [edi+edx]
		lea	edi, [edi+10h]
		mov	edx, [edi+edx-0Ch]
		wrmsr
		mov	edx, ds:dword_6C75B4
		mov	ecx, ebx
		add	ebx, 2
		mov	eax, [edi+edx-8]
		mov	edx, [edi+edx-4]
		wrmsr
		movzx	eax, byte ptr ds:dword_6C75A8
		cmp	esi, eax
		jb	short loc_7236D0
		mov	esi, [ebp+var_68]
		mov	edi, [ebp+var_6C]
		mov	ebx, [ebp+var_70]

loc_72370F:				; CODE XREF: KeLoadMTRR+D1j
		mov	ecx, ds:dword_6C75B8
		test	ecx, ecx
		jz	short loc_72371E
		call	KiWriteFixedMtrr

loc_72371E:				; CODE XREF: KeLoadMTRR+123j
		mov	edx, [ebp+var_74]
		or	esi, 800h
		mov	ecx, 2FFh
		mov	eax, esi
		wrmsr
		wbinvd
		call	_KeFlushCurrentTbImmediately@0 ; KeFlushCurrentTbImmediately()
		mov	eax, [ebp+var_78]
		mov	cr0, eax
		pop	esi
		test	ebx, ebx
		jz	short loc_723745
		mov	cr4, edi

loc_723745:				; CODE XREF: KeLoadMTRR+14Cj
		mov	ecx, [ebp+var_7C]
		call	_KiLockStepExecution@4 ; KiLockStepExecution(x)
		cmp	[ebp+var_5D], 0
		pop	edi
		jz	short loc_723755
		sti

loc_723755:				; CODE XREF: KeLoadMTRR+20j
					; KeLoadMTRR+15Ej
		mov	ecx, [ebp+var_4]
		xor	eax, eax
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn	4
KeLoadMTRR	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiLockStepExecution(x)
_KiLockStepExecution@4 proc near	; CODE XREF: KeLoadMTRR+65p
					; KeLoadMTRR+154p
		mov	eax, large fs:20h
		mov	edx, [ecx+0Ch]
		mov	eax, [eax+3CCh]
		cmp	eax, [ecx]
		jz	short loc_72378A
		mov	eax, [edx]
		lock inc dword ptr [ecx+8]
		jmp	short loc_723783
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723781:				; CODE XREF: KiLockStepExecution(x)+1Fj
		pause

loc_723783:				; CODE XREF: KiLockStepExecution(x)+19j
		cmp	[edx], eax
		jz	short loc_723781
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723788:				; CODE XREF: KiLockStepExecution(x)+2Aj
		pause

loc_72378A:				; CODE XREF: KiLockStepExecution(x)+11j
		mov	eax, [ecx+8]
		cmp	eax, [ecx+4]
		jnz	short loc_723788
		mov	dword ptr [ecx+8], 0
		lock inc dword ptr [edx]
		retn
_KiLockStepExecution@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiSetPageAttributesTable()
_KiSetPageAttributesTable@0 proc near	; CODE XREF: KeRestoreProcessorSpecificFeatures()+3p
					; KiInitializeKernel(x,x,x,x,x,x):loc_7253FEp ...

var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		mov	[ebp+var_C], 70106h
		xor	ebx, ebx
		mov	[ebp+var_8], 70106h
		call	_KeDisableInterrupts@0 ; KeDisableInterrupts()
		mov	ecx, 277h
		mov	[ebp+var_15], al
		rdmsr
		mov	[ebp+var_14], eax
		mov	ecx, ebx
		mov	[ebp+var_10], edx

loc_7237D8:				; CODE XREF: KiSetPageAttributesTable()+4Cj
		mov	al, byte ptr [ebp+ecx+var_14]
		cmp	al, 6
		jz	short loc_723823

loc_7237E0:				; CODE XREF: KiSetPageAttributesTable()+8Aj
		cmp	al, byte ptr [ebp+ecx+var_C]
		jnz	short loc_72382F

loc_7237E6:				; CODE XREF: KiSetPageAttributesTable()+94j
		inc	ecx
		cmp	ecx, 8
		jb	short loc_7237D8

loc_7237EC:				; CODE XREF: KiSetPageAttributesTable()+8Fj
		test	ebx, ebx
		jz	short loc_723810
		and	ebx, 2
		jnz	short loc_723834

loc_7237F5:				; CODE XREF: KiSetPageAttributesTable()+98j
		call	_KeFlushCurrentTbImmediately@0 ; KeFlushCurrentTbImmediately()
		mov	eax, [ebp+var_C]
		mov	ecx, 277h
		mov	edx, [ebp+var_8]
		wrmsr
		test	ebx, ebx
		jnz	short loc_723838

loc_72380B:				; CODE XREF: KiSetPageAttributesTable()+9Cj
		call	_KeFlushCurrentTbImmediately@0 ; KeFlushCurrentTbImmediately()

loc_723810:				; CODE XREF: KiSetPageAttributesTable()+50j
		cmp	[ebp+var_15], 0
		pop	ebx
		jnz	short loc_72383C

loc_723817:				; CODE XREF: KiSetPageAttributesTable()+9Fj
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723823:				; CODE XREF: KiSetPageAttributesTable()+40j
		cmp	byte ptr [ebp+ecx+var_C], 6
		jz	short loc_7237E0
		push	3
		pop	ebx
		jmp	short loc_7237EC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72382F:				; CODE XREF: KiSetPageAttributesTable()+46j
		or	ebx, 1
		jmp	short loc_7237E6
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723834:				; CODE XREF: KiSetPageAttributesTable()+55j
		wbinvd
		jmp	short loc_7237F5
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723838:				; CODE XREF: KiSetPageAttributesTable()+6Bj
		wbinvd
		jmp	short loc_72380B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72383C:				; CODE XREF: KiSetPageAttributesTable()+77j
		sti
		jmp	short loc_723817
_KiSetPageAttributesTable@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


KiWriteFixedMtrr proc near		; CODE XREF: KeLoadMTRR+125p

; FUNCTION CHUNK AT 0072A386 SIZE 0000005B BYTES

		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	edi, edi
		cmp	ds:byte_6C75B1,	1
		mov	ebx, ecx
		mov	ecx, 0C0010010h
		jz	loc_72A386
		mov	eax, large fs:20h
		cmp	byte ptr [eax+3BEh], 2
		jz	loc_72A39A

loc_723870:				; CODE XREF: KiWriteFixedMtrr+6B6Bj
					; KiWriteFixedMtrr+6B80j
		mov	eax, [ebx]
		mov	ecx, 250h
		mov	edx, [ebx+4]
		wrmsr
		mov	eax, [ebx+8]
		add	ecx, 8
		mov	edx, [ebx+0Ch]
		wrmsr
		mov	eax, [ebx+10h]
		mov	ecx, 259h
		mov	edx, [ebx+14h]
		wrmsr
		mov	eax, [ebx+18h]
		add	ecx, 0Fh
		mov	edx, [ebx+1Ch]
		wrmsr
		mov	eax, [ebx+20h]
		mov	ecx, 269h
		mov	edx, [ebx+24h]
		wrmsr
		mov	eax, [ebx+28h]
		inc	ecx
		mov	edx, [ebx+2Ch]
		wrmsr
		mov	eax, [ebx+30h]
		mov	ecx, 26Bh
		mov	edx, [ebx+34h]
		wrmsr
		mov	eax, [ebx+38h]
		inc	ecx
		mov	edx, [ebx+3Ch]
		wrmsr
		mov	eax, [ebx+40h]
		mov	ecx, 26Dh
		mov	edx, [ebx+44h]
		wrmsr
		mov	eax, [ebx+48h]
		inc	ecx
		mov	edx, [ebx+4Ch]
		wrmsr
		mov	eax, [ebx+50h]
		mov	ecx, 26Fh
		mov	edx, [ebx+54h]
		wrmsr
		cmp	ds:byte_6C75B1,	1
		jz	loc_72A3C5

loc_7238FB:				; CODE XREF: KiWriteFixedMtrr+6B9Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
KiWriteFixedMtrr endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiCompareFixedMtrr(x, x)
_KiCompareFixedMtrr@8 proc near		; CODE XREF: KeLoadMTRR+4Dp
		mov	eax, large fs:20h
		push	esi
		xor	esi, esi
		cmp	[eax+3CCh], esi
		jz	short loc_723915

loc_723911:				; CODE XREF: KiCompareFixedMtrr(x,x)+30j
		mov	al, 1
		pop	esi
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723915:				; CODE XREF: KiCompareFixedMtrr(x,x)+Fj
		sub	ecx, edx

loc_723917:				; CODE XREF: KiCompareFixedMtrr(x,x)+2Ej
		mov	eax, [ecx+edx]
		cmp	eax, [edx]
		jnz	short loc_723932
		mov	eax, [ecx+edx+4]
		cmp	eax, [edx+4]
		jnz	short loc_723932
		inc	esi
		add	edx, 8
		cmp	esi, 0Bh
		jb	short loc_723917
		jmp	short loc_723911
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723932:				; CODE XREF: KiCompareFixedMtrr(x,x)+1Cj
					; KiCompareFixedMtrr(x,x)+25j
		xor	al, al
		pop	esi
		retn
_KiCompareFixedMtrr@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


KiReadFixedMtrr	proc near		; CODE XREF: KeLoadMTRR+3Fp
					; KiInitializeMTRR+D6p

; FUNCTION CHUNK AT 0072A3E1 SIZE 00000047 BYTES

		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	edi, edi
		cmp	ds:byte_6C75B1,	1
		mov	ebx, ecx
		mov	ecx, 0C0010010h
		jz	loc_72A3E1
		mov	eax, large fs:20h
		cmp	byte ptr [eax+3BEh], 2
		jz	loc_72A3EF

loc_723966:				; CODE XREF: KiReadFixedMtrr+6AC7j
					; KiReadFixedMtrr+6AD7j
		mov	ecx, 250h
		rdmsr
		add	ecx, 8
		mov	[ebx], eax
		mov	[ebx+4], edx
		rdmsr
		mov	[ebx+8], eax
		mov	ecx, 259h
		mov	[ebx+0Ch], edx
		rdmsr
		add	ecx, 0Fh
		mov	[ebx+10h], eax
		mov	[ebx+14h], edx
		rdmsr
		mov	[ebx+18h], eax
		mov	ecx, 269h
		mov	[ebx+1Ch], edx
		rdmsr
		inc	ecx
		mov	[ebx+20h], eax
		mov	[ebx+24h], edx
		rdmsr
		mov	[ebx+28h], eax
		mov	ecx, 26Bh
		mov	[ebx+2Ch], edx
		rdmsr
		inc	ecx
		mov	[ebx+30h], eax
		mov	[ebx+34h], edx
		rdmsr
		mov	[ebx+38h], eax
		mov	ecx, 26Dh
		mov	[ebx+3Ch], edx
		rdmsr
		inc	ecx
		mov	[ebx+40h], eax
		mov	[ebx+44h], edx
		rdmsr
		mov	[ebx+48h], eax
		mov	ecx, 26Fh
		mov	[ebx+4Ch], edx
		rdmsr
		mov	[ebx+50h], eax
		mov	[ebx+54h], edx
		cmp	ds:byte_6C75B1,	1
		jz	loc_72A412

loc_7239F1:				; CODE XREF: KiReadFixedMtrr+6AEDj
		pop	edi
		pop	esi
		pop	ebx
		retn
KiReadFixedMtrr	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiCompareVarMtrr()
_KiCompareVarMtrr@0 proc near		; CODE XREF: KeLoadMTRR+26p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, large fs:20h
		sub	esp, 1Ch
		xor	ecx, ecx
		push	ebx
		push	esi
		push	edi
		cmp	[eax+3CCh], ecx
		jz	short loc_723A18

loc_723A11:				; CODE XREF: KiCompareVarMtrr()+30j
					; KiCompareVarMtrr()+AFj
		mov	al, 1

loc_723A13:				; CODE XREF: KiCompareVarMtrr()+B6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723A18:				; CODE XREF: KiCompareVarMtrr()+19j
		movzx	eax, byte ptr ds:dword_6C75A8
		mov	edi, ecx
		mov	[ebp+var_1C], eax
		cmp	eax, ecx
		jbe	short loc_723A11
		mov	esi, ds:dword_6C75B4
		mov	ebx, 201h
		add	esi, 8

loc_723A36:				; CODE XREF: KiCompareVarMtrr()+ADj
		lea	ecx, [ebx-1]
		rdmsr
		mov	[ebp+var_10], eax
		mov	ecx, ebx
		mov	[ebp+var_14], edx
		rdmsr
		mov	ecx, [esi]
		mov	[ebp+var_8], eax
		mov	eax, edx
		mov	edx, [ebp+var_8]
		mov	[ebp+var_4], ecx
		mov	ecx, [esi+4]
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], ecx
		mov	ecx, [ebp+var_4]
		shrd	edx, eax, 0Bh
		mov	eax, [ebp+var_C]
		shrd	ecx, eax, 0Bh
		and	edx, 1
		and	ecx, 1
		cmp	edx, ecx
		jnz	short loc_723AAA
		xor	ecx, ecx
		or	edx, ecx
		jz	short loc_723A99
		mov	eax, [ebp+var_10]
		cmp	eax, [esi-8]
		jnz	short loc_723AAA
		mov	eax, [ebp+var_14]
		cmp	eax, [esi-4]
		jnz	short loc_723AAA
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_723AAA
		mov	eax, [ebp+var_C]
		cmp	[ebp+var_18], eax
		jnz	short loc_723AAA

loc_723A99:				; CODE XREF: KiCompareVarMtrr()+81j
		inc	edi
		add	ebx, 2
		add	esi, 10h
		cmp	edi, [ebp+var_1C]
		jb	short loc_723A36
		jmp	loc_723A11
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723AAA:				; CODE XREF: KiCompareVarMtrr()+7Bj
					; KiCompareVarMtrr()+89j ...
		xor	al, al
		jmp	loc_723A13
_KiCompareVarMtrr@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiCheckMicrocode proc near		; CODE XREF: KiRestoreFeatureBits()+FDp
					; KiInitializeKernel(x,x,x,x,x,x)+1FFp

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A428 SIZE 00000067 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 24h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+24h+var_4], eax
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[esp+30h+var_18], ecx
		cmp	ds:_KiMicrocodeTrackerEnabled, 0
		lea	edi, [esp+30h+var_14]
		stosd
		stosd
		stosd
		stosd
		jz	loc_723B8F
		cmp	ds:_KiBootProcessorsStarted, 0
		jz	short loc_723B01
		mov	eax, [ecx+3CCh]
		cmp	eax, ds:_KiBootProcessorCount
		jnb	loc_723B8F

loc_723B01:				; CODE XREF: KiCheckMicrocode+3Bj
		mov	al, [ecx+3BEh]
		cmp	al, 2
		jz	loc_72A428
		cmp	al, 1
		jnz	short loc_723B8F
		xor	eax, eax
		lea	edi, [esp+30h+var_14]
		xor	edx, edx
		mov	ecx, 8Bh
		wrmsr
		inc	eax
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	ecx, 8Bh
		mov	[edi+0Ch], edx
		rdmsr
		push	17h
		pop	ecx
		mov	ebx, edx
		rdmsr
		mov	[esp+30h+var_20], eax
		mov	[esp+30h+var_24], edx

loc_723B4D:				; CODE XREF: KiCheckMicrocode+69AAj
		mov	edi, [esp+30h+var_14]
		xor	esi, esi
		mov	edx, [esp+30h+var_20]
		xor	ecx, ecx

loc_723B59:				; CODE XREF: KiCheckMicrocode+121j
		cmp	ds:_KiMicrocodeTracker[ecx], 0
		jz	short loc_723BA1
		cmp	ds:dword_70E4E4[ecx], edi
		jnz	short loc_723BCC
		cmp	ds:dword_70E4E8[ecx], edx
		jnz	short loc_723BCC
		mov	eax, ds:dword_70E4EC[ecx]
		cmp	eax, [esp+30h+var_24]
		jnz	short loc_723BCC
		imul	eax, esi, 18h
		mov	ecx, ds:dword_70E4F0[eax]
		cmp	ecx, ebx
		jnz	loc_72A461

loc_723B8F:				; CODE XREF: KiCheckMicrocode+2Ej
					; KiCheckMicrocode+49j	...
		mov	ecx, [esp+30h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723BA1:				; CODE XREF: KiCheckMicrocode+AEj
		imul	eax, esi, 18h
		mov	ds:_KiMicrocodeTracker[ecx], 1
		mov	ecx, [esp+30h+var_24]
		mov	ds:dword_70E4E4[eax], edi
		mov	ds:dword_70E4E8[eax], edx
		mov	ds:dword_70E4EC[eax], ecx
		mov	ds:dword_70E4F0[eax], ebx
		jmp	short loc_723B8F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723BCC:				; CODE XREF: KiCheckMicrocode+B6j
					; KiCheckMicrocode+BEj	...
		add	ecx, 18h
		inc	esi
		cmp	ecx, 60h
		jb	short loc_723B59
		jmp	short loc_723B8F
KiCheckMicrocode endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall BapdRegisterSiData(x, x, x)
_BapdRegisterSiData@12 proc near	; CODE XREF: PopBootLoaderSiData(x)+22p
					; BapdpRegisterWbclData(x)+93p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		xor	eax, eax
		mov	[ebp+var_C], edx
		mov	esi, ecx
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_8], eax
		push	edi
		test	esi, esi
		jz	loc_723DF1
		lea	ecx, [ebp+var_8]
		call	_BapdGetISRegistryKey@4	; BapdGetISRegistryKey(x)
		test	eax, eax
		js	loc_723DE3
		mov	ebx, [ebp+arg_0]
		lea	edi, [esi+4]
		test	edi, edi
		jz	short loc_723C46
		cmp	dword ptr [esi], 0
		jz	short loc_723C46
		mov	eax, offset ??_C@_1BC@GMFALMFC@?$AAW?$AAB?$AAC?$AAL?$AAD?$AAr?$AAt?$AAm@OKHAJAOM@
		cmp	ebx, 2
		jz	short loc_723C29
		mov	eax, offset ??_C@_19HEALFAGP@?$AAW?$AAB?$AAC?$AAL@OKHAJAOM@

loc_723C29:				; CODE XREF: BapdRegisterSiData(x,x,x)+4Aj
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	dword ptr [esi]
		lea	eax, [ebp+var_14]
		push	edi
		push	3
		push	0
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)

loc_723C46:				; CODE XREF: BapdRegisterSiData(x,x,x)+3Bj
					; BapdRegisterSiData(x,x,x)+40j
		cmp	ebx, 2
		jz	loc_723DE3
		mov	edi, [esi]
		lea	eax, [edi+34h]
		cmp	[ebp+var_C], eax
		jb	loc_723DE3
		cmp	dword ptr [edi+esi+4], 30h
		ja	loc_723DE3
		cmp	dword ptr [edi+esi+8], 2
		ja	loc_723DE3
		push	offset ??_C@_1BG@CBMDEONI@?$AAE?$AAv?$AAe?$AAn?$AAt?$AAC?$AAo?$AAu?$AAn?$AAt@OKHAJAOM@ ; "E"
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	8
		lea	eax, [esi+0Ch]
		add	eax, edi
		push	eax
		push	0Bh
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	offset ??_C@_1BE@PMCPENL@?$AAB?$AAo?$AAo?$AAt?$AAC?$AAo?$AAu?$AAn?$AAt@OKHAJAOM@
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	8
		lea	eax, [esi+14h]
		add	eax, edi
		push	eax
		push	0Bh
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	offset ??_C@_1BE@PLFCIJJC@?$AAC?$AAo?$AAu?$AAn?$AAt?$AAe?$AAr?$AAI?$AAd@OKHAJAOM@
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	8
		lea	eax, [esi+1Ch]
		add	eax, edi
		push	eax
		push	0Bh
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		cmp	dword ptr [edi+esi+8], 2
		jnz	loc_723D70
		cmp	dword ptr [edi+esi+4], 30h
		jnz	short loc_723D70
		cmp	byte ptr [edi+esi+24h],	0
		jz	short loc_723D70
		push	(offset	loc_728289+1)
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	4
		lea	eax, [esi+2Ch]
		add	eax, edi
		push	eax
		push	4
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	(offset	loc_728231+1)
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	4
		lea	eax, [esi+30h]
		add	eax, edi
		push	eax
		push	4
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	offset ??_C@_1BO@KBGBBKMI@?$AAT?$AAP?$AAM?$AAD?$AAi?$AAg?$AAe?$AAs?$AAt?$AAA?$AAl?$AAg?$AAI?$AAD@OKHAJAOM@
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	4
		lea	eax, [esi+28h]
		add	eax, edi
		push	eax
		push	4
		push	0
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)

loc_723D70:				; CODE XREF: BapdRegisterSiData(x,x,x)+112j
					; BapdRegisterSiData(x,x,x)+11Dj ...
		test	ebx, ebx
		jnz	short loc_723DE3
		push	(offset	loc_7281EB+1)
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	8
		lea	eax, [esi+0Ch]
		add	eax, edi
		push	eax
		push	0Bh
		push	ebx
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	(offset	loc_72820F+1)
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	8
		lea	eax, [esi+14h]
		add	eax, edi
		push	eax
		push	0Bh
		push	ebx
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	offset ??_C@_1CC@KBCDAIDG@?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAl?$AAC?$AAo?$AAu?$AAn?$AAt?$AAe?$AAr?$AAI@OKHAJAOM@
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	8
		lea	eax, [esi+1Ch]
		add	eax, edi
		push	eax
		push	0Bh
		push	ebx
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+var_8]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)

loc_723DE3:				; CODE XREF: BapdRegisterSiData(x,x,x)+2Dj
					; BapdRegisterSiData(x,x,x)+71j ...
		cmp	[ebp+var_8], 0
		jz	short loc_723DF1
		push	[ebp+var_8]
		call	_ZwClose@4	; ZwClose(x)

loc_723DF1:				; CODE XREF: BapdRegisterSiData(x,x,x)+1Dj
					; BapdRegisterSiData(x,x,x)+20Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
_BapdRegisterSiData@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall BapdGetISRegistryKey(x)
_BapdGetISRegistryKey@4	proc near	; CODE XREF: BapdRegisterSiData(x,x,x)+26p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		lea	eax, [ebp+var_C]
		push	offset ??_C@_1GG@IBGAEKLO@?$AA?2?$AAR?$AAE?$AAG?$AAI?$AAS?$AAT?$AAR?$AAY?$AA?2?$AAM?$AAA?$AAC?$AAH?$AAI@OKHAJAOM@
		push	eax
		mov	edi, ecx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		lea	eax, [ebp+var_C]
		mov	[ebp+var_24], 18h
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_24]
		push	eax
		push	20019h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_20], ebx
		push	eax
		mov	[ebp+var_18], 240h
		mov	[ebp+var_14], ebx
		mov	[ebp+var_10], ebx
		call	_ZwOpenKey@12	; ZwOpenKey(x,x,x)
		mov	esi, eax
		test	esi, esi
		js	short loc_723E9F
		push	offset ??_C@_1CE@KCLMNKNL@?$AAI?$AAn?$AAt?$AAe?$AAg?$AAr?$AAi?$AAt?$AAy?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc@OKHAJAOM@
		lea	eax, [ebp+var_C]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		mov	eax, [ebp+var_4]
		push	ebx
		push	1
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_C]
		push	ebx
		push	ebx
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_24]
		push	eax
		push	6001Fh
		push	edi
		mov	[ebp+var_24], 18h
		mov	[ebp+var_18], 240h
		mov	[ebp+var_14], ebx
		mov	[ebp+var_10], ebx
		call	_ZwCreateKey@28	; ZwCreateKey(x,x,x,x,x,x,x)
		push	[ebp+var_4]
		mov	esi, eax
		call	_ZwClose@4	; ZwClose(x)

loc_723E9F:				; CODE XREF: BapdGetISRegistryKey(x)+59j
		pop	edi
		mov	eax, esi
		pop	esi
		pop	ebx
		leave
		retn
_BapdGetISRegistryKey@4	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

KiEnableXSave:				; CODE XREF: KiRestoreXSaveSupport()j
					; KiInitializeKernel(x,x,x,x,x,x)+30Bp	...
		mov	eax, ds:_KeFeatureBits
		and	eax, 400000h
		or	eax, 0
		mov	ecx, cr4
		jz	loc_72A479
		mov	eax, 40000h
		test	ecx, eax
		jz	short loc_723F03

loc_723EC5:				; CODE XREF: PAGELK:00723F08j
		mov	eax, ds:0FFDF03D8h
		xor	ecx, ecx
		mov	edx, ds:0FFDF03DCh
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		dw 10Fh
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		shl	dword ptr [ecx-20FA10h], 1
		mov	ecx, eax
		mov	edx, ds:0FFDF05F4h
		or	ecx, edx
		jnz	short loc_723F0A

loc_723EE6:				; CODE XREF: PAGELK:00723F11j
		mov	ecx, large fs:20h
		lea	eax, [ecx+18h]
		cmp	[ecx+4168h], eax
		jz	short nullsub_7
		or	dword ptr [ecx+416Ch], 10040h
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723F03:				; CODE XREF: PAGELK:00723EC3j
		or	ecx, eax
		mov	cr4, ecx
		jmp	short loc_723EC5
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723F0A:				; CODE XREF: PAGELK:00723EE4j
		mov	ecx, 0DA0h
		wrmsr
		jmp	short loc_723EE6
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PfTAccessTracingStart(x, x,	x)
_PfTAccessTracingStart@12 proc near	; CODE XREF: PfpPowerActionStartScenarioTracing(x)+2Ap
					; PfTStart+1A9p ...

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, large fs:124h
		push	ebx
		push	esi
		push	edi
		dec	word ptr [eax+13Ch]
		mov	ebx, edx
		mov	esi, ecx
		nop
		lea	edi, [esi+0Ch]
		xor	edx, edx
		mov	ecx, edi
		call	ExAcquirePushLockExclusiveEx
		mov	eax, [ebp+arg_0]
		not	eax
		and	[esi+8], eax
		jnz	short loc_723F61
		mov	dword ptr [ebx+1Ch], 100h
		call	_MmGetDefaultPagePriority@0 ; MmGetDefaultPagePriority()
		xor	ecx, ecx
		mov	edx, eax
		inc	ecx
		call	MmSetAccessLogging
		mov	cl, 1
		call	_MmEnablePeriodicAccessClearing@4 ; MmEnablePeriodicAccessClearing(x)

loc_723F61:				; CODE XREF: PfTAccessTracingStart(x,x,x)+2Ej
		or	eax, 0FFFFFFFFh
		lock xadd [edi], eax
		and	al, 6
		cmp	al, 2
		jz	short loc_723F81

loc_723F6E:				; CODE XREF: PfTAccessTracingStart(x,x,x)+74j
		mov	ecx, edi
		call	KeAbPostRelease
		call	_KeLeaveCriticalRegion@0 ; KeLeaveCriticalRegion()
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723F81:				; CODE XREF: PfTAccessTracingStart(x,x,x)+58j
		mov	ecx, edi
		call	@ExfTryToWakePushLock@4	; ExfTryToWakePushLock(x)
		jmp	short loc_723F6E
_PfTAccessTracingStart@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall MmEnablePeriodicAccessClearing(x)
_MmEnablePeriodicAccessClearing@4 proc near ; CODE XREF: PfTAccessTracingCleanup(x,x,x)+77p
					; PfTAccessTracingStart(x,x,x)+48p
		mov	edi, edi
		push	ebx
		mov	bl, cl
		xor	ecx, ecx

loc_723F91:				; CODE XREF: MmEnablePeriodicAccessClearing(x)+1Fj
		call	_PsGetNextPartition@4 ;	PsGetNextPartition(x)
		test	eax, eax
		jnz	short loc_723F9C
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_723F9C:				; CODE XREF: MmEnablePeriodicAccessClearing(x)+Ej
		mov	ecx, [eax]
		mov	ecx, [ecx+0F00h]
		mov	[ecx+2Fh], bl
		mov	ecx, eax
		jmp	short loc_723F91
_MmEnablePeriodicAccessClearing@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall PfSnAllocateEnablePrefetcherTimer(x)
_PfSnAllocateEnablePrefetcherTimer@4 proc near ; CODE XREF: PfSnBeginBootPhase+53p
					; PfSnQueueEnablePrefetcherTimer(x)+9p
		mov	edi, edi
		push	esi
		push	edi
		push	77506343h
		push	50h
		push	200h
		mov	edi, ecx
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	esi, eax
		test	esi, esi
		jz	short loc_723FE3
		push	0
		push	esi
		call	_KeInitializeTimerEx@8 ; KeInitializeTimerEx(x,x)
		push	esi
		push	offset _PfSnEnablePrefetcherTimerRoutine@16 ; PfSnEnablePrefetcherTimerRoutine(x,x,x,x)
		lea	ecx, [esi+28h]
		push	ecx
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	[esi+48h], edi

loc_723FE3:				; CODE XREF: PfSnAllocateEnablePrefetcherTimer(x)+1Bj
		pop	edi
		mov	eax, esi
		pop	esi
		retn
_PfSnAllocateEnablePrefetcherTimer@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		dd 0CCCCCCCCh
		db 2 dup(0CCh)
; Exported entry 1146. KeForceEnableNx

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KeForceEnableNx()
		public _KeForceEnableNx@0
_KeForceEnableNx@0 proc	near
		mov	al, ds:_KiNxForceEnable
		retn
_KeForceEnableNx@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

BapdRecordFirmwareBootStats proc near	; CODE XREF: PopBootLoaderTraceProcess()+Dp
					; INIT:00AC2D0Fp

var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= dword	ptr -0ECh
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072AF38 SIZE 00000125 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 12Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		xor	eax, eax
		xor	edx, edx
		push	ebx
		push	esi
		push	edi
		mov	edi, eax
		mov	[ebp+var_F8], eax
		mov	ebx, eax
		mov	[ebp+var_F4], eax
		push	eax
		mov	ecx, offset dword_6B2B58
		mov	[ebp+var_100], eax
		mov	[ebp+var_FC], eax
		mov	esi, eax
		mov	[ebp+var_F0], eax
		mov	[ebp+var_EC], eax
		mov	[ebp+var_108], eax
		mov	[ebp+var_104], eax
		mov	[ebp+var_E8], eax
		mov	[ebp+var_E4], eax
		mov	[ebp+var_D8], edi
		mov	[ebp+var_D4], ebx
		mov	[ebp+var_CC], eax
		mov	[ebp+var_E0], eax
		mov	[ebp+var_DC], eax
		call	_TraceLoggingRegisterEx_EtwRegister_EtwSetInformation@12 ; TraceLoggingRegisterEx_EtwRegister_EtwSetInformation(x,x,x)
		call	_ExIsSoftBoot@0	; ExIsSoftBoot()
		test	al, al
		jnz	loc_724225
		lea	eax, [ebp+var_D8]
		mov	dl, 1
		push	eax
		mov	ecx, offset _BOOTENV_ETW_PROVIDER
		call	_BapdRegisterEtwProvider@12 ; BapdRegisterEtwProvider(x,x,x)
		test	eax, eax
		js	loc_72B04C
		lea	eax, [ebp+var_CC]
		push	eax
		push	ebx
		push	ebx
		push	22h
		call	ds:off_6B2BC4	; xHalQuerySystemInformation(x,x,x,x)
		cmp	eax, 0C0000004h
		jnz	loc_72B04C
		cmp	[ebp+var_CC], ebx
		jz	loc_72B04C
		push	73627746h
		push	[ebp+var_CC]
		push	1
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	esi, eax
		test	esi, esi
		jz	loc_72B04C
		lea	eax, [ebp+var_CC]
		push	eax
		push	esi
		push	[ebp+var_CC]
		push	22h
		call	ds:off_6B2BC4	; xHalQuerySystemInformation(x,x,x,x)
		test	eax, eax
		js	loc_72B04C
		push	ebx
		mov	edi, 0F4240h
		push	edi
		push	dword ptr [esi+14h]
		push	dword ptr [esi+10h]
		call	__aulldiv
		push	ebx
		push	edi
		mov	[ebp+var_E8], eax
		mov	[ebp+var_E4], edx
		push	dword ptr [esi+1Ch]
		push	dword ptr [esi+18h]
		call	__aulldiv
		push	ebx
		push	edi
		mov	[ebp+var_F0], eax
		mov	[ebp+var_EC], edx
		push	dword ptr [esi+24h]
		push	dword ptr [esi+20h]
		call	__aulldiv
		push	ebx
		push	edi
		mov	[ebp+var_E0], eax
		mov	[ebp+var_DC], edx
		push	dword ptr [esi+2Ch]
		push	dword ptr [esi+28h]
		call	__aulldiv
		push	ebx
		push	edi
		mov	[ebp+var_F8], eax
		mov	[ebp+var_F4], edx
		push	dword ptr [esi+34h]
		push	dword ptr [esi+30h]
		call	__aulldiv
		mov	[ebp+var_100], eax
		lea	eax, [ebp+var_E8]
		mov	edi, [ebp+var_D8]
		mov	[ebp+var_58], eax
		lea	eax, [ebp+var_F0]
		mov	[ebp+var_48], eax
		lea	eax, [ebp+var_E0]
		mov	[ebp+var_38], eax
		lea	eax, [ebp+var_F8]
		push	8
		pop	ecx
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_100]
		mov	[ebp+var_18], eax
		lea	eax, [ebp+var_58]
		push	eax
		push	5
		push	ebx
		push	(offset	loc_408507+1)
		mov	[ebp+var_54], ebx
		mov	[ebp+var_4C], ebx
		mov	[ebp+var_44], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_C], ebx
		mov	ebx, [ebp+var_D4]
		push	ebx
		push	edi
		mov	[ebp+var_FC], edx
		mov	[ebp+var_50], ecx
		mov	[ebp+var_40], ecx
		mov	[ebp+var_30], ecx
		mov	[ebp+var_20], ecx
		mov	[ebp+var_10], ecx
		call	_EtwWrite@24	; EtwWrite(x,x,x,x,x,x)
		cmp	ds:dword_6B2B58, 4
		jbe	short loc_724225
		push	4000h
		push	0
		mov	ecx, offset dword_6B2B58
		call	__tlgKeywordOn@12 ; _tlgKeywordOn(x,x,x)
		test	al, al
		jnz	loc_72AF38

loc_724225:				; CODE XREF: BapdRecordFirmwareBootStats+8Ej
					; BapdRecordFirmwareBootStats+216j ...
		push	offset ??_C@_1BG@FGILHOGJ@?$AAF?$AAw?$AAP?$AAO?$AAS?$AAT?$AAT?$AAi?$AAm?$AAe@OKHAJAOM@ ; "FwPOSTTime"
		lea	eax, [ebp+var_108]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		lea	eax, [ebp+var_108]
		push	eax
		lea	ecx, [ebp+var_E0]
		call	_BapdpWriteEventDataToRegistry@12 ; BapdpWriteEventDataToRegistry(x,x,x)
		test	esi, esi
		jz	short loc_724258
		push	[ebp+var_CC]
		push	esi
		call	_ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)

loc_724258:				; CODE XREF: BapdRecordFirmwareBootStats+256j
		mov	eax, edi
		or	eax, ebx
		jz	short loc_724265
		push	ebx
		push	edi
		call	EtwUnregister

loc_724265:				; CODE XREF: BapdRecordFirmwareBootStats+268j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
BapdRecordFirmwareBootStats endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall BapdpWriteEventDataToRegistry(x, x,	x)
_BapdpWriteEventDataToRegistry@12 proc near ; CODE XREF: BapdWriteEtwEvents+219p
					; BapdWriteEtwEvents+90E9Bp ...

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		lea	eax, [ebp+var_14]
		push	offset ??_C@_1GG@IBGAEKLO@?$AA?2?$AAR?$AAE?$AAG?$AAI?$AAS?$AAT?$AAR?$AAY?$AA?2?$AAM?$AAA?$AAC?$AAH?$AAI@OKHAJAOM@
		push	eax
		mov	edi, ecx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		push	18h
		pop	esi
		lea	eax, [ebp+var_14]
		mov	[ebp+var_2C], esi
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	2001Fh
		lea	eax, [ebp+var_8]
		mov	[ebp+var_28], ebx
		push	eax
		mov	[ebp+var_20], 240h
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_18], ebx
		call	_ZwOpenKey@12	; ZwOpenKey(x,x,x)
		test	eax, eax
		js	short loc_724336
		push	offset ??_C@_1CM@JGIJKPEK@?$AAS?$AAe?$AAs?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAM?$AAa?$AAn?$AAa?$AAg?$AAe?$AAr@OKHAJAOM@
		lea	eax, [ebp+var_14]
		push	eax
		call	_RtlInitUnicodeString@8	; RtlInitUnicodeString(x,x)
		mov	eax, [ebp+var_8]
		push	ebx
		push	ebx
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_14]
		push	ebx
		mov	[ebp+var_24], eax
		lea	eax, [ebp+var_2C]
		push	ebx
		push	eax
		push	2001Fh
		lea	eax, [ebp+var_C]
		mov	[ebp+var_2C], esi
		push	eax
		mov	[ebp+var_20], 240h
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_18], ebx
		call	_ZwCreateKey@28	; ZwCreateKey(x,x,x,x,x,x,x)
		push	[ebp+var_8]
		mov	esi, eax
		call	_ZwClose@4	; ZwClose(x)
		test	esi, esi
		js	short loc_724336
		push	4
		push	edi
		push	4
		push	ebx
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	_ZwSetValueKey@24 ; ZwSetValueKey(x,x,x,x,x,x)
		push	[ebp+var_C]
		call	_ZwClose@4	; ZwClose(x)

loc_724336:				; CODE XREF: BapdpWriteEventDataToRegistry(x,x,x)+59j
					; BapdpWriteEventDataToRegistry(x,x,x)+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
_BapdpWriteEventDataToRegistry@12 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiConfigureSchedulingInformation(x,	x)
_KiConfigureSchedulingInformation@8 proc near
					; CODE XREF: KiInitializeDynamicProcessorDpc(x,x,x,x)+CEp
					; KiInitializeDynamicProcessorDpc(x,x,x,x)+F4p	...

var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		and	[ebp+var_C], 0
		xor	eax, eax
		and	[ebp+var_8], 0
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_1A], ax
		lea	edi, [ebp+var_30]
		stosd
		mov	ebx, ecx
		mov	[ebp+var_1], dl
		mov	[ebp+var_18], ebx
		mov	ecx, [ebx+4010h]
		stosd
		stosd
		test	ecx, ecx
		jz	short loc_72437E
		mov	eax, [ebx+ecx*4+4034h]
		mov	[ebx+4034h], eax
		jmp	short loc_724384
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72437E:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+2Fj
		mov	eax, [ebx+4034h]

loc_724384:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+3Ej
		test	eax, eax
		jnz	short loc_724394
		mov	eax, [ebx+3C8h]
		mov	[ebx+4034h], eax

loc_724394:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+48j
		movzx	edi, byte ptr [ebx+3C4h]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_7243D1
		mov	esi, [ebx+402Ch]
		lea	edx, [ebx+4038h]
		not	esi

loc_7243AF:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+7Bj
		test	[edx], esi
		jnz	short loc_7243BD
		inc	eax
		add	edx, 4
		cmp	eax, ecx
		jb	short loc_7243AF
		jmp	short loc_7243D1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7243BD:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+73j
		mov	eax, [ebx+eax*4+4038h]
		and	[ebp+var_14], 0
		bsf	edi, eax
		mov	[ebx+4030h], eax

loc_7243D1:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+61j
					; KiConfigureSchedulingInformation(x,x)+7Dj
		cmp	[ebp+var_1], 0
		mov	esi, [ebx+338h]
		mov	[ebx+404Ch], edi
		jnz	loc_7245E8
		mov	eax, [ebx+3CCh]
		cmp	eax, [esi+9Ch]
		jnz	loc_7245E8
		mov	edi, ds:_KiMaximumSharedReadyQueueSize
		test	edi, edi
		jnz	short loc_724404
		inc	edi

loc_724404:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+C3j
		test	edi, 100h
		jz	short loc_72441D
		and	edi, 0FFFFFEFFh
		call	_KeDoesSystemHaveHeterogeneousCoreTypes@0 ; KeDoesSystemHaveHeterogeneousCoreTypes()
		test	eax, eax
		jz	short loc_72441D
		add	edi, edi

loc_72441D:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+CCj
					; KiConfigureSchedulingInformation(x,x)+DBj
		cmp	edi, 20h
		jbe	short loc_724425
		push	20h
		pop	edi

loc_724425:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+E2j
		call	ds:__imp__KeRaiseIrqlToDpcLevel@0 ; KeRaiseIrqlToDpcLevel()
		movzx	ecx, word ptr [esi+8Ah]
		and	dword ptr [esi+90h], 0
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	ecx
		call	_KeQueryNodeActiveAffinity@12 ;	KeQueryNodeActiveAffinity(x,x,x)
		movzx	esi, word ptr [ebp+var_C]
		xor	edx, edx
		and	[ebp+var_10], 0
		and	[ebp+var_24], 0
		lea	eax, [esi-1]
		add	eax, edi
		div	edi
		xor	edx, edx
		mov	edi, [ebx+4024h]
		mov	ecx, eax
		mov	eax, esi
		div	ecx
		mov	[ebp+var_14], eax
		mov	ax, [ebp+var_2C]
		mov	[ebp+var_1C], ax
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_8]
		mov	[ebp+var_C], edx
		push	eax
		call	_KeEnumerateNextProcessor@8 ; KeEnumerateNextProcessor(x,x)
		test	eax, eax
		jnz	loc_724559
		mov	ebx, [ebp+var_10]

loc_724499:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+212j
		mov	eax, [ebp+var_8]
		mov	esi, ds:_KiProcessorBlock[eax*4]
		movzx	eax, byte ptr [edi+12Bh]
		cmp	ebx, eax
		jnz	short loc_7244B4
		mov	edi, [esi+4024h]

loc_7244B4:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+16Ej
		mov	ecx, ebx
		sub	ecx, eax
		neg	ecx
		sbb	ecx, ecx
		and	ecx, ebx
		jnz	short loc_7244DC
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_14]
		mov	[edi+12Bh], al
		test	edx, edx
		jz	short loc_7244DC
		inc	al
		dec	edx
		mov	[edi+12Bh], al
		mov	[ebp+var_C], edx

loc_7244DC:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+180j
					; KiConfigureSchedulingInformation(x,x)+190j
		mov	eax, [esi+3C8h]
		lea	ebx, [ecx+1]
		mov	[esi+4024h], edi
		or	[edi+130h], eax
		movzx	eax, byte ptr [edi+129h]
		movzx	ecx, byte ptr [esi+3C4h]
		sub	ecx, eax
		lea	eax, [ecx+108h]
		add	eax, edi
		mov	[esi+33Ch], eax
		mov	eax, [esi+8]
		mov	[ebp+var_10], eax
		test	eax, eax
		jnz	short loc_72451F
		mov	eax, [esi+4]
		mov	[ebp+var_10], eax

loc_72451F:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+1D9j
		mov	edx, esi
		mov	ecx, eax
		call	KiIsThreadRankNonZero
		test	al, al
		jz	short loc_724530
		mov	cl, 1
		jmp	short loc_724539
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724530:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+1ECj
		mov	eax, [ebp+var_10]
		mov	cl, [eax+87h]

loc_724539:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+1F0j
		mov	eax, [esi+33Ch]
		mov	[eax], cl
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	_KeEnumerateNextProcessor@8 ; KeEnumerateNextProcessor(x,x)
		test	eax, eax
		jz	loc_724499
		mov	ebx, [ebp+var_18]

loc_724559:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+152j
		mov	ax, [ebp+var_2C]
		and	[ebp+var_24], 0
		mov	[ebp+var_1C], ax
		mov	eax, [ebp+var_30]
		mov	[ebp+var_20], eax
		jmp	short loc_7245CE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72456D:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+29Fj
		mov	eax, [ebp+var_8]
		mov	edx, ds:_KiProcessorBlock[eax*4]
		mov	ecx, [edx+4024h]
		cmp	byte ptr [ecx+12Bh], 1
		jbe	short loc_724592
		mov	eax, [ecx+130h]
		mov	[edx+4020h], eax

loc_724592:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+246j
		mov	al, [edx+3C4h]
		cmp	al, [ecx+129h]
		jnz	short loc_7245CE
		cmp	byte ptr [ecx+12Bh], 1
		jbe	short loc_7245CE
		mov	dword ptr [edx+4028h], 1
		mov	[ecx+12Ch], al
		bsr	eax, [ecx+130h]
		sub	al, [ecx+129h]
		inc	al
		mov	[ecx+128h], al

loc_7245CE:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+22Dj
					; KiConfigureSchedulingInformation(x,x)+260j ...
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		call	_KeEnumerateNextProcessor@8 ; KeEnumerateNextProcessor(x,x)
		test	eax, eax
		jz	short loc_72456D
		mov	cl, [ebp+var_1]
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)

loc_7245E8:				; CODE XREF: KiConfigureSchedulingInformation(x,x)+A3j
					; KiConfigureSchedulingInformation(x,x)+B5j
		mov	ecx, ebx
		call	KiConfigureCpuSetSchedulingInformation
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
_KiConfigureSchedulingInformation@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiAdjustSimultaneousMultiThreadingCharacteristics proc near
					; CODE XREF: KiConfigureProcessorBlock:loc_72A504p
					; KiAllProcessorsStarted+Ap

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A48F SIZE 00000061 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		cmp	ds:_KiSMTProcessorsPresent, 0
		jz	locret_724816
		push	ebx
		push	esi
		push	edi
		mov	edi, ds:_KiProcessorBlock
		xor	ebx, ebx
		inc	ebx
		mov	esi, ebx
		mov	edx, [edi+344h]
		lea	eax, ds:0FFFFFFFFh[edx*2]
		bsr	ecx, eax
		shl	esi, cl
		dec	esi
		not	esi
		mov	[ebp+var_4], esi
		cmp	edx, ebx
		jbe	short loc_72466B
		movzx	edx, byte ptr [edi+3D49h]
		mov	ecx, ebx
		and	edx, esi
		cmp	ds:_KeNumberProcessors,	ebx
		jbe	short loc_72466B

loc_724646:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+75j
		mov	eax, ds:_KiProcessorBlock[ecx*4]
		cmp	[eax+3D38h], ebx
		jz	short loc_724662
		movzx	eax, byte ptr [eax+3D49h]
		and	eax, esi
		cmp	eax, edx
		jz	short loc_72466B

loc_724662:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+5Fj
		inc	ecx
		cmp	ecx, ds:_KeNumberProcessors
		jb	short loc_724646

loc_72466B:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+3Dj
					; KiAdjustSimultaneousMultiThreadingCharacteristics+50j ...
		xor	ebx, ebx
		mov	edx, ebx
		mov	[ebp+var_C], ebx
		cmp	ds:_KeNumberProcessors,	ebx
		jbe	loc_724813

loc_72467E:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+1F2j
		mov	esi, ds:_KiProcessorBlock[edx*4]
		mov	eax, [esi+3D38h]
		cmp	eax, 1
		jz	loc_7247DC
		lea	eax, ds:0FFFFFFFFh[eax*2]
		bsr	ecx, eax
		xor	eax, eax
		inc	eax
		shl	eax, cl
		movzx	ecx, byte ptr [esi+3D49h]
		dec	eax
		mov	ebx, ecx
		not	eax
		and	ecx, [ebp+var_4]
		and	ebx, eax
		mov	[ebp+var_18], ebx
		mov	[esi+4068h], ebx
		xor	ebx, ebx
		mov	[ebp+var_1C], ecx
		inc	ebx
		mov	ecx, [esi+3CCh]
		shl	ebx, cl
		lea	ecx, [edx+1]
		mov	[ebp+var_10], eax
		mov	[ebp+var_8], ebx

loc_7246D4:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+192j
		mov	[ebp+var_14], ecx
		cmp	ecx, ds:_KeNumberProcessors
		jnb	loc_72478B
		mov	edi, ds:_KiProcessorBlock[ecx*4]
		cmp	dword ptr [edi+3D38h], 1
		jz	loc_724785
		movzx	eax, byte ptr [edi+3D49h]
		and	eax, [ebp+var_10]
		cmp	eax, [ebp+var_18]
		jnz	short loc_724772
		mov	eax, [edi+401Ch]
		bts	eax, edx
		mov	[edi+401Ch], eax
		mov	eax, [esi+401Ch]
		bts	eax, ecx
		mov	[esi+401Ch], eax
		mov	ebx, [edi+401Ch]
		not	ebx
		movzx	eax, bl
		shr	ebx, 8
		mov	dl, ds:_RtlpBitsClearTotal[eax]
		movzx	eax, bl
		shr	ebx, 8
		mov	ecx, ebx
		shr	ecx, 8
		add	dl, ds:_RtlpBitsClearTotal[eax]
		movzx	eax, bl
		mov	cl, ds:_RtlpBitsClearTotal[ecx]
		add	cl, ds:_RtlpBitsClearTotal[eax]
		add	cl, dl
		movzx	eax, cl
		cmp	eax, [edi+3D38h]
		ja	loc_72A48F
		mov	edx, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		mov	ecx, [ebp+var_14]

loc_724772:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+110j
		movzx	eax, byte ptr [edi+3D49h]
		and	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1C]
		jz	loc_724818

loc_724785:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+FDj
					; KiAdjustSimultaneousMultiThreadingCharacteristics+230j ...
		inc	ecx
		jmp	loc_7246D4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72478B:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+E9j
		mov	ebx, [esi+401Ch]
		not	ebx
		movzx	eax, bl
		shr	ebx, 8
		mov	dl, ds:_RtlpBitsClearTotal[eax]
		movzx	eax, bl
		shr	ebx, 8
		mov	ecx, ebx
		shr	ecx, 8
		add	dl, ds:_RtlpBitsClearTotal[eax]
		movzx	eax, bl
		mov	cl, ds:_RtlpBitsClearTotal[ecx]
		add	cl, ds:_RtlpBitsClearTotal[eax]
		add	cl, dl
		movzx	eax, cl
		cmp	eax, [esi+3D38h]
		ja	loc_72A49F
		mov	eax, [ebp+var_8]
		or	[esi+402Ch], eax
		mov	edx, [ebp+var_C]

loc_7247DC:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+9Aj
		inc	edx
		mov	[ebp+var_C], edx
		cmp	edx, ds:_KeNumberProcessors
		jb	loc_72467E
		xor	ebx, ebx
		cmp	ds:_KeNumberProcessors,	ebx
		jbe	short loc_724813

loc_7247F6:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+21Dj
		mov	edx, ds:_KiProcessorBlock[ebx*4]
		cmp	byte ptr [edx+3BEh], 2
		jz	loc_72A4B4

loc_72480A:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+5EC4j
					; KiAdjustSimultaneousMultiThreadingCharacteristics+5ED1j ...
		inc	ebx
		cmp	ebx, ds:_KeNumberProcessors
		jb	short loc_7247F6

loc_724813:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+84j
					; KiAdjustSimultaneousMultiThreadingCharacteristics+200j
		pop	edi
		pop	esi
		pop	ebx

locret_724816:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+Fj
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724818:				; CODE XREF: KiAdjustSimultaneousMultiThreadingCharacteristics+18Bj
		mov	eax, [edi+338h]
		cmp	eax, [esi+338h]
		jnz	loc_724785
		mov	eax, [edi+3CCh]
		bts	ebx, eax
		or	[edi+402Ch], ebx
		mov	[ebp+var_8], ebx
		jmp	loc_724785
KiAdjustSimultaneousMultiThreadingCharacteristics endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiInitializePrcbContext	proc near	; CODE XREF: KiStartDynamicProcessor(x,x,x,x)+279p
					; KeStartAllProcessors+12Ep ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A4F0 SIZE 00000014 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:_KeFeatureBits
		push	ebx
		push	esi
		mov	esi, ds:_KeXStateLength
		and	eax, 400000h
		or	eax, 0
		push	edi
		mov	edi, ecx
		jz	loc_72A4F0
		add	esi, 165h
		mov	bl, 1
		add	esi, ds:_KiXSaveAreaLength

loc_724874:				; CODE XREF: KiInitializePrcbContext+5CB3j
		test	esi, esi
		jz	short loc_7248A5
		mov	ecx, esi
		call	_MmAllocateIndependentPages@8 ;	MmAllocateIndependentPages(x,x)
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	loc_72A4FA
		push	esi		; size_t
		push	0		; int
		push	eax		; void *
		call	_memset
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		add	eax, 3Fh
		and	eax, 0FFFFFFC0h
		mov	[edi+4170h], eax

loc_7248A5:				; CODE XREF: KiInitializePrcbContext+34j
		test	bl, bl
		jz	short loc_7248FD
		mov	esi, ds:_KiXSaveAreaLength
		mov	eax, ds:_KeXStateLength
		add	esi, 3
		add	esi, [edi+4170h]
		add	eax, 0FFFFFE00h
		and	esi, 0FFFFFFFCh
		lea	edx, [esi+2CCh]
		lea	ecx, [edx+57h]
		mov	[edx+14h], eax
		and	ecx, 0FFFFFFC0h
		mov	dword ptr [edx+8], 0FFFFFD34h
		sub	ecx, edx
		mov	dword ptr [edx+0Ch], 2CCh
		add	eax, 2CCh
		mov	[edx+10h], ecx
		add	eax, ecx
		mov	dword ptr [edx], 0FFFFFD34h
		mov	[edx+4], eax
		mov	[edi+4168h], esi

loc_7248FD:				; CODE XREF: KiInitializePrcbContext+65j
		mov	dword ptr [edi+416Ch], 1002Fh
		test	bl, bl
		jz	short loc_724914
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_72491B

loc_724914:				; CODE XREF: KiInitializePrcbContext+C7j
					; KiInitializePrcbContext+E3j
		xor	eax, eax

loc_724916:				; CODE XREF: KiInitializePrcbContext+5CBDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72491B:				; CODE XREF: KiInitializePrcbContext+D0j
		mov	dword ptr [edi+416Ch], 1006Fh
		jmp	short loc_724914
KiInitializePrcbContext	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiUpdateProcessorCount(x, x)
_KiUpdateProcessorCount@8 proc near	; CODE XREF: KiUpdateNumberProcessorsIpi(x)+3Bp
					; KeStartAllProcessors+45Ep
		mov	edi, edi
		push	esi
		call	_KiGetCurrentGroupCount@0 ; KiGetCurrentGroupCount()
		mov	ds:_KiActiveGroups, ax
		cli
		xor	esi, esi
		inc	esi
		add	ds:_KeNumberProcessors,	esi
		mov	eax, ds:dword_70E328
		bts	eax, ecx
		mov	ds:dword_70E328, eax
		sti
		test	edx, edx
		jnz	short loc_724958
		inc	ds:_KeNumberProcessorsGroup0

loc_724958:				; CODE XREF: KiUpdateProcessorCount(x,x)+28j
		add	ds:0FFDF03C0h, esi
		add	ds:0FFDF036Ah, si
		mov	al, byte ptr ds:_KiActiveGroups
		mov	ds:0FFDF03C4h, al
		pop	esi
		retn
_KiUpdateProcessorCount@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiConfigureProcessorBlock proc near	; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+257p
					; KiInitializeDynamicProcessorDpc(x,x,x,x)+47p	...

; FUNCTION CHUNK AT 0072A504 SIZE 00000010 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ecx+3CCh]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ecx+338h]
		mov	esi, [edi+84h]
		bts	esi, eax
		bsr	eax, esi
		bsf	ecx, esi
		mov	[edi+0A0h], eax
		movzx	eax, cx
		mov	[edi+84h], esi
		mov	[edi+9Ch], ecx
		mov	[edi+58h], ax
		mov	[edi+5Ah], ax
		test	dl, dl
		jnz	loc_72A504

loc_7249BB:				; CODE XREF: KiConfigureProcessorBlock+5B9Dj
		movzx	ebx, word ptr [edi+8Ah]
		lea	eax, [esi-1]
		test	eax, esi
		jz	short loc_7249CE

loc_7249C9:				; CODE XREF: KiConfigureProcessorBlock+6Bj
					; KiConfigureProcessorBlock+97j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7249CE:				; CODE XREF: KiConfigureProcessorBlock+55j
		movzx	edi, ds:_KeNumberNodes
		xor	eax, eax
		mov	esi, eax
		mov	ecx, eax
		test	edi, edi
		jz	short loc_7249C9

loc_7249DF:				; CODE XREF: KiConfigureProcessorBlock+99j
		mov	edx, ds:_KeNodeBlock[ecx*4]
		cmp	[edx+88h], ax
		jnz	short loc_724A06
		test	esi, esi
		jnz	short loc_7249F5
		mov	esi, edx

loc_7249F5:				; CODE XREF: KiConfigureProcessorBlock+7Fj
		mov	eax, [esi+80h]
		bts	eax, ebx
		mov	[edx+80h], eax
		xor	eax, eax

loc_724A06:				; CODE XREF: KiConfigureProcessorBlock+7Bj
		inc	ecx
		cmp	ecx, edi
		jnb	short loc_7249C9
		jmp	short loc_7249DF
KiConfigureProcessorBlock endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


KiStartWaitAcknowledge proc near	; CODE XREF: KiStartDynamicProcessor(x,x,x,x)+3D9p
					; KeStartAllProcessors+3BAp ...

; FUNCTION CHUNK AT 0072A514 SIZE 00000016 BYTES

		mov	edi, edi

loc_724A10:				; CODE XREF: KiStartWaitAcknowledge+5B14j
		mov	eax, ds:_KiProcessorStartControl
		cmp	eax, 1
		jnz	loc_72A514
		mov	al, al
		retn
KiStartWaitAcknowledge endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


MmInitializeProcessor proc near		; CODE XREF: KiStartDynamicProcessor(x,x,x,x)+25Fp
					; MiInitNucleus(x)+2E2p ...

; FUNCTION CHUNK AT 0072A52A SIZE 0000000B BYTES

		mov	edi, edi
		push	esi
		mov	esi, ecx
		cmp	dword ptr [esi+3CCh], 0
		jz	short loc_724A37
		or	dword ptr [esi+406Ch], 0FFFFFFFFh

loc_724A37:				; CODE XREF: MmInitializeProcessor+Cj
		mov	edx, 100h
		mov	ecx, offset dword_6D35E0
		call	MiReservePtes
		test	eax, eax
		jz	loc_72A531
		shl	eax, 9
		mov	edx, 20206D4Dh
		push	0
		mov	[esi+3D34h], eax
		mov	ecx, 2830h
		mov	eax, ds:dword_6D06D0
		push	40h
		mov	[esi+4CCh], eax
		call	_MiAllocatePool@16 ; MiAllocatePool(x,x,x,x)
		mov	edx, eax
		test	edx, edx
		jz	loc_72A52A
		lea	ecx, [edx+10h]
		mov	dword ptr [edx+0Ch], 200h
		mov	[edx], ecx
		lea	eax, [ecx+818h]
		mov	[edx+4], eax
		lea	eax, [ecx+1818h]
		mov	[edx+8], eax
		mov	eax, [esi+338h]
		movzx	eax, word ptr [eax+8Ah]
		imul	ecx, eax, 280h
		add	ecx, ds:dword_6D4E50
		mov	al, [ecx+1E4h]
		mov	[esi+4C1h], al
		mov	eax, [ecx+1E0h]
		mov	[esi+4C8h], eax
		xor	eax, eax
		mov	[esi+4D4h], edx
		inc	eax
		pop	esi
		retn
MmInitializeProcessor endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiEnableKvaShadowing(x, x)
_KiEnableKvaShadowing@8	proc near	; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+1CDp
					; KiInitializeProcessorState(x,x,x,x,x,x,x,x,x,x)+271p
		mov	edi, edi
		push	esi
		mov	esi, ecx
		call	_KiIsKvaShadowDisabled@0 ; KiIsKvaShadowDisabled()
		test	al, al
		jz	short loc_724AF4
		mov	ds:_KiIsKvaShadowConfigDisabled, 1
		jmp	loc_724BDC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724AF4:				; CODE XREF: KiEnableKvaShadowing(x,x)+Cj
		mov	eax, ds:_KeFeatureBits2
		xor	ecx, ecx
		and	eax, 18000h
		cmp	eax, 8000h
		jnz	short loc_724B17
		mov	dword ptr [esi+3F38h], 3
		mov	[esi+3F3Ch], ecx

loc_724B17:				; CODE XREF: KiEnableKvaShadowing(x,x)+2Bj
		call	_KiIsKvaLeakSimulated@0	; KiIsKvaLeakSimulated()
		test	al, al
		jz	short loc_724B27
		mov	ds:_KiKvaLeakageSimulate, 1

loc_724B27:				; CODE XREF: KiEnableKvaShadowing(x,x)+44j
		cmp	ds:_KiKvaLeakage, cl
		jnz	short loc_724B3B
		cmp	ds:_KiKvaLeakageSimulate, cl
		jz	loc_724BDC

loc_724B3B:				; CODE XREF: KiEnableKvaShadowing(x,x)+53j
		mov	eax, cr3
		mov	[esi+4EE0h], eax
		lea	eax, [edx+6000h]
		mov	[edx+404h], eax
		cmp	[esi+3CCh], ecx
		jnz	short loc_724BB3
		lea	ecx, [edx+3000h]
		mov	dl, 1
		call	_KiInitializeIdt@8 ; KiInitializeIdt(x,x)
		mov	eax, large fs:124h
		mov	ecx, 4000h
		mov	eax, [eax+80h]
		mov	byte ptr [eax+74h], 1
		mov	eax, offset unk_711468
		mov	ds:byte_711134,	1
		lock or	[eax], ecx
		xor	ecx, ecx
		inc	ecx
		call	_KiSetAddressPolicy@4 ;	KiSetAddressPolicy(x)
		push	10h
		pop	eax
		mov	[esi+4F08h], ax
		call	_HvlRescindEnlightenments@4 ; HvlRescindEnlightenments(x)
		mov	ds:_KiKvaShadow, 1
		mov	ds:_KiKvaShadowMode, 2
		jmp	short loc_724BDC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724BB3:				; CODE XREF: KiEnableKvaShadowing(x,x)+7Cj
		mov	ecx, esi
		call	KiShadowProcessorAllocation
		test	eax, eax
		jnz	short loc_724BC0
		pop	esi
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724BC0:				; CODE XREF: KiEnableKvaShadowing(x,x)+E2j
		xor	ecx, ecx
		call	_KeGetPrcb@4	; KeGetPrcb(x)
		mov	ax, [eax+4F08h]
		or	dword ptr [esi+4EECh], 2
		mov	[esi+4F08h], ax

loc_724BDC:				; CODE XREF: KiEnableKvaShadowing(x,x)+15j
					; KiEnableKvaShadowing(x,x)+5Bj ...
		xor	eax, eax
		inc	eax
		pop	esi
		retn
_KiEnableKvaShadowing@8	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiShadowProcessorAllocation proc near	; CODE XREF: .text:00569E39p
					; KiEnableKvaShadowing(x,x)+DBp

; FUNCTION CHUNK AT 0072A547 SIZE 00000029 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		push	ecx
		cmp	ds:_KiKvaShadow, 0
		push	ebx
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, ecx
		jz	short loc_724C4B
		lea	ecx, [esi+4000h]
		mov	edx, 1000h
		push	2
		and	ecx, 0FFFFF000h
		call	MmSetPageProtection
		mov	edx, 7000h
		mov	ecx, esi
		call	MmCreateShadowMapping
		test	eax, eax
		jz	loc_72A557
		lea	ecx, [edi+4EE0h]
		mov	edx, 1000h
		xor	ebx, ebx
		call	MmCreateShadowMapping
		test	eax, eax
		jz	loc_72A55E
		inc	ebx
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_724C55

loc_724C4B:				; CODE XREF: KiShadowProcessorAllocation+17j
					; KiShadowProcessorAllocation+B7j
		xor	eax, eax
		inc	eax

loc_724C4E:				; CODE XREF: KiShadowProcessorAllocation+5977j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724C55:				; CODE XREF: KiShadowProcessorAllocation+67j
		push	400000h
		call	_RtlImageNtHeader@4 ; RtlImageNtHeader(x)
		mov	ecx, eax
		mov	eax, offset _KiTrap00Shadow
		sub	eax, 400000h
		push	eax
		call	RtlSectionTableFromVirtualAddress
		mov	edx, [eax+8]
		mov	ecx, [eax+10h]
		cmp	edx, ecx
		ja	short loc_724C7D
		mov	edx, ecx

loc_724C7D:				; CODE XREF: KiShadowProcessorAllocation+97j
		mov	ecx, [eax+0Ch]
		add	edx, 0FFFh
		and	edx, 0FFFFF000h
		add	ecx, 400000h
		call	MmCreateShadowMapping
		test	eax, eax
		jnz	short loc_724C4B
		jmp	loc_72A55E
KiShadowProcessorAllocation endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiInitializePcr(x, x, x, x,	x, x, x, x)
_KiInitializePcr@32 proc near		; CODE XREF: KiSystemStartup(x)+101p
					; KiInitializeProcessorState(x,x,x,x,x,x,x,x,x,x)+232p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebx
		mov	ebx, esp
		push	ecx
		push	ecx
		and	esp, 0FFFFFFF8h
		add	esp, 4
		push	ebp
		mov	ebp, [ebx+4]
		mov	[esp+8+var_4], ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	dword ptr [ebx+8], 0
		push	esi
		push	edi
		mov	edi, [ebx+1Ch]
		jnz	short loc_724D00
		mov	edx, ds:_KeLoaderBlock
		mov	ecx, [edx+84h]
		call	_InitializeBuildStrings@4 ; InitializeBuildStrings(x)
		mov	ecx, [edx+58h]
		mov	ds:_KeKernelStackSize, ecx
		add	ecx, 1000h
		mov	eax, [edx+48h]
		add	eax, ecx
		mov	[ebp+var_4], eax
		add	eax, 4000h
		mov	[ebp+var_8], eax
		call	ExRngInitializeSystem
		lock bts dword ptr [edi], 15h
		jmp	short loc_724D28
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724D00:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+22j
		call	_PoEnergyEstimationEnabled@0 ; PoEnergyEstimationEnabled()
		test	al, al
		jz	short loc_724D1C
		lock bts dword ptr [edi], 15h
		mov	edx, [ebx+24h]
		mov	ecx, [ebx+20h]
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], ecx
		jmp	short loc_724D28
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724D1C:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+67j
		mov	eax, [ebx+24h]
		mov	[ebp+var_8], eax
		mov	eax, [ebx+20h]
		mov	[ebp+var_4], eax

loc_724D28:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+5Ej
					; KiInitializePcr(x,x,x,x,x,x,x,x)+7Aj
		mov	esi, [ebx+0Ch]
		lea	eax, [esi+4900h]
		mov	[esi+4144h], eax
		lea	edx, [esi+120h]
		xor	eax, eax
		inc	eax
		mov	[esi+44h], ax
		mov	[esi+46h], ax
		mov	[esi+122h], ax
		mov	[edx], ax
		xor	eax, eax
		mov	[esi+132h], ax
		mov	eax, ds:_KiProcessorBlock
		test	eax, eax
		jz	short loc_724D70
		mov	eax, [eax+3C0h]
		mov	[esi+4E0h], eax

loc_724D70:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+C2j
		mov	ecx, [ebx+8]
		test	ecx, ecx
		jnz	short loc_724D7E
		mov	byte ptr ds:0FFDF027Dh,	1

loc_724D7E:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+D5j
		mov	[esi+1Ch], esi
		mov	[esi+20h], edx
		mov	eax, ds:_KiI386ExceptionChainTerminator
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+18h], 0
		mov	[esi], eax
		mov	[esi+124h], edi
		mov	eax, ds:_KeLoaderBlock
		mov	eax, [eax+50h]
		mov	[edi+80h], eax
		lea	eax, [edi+70h]
		mov	[eax+4], eax
		mov	[eax], eax
		test	ecx, ecx
		jnz	short loc_724DBB
		call	_CmInitBootFeatureConfigurations@4 ; CmInitBootFeatureConfigurations(x)
		mov	ecx, [ebx+8]

loc_724DBB:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+111j
		and	dword ptr [esi+4A40h], 0
		xor	edx, edx
		movzx	eax, cl
		inc	edx
		mov	[esi+4ECh], eax
		mov	eax, edx
		shl	eax, cl
		mov	[esi+4E8h], eax
		mov	eax, [esi+20h]
		mov	ds:_KiProcessorBlock[ecx*4], eax
		xor	ecx, ecx
		mov	eax, [ebx+14h]
		mov	[esi+3Ch], eax
		mov	eax, [ebx+10h]
		mov	[esi+38h], eax
		mov	eax, [ebx+18h]
		mov	[esi+40h], eax
		mov	[esi+0Ch], eax
		mov	eax, [ebp+var_4]
		mov	[esi+2330h], eax
		mov	eax, [ebp+var_8]
		mov	[esi+43BCh], eax
		mov	eax, [esi+4E8h]
		mov	[esi+4134h], dx
		mov	[esi+4136h], dx
		mov	[esi+4138h], ecx
		mov	[esi+413Ch], eax
		mov	[esi+24h], cl
		mov	[esi+414Ch], eax
		cmp	[esi+4288h], ecx
		jnz	short loc_724E52
		lea	eax, [esi+138h]
		mov	dword ptr [esi+428Ch], 1002Fh
		mov	[esi+4288h], eax

loc_724E52:				; CODE XREF: KiInitializePcr(x,x,x,x,x,x,x,x)+19Aj
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		mov	esp, ebx
		pop	ebx
		retn	20h
_KiInitializePcr@32 endp ; sp =	 4

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiMaskToLength(x, x)
_KiMaskToLength@8 proc near		; CODE XREF: KiInitializeMTRR+134p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		or	eax, [ebp+arg_4]
		jz	short loc_724E87
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	_RtlFindLeastSignificantBit@8 ;	RtlFindLeastSignificantBit(x,x)
		movsx	ecx, al

loc_724E79:				; CODE XREF: KiMaskToLength(x,x)+30j
		xor	eax, eax
		xor	edx, edx
		inc	eax
		call	__allshl
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_724E87:				; CODE XREF: KiMaskToLength(x,x)+Bj
		movzx	ecx, ds:_KiMtrrMaxRangeShift
		jmp	short loc_724E79
_KiMaskToLength@8 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KeRestoreMtrrBroadcast()
_KeRestoreMtrrBroadcast@0 proc near	; CODE XREF: PnprWakeProcessors():loc_72E5CFp
					; KiInitializeDynamicProcessorDpc(x,x,x,x)+B3p	...

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 10h
		and	[esp+10h+var_8], 0
		cmp	ds:byte_6C75B0,	0
		jz	short loc_724EDA
		push	0FFFFh
		call	_KeQueryActiveProcessorCountEx@4 ; KeQueryActiveProcessorCountEx(x)
		and	[esp+10h+var_10], 0
		dec	eax
		mov	[esp+10h+var_C], eax
		lea	eax, [esp+10h+var_10]
		push	eax
		push	offset _KiLoadMTRRTarget@4 ; KiLoadMTRRTarget(x)
		mov	[esp+18h+var_8], 0
		mov	[esp+18h+var_4], offset	_KiTargetPhase
		call	KeIpiGenericCall

loc_724EDA:				; CODE XREF: KeRestoreMtrrBroadcast()+17j
		mov	esp, ebp
		pop	ebp
		retn
_KeRestoreMtrrBroadcast@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiInitializeProcessor proc near		; CODE XREF: KiInitializeDynamicProcessorDpc(x,x,x,x)+3Ep
					; INIT:00AC0015p

; FUNCTION CHUNK AT 0072A570 SIZE 00000031 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		mov	esi, ecx
		push	edi
		cmp	ds:_KeThreadDpcEnable, ebx
		jz	short loc_724F18
		lea	ecx, [esi+2228h]
		call	@KeInitializeGate@8 ; KeInitializeGate(x,x)
		lea	ecx, [esi+21F8h]
		call	_KiInitializeDpcList@4 ; KiInitializeDpcList(x)
		mov	[esi+2200h], ebx
		mov	[esi+2204h], ebx

loc_724F18:				; CODE XREF: KiInitializeProcessor+14j
		mov	edx, 2710h
		cmp	ds:_KeDpcWatchdogPeriod, ebx
		jz	loc_725000
		push	dword ptr [esi+3CCh]
		lea	edi, [esi+3F78h]
		push	offset _KiDpcWatchdog@16 ; KiDpcWatchdog(x,x,x,x)
		push	edi
		call	_KeInitializeThreadedDpc@12 ; KeInitializeThreadedDpc(x,x,x)
		mov	ecx, [esi+3CCh]
		mov	byte ptr [esi+3F79h], 2
		mov	eax, [edi+1Ch]
		test	eax, eax
		jnz	short loc_724F5B
		lea	eax, [ecx+20h]
		mov	[edi+2], ax

loc_724F5B:				; CODE XREF: KiInitializeProcessor+72j
		lea	eax, [esi+3F98h]
		push	ebx
		push	eax
		call	_KeInitializeTimerEx@8 ; KeInitializeTimerEx(x,x)
		mov	eax, ds:_KeDpcWatchdogPeriod
		mov	ecx, 2710h
		mov	ebx, ds:_KeMaximumIncrement
		mul	ecx
		push	0
		add	eax, ebx
		push	ebx
		adc	edx, 0
		add	eax, 0FFFFFFFFh
		adc	edx, 0FFFFFFFFh
		push	edx
		push	eax
		call	__aulldiv
		xor	ecx, ecx
		cmp	edx, ecx
		ja	loc_72A570
		cmp	eax, 0FFFFFFFFh
		ja	loc_72A570

loc_724FA2:				; CODE XREF: KiInitializeProcessor+5695j
		push	edx
		push	eax
		push	ecx
		push	ebx
		mov	[esi+3B08h], eax
		mov	[esi+3B0Ch], ecx
		mov	[esi+3BDCh], ecx
		call	__allmul
		push	0
		mov	ecx, 2710h
		push	ecx
		push	edx
		push	eax
		call	__aulldiv
		shrd	eax, edx, 1
		shr	edx, 1
		jnz	loc_72A57A
		cmp	eax, 0FFFFFFFFh
		ja	loc_72A57A

loc_724FE1:				; CODE XREF: KiInitializeProcessor+569Dj
		push	edi
		push	0FAh
		push	eax
		push	0
		neg	ebx
		lea	eax, [esi+3F98h]
		push	ebx
		push	eax
		call	_KeSetCoalescableTimer@24 ; KeSetCoalescableTimer(x,x,x,x,x,x)
		xor	ebx, ebx
		mov	edx, 2710h

loc_725000:				; CODE XREF: KiInitializeProcessor+43j
		mov	eax, ds:_KiDPCTimeout
		test	eax, eax
		jz	short loc_72503B
		mov	ecx, ds:_KeMaximumIncrement
		mul	edx
		push	ebx
		add	eax, ecx
		push	ecx
		adc	edx, ebx
		add	eax, 0FFFFFFFFh
		adc	edx, 0FFFFFFFFh
		push	edx
		push	eax
		call	__aulldiv
		cmp	edx, ebx
		ja	loc_72A582
		cmp	eax, 0FFFFFFFFh
		ja	loc_72A582

loc_725035:				; CODE XREF: KiInitializeProcessor+56A5j
		mov	[esi+4D0h], eax

loc_72503B:				; CODE XREF: KiInitializeProcessor+127j
		mov	eax, ds:_KiDpcWatchdogProfileArrayLength
		test	eax, eax
		jz	loc_7250E6
		push	5057694Bh
		shl	eax, 2
		push	eax
		push	200h
		call	_ExAllocatePoolWithTag@12 ; ExAllocatePoolWithTag(x,x,x)
		mov	ecx, eax
		mov	[esi+4060h], ecx
		test	ecx, ecx
		jz	loc_72A58A
		mov	eax, ds:_KiDpcWatchdogProfileArrayLength
		shl	eax, 2
		push	eax		; size_t
		push	ebx		; int
		push	ecx		; void *
		mov	[esi+4064h], ecx
		call	_memset
		mov	eax, ds:_KiDpcWatchdogProfileCumulativeDpcThreshold
		mov	ecx, 2710h
		mov	edi, ds:_KeMaximumIncrement
		add	esp, 0Ch
		mul	ecx
		push	ebx
		add	eax, edi
		push	edi
		adc	edx, ebx
		add	eax, 0FFFFFFFFh
		adc	edx, 0FFFFFFFFh
		push	edx
		push	eax
		call	__aulldiv
		cmp	edx, ebx
		ja	short loc_7250ED
		cmp	eax, 0FFFFFFFFh
		ja	short loc_7250ED

loc_7250B2:				; CODE XREF: KiInitializeProcessor+210j
		mov	[esi+3B14h], eax
		mov	ecx, 2710h
		mov	eax, ds:_KiDpcWatchdogProfileSingleDpcThreshold
		mul	ecx
		push	ebx
		add	eax, edi
		push	edi
		adc	edx, ebx
		add	eax, 0FFFFFFFFh
		adc	edx, 0FFFFFFFFh
		push	edx
		push	eax
		call	__aulldiv
		cmp	edx, ebx
		ja	short loc_7250F2
		cmp	eax, 0FFFFFFFFh
		ja	short loc_7250F2

loc_7250E0:				; CODE XREF: KiInitializeProcessor+215j
		mov	[esi+3F74h], eax

loc_7250E6:				; CODE XREF: KiInitializeProcessor+162j
					; KiInitializeProcessor+56BCj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7250ED:				; CODE XREF: KiInitializeProcessor+1CBj
					; KiInitializeProcessor+1D0j
		or	eax, 0FFFFFFFFh
		jmp	short loc_7250B2
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7250F2:				; CODE XREF: KiInitializeProcessor+1F9j
					; KiInitializeProcessor+1FEj
		or	eax, 0FFFFFFFFh
		jmp	short loc_7250E0
KiInitializeProcessor endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiInitializeKernel(x, x, x,	x, x, x)
_KiInitializeKernel@24 proc near	; CODE XREF: KiSystemStartup(x)+21Fp

var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
ms_exc		= CPPEH_RECORD ptr -18h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	60h
		push	offset dword_6A7218
		call	__SEH_prolog4_GS
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_50], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_54], eax
		mov	edi, [ebp+arg_C]
		mov	[ebp+var_44], edi
		mov	ecx, [ebp+arg_14]
		mov	[ebp+var_48], ecx
		mov	[ebp+var_34], 20000000h
		xor	esi, esi
		mov	[ebp+var_30], esi
		mov	[ebp+var_2C], 1000000h
		mov	[ebp+var_28], esi
		mov	[ebp+var_24], esi
		mov	[ebp+var_20], 2
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+arg_10], 0
		jnz	short loc_72518C
		mov	word ptr ds:_KeActiveProcessors, bx
		mov	word ptr ds:_KeActiveProcessors+2, bx
		mov	ds:dword_70E324, esi
		mov	ds:dword_70E328, ebx
		mov	ecx, [ecx+84h]
		mov	eax, [ecx+0CA4h]
		mov	ds:_KiFeatureSettings, eax
		mov	eax, [ecx+54h]
		shr	eax, 15h
		and	eax, 3Fh
		mov	ds:_KiFeatureSimulations, eax
		cmp	[ebp+arg_10], 0
		jnz	short loc_72518C
		mov	ecx, [ebp+var_48]
		call	HvlPhase0Initialize

loc_72518C:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+4Bj
					; KiInitializeKernel(x,x,x,x,x,x)+8Aj
		call	_KiSetProcessorType@0 ;	KiSetProcessorType()
		call	KiGetCpuVendor
		mov	[ebp+var_40], eax
		cmp	eax, ebx
		jnz	short loc_7251BC
		mov	al, [edi+14h]
		cmp	al, 0Fh
		jge	short loc_7251AE
		cmp	al, 6
		jnz	short loc_7251BC
		cmp	byte ptr [edi+17h], 0Dh
		jbe	short loc_7251BC

loc_7251AE:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+AAj
		mov	ecx, 1A0h
		rdmsr
		and	eax, 0FFBFFFFFh
		wrmsr

loc_7251BC:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+A3j
					; KiInitializeKernel(x,x,x,x,x,x)+AEj ...
		mov	eax, cr0
		or	eax, 10000h
		mov	cr0, eax
		cmp	[ebp+var_40], 2
		jnz	short loc_725211
		mov	al, [edi+14h]
		cmp	al, 0Fh
		jle	short loc_725211
		cmp	al, 11h
		jz	short loc_725211
		call	HviIsAnyHypervisorPresent
		test	al, al
		jnz	short loc_725211
		mov	[ebp+ms_exc.disabled], esi
		mov	ecx, 0C0011029h
		rdmsr
		or	eax, 2
		or	edx, esi
		wrmsr
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		jmp	short loc_725211
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7251FB:				; DATA XREF: .text:006A722Co
		xor	eax, eax
		inc	eax
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7251FF:				; DATA XREF: .text:006A7230o
		mov	esp, [ebp+ms_exc.old_esp]
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		xor	esi, esi
		xor	ebx, ebx
		inc	ebx
		mov	edi, [ebp+var_44]

loc_725211:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+D3j
					; KiInitializeKernel(x,x,x,x,x,x)+DAj ...
		mov	ecx, edi
		call	PoInitializePrcb
		mov	[edi+4078h], esi
		lea	eax, [edi+407Ch]
		mov	[eax], eax
		cmp	byte ptr [edi+14h], 3
		jz	loc_725845
		call	KiGetFeatureBits
		mov	ecx, eax
		mov	[ebp+var_38], ecx
		cmp	[ebp+arg_10], 0
		jnz	short loc_72526C
		mov	ecx, edi
		call	KiDetectAccessBitErrata
		mov	ecx, [ebp+var_38]
		mov	[ebp+var_3C], edx
		cmp	byte ptr ds:0FFDF0280h,	0
		jz	short loc_72525E
		or	ecx, 80000000h
		jmp	short loc_72527D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72525E:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+15Cj
		and	ecx, 7FFFFFFFh
		or	ecx, 40000000h
		jmp	short loc_72527D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72526C:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+146j
		mov	eax, ds:_KeFeatureBits
		and	eax, 0C0000000h
		or	ecx, eax
		or	edx, esi
		mov	[ebp+var_3C], edx

loc_72527D:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+164j
					; KiInitializeKernel(x,x,x,x,x,x)+172j
		mov	[ebp+var_38], ecx
		mov	[edi+3D50h], ecx
		mov	[edi+3D54h], edx
		mov	al, [edi+3BEh]
		cmp	al, bl
		jz	short loc_72529E
		cmp	al, 2
		jz	short loc_72529E
		cmp	al, 5
		jnz	short loc_7252A7

loc_72529E:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+19Cj
					; KiInitializeKernel(x,x,x,x,x,x)+1A0j
		push	edx
		push	ecx
		mov	ecx, edi
		call	_KiSetHardwareSpeculationControlFeatures@12 ; KiSetHardwareSpeculationControlFeatures(x,x,x)

loc_7252A7:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+1A4j
		mov	ecx, edi
		call	_KiDetectKvaLeakage@4 ;	KiDetectKvaLeakage(x)
		cmp	[ebp+arg_10], 0
		jnz	short loc_7252CA
		mov	eax, large fs:1Ch
		mov	edx, [eax+38h]
		sub	edx, 3000h
		mov	ecx, edi
		call	_KiEnableKvaShadowing@8	; KiEnableKvaShadowing(x,x)

loc_7252CA:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+1BAj
		cmp	[edi+3CCh], esi
		jnz	short loc_7252DC
		call	_KiDetectTsx@0	; KiDetectTsx()
		mov	ds:_KiTsxSupportedAtBoot, eax

loc_7252DC:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+1D8j
		mov	eax, [edi+3F38h]
		mov	edx, [edi+3F3Ch]
		mov	ecx, eax
		or	ecx, edx
		jz	short loc_7252F5
		mov	ecx, 122h
		wrmsr

loc_7252F5:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+1F4j
		mov	ecx, edi
		call	KiCheckMicrocode
		lea	eax, [edi+18h]
		push	eax
		call	_KiSaveProcessorControlState@4 ; KiSaveProcessorControlState(x)
		mov	ebx, [ebp+var_40]
		mov	ecx, ebx
		call	KiGetCacheInformation
		mov	[edi+4010h], esi
		sub	ebx, 1
		jz	short loc_725328
		sub	ebx, 1
		jz	loc_725458
		sub	ebx, 3
		jnz	short loc_72532F

loc_725328:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+220j
		mov	ecx, edi
		call	_KiSetCacheInformationIntel@4 ;	KiSetCacheInformationIntel(x)

loc_72532F:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+22Ej
					; KiInitializeKernel(x,x,x,x,x,x)+367j
		mov	bl, [ebp+arg_10]
		movsx	edx, bl
		mov	ecx, edi
		call	_KiInitPrcb@8	; KiInitPrcb(x,x)
		test	bl, bl
		jnz	loc_725495
		mov	ecx, edi
		call	_KiConfigureInitialNodes@4 ; KiConfigureInitialNodes(x)
		xor	dl, dl
		mov	ecx, edi
		call	KiConfigureProcessorBlock
		mov	cl, [edi+14h]
		movsx	eax, cl
		mov	ds:_KeI386CpuType, eax
		movzx	edx, word ptr [edi+16h]
		mov	eax, edx
		mov	ds:_KeI386CpuStep, eax
		xor	eax, eax
		mov	ds:_KeProcessorArchitecture, ax
		movsx	ax, cl
		mov	ds:_KeProcessorLevel, ax
		mov	eax, edx
		cmp	[edi+15h], bl
		jnz	short loc_7253A4
		shr	ax, 4
		sub	ax, 60h
		mov	ecx, 0FFF0h
		and	ax, cx
		and	edx, 0Fh
		or	ax, dx
		mov	ecx, 0FF00h
		or	ax, cx
		movzx	eax, ax

loc_7253A4:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+289j
		mov	ds:_KeProcessorRevision, ax
		mov	esi, [ebp+var_38]
		mov	ds:_KeFeatureBits, esi
		mov	ecx, [ebp+var_3C]
		mov	ds:dword_70E754, ecx
		mov	eax, esi
		mov	ecx, 20013CB6h
		and	eax, ecx
		cmp	eax, ecx
		jnz	loc_725464
		xor	ebx, ebx
		mov	eax, cr4
		or	eax, 600h
		mov	cr4, eax
		call	_KiDetectFpuLeakage@0 ;	KiDetectFpuLeakage()
		mov	ds:_KiFpuLeakage, eax
		test	eax, eax
		jz	short loc_7253FE
		mov	eax, [ebp+var_3C]
		or	eax, 10h
		mov	ds:_KeFeatureBits, esi
		mov	ds:dword_70E754, eax
		call	_KiEnableX87Clearing@0 ; KiEnableX87Clearing()

loc_7253FE:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+2EEj
		call	_KiSetPageAttributesTable@0 ; KiSetPageAttributesTable()
		call	KiEnableXSave
		call	KiEnableNpxStateSwitching
		mov	cl, 1
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		mov	ds:_KiFreezeExecutionLock, ebx
		call	KiInitSystem
		mov	eax, offset _KiProcessListHead
		mov	ds:dword_6CB0CC, eax
		mov	ds:_KiProcessListHead, eax
		mov	[ebp+var_60], ebx
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_64], 1
		push	ebx
		push	ebx
		push	ebx
		lea	eax, [ebp+var_64]
		push	eax
		xor	edx, edx
		mov	esi, [ebp+var_50]
		mov	ecx, esi
		call	_KeInitializeProcess@24	; KeInitializeProcess(x,x,x,x,x,x)
		mov	byte ptr [esi+69h], 7Fh
		jmp	loc_725604
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725458:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+225j
		mov	ecx, edi
		call	_KiSetCacheInformationAmd@4 ; KiSetCacheInformationAmd(x)
		jmp	loc_72532F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725464:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+2CFj
		lea	esi, [edi+3D3Ch]
		lea	edi, [ebp+var_70]
		movsd
		movsd
		movsd
		push	[ebp+var_68]
		push	[ebp+var_6C]
		push	[ebp+var_70]
		mov	eax, [ebp+var_44]
		movsx	ecx, byte ptr [eax+14h]
		or	ecx, 300h
		shl	ecx, 10h
		movzx	eax, word ptr [eax+16h]
		or	ecx, eax
		push	ecx
		jmp	loc_72584D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725495:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+246j
		mov	eax, ds:dword_70E754
		and	eax, 10h
		xor	ebx, ebx
		mov	esi, [ebp+var_38]
		or	esi, ebx
		or	[ebp+var_3C], eax
		mov	eax, esi
		mov	ecx, 20013CB6h
		and	eax, ecx
		cmp	eax, ecx
		jnz	loc_725838
		call	_KiSetPageAttributesTable@0 ; KiSetPageAttributesTable()
		mov	eax, cr4
		or	eax, 600h
		mov	cr4, eax
		call	KiEnableXSave
		mov	dl, [edi+14h]
		movsx	eax, dl
		cmp	eax, ds:_KeI386CpuType
		jnb	short loc_7254EA
		mov	ds:_KeI386CpuType, eax
		movsx	ax, dl
		mov	ds:_KeProcessorLevel, ax

loc_7254EA:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+3E1j
		mov	ecx, ds:_KeFeatureBits
		mov	[ebp+var_4C], ecx
		mov	eax, ecx
		mov	edx, 400h
		and	eax, edx
		or	eax, ebx
		jz	short loc_725513
		mov	eax, esi
		and	eax, edx
		or	eax, ebx
		jnz	short loc_725513

loc_725508:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+447j
					; KiInitializeKernel(x,x,x,x,x,x)+45Ej
		push	ebx
		push	ebx
		push	ebx
		push	edx

loc_72550C:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+432j
					; KiInitializeKernel(x,x,x,x,x,x)+4DDj	...
		push	3Eh
		jmp	loc_72584F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725513:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+406j
					; KiInitializeKernel(x,x,x,x,x,x)+40Ej
		mov	eax, ecx
		and	eax, 40h
		or	eax, ebx
		jz	short loc_72552C
		mov	eax, esi
		and	eax, 40h
		or	eax, ebx
		jnz	short loc_72552C
		push	ebx
		push	ebx
		push	ebx
		push	40h
		jmp	short loc_72550C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72552C:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+422j
					; KiInitializeKernel(x,x,x,x,x,x)+42Bj
		mov	edx, 40000h
		and	ecx, edx
		mov	eax, ecx
		or	eax, ebx
		jz	short loc_725541
		mov	eax, esi
		and	eax, edx
		or	eax, ebx
		jz	short loc_725508

loc_725541:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+43Fj
		or	ecx, ebx
		jz	short loc_725558
		mov	eax, ds:_KiProcessorBlock
		mov	eax, [eax+3B8h]
		cmp	eax, [edi+3B8h]
		jnz	short loc_725508

loc_725558:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+44Bj
		mov	edx, ebx

loc_72555A:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+49Cj
		mov	ecx, [ebp+edx*8+var_34]
		mov	[ebp+var_38], ecx
		mov	eax, [ebp+edx*8+var_30]
		mov	[ebp+var_40], eax
		and	ecx, [ebp+var_4C]
		mov	edi, ds:dword_70E754
		mov	[ebp+var_58], edi
		and	eax, edi
		or	ecx, eax
		mov	edi, [ebp+var_44]
		mov	ecx, [ebp+var_3C]
		jz	short loc_725590
		and	[ebp+var_38], esi
		mov	eax, [ebp+var_40]
		and	eax, ecx
		or	[ebp+var_38], eax
		mov	eax, [ebp+var_38]
		jz	short loc_7255CC

loc_725590:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+486j
		inc	edx
		cmp	edx, 3
		jb	short loc_72555A
		movzx	edx, word ptr [edi+16h]
		mov	eax, edx
		cmp	eax, ds:_KeI386CpuStep
		jnb	short loc_7255E1
		mov	ds:_KeI386CpuStep, eax
		cmp	[edi+15h], bl
		jnz	short loc_7255DA
		shr	ax, 8
		add	ax, 41h
		and	edx, 0Fh
		or	ax, dx
		mov	edx, 0FF00h
		or	ax, dx
		mov	ds:_KeProcessorRevision, ax
		jmp	short loc_7255E1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7255CC:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+496j
		push	ebx
		push	ebx
		push	[ebp+var_40]
		push	[ebp+edx*8+var_34]
		jmp	loc_72550C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7255DA:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+4B4j
		mov	ds:_KeProcessorRevision, dx

loc_7255E1:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+4AAj
					; KiInitializeKernel(x,x,x,x,x,x)+4D2j
		mov	eax, [ebp+var_4C]
		and	eax, esi
		mov	ds:_KeFeatureBits, eax
		mov	eax, [ebp+var_58]
		and	eax, ecx
		mov	ds:dword_70E754, eax
		mov	cl, 2
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		xor	cl, cl
		call	HvlEnlightenProcessor

loc_725604:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+35Bj
		mov	eax, ds:_KeFeatureBits
		mov	esi, 100h
		and	eax, esi
		or	eax, ebx
		jz	short loc_72561B
		xor	edx, edx
		inc	edx
		mov	al, dl
		jmp	short loc_725620
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72561B:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+51Aj
		mov	al, bl
		xor	edx, edx
		inc	edx

loc_725620:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+521j
		mov	ds:0FFDF0277h, al
		mov	ds:0FFDF0276h, dl
		mov	ds:0FFDF027Ah, dl
		mov	eax, ds:_KeFeatureBits
		and	eax, 10000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_725643
		mov	al, bl

loc_725643:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+547j
		mov	ds:0FFDF027Eh, al
		mov	eax, ds:_KeFeatureBits
		and	eax, 80000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_72565A
		mov	al, bl

loc_72565A:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+55Ej
		mov	ds:0FFDF0281h, al
		mov	eax, ds:_KeFeatureBits
		and	eax, 4000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_725671
		mov	al, bl

loc_725671:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+575j
		mov	ds:0FFDF027Bh, al
		mov	ds:0FFDF027Ch, dl
		mov	eax, ds:_KeFeatureBits
		and	eax, 400000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_72568E
		mov	al, bl

loc_72568E:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+592j
		mov	ds:0FFDF0285h, al
		mov	eax, ds:_KeFeatureBits
		and	eax, 4000000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_7256A5
		mov	al, bl

loc_7256A5:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+5A9j
		mov	ds:0FFDF0288h, al
		mov	eax, ds:_KeFeatureBits
		and	eax, 8000000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_7256BC
		mov	al, bl

loc_7256BC:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+5C0j
		mov	ds:0FFDF0289h, al
		mov	eax, ds:_KeFeatureBits
		and	eax, 2000000h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_7256D3
		mov	al, bl

loc_7256D3:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+5D7j
		mov	ds:0FFDF0290h, al
		mov	ecx, ds:dword_70E754
		and	ecx, edx
		mov	eax, ebx
		or	eax, ecx
		mov	al, dl
		jnz	short loc_7256EA
		mov	al, bl

loc_7256EA:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+5EEj
		mov	ds:0FFDF0294h, al
		mov	ecx, ds:dword_70E754
		and	ecx, 40h
		mov	eax, ebx
		or	eax, ecx
		mov	al, dl
		jnz	short loc_725702
		mov	al, bl

loc_725702:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+606j
		mov	ds:0FFDF0298h, al
		mov	ecx, ds:dword_70E754
		and	ecx, 80h
		mov	eax, ebx
		or	eax, ecx
		mov	al, dl
		jnz	short loc_72571D
		mov	al, bl

loc_72571D:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+621j
		mov	ds:0FFDF0299h, al
		mov	ecx, ds:dword_70E754
		and	ecx, esi
		mov	eax, ebx
		or	eax, ecx
		mov	al, dl
		jnz	short loc_725734
		mov	al, bl

loc_725734:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+638j
		mov	ds:0FFDF029Ah, al
		mov	ecx, ds:dword_70E754
		and	ecx, 200h
		mov	eax, ebx
		or	eax, ecx
		jz	short loc_725759
		mov	eax, ds:0FFDF03D8h
		and	eax, 4
		or	eax, ebx
		mov	al, dl
		jnz	short loc_72575B

loc_725759:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+651j
		mov	al, bl

loc_72575B:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+65Fj
		mov	ds:0FFDF029Bh, al
		mov	ecx, ds:dword_70E754
		and	ecx, 400h
		mov	eax, ebx
		or	eax, ecx
		jz	short loc_725780
		mov	eax, ds:0FFDF03D8h
		and	eax, 4
		or	eax, ebx
		mov	al, dl
		jnz	short loc_725782

loc_725780:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+678j
		mov	al, bl

loc_725782:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+686j
		mov	ds:0FFDF029Ch, al
		mov	ecx, ds:dword_70E754
		and	ecx, 800h
		mov	eax, ebx
		or	eax, ecx
		jz	short loc_7257A9
		mov	eax, ds:0FFDF03D8h
		and	eax, 0E0h
		or	eax, ebx
		mov	al, dl
		jnz	short loc_7257AB

loc_7257A9:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+69Fj
		mov	al, bl

loc_7257AB:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+6AFj
		mov	ds:0FFDF029Dh, al
		mov	al, ds:_KiVirtFlags
		mov	ds:0FFDF02EDh, al
		push	edi
		push	[ebp+var_50]
		mov	edx, [ebp+arg_8]
		mov	esi, [ebp+var_54]
		mov	ecx, esi
		call	_KiInitializeIdleThread@16 ; KiInitializeIdleThread(x,x,x,x)
		mov	[edi+4], esi
		mov	[edi+8], ebx
		mov	[edi+0Ch], esi
		mov	[ebp+ms_exc.disabled], 1
		cmp	[ebp+arg_10], 0
		jnz	short loc_7257EB
		mov	ecx, [ebp+var_48]
		call	_InitBootProcessor@4 ; InitBootProcessor(x)
		jmp	short loc_7257F0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7257EB:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+6E7j
		call	_InitOtherProcessors@0 ; InitOtherProcessors()

loc_7257F0:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+6F1j
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		jmp	short loc_725809
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7257FA:				; DATA XREF: .text:006A723Co
		mov	esp, [ebp+ms_exc.old_esp]
		mov	[ebp+ms_exc.disabled], 0FFFFFFFEh
		xor	ebx, ebx
		mov	edi, [ebp+var_44]

loc_725809:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+6FFj
		movsx	eax, [ebp+arg_10]
		push	eax
		mov	edx, [ebp+var_54]
		mov	ecx, edi
		call	KiCompleteKernelInit
		mov	cl, 1Fh
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		mov	eax, [ebp+var_48]
		mov	[eax+4Ch], ebx
		mov	ecx, [ebp+ms_exc.prev_er]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	18h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725838:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+3BAj
		push	ebx
		push	ebx
		push	ebx
		not	esi
		and	esi, ecx
		push	esi
		jmp	loc_72550C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725845:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+132j
		push	esi
		push	esi
		push	esi
		push	386h

loc_72584D:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+398j
		push	5Dh

loc_72584F:				; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+416j
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)

loc_725854:				; DATA XREF: .text:006A7238o
		mov	edx, [ebp+ms_exc.exc_ptr]
		push	78h
		pop	ecx
		call	_KiFatalFilter@8 ; KiFatalFilter(x,x)
		int	3		; Trap to Debugger
_KiInitializeKernel@24 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiCompleteKernelInit proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+71Bp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0072A5A1 SIZE 00000013 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	ebx, edx
		mov	esi, ecx
		test	edi, edi
		jz	loc_725907

loc_725878:				; CODE XREF: KiCompleteKernelInit+D0j
		push	ds:_PsInitialSystemProcess
		call	KeAttachProcess
		test	edi, edi
		jz	loc_725935

loc_72588B:				; CODE XREF: KiCompleteKernelInit+14Cj
		mov	eax, [esi+338h]
		movzx	ecx, byte ptr [esi+3C4h]
		add	eax, 48h
		lock bts [eax],	ecx
		mov	eax, [esi+338h]
		movzx	ecx, byte ptr [esi+3C4h]
		add	eax, 50h
		lock bts [eax],	ecx
		and	[ebp+var_4], 0
		lea	edi, [esi+2224h]
		mov	byte ptr [ebp+arg_0], 0

loc_7258C1:				; CODE XREF: KiCompleteKernelInit+4D4Fj
		lock bts dword ptr [edi], 0
		jb	loc_72A5A1
		xor	edx, edx
		inc	edx
		cmp	dword ptr [esi+8], 0
		mov	[esi+2238h], dl
		jnz	short loc_7258E6
		push	edx
		mov	ecx, esi
		mov	byte ptr [ebp+arg_0], dl
		call	KiSetProcessorIdle

loc_7258E6:				; CODE XREF: KiCompleteKernelInit+79j
		push	[ebp+arg_0]
		mov	edx, ebx
		mov	ecx, esi
		push	0
		call	_KiUpdateThreadPriority@16 ; KiUpdateThreadPriority(x,x,x,x)
		xor	eax, eax
		lock and [edi],	eax
		mov	ecx, esi
		call	KiCreateCpuSetForProcessor
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725907:				; CODE XREF: KiCompleteKernelInit+12j
		mov	eax, ds:_KiMaximumDpcQueueDepth
		mov	cl, 2
		mov	[esi+2214h], eax
		mov	eax, ds:_KiMinimumDpcRate
		mov	[esi+221Ch], eax
		mov	eax, ds:_KiAdjustDpcThreshold
		mov	[esi+4B8h], eax
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		jmp	loc_725878
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725935:				; CODE XREF: KiCompleteKernelInit+25j
		and	ds:dword_6CB2C0, 0
		mov	eax, offset dword_6CB2B8
		push	8
		push	0
		push	offset _KiForegroundTimerCallback@8 ; KiForegroundTimerCallback(x,x)
		push	offset _KiForegroundState
		mov	ds:dword_6CB2BC, eax
		mov	ds:dword_6CB2B8, eax
		call	_KeInitializeTimer2@16 ; KeInitializeTimer2(x,x,x,x)
		xor	edi, edi
		push	edi
		push	offset KiProcessPendingForegroundBoosts
		push	offset unk_6CB278
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		push	edi
		push	offset _KiTriggerForegroundBoostDpc@16 ; KiTriggerForegroundBoostDpc(x,x,x,x)
		push	offset unk_6CB298
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		push	edi
		push	offset _KiInvalidateRangeAllCachesTarget@16 ; KiInvalidateRangeAllCachesTarget(x,x,x,x)
		push	offset _KiUpdateVpThreadPriorityDpc
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		and	ds:_KiUpdateVpThreadPriorityLock, edi
		mov	eax, offset _KiUpdateVpThreadPriorityListHead
		mov	ds:byte_6CB2E1,	2
		mov	ds:dword_6CB2CC, eax
		mov	ds:_KiUpdateVpThreadPriorityListHead, eax
		jmp	loc_72588B
KiCompleteKernelInit endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiCreateCpuSetForProcessor proc	near	; CODE XREF: KiCompleteKernelInit+9Bp
					; KiAllocateCpuSetData(x)+5Ep

var_2		= byte ptr -2
var_1		= byte ptr -1

; FUNCTION CHUNK AT 0072A5B4 SIZE 0000000D BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:_KiCpuSetAffinities,	0
		push	ebx
		mov	ebx, ecx
		jz	loc_725A82
		push	esi
		push	edi
		call	ds:__imp__KeRaiseIrqlToDpcLevel@0 ; KeRaiseIrqlToDpcLevel()
		movzx	edi, byte ptr [ebx+3C5h]
		mov	ecx, offset _KiCpuSetLock
		mov	[ebp+var_1], al
		call	_KxAcquireSpinLock@4 ; KxAcquireSpinLock(x)
		mov	ecx, offset _KiCpuSetSequence
		call	RtlWriteAcquireTickLock
		movzx	esi, byte ptr [ebx+3C4h]
		mov	eax, ds:_KiCpuSetAffinities
		mov	ecx, [ebx+3C8h]
		inc	ds:_KiCpuSetCount[edi]
		inc	ds:_KiTotalCpuSetCount
		mov	[eax+esi*4], ecx
		mov	eax, ds:_KiCpuSetAffinitiesShadow
		mov	ecx, [ebx+3C8h]
		mov	[eax+esi*4], ecx
		mov	ecx, offset _KiCpuSetSequence
		mov	eax, ds:_KiSystemAllowedCpuSets[edi*8]
		mov	edx, ds:_PsInitialSystemProcess
		bts	eax, esi
		mov	ds:_KiSystemAllowedCpuSets[edi*8], eax
		mov	eax, ds:_KiNonParkedCpuSets[edi*4]
		bts	eax, esi
		mov	ds:_KiNonParkedCpuSets[edi*4], eax
		mov	eax, [edx+edi*4+428h]
		bts	eax, esi
		mov	[edx+edi*4+428h], eax
		call	_RtlWriteReleaseTickLock@4 ; RtlWriteReleaseTickLock(x)
		test	ds:byte_70EFC6,	1
		mov	ecx, offset _KiCpuSetLock
		pop	edi
		pop	esi
		jnz	loc_72A5B4
		xor	eax, eax
		lock and [ecx],	eax

loc_725A79:				; CODE XREF: KiCreateCpuSetForProcessor+4C0Aj
		mov	cl, [ebp+var_1]
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)

loc_725A82:				; CODE XREF: KiCreateCpuSetForProcessor+10j
		pop	ebx
		leave
		retn
KiCreateCpuSetForProcessor endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiInitializeIdleThread(x, x, x, x)
_KiInitializeIdleThread@16 proc	near	; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+6CEp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, ecx
		push	edi
		push	ebx
		push	edi
		push	edi
		push	edi
		push	edi
		push	offset @KiIdleLoop@0 ; KiIdleLoop()
		mov	[esi+40h], edi
		call	KeInitThread
		and	dword ptr [esi+58h], 0FFFFBFFFh
		xor	edx, edx
		push	edi
		mov	ecx, esi
		call	KeStartThread
		mov	edi, [ebp+arg_4]
		mov	eax, [edi+3CCh]
		mov	[esi+148h], eax
		mov	byte ptr [esi+90h], 2
		movzx	edx, byte ptr [edi+3C5h]
		mov	[esi+158h], dx
		mov	eax, [edi+3C8h]
		mov	[esi+154h], eax
		mov	ecx, [edi+3CCh]
		or	dword ptr [esi+58h], 8
		mov	[esi+164h], eax
		mov	eax, offset @KiIdleLoop@0 ; KiIdleLoop()
		mov	[esi+168h], dx
		mov	edx, offset dword_711290
		mov	[esi+88h], ecx
		mov	[esi+16Ch], ecx
		mov	byte ptr [esi+55h], 1
		mov	byte ptr [esi+92h], 2
		mov	[esi+298h], eax
		mov	[esi+2DCh], eax
		mov	eax, [edi+33Ch]
		mov	byte ptr [eax],	7Fh
		mov	byte ptr [esi+87h], 7Fh
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_725B9E
		cmp	ds:_KiSchedulerAssistThreadFlagEnabled,	0
		jnz	short loc_725BC6

loc_725B4F:				; CODE XREF: KiInitializeIdleThread(x,x,x,x)+13Ej
					; KiInitializeIdleThread(x,x,x,x)+145j
		lea	eax, [esi+33Ch]
		mov	[eax+4], eax
		mov	[eax], eax
		lea	eax, [esi+344h]
		mov	[eax+4], eax
		mov	[eax], eax
		and	dword ptr [esi+34Ch], 0
		add	esi, 2E4h
		mov	eax, ds:dword_711294
		cmp	[eax], edx
		jnz	short loc_725BCD
		mov	[esi+4], eax
		mov	[esi], edx
		mov	[eax], esi
		lea	eax, [ebx+58h]
		mov	ds:dword_711294, esi
		push	dword ptr [edi+3CCh]
		push	eax
		call	_KeInterlockedSetProcessorAffinityEx@8 ; KeInterlockedSetProcessorAffinityEx(x,x)
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725B9E:				; CODE XREF: KiInitializeIdleThread(x,x,x,x)+BEj
		mov	ds:dword_711294, edx
		mov	ecx, 8000h
		mov	ds:dword_711290, edx
		mov	eax, offset unk_7111B8
		lock or	[eax], ecx
		mov	ecx, 400000h
		mov	eax, offset unk_711468
		lock or	[eax], ecx
		jmp	short loc_725B4F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725BC6:				; CODE XREF: KiInitializeIdleThread(x,x,x,x)+C7j
		lock bts dword ptr [esi], 16h
		jmp	short loc_725B4F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725BCD:				; CODE XREF: KiInitializeIdleThread(x,x,x,x)+F3j
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
_KiInitializeIdleThread@16 endp		; AL = character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiInitPrcb(x, x)
_KiInitPrcb@8	proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+23Fp
		mov	edi, edi
		push	ebx
		push	esi
		mov	esi, ecx
		xor	eax, eax
		push	edi
		inc	eax
		mov	ebx, edx
		xor	edx, edx
		push	20h
		mov	[esi+3B18h], eax
		lea	eax, [esi+3BE0h]
		mov	[esi+3B20h], edx
		mov	[esi+3B38h], edx
		mov	[esi+3B88h], edx
		mov	[esi+3B8Ch], edx
		mov	[esi+3B1Ch], edx
		pop	ecx

loc_725C0D:				; CODE XREF: KiInitPrcb(x,x)+46j
		mov	[eax+4], eax
		mov	[eax], eax
		add	eax, 8
		sub	ecx, 1
		jnz	short loc_725C0D
		mov	eax, [esi+4024h]
		mov	[eax], edx
		mov	eax, [esi+4024h]
		mov	[eax+4], edx
		mov	eax, [esi+4024h]
		mov	[eax+134h], edx
		mov	eax, [esi+4024h]
		mov	[eax+138h], edx
		mov	[eax+13Ch], edx

loc_725C49:				; CODE XREF: KiInitPrcb(x,x)+90j
		mov	eax, [esi+4024h]
		add	eax, 8
		add	eax, edx
		add	edx, 8
		mov	[eax+4], eax
		mov	[eax], eax
		cmp	edx, 100h
		jb	short loc_725C49
		mov	edi, [esi+4024h]
		mov	edx, 108h
		push	8
		pop	ecx
		mov	eax, 7F7F7F7Fh
		add	edi, edx
		rep stosd
		mov	eax, [esi+4024h]
		mov	byte ptr [eax+128h], 1
		mov	ecx, [esi+4024h]
		mov	al, [esi+3C4h]
		mov	[ecx+129h], al
		mov	eax, [esi+4024h]
		mov	byte ptr [eax+12Ah], 1
		mov	eax, [esi+4024h]
		mov	byte ptr [eax+12Bh], 1
		mov	ecx, [esi+4024h]
		mov	eax, [esi+3C8h]
		mov	[ecx+130h], eax
		lea	ecx, [esi+21E0h]
		mov	eax, [esi+4024h]
		add	eax, edx
		mov	[esi+33Ch], eax
		call	_KiInitializeDpcList@4 ; KiInitializeDpcList(x)
		xor	ecx, ecx
		lea	edi, [esi+3AE0h]
		mov	[esi+21E8h], ecx
		mov	[esi+21ECh], ecx
		mov	[esi+21F0h], ecx
		mov	[esi+223Ch], ecx
		mov	[esi+223Ah], cl
		mov	eax, ds:_KiMaximumDpcQueueDepth
		push	ecx
		mov	[esi+2214h], eax
		mov	eax, ds:_KiMinimumDpcRate
		push	offset _KiDpcWatchdog@16 ; KiDpcWatchdog(x,x,x,x)
		mov	[esi+221Ch], eax
		mov	eax, ds:_KiAdjustDpcThreshold
		push	edi
		mov	[esi+4B8h], eax
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	eax, [edi+1Ch]
		movzx	ecx, bx
		test	eax, eax
		jnz	short loc_725D43
		lea	eax, [ecx+20h]
		mov	[edi+2], ax

loc_725D43:				; CODE XREF: KiInitPrcb(x,x)+168j
		mov	byte ptr [esi+3AE1h], 2
		mov	eax, ecx
		xor	ecx, ecx
		movzx	edi, ax
		mov	[esi+3F64h], ecx
		lea	eax, [esi+3B2Ch]
		mov	[eax+4], eax
		xor	edx, edx
		mov	[eax], eax
		inc	edx
		mov	[esi+3F60h], edx
		mov	[esi+4058h], ecx
		mov	[esi+405Ch], ecx
		mov	[esi+488h], ecx
		mov	[esi+440h], ecx
		mov	[esi+438h], ecx
		mov	[esi+448h], ecx
		mov	[esi+450h], ecx
		mov	[esi+460h], ecx
		mov	[esi+468h], ecx
		mov	[esi+470h], ecx
		mov	[esi+478h], ecx
		mov	[esi+480h], ecx
		mov	[esi+498h], ecx
		mov	[esi+49Ch], ecx
		mov	dword ptr [esi+48Ch], offset _CcBcbSpinLock
		mov	dword ptr [esi+444h], offset _CcMasterSpinLock
		mov	dword ptr [esi+43Ch], offset _CcVacbSpinLock
		mov	dword ptr [esi+44Ch], offset _NonPagedPoolLock
		mov	dword ptr [esi+454h], offset _IopCancelSpinLock
		mov	dword ptr [esi+464h], offset _IopVpbSpinLock
		mov	dword ptr [esi+46Ch], offset _IopDatabaseLock
		mov	dword ptr [esi+474h], offset _IopCompletionLock
		mov	dword ptr [esi+47Ch], offset _NtfsStructLock
		mov	dword ptr [esi+484h], offset _AfdWorkQueueSpinLock
		imul	eax, ebx, 3
		mov	[esi+2224h], ecx
		mov	[esi+3B28h], ecx
		lea	ecx, [esi+4174h]
		push	ecx
		push	offset _KiEntropyDpcRoutine@16 ; KiEntropyDpcRoutine(x,x,x,x)
		and	eax, 3FFh
		mov	[esi+3B00h], edx
		mov	[ecx], eax
		lea	eax, [esi+4278h]
		push	eax
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		test	ebx, ebx
		jz	short loc_725E88

loc_725E5B:				; CODE XREF: KiInitPrcb(x,x)+31Fj
		mov	ecx, esi
		call	_KiIntSteerInitPrcb@4 ;	KiIntSteerInitPrcb(x)
		xor	ecx, ecx
		add	esi, 45E8h
		push	ecx
		push	offset _KiAbDeferredProcessingWorker@16	; KiAbDeferredProcessingWorker(x,x,x,x)
		push	esi
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	eax, [esi+1Ch]
		test	eax, eax
		jnz	short loc_725E84
		lea	eax, [edi+20h]
		mov	[esi+2], ax

loc_725E84:				; CODE XREF: KiInitPrcb(x,x)+2A9j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_725E88:				; CODE XREF: KiInitPrcb(x,x)+287j
		mov	al, ds:_KiClockKeepAliveCycle
		xor	ecx, ecx
		mov	ds:_KiClockPollCycle, al
		xor	eax, eax
		inc	eax
		mov	ds:_KiReverseStallIpiLock, ecx
		mov	ds:_CcBcbSpinLock, ecx
		mov	ds:_CcMasterSpinLock, ecx
		mov	ds:_CcVacbSpinLock, ecx
		mov	ds:_IopCancelSpinLock, ecx
		mov	ds:_IopCompletionLock, ecx
		mov	ds:_IopDatabaseLock, ecx
		mov	ds:_IopVpbSpinLock, ecx
		mov	ds:_NonPagedPoolLock, ecx
		mov	ds:_NtfsStructLock, ecx
		mov	ds:_AfdWorkQueueSpinLock, ecx
		mov	ds:_KeSleepingProcessors, ax
		mov	ds:word_6C75E2,	ax
		mov	ds:dword_6C75E4, ecx
		mov	ds:dword_6C75E8, ecx
		jmp	loc_725E5B
_KiInitPrcb@8	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiSetCacheInformationIntel(x)
_KiSetCacheInformationIntel@4 proc near	; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+232p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 1Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+1Ch+var_4], eax
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		mov	[esp+28h+var_18], ecx
		lea	edi, [esp+28h+var_14]
		xor	ecx, ecx
		stosd
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		cpuid
		mov	esi, ebx
		lea	edi, [esp+2Ch+var_14]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	eax, [esp+28h+var_14]
		add	eax, 0FFFFFFFCh
		cmp	eax, 7FFFFFFBh
		ja	short loc_725F51
		mov	ecx, [esp+28h+var_18]
		push	4
		pop	edx
		call	KiSetStandardizedCacheInformation

loc_725F51:				; CODE XREF: KiSetCacheInformationIntel(x)+4Dj
		mov	ecx, [esp+28h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
_KiSetCacheInformationIntel@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiSetStandardizedCacheInformation proc near ; CODE XREF: KiSetCacheInformationIntel(x)+56p
					; KiSetCacheInformationAmd(x)+8Cp

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A5C1 SIZE 00000021 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ecx+3FD4h]
		mov	[ebp+var_2C], ecx
		xor	ecx, ecx
		mov	[ebp+var_30], edx
		and	[ebp+var_20], ecx
		push	esi
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_28], ecx
		mov	[ebp+var_1C], 4038h
		mov	[ebp+var_24], eax

loc_725F9A:				; CODE XREF: KiSetStandardizedCacheInformation+16Dj
		xor	eax, eax
		lea	edi, [ebp+var_14]
		stosd
		push	ebx
		stosd
		stosd
		stosd
		mov	eax, edx
		cpuid
		mov	esi, ebx
		lea	edi, [ebp+var_14]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	ecx, [ebp+var_14]
		mov	edx, ecx
		mov	eax, [ebp+var_10]
		mov	edi, [ebp+var_C]
		shl	edx, 1Bh
		sar	edx, 1Bh
		test	edx, edx
		jz	loc_726113
		sub	edx, 1
		jz	loc_726104
		sub	edx, 1
		jz	loc_7260F5
		sub	edx, 1
		jnz	loc_72A5C1
		mov	ebx, [ebp+var_18]
		and	[ebx+8], edx

loc_725FF4:				; CODE XREF: KiSetStandardizedCacheInformation+19Bj
					; KiSetStandardizedCacheInformation+1AAj ...
		test	ecx, 200h
		jnz	loc_72A5DA
		mov	edx, eax
		shr	edx, 16h
		inc	dl

loc_726007:				; CODE XREF: KiSetStandardizedCacheInformation+4679j
		mov	[ebx+1], dl
		mov	esi, eax
		mov	edx, ecx
		shr	esi, 0Ch
		shr	edx, 5
		and	esi, 3FFh
		and	dl, 7
		shr	ecx, 0Eh
		mov	[ebx], dl
		mov	edx, eax
		and	edx, 0FFFh
		inc	edx
		inc	esi
		mov	[ebx+2], dx
		mov	edx, eax
		and	edx, 0FFFh
		shr	eax, 16h
		inc	edx
		imul	esi, edx
		inc	eax
		mov	edx, [ebp+var_2C]
		imul	esi, eax
		lea	eax, [edi+1]
		imul	esi, eax
		mov	[ebx+4], esi
		mov	ebx, [edx+3C8h]
		and	ecx, 0FFFh
		jbe	short loc_7260A8
		lea	eax, [ecx+1]
		xor	edi, edi
		lea	eax, ds:0FFFFFFFFh[eax*2]
		bsr	ecx, eax
		mov	al, 1
		shl	al, cl
		movzx	esi, al
		movzx	eax, byte ptr [edx+3D49h]
		dec	esi
		not	esi
		and	eax, esi
		mov	[ebp+var_18], eax
		cmp	ds:_KeNumberProcessors,	edi
		jbe	short loc_7260A8

loc_72608A:				; CODE XREF: KiSetStandardizedCacheInformation+142j
		mov	ecx, ds:_KiProcessorBlock[edi*4]
		movzx	eax, byte ptr [ecx+3D49h]
		and	eax, esi
		cmp	eax, [ebp+var_18]
		jz	short loc_7260D9

loc_72609F:				; CODE XREF: KiSetStandardizedCacheInformation+181j
					; KiSetStandardizedCacheInformation+18Fj
		inc	edi
		cmp	edi, ds:_KeNumberProcessors
		jb	short loc_72608A

loc_7260A8:				; CODE XREF: KiSetStandardizedCacheInformation+F7j
					; KiSetStandardizedCacheInformation+124j
		mov	eax, [ebp+var_1C]
		inc	[ebp+var_20]
		mov	[eax+edx], ebx
		mov	eax, [ebp+var_24]
		add	eax, 0Ch
		mov	[ebp+var_24], eax
		mov	[ebp+var_18], eax

loc_7260BD:				; CODE XREF: KiSetStandardizedCacheInformation+4661j
		mov	ecx, [ebp+var_28]
		add	[ebp+var_1C], 4
		inc	ecx
		mov	eax, [ebp+var_20]
		mov	edx, [ebp+var_30]
		mov	[ebp+var_28], ecx
		cmp	eax, 5
		jb	loc_725F9A
		jmp	short loc_726116
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7260D9:				; CODE XREF: KiSetStandardizedCacheInformation+139j
		mov	eax, [ecx+338h]
		cmp	eax, [edx+338h]
		jnz	short loc_72609F
		mov	eax, [ebp+var_1C]
		or	ebx, [ecx+3C8h]
		or	[eax+ecx], ebx
		jmp	short loc_72609F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7260F5:				; CODE XREF: KiSetStandardizedCacheInformation+7Bj
		mov	ebx, [ebp+var_18]
		mov	dword ptr [ebx+8], 1
		jmp	loc_725FF4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726104:				; CODE XREF: KiSetStandardizedCacheInformation+72j
		mov	ebx, [ebp+var_18]
		mov	dword ptr [ebx+8], 2
		jmp	loc_725FF4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726113:				; CODE XREF: KiSetStandardizedCacheInformation+69j
		mov	eax, [ebp+var_20]

loc_726116:				; CODE XREF: KiSetStandardizedCacheInformation+173j
		mov	ecx, [ebp+var_2C]
		pop	edi
		pop	esi
		pop	ebx
		mov	[ecx+4010h], eax
		mov	ecx, [ebp+var_4]
		xor	ecx, ebp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
KiSetStandardizedCacheInformation endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiGetCacheInformation proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+212p

var_8E		= byte ptr -8Eh
var_8D		= byte ptr -8Dh
var_8C		= dword	ptr -8Ch
var_85		= byte ptr -85h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_54		= dword	ptr -54h
var_4C		= byte ptr -4Ch
var_44		= dword	ptr -44h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_24		= dword	ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A5E2 SIZE 000002AF BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 94h
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+94h+var_4], eax
		mov	edx, large fs:1Ch
		push	ebx
		xor	ebx, ebx
		mov	[esp+98h+var_84], 40h
		mov	[esp+98h+var_80], ebx
		mov	eax, ebx
		mov	[esp+98h+var_8C], eax
		mov	[esp+98h+var_8D], bl
		mov	[esp+98h+var_78], edx
		mov	[edx+90h], ebx
		push	esi
		push	edi
		test	ecx, ecx
		jz	loc_726318
		sub	ecx, 1
		jnz	loc_72A5E2

loc_726187:				; CODE XREF: KiGetCacheInformation+44BCj
		xor	eax, eax
		lea	edi, [esp+0A0h+var_24]
		stosd
		xor	ecx, ecx
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		cpuid
		mov	esi, ebx
		lea	edi, [esp+0A4h+var_24]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		push	2
		pop	ecx
		mov	[edi+0Ch], edx
		cmp	[esp+0A0h+var_24], ecx
		jb	loc_726300
		and	[esp+0A0h+var_7C], 0
		mov	[esp+0A0h+var_85], 1

loc_7261C5:				; CODE XREF: KiGetCacheInformation+1CCj
		xor	eax, eax
		lea	edi, [esp+0A0h+var_74]
		stosd
		push	ebx
		stosd
		stosd
		stosd
		mov	eax, ecx
		xor	ecx, ecx
		lea	edi, [esp+0A4h+var_74]
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		cmp	[esp+0A0h+var_85], 0
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	eax, [esp+0A0h+var_70]
		mov	ecx, [esp+0A0h+var_74]
		mov	[esp+0A0h+var_10], eax
		mov	eax, [esp+0A0h+var_6C]
		mov	[esp+0A0h+var_C], eax
		mov	eax, [esp+0A0h+var_68]
		mov	[esp+0A0h+var_14], ecx
		mov	[esp+0A0h+var_8], eax
		jz	loc_72A723
		movzx	edi, cl
		mov	byte ptr [esp+0A0h+var_14], 0

loc_72622B:				; CODE XREF: KiGetCacheInformation+45F9j
		mov	[esp+0A0h+var_85], 0
		xor	esi, esi

loc_726232:				; CODE XREF: KiGetCacheInformation+1BCj
		mov	ecx, [esp+esi*4+0A0h+var_14]
		mov	[esp+0A0h+var_7C], ecx
		test	ecx, ecx
		js	loc_7262E6
		jz	loc_7262E6

loc_72624B:				; CODE XREF: KiGetCacheInformation+1B2j
		shr	[esp+0A0h+var_7C], 8
		test	cl, cl
		jz	loc_7262DA
		cmp	cl, 47h
		jbe	loc_726350

loc_726261:				; CODE XREF: KiGetCacheInformation+225j
		cmp	cl, 7Ch
		jbe	loc_72632D

loc_72626A:				; CODE XREF: KiGetCacheInformation+202j
		lea	eax, [ecx+7Fh]
		cmp	al, 4
		jbe	loc_72A72C
		lea	eax, [ecx-22h]
		cmp	al, 7
		jbe	loc_72A768
		cmp	cl, 69h
		jb	loc_72633B

loc_726289:				; CODE XREF: KiGetCacheInformation+210j
		cmp	cl, 0F0h
		jz	loc_726344
		cmp	cl, 2Ch
		jz	loc_726344
		cmp	cl, 0F1h
		jz	loc_72A801
		cmp	cl, 4Ch
		jbe	loc_72635E

loc_7262AD:				; CODE XREF: KiGetCacheInformation+233j
		cmp	cl, 78h
		jz	loc_72A810
		cmp	cl, 7Dh
		jz	loc_72A810
		cmp	cl, 7Fh
		jz	loc_72A810
		cmp	cl, 86h
		jz	loc_72A810
		cmp	cl, 87h
		jz	loc_72A810

loc_7262DA:				; CODE XREF: KiGetCacheInformation+124j
					; KiGetCacheInformation+220j ...
		mov	ecx, [esp+0A0h+var_7C]
		test	ecx, ecx
		jnz	loc_72624B

loc_7262E6:				; CODE XREF: KiGetCacheInformation+111j
					; KiGetCacheInformation+117j
		inc	esi
		cmp	esi, 4
		jb	loc_726232
		sub	edi, 1
		push	2
		mov	[esp+0A4h+var_7C], edi
		pop	ecx
		jnz	loc_7261C5

loc_726300:				; CODE XREF: KiGetCacheInformation+87j
					; KiGetCacheInformation+44F7j ...
		mov	eax, [esp+0A0h+var_8C]

loc_726304:				; CODE XREF: KiGetCacheInformation+44C2j
					; KiGetCacheInformation+45F0j
		mov	ecx, [esp+0A0h+var_84]
		cmp	ecx, ds:_KeLargestCacheLine
		ja	short loc_72636C

loc_726310:				; CODE XREF: KiGetCacheInformation+244j
		cmp	eax, ds:_KiLargestCacheSize
		ja	short loc_726374

loc_726318:				; CODE XREF: KiGetCacheInformation+4Aj
					; KiGetCacheInformation+24Bj
		mov	ecx, [esp+0A0h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72632D:				; CODE XREF: KiGetCacheInformation+136j
		cmp	cl, 78h
		jbe	loc_72626A
		jmp	loc_72A72C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72633B:				; CODE XREF: KiGetCacheInformation+155j
		cmp	cl, 65h
		jbe	loc_726289

loc_726344:				; CODE XREF: KiGetCacheInformation+15Ej
					; KiGetCacheInformation+167j
		mov	ds:_KePrefetchNTAGranularity, 40h
		jmp	short loc_7262DA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726350:				; CODE XREF: KiGetCacheInformation+12Dj
		cmp	cl, 40h
		jbe	loc_726261
		jmp	loc_72A72C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72635E:				; CODE XREF: KiGetCacheInformation+179j
		cmp	cl, 4Ah
		jb	loc_7262AD
		jmp	loc_72A810
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72636C:				; CODE XREF: KiGetCacheInformation+1E0j
		mov	ds:_KeLargestCacheLine,	ecx
		jmp	short loc_726310
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726374:				; CODE XREF: KiGetCacheInformation+1E8j
		mov	ds:_KiLargestCacheSize,	eax
		jmp	short loc_726318
KiGetCacheInformation endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; __stdcall KiDetectKvaLeakage(x)
_KiDetectKvaLeakage@4:			; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+1B1p
		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 2Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+28h], eax
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		lea	edi, [esp+24h]
		stosd
		xor	ebx, ebx
		mov	[esp+14h], ebx
		stosd
		stosd
		stosd
		mov	edi, ecx
		call	_KiIsKvaShadowNeededForBranchConfusion@4 ; KiIsKvaShadowNeededForBranchConfusion(x)
		test	eax, eax
		jnz	loc_7264D7
		mov	ecx, edi
		call	_KiIsKvaShadowNeededForTsa@4 ; KiIsKvaShadowNeededForTsa(x)
		test	eax, eax
		jnz	loc_7264D7
		mov	al, [edi+3BEh]
		cmp	al, 1
		jz	short loc_7263E1
		cmp	al, 5
		jnz	loc_7265D9
		cmp	byte ptr [edi+14h], 6
		jnz	short loc_726412
		cmp	byte ptr [edi+17h], 0Dh
		jmp	short loc_72640C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7263E1:				; CODE XREF: PAGELK:007263CBj
		cmp	byte ptr [edi+14h], 6
		jnz	short loc_726412
		mov	al, [edi+17h]
		cmp	al, 1Ch
		jz	loc_7265D9
		cmp	al, 26h
		jz	loc_7265D9
		cmp	al, 27h
		jz	loc_7265D9
		cmp	al, 36h
		jz	loc_7265D9
		cmp	al, 35h

loc_72640C:				; CODE XREF: PAGELK:007263DFj
		jz	loc_7265D9

loc_726412:				; CODE XREF: PAGELK:007263D9j
					; PAGELK:007263E5j
		xor	eax, eax
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		lea	ebx, [esp+24h]
		mov	[ebx], eax
		mov	[ebx+4], esi
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], edx
		xor	ebx, ebx
		cmp	dword ptr [esp+24h], 7
		mov	[esp+10h], ebx
		jb	loc_7264C2
		push	7
		pop	eax
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		lea	ebx, [esp+24h]
		mov	[ebx], eax
		mov	[ebx+4], esi
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], edx
		test	dword ptr [esp+30h], 20000000h
		jz	short loc_72646B
		mov	ecx, 10Ah
		rdmsr
		jmp	short loc_72646F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72646B:				; CODE XREF: PAGELK:00726460j
		mov	eax, [esp+10h]

loc_72646F:				; CODE XREF: PAGELK:00726469j
		xor	ecx, ecx
		xor	ebx, ebx
		inc	ecx
		and	eax, ecx
		or	eax, ebx
		jz	short loc_7264C2
		mov	edx, ds:_KeFeatureBits2
		mov	eax, edx
		mov	ds:_KiMicrocodeTrackerEnabled, ecx
		and	eax, 20h
		or	eax, ebx
		mov	cl, bl
		mov	[esp+0Fh], cl
		jnz	short loc_7264A4
		mov	eax, edx
		and	eax, 8
		or	eax, ebx
		jz	short loc_7264A4
		mov	cl, 1
		mov	[esp+0Fh], cl

loc_7264A4:				; CODE XREF: PAGELK:00726493j
					; PAGELK:0072649Cj
		mov	eax, 380000h
		and	edx, eax
		cmp	edx, eax
		jz	short loc_7264BA
		call	_KiIsFbClearSupported@0	; KiIsFbClearSupported()
		mov	cl, [esp+0Fh]
		or	cl, al

loc_7264BA:				; CODE XREF: PAGELK:007264ADj
		test	cl, cl
		jz	loc_7265D9

loc_7264C2:				; CODE XREF: PAGELK:00726437j
					; PAGELK:00726478j
		cmp	[edi+3CCh], ebx
		jz	short loc_7264D7
		cmp	ds:_KiKvaLeakage, 0
		jz	loc_7265EB

loc_7264D7:				; CODE XREF: PAGELK:007263AEj
					; PAGELK:007263BDj ...
		mov	ds:_KiKvaLeakage, 1
		cmp	byte ptr [edi+3BEh], 1
		jnz	loc_7265CA
		mov	eax, ds:_KeFeatureBits2
		and	eax, 10h
		or	eax, ebx
		jnz	loc_7265CA
		lea	ecx, [esp+14h]
		call	_HvlGetImplementedPhysicalBits@4 ; HvlGetImplementedPhysicalBits(x)
		test	al, al
		jnz	loc_726598
		mov	edx, [edi+21C4h]
		mov	ecx, ebx
		movzx	esi, byte ptr [edi+3BEh]
		push	2Eh
		pop	eax

loc_72651E:				; CODE XREF: PAGELK:00726539j
		cmp	ds:_KiCpuTable[ecx], esi
		jnz	short loc_72652E
		cmp	ds:dword_4183A4[ecx], edx
		jz	short loc_72653D

loc_72652E:				; CODE XREF: PAGELK:00726524j
		inc	ebx
		imul	ecx, ebx, 14h
		cmp	ds:dword_4183A8[ecx], 13h
		jnz	short loc_72651E
		jmp	short loc_72659C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72653D:				; CODE XREF: PAGELK:0072652Cj
		imul	eax, ebx, 14h
		mov	eax, ds:dword_4183AC[eax]
		test	eax, eax
		jnz	short loc_72659C
		mov	eax, 80000000h
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		lea	ebx, [esp+24h]
		mov	[ebx], eax
		mov	eax, 80000008h
		mov	[ebx+4], esi
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], edx
		cmp	[esp+24h], eax
		jb	short loc_726590
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		lea	ebx, [esp+24h]
		mov	[ebx], eax
		mov	[ebx+4], esi
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], edx
		mov	eax, [esp+24h]
		jmp	short loc_726593
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726590:				; CODE XREF: PAGELK:00726570j
		push	24h
		pop	eax

loc_726593:				; CODE XREF: PAGELK:0072658Ej
		movzx	eax, al
		jmp	short loc_72659C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726598:				; CODE XREF: PAGELK:00726506j
		mov	eax, [esp+14h]

loc_72659C:				; CODE XREF: PAGELK:0072653Bj
					; PAGELK:00726548j ...
		mov	edx, [edi+3CCh]
		test	edx, edx
		jz	short loc_7265C3
		mov	ecx, ds:_KiImplementedPhysicalBits
		cmp	eax, ecx
		jz	short loc_7265D9
		cmp	ds:_KiKvaLeakageSimulate, 0
		jnz	short loc_7265D9
		push	ecx
		push	eax
		push	edx
		push	4C315446h
		jmp	short loc_7265F3
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7265C3:				; CODE XREF: PAGELK:007265A4j
		mov	ds:_KiImplementedPhysicalBits, eax
		jmp	short loc_7265D9
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7265CA:				; CODE XREF: PAGELK:007264E5j
					; PAGELK:007264F5j
		cmp	[edi+3CCh], ebx
		jnz	short loc_7265D9
		or	ds:_KiImplementedPhysicalBits, 0FFFFFFFFh

loc_7265D9:				; CODE XREF: PAGELK:007263CFj
					; PAGELK:007263ECj ...
		mov	ecx, [esp+34h]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7265EB:				; CODE XREF: PAGELK:007264D1j
		push	ebx
		push	ebx
		push	ebx
		push	4B56414Ch

loc_7265F3:				; CODE XREF: PAGELK:007265C1j
		push	5Dh
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		dw 0CCCCh

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiInitializeXSave proc near		; CODE XREF: KiSystemStartup(x)+1DAp

var_35C		= dword	ptr -35Ch
var_358		= dword	ptr -358h
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_33C		= dword	ptr -33Ch
var_32C		= byte ptr -32Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0072A891 SIZE 00000050 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 34Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+34Ch+var_4], eax
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		xor	edi, edi
		mov	[esp+358h+var_344], edi
		mov	[esp+358h+var_348], edi
		test	esi, esi
		jz	loc_726704

loc_726633:				; CODE XREF: KiInitializeXSave+110j
		push	338h		; size_t
		lea	eax, [esp+35Ch+var_340]
		push	edi		; int
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		lea	ecx, [esp+358h+var_340]
		call	KiGetXSaveSupportedFeatures
		lea	edx, [esp+358h+var_348]
		lea	ecx, [esp+358h+var_344]
		call	KiGetIptInfo
		test	esi, esi
		jz	loc_726711
		mov	ecx, ds:0FFDF03D8h
		mov	eax, ecx
		mov	esi, ds:0FFDF03DCh
		mov	edx, esi
		and	eax, [esp+358h+var_340]
		and	edx, [esp+358h+var_33C]
		cmp	eax, ecx
		jnz	loc_72A8BC
		cmp	edx, esi
		jnz	loc_72A8BC
		mov	ecx, ds:0FFDF05F0h
		mov	eax, ecx
		mov	esi, ds:0FFDF05F4h
		mov	edx, esi
		and	eax, [esp+358h+var_128]
		and	edx, [esp+358h+var_124]
		cmp	eax, ecx
		jnz	loc_72A8BC
		cmp	edx, esi
		jnz	loc_72A8BC
		test	[esp+358h+var_32C], 1
		jz	loc_72A8AF

loc_7266C5:				; CODE XREF: KiInitializeXSave+42BAj
		test	[esp+358h+var_32C], 2
		jnz	short loc_7266D9
		test	byte ptr ds:0FFDF03ECh,	2
		jnz	loc_72A8BC

loc_7266D9:				; CODE XREF: KiInitializeXSave+CEj
		mov	ecx, ds:_KiIptMsrMask
		mov	eax, ecx
		and	eax, [esp+358h+var_348]
		cmp	eax, ecx
		jnz	loc_72A8D0

loc_7266ED:				; CODE XREF: KiInitializeXSave+16Bj
					; KiInitializeXSave+42AEj
		mov	ecx, [esp+358h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726704:				; CODE XREF: KiInitializeXSave+31j
		mov	ecx, [ebx+78h]	; char *
		call	KiParseLoadOptions
		jmp	loc_726633
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726711:				; CODE XREF: KiInitializeXSave+62j
		lea	edx, [esp+358h+var_340]
		mov	ecx, ebx
		call	_KiIntersectFeaturesWithLoader@8 ; KiIntersectFeaturesWithLoader(x,x)
		mov	ecx, ebx
		call	KiIntersectFeaturesWithPolicy
		lea	ecx, [esp+358h+var_340]
		call	KiIntersectFeaturesWithTest
		call	KiUpdateXSaveSizeAndVolatileFeatures
		mov	ecx, 0CEh
		lea	esi, [esp+358h+var_340]
		mov	edi, 0FFDF03D8h
		rep movsd
		mov	eax, [esp+358h+var_340]
		or	eax, [esp+358h+var_33C]
		jz	short loc_72675A
		mov	eax, ds:0FFDF0600h
		mov	ds:_KeXStateLength, eax
		mov	ds:_KiXSaveAreaLength, eax

loc_72675A:				; CODE XREF: KiInitializeXSave+14Dj
		mov	eax, [ebx+84h]
		test	byte ptr [eax+0A60h], 20h
		jz	short loc_7266ED
		jmp	loc_72A891
KiInitializeXSave endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiGetFeatureBits proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+138p

var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_122		= byte ptr -122h
var_121		= byte ptr -121h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_F8		= dword	ptr -0F8h
var_F4		= dword	ptr -0F4h
var_E4		= dword	ptr -0E4h
var_D8		= dword	ptr -0D8h
var_D4		= dword	ptr -0D4h
var_C4		= dword	ptr -0C4h
var_B4		= dword	ptr -0B4h
var_AC		= dword	ptr -0ACh
var_A4		= dword	ptr -0A4h
var_9C		= dword	ptr -9Ch
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_84		= dword	ptr -84h
var_74		= dword	ptr -74h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_54		= dword	ptr -54h
var_4C		= byte ptr -4Ch
var_44		= dword	ptr -44h
var_34		= dword	ptr -34h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072A8E1 SIZE 000004FC BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		and	esp, 0FFFFFFF8h
		sub	esp, 12Ch
		mov	eax, ds:___security_cookie
		xor	eax, esp
		mov	[esp+12Ch+var_4], eax
		push	ebx
		mov	ebx, large fs:20h
		push	esi
		push	edi
		mov	[esp+138h+var_121], 1
		mov	[esp+138h+var_11C], ebx
		call	KiGetCpuVendor
		mov	[esp+138h+var_118], eax
		mov	[ebx+3BEh], al
		test	eax, eax
		jz	loc_72A8E1
		xor	eax, eax
		lea	edi, [esp+138h+var_104]
		stosd
		xor	ecx, ecx
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		inc	eax
		lea	edi, [esp+13Ch+var_104]
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	ebx, [esp+138h+var_11C]
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	ecx, [esp+138h+var_100]
		mov	eax, ecx
		mov	edi, [esp+138h+var_104]
		mov	edx, edi
		mov	esi, [esp+138h+var_F8]
		shr	eax, 18h
		mov	[ebx+3D49h], al
		mov	eax, ecx
		shr	ecx, 10h
		shr	eax, 5
		and	eax, 7F8h
		mov	[esp+138h+var_110], ecx
		mov	ecx, ebx
		mov	[esp+138h+var_120], esi
		mov	[ebx+3B8h], eax
		call	_KiSetProcessorSignature@8 ; KiSetProcessorSignature(x,x)
		mov	edx, [ebx+3D50h]
		mov	ecx, [ebx+3D54h]
		or	edx, 200h
		xor	ebx, ebx
		mov	[esp+138h+var_128], edx
		cmp	[esp+138h+var_118], 2
		mov	[esp+138h+var_12C], ecx
		jz	loc_72A8ED

loc_72683F:				; CODE XREF: KiGetFeatureBits+419Bj
					; KiGetFeatureBits+41AEj
		xor	eax, eax
		lea	edi, [esp+138h+var_D4]
		stosd
		xor	ecx, ecx
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		cpuid
		mov	esi, ebx
		lea	edi, [esp+13Ch+var_D4]
		pop	ebx
		nop
		mov	[edi], eax
		xor	eax, eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	[esp+138h+var_114], eax
		cmp	[esp+138h+var_121], al
		jz	short loc_7268AC
		lea	edi, [esp+138h+var_F4]
		xor	ecx, ecx
		stosd
		push	ebx
		stosd
		stosd
		stosd
		mov	eax, 80000000h
		cpuid
		mov	esi, ebx
		lea	edi, [esp+13Ch+var_F4]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	eax, [esp+138h+var_F4]
		and	eax, 0FFFFFF00h
		cmp	eax, 80000000h
		jnz	short loc_7268AC
		mov	eax, [esp+138h+var_F4]
		mov	[esp+138h+var_114], eax

loc_7268AC:				; CODE XREF: KiGetFeatureBits+FFj
					; KiGetFeatureBits+134j
		mov	eax, [esp+138h+var_118]
		mov	edi, [esp+138h+var_11C]
		cmp	eax, 1
		jnz	loc_72A979
		mov	edx, [esp+138h+var_128]
		mov	al, [edi+14h]
		or	edx, (offset loc_7FFFFF+1)
		mov	ecx, [esp+138h+var_12C]
		mov	[esp+138h+var_128], edx
		mov	[esp+138h+var_12C], ecx
		cmp	al, 6
		jl	loc_72A921
		xor	eax, eax
		lea	edi, [esp+138h+var_E4]
		xor	edx, edx
		mov	ecx, 8Bh
		wrmsr
		stosd
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		inc	eax
		lea	edi, [esp+13Ch+var_E4]
		xor	ecx, ecx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	ecx, 8Bh
		mov	[edi+0Ch], edx
		mov	edi, [esp+138h+var_11C]
		mov	esi, [esp+138h+var_D8]
		rdmsr
		mov	ecx, [esp+138h+var_12C]
		mov	[edi+3D5Ch], edx
		mov	edx, [esp+138h+var_128]
		mov	[esp+138h+var_120], esi
		mov	[edi+3D58h], eax

loc_726933:				; CODE XREF: KiGetFeatureBits+41B5j
					; KiGetFeatureBits+41C2j
		mov	eax, [esp+138h+var_104]
		mov	esi, eax
		and	esi, 0FF0h
		cmp	esi, 610h
		jz	loc_72A935

loc_72694B:				; CODE XREF: KiGetFeatureBits+41D2j
		cmp	esi, 630h
		jz	loc_72A945

loc_726957:				; CODE XREF: KiGetFeatureBits+41DBj
					; KiGetFeatureBits+41EFj
		cmp	byte ptr [edi+14h], 6
		jl	loc_72A962
		jnz	short loc_726972
		mov	eax, 303h
		cmp	[edi+16h], ax
		jb	loc_72A962

loc_726972:				; CODE XREF: KiGetFeatureBits+1F3j
					; KiGetFeatureBits+4231j
		mov	eax, [esp+138h+var_118]

loc_726976:				; CODE XREF: KiGetFeatureBits+420Ej
					; KiGetFeatureBits+4218j
		mov	edx, [esp+138h+var_120]

loc_72697A:				; CODE XREF: KiGetFeatureBits+4206j
		mov	esi, [esp+138h+var_128]
		mov	ebx, [esp+138h+var_12C]
		test	dl, 2
		jz	short loc_726992
		or	esi, 5
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726992:				; CODE XREF: KiGetFeatureBits+217j
		test	dl, 8
		jz	short loc_7269A2
		or	esi, 24h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_7269A2:				; CODE XREF: KiGetFeatureBits+227j
		test	dl, 10h
		jz	short loc_7269B2
		or	esi, 2
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_7269B2:				; CODE XREF: KiGetFeatureBits+237j
		test	edx, 80000h
		jz	short loc_7269C8
		or	esi, 40000h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_7269C8:				; CODE XREF: KiGetFeatureBits+24Aj
		mov	ecx, 100h
		test	edx, ecx
		jz	loc_72A9A4

loc_7269D5:				; CODE XREF: KiGetFeatureBits+42ADj
		or	esi, 80h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_7269E3:				; CODE XREF: KiGetFeatureBits+42A7j
		mov	eax, 1000h
		test	edx, 800h
		jz	short loc_726A01
		or	esi, eax
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi
		mov	ds:_KiFastSystemCallIsIA32, 1

loc_726A01:				; CODE XREF: KiGetFeatureBits+280j
		test	edx, eax
		jz	short loc_726A10
		or	esi, 40h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A10:				; CODE XREF: KiGetFeatureBits+295j
		mov	edi, 2000h
		test	edx, edi
		jz	short loc_726A24
		or	esi, 14h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A24:				; CODE XREF: KiGetFeatureBits+2A9j
		test	edx, 8000h
		jz	short loc_726A37
		or	esi, 8
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A37:				; CODE XREF: KiGetFeatureBits+2BCj
		mov	eax, 10000h
		test	edx, eax
		jz	short loc_726A4E
		or	esi, 400h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A4E:				; CODE XREF: KiGetFeatureBits+2D0j
		test	edx, (offset loc_7FFFFF+1)
		jz	short loc_726A60
		or	esi, ecx
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A60:				; CODE XREF: KiGetFeatureBits+2E6j
		test	edx, 1000000h
		jz	short loc_726A76
		or	esi, 800h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A76:				; CODE XREF: KiGetFeatureBits+2F8j
		test	edx, 2000000h
		jz	short loc_726A88
		or	esi, edi
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A88:				; CODE XREF: KiGetFeatureBits+30Ej
		test	edx, 4000000h
		jz	short loc_726A9A
		or	esi, eax
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726A9A:				; CODE XREF: KiGetFeatureBits+320j
		xor	eax, eax
		mov	ecx, 80000008h
		cmp	[esp+138h+var_118], 2
		jz	loc_72AA26
		cmp	[esp+138h+var_D4], 4
		jb	loc_72AA20
		lea	edi, [esp+138h+var_C4]
		xor	ecx, ecx
		stosd
		push	4
		stosd
		stosd
		stosd
		pop	eax
		push	ebx
		cpuid
		mov	esi, ebx
		lea	edi, [esp+13Ch+var_C4]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	eax, [esp+138h+var_C4]
		shr	eax, 1Ah

loc_726AE1:				; CODE XREF: KiGetFeatureBits+4311j
		inc	eax

loc_726AE2:				; CODE XREF: KiGetFeatureBits+4309j
		mov	edx, [esp+138h+var_120]

loc_726AE6:				; CODE XREF: KiGetFeatureBits+42B3j
		mov	edi, [esp+138h+var_114]

loc_726AEA:				; CODE XREF: KiGetFeatureBits+42BFj
		mov	esi, [esp+138h+var_11C]
		lea	eax, ds:0FFFFFFFFh[eax*2]
		bsr	ecx, eax
		mov	eax, [esp+138h+var_118]
		xor	ebx, ebx
		inc	ebx
		shl	ebx, cl
		xor	ecx, ecx
		inc	ecx
		mov	[esp+138h+var_120], ebx
		mov	[esi+340h], ebx
		cmp	eax, ecx
		jnz	loc_72AA84

loc_726B16:				; CODE XREF: KiGetFeatureBits+4319j
		test	edx, 10000000h
		jz	loc_72AB88
		mov	eax, [esp+138h+var_110]
		xor	edx, edx
		movzx	eax, al
		inc	edx
		lea	eax, ds:0FFFFFFFFh[eax*2]
		bsr	ecx, eax
		mov	al, dl
		shl	al, cl
		movzx	eax, al
		mov	[esi+3D38h], eax
		cmp	eax, edx
		jbe	loc_72AB7B
		mov	ds:_KiSMTProcessorsPresent, dl

loc_726B51:				; CODE XREF: KiGetFeatureBits+4415j
		xor	edx, edx
		div	ebx
		mov	[esi+344h], eax
		mov	cl, al

loc_726B5D:				; CODE XREF: KiGetFeatureBits+4400j
					; KiGetFeatureBits+4426j
		mov	al, [esi+340h]
		mov	[esi+3BCh], al
		mov	[esi+3BDh], cl
		call	KiIsNXSupported
		mov	ebx, [esp+138h+var_12C]
		test	al, al
		jz	short loc_726B88
		or	[esp+138h+var_128], 20000000h
		mov	[esp+138h+var_12C], ebx

loc_726B88:				; CODE XREF: KiGetFeatureBits+40Cj
		mov	ecx, ebx
		xor	eax, eax
		and	ecx, 1
		or	eax, ecx
		jz	short loc_726BBD
		movzx	eax, byte ptr [esi+3C5h]
		mov	ecx, 0C0000103h
		cdq
		mov	esi, eax
		mov	edi, edx
		mov	eax, [esp+138h+var_11C]
		shld	edi, esi, 8
		shl	esi, 8
		movzx	eax, byte ptr [eax+3C4h]
		cdq
		or	eax, esi
		or	edx, edi
		wrmsr

loc_726BBD:				; CODE XREF: KiGetFeatureBits+423j
		mov	ecx, 80000001h
		cmp	[esp+138h+var_114], ecx
		jb	loc_726C8C
		xor	eax, eax
		lea	edi, [esp+138h+var_74]
		stosd
		push	ebx
		stosd
		stosd
		stosd
		mov	eax, ecx
		xor	ecx, ecx
		lea	edi, [esp+13Ch+var_74]
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		xor	eax, eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	ecx, [esp+138h+var_11C]
		mov	[edi+0Ch], edx
		cmp	[ecx+3CCh], eax
		jz	loc_726DD6

loc_726C08:				; CODE XREF: KiGetFeatureBits+66Fj
					; KiGetFeatureBits+443Fj ...
		mov	eax, [esp+138h+var_118]
		sub	eax, 1
		jnz	loc_72AC03

loc_726C15:				; CODE XREF: KiGetFeatureBits+449Dj
		mov	edx, 80000008h
		cmp	[esp+138h+var_114], edx
		jb	loc_72AC11
		xor	eax, eax
		lea	edi, [esp+138h+var_64]
		stosd
		xor	ecx, ecx
		push	ebx
		stosd
		stosd
		stosd
		mov	eax, edx
		cpuid
		mov	esi, ebx
		lea	edi, [esp+13Ch+var_64]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	eax, [esp+138h+var_64]

loc_726C55:				; CODE XREF: KiGetFeatureBits+44E8j
		mov	ds:_KiMtrrMaxRangeShift, al
		xor	edx, edx
		movzx	ecx, al
		xor	eax, eax
		inc	eax
		call	__allshl
		mov	ebx, [esp+138h+var_12C]
		sub	eax, 1
		sbb	edx, 0
		and	eax, 0FFFFF000h
		mov	ds:_KiMtrrMaskBase, eax
		mov	ds:dword_6B3FAC, edx
		mov	ds:_KiMtrrMaskMask, eax
		mov	ds:dword_6B3FB4, edx

loc_726C8C:				; CODE XREF: KiGetFeatureBits+458j
		mov	ecx, [esp+138h+var_11C]

loc_726C90:				; CODE XREF: KiGetFeatureBits+44A7j
					; KiGetFeatureBits+44FCj ...
		mov	eax, ds:0FFDF03D8h
		or	eax, ds:0FFDF03DCh
		jz	short loc_726CA9
		or	[esp+138h+var_128], 400000h
		mov	[esp+138h+var_12C], ebx

loc_726CA9:				; CODE XREF: KiGetFeatureBits+52Dj
		mov	al, [ecx+3BEh]
		mov	[esp+138h+var_121], al
		cmp	al, 1
		jnz	loc_72ACB0
		xor	eax, eax
		lea	edi, [esp+138h+var_54]
		stosd
		xor	ecx, ecx
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		inc	eax
		lea	edi, [esp+13Ch+var_54]
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		test	[esp+138h+var_4C], 20h
		jz	loc_726DE8
		mov	ecx, 482h
		xor	ebx, ebx
		rdmsr
		cmp	edx, ebx
		jl	short loc_726D0F
		jg	loc_72AC9C
		cmp	eax, ebx
		jnb	loc_72AC9C

loc_726D0F:				; CODE XREF: KiGetFeatureBits+591j
		mov	esi, [esp+138h+var_128]
		mov	ecx, 48Bh
		rdmsr
		mov	eax, ebx
		and	edx, 2
		or	eax, edx
		mov	ebx, [esp+138h+var_12C]
		jz	short loc_726D35
		or	esi, 4000000h
		mov	[esp+138h+var_12C], ebx
		mov	[esp+138h+var_128], esi

loc_726D35:				; CODE XREF: KiGetFeatureBits+5B7j
					; KiGetFeatureBits+4536j
		push	3Ah
		pop	ecx
		rdmsr
		mov	edi, eax
		mov	ecx, edi
		and	ecx, 5
		cmp	ecx, 5
		jnz	loc_72ACA9
		xor	ecx, ecx
		mov	[esp+138h+var_12C], ebx
		or	esi, 8000000h
		mov	[esp+138h+var_128], esi

loc_726D5A:				; CODE XREF: KiGetFeatureBits+453Dj
		mov	eax, edi
		and	eax, 4
		or	eax, ecx
		jz	short loc_726D6A
		or	ds:_KiVirtFlags, 1

loc_726D6A:				; CODE XREF: KiGetFeatureBits+5F3j
		mov	al, [esp+138h+var_121]
		and	edi, 1
		or	edi, ecx
		jz	short loc_726D7C
		or	ds:_KiVirtFlags, 2

loc_726D7C:				; CODE XREF: KiGetFeatureBits+605j
					; KiGetFeatureBits+67Ej ...
		cmp	al, 1
		jnz	short loc_726DB9
		xor	eax, eax
		lea	edi, [esp+138h+var_24]
		stosd
		xor	ecx, ecx
		push	7
		stosd
		stosd
		stosd
		pop	eax
		push	ebx
		cpuid
		mov	esi, ebx
		lea	edi, [esp+13Ch+var_24]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		test	[esp+138h+var_20], 4
		jnz	loc_72AD79

loc_726DB9:				; CODE XREF: KiGetFeatureBits+610j
					; KiGetFeatureBits+4619j
		mov	eax, [esp+138h+var_128]
		mov	edx, [esp+138h+var_12C]

loc_726DC1:				; CODE XREF: KiGetFeatureBits+417Aj
					; KiGetFeatureBits+465Aj ...
		mov	ecx, [esp+138h+var_4]
		pop	edi
		pop	esi
		pop	ebx
		xor	ecx, esp
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		mov	esp, ebp
		pop	ebp
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726DD6:				; CODE XREF: KiGetFeatureBits+494j
		cmp	byte ptr [ecx+3BEh], 2
		jnz	loc_726C08
		jmp	loc_72AB99
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726DE8:				; CODE XREF: KiGetFeatureBits+580j
		mov	al, [esp+138h+var_121]
		jmp	short loc_726D7C
KiGetFeatureBits endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiIsNXSupported	proc near		; CODE XREF: KiGetFeatureBits+401p
					; KiInitializeNxSupportDiscard+6Dp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072ADDD SIZE 0000003C BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		xor	eax, eax
		lea	edi, [ebp+var_14]
		stosd
		xor	ecx, ecx
		push	ebx
		stosd
		stosd
		stosd
		mov	eax, 80000000h
		cpuid
		mov	esi, ebx
		lea	edi, [ebp+var_14]
		pop	ebx
		nop
		mov	[edi], eax
		mov	eax, 80000001h
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		cmp	[ebp+var_14], eax
		jb	short loc_726E64
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		test	[ebp+var_8], 100000h
		jz	loc_72ADDD

loc_726E53:				; CODE XREF: KiIsNXSupported+401Dj
		mov	al, 1

loc_726E55:				; CODE XREF: KiIsNXSupported+78j
					; KiIsNXSupported+4026j
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726E64:				; CODE XREF: KiIsNXSupported+42j
		xor	eax, eax
		jmp	short loc_726E55
KiIsNXSupported	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; __stdcall KiSetProcessorSignature(x, x)
_KiSetProcessorSignature@8:		; CODE XREF: KiGetFeatureBits+A5p
		push	70h
		push	offset dword_6A7240
		call	__SEH_prolog4_GS
		mov	[ebp-6Ch], edx
		mov	[ebp-38h], ecx
		mov	[ebp-80h], ecx
		xor	eax, eax
		lea	edi, [ebp-30h]
		stosd
		stosd
		stosd
		stosd
		lea	edi, [ebp-30h]
		mov	eax, 80000000h
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	edi, [ebp-30h]
		mov	[ebp-68h], edi
		xor	eax, eax
		xor	ecx, ecx
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		lea	ebx, [ebp-30h]
		mov	[ebx], eax
		mov	[ebx+4], esi
		mov	[ebx+8], ecx
		mov	[ebx+0Ch], edx
		mov	eax, [ebp-30h]
		mov	[ebp-78h], eax
		and	dword ptr [ebp-54h], 0
		and	dword ptr [ebp-50h], 0
		xor	esi, esi
		mov	[ebp-4Ch], esi
		and	[ebp-48h], esi
		and	[ebp-58h], esi
		xor	ecx, ecx
		mov	[ebp-44h], ecx
		xor	ebx, ebx
		mov	[ebp-40h], ebx

loc_726EE4:				; CODE XREF: PAGELK:00727089j
		mov	eax, ds:dword_40A178[ebx]
		mov	[ebp-34h], eax
		test	al, 2
		jnz	loc_727171
		mov	edx, eax
		shr	edx, 18h
		test	edx, edx
		jz	short loc_726F1A
		xor	eax, eax
		inc	eax
		mov	edi, [ebp-38h]
		mov	cl, [edi+3BEh]
		shl	eax, cl
		mov	ecx, [ebp-44h]
		test	eax, edx
		jz	loc_727074
		mov	edi, [ebp-68h]

loc_726F1A:				; CODE XREF: PAGELK:00726EFCj
		mov	eax, ds:_KiCpuFeatureTable[ebx]
		cmp	eax, [ebp-58h]
		jnz	short loc_726F2D
		cmp	ds:dword_40A16C[ebx], ecx
		jz	short loc_726F6F

loc_726F2D:				; CODE XREF: PAGELK:00726F23j
		mov	[ebp-58h], eax
		mov	ecx, ds:dword_40A16C[ebx]
		mov	[ebp-44h], ecx
		cmp	eax, 80000000h
		jb	short loc_726F44
		cmp	eax, edi
		jbe	short loc_726F49

loc_726F44:				; CODE XREF: PAGELK:00726F3Ej
		cmp	eax, [ebp-78h]
		ja	short loc_726F66

loc_726F49:				; CODE XREF: PAGELK:00726F42j
		lea	edi, [ebp-30h]
		push	ebx
		cpuid
		mov	esi, ebx
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		mov	[edi+8], ecx
		mov	[edi+0Ch], edx
		mov	ebx, [ebp-40h]
		mov	esi, [ebp-4Ch]
		jmp	short loc_726F6F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726F66:				; CODE XREF: PAGELK:00726F47j
		xor	eax, eax
		lea	edi, [ebp-30h]
		stosd
		stosd
		stosd
		stosd

loc_726F6F:				; CODE XREF: PAGELK:00726F2Bj
					; PAGELK:00726F64j
		and	dword ptr [ebp-40h], 0
		mov	edi, ds:dword_40A174[ebx]
		mov	[ebp-5Ch], edi
		mov	ecx, ds:dword_40A170[ebx]
		mov	[ebp-3Ch], ecx
		mov	eax, [ebp-34h]
		mov	edx, eax
		and	edx, 8
		test	[ebp+edi*4-30h], ecx
		jnz	short loc_726FBD
		mov	[ebp-64h], edx
		test	edx, edx
		jz	short loc_726FE5
		mov	ecx, ds:dword_40A180[ebx]
		mov	edx, ds:dword_40A184[ebx]
		mov	[ebp-60h], edx
		mov	eax, ecx
		and	eax, [ebp-54h]
		and	edx, [ebp-50h]
		cmp	eax, ecx
		jnz	short loc_726FE2
		cmp	edx, [ebp-60h]
		jnz	short loc_726FE2
		mov	edx, [ebp-64h]

loc_726FBD:				; CODE XREF: PAGELK:00726F91j
					; PAGELK:00727021j
		mov	ecx, [ebp-34h]
		and	ecx, 10h
		test	edx, edx
		jz	loc_7270C2
		mov	eax, ds:dword_40A180[ebx]
		or	[ebp-54h], eax
		mov	eax, ds:dword_40A184[ebx]
		or	[ebp-50h], eax
		jmp	loc_7270D8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_726FE2:				; CODE XREF: PAGELK:00726FB3j
					; PAGELK:00726FB8j
		mov	eax, [ebp-34h]

loc_726FE5:				; CODE XREF: PAGELK:00726F98j
		mov	ecx, eax
		and	ecx, 10h
		mov	[ebp-7Ch], ecx
		jz	short loc_727018
		mov	ecx, ds:dword_40A180[ebx]
		mov	edx, ds:dword_40A184[ebx]
		mov	[ebp-60h], edx
		mov	eax, ecx
		and	eax, esi
		and	edx, [ebp-48h]
		cmp	eax, ecx
		mov	eax, [ebp-34h]
		jnz	short loc_727018
		cmp	edx, [ebp-60h]
		jnz	short loc_727018
		mov	dword ptr [ebp-40h], 1

loc_727018:				; CODE XREF: PAGELK:00726FEDj
					; PAGELK:0072700Aj ...
		mov	ecx, [ebp-64h]
		mov	edx, ecx
		cmp	dword ptr [ebp-40h], 0
		jnz	short loc_726FBD
		test	al, 1
		jnz	loc_727179
		mov	edi, [ebp-38h]
		test	al, 4
		jz	short loc_727071
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_727071
		test	ecx, ecx
		jz	short loc_72708E
		mov	edx, ds:dword_40A180[ebx]
		mov	eax, ds:dword_40A184[ebx]
		mov	[ebp-40h], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits
		mov	[ebp-34h], eax
		mov	eax, ds:dword_70E754
		and	[ebp-34h], eax
		cmp	ecx, edx
		jnz	short loc_727071
		mov	eax, [ebp-40h]
		cmp	[ebp-34h], eax

loc_72706B:				; CODE XREF: PAGELK:007270C0j
		jz	loc_727512

loc_727071:				; CODE XREF: PAGELK:00727030j
					; PAGELK:00727039j ...
		mov	ecx, [ebp-44h]

loc_727074:				; CODE XREF: PAGELK:00726F11j
					; PAGELK:00727174j
		add	ebx, 20h
		mov	[ebp-40h], ebx
		cmp	ebx, 5E0h
		jnb	loc_7271B2
		mov	edi, [ebp-68h]
		jmp	loc_726EE4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72708E:				; CODE XREF: PAGELK:0072703Dj
		cmp	dword ptr [ebp-7Ch], 0
		jz	short loc_727071
		mov	edx, ds:dword_40A180[ebx]
		mov	eax, ds:dword_40A184[ebx]
		mov	[ebp-40h], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits2
		mov	[ebp-34h], eax
		mov	eax, ds:dword_70E77C
		and	[ebp-34h], eax
		cmp	ecx, edx
		jnz	short loc_727071
		mov	eax, [ebp-40h]
		cmp	[ebp-34h], eax
		jmp	short loc_72706B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7270C2:				; CODE XREF: PAGELK:00726FC5j
		test	ecx, ecx
		jz	short loc_7270D8
		or	esi, ds:dword_40A180[ebx]
		mov	[ebp-4Ch], esi
		mov	eax, ds:dword_40A184[ebx]
		or	[ebp-48h], eax

loc_7270D8:				; CODE XREF: PAGELK:00726FDDj
					; PAGELK:007270C4j
		mov	edi, [ebp-38h]
		test	byte ptr [ebp-34h], 4
		jz	short loc_727071
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_727071
		test	edx, edx
		jz	short loc_727139
		mov	edx, ds:dword_40A180[ebx]
		mov	eax, ds:dword_40A184[ebx]
		mov	[ebp-40h], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits
		mov	[ebp-34h], eax
		mov	eax, ds:dword_70E754
		and	[ebp-34h], eax
		cmp	ecx, edx
		jnz	short loc_727120
		mov	eax, [ebp-40h]
		cmp	[ebp-34h], eax
		jz	loc_727071

loc_727120:				; CODE XREF: PAGELK:00727112j
					; PAGELK:0072713Bj ...
		push	ds:dword_40A174[ebx]
		push	ds:dword_40A170[ebx]
		push	ds:_KiCpuFeatureTable[ebx]
		push	0FFFFFFFDh
		jmp	loc_727521
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727139:				; CODE XREF: PAGELK:007270ECj
		test	ecx, ecx
		jz	short loc_727120
		mov	edx, ds:dword_40A180[ebx]
		mov	eax, ds:dword_40A184[ebx]
		mov	[ebp-40h], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits2
		mov	[ebp-34h], eax
		mov	eax, ds:dword_70E77C
		and	[ebp-34h], eax
		cmp	ecx, edx
		jnz	short loc_727120
		mov	eax, [ebp-40h]
		cmp	[ebp-34h], eax
		jz	loc_727071
		jmp	short loc_727120
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727171:				; CODE XREF: PAGELK:00726EEFj
		mov	edi, [ebp-38h]
		jmp	loc_727074
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727179:				; CODE XREF: PAGELK:00727025j
		mov	ecx, [ebp-38h]
		cmp	dword ptr [ecx+3CCh], 0
		jnz	short loc_7271A0
		push	ds:_KeLoaderBlock
		push	0
		call	KdInitSystem
		mov	edi, ds:dword_40A174[ebx]
		mov	eax, ds:dword_40A170[ebx]
		jmp	short loc_7271A3
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7271A0:				; CODE XREF: PAGELK:00727183j
		mov	eax, [ebp-3Ch]

loc_7271A3:				; CODE XREF: PAGELK:0072719Ej
		push	edi
		push	eax
		push	ds:_KiCpuFeatureTable[ebx]
		push	0FFFFFFFFh
		jmp	loc_727521
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7271B2:				; CODE XREF: PAGELK:00727080j
		and	dword ptr [ebp-58h], 0

loc_7271B6:				; CODE XREF: PAGELK:007273FBj
		mov	eax, [ebp-58h]
		cmp	eax, 2
		jnb	loc_72744D
		imul	ebx, eax, 18h
		add	ebx, offset _KiMsrFeatureTable
		mov	[ebp-5Ch], ebx
		mov	edx, [ebx+4]
		test	dl, 2
		jnz	loc_7273F8
		mov	esi, edx
		shr	esi, 18h
		test	esi, esi
		jz	short loc_7271F6
		xor	eax, eax
		inc	eax
		mov	cl, [edi+3BEh]
		shl	eax, cl
		test	eax, esi
		jz	loc_7273F8

loc_7271F6:				; CODE XREF: PAGELK:007271E1j
		test	dl, 8
		jz	short loc_727203
		mov	edx, [ebp-54h]
		mov	esi, [ebp-50h]
		jmp	short loc_727212
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727203:				; CODE XREF: PAGELK:007271F9j
		test	dl, 10h
		jz	loc_7273F8
		mov	edx, [ebp-4Ch]
		mov	esi, [ebp-48h]

loc_727212:				; CODE XREF: PAGELK:00727201j
		mov	ecx, [ebx+10h]
		mov	eax, [ebx+14h]
		mov	[ebp-3Ch], eax
		mov	eax, ecx
		and	eax, edx
		mov	edx, [ebp-3Ch]
		and	edx, esi
		cmp	eax, ecx
		jnz	loc_7273F8
		cmp	edx, [ebp-3Ch]
		jnz	loc_7273F8
		and	dword ptr [ebp-4], 0
		mov	ecx, [ebx]
		rdmsr
		mov	[ebp-74h], eax
		mov	[ebp-70h], edx
		mov	dword ptr [ebp-4], 0FFFFFFFEh
		jmp	short loc_727268
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72724C:				; DATA XREF: .text:006A7254o
		xor	eax, eax
		inc	eax
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727250:				; DATA XREF: .text:006A7258o
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-74h], 0
		and	dword ptr [ebp-70h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFEh
		mov	ebx, [ebp-5Ch]
		mov	edi, [ebp-80h]

loc_727268:				; CODE XREF: PAGELK:0072724Aj
		mov	esi, [ebx+8]
		jmp	loc_7273E5
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727270:				; CODE XREF: PAGELK:007273F2j
		mov	edx, [esi+8]
		test	dl, 2
		jnz	loc_7273E2
		mov	eax, edx
		shr	eax, 18h
		mov	[ebp-5Ch], eax
		test	eax, eax
		jz	short loc_72729C
		xor	eax, eax
		inc	eax
		mov	cl, [edi+3BEh]
		shl	eax, cl
		test	[ebp-5Ch], eax
		jz	loc_7273E2

loc_72729C:				; CODE XREF: PAGELK:00727286j
		mov	ecx, [ebp-38h]
		and	ecx, [ebp-74h]
		mov	eax, [ebp-34h]
		and	eax, [ebp-70h]
		or	ecx, eax
		jnz	loc_727346
		test	dl, 1
		jnz	loc_727400
		test	dl, 4
		jz	loc_7273E2
		cmp	[edi+3CCh], ecx
		jz	loc_7273E2
		test	dl, 8
		jz	short loc_7272F9
		mov	ecx, [esi+10h]
		mov	eax, [esi+14h]
		mov	[ebp-3Ch], eax
		mov	eax, ds:_KeFeatureBits
		and	eax, ecx
		mov	edx, ds:dword_70E754
		and	edx, [ebp-3Ch]
		cmp	eax, ecx
		jnz	loc_7273E2
		cmp	edx, [ebp-3Ch]
		jmp	short loc_72732C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7272F9:				; CODE XREF: PAGELK:007272D1j
		test	dl, 10h
		jz	loc_7273E2
		mov	edx, [esi+10h]
		mov	eax, [esi+14h]
		mov	[ebp-3Ch], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits2
		mov	[ebp-44h], eax
		mov	eax, ds:dword_70E77C
		and	[ebp-44h], eax
		cmp	ecx, edx
		jnz	loc_7273E2
		mov	eax, [ebp-3Ch]
		cmp	[ebp-44h], eax

loc_72732C:				; CODE XREF: PAGELK:007272F7j
		jnz	loc_7273E2
		mov	eax, [ebp-38h]
		mov	[ebp-4Ch], eax
		push	dword ptr [ebp-34h]
		push	dword ptr [esi]
		push	dword ptr [ebx]
		push	0FFFFFFFBh
		jmp	loc_727521
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727346:				; CODE XREF: PAGELK:007272AAj
		mov	eax, edx
		and	eax, 8
		mov	[ebp-3Ch], eax
		mov	ecx, edx
		and	ecx, 10h
		test	eax, eax
		jz	short loc_727365
		mov	eax, [esi+10h]
		or	[ebp-54h], eax
		mov	eax, [esi+14h]
		or	[ebp-50h], eax
		jmp	short loc_727375
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727365:				; CODE XREF: PAGELK:00727355j
		test	ecx, ecx
		jz	short loc_727378
		mov	eax, [esi+10h]
		or	[ebp-4Ch], eax
		mov	eax, [esi+14h]
		or	[ebp-48h], eax

loc_727375:				; CODE XREF: PAGELK:00727363j
		mov	eax, [ebp-3Ch]

loc_727378:				; CODE XREF: PAGELK:00727367j
		test	dl, 4
		jz	short loc_7273E2
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_7273E2
		test	eax, eax
		jz	short loc_7273B6
		mov	edx, [esi+10h]
		mov	eax, [esi+14h]
		mov	[ebp-3Ch], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits
		mov	[ebp-38h], eax
		mov	eax, ds:dword_70E754
		and	[ebp-38h], eax
		cmp	ecx, edx
		jnz	loc_727435
		mov	eax, [ebp-3Ch]
		cmp	[ebp-38h], eax
		jmp	short loc_7273E0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7273B6:				; CODE XREF: PAGELK:00727388j
		test	ecx, ecx
		jz	short loc_727435
		mov	edx, [esi+10h]
		mov	eax, [esi+14h]
		mov	[ebp-3Ch], eax
		mov	ecx, edx
		and	ecx, ds:_KeFeatureBits2
		mov	[ebp-38h], eax
		mov	eax, ds:dword_70E77C
		and	[ebp-38h], eax
		cmp	ecx, edx
		jnz	short loc_727435
		mov	eax, [ebp-3Ch]
		cmp	[ebp-38h], eax

loc_7273E0:				; CODE XREF: PAGELK:007273B4j
		jnz	short loc_727435

loc_7273E2:				; CODE XREF: PAGELK:00727276j
					; PAGELK:00727296j ...
		add	esi, 18h

loc_7273E5:				; CODE XREF: PAGELK:0072726Bj
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[ebp-38h], eax
		or	eax, ecx
		mov	[ebp-34h], ecx
		jnz	loc_727270

loc_7273F8:				; CODE XREF: PAGELK:007271D4j
					; PAGELK:007271F0j ...
		inc	dword ptr [ebp-58h]
		jmp	loc_7271B6
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727400:				; CODE XREF: PAGELK:007272B3j
		mov	eax, [ebp-38h]
		mov	[ebp-4Ch], eax
		cmp	dword ptr [edi+3CCh], 0
		jnz	short loc_727426
		push	ds:_KeLoaderBlock
		push	0
		call	KdInitSystem
		mov	eax, [esi]
		mov	[ebp-4Ch], eax
		mov	eax, [esi+4]
		jmp	short loc_727429
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727426:				; CODE XREF: PAGELK:0072740Dj
		mov	eax, [ebp-34h]

loc_727429:				; CODE XREF: PAGELK:00727424j
		push	eax
		push	dword ptr [esi]
		push	dword ptr [ebx]
		push	0FFFFFFFCh
		jmp	loc_727521
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727435:				; CODE XREF: PAGELK:007273A8j
					; PAGELK:007273B8j ...
		mov	eax, [esi]
		mov	edx, [esi+4]
		mov	cl, 20h
		call	__aullshr
		push	eax
		push	dword ptr [esi]
		push	dword ptr [ebx]
		push	0FFFFFFFAh
		jmp	loc_727521
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72744D:				; CODE XREF: PAGELK:007271BCj
		xor	ecx, ecx
		movzx	edx, byte ptr [edi+3BEh]
		xor	eax, eax

loc_727458:				; CODE XREF: PAGELK:00727476j
		cmp	ds:_KiCpuTable[eax], edx
		jnz	short loc_72746B
		mov	eax, ds:dword_4183A4[eax]
		cmp	eax, [ebp-6Ch]
		jz	short loc_72747A

loc_72746B:				; CODE XREF: PAGELK:0072745Ej
		inc	ecx
		imul	eax, ecx, 14h
		cmp	ds:dword_4183A8[eax], 13h
		jnz	short loc_727458
		jmp	short loc_727489
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72747A:				; CODE XREF: PAGELK:00727469j
		imul	eax, ecx, 14h
		mov	eax, ds:dword_4183B0[eax]
		mov	[edi+21C8h], eax

loc_727489:				; CODE XREF: PAGELK:00727478j
		cmp	dword ptr [edi+3CCh], 0
		jz	short loc_727499
		xor	ecx, ecx
		call	_KeGetPrcb@4	; KeGetPrcb(x)

loc_727499:				; CODE XREF: PAGELK:00727490j
		lea	edx, [ebp-54h]
		mov	ecx, edi
		call	_KiRemoveModelSpecificUnsupportedFeatures@8 ; KiRemoveModelSpecificUnsupportedFeatures(x,x)
		mov	eax, [ebp-6Ch]
		mov	[edi+21C4h], eax
		mov	eax, [ebp-54h]
		or	[edi+3D50h], eax
		mov	eax, [ebp-50h]
		or	[edi+3D54h], eax
		mov	ecx, [edi+3CCh]
		mov	eax, ds:_KeFeatureBits2
		test	ecx, ecx
		jnz	short loc_7274F9
		or	eax, [ebp-4Ch]
		mov	ds:_KeFeatureBits2, eax
		mov	eax, ds:dword_70E77C
		or	eax, [ebp-48h]
		mov	ds:dword_70E77C, eax
		mov	ecx, edi
		call	_KiPublishProcessorFeatures@4 ;	KiPublishProcessorFeatures(x)

loc_7274E9:				; CODE XREF: PAGELK:00727509j
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7274F9:				; CODE XREF: PAGELK:007274CBj
		mov	edx, ds:dword_70E77C
		mov	esi, [ebp-4Ch]
		cmp	esi, eax
		jnz	short loc_72750B
		cmp	[ebp-48h], edx
		jz	short loc_7274E9

loc_72750B:				; CODE XREF: PAGELK:00727504j
		push	ecx
		push	eax
		push	esi
		push	0FFFFFFF7h
		jmp	short loc_727521
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727512:				; CODE XREF: PAGELK:loc_72706Bj
		push	dword ptr [ebp-5Ch]
		mov	eax, [ebp-3Ch]
		push	eax
		push	ds:_KiCpuFeatureTable[ebx]
		push	0FFFFFFFEh

loc_727521:				; CODE XREF: PAGELK:00727134j
					; PAGELK:007271ADj ...
		push	5Dh
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 2 dup(0CCh)

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiGetCpuVendor	proc near		; CODE XREF: KiGetIptInfo+32p
					; KiInitializeKernel(x,x,x,x,x,x)+99p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072AE19 SIZE 00000106 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		mov	eax, large fs:20h
		xor	ecx, ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_28], eax
		lea	edi, [ebp+var_14]
		xor	eax, eax
		stosd
		push	ebx
		stosd
		stosd
		stosd
		xor	eax, eax
		cpuid
		mov	esi, ebx
		lea	edi, [ebp+var_14]
		pop	ebx
		nop
		mov	[edi], eax
		mov	[edi+4], esi
		lea	esi, [ebp+var_24]
		mov	[edi+8], ecx
		xor	ecx, ecx
		mov	[edi+0Ch], edx
		mov	edx, offset _CmpIntelID	; "GenuineIntel"
		mov	eax, [ebp+var_10]
		mov	[ebp+var_24], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_18], ecx
		push	2
		lea	edi, [eax+3D3Ch]
		mov	[eax+3D48h], cl
		movsd
		lea	eax, [ebp+var_24]
		movsd
		movsd
		pop	esi

loc_7275A1:				; CODE XREF: KiGetCpuVendor+92j
		mov	bl, [eax]
		xor	edi, edi
		inc	edi
		cmp	bl, [edx]
		jnz	short loc_7275D9
		test	bl, bl
		jz	short loc_7275BE
		mov	bl, [eax+1]
		cmp	bl, [edx+1]
		jnz	short loc_7275D9
		add	eax, esi
		add	edx, esi
		test	bl, bl
		jnz	short loc_7275A1

loc_7275BE:				; CODE XREF: KiGetCpuVendor+82j
		mov	eax, ecx

loc_7275C0:				; CODE XREF: KiGetCpuVendor+B3j
		test	eax, eax
		jnz	loc_72AE19
		mov	eax, edi

loc_7275CA:				; CODE XREF: KiGetCpuVendor+391Fj
					; KiGetCpuVendor+3959j	...
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7275D9:				; CODE XREF: KiGetCpuVendor+7Ej
					; KiGetCpuVendor+8Aj
		sbb	eax, eax
		or	eax, edi
		jmp	short loc_7275C0
KiGetCpuVendor	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 10h

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


PoInitializePrcb proc near		; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+11Bp

; FUNCTION CHUNK AT 0072AF1F SIZE 00000019 BYTES

		mov	edi, edi
		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		push	1A8h		; size_t
		push	0		; int
		lea	edi, [esi+3D70h]
		push	edi		; void *
		call	_memset
		add	esp, 0Ch
		mov	dword ptr [edi+0D0h], offset PpmWmiDispatch
		lea	ebx, [edi+0F8h]
		mov	byte ptr [edi+0D8h], 1
		mov	byte ptr [edi+0C0h], 2
		push	64h
		pop	eax
		push	esi
		push	offset _PpmPerfAction@16 ; PpmPerfAction(x,x,x,x)
		push	ebx
		mov	[edi+152h], ax
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	eax, [ebx+1Ch]
		mov	ecx, [esi+3CCh]
		test	eax, eax
		jnz	short loc_727645
		lea	eax, [ecx+20h]
		mov	[ebx+2], ax

loc_727645:				; CODE XREF: PoInitializePrcb+5Cj
		mov	byte ptr [edi+0F9h], 3
		call	PpmHvUseNativeAlgorithms
		test	al, al
		jz	loc_72AF1F
		and	dword ptr [edi+0C8h], 0

loc_727660:				; CODE XREF: PoInitializePrcb+3953j
		pop	edi
		pop	esi
		pop	ebx
		retn
PoInitializePrcb endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall InitOtherProcessors()
_InitOtherProcessors@0 proc near	; CODE XREF: KiInitializeKernel(x,x,x,x,x,x):loc_7257EBp
		call	_ExInitPoolLookasidePointers@0 ; ExInitPoolLookasidePointers()
		push	0
		push	1
		call	ds:__imp__HalInitSystem@8 ; HalInitSystem(x,x)
		test	al, al
		jz	short loc_72767A
		xor	eax, eax
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72767A:				; CODE XREF: InitOtherProcessors()+11j
		push	5Ch
		call	_KeBugCheck@4	; KeBugCheck(x)
		int	3		; Trap to Debugger
_InitOtherProcessors@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall ExInitPoolLookasidePointers()
_ExInitPoolLookasidePointers@0 proc near ; CODE	XREF: InitOtherProcessors()p
					; INIT:00ACD0D9p
		mov	edi, edi
		push	ebx
		push	esi
		mov	esi, large fs:20h
		mov	ebx, offset _ExPoolLookasideListHead
		push	edi
		mov	edi, offset _ExpScratchBufferLookasideList
		cmp	dword ptr [esi+3CCh], 0
		jz	short loc_727713

loc_7276A1:				; CODE XREF: ExInitPoolLookasidePointers()+C5j
		mov	[esi+5E4h], edi
		mov	[esi+5E0h], edi
		add	esi, 620h
		push	8
		pop	edi

loc_7276B6:				; CODE XREF: ExInitPoolLookasidePointers()+8Bj
		push	ebx
		push	100h
		push	4C6F6F50h
		push	edi
		lea	ecx, [esi+900h]
		xor	edx, edx
		call	_ExInitializeSystemLookasideList@24 ; ExInitializeSystemLookasideList(x,x,x,x,x,x)
		push	ebx
		push	100h
		push	4C6F6F50h
		push	edi
		mov	edx, 200h
		mov	ecx, esi
		call	_ExInitializeSystemLookasideList@24 ; ExInitializeSystemLookasideList(x,x,x,x,x,x)
		push	ebx
		push	100h
		push	4C6F6F50h
		xor	edx, edx
		lea	ecx, [esi+1200h]
		push	edi
		inc	edx
		call	_ExInitializeSystemLookasideList@24 ; ExInitializeSystemLookasideList(x,x,x,x,x,x)
		add	edi, 8
		add	esi, 48h
		cmp	edi, 108h
		jb	short loc_7276B6
		pop	edi
		pop	esi
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727713:				; CODE XREF: ExInitPoolLookasidePointers()+1Dj
		mov	eax, offset _ExSystemLookasideListHead
		mov	ds:dword_6BBC4C, ebx
		push	eax
		push	20h
		push	66626353h
		push	2DCh
		mov	edx, 200h
		mov	ds:_ExPoolLookasideListHead, ebx
		mov	ecx, edi
		mov	ds:dword_6BBC44, eax
		mov	ds:_ExSystemLookasideListHead, eax
		call	_ExInitializeSystemLookasideList@24 ; ExInitializeSystemLookasideList(x,x,x,x,x,x)
		jmp	loc_7276A1
_ExInitPoolLookasidePointers@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall ExInitializeSystemLookasideList(x, x, x, x,	x, x)
_ExInitializeSystemLookasideList@24 proc near ;	CODE XREF: ExInitializeProcessor+3Bp
					; ExInitPoolLookasidePointers()+48p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h
arg_C		= dword	ptr  14h

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	esi
		xor	esi, esi
		mov	[ecx], esi
		mov	[ecx+4], esi
		push	2
		pop	eax
		mov	[ecx+8], ax
		mov	ax, [ebp+arg_8]
		mov	[ecx+0Ah], ax
		mov	eax, [ebp+arg_4]
		mov	[ecx+20h], eax
		mov	eax, [ebp+arg_0]
		mov	[ecx+24h], eax
		mov	eax, [ebp+arg_C]
		mov	[ecx+0Ch], esi
		mov	[ecx+10h], esi
		mov	[ecx+14h], esi
		mov	[ecx+18h], esi
		mov	[ecx+38h], esi
		mov	[ecx+3Ch], esi
		mov	dword ptr [ecx+28h], offset _ExAllocatePoolWithTag@12 ;	ExAllocatePoolWithTag(x,x,x)
		mov	dword ptr [ecx+2Ch], offset _ExFreePool@4 ; ExFreePool(x)
		mov	[ecx+1Ch], edx
		add	ecx, 30h
		mov	edx, [eax+4]
		pop	esi
		cmp	[edx], eax
		jnz	short loc_7277B3
		mov	[ecx], eax
		mov	[ecx+4], edx
		mov	[edx], ecx
		mov	[eax+4], ecx
		pop	ebp
		retn	10h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7277B3:				; CODE XREF: ExInitializeSystemLookasideList(x,x,x,x,x,x)+57j
		push	3
		pop	ecx
		int	29h		; DOS 2+ internal - FAST PUTCHAR
_ExInitializeSystemLookasideList@24 endp ; AL =	character to display


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall PfTAccessTracingInitialize(x, x, x)
_PfTAccessTracingInitialize@12 proc near ; CODE	XREF: PfTInitialize+E8p

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, edx
		test	eax, eax
		jnz	short loc_7277D4
		mov	[ecx+0Ch], edi
		mov	dword ptr [ecx+8], 3

loc_7277D4:				; CODE XREF: PfTAccessTracingInitialize(x,x,x)+10j
		mov	[esi+1Ch], edi
		lea	ecx, [esi+8]
		test	eax, eax
		jnz	short loc_7277FA
		call	@ExInitializeRundownProtection@4 ; ExInitializeRundownProtection(x)
		push	edi
		push	edi
		lea	eax, [esi+0Ch]
		mov	[esi+20h], edi
		push	eax
		mov	[esi+24h], edi
		call	_KeInitializeEvent@12 ;	KeInitializeEvent(x,x,x)

loc_7277F4:				; CODE XREF: PfTAccessTracingInitialize(x,x,x)+46j
		pop	edi
		pop	esi
		pop	ebp
		retn	4
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7277FA:				; CODE XREF: PfTAccessTracingInitialize(x,x,x)+24j
		xor	eax, eax
		xchg	eax, [ecx]
		jmp	short loc_7277F4
_PfTAccessTracingInitialize@12 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiIntersectFeaturesWithPolicy proc near	; CODE XREF: KiInitializeXSave+122p

var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072B05D SIZE 00000042 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		mov	eax, ds:___security_cookie
		xor	eax, ebp
		mov	[ebp+var_4], eax
		push	ebx
		push	esi
		push	edi
		mov	ebx, edx
		lea	edi, [ebp+var_20]
		mov	esi, ecx
		mov	[ebp+var_4C], ebx
		push	6
		xor	eax, eax
		pop	ecx
		rep stosd
		mov	eax, [ebx]
		xor	edi, edi
		or	eax, [ebx+4]
		mov	[ebp+var_30], edi
		mov	[ebp+var_24], edi
		mov	[ebp+var_38], edi
		mov	[ebp+var_3C], edi
		mov	[ebp+var_34], edi
		jz	loc_72796F
		lea	eax, [ebp+var_40]
		mov	[ebp+var_28], edi
		push	eax
		lea	eax, [ebp+var_28]
		mov	[ebp+var_40], edi
		push	eax
		push	ds:_KeXSavePolicyId
		push	65h
		push	esi
		call	KeHwPolicyLocateResource
		xor	ecx, ecx
		inc	ecx
		test	eax, eax
		js	loc_72B05D

loc_727869:				; CODE XREF: KiIntersectFeaturesWithPolicy+3863j
					; KiIntersectFeaturesWithPolicy+3880j
		cmp	eax, 0C000026Ch
		jz	loc_72B085
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		lea	edx, [ebp+var_14]
		lea	ecx, [ebp+var_20]
		call	_KiGetProcessorInformation@16 ;	KiGetProcessorInformation(x,x,x,x)
		mov	ecx, large fs:20h
		mov	edx, [ebx]
		mov	edi, [ebx+21Ch]
		mov	esi, [ebx+4]
		mov	eax, [ecx+3D58h]
		mov	[ebp+var_10], eax
		mov	eax, [ecx+3D5Ch]
		mov	[ebp+var_C], eax
		mov	eax, [ebx+218h]
		mov	ecx, eax
		or	ecx, edx
		mov	[ebp+var_58], eax
		mov	[ebp+var_5C], edi
		mov	eax, ecx
		or	edi, esi
		mov	[ebp+var_50], edx
		or	eax, edi
		mov	[ebp+var_54], esi
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_34], edi
		jz	short loc_72794C
		mov	ebx, [ebp+var_24]

loc_7278D2:				; CODE XREF: KiIntersectFeaturesWithPolicy+141j
		cmp	ebx, 40h
		jnb	short loc_727943
		mov	eax, ecx
		and	eax, 1
		or	eax, 0
		jz	short loc_727930
		xor	eax, eax
		xor	edx, edx
		inc	eax
		mov	ecx, ebx
		call	__allshl
		mov	ecx, eax
		mov	[ebp+var_48], edx
		mov	eax, [ebp+var_28]
		mov	[ebp+var_44], ecx
		mov	esi, [eax+10h]
		and	esi, ecx
		mov	ecx, [eax+14h]
		and	ecx, edx
		or	esi, ecx
		jz	short loc_72792D
		mov	ecx, [eax+18h]
		xor	esi, esi
		mov	[ebp+var_30], ecx
		test	ecx, ecx
		jz	short loc_72792D
		mov	edi, [ebp+var_28]
		add	eax, 20h
		mov	[ebp+var_24], eax

loc_72791B:				; CODE XREF: KiIntersectFeaturesWithPolicy+128j
		cmp	[eax], ebx
		jz	short loc_72797E

loc_72791F:				; CODE XREF: KiIntersectFeaturesWithPolicy+1A2j
		inc	esi
		add	eax, 10h
		mov	[ebp+var_24], eax
		cmp	esi, ecx
		jb	short loc_72791B
		mov	edi, [ebp+var_34]

loc_72792D:				; CODE XREF: KiIntersectFeaturesWithPolicy+104j
					; KiIntersectFeaturesWithPolicy+110j
		mov	ecx, [ebp+var_2C]

loc_727930:				; CODE XREF: KiIntersectFeaturesWithPolicy+DFj
		shrd	ecx, edi, 1
		shr	edi, 1
		mov	eax, ecx
		inc	ebx
		mov	[ebp+var_2C], ecx
		or	eax, edi
		mov	[ebp+var_34], edi
		jnz	short loc_7278D2

loc_727943:				; CODE XREF: KiIntersectFeaturesWithPolicy+D5j
		mov	ebx, [ebp+var_4C]
		mov	edx, [ebp+var_50]
		mov	esi, [ebp+var_54]

loc_72794C:				; CODE XREF: KiIntersectFeaturesWithPolicy+CDj
		and	edx, [ebp+var_38]
		and	esi, [ebp+var_3C]
		mov	eax, [ebp+var_5C]
		mov	[ebx], edx
		mov	edx, [ebp+var_58]
		and	edx, [ebp+var_38]
		and	eax, [ebp+var_3C]
		mov	[ebx+4], esi
		mov	[ebx+218h], edx
		mov	[ebx+21Ch], eax

loc_72796F:				; CODE XREF: KiIntersectFeaturesWithPolicy+3Cj
					; KiIntersectFeaturesWithPolicy+389Aj
		mov	ecx, [ebp+var_4]
		pop	edi
		pop	esi
		xor	ecx, ebp
		pop	ebx
		call	@__security_check_cookie@4 ; __security_check_cookie(x)
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72797E:				; CODE XREF: KiIntersectFeaturesWithPolicy+11Dj
		lea	eax, [ebp+var_20]
		mov	edx, esi
		push	eax		; void *
		push	ecx		; int
		mov	ecx, edi
		call	KiIsXSaveFeatureAllowed
		mov	ecx, [ebp+var_30]
		test	al, al
		jz	short loc_72799F
		mov	eax, [ebp+var_44]
		or	[ebp+var_38], eax
		mov	eax, [ebp+var_48]
		or	[ebp+var_3C], eax

loc_72799F:				; CODE XREF: KiIntersectFeaturesWithPolicy+191j
		mov	eax, [ebp+var_24]
		jmp	loc_72791F
KiIntersectFeaturesWithPolicy endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	KiIsXSaveFeatureAllowed(int,void *)
KiIsXSaveFeatureAllowed	proc near	; CODE XREF: KiIntersectFeaturesWithPolicy+187p

arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0072B09F SIZE 00000011 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		add	edx, edx
		push	ebx
		push	esi
		push	edi
		mov	esi, [ecx+edx*8+28h]
		xor	edi, edi
		add	esi, ecx
		mov	ebx, [esi]
		test	ebx, ebx
		jz	short loc_7279F6
		add	esi, 8

loc_7279C3:				; CODE XREF: KiIsXSaveFeatureAllowed+36FDj
		push	0Ch		; size_t
		push	[ebp+arg_4]	; void *
		push	esi		; void *
		call	_memcmp
		add	esp, 0Ch
		test	eax, eax
		jnz	loc_72B09F
		cmp	[esi+30h], eax
		jz	short loc_7279ED
		mov	edx, [ebp+arg_4]
		lea	ecx, [esi+10h]
		call	KiDoesProcessorMatchErrata
		test	al, al
		jnz	short loc_7279F6

loc_7279ED:				; CODE XREF: KiIsXSaveFeatureAllowed+34j
		mov	al, 1

loc_7279EF:				; CODE XREF: KiIsXSaveFeatureAllowed+50j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7279F6:				; CODE XREF: KiIsXSaveFeatureAllowed+16j
					; KiIsXSaveFeatureAllowed+43j ...
		xor	al, al
		jmp	short loc_7279EF
KiIsXSaveFeatureAllowed	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


KiDoesProcessorMatchErrata proc	near	; CODE XREF: KiIsXSaveFeatureAllowed+3Cp

; FUNCTION CHUNK AT 0072B0B0 SIZE 0000005D BYTES

		mov	edi, edi
		push	ebx
		mov	ebx, edx
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [ebx+0Ch]
		mov	eax, esi
		shr	eax, 0Ch
		and	eax, 3
		cmp	al, [edi]
		jnz	short loc_727A33
		mov	edx, esi
		mov	eax, esi
		shr	edx, 0Ah
		shr	eax, 4
		and	edx, 0F0h
		and	eax, 0Fh
		add	edx, eax
		movzx	eax, word ptr [edi+4]
		cmp	edx, eax
		jz	loc_72B0B0

loc_727A33:				; CODE XREF: KiDoesProcessorMatchErrata+16j
					; KiDoesProcessorMatchErrata+36D1j ...
		xor	al, al

loc_727A35:				; CODE XREF: KiDoesProcessorMatchErrata+370Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
KiDoesProcessorMatchErrata endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4
		db 2 dup(0CCh)
; Exported entry 2612. WheaConfigureErrorSource

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

		public WheaConfigureErrorSource
WheaConfigureErrorSource proc near	; CODE XREF: WheaAddErrorSourceDeviceDriver+52p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0072B10D SIZE 00000044 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ebx
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	edi, 10h
		ja	loc_72B147
		push	esi
		imul	esi, edi, 24h
		xor	edx, edx
		push	0
		mov	ecx, offset _WheapConfigTableLock
		add	esi, offset _WheapSourceConfiguration
		call	KeAbPreAcquire
		push	11h
		mov	ebx, eax
		mov	edx, offset _WheapConfigTableLock
		pop	ecx
		xor	eax, eax
		lock cmpxchg [edx], ecx
		test	eax, eax
		jnz	loc_727B5A

loc_727A81:				; CODE XREF: WheaConfigureErrorSource+12Bj
		test	ebx, ebx
		jz	short loc_727A89
		or	byte ptr [ebx+0Eh], 1

loc_727A89:				; CODE XREF: WheaConfigureErrorSource+45j
		push	0
		xor	edx, edx
		mov	ecx, esi
		call	KeAbPreAcquire
		mov	ebx, eax
		lock bts dword ptr [esi], 0
		jb	loc_72B10D

loc_727AA1:				; CODE XREF: WheaConfigureErrorSource+36D9j
		test	ebx, ebx
		jz	short loc_727AA9
		or	byte ptr [ebx+0Eh], 1

loc_727AA9:				; CODE XREF: WheaConfigureErrorSource+65j
		cmp	byte ptr [esi+4], 0
		jnz	short loc_727B12
		mov	ecx, [ebp+arg_4]
		mov	eax, [ecx]
		mov	[esi+8], eax
		mov	eax, [ecx+4]
		test	eax, eax
		jz	short loc_727AC1
		mov	[esi+0Ch], eax

loc_727AC1:				; CODE XREF: WheaConfigureErrorSource+7Ej
		mov	eax, [ecx+8]
		test	eax, eax
		jz	short loc_727ACB
		mov	[esi+10h], eax

loc_727ACB:				; CODE XREF: WheaConfigureErrorSource+88j
		mov	eax, [ecx+0Ch]
		test	eax, eax
		jz	short loc_727AD5
		mov	[esi+14h], eax

loc_727AD5:				; CODE XREF: WheaConfigureErrorSource+92j
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	loc_72B11C
		cmp	edi, 0Ch
		jz	short loc_727B51
		cmp	edi, 0Fh
		jge	short loc_727B51
		cmp	edi, 0Dh
		jz	short loc_727B51

loc_727AEF:				; CODE XREF: WheaConfigureErrorSource+11Aj
					; WheaConfigureErrorSource+36E1j
		mov	eax, [ecx+14h]
		test	eax, eax
		jnz	short loc_727B6E

loc_727AF6:				; CODE XREF: WheaConfigureErrorSource+133j
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		xor	ecx, ecx
		lock or	[eax], ecx
		mov	byte ptr [esi+4], 1
		cmp	ds:_WheapInitializationComplete, cl
		jnz	loc_72B124

loc_727B12:				; CODE XREF: WheaConfigureErrorSource+6Fj
		mov	ebx, 0C0000001h

loc_727B17:				; CODE XREF: WheaConfigureErrorSource+36EFj
		or	ecx, 0FFFFFFFFh
		lock xadd [esi], ecx
		test	cl, 2
		jnz	loc_72B132

loc_727B27:				; CODE XREF: WheaConfigureErrorSource+36F7j
					; WheaConfigureErrorSource+3704j
		mov	ecx, esi
		call	KeAbPostRelease
		push	11h
		xor	edx, edx
		mov	esi, offset _WheapConfigTableLock
		pop	eax
		lock cmpxchg [esi], edx
		cmp	eax, 11h
		jnz	short loc_727B73

loc_727B41:				; CODE XREF: WheaConfigureErrorSource+13Cj
		mov	ecx, esi
		call	KeAbPostRelease
		pop	esi

loc_727B49:				; CODE XREF: WheaConfigureErrorSource+370Ej
		pop	edi
		mov	eax, ebx
		pop	ebx
		pop	ebp
		retn	8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727B51:				; CODE XREF: WheaConfigureErrorSource+A5j
					; WheaConfigureErrorSource+AAj	...
		mov	dword ptr [esi+18h], offset _WheapGenericErrSrcRecover@8 ; WheapGenericErrSrcRecover(x,x)
		jmp	short loc_727AEF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727B5A:				; CODE XREF: WheaConfigureErrorSource+3Dj
		mov	eax, offset _WheapConfigTableLock
		mov	edx, ebx
		push	eax
		mov	ecx, eax
		call	ExfAcquirePushLockSharedEx
		jmp	loc_727A81
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727B6E:				; CODE XREF: WheaConfigureErrorSource+B6j
		mov	[esi+1Ch], eax
		jmp	short loc_727AF6
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727B73:				; CODE XREF: WheaConfigureErrorSource+101j
		mov	ecx, esi
		call	@ExfReleasePushLockShared@4 ; ExfReleasePushLockShared(x)
		jmp	short loc_727B41
WheaConfigureErrorSource endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


Ke386ConfigureCyrixProcessor proc near	; CODE XREF: KeOptimizeProcessorControlState(x,x)p

; FUNCTION CHUNK AT 0072B151 SIZE 0000009E BYTES

		mov	edi, edi
		push	esi
		call	Ke386CyrixId
		mov	esi, eax
		test	esi, esi
		jnz	loc_72B151
		pop	esi
		retn
Ke386ConfigureCyrixProcessor endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

KiUpdateXSaveSizeAndVolatileFeatures proc near ; CODE XREF: KiInitializeXSave+130p

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072B1EF SIZE 0000013E BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	edx, ecx
		mov	eax, 240h
		push	ebx
		push	esi
		push	edi
		test	byte ptr [edx+14h], 2
		mov	edi, [edx]
		mov	esi, [edx+4]
		mov	[edx+10h], eax
		mov	[edx+228h], eax
		mov	[ebp+var_C], edi
		mov	[ebp+var_14], esi
		jnz	loc_72B1EF
		mov	ecx, edi
		mov	ebx, esi
		mov	eax, ecx
		mov	[ebp+var_10], ecx
		or	eax, ebx
		jz	short loc_727C07
		lea	edi, [edx+1Ch]
		xor	esi, esi

loc_727BD2:				; CODE XREF: KiUpdateXSaveSizeAndVolatileFeatures+6Fj
		cmp	esi, 40h
		jnb	short loc_727C01
		mov	eax, ecx
		and	eax, 1
		or	eax, 0
		jz	short loc_727BEE
		mov	eax, [edi]
		add	eax, [edi-4]
		mov	ecx, [ebp+var_10]
		cmp	[edx+10h], eax
		jb	short loc_727C3C

loc_727BEE:				; CODE XREF: KiUpdateXSaveSizeAndVolatileFeatures+4Fj
					; KiUpdateXSaveSizeAndVolatileFeatures+AFj
		shrd	ecx, ebx, 1
		add	edi, 8
		shr	ebx, 1
		mov	eax, ecx
		inc	esi
		mov	[ebp+var_10], ecx
		or	eax, ebx
		jnz	short loc_727BD2

loc_727C01:				; CODE XREF: KiUpdateXSaveSizeAndVolatileFeatures+45j
		mov	esi, [ebp+var_14]
		mov	edi, [ebp+var_C]

loc_727C07:				; CODE XREF: KiUpdateXSaveSizeAndVolatileFeatures+3Bj
		mov	eax, [edx+10h]
		mov	[edx+228h], eax

loc_727C10:				; CODE XREF: KiUpdateXSaveSizeAndVolatileFeatures+371Fj
					; KiUpdateXSaveSizeAndVolatileFeatures+3732j ...
		mov	eax, [edx+218h]
		and	edi, 0FFFFFFEFh
		and	esi, 0BFFFFFFFh
		mov	[edx+8], edi
		pop	edi
		mov	[edx+0Ch], esi
		and	eax, 800h
		and	dword ptr [edx+334h], 0
		pop	esi
		mov	[edx+330h], eax
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727C3C:				; CODE XREF: KiUpdateXSaveSizeAndVolatileFeatures+5Cj
		mov	[edx+10h], eax
		jmp	short loc_727BEE
KiUpdateXSaveSizeAndVolatileFeatures endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiInitializeNXSupport()
_KiInitializeNXSupport@0 proc near	; CODE XREF: KiSystemStartup(x):loc_71A18Ap
		cmp	large byte ptr fs:51h, 0
		jz	KiInitializeNxSupportDiscard
		retn
_KiInitializeNXSupport@0 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __fastcall KiParseLoadOptions(char *)
KiParseLoadOptions proc	near		; CODE XREF: KiInitializeXSave+10Bp

; FUNCTION CHUNK AT 0072B32D SIZE 00000077 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		test	esi, esi
		jz	short loc_727C9F
		push	offset ??_C@_0M@PBCNBANJ@XSAVEPOLICY@OKHAJAOM@ ; "XSAVEPOLICY"
		push	esi		; char *
		call	_strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_72B32D

loc_727C75:				; CODE XREF: KiParseLoadOptions+36DFj
					; KiParseLoadOptions+36F4j
		push	offset ??_C@_0BD@PHOHJOGM@XSAVEREMOVEFEATURE@OKHAJAOM@ ; "XSAVEREMOVEFEATURE"
		push	esi		; char *
		call	_strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_72B34B

loc_727C8A:				; CODE XREF: KiParseLoadOptions+36FDj
					; KiParseLoadOptions+3711j ...
		push	offset ??_C@_0N@IJHAALLK@XSAVEDISABLE@OKHAJAOM@	; "XSAVEDISABLE"
		push	esi		; char *
		call	_strstr
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_72B37C

loc_727C9F:				; CODE XREF: KiParseLoadOptions+Cj
					; KiParseLoadOptions+372Ej ...
		pop	esi
		leave
		retn
KiParseLoadOptions endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

PfpScenCtxServiceThreadSet proc	near	; CODE XREF: PfSetSuperfetchInformation+4F0p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0072B3A4 SIZE 00000014 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		test	edx, edx
		jz	short loc_727D19
		mov	esi, large fs:124h
		push	esi
		call	_PsGetThreadId@4 ; PsGetThreadId(x)
		mov	ebx, eax
		mov	eax, [esi+280h]
		mov	esi, [esi+284h]
		mov	[ebp+var_4], eax

loc_727CCF:				; CODE XREF: PfpScenCtxServiceThreadSet+7Ej
		mov	eax, large fs:124h
		dec	word ptr [eax+13Ch]
		nop
		xor	edx, edx
		mov	ecx, edi
		call	ExAcquirePushLockExclusiveEx
		mov	eax, [ebp+var_4]
		mov	[edi+30h], eax
		or	eax, 0FFFFFFFFh
		mov	[edi+2Ch], ebx
		mov	[edi+34h], esi
		lock xadd [edi], eax
		test	al, 2
		jnz	loc_72B3A4

loc_727D01:				; CODE XREF: PfpScenCtxServiceThreadSet+3704j
					; PfpScenCtxServiceThreadSet+3711j
		mov	ecx, edi
		call	KeAbPostRelease
		mov	ecx, large fs:124h
		call	_KiLeaveCriticalRegionUnsafe@4 ; KiLeaveCriticalRegionUnsafe(x)
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727D19:				; CODE XREF: PfpScenCtxServiceThreadSet+Dj
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		mov	esi, ebx
		jmp	short loc_727CCF
PfpScenCtxServiceThreadSet endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


KiDetectAccessBitErrata	proc near	; CODE XREF: KiInitializeKernel(x,x,x,x,x,x)+14Ap

; FUNCTION CHUNK AT 0072B3B8 SIZE 00000015 BYTES

		cmp	dword ptr [ecx+3CCh], 0
		jnz	short locret_727D66
		mov	al, [ecx+3BEh]
		cmp	al, 2
		jz	loc_72B3B8
		cmp	al, 1
		jnz	short locret_727D66
		cmp	byte ptr [ecx+14h], 6
		jnz	short locret_727D66
		mov	al, [ecx+17h]
		cmp	al, 1Ch
		jz	short loc_727D6D
		cmp	al, 26h
		jz	short loc_727D6D
		cmp	al, 27h
		jz	short loc_727D6D
		cmp	al, 36h
		jz	short loc_727D6D
		cmp	al, 35h
		jz	short loc_727D6D
		cmp	al, 37h
		jz	short loc_727D67
		cmp	al, 4Ah
		jz	short loc_727D67
		cmp	al, 4Dh
		jz	short loc_727D67

locret_727D66:				; CODE XREF: KiDetectAccessBitErrata+7j
					; KiDetectAccessBitErrata+19j ...
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727D67:				; CODE XREF: KiDetectAccessBitErrata+3Aj
					; KiDetectAccessBitErrata+3Ej ...
		cmp	byte ptr [ecx+16h], 7
		ja	short locret_727D66

loc_727D6D:				; CODE XREF: KiDetectAccessBitErrata+26j
					; KiDetectAccessBitErrata+2Aj ...
		mov	ds:_KiAccessBitErrata, 2
		retn
KiDetectAccessBitErrata	endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; __stdcall KiLoadMTRRTarget(x)
_KiLoadMTRRTarget@4 proc near		; DATA XREF: KeRestoreMtrrBroadcast()+30o

arg_0		= dword	ptr  8

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		push	[ebp+arg_0]
		call	KeLoadMTRR
		xor	eax, eax
		pop	ebp
		retn	4
_KiLoadMTRRTarget@4 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 4

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiIntersectFeaturesWithLoader(x, x)
_KiIntersectFeaturesWithLoader@8 proc near ; CODE XREF:	KiInitializeXSave+11Bp
		mov	ecx, [ecx+84h]
		push	ebx
		push	esi
		mov	esi, [edx]
		mov	eax, esi
		mov	ebx, [ecx+0A60h]
		push	edi
		mov	edi, [edx+4]
		or	eax, edi
		jz	short loc_727DD1
		mov	eax, [ecx+0A58h]
		and	esi, eax
		mov	ecx, [ecx+0A5Ch]
		and	edi, ecx
		and	[edx+218h], eax
		and	[edx+21Ch], ecx
		mov	[edx], esi
		mov	[edx+4], edi
		test	bl, 10h
		jz	short loc_727DD5

loc_727DCC:				; CODE XREF: KiIntersectFeaturesWithLoader(x,x)+4Dj
		test	bl, 8
		jz	short loc_727DDB

loc_727DD1:				; CODE XREF: KiIntersectFeaturesWithLoader(x,x)+18j
					; KiIntersectFeaturesWithLoader(x,x)+53j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727DD5:				; CODE XREF: KiIntersectFeaturesWithLoader(x,x)+3Ej
		and	dword ptr [edx+14h], 0FFFFFFFDh
		jmp	short loc_727DCC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_727DDB:				; CODE XREF: KiIntersectFeaturesWithLoader(x,x)+43j
		and	dword ptr [edx+14h], 0FFFFFFFEh
		jmp	short loc_727DD1
_KiIntersectFeaturesWithLoader@8 endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


; __stdcall KiInitializeMachineType()
_KiInitializeMachineType@0 proc	near	; CODE XREF: KiSystemStartup(x)+A6p
		mov	eax, ds:_KeLoaderBlock
		movzx	eax, byte ptr [eax+8Ch]
		mov	ds:_KeI386MachineType, eax
		retn
_KiInitializeMachineType@0 endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


KiIntersectFeaturesWithTest proc near	; CODE XREF: KiInitializeXSave+12Bp

; FUNCTION CHUNK AT 0072B3CD SIZE 00000032 BYTES

		mov	edx, ds:_KeTestRemovedFeatureMask
		mov	eax, edx
		push	esi
		mov	esi, ds:dword_6FDE84
		or	eax, esi
		jnz	loc_72B3CD

loc_727E0B:				; CODE XREF: KiIntersectFeaturesWithTest+35EEj
		cmp	ds:_KeTestDisableXSave,	0
		pop	esi
		jnz	loc_72B3E7
		retn
KiIntersectFeaturesWithTest endp


; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

; Attributes: bp-based frame

; int __stdcall	KiCloneSelector(int,void *)
KiCloneSelector	proc near		; CODE XREF: KiInitializeProcessorState(x,x,x,x,x,x,x,x,x,x)+B6p
					; KiInitializeProcessorState(x,x,x,x,x,x,x,x,x,x)+F2p ...

var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0072A535 SIZE 00000012 BYTES

		mov	edi, edi
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		and	dword ptr [ebp+var_C], 0
		and	dword ptr [ebp+var_C+4], 0
		push	ebx
		push	esi
		push	edi
		sgdt	fword ptr [ebp+var_C+2]
		shr	ecx, 3
		mov	esi, ecx
		mov	ecx, dword ptr [ebp+var_C+4]
		movzx	edi, byte ptr [ecx+esi*8+7]
		lea	eax, [edx+esi*8]
		mov	[ebp+var_4], eax
		movzx	eax, byte ptr [ecx+esi*8+4]
		shl	edi, 8
		or	edi, eax
		movzx	eax, word ptr [ecx+esi*8+2]
		shl	edi, 10h
		or	edi, eax
		mov	dword ptr [ebp+var_C+4], edi
		movzx	eax, word ptr [ecx+esi*8]
		mov	word ptr [ebp+var_C+2],	ax
		mov	edx, eax
		test	dword ptr [ecx+esi*8+4], (offset loc_7FFFFF+1)
		jnz	loc_72A535

loc_727E73:				; CODE XREF: KiCloneSelector+2728j
		mov	ecx, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		movzx	edx, ax
		inc	edx
		push	edx		; size_t
		push	edi		; void *
		push	ebx		; void *
		lea	eax, [edx-1]
		mov	[ecx+4], ebx
		mov	[ecx+2], ax
		call	_memcpy
		mov	ecx, [ebp+var_4]
		add	esp, 0Ch
		mov	eax, ebx
		shr	eax, 10h
		mov	[ecx+2], bx
		pop	edi
		shr	ebx, 18h
		pop	esi
		mov	[ecx+7], bl
		mov	[ecx+4], al
		pop	ebx
		leave
		retn	8
KiCloneSelector	endp

; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_00CNPNBAHC@@OKHAJAOM@:		; DATA XREF: IopLiveDumpCallRemovePagesCallbacks(x)+37o
					; IopLiveDumpCallRemovePagesCallbacks(x)+D7o ...
		add	ah, cl
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; char ??_C[]
??_C@_0M@PBCNBANJ@XSAVEPOLICY@OKHAJAOM@	db 'XSAVEPOLICY',0
					; DATA XREF: KiParseLoadOptions+Eo
; char ??_C[]
??_C@_0N@IJHAALLK@XSAVEDISABLE@OKHAJAOM@ db 'XSAVEDISABLE',0
					; DATA XREF: KiParseLoadOptions:loc_727C8Ao
		align 2
; char ??_C[]
??_C@_0BD@PHOHJOGM@XSAVEREMOVEFEATURE@OKHAJAOM@	db 'XSAVEREMOVEFEATURE',0
					; DATA XREF: KiParseLoadOptions:loc_727C75o
		align 2

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


??_C@_1GG@KMAKALDL@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy?$AA?2?$AAM?$AAa?$AAc?$AAh?$AAi@OKHAJAOM@ proc	near
					; DATA XREF: PopGetBitlockerKeyLocation+20o
		pop	esp
		add	[edx+0], dl
		add	gs:[edi+0], ah
		imul	eax, [eax], 740073h
		jb	short $+2
		jns	short $+2
		pop	esp
		add	[ebp+0], cl
		popa
		add	[ebx+0], ah
		push	6E006900h
		add	[ebp+0], ah
		pop	esp
		add	[ebx+0], dl
		jns	short $+2
		jnb	short $+2
		jz	short $+2
		add	gs:[ebp+0], ch
		pop	esp
		add	[ebx+0], al
		jnz	short $+2
		jb	short $+2
		jb	short $+2
		add	gs:[esi+0], ch
		jz	short $+2
		inc	ebx
		add	[edi+0], ch
		outsb
		add	[eax+eax+72h], dh
		add	[edi+0], ch
		insb
		add	[ebx+0], dl
		add	gs:[eax+eax+5Ch], dh
		add	[ebx+0], al
		outsd
		add	[esi+0], ch
		jz	short $+2
		jb	short $+2
		outsd
		add	[eax+eax+0], ch

loc_727F43:				; DATA XREF: PopGetBitlockerKeyLocation+81o
		add	[ebx+0], dl
??_C@_1GG@KMAKALDL@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy?$AA?2?$AAM?$AAa?$AAc?$AAh?$AAi@OKHAJAOM@ endp

		jns	short $+2
		jnb	short $+2
		jz	short $+2
		add	gs:[ebp+0], ch
		push	ebx
		add	[eax+eax+61h], dh
		add	[edx+0], dh
		jz	short $+2
		dec	edi
		add	[eax+0], dh
		jz	short $+2
		imul	eax, [eax], 6E006Fh
		jnb	short $+2
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 2 dup(0)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; wchar_t ??_C
??_C@_1BC@KEMNALNF@?$AAF?$AAV?$AAE?$AAB?$AAO?$AAO?$AAT?$AA?$DN@OKHAJAOM@:
					; DATA XREF: PopGetBitlockerKeyLocation+107o
		inc	esi
		add	[esi+0], dl
		inc	ebp
		add	[edx+0], al
		dec	edi
		add	[edi+0], cl
		push	esp
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
		dd 3Dh
??_C@_1DM@KHNCPJJB@?$AAM?$AAe?$AAm?$AAo?$AAr?$AAy?$AAO?$AAv?$AAe?$AAr?$AAw?$AAr?$AAi?$AAt?$AAe@OKHAJAOM@:
					; DATA XREF: PopSetMemoryOverwriteRequestAction(x,x)+4Eo
		unicode	0, <MemoryOverwriteRequestControl>,0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_0DK@KBBGNMAD@Checksum?5for?5resume?5context?5pag@OKHAJAOM@:
					; DATA XREF: PopWriteHeaderPages+D011o
		inc	ebx
		push	736B6365h
		jnz	short near ptr loc_72802C+1
		and	[esi+6Fh], ah
		jb	short loc_727FE5
		jb	short loc_72802C
		jnb	short loc_72803E
		insd
		and	gs:[ebx+6Fh], ah
		outsb
		jz	short near ptr loc_728035+1
		js	short near ptr loc_728045+2
		and	[eax+61h], dh
		and	gs:[bp+di+68h],	ah
		popa
		outsb
		db	65h
		and	fs:[bp+72h], ah
		outsd
		insd

loc_727FE5:				; CODE XREF: PAGELK:00727FC3j
		and	ds:7420786Ch, ah
		outsd
		and	ds:0A786Ch, ah

??_C@_0DD@LILHCBDB@Checksum?5for?5context?5page?5chang@OKHAJAOM@:
					; DATA XREF: PopWriteHeaderPages+D030o
		inc	ebx
		push	736B6365h
		jnz	short loc_728067
		and	[esi+6Fh], ah
		jb	short loc_72801F
		arpl	[edi+6Eh], bp
		jz	short loc_728069
		js	short near ptr loc_728078+2
		and	[eax+61h], dh
		and	gs:[bp+di+68h],	ah
		popa
		outsb
		db	65h
		and	fs:[bp+72h], ah
		outsd
		insd
		and	ds:7420786Ch, ah
		outsd

loc_72801F:				; CODE XREF: PAGELK:00727FFDj
		and	ds:0A786Ch, ah
		int	3		; Trap to Debugger

??_C@_0DO@NIFPPBDC@Checksum?5for?5partial?5context?5pa@OKHAJAOM@:
					; DATA XREF: PopWriteHeaderPages+D04Co
		inc	ebx
		push	736B6365h

loc_72802C:				; CODE XREF: PAGELK:00727FC5j
					; PAGELK:00727FBEj
		jnz	short near ptr byte_72809B
		and	[esi+6Fh], ah
		jb	short near ptr loc_728052+1
		jo	short near ptr loc_728095+1

loc_728035:				; CODE XREF: PAGELK:00727FCFj
		jb	short near ptr ??_C@_1BE@BNJCNEJN@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@OKHAJAOM@+0Fh
		imul	esp, [ecx+6Ch],	6E6F6320h

loc_72803E:				; CODE XREF: PAGELK:00727FC7j
		jz	short near ptr ??_C@_1BE@BNJCNEJN@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@OKHAJAOM@+9
		js	short loc_7280B6
		and	[eax+61h], dh

loc_728045:				; CODE XREF: PAGELK:00727FD1j
		and	gs:[di], ah
		insb
		js	short near ptr loc_72806A+2
		outs	dx, dword ptr fs:[esi]
		db	65h
		jnb	short loc_7280BF
		daa

loc_728052:				; CODE XREF: PAGELK:00728031j
		jz	short near ptr loc_728073+1
		insd
		popa
		jz	short loc_7280BB
		push	6C756620h
		insb
		and	ds:0A786Ch, ah

??_C@_0DG@CFOFHJKB@MemImage?9?$DOWakeCheck?5?$CFlx?5doesn?8t@OKHAJAOM@:
					; DATA XREF: PopWriteImageHeader(x,x,x,x,x)+1Do
		dec	ebp
		db	65h
		insd

loc_728067:				; CODE XREF: PAGELK:00727FF8j
		dec	ecx
		insd

loc_728069:				; CODE XREF: PAGELK:00728002j
		popa

loc_72806A:				; CODE XREF: PAGELK:0072804Aj
		db	67h, 65h
		sub	eax, 6B61573Eh
		db	65h
		inc	ebx

loc_728073:				; CODE XREF: PAGELK:loc_728052j
		push	206B6365h

loc_728078:				; CODE XREF: PAGELK:00728004j
		and	eax, 6420786Ch
		outsd
		db	65h
		jnb	short near ptr ??_C@_1BG@FGILHOGJ@?$AAF?$AAw?$AAP?$AAO?$AAS?$AAT?$AAT?$AAi?$AAm?$AAe@OKHAJAOM@+0Bh
		daa
		jz	short near ptr ??_C@_1BE@BNJCNEJN@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@OKHAJAOM@+8
		insd
		popa
		imul	esp, [ebp+20h],	50h
		outsd
		push	edi
		popa
		imul	esp, [ebp+43h],	68h
		arpl	gs:[ebx+20h], bp

loc_728095:				; CODE XREF: PAGELK:00728033j
		and	eax, 0A786Ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
??_C@_11LOCGONAA@@OKHAJAOM@ db 0	; DATA XREF: EtwTraceSystemTimeChange+3Ao
					; PopDiagTraceDriverVeto(x,x):loc_72FB2Do
byte_72809B	db 0			; CODE XREF: PAGELK:loc_72802Cj
??_C@_1BE@BNJCNEJN@?$AA?2?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAr?$AAy@OKHAJAOM@:
					; CODE XREF: PAGELK:00728082j
					; PAGELK:loc_72803Ej ...
		unicode	0, <\Registry>,0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_0CK@OKBBFLMB@po?3?5POP_WAKE_DEVICE_AFTER_SLEEP@OKHAJAOM@:
					; DATA XREF: PoBroadcastSystemState+B29Fo
		jo	short near ptr loc_72811F+2
		cmp	ah, [eax]
		push	eax
		dec	edi

loc_7280B6:				; CODE XREF: PAGELK:00728040j
		push	eax
		pop	edi
		push	edi
		inc	ecx
		dec	ebx

loc_7280BB:				; CODE XREF: PAGELK:00728056j
		inc	ebp
		pop	edi
		inc	esp
		inc	ebp

loc_7280BF:				; CODE XREF: PAGELK:0072804Ej
		push	esi
		dec	ecx
		inc	ebx
		inc	ebp
		pop	edi
		inc	ecx
		inc	esi
		push	esp
		inc	ebp
		push	edx
		pop	edi
		push	ebx
		dec	esp
		inc	ebp
		inc	ebp
		push	eax
		and	[ebp+6Eh], ah
		popa
		bound	ebp, [ebp+64h]
		or	al, cs:[eax]

??_C@_19PCNJIDGC@?$AA0?$AAx?$AA?$CF?$AAx@OKHAJAOM@: ; DATA XREF: PAGELK:0071F957o
		xor	[eax], al
		js	short $+2
		and	eax, 7800h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
??_C@_1BG@FGILHOGJ@?$AAF?$AAw?$AAP?$AAO?$AAS?$AAT?$AAT?$AAi?$AAm?$AAe@OKHAJAOM@:
					; CODE XREF: PAGELK:0072807Ej
					; DATA XREF: BapdRecordFirmwareBootStats:loc_724225o
		unicode	0, <FwPOSTTime>,0
??_C@_1BG@CBMDEONI@?$AAE?$AAv?$AAe?$AAn?$AAt?$AAC?$AAo?$AAu?$AAn?$AAt@OKHAJAOM@	db 'E',0
					; DATA XREF: BapdRegisterSiData(x,x,x)+9Bo
aVentcount:
		unicode	0, <ventCount>,0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1BE@PMCPENL@?$AAB?$AAo?$AAo?$AAt?$AAC?$AAo?$AAu?$AAn?$AAt@OKHAJAOM@:
					; DATA XREF: BapdRegisterSiData(x,x,x)+C1o
		inc	edx
		add	[edi+0], ch
		outsd
		add	[eax+eax+43h], dh
		add	[edi+0], ch
		jnz	short $+2
		outsb

loc_72811F:				; CODE XREF: PAGELK:??_C@_0CK@OKBBFLMB@po?3?5POP_WAKE_DEVICE_AFTER_SLEEP@OKHAJAOM@j
		add	[eax+eax+0], dh
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1BC@GMFALMFC@?$AAW?$AAB?$AAC?$AAL?$AAD?$AAr?$AAt?$AAm@OKHAJAOM@:
					; DATA XREF: BapdRegisterSiData(x,x,x)+42o
		push	edi
		add	[edx+0], al
		inc	ebx
		add	[eax+eax+44h], cl
		add	[edx+0], dh
		jz	short $+2
		insd
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
		db 2 dup(0)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_19HEALFAGP@?$AAW?$AAB?$AAC?$AAL@OKHAJAOM@: ; DATA	XREF: BapdRegisterSiData(x,x,x)+4Co
		push	edi
		add	[edx+0], al
		inc	ebx
		add	[eax+eax+0], cl
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1GG@IBGAEKLO@?$AA?2?$AAR?$AAE?$AAG?$AAI?$AAS?$AAT?$AAR?$AAY?$AA?2?$AAM?$AAA?$AAC?$AAH?$AAI@OKHAJAOM@:
					; DATA XREF: BapdGetISRegistryKey(x)+10o
					; BapdpWriteEventDataToRegistry(x,x,x)+10o
		pop	esp
		add	[edx+0], dl
		inc	ebp
		add	[edi+0], al
		dec	ecx
		add	[ebx+0], dl
		push	esp
		add	[edx+0], dl
		pop	ecx
		add	[eax+eax+4Dh], bl
		add	[ecx+0], al
		inc	ebx
		add	[eax+0], cl
		dec	ecx
		add	[esi+0], cl
		inc	ebp
		add	[eax+eax+53h], bl
		add	[ecx+0], bl
		push	ebx
		add	[eax+eax+45h], dl
		add	[ebp+0], cl
		pop	esp
		add	[ebx+0], al
		jnz	short $+2
		jb	short $+2
		jb	short $+2
		add	gs:[esi+0], ch
		jz	short $+2
		inc	ebx
		add	[edi+0], ch
		outsb
		add	[eax+eax+72h], dh
		add	[edi+0], ch
		insb
		add	[ebx+0], dl
		add	gs:[eax+eax+5Ch], dh
		add	[ebx+0], al
		outsd
		add	[esi+0], ch
		jz	short $+2
		jb	short $+2
		outsd
		add	[eax+eax+0], ch
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1CE@KCLMNKNL@?$AAI?$AAn?$AAt?$AAe?$AAg?$AAr?$AAi?$AAt?$AAy?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc@OKHAJAOM@:
					; DATA XREF: BapdGetISRegistryKey(x)+5Bo
		dec	ecx
		add	[esi+0], ch
		jz	short $+2
		add	gs:[edi+0], ah
		jb	short $+2
		imul	eax, [eax], 790074h
		push	ebx
		add	[ebp+0], ah
		jb	short $+2
		jbe	short $+2
		imul	eax, [eax], 650063h
		jnb	short $+2
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 2 dup(0)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1CC@KBCDAIDG@?$AAI?$AAn?$AAi?$AAt?$AAi?$AAa?$AAl?$AAC?$AAo?$AAu?$AAn?$AAt?$AAe?$AAr?$AAI@OKHAJAOM@:
					; DATA XREF: BapdRegisterSiData(x,x,x)+1E6o
		dec	ecx
		add	[esi+0], ch
		imul	eax, [eax], 690074h
		popa
		add	[eax+eax+43h], ch
		add	[edi+0], ch
		jnz	short $+2
		outsb
		add	[eax+eax+65h], dh
		add	[edx+0], dh
		dec	ecx
		add	[eax+eax+0], ah

loc_7281EB:				; DATA XREF: BapdRegisterSiData(x,x,x)+19Co
		add	[ecx+0], cl
		outsb
		add	[ecx+0], ch
		jz	short $+2
		imul	eax, [eax], 6C0061h
		inc	ebp
		add	[esi+0], dh
		add	gs:[esi+0], ch
		jz	short $+2
		inc	ebx
		add	[edi+0], ch
		jnz	short $+2
		outsb
		add	[eax+eax+0], dh

loc_72820F:				; DATA XREF: BapdRegisterSiData(x,x,x)+1C1o
		add	[ecx+0], cl
		outsb
		add	[ecx+0], ch
		jz	short $+2
		imul	eax, [eax], 6C0061h
		inc	edx
		add	[edi+0], ch
		outsd
		add	[eax+eax+43h], dh
		add	[edi+0], ch
		jnz	short $+2
		outsb
		add	[eax+eax+0], dh

loc_728231:				; DATA XREF: BapdRegisterSiData(x,x,x)+14Co
		add	[eax+eax+50h], dl
		add	[ebp+0], cl
		inc	ecx
		add	[ebx+0], ah
		jz	short $+2
		imul	eax, [eax], 650076h
		dec	esp
		add	[edi+0], ch
		add	[bp+0],	al
		outsd
		add	[edx+0], dh
		insd
		add	[ecx+0], ah
		jz	short $+2
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		dw 0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1BO@KBGBBKMI@?$AAT?$AAP?$AAM?$AAD?$AAi?$AAg?$AAe?$AAs?$AAt?$AAA?$AAl?$AAg?$AAI?$AAD@OKHAJAOM@:
					; DATA XREF: BapdRegisterSiData(x,x,x)+172o
		push	esp
		add	[eax+0], dl
		dec	ebp
		add	[eax+eax+69h], al
		add	[edi+0], ah
		add	gs:[ebx+0], dh
		jz	short $+2
		inc	ecx
		add	[eax+eax+67h], ch
		add	[ecx+0], cl
		inc	esp
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
		db 2 dup(0)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

??_C@_1BE@PLFCIJJC@?$AAC?$AAo?$AAu?$AAn?$AAt?$AAe?$AAr?$AAI?$AAd@OKHAJAOM@:
					; DATA XREF: BapdRegisterSiData(x,x,x)+E7o
		inc	ebx
		add	[edi+0], ch
		jnz	short $+2
		outsb
		add	[eax+eax+65h], dh
		add	[edx+0], dh
		dec	ecx
		add	[eax+eax+0], ah

loc_728289:				; DATA XREF: BapdRegisterSiData(x,x,x)+126o
		add	[eax+eax+50h], dl
		add	[ebp+0], cl
		inc	ecx
		add	[ebx+0], ah
		jz	short $+2
		imul	eax, [eax], 650076h
		push	eax
		add	[ebx+0], al
		push	edx
		add	[edx+0], al
		popa
		add	[esi+0], ch
		imul	eax, [eax], 73h
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 0
		db 2 dup(0)

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


??_C@_1CM@JGIJKPEK@?$AAS?$AAe?$AAs?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAM?$AAa?$AAn?$AAa?$AAg?$AAe?$AAr@OKHAJAOM@ proc near
					; DATA XREF: BapdpWriteEventDataToRegistry(x,x,x)+5Bo
		push	ebx
		add	[ebp+0], ah
		jnb	short $+2
		jnb	short $+2
		imul	eax, [eax], 6E006Fh
		and	[eax], al
		dec	ebp
		add	[ecx+0], ah
		outsb
??_C@_1CM@JGIJKPEK@?$AAS?$AAe?$AAs?$AAs?$AAi?$AAo?$AAn?$AA?5?$AAM?$AAa?$AAn?$AAa?$AAg?$AAe?$AAr@OKHAJAOM@ endp

		add	[ecx+0], ah
		add	[di+0],	ah
		jb	short $+2
		pop	esp
		add	[eax+0], dl
		outsd
		add	[edi+0], dh
		add	gs:[edx+0], dh
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 2 dup(0)
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

; char ??_C
??_C@_0P@PKJHNMNM@?6STOP?3?5?$CFlx?5?$CFs?6@OKHAJAOM@:
					; DATA XREF: ExpSystemErrorHandler(x,x,x,x,x)+3CDo
		or	dl, [ebx+54h]
		dec	edi
		push	eax
		cmp	ah, [eax]
		and	eax, 2520786Ch
		jnb	short loc_7282F2
		add	ah, cl

; char ??_C
??_C@_0BA@CEBBANEO@?6HardError?5?$CFlx?6@OKHAJAOM@:
					; DATA XREF: ExpSystemErrorHandler(x,x,x,x,x)+41Do
		or	cl, [eax+61h]
		jb	short near ptr ??_C@_0DM@CMMHDKIJ@Exception?5Processing?5Message?5?$CFl@OKHAJAOM@+33h
		inc	ebp
		jb	short near ptr loc_728361+3

loc_7282F2:				; CODE XREF: PAGELK:007282E6j
		outsd
		jb	short near ptr loc_728313+2
		and	eax, 0A786Ch

??_C@_03KHOJPICI@?5?$CFx@OKHAJAOM@:	; DATA XREF: ExpSystemErrorHandler(x,x,x,x,x):loc_730692o
					; ExpSystemErrorHandler(x,x,x,x,x):loc_7306ABo
		and	ds:0A0078h, ah

??_C@_03EEBNCBOD@?5?$CFs@OKHAJAOM@:	; DATA XREF: ExpSystemErrorHandler(x,x,x,x,x)+F3o
					; ExpSystemErrorHandler(x,x,x,x,x):loc_730685o
		and	ds:3F0073h, ah
		aas
		add	[edi], bh
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
		db 3 dup(0)

; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B	R O U T	I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ


??_C@_0BD@EFJJCAGA@Unknown?5Hard?5Error@OKHAJAOM@ proc near
					; DATA XREF: ExpSystemErrorHandler(x,x,x,x,x)+1A8o
					; ExpSystemErrorHandler(x,x,x,x,x)+3A3o ...
		push	ebp
		outsb
??_C@_0BD@EFJJCAGA@Unknown?5Hard?5Error@OKHAJAOM@ endp

		imul	ebp, [esi+6Fh],	77h
		outsb

loc_728313:				; CODE XREF: PAGELK:007282F3j
		and	[eax+61h], cl
		jb	short near ptr loc_72837A+2
		and	[ebp+72h], al
		jb	short near ptr loc_728389+3
		jb	short $+2
		int	3		; Trap to Debugger
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; char ??_C[]
??_C@_0DM@CMMHDKIJ@Exception?5Processing?5Message?5?$CFl@OKHAJAOM@ db 'Exception Processing Message %lx Parameters %Ix %Ix %Ix %Ix',0
					; DATA XREF: ExpSystemErrorHandler(x,x,x,x,x)+54Bo
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR RtlCompressWorkSpaceSizeLZNT1

loc_72835C:				; CODE XREF: RtlCompressWorkSpaceSizeLZNT1+Aj
		mov	eax, 100h

loc_728361:				; CODE XREF: PAGELK:007282F0j
		cmp	[ebp+arg_0], ax
		jnz	short loc_728375
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 10h
		jmp	loc_71A55B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728375:				; CODE XREF: RtlCompressWorkSpaceSizeLZNT1+DE23j
		mov	eax, 0C00000BBh

loc_72837A:				; CODE XREF: PAGELK:00728316j
		jmp	loc_71A566
; END OF FUNCTION CHUNK	FOR RtlCompressWorkSpaceSizeLZNT1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72837F:				; CODE XREF: PAGELK:0071A6B1j
		mov	eax, 0C000009Ah
		jmp	loc_71A710
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728389:				; CODE XREF: PAGELK:0071A6DBj
					; PAGELK:0072831Bj
		mov	al, byte ptr ds:_KiDefaultHeteroCpuPolicy
		mov	[edi+61h], al
		jmp	loc_71A6E1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728396:				; DATA XREF: .text:006A0CFCo
		mov	eax, [ebp-14h]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-20h], eax
		xor	eax, eax
		inc	eax
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7283A4:				; DATA XREF: .text:006A0D00o
		mov	esp, [ebp-18h]
		cmp	byte ptr [ebp+1Bh], 0
		jz	short loc_7283BF
		push	2
		pop	edx
		mov	esi, [ebp-1Ch]
		mov	ecx, [esi+28h]
		call	_MmDeleteKernelStack@8 ; MmDeleteKernelStack(x,x)
		and	dword ptr [esi+20h], 0

loc_7283BF:				; CODE XREF: PAGELK:007283ABj
		mov	dword ptr [ebp-4], 0FFFFFFFEh
		mov	eax, [ebp-20h]
		jmp	loc_71A710
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR EmClientQueryRuleState

loc_7283CE:				; CODE XREF: EmClientQueryRuleState+2Aj
		mov	esi, 0C0000006h
		jmp	loc_71A7CF
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7283D8:				; CODE XREF: EmClientQueryRuleState+Cj
					; EmClientQueryRuleState+17j
		mov	esi, 0C000000Dh
		jmp	loc_71A7CF
; END OF FUNCTION CHUNK	FOR EmClientQueryRuleState
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR EmClientRuleEvaluate

loc_7283E2:				; CODE XREF: EmClientRuleEvaluate+Bj
					; EmClientRuleEvaluate+15j ...
		mov	esi, 0C000000Dh
		jmp	loc_71A880
; END OF FUNCTION CHUNK	FOR EmClientRuleEvaluate
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR EmpReleasePagingReference

loc_7283EC:				; CODE XREF: EmpReleasePagingReference+36j
		push	0
		push	0
		push	eax
		call	_KeSetEvent@12	; KeSetEvent(x,x,x)
		jmp	loc_71A938
; END OF FUNCTION CHUNK	FOR EmpReleasePagingReference
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR RtlCompressBufferLZNT1

loc_7283FB:				; CODE XREF: RtlCompressBufferLZNT1+2Aj
		mov	eax, 100h
		cmp	word ptr [ebp+arg_0], ax
		jnz	short loc_728410
		mov	eax, offset _LZNT1FindMatchMaximum@8 ; LZNT1FindMatchMaximum(x,x)
		jmp	loc_71A98B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728410:				; CODE XREF: RtlCompressBufferLZNT1+DAAEj
		mov	eax, 0C00000BBh
		jmp	loc_71A9EB
; END OF FUNCTION CHUNK	FOR RtlCompressBufferLZNT1
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR LZNT1CompressChunk

loc_72841A:				; CODE XREF: LZNT1CompressChunk+40j
		mov	[ebp+var_1C], edi
		jmp	loc_71AA46
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728422:				; CODE XREF: LZNT1CompressChunk+368j
		mov	[eax], cl
		shr	ecx, 8
		mov	[eax+1], cl
		jmp	loc_71AB29
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72842F:				; CODE XREF: LZNT1CompressChunk+33Cj
		mov	eax, 0C0000023h
		jmp	loc_71AB2B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728439:				; CODE XREF: LZNT1CompressChunk+F8j
		dec	edi
		jmp	loc_71AB00
; END OF FUNCTION CHUNK	FOR LZNT1CompressChunk
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PfpScenCtxScenarioSet

loc_72843F:				; CODE XREF: PfpScenCtxScenarioSet+7Cj
		push	[ebp+var_C]
		call	_ObDereferenceObjectDeferDelete@4 ; ObDereferenceObjectDeferDelete(x)
		jmp	loc_71AFE8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72844C:				; CODE XREF: PfpScenCtxScenarioSet+86j
		push	0
		push	[ebp+var_8]
		call	_ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)
		jmp	loc_71AFF2
; END OF FUNCTION CHUNK	FOR PfpScenCtxScenarioSet
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR MmPerformMemoryListCommand

loc_72845B:				; CODE XREF: MmPerformMemoryListCommand+10j
		sub	ecx, 1
		jz	short loc_72849B
		sub	ecx, 1
		jz	short loc_72848A
		sub	ecx, 1
		jz	short loc_72847B
		sub	ecx, 1
		jz	short loc_728476
		mov	eax, 0C00000BBh
		pop	ecx
		retn
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728476:				; CODE XREF: MmPerformMemoryListCommand+D3E1j
		xor	edx, edx
		inc	edx
		jmp	short loc_72847E
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72847B:				; CODE XREF: MmPerformMemoryListCommand+D3DCj
		push	8
		pop	edx

loc_72847E:				; CODE XREF: MmPerformMemoryListCommand+D3EDj
		mov	ecx, eax
		call	MiPurgePartitionStandby
		jmp	loc_71B0AC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72848A:				; CODE XREF: MmPerformMemoryListCommand+D3D7j
		push	ecx
		push	8
		xor	dl, dl
		mov	ecx, eax
		call	MiFlushAllPages
		jmp	loc_71B0AC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72849B:				; CODE XREF: MmPerformMemoryListCommand+D3D2j
		mov	ecx, eax
		call	_MiEmptyAllWorkingSets@4 ; MiEmptyAllWorkingSets(x)
		jmp	loc_71B0AC
; END OF FUNCTION CHUNK	FOR MmPerformMemoryListCommand
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PfSnBeginBootPhase

loc_7284A7:				; CODE XREF: PfSnBeginBootPhase+Fj
		mov	esi, 0C000000Dh
		jmp	loc_71B0EE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7284B1:				; CODE XREF: PfSnBeginBootPhase+45j
		xor	edx, edx
		push	8
		inc	edx
		pop	ecx
		call	PfSnUpdatePrefetcherFlags
		test	al, 4
		jz	loc_71B0EE
		jmp	loc_71B134
; END OF FUNCTION CHUNK	FOR PfSnBeginBootPhase
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR KiCalibrateTimeAdjustment

loc_7284C9:				; CODE XREF: KiCalibrateTimeAdjustment+266j
		mov	ebx, 0FFDF000Ch
		lea	esi, [ebx-4]

loc_7284D1:				; CODE XREF: KiCalibrateTimeAdjustment+D2A3j
		lea	ecx, [ebp+var_54]
		call	KeYieldProcessorEx
		mov	edi, [ebx]
		mov	eax, [esi]
		mov	[ebp+var_1C], eax
		mov	eax, 0FFDF0010h
		cmp	edi, [eax]
		jnz	short loc_7284D1
		mov	ebx, [ebp+var_20]
		mov	esi, [ebp+var_24]
		jmp	loc_71B4B0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7284F4:				; CODE XREF: KiCalibrateTimeAdjustment+A8j
		xor	ebx, ebx
		push	ebx
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		push	offset byte_401802
		mov	[ebp+var_34], edx
		lea	ecx, [ebp+var_14]
		mov	[ebp+var_38], eax
		xor	edx, edx
		push	1232h
		lea	eax, [ebp+var_38]
		mov	[ebp+var_10], ebx
		push	80008000h
		inc	edx
		mov	[ebp+var_14], eax
		mov	[ebp+var_C], 8
		mov	[ebp+var_8], ebx
		call	_EtwTraceKernelEvent@20	; EtwTraceKernelEvent(x,x,x,x,x)
		jmp	loc_71B2F2
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728535:				; CODE XREF: KiCalibrateTimeAdjustment+32Aj
		call	_MiPteHasShadow@4 ; MiPteHasShadow(x)
		test	eax, eax
		jz	short loc_728550
		xor	edi, edi
		inc	edi
		cmp	byte ptr ds:word_6D07B8+1, 0
		jnz	loc_71B574
		jmp	short loc_72856C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728550:				; CODE XREF: KiCalibrateTimeAdjustment+D2F8j
		mov	eax, large fs:124h
		mov	eax, [eax+80h]
		test	dword ptr [eax+3A8h], 1000h
		jz	loc_71B574

loc_72856C:				; CODE XREF: KiCalibrateTimeAdjustment+D30Aj
		mov	eax, ecx
		and	eax, 1
		or	eax, 0
		jz	loc_71B574
		or	edx, 80000000h
		jmp	loc_71B574
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728585:				; CODE XREF: KiCalibrateTimeAdjustment+33Aj
		push	edx
		push	ecx
		mov	ecx, esi
		call	_MiWritePteShadow@12 ; MiWritePteShadow(x,x,x)
		jmp	loc_71B545
; END OF FUNCTION CHUNK	FOR KiCalibrateTimeAdjustment
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopWriteHeaderPages

loc_728593:				; CODE XREF: PopWriteHeaderPages+12Fj
		push	eax
		push	ecx
		push	offset ??_C@_0DK@KBBGNMAD@Checksum?5for?5resume?5context?5pag@OKHAJAOM@
		call	_DbgPrint
		add	esp, 0Ch
		push	1CE2h
		push	[ebp+var_8]
		push	dword ptr [ebx+2D4h]
		jmp	short loc_7285CA
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7285B2:				; CODE XREF: PopWriteHeaderPages+18Dj
		push	edi
		push	eax
		push	offset ??_C@_0DD@LILHCBDB@Checksum?5for?5context?5page?5chang@OKHAJAOM@
		call	_DbgPrint
		add	esp, 0Ch
		push	1CF8h
		push	edi
		push	dword ptr [ebx+44h]

loc_7285CA:				; CODE XREF: PopWriteHeaderPages+D02Cj
		push	3
		jmp	short loc_7285E8
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7285CE:				; CODE XREF: PopWriteHeaderPages+1A7j
		push	esi
		push	eax
		push	offset ??_C@_0DO@NIFPPBDC@Checksum?5for?5partial?5context?5pa@OKHAJAOM@
		call	_DbgPrint
		add	esp, 0Ch
		push	1CFFh
		push	esi
		push	dword ptr [ebx+44h]
		push	4

loc_7285E8:				; CODE XREF: PopWriteHeaderPages+D048j
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)

loc_7285F2:				; CODE XREF: PopWriteHeaderPages+33j
					; PopWriteHeaderPages+4Aj
		mov	eax, 0C0000017h
		jmp	loc_71B733
; END OF FUNCTION CHUNK	FOR PopWriteHeaderPages
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopWriteHiberPages

loc_7285FC:				; CODE XREF: PopWriteHiberPages+9Cj
					; PopWriteHiberPages+A8j
		push	16h
		pop	ecx
		call	PopCheckpointSystemSleep
		mov	eax, [esi+7Ch]
		cmp	eax, 4
		jz	short loc_728611
		cmp	eax, 5
		jnz	short loc_72861E

loc_728611:				; CODE XREF: PopWriteHiberPages+CED2j
		mov	ecx, esi
		call	_PopGetRemainingHibernateRangeDataSize@4 ; PopGetRemainingHibernateRangeDataSize(x)
		mov	[ebp+var_AC], eax

loc_72861E:				; CODE XREF: PopWriteHiberPages+CED7j
		xor	edi, edi
		push	edi
		call	_MmGetNumberOfPhysicalPages@4 ;	MmGetNumberOfPhysicalPages(x)
		push	4
		pop	edx
		lea	ecx, [ebp+var_D4]
		mov	[ebp+var_D4], eax
		call	IoAddTriageDumpDataBlock
		mov	ecx, esi
		call	_PopRecordHibernateDiagnosticInfo@4 ; PopRecordHibernateDiagnosticInfo(x)
		mov	edx, 80h
		mov	ecx, offset _PopHibernateDiagnosticInfo
		call	IoAddTriageDumpDataBlock
		push	[ebp+var_AC]
		push	dword ptr [esi+7Ch]
		push	ds:dword_6C24A8
		push	0Bh
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)

loc_72866B:				; CODE XREF: PopWriteHiberPages+B4j
		mov	ecx, 0A2044h
		call	@_PopInternalError@4 ; _PopInternalError(x)

loc_728675:				; CODE XREF: PopWriteHiberPages+13Ej
		lea	eax, [esi-10h]
		shl	eax, 0Ch
		push	10h
		sub	ecx, eax
		xor	eax, eax
		pop	esi
		mov	[ebp+var_AC], ecx
		mov	[ebp+var_B4], esi
		jmp	loc_71B87C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728693:				; CODE XREF: PopWriteHiberPages+237j
		mov	eax, [ebp+var_BC]
		mov	[eax+80h], esi
		jmp	loc_71B980
; END OF FUNCTION CHUNK	FOR PopWriteHiberPages
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopInvokeSystemStateHandler

loc_7286A4:				; CODE XREF: PopInvokeSystemStateHandler+A6j
		mov	eax, 0C00000C0h
		jmp	loc_71BEB6
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7286AE:				; CODE XREF: PopInvokeSystemStateHandler+D6j
		mov	eax, [esp+138h+var_F8]
		or	dword ptr [eax+0Ch], 40000h
		jmp	loc_71BA78
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7286BE:				; CODE XREF: PopInvokeSystemStateHandler+DFj
		cmp	ebx, 6
		jz	loc_71BA81

loc_7286C7:				; CODE XREF: PopInvokeSystemStateHandler+E7j
		mov	edi, [esp+138h+var_EC]
		mov	ebx, [esp+138h+var_F0]
		jmp	loc_71BA9D
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7286D4:				; CODE XREF: PopInvokeSystemStateHandler+117j
		xor	ebx, ebx
		mov	[esp+138h+var_104], 1
		push	ebx
		lea	eax, [esp+13Ch+var_104]
		mov	[esp+13Ch+var_100], ebx
		push	eax
		mov	[esp+140h+var_FC], ebx
		call	KeSetSystemGroupAffinityThread
		mov	cl, 2
		call	ds:__imp_@KfRaiseIrql@4	; KfRaiseIrql(x)
		mov	[esp+138h+var_129], al
		lea	eax, [esp+138h+var_F8]
		push	eax
		push	offset _PopInvokeStateHandlerTargetProcessor@16	; PopInvokeStateHandlerTargetProcessor(x,x,x,x)
		lea	eax, [esp+140h+var_B8]
		push	eax
		call	_KeInitializeDpc@12 ; KeInitializeDpc(x,x,x)
		mov	edi, ebx
		mov	byte ptr [esp+138h+var_B8+1], 2
		cmp	ds:_KeNumberProcessors,	ebx
		jbe	short loc_728774

loc_728726:				; CODE XREF: PopInvokeSystemStateHandler+CDD6j
		mov	eax, large fs:20h
		cmp	edi, [eax+3CCh]
		jz	short loc_72876B
		mov	ebx, [esp+138h+var_D8]
		mov	eax, [esp+138h+var_9C]
		test	eax, eax
		jnz	short loc_72874E
		lea	eax, [edi+20h]
		mov	word ptr [esp+138h+var_B8+2], ax

loc_72874E:				; CODE XREF: PopInvokeSystemStateHandler+CDA5j
		push	0
		push	0
		lea	eax, [esp+140h+var_B8]
		push	eax
		call	_KeInsertQueueDpc@12 ; KeInsertQueueDpc(x,x,x)
		jmp	short loc_728763
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728761:				; CODE XREF: PopInvokeSystemStateHandler+CDCDj
		pause

loc_728763:				; CODE XREF: PopInvokeSystemStateHandler+CDC3j
		mov	eax, [esp+138h+var_D8]
		cmp	ebx, eax
		jz	short loc_728761

loc_72876B:				; CODE XREF: PopInvokeSystemStateHandler+CD96j
		inc	edi
		cmp	edi, ds:_KeNumberProcessors
		jb	short loc_728726

loc_728774:				; CODE XREF: PopInvokeSystemStateHandler+CD88j
		lea	ebx, [esp+138h+var_F8]
		jmp	loc_71BB23
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72877D:				; CODE XREF: PopInvokeSystemStateHandler+1AEj
		xor	ecx, ecx
		xor	dl, dl
		mov	[esp+138h+var_11C], ecx
		mov	[esp+138h+var_118], ecx
		mov	ecx, large fs:20h
		call	_KeQueryCycleCounterFrequency@8	; KeQueryCycleCounterFrequency(x,x)
		mov	ecx, [esp+138h+var_11C]
		mov	edi, eax
		mov	eax, edx
		mov	edx, [esp+138h+var_118]
		jmp	loc_71BB75
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7287A6:				; CODE XREF: PopInvokeSystemStateHandler+1E3j
		and	[esp+13Ch+var_88], 0
		and	[esp+13Ch+var_80], 0
		push	offset byte_401802
		mov	[esp+140h+var_98], edx
		xor	edx, edx
		mov	[esp+140h+var_90], eax
		inc	edx
		push	1230h
		mov	[esp+144h+var_9C], ecx
		lea	eax, [esp+144h+var_9C]
		push	80008000h
		lea	ecx, [esp+148h+var_8C]
		mov	[esp+148h+var_94], edi
		mov	[esp+148h+var_8C], eax
		mov	[esp+148h+var_84], 10h
		call	_EtwTraceKernelEvent@20	; EtwTraceKernelEvent(x,x,x,x,x)
		jmp	loc_71BB85
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72880E:				; CODE XREF: PopInvokeSystemStateHandler+20Bj
		mov	cl, 1
		call	_VfNotifyOfHibernate@4 ; VfNotifyOfHibernate(x)
		jmp	loc_71BBAD
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72881A:				; CODE XREF: PopInvokeSystemStateHandler+249j
		cmp	eax, 6
		jz	loc_71BBEB
		call	ds:off_6B13AC	; SymCryptFatalIntercept(x)
		jmp	loc_71BBEB
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72882E:				; CODE XREF: PopInvokeSystemStateHandler+363j
		cmp	ds:_KdDebuggerEnabled, 0
		jz	loc_71BD05
		push	edi
		call	_DbgBreakPointWithStatus@4 ; DbgBreakPointWithStatus(x)
		mov	eax, [esp+138h+var_114]
		xor	ecx, ecx
		inc	ecx
		jmp	loc_71BD05
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72884D:				; CODE XREF: PopInvokeSystemStateHandler+36Bj
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	0Ah
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)

loc_72885E:				; CODE XREF: PopInvokeSystemStateHandler+228j
		mov	edi, 0C0000001h
		jmp	loc_71BD65
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728868:				; CODE XREF: PopInvokeSystemStateHandler+3D3j
		test	ds:_PopSimulate, 1000h
		jz	loc_71BECB
		xor	eax, eax
		inc	eax
		mov	[esi], al

loc_72887D:				; CODE XREF: PopInvokeSystemStateHandler+3E9j
		and	dword ptr [ebx+0Ch], 0
		cmp	ds:dword_6C2DF8, 0
		mov	dword ptr [ebx], offset	unk_6C2DF0
		jz	short loc_7288A0
		push	6
		lea	edx, [esp+138h+var_64]
		mov	ecx, ebx
		call	_PopIssueNextState@12 ;	PopIssueNextState(x,x,x)

loc_7288A0:				; CODE XREF: PopInvokeSystemStateHandler+CEF2j
		push	3
		call	ds:__imp__HalReturnToFirmware@4	; HalReturnToFirmware(x)
		jmp	loc_71BD8B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7288AD:				; CODE XREF: PopInvokeSystemStateHandler+3F6j
		xor	cl, cl
		call	_VfNotifyOfHibernate@4 ; VfNotifyOfHibernate(x)
		jmp	loc_71BD98
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7288B9:				; CODE XREF: PopInvokeSystemStateHandler+44Ej
		cmp	ds:_PoResumeFromHibernate, 0
		jnz	loc_71BDF0
		xor	eax, eax
		inc	eax
		mov	byte ptr [esp+134h+var_128+2], al
		lea	eax, [esp+134h+var_124]
		push	0
		push	eax
		call	ds:off_6B1298	; xHalpIsInterruptTypeSecondary(x,x)
		test	al, al
		jnz	loc_71BE15
		and	dword ptr [esp+10h], 0
		and	[esp+13Ch+var_128], 0
		jmp	loc_71BE15
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7288F1:				; CODE XREF: PopInvokeSystemStateHandler+483j
		mov	eax, [esp+140h+var_130]
		lea	ecx, [esp+140h+var_80]
		and	[esp+140h+var_7C], 0
		and	[esp+140h+var_74], 0
		mov	[esp+140h+var_C8], eax
		mov	eax, [esp+14h]
		mov	[esp+140h+var_C4], eax
		lea	eax, [esp+140h+var_C8]
		mov	[esp+140h+var_80], eax
		xor	eax, eax
		push	offset byte_401802
		push	1231h
		push	80008000h
		lea	edx, [eax+1]
		mov	[esp+14Ch+var_78], 8
		call	_EtwTraceKernelEvent@20	; EtwTraceKernelEvent(x,x,x,x,x)
		jmp	loc_71BE25
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_72894C:				; CODE XREF: PopInvokeSystemStateHandler+48Ej
		mov	ecx, large fs:20h
		xor	eax, eax
		lea	edx, [eax+1]
		call	_KeQueryCycleCounterFrequency@8	; KeQueryCycleCounterFrequency(x,x)
		mov	esi, eax
		mov	edi, 3E8h
		mov	eax, edx
		mul	edi
		mov	ecx, eax
		mov	eax, esi
		mul	edi
		add	ecx, edx
		push	ecx
		push	eax
		push	dword ptr [esp+1Ch]
		push	[esp+14Ch+var_130]
		call	__aulldiv
		push	0
		push	3E8h
		push	ds:dword_70ED2C
		mov	edi, eax
		mov	esi, edx
		push	ds:_PopQpcFrequency
		call	__aulldiv
		push	edx
		push	eax
		push	esi
		push	edi
		call	__allmul
		mov	esi, [esp+140h+var_110]
		mov	edi, [esp+140h+var_118]
		mov	[esp+140h+var_130], eax
		sub	eax, [esp+140h+var_124]
		mov	[esp+14h], edx
		sbb	edx, [esp+140h+var_120]
		mov	ds:dword_6C2888, eax
		mov	ds:dword_6C288C, edx
		jmp	loc_71BE30
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_7289CC:				; CODE XREF: PopInvokeSystemStateHandler+4E6j
		mov	cl, [esp+140h+var_131]
		call	ds:__imp_@KfLowerIrql@4	; KfLowerIrql(x)
		jmp	loc_71BEAF
; END OF FUNCTION CHUNK	FOR PopInvokeSystemStateHandler
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopCreateDumpMdl

loc_7289DB:				; CODE XREF: PopCreateDumpMdl+24j
		mov	ecx, 0A1482h
		call	@_PopInternalError@4 ; _PopInternalError(x)

loc_7289E5:				; CODE XREF: PopCreateDumpMdl+93j
		push	esi
		push	1Ch
		pop	edx
		mov	ecx, edi
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	esi
		push	edi
		push	0Ah
		push	106h
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
		int	3		; Trap to Debugger

loc_728A04:				; CODE XREF: PopHiberReadChecksums+ACj
		mov	edi, eax
		mov	[ebp+var_8], edi
		jmp	loc_71C358
; END OF FUNCTION CHUNK	FOR PopCreateDumpMdl
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopHiberReadChecksums

loc_728A0E:				; CODE XREF: PopHiberReadChecksums+156j
		mov	ecx, [esi+74h]
		mov	edx, 100h
		push	0
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	[ebp+var_1C]
		push	esi
		push	0Ah
		push	10Ah
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
		int	3		; Trap to Debugger

loc_728A33:				; CODE XREF: PopAddPagesToCompressedPageSet+32j
		mov	ecx, ds:dword_6C2500
		mov	eax, [ebp+arg_4]
		mov	edx, [esi+68h]
		mov	[ebp+arg_8], eax
		mov	edi, [ecx+20h]
		sub	edi, [ecx+30h]
		mov	eax, [ecx+24h]
		sbb	eax, [ecx+34h]
		mov	[ebp+arg_4], eax
		mov	[ebp+var_C], edx
		test	edx, edx
		jz	short loc_728AA5
		mov	eax, [esi+6Ch]
		xor	edx, edx
		mov	[ebp+var_14], eax
		imul	eax, 64h
		div	[ebp+var_C]
		cmp	eax, ds:dword_6C24D4
		jg	short loc_728AA2
		mov	edx, [ecx+4]
		mov	eax, edx
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		cmp	ecx, ebx
		jg	short loc_728A82
		jl	short loc_728AB7
		cmp	edi, eax
		jb	short loc_728AB7

loc_728A82:				; CODE XREF: PopHiberReadChecksums+C7D4j
		mov	eax, [ebp+var_14]
		imul	edx, 3
		shr	edx, 2
		inc	eax
		mov	[esi+6Ch], eax
		cmp	ecx, ebx
		jg	short loc_728A9D
		jl	short loc_728A99
		cmp	edi, edx
		jnb	short loc_728A9D

loc_728A99:				; CODE XREF: PopHiberReadChecksums+C7EDj
		push	2
		jmp	short loc_728A9F
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728A9D:				; CODE XREF: PopHiberReadChecksums+C7EBj
					; PopHiberReadChecksums+C7F1j
		push	3

loc_728A9F:				; CODE XREF: PopHiberReadChecksums+C7F5j
		pop	ebx
		jmp	short loc_728AB7
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728AA2:				; CODE XREF: PopHiberReadChecksums+C7C6j
		mov	eax, [ebp+arg_4]

loc_728AA5:				; CODE XREF: PopHiberReadChecksums+C7B0j
		mov	ecx, [ecx+4]
		shr	ecx, 1
		cmp	eax, ebx
		jg	short loc_728AB4
		jl	short loc_728AB7
		cmp	edi, ecx
		jb	short loc_728AB7

loc_728AB4:				; CODE XREF: PopHiberReadChecksums+C806j
		xor	ebx, ebx
		inc	ebx

loc_728AB7:				; CODE XREF: PopHiberReadChecksums+C7D6j
					; PopHiberReadChecksums+C7DAj ...
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[esi+68h], eax
		jmp	loc_71C4AA
; END OF FUNCTION CHUNK	FOR PopHiberReadChecksums
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopRequestWrite

loc_728AC3:				; CODE XREF: PopRequestWrite+D3j
					; PopRequestWrite+DDj
		mov	edi, [esp+48h+var_8]
		mov	eax, [esp+48h+var_4]
		mov	[esp+48h+var_24], edi
		mov	[esp+48h+var_10], edi
		mov	[esp+48h+var_30], eax
		mov	[esp+48h+var_C], eax
		jmp	loc_71C737
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728AE0:				; CODE XREF: PopRequestWrite+39Dj
		rdtsc
		mov	edi, eax
		mov	[esp+58h+var_4C], edx
		mov	eax, [ebx+74h]
		lea	ecx, [ebx+0F0h]
		push	esi
		push	ecx
		mov	[esp+60h+var_48], edi
		call	dword ptr [eax+30h]
		mov	ecx, [esp+60h+var_54]
		mov	[esp+60h+var_3C], eax
		rdtsc
		sub	eax, edi
		sbb	edx, ecx
		add	ds:dword_6C28C0, eax
		adc	ds:dword_6C28C4, edx
		cmp	[esp+60h+var_3C], 0
		jl	short loc_728B52
		mov	dword ptr [ebx+0CCh], 2
		jmp	loc_71C9FB
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728B2A:				; CODE XREF: PopRequestWrite+157j
					; PopRequestWrite+371j	...
		push	15h
		pop	ecx
		call	PopCheckpointSystemSleep
		push	0
		mov	edx, 138h
		mov	ecx, ebx
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		mov	ecx, [ebx+74h]
		mov	edx, 100h
		push	0
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	edi
		jmp	short loc_728B7B
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728B52:				; CODE XREF: PopRequestWrite+C4C5j
		push	15h
		pop	ecx
		call	PopCheckpointSystemSleep
		push	0
		mov	edx, 138h
		mov	ecx, ebx
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		mov	ecx, [ebx+74h]
		mov	edx, 100h
		push	0
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	[esp+60h+var_3C]

loc_728B7B:				; CODE XREF: PopRequestWrite+C4FCj
		push	ebx
		push	0Ah
		push	10Ah
		jmp	short loc_728BCC
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728B85:				; CODE XREF: PopRequestWrite+C590j
					; PopRequestWrite+C597j
		mov	ecx, ebx
		call	_PopGetRemainingHibernateRangeDataSize@4 ; PopGetRemainingHibernateRangeDataSize(x)
		mov	[esp+70h+var_44], eax

loc_728B90:				; CODE XREF: PopRequestWrite+C595j
		push	0
		call	_MmGetNumberOfPhysicalPages@4 ;	MmGetNumberOfPhysicalPages(x)
		push	4
		pop	edx
		lea	ecx, [esp+70h+var_48]
		mov	[esp+70h+var_48], eax
		call	IoAddTriageDumpDataBlock
		mov	ecx, ebx
		call	_PopRecordHibernateDiagnosticInfo@4 ; PopRecordHibernateDiagnosticInfo(x)
		mov	edx, 80h
		mov	ecx, offset _PopHibernateDiagnosticInfo
		call	IoAddTriageDumpDataBlock
		push	[esp+70h+var_44]
		push	dword ptr [ebx+7Ch]
		push	ds:dword_6C24A8
		push	0Bh

loc_728BCC:				; CODE XREF: PopRequestWrite+C52Fj
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)

loc_728BD6:				; CODE XREF: PopRequestWrite+26Fj
					; PopRequestWrite+27Bj
		push	16h
		pop	ecx
		call	PopCheckpointSystemSleep
		mov	eax, [ebx+7Ch]
		cmp	eax, 4
		jz	short loc_728B85
		cmp	eax, 5
		jnz	short loc_728B90
		jmp	short loc_728B85
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728BED:				; CODE XREF: PopRequestWrite+105j
		xor	eax, eax
		inc	eax
		jmp	loc_71C761
; END OF FUNCTION CHUNK	FOR PopRequestWrite
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopRestoreHiberContext

loc_728BF5:				; CODE XREF: PopRestoreHiberContext+81j
					; PopRestoreHiberContext+90j
		mov	eax, esi
		mov	[ebp+var_20], esi
		mov	ecx, esi
		mov	[ebp+var_1C], esi
		jmp	loc_71CACE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728C04:				; CODE XREF: PopRestoreHiberContext+140j
					; PopRestoreHiberContext+14Dj
		push	1Ch
		pop	ecx
		call	PopCheckpointSystemSleep
		mov	ecx, [ebx+74h]
		mov	edx, 100h
		push	esi
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	esi
		push	dword ptr [ebx+74h]
		push	edi
		push	0Ch
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)

loc_728C2B:				; CODE XREF: PopRestoreHiberContext+24Ej
					; PopRestoreHiberContext+C214j
		pause
		mov	eax, [edx]
		mov	esi, [ebx+0A4h]
		mov	[ebp+var_4], esi
		cmp	eax, esi
		jnz	short loc_728C2B
		mov	ecx, [ebp+var_4]
		xor	esi, esi
		jmp	loc_71CC7A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728C46:				; CODE XREF: PopRestoreHiberContext+38Cj
					; PopRestoreHiberContext+395j
		push	ds:dword_6C29EC
		push	ds:dword_6C29E8
		push	esi
		push	[ebp+var_4]
		call	__allmul
		add	ebx, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		adc	ecx, [ebp+var_10]
		add	ebx, 1
		adc	ecx, esi
		push	ecx
		push	ebx
		push	edx
		push	eax
		call	__alldiv
		sub	eax, [ebp+var_30]
		push	esi
		sbb	edx, [ebp+var_18]
		push	64h
		push	edx
		push	eax
		call	__allmul
		sub	edi, [ebp+var_30]
		mov	ecx, [ebp+var_2C]
		sbb	ecx, [ebp+var_18]
		push	ecx
		push	edi
		push	edx
		push	eax
		call	__alldiv
		mov	ecx, eax
		cmp	edx, esi
		jl	short loc_728CA3
		push	63h
		pop	eax
		jg	short loc_728CB4
		cmp	ecx, eax
		ja	short loc_728CB4

loc_728CA3:				; CODE XREF: PopRestoreHiberContext+C272j
		xor	eax, eax
		mov	ds:dword_6C24D4, ecx
		inc	eax
		cmp	ecx, eax
		jge	loc_71CDCB

loc_728CB4:				; CODE XREF: PopRestoreHiberContext+C277j
					; PopRestoreHiberContext+C27Bj
		mov	ds:dword_6C24D4, eax
		jmp	loc_71CDCB
; END OF FUNCTION CHUNK	FOR PopRestoreHiberContext
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopDecompressHiberBlocks

loc_728CBE:				; CODE XREF: PopDecompressHiberBlocks+3DFj
		cmp	ds:byte_6C24D0,	0
		jz	loc_71D24B
		jmp	loc_71CF0A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728CD0:				; CODE XREF: PopDecompressHiberBlocks+31Fj
					; PopDecompressHiberBlocks+331j
		mov	esi, [ebp+var_C8]
		push	1Fh
		pop	ecx
		mov	dword ptr [esi+80h], 0C0000242h
		call	PopCheckpointSystemSleep
		push	ebx
		mov	edx, 138h
		mov	ecx, esi
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	ebx
		push	esi
		jmp	short loc_728D10
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728CF9:				; CODE XREF: PopDecompressHiberBlocks+1A5j
		push	1Fh
		pop	ecx
		call	PopCheckpointSystemSleep
		push	ebx
		mov	edx, 138h
		mov	ecx, edi
		call	@PopInternalAddToDumpFile@12 ; PopInternalAddToDumpFile(x,x,x)
		push	ebx
		push	edi

loc_728D10:				; CODE XREF: PopDecompressHiberBlocks+BE91j
		push	0Ah
		push	107h
		push	0A0h
		call	_KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
		int	3		; Trap to Debugger

loc_728D22:				; CODE XREF: ConsumerPeekAndConsumeBuffer+102j
		mov	eax, ds:_PopDebugCount
		inc	eax
		mov	ds:_PopDebugCount, eax
		test	al, 3Fh
		jnz	loc_71D548
		call	KdCheckForDebugBreak
		push	0
		call	ds:__imp__KeQueryPerformanceCounter@4 ;	KeQueryPerformanceCounter(x)
		jmp	loc_71D548
; END OF FUNCTION CHUNK	FOR PopDecompressHiberBlocks
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR ConsumerPeekAndConsumeBuffer

loc_728D47:				; CODE XREF: ConsumerPeekAndConsumeBuffer+116j
		mov	eax, [esi+18h]
		sub	eax, edx
		cmp	edi, eax
		jb	loc_71D55C
		mov	edi, eax
		jmp	loc_71D55C
; END OF FUNCTION CHUNK	FOR ConsumerPeekAndConsumeBuffer
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; START	OF FUNCTION CHUNK FOR PopSaveHiberContext

loc_728D5B:				; CODE XREF: PopSaveHiberContext+66j
		lea	edi, [esi+14h]
		lock inc dword ptr [edi]
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_728D72

loc_728D67:				; CODE XREF: PopSaveHiberContext+B7C0j
		call	KePollFreezeExecution
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_728D67

loc_728D72:				; CODE XREF: PopSaveHiberContext+B7B5j
		cmp	ds:_PoResumeFromHibernate, 0
		jz	short loc_728D85
		mov	edi, 40000294h
		jmp	loc_7291AE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728D85:				; CODE XREF: PopSaveHiberContext+B7C9j
		lea	edi, [esi+18h]
		lock inc dword ptr [edi]
		mov	eax, [edi]
		test	eax, eax
		jz	loc_71D61C

loc_728D95:				; CODE XREF: PopSaveHiberContext+B7EEj
		call	KePollFreezeExecution
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_728D95
		jmp	loc_71D61C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728DA5:				; CODE XREF: PopSaveHiberContext+72j
					; PopSaveHiberContext+B85Ej
		xor	edi, edi
		jmp	loc_7291AE
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728DAC:				; CODE XREF: PopSaveHiberContext+E2j
		lea	edi, [esi+0Ch]
		lock inc dword ptr [edi]
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_728DC3

loc_728DB8:				; CODE XREF: PopSaveHiberContext+B811j
		call	KePollFreezeExecution
		mov	eax, [edi]
		test	eax, eax
		jnz	short loc_728DB8

loc_728DC3:				; CODE XREF: PopSaveHiberContext+B806j
		mov	edi, [esi+0A8h]
		lea	eax, [esp+378h+var_2C8]
		add	edi, [esp+378h+var_368]
		push	5Ch		; size_t
		push	0		; int
		push	eax		; void *
		call	_memset
		add	esp, 0Ch
		mov	[esp+378h+var_354], 0

loc_728DE9:				; CODE XREF: PopSaveHiberContext+B89Aj
		mov	eax, [edi+4]
		lea	edx, [esp+378h+var_354]
		push	eax
		push	0
		lea	eax, [esp+380h+var_2C8]
		mov	ecx, esi
		push	eax
		lea	eax, [esp+384h+var_C8]
		push	eax
		call	PopGetNextTable
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_728DA5
		add	[edi+28h], ebx
		lea	eax, [esp+378h+var_354]
		push	0		; int
		adc	dword ptr [edi+2Ch], 0
		mov	edx, edi
		push	ebx		; int
		push	0		; int
		push	[esp+384h+var_2BC] ; void *
		mov	ecx, esi
		push	eax		; int
		call	PopAddPagesToCompressedPageSet
		push	0
		push	ebx
		lea	ecx, [esp+380h+var_C8]
		mov	edx, eax
		push	ecx
		lea	ecx, [esp+384h+var_354]
		push	ecx
		mov	ecx, edi
		call	_PopCountDataAsProduced@24 ; PopCountDataAsProduced(x,x,x,x,x,x)
		jmp	short loc_728DE9
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728E4C:				; CODE XREF: PopSaveHiberContext+132j
		mov	ecx, 0A18E0h
		call	@_PopInternalError@4 ; _PopInternalError(x)

loc_728E56:				; CODE XREF: PopSaveHiberContext+13Fj
		mov	[esp+378h+var_369], 0

loc_728E5B:				; CODE XREF: PopSaveHiberContext+154j
		or	ds:dword_6C2518, 4
		mov	ds:byte_6C24D1,	1
		jmp	loc_71D70A
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728E6E:				; CODE XREF: PopSaveHiberContext+162j
		or	ds:dword_6C2518, 8
		mov	ds:byte_6C24D1,	1
		jmp	loc_71D718
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728E81:				; CODE XREF: PopSaveHiberContext+170j
		or	ds:dword_6C2518, 1
		mov	ds:byte_6C24D1,	1
		jmp	loc_71D726
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728E94:				; CODE XREF: PopSaveHiberContext+17Dj
		or	ds:dword_6C2518, 40h
		mov	ds:byte_6C24D1,	1
		jmp	loc_71D733
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728EA7:				; CODE XREF: PopSaveHiberContext+1A6j
		xor	ecx, ecx
		call	_HvlDisableEnlightenment@4 ; HvlDisableEnlightenment(x)
		call	ds:off_6B1318	; xHalSaveAndDisableHvEnlightenment()
		jmp	loc_71D75C
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728EB9:				; CODE XREF: PopSaveHiberContext+1E1j
		mov	ebx, eax
		jmp	loc_71D7A0
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_728EC0:				; CODE XREF: PopSaveHiberContext+50Dj
		lea	ebx, [esi+0Ch]
		lock inc dword ptr [ebx]
		mov	eax, [ebx]
		mov	ecx, [esi+0A4h]
		cmp	eax, ecx
		jz	short loc_728EE3

loc_728ED2:				; CODE XREF: PopSaveHiberContext+B931j
		call	KePollFreezeExecution
		mov	eax, [ebx]
		mov	ecx, [esi+0A4h]
		cmp	eax, ecx
		jnz	short loc_728ED2

loc_728EE3:				; CODE XREF: PopSaveHiberContext+B920j
		xor	edi, edi
		test	ecx, ecx
		jz	short loc_728F27
		xor	edx, edx

loc_728EEB:				; CODE XREF: PopSaveHiberContext+B975j
		mov	ecx, [esi+0A8h]
		lea	edx, [edx+70h]
		mov	eax, [ecx+edx-48h]
		add	ds:dword_6C2A58, eax
		mov	eax, [ecx+edx-44h]
		adc	ds:dword_6C2A5C, eax
		inc	edi
		mov	eax, [esi+0A8h]
		mov	dword ptr [eax+edx-48h], 0
		mov	dword ptr [eax+edx-44h], 0
		cmp	edi, [esi+0A4h]
		jb	short loc_728EEB

loc_728F27:				; CODE XREF: PopSaveHiberContext+B937j
		mov	eax, ds:dword_6C2A88
		mov	ds:dword_6C2A68, eax
		mov	eax, ds:dword_6C2A8C
		mov	ds:dword_6C2A6C, eax
		mov	eax, ds:dword_6C2A90
		mov	ds:dword_6C2A78, eax
		lea	eax, [esi+20h]
		mov	ds:dword_6C2A7C, 0
		mov	ds:dword_6C2A88, 0
		mov	ds:dword_6C2A8C, 0
		mov	ds:dword_6C2A90, 0
		push	eax
		mov	dword ptr [esi+7Ch], 5
		mov	[esi+48h], eax
		mov	dword ptr [esi+50h], 0
		call	_RtlNumberOfClearBits@4	; RtlNumberOfClearBits(x)
		mov	ebx, [esi+0B0h]
		xor	ecx, ecx
		mov	edi, [esi+0ACh]
		shld	ecx, eax, 0Ch
		push	38h		; size_t
		mov	[esp+37Ch+var_368], ecx
		mov	ecx, ds:dword_6C2500
		shl	eax, 0Ch
		push	0		; int
		push	ecx		; void *
		mov	[esp+384h+var_35C], eax
		mov	[esp+384h+var_364], ecx
		call	_memset
		mov	eax, [esp+384h+var_364]
		add	esp, 0Ch
		mov	ecx, [esp+378h+var_35C]
		mov	[eax+8], ecx
		mov	ecx, [esp+378h+var_368]
		mov	[eax+0Ch], ecx
		mov	ecx, [esp+378h+var_358]
		mov	dword ptr [eax+10h], 0
		mov	[eax], edi
		mov	[eax+4], ebx
		mov	eax, [esi+0F8h]
		add	eax, 0FFFh
		shr	eax, 0Ch
		mov	[ecx+54h], eax
		lea	eax, [esp+378h+var_208]
		push	5Ch		; size_t
		push	0		; int
		push	eax		; void *
		mov	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi+0D8h], 0
		mov	dword ptr [esi+0DCh], 0
		call	_memset
		mov	eax, ds:dword_6C2500
		add	esp, 0Ch
		mov	edi, [esi+0A8h]
		xor	ebx, ebx
		xor	ecx, ecx
		mov	[esp+378h+var_34C], 0
		mov	[esp+378h+var_364], eax
		mov	[esp+378h+var_360], ecx

loc_72903C:				; CODE XREF: PopSaveHiberContext+BB23j
		call	_PopHiberCheckForDebugBreak@0 ;	PopHiberCheckForDebugBreak()
		mov	edx, [esp+378h+var_364]
		mov	ecx, esi
		push	1
		call	PopRequestWrite
		mov	[esp+378h+var_369], al
		mov	eax, [esp+378h+var_360]
		test	eax, eax
		jnz	short loc_7290A8
		mov	ecx, [edi+4]
		lea	edx, [esp+378h+var_34C]
		push	ecx
		push	eax
		lea	eax, [esp+380h+var_208]
		mov	ecx, esi
		push	eax
		lea	eax, [esp+384h+var_48]
		push	eax
		call	PopGetNextTable
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_7290CE
		add	[edi+28h], ebx
		lea	eax, [esp+378h+var_34C]
		push	offset _PopCompressCallback@4 ;	int
		adc	dword ptr [edi+2Ch], 0
		mov	edx, edi
		push	ebx		; int
		push	0		; int
		push	[esp+384h+var_1FC] 