; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.21022.08 

	TITLE	c:\Develop\DScaler423a\DScaler\TDA9875AudioDecoder.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB OLDNAMES

PUBLIC	?GetAudioDecoderValue@CTDA9875AudioDecoder@@UAEJH@Z ; CTDA9875AudioDecoder::GetAudioDecoderValue
PUBLIC	?SetAudioDecoderValue@CTDA9875AudioDecoder@@UAEHHJ@Z ; CTDA9875AudioDecoder::SetAudioDecoderValue
PUBLIC	?GetAudioDecoderType@CTDA9875AudioDecoder@@UAE?AW4eAudioDecoderType@CAudioDecoder@@XZ ; CTDA9875AudioDecoder::GetAudioDecoderType
PUBLIC	?DetectAudioStandard@CTDA9875AudioDecoder@@UAEXJHW4eSoundChannel@@@Z ; CTDA9875AudioDecoder::DetectAudioStandard
PUBLIC	?GetAudioStandardFromVideoFormat@CTDA9875AudioDecoder@@UAEJW4eVideoFormat@@@Z ; CTDA9875AudioDecoder::GetAudioStandardFromVideoFormat
PUBLIC	?SetAudioStandardCarriers@CTDA9875AudioDecoder@@UAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriers
PUBLIC	?GetAudioStandardMinorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z ; CTDA9875AudioDecoder::GetAudioStandardMinorCarrier
PUBLIC	?GetAudioStandardMajorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z ; CTDA9875AudioDecoder::GetAudioStandardMajorCarrier
PUBLIC	?GetAudioStandard@CTDA9875AudioDecoder@@UAEJH@Z	; CTDA9875AudioDecoder::GetAudioStandard
PUBLIC	?GetNumAudioStandards@CTDA9875AudioDecoder@@UAEHXZ ; CTDA9875AudioDecoder::GetNumAudioStandards
PUBLIC	?GetAudioStandardName@CTDA9875AudioDecoder@@UAEPB_WJ@Z ; CTDA9875AudioDecoder::GetAudioStandardName
PUBLIC	?GetAudioStandardCurrent@CTDA9875AudioDecoder@@UAEJXZ ; CTDA9875AudioDecoder::GetAudioStandardCurrent
PUBLIC	?SetAudioStandard@CTDA9875AudioDecoder@@UAEXJW4eVideoFormat@@@Z ; CTDA9875AudioDecoder::SetAudioStandard
PUBLIC	?GetAudioInputName@CTDA9875AudioDecoder@@UAEPB_WW4eAudioInput@@@Z ; CTDA9875AudioDecoder::GetAudioInputName
PUBLIC	?GetAudioInput@CTDA9875AudioDecoder@@UAE?AW4eAudioInput@@XZ ; CTDA9875AudioDecoder::GetAudioInput
PUBLIC	?SetAudioInput@CTDA9875AudioDecoder@@UAEXW4eAudioInput@@@Z ; CTDA9875AudioDecoder::SetAudioInput
PUBLIC	?IsAudioChannelDetected@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z ; CTDA9875AudioDecoder::IsAudioChannelDetected
PUBLIC	?GetSoundChannel@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@XZ ; CTDA9875AudioDecoder::GetSoundChannel
PUBLIC	?SetSoundChannel@CTDA9875AudioDecoder@@UAEXW4eSoundChannel@@@Z ; CTDA9875AudioDecoder::SetSoundChannel
PUBLIC	??_R4CTDA9875AudioDecoder@@6BCAudioDecoder@@@	; CTDA9875AudioDecoder::`RTTI Complete Object Locator'
PUBLIC	??_R4CTDA9875AudioDecoder@@6BCTDA9875@@@	; CTDA9875AudioDecoder::`RTTI Complete Object Locator'
PUBLIC	??_R3CTDA9875AudioDecoder@@8			; CTDA9875AudioDecoder::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CTDA9875AudioDecoder@@8			; CTDA9875AudioDecoder::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CTDA9875AudioDecoder@@8		; CTDA9875AudioDecoder::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_C@_1DA@IHHOEJHP@?$AAS?$AAA?$AAT?$AA4?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@FGDANLHH@?$AAS?$AAA?$AAT?$AA3?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@PHAJFPJJ@?$AAS?$AAA?$AAT?$AA2?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@MPDCNEOK@?$AAS?$AAA?$AAT?$AA1?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@PIGICLED@?$AAS?$AAA?$AAT?$AA?5?$AA?$CI?$AAM?$AAa?$AAi?$AAn?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EE@GFMMFABF@?$AAL?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAA?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@ ; `string'
PUBLIC	??_C@_1EI@MFEECAJN@?$AAD?$AA?1?$AAK?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@ ; `string'
PUBLIC	??_C@_1EE@PHODLMGL@?$AAI?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@ ; `string'
PUBLIC	??_C@_1EI@EHBEGODM@?$AAB?$AA?1?$AAG?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@ ; `string'
PUBLIC	??_C@_1DO@NMBIDJAJ@?$AAD?$AA?1?$AAK?$AA2?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CK?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DM@EAOOOOAK@?$AAD?$AA?1?$AAK?$AA1?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@ECOFBFI@?$AAI?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@CCELLPBC@?$AAB?$AA?1?$AAG?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DI@ENCJNKCP@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CL?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@PEEDGJFF@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ ; `string'
PUBLIC	??_GCTDA9875AudioDecoder@@UAEPAXI@Z		; CTDA9875AudioDecoder::`scalar deleting destructor'
PUBLIC	??_ECTDA9875AudioDecoder@@WM@AEPAXI@Z		; [thunk]:CTDA9875AudioDecoder::`vector deleting destructor'
PUBLIC	?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A ; CTDA9875AudioDecoder::m_TDA9875Standards
PUBLIC	?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A ; CTDA9875AudioDecoder::CarrierDetectTable
PUBLIC	??_C@_1CI@GGLDJMPK@?$AAR?$AAa?$AAd?$AAi?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAA?$AAv?$AAa?$AAi?$AAl?$AAa?$AAb?$AAl?$AAe?$AA?$AA@ ; `string'
PUBLIC	??_C@_1GA@MJADKDFP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GA@BMKLOA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1FO@OIELJNOL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GA@GKPAGIDN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GC@EGLOMMDI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GC@CLDIDPGC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1EK@PGHGDLJB@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@ ; `string'
PUBLIC	??_C@_1GA@ELONLGMH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GA@ICPCLOHI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1FO@GKEOMKKE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GA@OIBOHNKF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GC@JCPLKKCP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1GC@PPHNFJHF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ ; `string'
PUBLIC	??_C@_1EK@CPGMEMPJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@ ; `string'
PUBLIC	??_C@_1CI@IPCLKCE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DG@EOENIJBH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAS?$AAu?$AAs?$AAp?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_7CTDA9875AudioDecoder@@6BCTDA9875@@@		; CTDA9875AudioDecoder::`vftable'
PUBLIC	??_7CTDA9875AudioDecoder@@6BCAudioDecoder@@@	; CTDA9875AudioDecoder::`vftable'
EXTRN	??_ECTDA9875AudioDecoder@@UAEPAXI@Z:PROC	; CTDA9875AudioDecoder::`vector deleting destructor'
;	COMDAT ??_7CTDA9875AudioDecoder@@6BCAudioDecoder@@@
CONST	SEGMENT
??_7CTDA9875AudioDecoder@@6BCAudioDecoder@@@ DD FLAT:??_R4CTDA9875AudioDecoder@@6BCAudioDecoder@@@ ; CTDA9875AudioDecoder::`vftable'
	DD	FLAT:??_ECTDA9875AudioDecoder@@WM@AEPAXI@Z
	DD	FLAT:?OnEvent@CEventObject@@UAEXPAV1@W4eEventType@@JJPAW42@@Z
	DD	FLAT:?SetSoundChannel@CTDA9875AudioDecoder@@UAEXW4eSoundChannel@@@Z
	DD	FLAT:?GetSoundChannel@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@XZ
	DD	FLAT:?IsAudioChannelDetected@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z
	DD	FLAT:?SetAudioInput@CTDA9875AudioDecoder@@UAEXW4eAudioInput@@@Z
	DD	FLAT:?GetAudioInput@CTDA9875AudioDecoder@@UAE?AW4eAudioInput@@XZ
	DD	FLAT:?GetAudioInputName@CTDA9875AudioDecoder@@UAEPB_WW4eAudioInput@@@Z
	DD	FLAT:?SetAudioStandard@CTDA9875AudioDecoder@@UAEXJW4eVideoFormat@@@Z
	DD	FLAT:?GetAudioStandardCurrent@CTDA9875AudioDecoder@@UAEJXZ
	DD	FLAT:?GetAudioStandardName@CTDA9875AudioDecoder@@UAEPB_WJ@Z
	DD	FLAT:?GetNumAudioStandards@CTDA9875AudioDecoder@@UAEHXZ
	DD	FLAT:?GetAudioStandard@CTDA9875AudioDecoder@@UAEJH@Z
	DD	FLAT:?GetAudioStandardMajorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z
	DD	FLAT:?GetAudioStandardMinorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z
	DD	FLAT:?SetAudioStandardCarriers@CTDA9875AudioDecoder@@UAEXJJ@Z
	DD	FLAT:?GetAudioStandardFromVideoFormat@CTDA9875AudioDecoder@@UAEJW4eVideoFormat@@@Z
	DD	FLAT:?DetectAudioStandard@CTDA9875AudioDecoder@@UAEXJHW4eSoundChannel@@@Z
	DD	FLAT:?GetAudioDecoderType@CTDA9875AudioDecoder@@UAE?AW4eAudioDecoderType@CAudioDecoder@@XZ
	DD	FLAT:?SetAudioDecoderValue@CTDA9875AudioDecoder@@UAEHHJ@Z
	DD	FLAT:?GetAudioDecoderValue@CTDA9875AudioDecoder@@UAEJH@Z
CONST	ENDS
;	COMDAT ??_R4CTDA9875AudioDecoder@@6BCAudioDecoder@@@
rdata$r	SEGMENT
??_R4CTDA9875AudioDecoder@@6BCAudioDecoder@@@ DD 00H	; CTDA9875AudioDecoder::`RTTI Complete Object Locator'
	DD	0cH
	DD	00H
	DD	FLAT:??_R0?AVCTDA9875AudioDecoder@@@8
	DD	FLAT:??_R3CTDA9875AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_7CTDA9875AudioDecoder@@6BCTDA9875@@@
CONST	SEGMENT
??_7CTDA9875AudioDecoder@@6BCTDA9875@@@ DD FLAT:??_R4CTDA9875AudioDecoder@@6BCTDA9875@@@ ; CTDA9875AudioDecoder::`vftable'
	DD	FLAT:??_ECTDA9875AudioDecoder@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CTDA9875@@MBEEXZ
CONST	ENDS
;	COMDAT ??_R4CTDA9875AudioDecoder@@6BCTDA9875@@@
rdata$r	SEGMENT
??_R4CTDA9875AudioDecoder@@6BCTDA9875@@@ DD 00H		; CTDA9875AudioDecoder::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCTDA9875AudioDecoder@@@8
	DD	FLAT:??_R3CTDA9875AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_R3CTDA9875AudioDecoder@@8
rdata$r	SEGMENT
??_R3CTDA9875AudioDecoder@@8 DD 00H			; CTDA9875AudioDecoder::`RTTI Class Hierarchy Descriptor'
	DD	01H
	DD	05H
	DD	FLAT:??_R2CTDA9875AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_R2CTDA9875AudioDecoder@@8
rdata$r	SEGMENT
??_R2CTDA9875AudioDecoder@@8 DD FLAT:??_R1A@?0A@EA@CTDA9875AudioDecoder@@8 ; CTDA9875AudioDecoder::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CTDA9875@@8
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
	DD	FLAT:??_R1M@?0A@EA@CAudioDecoder@@8
	DD	FLAT:??_R1M@?0A@EA@CEventObject@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CTDA9875AudioDecoder@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CTDA9875AudioDecoder@@8 DD FLAT:??_R0?AVCTDA9875AudioDecoder@@@8 ; CTDA9875AudioDecoder::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	04H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CTDA9875AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_C@_1DG@EOENIJBH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAS?$AAu?$AAs?$AAp?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@EOENIJBH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAS?$AAu?$AAs?$AAp?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'S', 00H, 'u', 00H, 's', 00H, 'p', 00H, 'e'
	DB	00H, 'n', 00H, 'd', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' ', 00H
	DB	't', 00H, 'h', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1CI@IPCLKCE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1CI@IPCLKCE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	'D', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'T'
	DB	00H, 'h', 00H, 'r', 00H, 'e', 00H, 'a', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EK@CPGMEMPJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@
CONST	SEGMENT
??_C@_1EK@CPGMEMPJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'F', 00H, 'o', 00H, 'u', 00H, 'n', 00H, 'd'
	DB	00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r', 00H
	DB	' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H, 'e'
	DB	00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	' ', 00H, 'H', 00H, 'z', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1GC@PPHNFJHF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GC@PPHNFJHF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '2', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'r', 00H, 'i'
	DB	00H, 'g', 00H, 'h', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H
	DB	'%', 00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1GC@JCPLKKCP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GC@JCPLKKCP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '1', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'r', 00H, 'i'
	DB	00H, 'g', 00H, 'h', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H
	DB	'%', 00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@OIBOHNKF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GA@OIBOHNKF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '5', 00H
	DB	'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'r', 00H, 'i', 00H, 'g'
	DB	00H, 'h', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1FO@GKEOMKKE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1FO@GKEOMKKE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '5', 00H
	DB	'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'l', 00H, 'e', 00H, 'f'
	DB	00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@ICPCLOHI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GA@ICPCLOHI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '1', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'l', 00H, 'e'
	DB	00H, 'f', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@ELONLGMH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GA@ELONLGMH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '2', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'l', 00H, 'e'
	DB	00H, 'f', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1EK@PGHGDLJB@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@
CONST	SEGMENT
??_C@_1EK@PGHGDLJB@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'F', 00H, 'o', 00H, 'u', 00H, 'n', 00H, 'd'
	DB	00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r', 00H
	DB	' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H, 'e'
	DB	00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	' ', 00H, 'H', 00H, 'z', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1GC@CLDIDPGC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GC@CLDIDPGC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '2', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'r', 00H, 'i'
	DB	00H, 'g', 00H, 'h', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H
	DB	'%', 00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1GC@EGLOMMDI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GC@EGLOMMDI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '1', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'r', 00H, 'i'
	DB	00H, 'g', 00H, 'h', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H
	DB	'%', 00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@GKPAGIDN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GA@GKPAGIDN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '5', 00H
	DB	'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'r', 00H, 'i', 00H, 'g'
	DB	00H, 'h', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1FO@OIELJNOL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1FO@OIELJNOL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '5', 00H
	DB	'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'l', 00H, 'e', 00H, 'f'
	DB	00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@BMKLOA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GA@BMKLOA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '1', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'l', 00H, 'e'
	DB	00H, 'f', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1GA@MJADKDFP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
CONST	SEGMENT
??_C@_1GA@MJADKDFP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '5', 00H
	DB	':', 00H, ' ', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H, 'r'
	DB	00H, ' ', 00H, 'c', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H
	DB	'e', 00H, 'r', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H, 'd'
	DB	00H, ' ', 00H, 'H', 00H, 'z', 00H, ',', 00H, ' ', 00H, '2', 00H
	DB	'5', 00H, 'K', 00H, 'H', 00H, 'z', 00H, ' ', 00H, 'l', 00H, 'e'
	DB	00H, 'f', 00H, 't', 00H, ' ', 00H, '=', 00H, ' ', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1CI@GGLDJMPK@?$AAR?$AAa?$AAd?$AAi?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAA?$AAv?$AAa?$AAi?$AAl?$AAa?$AAb?$AAl?$AAe?$AA?$AA@
CONST	SEGMENT
??_C@_1CI@GGLDJMPK@?$AAR?$AAa?$AAd?$AAi?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAA?$AAv?$AAa?$AAi?$AAl?$AAa?$AAb?$AAl?$AAe?$AA?$AA@ DB 'R'
	DB	00H, 'a', 00H, 'd', 00H, 'i', 00H, 'o', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'A', 00H, 'v', 00H, 'a', 00H, 'i'
	DB	00H, 'l', 00H, 'a', 00H, 'b', 00H, 'l', 00H, 'e', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@IHHOEJHP@?$AAS?$AAA?$AAT?$AA4?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@IHHOEJHP@?$AAS?$AAA?$AAT?$AA4?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'S'
	DB	00H, 'A', 00H, 'T', 00H, '4', 00H, ' ', 00H, '(', 00H, 'S', 00H
	DB	'u', 00H, 'b', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/'
	DB	00H, 'F', 00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H
	DB	'r', 00H, 'e', 00H, 'o', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@FGDANLHH@?$AAS?$AAA?$AAT?$AA3?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@FGDANLHH@?$AAS?$AAA?$AAT?$AA3?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'S'
	DB	00H, 'A', 00H, 'T', 00H, '3', 00H, ' ', 00H, '(', 00H, 'S', 00H
	DB	'u', 00H, 'b', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/'
	DB	00H, 'F', 00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H
	DB	'r', 00H, 'e', 00H, 'o', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@PHAJFPJJ@?$AAS?$AAA?$AAT?$AA2?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@PHAJFPJJ@?$AAS?$AAA?$AAT?$AA2?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'S'
	DB	00H, 'A', 00H, 'T', 00H, '2', 00H, ' ', 00H, '(', 00H, 'S', 00H
	DB	'u', 00H, 'b', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/'
	DB	00H, 'F', 00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H
	DB	'r', 00H, 'e', 00H, 'o', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@MPDCNEOK@?$AAS?$AAA?$AAT?$AA1?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@MPDCNEOK@?$AAS?$AAA?$AAT?$AA1?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'S'
	DB	00H, 'A', 00H, 'T', 00H, '1', 00H, ' ', 00H, '(', 00H, 'S', 00H
	DB	'u', 00H, 'b', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/'
	DB	00H, 'F', 00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H
	DB	'r', 00H, 'e', 00H, 'o', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@PIGICLED@?$AAS?$AAA?$AAT?$AA?5?$AA?$CI?$AAM?$AAa?$AAi?$AAn?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@PIGICLED@?$AAS?$AAA?$AAT?$AA?5?$AA?$CI?$AAM?$AAa?$AAi?$AAn?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ DB 'S'
	DB	00H, 'A', 00H, 'T', 00H, ' ', 00H, '(', 00H, 'M', 00H, 'a', 00H
	DB	'i', 00H, 'n', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/'
	DB	00H, 'N', 00H, 'O', 00H, 'N', 00H, 'E', 00H, ' ', 00H, 'M', 00H
	DB	'o', 00H, 'n', 00H, 'o', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1EE@GFMMFABF@?$AAL?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAA?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@
CONST	SEGMENT
??_C@_1EE@GFMMFABF@?$AAL?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAA?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@ DB 'L'
	DB	00H, ' ', 00H, 'D', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 't', 00H
	DB	'a', 00H, 'l', 00H, ' ', 00H, '(', 00H, 'N', 00H, 'I', 00H, 'C'
	DB	00H, 'A', 00H, 'M', 00H, ')', 00H, ' ', 00H, 'A', 00H, 'M', 00H
	DB	'/', 00H, 'N', 00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ' '
	DB	00H, 'S', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'e', 00H, 'o', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1EI@MFEECAJN@?$AAD?$AA?1?$AAK?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@
CONST	SEGMENT
??_C@_1EI@MFEECAJN@?$AAD?$AA?1?$AAK?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@ DB 'D'
	DB	00H, '/', 00H, 'K', 00H, ' ', 00H, 'D', 00H, 'i', 00H, 'g', 00H
	DB	'i', 00H, 't', 00H, 'a', 00H, 'l', 00H, ' ', 00H, '(', 00H, 'N'
	DB	00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ')', 00H, ' ', 00H
	DB	'F', 00H, 'M', 00H, '/', 00H, 'N', 00H, 'I', 00H, 'C', 00H, 'A'
	DB	00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H, 'r', 00H
	DB	'e', 00H, 'o', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1EE@PHODLMGL@?$AAI?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@
CONST	SEGMENT
??_C@_1EE@PHODLMGL@?$AAI?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@ DB 'I'
	DB	00H, ' ', 00H, 'D', 00H, 'i', 00H, 'g', 00H, 'i', 00H, 't', 00H
	DB	'a', 00H, 'l', 00H, ' ', 00H, '(', 00H, 'N', 00H, 'I', 00H, 'C'
	DB	00H, 'A', 00H, 'M', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H
	DB	'/', 00H, 'N', 00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ' '
	DB	00H, 'S', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'e', 00H, 'o', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1EI@EHBEGODM@?$AAB?$AA?1?$AAG?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@
CONST	SEGMENT
??_C@_1EI@EHBEGODM@?$AAB?$AA?1?$AAG?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@ DB 'B'
	DB	00H, '/', 00H, 'G', 00H, ' ', 00H, 'D', 00H, 'i', 00H, 'g', 00H
	DB	'i', 00H, 't', 00H, 'a', 00H, 'l', 00H, ' ', 00H, '(', 00H, 'N'
	DB	00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ')', 00H, ' ', 00H
	DB	'F', 00H, 'M', 00H, '/', 00H, 'N', 00H, 'I', 00H, 'C', 00H, 'A'
	DB	00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H, 'r', 00H
	DB	'e', 00H, 'o', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DO@NMBIDJAJ@?$AAD?$AA?1?$AAK?$AA2?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CK?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DO@NMBIDJAJ@?$AAD?$AA?1?$AAK?$AA2?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CK?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'D'
	DB	00H, '/', 00H, 'K', 00H, '2', 00H, ' ', 00H, 'A', 00H, 'n', 00H
	DB	'a', 00H, 'l', 00H, 'o', 00H, 'g', 00H, ' ', 00H, '(', 00H, 'A'
	DB	00H, '2', 00H, '*', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H
	DB	'/', 00H, 'F', 00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e'
	DB	00H, 'r', 00H, 'e', 00H, 'o', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@EAOOOOAK@?$AAD?$AA?1?$AAK?$AA1?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@EAOOOOAK@?$AAD?$AA?1?$AAK?$AA1?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'D'
	DB	00H, '/', 00H, 'K', 00H, '1', 00H, ' ', 00H, 'A', 00H, 'n', 00H
	DB	'a', 00H, 'l', 00H, 'o', 00H, 'g', 00H, ' ', 00H, '(', 00H, 'A'
	DB	00H, '2', 00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/', 00H
	DB	'F', 00H, 'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H, 'r'
	DB	00H, 'e', 00H, 'o', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@ECOFBFI@?$AAI?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@ECOFBFI@?$AAI?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ DB 'I'
	DB	00H, ' ', 00H, 'A', 00H, 'n', 00H, 'a', 00H, 'l', 00H, 'o', 00H
	DB	'g', 00H, ' ', 00H, '(', 00H, 'M', 00H, 'o', 00H, 'n', 00H, 'o'
	DB	00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/', 00H, 'N', 00H
	DB	'O', 00H, 'N', 00H, 'E', 00H, ' ', 00H, 'M', 00H, 'o', 00H, 'n'
	DB	00H, 'o', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@CCELLPBC@?$AAB?$AA?1?$AAG?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@CCELLPBC@?$AAB?$AA?1?$AAG?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'B'
	DB	00H, '/', 00H, 'G', 00H, ' ', 00H, 'A', 00H, 'n', 00H, 'a', 00H
	DB	'l', 00H, 'o', 00H, 'g', 00H, ' ', 00H, '(', 00H, 'A', 00H, '2'
	DB	00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/', 00H, 'F', 00H
	DB	'M', 00H, ' ', 00H, 'S', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'e'
	DB	00H, 'o', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DI@ENCJNKCP@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CL?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DI@ENCJNKCP@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CL?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@ DB 'M'
	DB	00H, ' ', 00H, 'A', 00H, 'n', 00H, 'a', 00H, 'l', 00H, 'o', 00H
	DB	'g', 00H, ' ', 00H, '(', 00H, 'A', 00H, '2', 00H, '+', 00H, ')'
	DB	00H, ' ', 00H, 'F', 00H, 'M', 00H, '/', 00H, 'F', 00H, 'M', 00H
	DB	' ', 00H, 'S', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'e', 00H, 'o'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@PEEDGJFF@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@PEEDGJFF@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ DB 'M'
	DB	00H, ' ', 00H, 'A', 00H, 'n', 00H, 'a', 00H, 'l', 00H, 'o', 00H
	DB	'g', 00H, ' ', 00H, '(', 00H, 'M', 00H, 'o', 00H, 'n', 00H, 'o'
	DB	00H, ')', 00H, ' ', 00H, 'F', 00H, 'M', 00H, '/', 00H, 'N', 00H
	DB	'O', 00H, 'N', 00H, 'E', 00H, ' ', 00H, 'M', 00H, 'o', 00H, 'n'
	DB	00H, 'o', 00H, 00H, 00H			; `string'
?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A DD FLAT:??_C@_1DK@PEEDGJFF@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@ ; CTDA9875AudioDecoder::m_TDA9875Standards
	DD	010H
	DD	044aa20H
	DD	044aa20H
	DD	00H
	DD	00H
	DD	022H
	DD	FLAT:??_C@_1DI@ENCJNKCP@?$AAM?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CL?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	011H
	DD	044aa20H
	DD	0481520H
	DD	00H
	DD	01H
	DD	022H
	DD	FLAT:??_C@_1DK@CCELLPBC@?$AAB?$AA?1?$AAG?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	012H
	DD	053ec60H
	DD	0579db0H
	DD	00H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_1DK@ECOFBFI@?$AAI?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAM?$AAo?$AAn?$AAo?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@
	DD	013H
	DD	05b8d80H
	DD	05b8d80H
	DD	00H
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1DM@EAOOOOAK@?$AAD?$AA?1?$AAK?$AA1?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	014H
	DD	0632ea0H
	DD	066dff0H
	DD	00H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_1DO@NMBIDJAJ@?$AAD?$AA?1?$AAK?$AA2?$AA?5?$AAA?$AAn?$AAa?$AAl?$AAo?$AAg?$AA?5?$AA?$CI?$AAA?$AA2?$AA?$CK?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	015H
	DD	0632ea0H
	DD	05f8520H
	DD	00H
	DD	01H
	DD	00H
	DD	FLAT:??_C@_1EI@EHBEGODM@?$AAB?$AA?1?$AAG?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@
	DD	030H
	DD	053ec60H
	DD	0594390H
	DD	00H
	DD	02H
	DD	033H
	DD	FLAT:??_C@_1EE@PHODLMGL@?$AAI?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@
	DD	031H
	DD	05b8d80H
	DD	063f9c0H
	DD	00H
	DD	02H
	DD	033H
	DD	FLAT:??_C@_1EI@MFEECAJN@?$AAD?$AA?1?$AAK?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe@
	DD	032H
	DD	0632ea0H
	DD	0594390H
	DD	00H
	DD	02H
	DD	033H
	DD	FLAT:??_C@_1EE@GFMMFABF@?$AAL?$AA?5?$AAD?$AAi?$AAg?$AAi?$AAt?$AAa?$AAl?$AA?5?$AA?$CI?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?$CJ?$AA?5?$AAA?$AAM?$AA?1?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe@
	DD	033H
	DD	0632ea0H
	DD	0594390H
	DD	01H
	DD	02H
	DD	033H
	DD	FLAT:??_C@_1DA@PIGICLED@?$AAS?$AAA?$AAT?$AA?5?$AA?$CI?$AAM?$AAa?$AAi?$AAn?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAN?$AAO?$AAN?$AAE?$AA?5?$AAM?$AAo?$AAn?$AAo?$AA?$AA@
	DD	050H
	DD	0632ea0H
	DD	0632ea0H
	DD	02H
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1DA@MPDCNEOK@?$AAS?$AAA?$AAT?$AA1?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	051H
	DD	06b1de0H
	DD	06ddd00H
	DD	02H
	DD	01H
	DD	0aaH
	DD	FLAT:??_C@_1DA@PHAJFPJJ@?$AAS?$AAA?$AAT?$AA2?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	052H
	DD	0709c20H
	DD	0735b40H
	DD	02H
	DD	01H
	DD	0aaH
	DD	FLAT:??_C@_1DA@FGDANLHH@?$AAS?$AAA?$AAT?$AA3?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	053H
	DD	0761a60H
	DD	078d980H
	DD	02H
	DD	01H
	DD	0aaH
	DD	FLAT:??_C@_1DA@IHHOEJHP@?$AAS?$AAA?$AAT?$AA4?$AA?5?$AA?$CI?$AAS?$AAu?$AAb?$AA?$CJ?$AA?5?$AAF?$AAM?$AA?1?$AAF?$AAM?$AA?5?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
	DD	054H
	DD	07b98a0H
	DD	07e57bfH
	DD	02H
	DD	01H
	DD	0aaH
	DD	00H
	DD	00H
	DD	00H
	DD	00H
	DD	00H
	DD	00H
	DD	044H
?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A DD 044aa20H ; CTDA9875AudioDecoder::CarrierDetectTable
	DD	0481520H
	DD	00H
	ORG $+32
	DD	053ec60H
	DD	0579db0H
	DD	0594390H
	DD	00H
	ORG $+28
	DD	05b8d80H
	DD	063f9c0H
	DD	00H
	ORG $+32
	DD	0632ea0H
	DD	0594390H
	DD	05f8520H
	DD	066dff0H
	DD	00H
	ORG $+24
	DD	06b1de0H
	DD	06ddd00H
	DD	00H
	ORG $+32
	DD	0709c20H
	DD	0735b40H
	DD	00H
	ORG $+32
	DD	0761a60H
	DD	078d980H
	DD	00H
	ORG $+32
	DD	07b98a0H
	DD	07e57bfH
	DD	00H
	ORG $+32
	DD	00H
	DD	00H
	ORG $+36
; Function compile flags: /Odtp
;	COMDAT ??_ECTDA9875AudioDecoder@@WM@AEPAXI@Z
_TEXT	SEGMENT
??_ECTDA9875AudioDecoder@@WM@AEPAXI@Z PROC		; [thunk]:CTDA9875AudioDecoder::`vector deleting destructor', COMDAT
  00000	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00003	e9 00 00 00 00	 jmp	 ??_ECTDA9875AudioDecoder@@UAEPAXI@Z
??_ECTDA9875AudioDecoder@@WM@AEPAXI@Z ENDP		; [thunk]:CTDA9875AudioDecoder::`vector deleting destructor'
_TEXT	ENDS
PUBLIC	?StopThread@CTDA9875AudioDecoder@@AAEXXZ	; CTDA9875AudioDecoder::StopThread
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\tda9875audiodecoder.cpp
;	COMDAT ?StopThread@CTDA9875AudioDecoder@@AAEXXZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
_ExitCode$ = -12					; size = 4
_i$ = -8						; size = 4
_Thread_Stopped$ = -4					; size = 4
?StopThread@CTDA9875AudioDecoder@@AAEXXZ PROC		; CTDA9875AudioDecoder::StopThread, COMDAT
; _this$ = ecx

; 1207 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx

; 1208 :     DWORD ExitCode;
; 1209 :     int i;
; 1210 :     BOOL Thread_Stopped = FALSE;

  00009	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _Thread_Stopped$[ebp], 0

; 1211 : 
; 1212 :     if (m_TDA9875Thread != NULL)

  00010	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00013	83 78 44 00	 cmp	 DWORD PTR [eax+68], 0
  00017	0f 84 bd 00 00
	00		 je	 $LN9@StopThread

; 1213 :     {
; 1214 :         i = 10;

  0001d	c7 45 f8 0a 00
	00 00		 mov	 DWORD PTR _i$[ebp], 10	; 0000000aH

; 1215 :         EnterCriticalSection(&TDA9875CriticalSection);

  00024	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00027	83 c1 4c	 add	 ecx, 76			; 0000004cH
  0002a	51		 push	 ecx
  0002b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1216 :         m_bStopThread = TRUE;

  00031	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00034	c7 42 48 01 00
	00 00		 mov	 DWORD PTR [edx+72], 1

; 1217 :         LeaveCriticalSection(&TDA9875CriticalSection);

  0003b	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0003e	83 c0 4c	 add	 eax, 76			; 0000004cH
  00041	50		 push	 eax
  00042	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1218 :         ResumeThread(m_TDA9875Thread);

  00048	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	8b 51 44	 mov	 edx, DWORD PTR [ecx+68]
  0004e	52		 push	 edx
  0004f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ResumeThread@4
$LN7@StopThread:

; 1219 :         while(i-- > 0 && !Thread_Stopped)

  00055	8b 45 f8	 mov	 eax, DWORD PTR _i$[ebp]
  00058	8b 4d f8	 mov	 ecx, DWORD PTR _i$[ebp]
  0005b	83 e9 01	 sub	 ecx, 1
  0005e	89 4d f8	 mov	 DWORD PTR _i$[ebp], ecx
  00061	85 c0		 test	 eax, eax
  00063	7e 41		 jle	 SHORT $LN6@StopThread
  00065	83 7d fc 00	 cmp	 DWORD PTR _Thread_Stopped$[ebp], 0
  00069	75 3b		 jne	 SHORT $LN6@StopThread

; 1220 :         {
; 1221 :             if (GetExitCodeThread(m_TDA9875Thread, &ExitCode) == TRUE)

  0006b	8d 55 f4	 lea	 edx, DWORD PTR _ExitCode$[ebp]
  0006e	52		 push	 edx
  0006f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00072	8b 48 44	 mov	 ecx, DWORD PTR [eax+68]
  00075	51		 push	 ecx
  00076	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__GetExitCodeThread@8
  0007c	83 f8 01	 cmp	 eax, 1
  0007f	75 1c		 jne	 SHORT $LN5@StopThread

; 1222 :             {
; 1223 :                 if (ExitCode != STILL_ACTIVE)

  00081	81 7d f4 03 01
	00 00		 cmp	 DWORD PTR _ExitCode$[ebp], 259 ; 00000103H
  00088	74 09		 je	 SHORT $LN4@StopThread

; 1224 :                 {
; 1225 :                     Thread_Stopped = TRUE;

  0008a	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _Thread_Stopped$[ebp], 1

; 1226 :                 }
; 1227 :                 else

  00091	eb 08		 jmp	 SHORT $LN3@StopThread
$LN4@StopThread:

; 1228 :                 {
; 1229 :                     Sleep(50);

  00093	6a 32		 push	 50			; 00000032H
  00095	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4
$LN3@StopThread:

; 1230 :                 }
; 1231 :             }
; 1232 :             else

  0009b	eb 07		 jmp	 SHORT $LN2@StopThread
$LN5@StopThread:

; 1233 :             {
; 1234 :                 Thread_Stopped = TRUE;

  0009d	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _Thread_Stopped$[ebp], 1
$LN2@StopThread:

; 1235 :             }
; 1236 :         }

  000a4	eb af		 jmp	 SHORT $LN7@StopThread
$LN6@StopThread:

; 1237 : 
; 1238 :         if (Thread_Stopped == FALSE)

  000a6	83 7d fc 00	 cmp	 DWORD PTR _Thread_Stopped$[ebp], 0
  000aa	75 17		 jne	 SHORT $LN1@StopThread

; 1239 :         {
; 1240 :             TerminateThread(m_TDA9875Thread, 0);

  000ac	6a 00		 push	 0
  000ae	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  000b1	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  000b4	50		 push	 eax
  000b5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__TerminateThread@8

; 1241 :             Sleep(50);

  000bb	6a 32		 push	 50			; 00000032H
  000bd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4
$LN1@StopThread:

; 1242 :         }
; 1243 :         CloseHandle(m_TDA9875Thread);

  000c3	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000c6	8b 51 44	 mov	 edx, DWORD PTR [ecx+68]
  000c9	52		 push	 edx
  000ca	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CloseHandle@4

; 1244 :         m_TDA9875Thread = NULL;

  000d0	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000d3	c7 40 44 00 00
	00 00		 mov	 DWORD PTR [eax+68], 0
$LN9@StopThread:

; 1245 :     }
; 1246 : }

  000da	8b e5		 mov	 esp, ebp
  000dc	5d		 pop	 ebp
  000dd	c3		 ret	 0
?StopThread@CTDA9875AudioDecoder@@AAEXXZ ENDP		; CTDA9875AudioDecoder::StopThread
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetAudioDecoderValue@CTDA9875AudioDecoder@@UAEHHJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_Flags$140857 = -4					; size = 4
_What$ = 8						; size = 4
_Val$ = 12						; size = 4
?SetAudioDecoderValue@CTDA9875AudioDecoder@@UAEHHJ@Z PROC ; CTDA9875AudioDecoder::SetAudioDecoderValue, COMDAT
; _this$ = ecx

; 1154 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 1155 :     if (What==0)

  00009	83 7d 08 00	 cmp	 DWORD PTR _What$[ebp], 0
  0000d	75 29		 jne	 SHORT $LN1@SetAudioDe

; 1156 :     {
; 1157 :         long Flags = Val;

  0000f	8b 45 0c	 mov	 eax, DWORD PTR _Val$[ebp]
  00012	89 45 fc	 mov	 DWORD PTR _Flags$140857[ebp], eax

; 1158 :         m_IsInitialized = TRUE;

  00015	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	c7 41 2c 01 00
	00 00		 mov	 DWORD PTR [ecx+44], 1

; 1159 :         m_ForceAMSound = ((Flags & 0x08)!=0);

  0001f	8b 55 fc	 mov	 edx, DWORD PTR _Flags$140857[ebp]
  00022	83 e2 08	 and	 edx, 8
  00025	f7 da		 neg	 edx
  00027	1b d2		 sbb	 edx, edx
  00029	f7 da		 neg	 edx
  0002b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0002e	89 50 28	 mov	 DWORD PTR [eax+40], edx

; 1160 :         return 1;

  00031	b8 01 00 00 00	 mov	 eax, 1
  00036	eb 02		 jmp	 SHORT $LN2@SetAudioDe
$LN1@SetAudioDe:

; 1161 :     }
; 1162 :     return 0;

  00038	33 c0		 xor	 eax, eax
$LN2@SetAudioDe:

; 1163 : 
; 1164 : }

  0003a	8b e5		 mov	 esp, ebp
  0003c	5d		 pop	 ebp
  0003d	c2 08 00	 ret	 8
?SetAudioDecoderValue@CTDA9875AudioDecoder@@UAEHHJ@Z ENDP ; CTDA9875AudioDecoder::SetAudioDecoderValue
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioDecoderValue@CTDA9875AudioDecoder@@UAEJH@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_Flags$140849 = -4					; size = 4
_What$ = 8						; size = 4
?GetAudioDecoderValue@CTDA9875AudioDecoder@@UAEJH@Z PROC ; CTDA9875AudioDecoder::GetAudioDecoderValue, COMDAT
; _this$ = ecx

; 1140 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 1141 :     if (What==0)

  00009	83 7d 08 00	 cmp	 DWORD PTR _What$[ebp], 0
  0000d	75 1e		 jne	 SHORT $LN2@GetAudioDe

; 1142 :     {
; 1143 :         long Flags = 0;

  0000f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _Flags$140849[ebp], 0

; 1144 :         if (m_ForceAMSound)

  00016	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00019	83 78 28 00	 cmp	 DWORD PTR [eax+40], 0
  0001d	74 09		 je	 SHORT $LN1@GetAudioDe

; 1145 :         {
; 1146 :             Flags |= 0x08;

  0001f	8b 4d fc	 mov	 ecx, DWORD PTR _Flags$140849[ebp]
  00022	83 c9 08	 or	 ecx, 8
  00025	89 4d fc	 mov	 DWORD PTR _Flags$140849[ebp], ecx
$LN1@GetAudioDe:

; 1147 :         }
; 1148 :         return Flags;

  00028	8b 45 fc	 mov	 eax, DWORD PTR _Flags$140849[ebp]
  0002b	eb 02		 jmp	 SHORT $LN3@GetAudioDe
$LN2@GetAudioDe:

; 1149 :     }
; 1150 :     return 0;

  0002d	33 c0		 xor	 eax, eax
$LN3@GetAudioDe:

; 1151 : }

  0002f	8b e5		 mov	 esp, ebp
  00031	5d		 pop	 ebp
  00032	c2 04 00	 ret	 4
?GetAudioDecoderValue@CTDA9875AudioDecoder@@UAEJH@Z ENDP ; CTDA9875AudioDecoder::GetAudioDecoderValue
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioDecoderType@CTDA9875AudioDecoder@@UAE?AW4eAudioDecoderType@CAudioDecoder@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetAudioDecoderType@CTDA9875AudioDecoder@@UAE?AW4eAudioDecoderType@CAudioDecoder@@XZ PROC ; CTDA9875AudioDecoder::GetAudioDecoderType, COMDAT
; _this$ = ecx

; 773  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 774  :     return CAudioDecoder::AUDIODECODERTYPE_TDA9875;

  00007	b8 09 00 00 00	 mov	 eax, 9

; 775  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?GetAudioDecoderType@CTDA9875AudioDecoder@@UAE?AW4eAudioDecoderType@CAudioDecoder@@XZ ENDP ; CTDA9875AudioDecoder::GetAudioDecoderType
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardFromVideoFormat@CTDA9875AudioDecoder@@UAEJW4eVideoFormat@@@Z
_TEXT	SEGMENT
tv64 = -12						; size = 4
_this$ = -8						; size = 4
_standard$ = -4						; size = 2
_videoFormat$ = 8					; size = 4
?GetAudioStandardFromVideoFormat@CTDA9875AudioDecoder@@UAEJW4eVideoFormat@@@Z PROC ; CTDA9875AudioDecoder::GetAudioStandardFromVideoFormat, COMDAT
; _this$ = ecx

; 622  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 623  :     /// Guess the correct format
; 624  :     WORD standard = TDA9875_STANDARD_NONE;

  00009	33 c0		 xor	 eax, eax
  0000b	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 625  :     switch(videoFormat)

  0000f	8b 4d 08	 mov	 ecx, DWORD PTR _videoFormat$[ebp]
  00012	89 4d f4	 mov	 DWORD PTR tv64[ebp], ecx
  00015	83 7d f4 10	 cmp	 DWORD PTR tv64[ebp], 16	; 00000010H
  00019	0f 87 bd 00 00
	00		 ja	 $LN1@GetAudioSt
  0001f	8b 55 f4	 mov	 edx, DWORD PTR tv64[ebp]
  00022	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN22@GetAudioSt[edx*4]
$LN17@GetAudioSt:

; 626  :     {
; 627  :     case VIDEOFORMAT_PAL_B:
; 628  :         standard = TDA9875_STANDARD_BG_ANALOG_FM_FM;

  00029	b8 12 00 00 00	 mov	 eax, 18			; 00000012H
  0002e	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 629  :         break;

  00032	e9 ab 00 00 00	 jmp	 $LN18@GetAudioSt
$LN16@GetAudioSt:

; 630  :     case VIDEOFORMAT_PAL_D:
; 631  :         standard = TDA9875_STANDARD_DK1_ANALOG_FM_FM;

  00037	b9 14 00 00 00	 mov	 ecx, 20			; 00000014H
  0003c	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 632  :         break;

  00040	e9 9d 00 00 00	 jmp	 $LN18@GetAudioSt
$LN15@GetAudioSt:

; 633  :     case VIDEOFORMAT_PAL_G:
; 634  :         standard = TDA9875_STANDARD_BG_ANALOG_FM_FM;

  00045	ba 12 00 00 00	 mov	 edx, 18			; 00000012H
  0004a	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 635  :         break;

  0004e	e9 8f 00 00 00	 jmp	 $LN18@GetAudioSt
$LN14@GetAudioSt:

; 636  :     case VIDEOFORMAT_PAL_H:
; 637  :         // \todo FIXME
; 638  :         standard = TDA9875_STANDARD_NONE;

  00053	33 c0		 xor	 eax, eax
  00055	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 639  :         break;

  00059	e9 84 00 00 00	 jmp	 $LN18@GetAudioSt
$LN13@GetAudioSt:

; 640  :     case VIDEOFORMAT_PAL_I:
; 641  :         standard = TDA9875_STANDARD_I_ANALOG_FM_NONE;

  0005e	b9 13 00 00 00	 mov	 ecx, 19			; 00000013H
  00063	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 642  :         break;

  00067	eb 79		 jmp	 SHORT $LN18@GetAudioSt
$LN12@GetAudioSt:

; 643  :     case VIDEOFORMAT_PAL_M:
; 644  :         // \todo FIXME
; 645  :         standard = TDA9875_STANDARD_M_ANALOG_FM_NONE;

  00069	ba 10 00 00 00	 mov	 edx, 16			; 00000010H
  0006e	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 646  :         break;

  00072	eb 6e		 jmp	 SHORT $LN18@GetAudioSt
$LN11@GetAudioSt:

; 647  :     case VIDEOFORMAT_PAL_N:
; 648  :         // \todo FIXME
; 649  :         standard = TDA9875_STANDARD_NONE;

  00074	33 c0		 xor	 eax, eax
  00076	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 650  :         break;

  0007a	eb 66		 jmp	 SHORT $LN18@GetAudioSt
$LN10@GetAudioSt:

; 651  :     case VIDEOFORMAT_PAL_N_COMBO:
; 652  :         // \todo FIXME
; 653  :         standard = TDA9875_STANDARD_NONE;

  0007c	33 c9		 xor	 ecx, ecx
  0007e	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 654  :         break;

  00082	eb 5e		 jmp	 SHORT $LN18@GetAudioSt
$LN9@GetAudioSt:

; 655  :     case VIDEOFORMAT_SECAM_B:
; 656  :         standard = TDA9875_STANDARD_BG_ANALOG_FM_FM;

  00084	ba 12 00 00 00	 mov	 edx, 18			; 00000012H
  00089	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 657  :         break;

  0008d	eb 53		 jmp	 SHORT $LN18@GetAudioSt
$LN8@GetAudioSt:

; 658  :     case VIDEOFORMAT_SECAM_D:
; 659  :         standard = TDA9875_STANDARD_DK1_ANALOG_FM_FM;

  0008f	b8 14 00 00 00	 mov	 eax, 20			; 00000014H
  00094	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 660  :         break;

  00098	eb 48		 jmp	 SHORT $LN18@GetAudioSt
$LN7@GetAudioSt:

; 661  :     case VIDEOFORMAT_SECAM_G:
; 662  :         standard = TDA9875_STANDARD_BG_ANALOG_FM_FM;

  0009a	b9 12 00 00 00	 mov	 ecx, 18			; 00000012H
  0009f	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 663  :         break;

  000a3	eb 3d		 jmp	 SHORT $LN18@GetAudioSt
$LN6@GetAudioSt:

; 664  :     case VIDEOFORMAT_SECAM_H:
; 665  :         standard = TDA9875_STANDARD_DK1_ANALOG_FM_FM;

  000a5	ba 14 00 00 00	 mov	 edx, 20			; 00000014H
  000aa	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 666  :         break;

  000ae	eb 32		 jmp	 SHORT $LN18@GetAudioSt
$LN5@GetAudioSt:

; 667  :     case VIDEOFORMAT_SECAM_K:
; 668  :         standard = TDA9875_STANDARD_DK1_ANALOG_FM_FM;

  000b0	b8 14 00 00 00	 mov	 eax, 20			; 00000014H
  000b5	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 669  :         break;

  000b9	eb 27		 jmp	 SHORT $LN18@GetAudioSt
$LN4@GetAudioSt:

; 670  :     case VIDEOFORMAT_SECAM_K1:
; 671  :         standard = TDA9875_STANDARD_DK2_ANALOG_FM_FM;

  000bb	b9 15 00 00 00	 mov	 ecx, 21			; 00000015H
  000c0	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 672  :         break;

  000c4	eb 1c		 jmp	 SHORT $LN18@GetAudioSt
$LN3@GetAudioSt:

; 673  :     case VIDEOFORMAT_SECAM_L:
; 674  :         standard = TDA9875_STANDARD_L_DIGITAL_AM_NICAM;

  000c6	ba 33 00 00 00	 mov	 edx, 51			; 00000033H
  000cb	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 675  :         break;

  000cf	eb 11		 jmp	 SHORT $LN18@GetAudioSt
$LN2@GetAudioSt:

; 676  :     case VIDEOFORMAT_SECAM_L1:
; 677  :         standard = TDA9875_STANDARD_L_DIGITAL_AM_NICAM;

  000d1	b8 33 00 00 00	 mov	 eax, 51			; 00000033H
  000d6	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 678  :         break;

  000da	eb 06		 jmp	 SHORT $LN18@GetAudioSt
$LN1@GetAudioSt:

; 679  :     default:
; 680  :     case VIDEOFORMAT_PAL_60:
; 681  :     case VIDEOFORMAT_NTSC_50:
; 682  :         standard = TDA9875_STANDARD_NONE;

  000dc	33 c9		 xor	 ecx, ecx
  000de	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx
$LN18@GetAudioSt:

; 683  :         break;
; 684  :     }
; 685  :     return standard;

  000e2	0f b7 45 fc	 movzx	 eax, WORD PTR _standard$[ebp]

; 686  : 
; 687  : }

  000e6	8b e5		 mov	 esp, ebp
  000e8	5d		 pop	 ebp
  000e9	c2 04 00	 ret	 4
$LN22@GetAudioSt:
  000ec	00 00 00 00	 DD	 $LN17@GetAudioSt
  000f0	00 00 00 00	 DD	 $LN16@GetAudioSt
  000f4	00 00 00 00	 DD	 $LN15@GetAudioSt
  000f8	00 00 00 00	 DD	 $LN14@GetAudioSt
  000fc	00 00 00 00	 DD	 $LN13@GetAudioSt
  00100	00 00 00 00	 DD	 $LN12@GetAudioSt
  00104	00 00 00 00	 DD	 $LN11@GetAudioSt
  00108	00 00 00 00	 DD	 $LN1@GetAudioSt
  0010c	00 00 00 00	 DD	 $LN10@GetAudioSt
  00110	00 00 00 00	 DD	 $LN9@GetAudioSt
  00114	00 00 00 00	 DD	 $LN8@GetAudioSt
  00118	00 00 00 00	 DD	 $LN7@GetAudioSt
  0011c	00 00 00 00	 DD	 $LN6@GetAudioSt
  00120	00 00 00 00	 DD	 $LN5@GetAudioSt
  00124	00 00 00 00	 DD	 $LN4@GetAudioSt
  00128	00 00 00 00	 DD	 $LN3@GetAudioSt
  0012c	00 00 00 00	 DD	 $LN2@GetAudioSt
?GetAudioStandardFromVideoFormat@CTDA9875AudioDecoder@@UAEJW4eVideoFormat@@@Z ENDP ; CTDA9875AudioDecoder::GetAudioStandardFromVideoFormat
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardMinorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_nIndex$ = -4						; size = 4
_Standard$ = 8						; size = 4
?GetAudioStandardMinorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z PROC ; CTDA9875AudioDecoder::GetAudioStandardMinorCarrier, COMDAT
; _this$ = ecx

; 569  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 570  :     if (Standard < 0) //Current

  00009	83 7d 08 00	 cmp	 DWORD PTR _Standard$[ebp], 0
  0000d	7d 1c		 jge	 SHORT $LN7@GetAudioSt@2

; 571  :     {
; 572  :         if (m_AudioStandardMinorCarrier == 0)

  0000f	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 78 18 00	 cmp	 DWORD PTR [eax+24], 0
  00016	75 0b		 jne	 SHORT $LN6@GetAudioSt@2

; 573  :         {
; 574  :             Standard = m_AudioStandard; //default carrier

  00018	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  0001e	89 55 08	 mov	 DWORD PTR _Standard$[ebp], edx

; 575  :         }
; 576  :         else

  00021	eb 08		 jmp	 SHORT $LN7@GetAudioSt@2
$LN6@GetAudioSt@2:

; 577  :         {
; 578  :             return m_AudioStandardMinorCarrier;

  00023	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b 40 18	 mov	 eax, DWORD PTR [eax+24]
  00029	eb 4c		 jmp	 SHORT $LN8@GetAudioSt@2
$LN7@GetAudioSt@2:

; 579  :         }
; 580  :     }
; 581  :     if (Standard == TDA9875_STANDARD_NONE)

  0002b	83 7d 08 00	 cmp	 DWORD PTR _Standard$[ebp], 0
  0002f	75 04		 jne	 SHORT $LN4@GetAudioSt@2

; 582  :     {
; 583  :         return 0; //No standard

  00031	33 c0		 xor	 eax, eax
  00033	eb 42		 jmp	 SHORT $LN8@GetAudioSt@2
$LN4@GetAudioSt@2:

; 584  :     }
; 585  :     int nIndex = 0;

  00035	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _nIndex$[ebp], 0
$LN3@GetAudioSt@2:

; 586  :     while (m_TDA9875Standards[nIndex].Name != NULL)

  0003c	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  0003f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00042	83 b9 00 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx], 0
  00049	74 2a		 je	 SHORT $LN2@GetAudioSt@2

; 587  :     {
; 588  :         if (m_TDA9875Standards[nIndex].Standard == Standard)

  0004b	8b 55 fc	 mov	 edx, DWORD PTR _nIndex$[ebp]
  0004e	6b d2 1c	 imul	 edx, 28			; 0000001cH
  00051	8b 82 04 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[edx+4]
  00057	3b 45 08	 cmp	 eax, DWORD PTR _Standard$[ebp]
  0005a	75 0e		 jne	 SHORT $LN1@GetAudioSt@2

; 589  :         {
; 590  :             return m_TDA9875Standards[nIndex].MinorCarrier;

  0005c	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  0005f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00062	8b 81 0c 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx+12]
  00068	eb 0d		 jmp	 SHORT $LN8@GetAudioSt@2
$LN1@GetAudioSt@2:

; 591  :         }
; 592  :         nIndex++;

  0006a	8b 55 fc	 mov	 edx, DWORD PTR _nIndex$[ebp]
  0006d	83 c2 01	 add	 edx, 1
  00070	89 55 fc	 mov	 DWORD PTR _nIndex$[ebp], edx

; 593  :     }

  00073	eb c7		 jmp	 SHORT $LN3@GetAudioSt@2
$LN2@GetAudioSt@2:

; 594  :     return 0;

  00075	33 c0		 xor	 eax, eax
$LN8@GetAudioSt@2:

; 595  : 
; 596  : }

  00077	8b e5		 mov	 esp, ebp
  00079	5d		 pop	 ebp
  0007a	c2 04 00	 ret	 4
?GetAudioStandardMinorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z ENDP ; CTDA9875AudioDecoder::GetAudioStandardMinorCarrier
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardMajorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_nIndex$ = -4						; size = 4
_Standard$ = 8						; size = 4
?GetAudioStandardMajorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z PROC ; CTDA9875AudioDecoder::GetAudioStandardMajorCarrier, COMDAT
; _this$ = ecx

; 540  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 541  :     if (Standard < 0) //Current

  00009	83 7d 08 00	 cmp	 DWORD PTR _Standard$[ebp], 0
  0000d	7d 1c		 jge	 SHORT $LN7@GetAudioSt@3

; 542  :     {
; 543  :         if (m_AudioStandardMajorCarrier == 0)

  0000f	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00012	83 78 14 00	 cmp	 DWORD PTR [eax+20], 0
  00016	75 0b		 jne	 SHORT $LN6@GetAudioSt@3

; 544  :         {
; 545  :             Standard = m_AudioStandard; //default carrier

  00018	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	8b 51 10	 mov	 edx, DWORD PTR [ecx+16]
  0001e	89 55 08	 mov	 DWORD PTR _Standard$[ebp], edx

; 546  :         }
; 547  :         else

  00021	eb 08		 jmp	 SHORT $LN7@GetAudioSt@3
$LN6@GetAudioSt@3:

; 548  :         {
; 549  :             return m_AudioStandardMajorCarrier;

  00023	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b 40 14	 mov	 eax, DWORD PTR [eax+20]
  00029	eb 4c		 jmp	 SHORT $LN8@GetAudioSt@3
$LN7@GetAudioSt@3:

; 550  :         }
; 551  :     }
; 552  :     if (Standard == TDA9875_STANDARD_NONE)

  0002b	83 7d 08 00	 cmp	 DWORD PTR _Standard$[ebp], 0
  0002f	75 04		 jne	 SHORT $LN4@GetAudioSt@3

; 553  :     {
; 554  :         return 0; //No standard

  00031	33 c0		 xor	 eax, eax
  00033	eb 42		 jmp	 SHORT $LN8@GetAudioSt@3
$LN4@GetAudioSt@3:

; 555  :     }
; 556  :     int nIndex = 0;

  00035	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _nIndex$[ebp], 0
$LN3@GetAudioSt@3:

; 557  :     while (m_TDA9875Standards[nIndex].Name != NULL)

  0003c	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  0003f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00042	83 b9 00 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx], 0
  00049	74 2a		 je	 SHORT $LN2@GetAudioSt@3

; 558  :     {
; 559  :         if (m_TDA9875Standards[nIndex].Standard == Standard)

  0004b	8b 55 fc	 mov	 edx, DWORD PTR _nIndex$[ebp]
  0004e	6b d2 1c	 imul	 edx, 28			; 0000001cH
  00051	8b 82 04 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[edx+4]
  00057	3b 45 08	 cmp	 eax, DWORD PTR _Standard$[ebp]
  0005a	75 0e		 jne	 SHORT $LN1@GetAudioSt@3

; 560  :         {
; 561  :             return m_TDA9875Standards[nIndex].MajorCarrier;

  0005c	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  0005f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00062	8b 81 08 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx+8]
  00068	eb 0d		 jmp	 SHORT $LN8@GetAudioSt@3
$LN1@GetAudioSt@3:

; 562  :         }
; 563  :         nIndex++;

  0006a	8b 55 fc	 mov	 edx, DWORD PTR _nIndex$[ebp]
  0006d	83 c2 01	 add	 edx, 1
  00070	89 55 fc	 mov	 DWORD PTR _nIndex$[ebp], edx

; 564  :     }

  00073	eb c7		 jmp	 SHORT $LN3@GetAudioSt@3
$LN2@GetAudioSt@3:

; 565  :     return 0;

  00075	33 c0		 xor	 eax, eax
$LN8@GetAudioSt@3:

; 566  : 
; 567  : }

  00077	8b e5		 mov	 esp, ebp
  00079	5d		 pop	 ebp
  0007a	c2 04 00	 ret	 4
?GetAudioStandardMajorCarrier@CTDA9875AudioDecoder@@UAEJJ@Z ENDP ; CTDA9875AudioDecoder::GetAudioStandardMajorCarrier
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandard@CTDA9875AudioDecoder@@UAEJH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_nIndex$ = 8						; size = 4
?GetAudioStandard@CTDA9875AudioDecoder@@UAEJH@Z PROC	; CTDA9875AudioDecoder::GetAudioStandard, COMDAT
; _this$ = ecx

; 528  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 529  :     if ((nIndex < 0) || (nIndex >= GetNumAudioStandards()) )

  00007	83 7d 08 00	 cmp	 DWORD PTR _nIndex$[ebp], 0
  0000b	7c 12		 jl	 SHORT $LN2@GetAudioSt@4
  0000d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00013	8b 10		 mov	 edx, DWORD PTR [eax]
  00015	8b 42 2c	 mov	 eax, DWORD PTR [edx+44]
  00018	ff d0		 call	 eax
  0001a	39 45 08	 cmp	 DWORD PTR _nIndex$[ebp], eax
  0001d	7c 04		 jl	 SHORT $LN3@GetAudioSt@4
$LN2@GetAudioSt@4:

; 530  :     {
; 531  :         return 0;

  0001f	33 c0		 xor	 eax, eax
  00021	eb 19		 jmp	 SHORT $LN4@GetAudioSt@4
$LN3@GetAudioSt@4:

; 532  :     }
; 533  :     if (nIndex == 0)

  00023	83 7d 08 00	 cmp	 DWORD PTR _nIndex$[ebp], 0
  00027	75 04		 jne	 SHORT $LN1@GetAudioSt@4

; 534  :     {
; 535  :         return TDA9875_STANDARD_NONE;

  00029	33 c0		 xor	 eax, eax
  0002b	eb 0f		 jmp	 SHORT $LN4@GetAudioSt@4
$LN1@GetAudioSt@4:

; 536  :     }
; 537  :     return m_TDA9875Standards[nIndex-1].Standard;

  0002d	8b 4d 08	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  00030	83 e9 01	 sub	 ecx, 1
  00033	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00036	8b 81 04 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx+4]
$LN4@GetAudioSt@4:

; 538  : }

  0003c	8b e5		 mov	 esp, ebp
  0003e	5d		 pop	 ebp
  0003f	c2 04 00	 ret	 4
?GetAudioStandard@CTDA9875AudioDecoder@@UAEJH@Z ENDP	; CTDA9875AudioDecoder::GetAudioStandard
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetNumAudioStandards@CTDA9875AudioDecoder@@UAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetNumAudioStandards@CTDA9875AudioDecoder@@UAEHXZ PROC	; CTDA9875AudioDecoder::GetNumAudioStandards, COMDAT
; _this$ = ecx

; 524  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 525  :     return ((sizeof(m_TDA9875Standards)/sizeof(TStandardDefinition)));

  00007	b8 10 00 00 00	 mov	 eax, 16			; 00000010H

; 526  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?GetNumAudioStandards@CTDA9875AudioDecoder@@UAEHXZ ENDP	; CTDA9875AudioDecoder::GetNumAudioStandards
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardName@CTDA9875AudioDecoder@@UAEPB_WJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_nIndex$ = -4						; size = 4
_Standard$ = 8						; size = 4
?GetAudioStandardName@CTDA9875AudioDecoder@@UAEPB_WJ@Z PROC ; CTDA9875AudioDecoder::GetAudioStandardName, COMDAT
; _this$ = ecx

; 503  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 504  :     if (Standard == TDA9875_STANDARD_NONE)

  00009	83 7d 08 00	 cmp	 DWORD PTR _Standard$[ebp], 0
  0000d	75 07		 jne	 SHORT $LN5@GetAudioSt@5

; 505  :     {
; 506  :         return _T("<No standard>");

  0000f	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_1BM@EOOLBDBI@?$AA?$DM?$AAN?$AAo?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DO?$AA?$AA@
  00014	eb 52		 jmp	 SHORT $LN6@GetAudioSt@5
$LN5@GetAudioSt@5:

; 507  :     }
; 508  :     if (Standard >= TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS)

  00016	81 7d 08 ff 07
	00 00		 cmp	 DWORD PTR _Standard$[ebp], 2047 ; 000007ffH
  0001d	7c 07		 jl	 SHORT $LN4@GetAudioSt@5

; 509  :     {
; 510  :         return _T("Detecting...");

  0001f	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_1BK@HKADPBDF@?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAi?$AAn?$AAg?$AA?4?$AA?4?$AA?4?$AA?$AA@
  00024	eb 42		 jmp	 SHORT $LN6@GetAudioSt@5
$LN4@GetAudioSt@5:

; 511  :     }
; 512  :     int nIndex = 0;

  00026	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _nIndex$[ebp], 0
$LN3@GetAudioSt@5:

; 513  :     while (m_TDA9875Standards[nIndex].Name != NULL)

  0002d	8b 45 fc	 mov	 eax, DWORD PTR _nIndex$[ebp]
  00030	6b c0 1c	 imul	 eax, 28			; 0000001cH
  00033	83 b8 00 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[eax], 0
  0003a	74 2a		 je	 SHORT $LN2@GetAudioSt@5

; 514  :     {
; 515  :         if (m_TDA9875Standards[nIndex].Standard == Standard)

  0003c	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  0003f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00042	8b 91 04 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx+4]
  00048	3b 55 08	 cmp	 edx, DWORD PTR _Standard$[ebp]
  0004b	75 0e		 jne	 SHORT $LN1@GetAudioSt@5

; 516  :         {
; 517  :             return m_TDA9875Standards[nIndex].Name;

  0004d	8b 45 fc	 mov	 eax, DWORD PTR _nIndex$[ebp]
  00050	6b c0 1c	 imul	 eax, 28			; 0000001cH
  00053	8b 80 00 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[eax]
  00059	eb 0d		 jmp	 SHORT $LN6@GetAudioSt@5
$LN1@GetAudioSt@5:

; 518  :         }
; 519  :         nIndex++;

  0005b	8b 4d fc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  0005e	83 c1 01	 add	 ecx, 1
  00061	89 4d fc	 mov	 DWORD PTR _nIndex$[ebp], ecx

; 520  :     }

  00064	eb c7		 jmp	 SHORT $LN3@GetAudioSt@5
$LN2@GetAudioSt@5:

; 521  :     return NULL;

  00066	33 c0		 xor	 eax, eax
$LN6@GetAudioSt@5:

; 522  : }

  00068	8b e5		 mov	 esp, ebp
  0006a	5d		 pop	 ebp
  0006b	c2 04 00	 ret	 4
?GetAudioStandardName@CTDA9875AudioDecoder@@UAEPB_WJ@Z ENDP ; CTDA9875AudioDecoder::GetAudioStandardName
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?IsAudioChannelDetected@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z
_TEXT	SEGMENT
tv64 = -12						; size = 4
_this$ = -8						; size = 4
_SoundChannel$ = -4					; size = 4
_desiredAudioChannel$ = 8				; size = 4
?IsAudioChannelDetected@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z PROC ; CTDA9875AudioDecoder::IsAudioChannelDetected, COMDAT
; _this$ = ecx

; 347  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 348  :     eSoundChannel SoundChannel = SOUNDCHANNEL_MONO;

  00009	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _SoundChannel$[ebp], 1

; 349  :     switch (desiredAudioChannel)

  00010	8b 45 08	 mov	 eax, DWORD PTR _desiredAudioChannel$[ebp]
  00013	89 45 f4	 mov	 DWORD PTR tv64[ebp], eax
  00016	83 7d f4 02	 cmp	 DWORD PTR tv64[ebp], 2
  0001a	74 0e		 je	 SHORT $LN6@IsAudioCha
  0001c	83 7d f4 03	 cmp	 DWORD PTR tv64[ebp], 3
  00020	74 1b		 je	 SHORT $LN4@IsAudioCha
  00022	83 7d f4 04	 cmp	 DWORD PTR tv64[ebp], 4
  00026	74 28		 je	 SHORT $LN2@IsAudioCha
  00028	eb 37		 jmp	 SHORT $LN7@IsAudioCha
$LN6@IsAudioCha:

; 350  :     {
; 351  :     case SOUNDCHANNEL_STEREO:
; 352  :         if (m_SupportedSoundChannels & SUPPORTEDSOUNDCHANNEL_STEREO)

  0002a	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002d	8b 51 68	 mov	 edx, DWORD PTR [ecx+104]
  00030	83 e2 02	 and	 edx, 2
  00033	74 06		 je	 SHORT $LN5@IsAudioCha

; 353  :             SoundChannel = desiredAudioChannel;

  00035	8b 45 08	 mov	 eax, DWORD PTR _desiredAudioChannel$[ebp]
  00038	89 45 fc	 mov	 DWORD PTR _SoundChannel$[ebp], eax
$LN5@IsAudioCha:

; 354  :         break;

  0003b	eb 24		 jmp	 SHORT $LN7@IsAudioCha
$LN4@IsAudioCha:

; 355  :     case SOUNDCHANNEL_LANGUAGE1:
; 356  :         if (m_SupportedSoundChannels & SUPPORTEDSOUNDCHANNEL_LANG1)

  0003d	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00040	8b 51 68	 mov	 edx, DWORD PTR [ecx+104]
  00043	83 e2 04	 and	 edx, 4
  00046	74 06		 je	 SHORT $LN3@IsAudioCha

; 357  :             SoundChannel = desiredAudioChannel;

  00048	8b 45 08	 mov	 eax, DWORD PTR _desiredAudioChannel$[ebp]
  0004b	89 45 fc	 mov	 DWORD PTR _SoundChannel$[ebp], eax
$LN3@IsAudioCha:

; 358  :         break;

  0004e	eb 11		 jmp	 SHORT $LN7@IsAudioCha
$LN2@IsAudioCha:

; 359  :     case SOUNDCHANNEL_LANGUAGE2:
; 360  :         if (m_SupportedSoundChannels & SUPPORTEDSOUNDCHANNEL_LANG2)

  00050	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00053	8b 51 68	 mov	 edx, DWORD PTR [ecx+104]
  00056	83 e2 08	 and	 edx, 8
  00059	74 06		 je	 SHORT $LN7@IsAudioCha

; 361  :             SoundChannel = desiredAudioChannel;

  0005b	8b 45 08	 mov	 eax, DWORD PTR _desiredAudioChannel$[ebp]
  0005e	89 45 fc	 mov	 DWORD PTR _SoundChannel$[ebp], eax
$LN7@IsAudioCha:

; 362  :         break;
; 363  :     }
; 364  :     return SoundChannel;

  00061	8b 45 fc	 mov	 eax, DWORD PTR _SoundChannel$[ebp]

; 365  : }

  00064	8b e5		 mov	 esp, ebp
  00066	5d		 pop	 ebp
  00067	c2 04 00	 ret	 4
?IsAudioChannelDetected@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z ENDP ; CTDA9875AudioDecoder::IsAudioChannelDetected
_TEXT	ENDS
PUBLIC	?SetUseInputPin1@CTDA9875AudioDecoder@@QAEXH@Z	; CTDA9875AudioDecoder::SetUseInputPin1
; Function compile flags: /Odtp
;	COMDAT ?SetUseInputPin1@CTDA9875AudioDecoder@@QAEXH@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_AValue$ = 8						; size = 4
?SetUseInputPin1@CTDA9875AudioDecoder@@QAEXH@Z PROC	; CTDA9875AudioDecoder::SetUseInputPin1, COMDAT
; _this$ = ecx

; 284  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 285  :     m_bUseInputPin1 = AValue;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _AValue$[ebp]
  0000d	89 48 3c	 mov	 DWORD PTR [eax+60], ecx

; 286  :     if (m_IsInitialized)

  00010	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00013	83 7a 38 00	 cmp	 DWORD PTR [edx+56], 0
  00017	74 1f		 je	 SHORT $LN2@SetUseInpu

; 287  :         SetAudioStandard(m_AudioStandard, m_VideoFormat);

  00019	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001c	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0001f	51		 push	 ecx
  00020	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00023	8b 42 1c	 mov	 eax, DWORD PTR [edx+28]
  00026	50		 push	 eax
  00027	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002a	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0002d	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00030	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00033	8b 50 20	 mov	 edx, DWORD PTR [eax+32]
  00036	ff d2		 call	 edx
$LN2@SetUseInpu:

; 288  : }

  00038	8b e5		 mov	 esp, ebp
  0003a	5d		 pop	 ebp
  0003b	c2 04 00	 ret	 4
?SetUseInputPin1@CTDA9875AudioDecoder@@QAEXH@Z ENDP	; CTDA9875AudioDecoder::SetUseInputPin1
_TEXT	ENDS
PUBLIC	?GetUseInputPin1@CTDA9875AudioDecoder@@QAEHXZ	; CTDA9875AudioDecoder::GetUseInputPin1
; Function compile flags: /Odtp
;	COMDAT ?GetUseInputPin1@CTDA9875AudioDecoder@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetUseInputPin1@CTDA9875AudioDecoder@@QAEHXZ PROC	; CTDA9875AudioDecoder::GetUseInputPin1, COMDAT
; _this$ = ecx

; 279  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 280  :     return m_bUseInputPin1;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 3c	 mov	 eax, DWORD PTR [eax+60]

; 281  : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetUseInputPin1@CTDA9875AudioDecoder@@QAEHXZ ENDP	; CTDA9875AudioDecoder::GetUseInputPin1
PUBLIC	__real@4167700000000000
PUBLIC	?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875
;	COMDAT __real@4167700000000000
CONST	SEGMENT
__real@4167700000000000 DQ 04167700000000000r	; 1.2288e+007
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z
_TEXT	SEGMENT
tv182 = -44						; size = 8
tv180 = -36						; size = 4
tv177 = -30						; size = 2
tv173 = -28						; size = 8
tv171 = -20						; size = 4
tv168 = -14						; size = 2
_this$ = -12						; size = 4
_dwC2$ = -8						; size = 4
_dwC1$ = -4						; size = 4
_MajorCarrier$ = 8					; size = 4
_MinorCarrier$ = 12					; size = 4
?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z PROC ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875, COMDAT
; _this$ = ecx

; 598  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 2c	 sub	 esp, 44			; 0000002cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 599  :     DWORD dwC2 = (DWORD)TDA9875_CARRIER(MinorCarrier);

  00009	db 45 0c	 fild	 DWORD PTR _MinorCarrier$[ebp]
  0000c	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@4170000000000000
  00012	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4167700000000000
  00018	d9 7d f2	 fnstcw	 WORD PTR tv168[ebp]
  0001b	0f b7 45 f2	 movzx	 eax, WORD PTR tv168[ebp]
  0001f	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00024	89 45 ec	 mov	 DWORD PTR tv171[ebp], eax
  00027	d9 6d ec	 fldcw	 WORD PTR tv171[ebp]
  0002a	df 7d e4	 fistp	 QWORD PTR tv173[ebp]
  0002d	d9 6d f2	 fldcw	 WORD PTR tv168[ebp]
  00030	8b 45 e4	 mov	 eax, DWORD PTR tv173[ebp]
  00033	89 45 f8	 mov	 DWORD PTR _dwC2$[ebp], eax

; 600  :     DWORD dwC1 = (DWORD)TDA9875_CARRIER(MajorCarrier);

  00036	db 45 08	 fild	 DWORD PTR _MajorCarrier$[ebp]
  00039	dc 0d 00 00 00
	00		 fmul	 QWORD PTR __real@4170000000000000
  0003f	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4167700000000000
  00045	d9 7d e2	 fnstcw	 WORD PTR tv177[ebp]
  00048	0f b7 45 e2	 movzx	 eax, WORD PTR tv177[ebp]
  0004c	0d 00 0c 00 00	 or	 eax, 3072		; 00000c00H
  00051	89 45 dc	 mov	 DWORD PTR tv180[ebp], eax
  00054	d9 6d dc	 fldcw	 WORD PTR tv180[ebp]
  00057	df 7d d4	 fistp	 QWORD PTR tv182[ebp]
  0005a	d9 6d e2	 fldcw	 WORD PTR tv177[ebp]
  0005d	8b 4d d4	 mov	 ecx, DWORD PTR tv182[ebp]
  00060	89 4d fc	 mov	 DWORD PTR _dwC1$[ebp], ecx

; 601  : 
; 602  :     WriteToSubAddress(TDA9875_C1MSB, (BYTE)((dwC1 & 0xff0000) >> 16));

  00063	8b 55 fc	 mov	 edx, DWORD PTR _dwC1$[ebp]
  00066	81 e2 00 00 ff
	00		 and	 edx, 16711680		; 00ff0000H
  0006c	c1 ea 10	 shr	 edx, 16			; 00000010H
  0006f	52		 push	 edx
  00070	6a 03		 push	 3
  00072	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00075	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 603  :     WriteToSubAddress(TDA9875_C1MIB, (BYTE)((dwC1 & 0x00ff00) >> 8));

  0007a	8b 45 fc	 mov	 eax, DWORD PTR _dwC1$[ebp]
  0007d	25 00 ff 00 00	 and	 eax, 65280		; 0000ff00H
  00082	c1 e8 08	 shr	 eax, 8
  00085	50		 push	 eax
  00086	6a 04		 push	 4
  00088	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0008b	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 604  :     WriteToSubAddress(TDA9875_C1LSB, (BYTE)(dwC1 & 0x0000ff));

  00090	8b 4d fc	 mov	 ecx, DWORD PTR _dwC1$[ebp]
  00093	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00099	51		 push	 ecx
  0009a	6a 05		 push	 5
  0009c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0009f	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 605  : 
; 606  :     WriteToSubAddress(TDA9875_C2MSB, (BYTE)((dwC2 & 0xff0000) >> 16));

  000a4	8b 55 f8	 mov	 edx, DWORD PTR _dwC2$[ebp]
  000a7	81 e2 00 00 ff
	00		 and	 edx, 16711680		; 00ff0000H
  000ad	c1 ea 10	 shr	 edx, 16			; 00000010H
  000b0	52		 push	 edx
  000b1	6a 06		 push	 6
  000b3	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000b6	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 607  :     WriteToSubAddress(TDA9875_C2MIB, (BYTE)((dwC2 & 0x00ff00) >> 8));

  000bb	8b 45 f8	 mov	 eax, DWORD PTR _dwC2$[ebp]
  000be	25 00 ff 00 00	 and	 eax, 65280		; 0000ff00H
  000c3	c1 e8 08	 shr	 eax, 8
  000c6	50		 push	 eax
  000c7	6a 07		 push	 7
  000c9	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000cc	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 608  :     WriteToSubAddress(TDA9875_C2LSB, (BYTE)(dwC2 & 0x0000ff));

  000d1	8b 4d f8	 mov	 ecx, DWORD PTR _dwC2$[ebp]
  000d4	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  000da	51		 push	 ecx
  000db	6a 08		 push	 8
  000dd	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000e0	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 609  : 
; 610  : }

  000e5	8b e5		 mov	 esp, ebp
  000e7	5d		 pop	 ebp
  000e8	c2 08 00	 ret	 8
?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ENDP ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardCurrent@CTDA9875AudioDecoder@@UAEJXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetAudioStandardCurrent@CTDA9875AudioDecoder@@UAEJXZ PROC ; CTDA9875AudioDecoder::GetAudioStandardCurrent, COMDAT
; _this$ = ecx

; 499  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 500  :     return CAudioDecoder::GetAudioStandardCurrent();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetAudioStandardCurrent@CAudioDecoder@@UAEJXZ ; CAudioDecoder::GetAudioStandardCurrent

; 501  : }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
?GetAudioStandardCurrent@CTDA9875AudioDecoder@@UAEJXZ ENDP ; CTDA9875AudioDecoder::GetAudioStandardCurrent
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioInputName@CTDA9875AudioDecoder@@UAEPB_WW4eAudioInput@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_audioInput$ = 8					; size = 4
?GetAudioInputName@CTDA9875AudioDecoder@@UAEPB_WW4eAudioInput@@@Z PROC ; CTDA9875AudioDecoder::GetAudioInputName, COMDAT
; _this$ = ecx

; 395  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 396  :     if (audioInput == AUDIOINPUT_RADIO)

  00007	83 7d 08 01	 cmp	 DWORD PTR _audioInput$[ebp], 1
  0000b	75 07		 jne	 SHORT $LN1@GetAudioIn@2

; 397  :         return _T("Radio not Available");

  0000d	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_1CI@GGLDJMPK@?$AAR?$AAa?$AAd?$AAi?$AAo?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAA?$AAv?$AAa?$AAi?$AAl?$AAa?$AAb?$AAl?$AAe?$AA?$AA@
  00012	eb 0c		 jmp	 SHORT $LN2@GetAudioIn@2
$LN1@GetAudioIn@2:

; 398  : 
; 399  :     return CAudioDecoder::GetAudioInputName(audioInput);

  00014	8b 45 08	 mov	 eax, DWORD PTR _audioInput$[ebp]
  00017	50		 push	 eax
  00018	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	e8 00 00 00 00	 call	 ?GetAudioInputName@CAudioDecoder@@UAEPB_WW4eAudioInput@@@Z ; CAudioDecoder::GetAudioInputName
$LN2@GetAudioIn@2:

; 400  : }

  00020	8b e5		 mov	 esp, ebp
  00022	5d		 pop	 ebp
  00023	c2 04 00	 ret	 4
?GetAudioInputName@CTDA9875AudioDecoder@@UAEPB_WW4eAudioInput@@@Z ENDP ; CTDA9875AudioDecoder::GetAudioInputName
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioInput@CTDA9875AudioDecoder@@UAE?AW4eAudioInput@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetAudioInput@CTDA9875AudioDecoder@@UAE?AW4eAudioInput@@XZ PROC ; CTDA9875AudioDecoder::GetAudioInput, COMDAT
; _this$ = ecx

; 391  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 392  :     return CAudioDecoder::GetAudioInput();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetAudioInput@CAudioDecoder@@UAE?AW4eAudioInput@@XZ ; CAudioDecoder::GetAudioInput

; 393  : }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
?GetAudioInput@CTDA9875AudioDecoder@@UAE?AW4eAudioInput@@XZ ENDP ; CTDA9875AudioDecoder::GetAudioInput
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetSoundChannel@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetSoundChannel@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@XZ PROC ; CTDA9875AudioDecoder::GetSoundChannel, COMDAT
; _this$ = ecx

; 342  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 343  :     return CAudioDecoder::GetSoundChannel();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetSoundChannel@CAudioDecoder@@UAE?AW4eSoundChannel@@XZ ; CAudioDecoder::GetSoundChannel

; 344  : }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
?GetSoundChannel@CTDA9875AudioDecoder@@UAE?AW4eSoundChannel@@XZ ENDP ; CTDA9875AudioDecoder::GetSoundChannel
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetSoundChannel@CTDA9875AudioDecoder@@UAEXW4eSoundChannel@@@Z
_TEXT	SEGMENT
tv85 = -12						; size = 4
_this$ = -8						; size = 4
_bMatrix$ = -1						; size = 1
_soundChannel$ = 8					; size = 4
?SetSoundChannel@CTDA9875AudioDecoder@@UAEXW4eSoundChannel@@@Z PROC ; CTDA9875AudioDecoder::SetSoundChannel, COMDAT
; _this$ = ecx

; 292  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 293  : 
; 294  :     CAudioDecoder::SetSoundChannel(soundChannel);

  00009	8b 45 08	 mov	 eax, DWORD PTR _soundChannel$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?SetSoundChannel@CAudioDecoder@@UAEXW4eSoundChannel@@@Z ; CAudioDecoder::SetSoundChannel

; 295  : 
; 296  :     EnterCriticalSection(&TDA9875CriticalSection);

  00015	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	83 c1 40	 add	 ecx, 64			; 00000040H
  0001b	51		 push	 ecx
  0001c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 297  :     if (m_AutoDetecting == 1)

  00022	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00025	83 7a 34 01	 cmp	 DWORD PTR [edx+52], 1
  00029	75 0f		 jne	 SHORT $LN9@SetSoundCh

; 298  :     {
; 299  :         LeaveCriticalSection(&TDA9875CriticalSection);

  0002b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0002e	83 c0 40	 add	 eax, 64			; 00000040H
  00031	50		 push	 eax
  00032	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 300  : 
; 301  :         //Autodetect sets soundchannel if its done
; 302  :         return;

  00038	eb 71		 jmp	 SHORT $LN10@SetSoundCh
$LN9@SetSoundCh:

; 303  :     }
; 304  :     LeaveCriticalSection(&TDA9875CriticalSection);

  0003a	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0003d	83 c1 40	 add	 ecx, 64			; 00000040H
  00040	51		 push	 ecx
  00041	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 305  : 
; 306  :     m_IsInitialized = TRUE;

  00047	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0004a	c7 42 2c 01 00
	00 00		 mov	 DWORD PTR [edx+44], 1

; 307  : 
; 308  :     BYTE bMatrix = 0;

  00051	c6 45 ff 00	 mov	 BYTE PTR _bMatrix$[ebp], 0

; 309  : 
; 310  :     switch(soundChannel)

  00055	8b 45 08	 mov	 eax, DWORD PTR _soundChannel$[ebp]
  00058	89 45 f4	 mov	 DWORD PTR tv85[ebp], eax
  0005b	8b 4d f4	 mov	 ecx, DWORD PTR tv85[ebp]
  0005e	83 e9 01	 sub	 ecx, 1
  00061	89 4d f4	 mov	 DWORD PTR tv85[ebp], ecx
  00064	83 7d f4 03	 cmp	 DWORD PTR tv85[ebp], 3
  00068	77 2f		 ja	 SHORT $LN7@SetSoundCh
  0006a	8b 55 f4	 mov	 edx, DWORD PTR tv85[ebp]
  0006d	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN12@SetSoundCh[edx*4]
$LN6@SetSoundCh:

; 311  :     {
; 312  :         case SOUNDCHANNEL_MONO:
; 313  :         {
; 314  :             bMatrix = 0x00;

  00074	c6 45 ff 00	 mov	 BYTE PTR _bMatrix$[ebp], 0

; 315  :             break;

  00078	eb 1f		 jmp	 SHORT $LN7@SetSoundCh
$LN5@SetSoundCh:

; 316  :         }
; 317  :         case SOUNDCHANNEL_STEREO:
; 318  :         {
; 319  :             if (m_AudioStandard == TDA9875_STANDARD_M_ANALOG_FM_FM)

  0007a	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0007d	83 78 10 11	 cmp	 DWORD PTR [eax+16], 17	; 00000011H
  00081	75 06		 jne	 SHORT $LN4@SetSoundCh

; 320  :                 bMatrix = 0x05;

  00083	c6 45 ff 05	 mov	 BYTE PTR _bMatrix$[ebp], 5

; 321  :             else

  00087	eb 04		 jmp	 SHORT $LN3@SetSoundCh
$LN4@SetSoundCh:

; 322  :                 bMatrix = 0x04;

  00089	c6 45 ff 04	 mov	 BYTE PTR _bMatrix$[ebp], 4
$LN3@SetSoundCh:

; 323  :             break;

  0008d	eb 0a		 jmp	 SHORT $LN7@SetSoundCh
$LN2@SetSoundCh:

; 324  :         }
; 325  :         case SOUNDCHANNEL_LANGUAGE1:
; 326  :         {
; 327  :             bMatrix = 0x02;

  0008f	c6 45 ff 02	 mov	 BYTE PTR _bMatrix$[ebp], 2

; 328  :             break;

  00093	eb 04		 jmp	 SHORT $LN7@SetSoundCh
$LN1@SetSoundCh:

; 329  :         }
; 330  :         case SOUNDCHANNEL_LANGUAGE2:
; 331  :         {
; 332  :             bMatrix = 0x03;

  00095	c6 45 ff 03	 mov	 BYTE PTR _bMatrix$[ebp], 3
$LN7@SetSoundCh:

; 333  :             break;
; 334  :         }
; 335  : 
; 336  :     }
; 337  : 
; 338  :     WriteToSubAddress(TDA9875_FMAT, bMatrix);

  00099	0f b6 4d ff	 movzx	 ecx, BYTE PTR _bMatrix$[ebp]
  0009d	51		 push	 ecx
  0009e	6a 0b		 push	 11			; 0000000bH
  000a0	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000a3	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  000a6	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress
$LN10@SetSoundCh:

; 339  : }

  000ab	8b e5		 mov	 esp, ebp
  000ad	5d		 pop	 ebp
  000ae	c2 04 00	 ret	 4
  000b1	8d 49 00	 npad	 3
$LN12@SetSoundCh:
  000b4	00 00 00 00	 DD	 $LN6@SetSoundCh
  000b8	00 00 00 00	 DD	 $LN5@SetSoundCh
  000bc	00 00 00 00	 DD	 $LN2@SetSoundCh
  000c0	00 00 00 00	 DD	 $LN1@SetSoundCh
?SetSoundChannel@CTDA9875AudioDecoder@@UAEXW4eSoundChannel@@@Z ENDP ; CTDA9875AudioDecoder::SetSoundChannel
; Function compile flags: /Odtp
;	COMDAT ?SetAudioStandardCarriers@CTDA9875AudioDecoder@@UAEXJJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_MajorCarrier$ = 8					; size = 4
_MinorCarrier$ = 12					; size = 4
?SetAudioStandardCarriers@CTDA9875AudioDecoder@@UAEXJJ@Z PROC ; CTDA9875AudioDecoder::SetAudioStandardCarriers, COMDAT
; _this$ = ecx

; 612  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 613  :     if ((MajorCarrier != 0) && (MinorCarrier!=0) &&
; 614  :         ((MajorCarrier != m_AudioStandardMajorCarrier) || (MinorCarrier != m_AudioStandardMinorCarrier)))

  00007	83 7d 08 00	 cmp	 DWORD PTR _MajorCarrier$[ebp], 0
  0000b	74 2f		 je	 SHORT $LN2@SetAudioSt
  0000d	83 7d 0c 00	 cmp	 DWORD PTR _MinorCarrier$[ebp], 0
  00011	74 29		 je	 SHORT $LN2@SetAudioSt
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	8b 4d 08	 mov	 ecx, DWORD PTR _MajorCarrier$[ebp]
  00019	3b 48 14	 cmp	 ecx, DWORD PTR [eax+20]
  0001c	75 0b		 jne	 SHORT $LN1@SetAudioSt
  0001e	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00021	8b 45 0c	 mov	 eax, DWORD PTR _MinorCarrier$[ebp]
  00024	3b 42 18	 cmp	 eax, DWORD PTR [edx+24]
  00027	74 13		 je	 SHORT $LN2@SetAudioSt
$LN1@SetAudioSt:

; 615  :     {
; 616  :         SetAudioStandardCarriersTDA9875(MajorCarrier, MinorCarrier);

  00029	8b 4d 0c	 mov	 ecx, DWORD PTR _MinorCarrier$[ebp]
  0002c	51		 push	 ecx
  0002d	8b 55 08	 mov	 edx, DWORD PTR _MajorCarrier$[ebp]
  00030	52		 push	 edx
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00037	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875
$LN2@SetAudioSt:

; 617  :     }
; 618  :     CAudioDecoder::SetAudioStandardCarriers(MajorCarrier, MinorCarrier);

  0003c	8b 45 0c	 mov	 eax, DWORD PTR _MinorCarrier$[ebp]
  0003f	50		 push	 eax
  00040	8b 4d 08	 mov	 ecx, DWORD PTR _MajorCarrier$[ebp]
  00043	51		 push	 ecx
  00044	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	e8 00 00 00 00	 call	 ?SetAudioStandardCarriers@CAudioDecoder@@UAEXJJ@Z ; CAudioDecoder::SetAudioStandardCarriers

; 619  : 
; 620  : }

  0004c	8b e5		 mov	 esp, ebp
  0004e	5d		 pop	 ebp
  0004f	c2 08 00	 ret	 8
?SetAudioStandardCarriers@CTDA9875AudioDecoder@@UAEXJJ@Z ENDP ; CTDA9875AudioDecoder::SetAudioStandardCarriers
PUBLIC	??1CTDA9875AudioDecoder@@UAE@XZ			; CTDA9875AudioDecoder::~CTDA9875AudioDecoder
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CTDA9875AudioDecoder@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CTDA9875AudioDecoder@@UAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1CTDA9875AudioDecoder@@UAE@XZ$1
__ehfuncinfo$??1CTDA9875AudioDecoder@@UAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??1CTDA9875AudioDecoder@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CTDA9875AudioDecoder@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CTDA9875AudioDecoder@@UAE@XZ PROC			; CTDA9875AudioDecoder::~CTDA9875AudioDecoder, COMDAT
; _this$ = ecx

; 273  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CTDA9875AudioDecoder@@UAE@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00029	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CTDA9875AudioDecoder@@6BCTDA9875@@@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7CTDA9875AudioDecoder@@6BCAudioDecoder@@@
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 274  :     StopThread();

  00040	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00043	e8 00 00 00 00	 call	 ?StopThread@CTDA9875AudioDecoder@@AAEXXZ ; CTDA9875AudioDecoder::StopThread

; 275  :     DeleteCriticalSection(&TDA9875CriticalSection);

  00048	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0004b	83 c2 4c	 add	 edx, 76			; 0000004cH
  0004e	52		 push	 edx
  0004f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__DeleteCriticalSection@4

; 276  : }

  00055	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  00059	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0005c	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0005f	e8 00 00 00 00	 call	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
  00064	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0006b	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0006e	e8 00 00 00 00	 call	 ??1CTDA9875@@UAE@XZ	; CTDA9875::~CTDA9875
  00073	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00076	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0007d	59		 pop	 ecx
  0007e	8b e5		 mov	 esp, ebp
  00080	5d		 pop	 ebp
  00081	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CTDA9875AudioDecoder@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CTDA9875@@UAE@XZ	; CTDA9875::~CTDA9875
__unwindfunclet$??1CTDA9875AudioDecoder@@UAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0000e	e9 00 00 00 00	 jmp	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
__ehhandler$??1CTDA9875AudioDecoder@@UAE@XZ:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001d	33 c8		 xor	 ecx, eax
  0001f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00024	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CTDA9875AudioDecoder@@UAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CTDA9875AudioDecoder@@UAE@XZ ENDP			; CTDA9875AudioDecoder::~CTDA9875AudioDecoder
; Function compile flags: /Odtp
;	COMDAT ??_GCTDA9875AudioDecoder@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCTDA9875AudioDecoder@@UAEPAXI@Z PROC		; CTDA9875AudioDecoder::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ??1CTDA9875AudioDecoder@@UAE@XZ ; CTDA9875AudioDecoder::~CTDA9875AudioDecoder
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@405
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	51		 push	 ecx
  0001b	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00020	83 c4 04	 add	 esp, 4
$LN1@scalar@405:
  00023	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
??_GCTDA9875AudioDecoder@@UAEPAXI@Z ENDP		; CTDA9875AudioDecoder::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z ; CTDA9875AudioDecoder::CTDA9875AudioDecoder
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z$0
	DD	00H
	DD	FLAT:__unwindfunclet$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z$1
__ehfuncinfo$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_pAudioControls$ = 8					; size = 4
??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z PROC ; CTDA9875AudioDecoder::CTDA9875AudioDecoder, COMDAT
; _this$ = ecx

; 259  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??0CTDA9875@@QAE@XZ	; CTDA9875::CTDA9875
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0003b	e8 00 00 00 00	 call	 ??0CAudioDecoder@@QAE@XZ ; CAudioDecoder::CAudioDecoder
  00040	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+8], 1
  00044	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00047	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CTDA9875AudioDecoder@@6BCTDA9875@@@
  0004d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00050	c7 41 0c 00 00
	00 00		 mov	 DWORD PTR [ecx+12], OFFSET ??_7CTDA9875AudioDecoder@@6BCAudioDecoder@@@

; 260  :     m_IsInitialized = FALSE;

  00057	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0005a	c7 42 38 00 00
	00 00		 mov	 DWORD PTR [edx+56], 0

; 261  :     m_bUseInputPin1 = FALSE;

  00061	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00064	c7 40 3c 00 00
	00 00		 mov	 DWORD PTR [eax+60], 0

; 262  :     m_AutoDetecting = 0;

  0006b	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0006e	c7 41 40 00 00
	00 00		 mov	 DWORD PTR [ecx+64], 0

; 263  :     m_TDA9875Thread = NULL;

  00075	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00078	c7 42 44 00 00
	00 00		 mov	 DWORD PTR [edx+68], 0

; 264  :     m_bStopThread = FALSE;

  0007f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00082	c7 40 48 00 00
	00 00		 mov	 DWORD PTR [eax+72], 0

; 265  :     m_DetectInterval10ms = 20;

  00089	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0008c	c7 41 68 14 00
	00 00		 mov	 DWORD PTR [ecx+104], 20	; 00000014H

; 266  :     m_SupportedSoundChannels = SUPPORTEDSOUNDCHANNEL_MONO;

  00093	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  00096	c7 42 74 01 00
	00 00		 mov	 DWORD PTR [edx+116], 1

; 267  :     m_ForceAMSound = FALSE;

  0009d	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000a0	c7 40 34 00 00
	00 00		 mov	 DWORD PTR [eax+52], 0

; 268  :     m_pAudioControls = pAudioControls;

  000a7	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000aa	8b 55 08	 mov	 edx, DWORD PTR _pAudioControls$[ebp]
  000ad	89 51 30	 mov	 DWORD PTR [ecx+48], edx

; 269  :     InitializeCriticalSection(&TDA9875CriticalSection);

  000b0	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000b3	83 c0 4c	 add	 eax, 76			; 0000004cH
  000b6	50		 push	 eax
  000b7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__InitializeCriticalSection@4

; 270  : }

  000bd	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  000c4	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000c7	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  000ca	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000d1	59		 pop	 ecx
  000d2	8b e5		 mov	 esp, ebp
  000d4	5d		 pop	 ebp
  000d5	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CTDA9875@@UAE@XZ	; CTDA9875::~CTDA9875
__unwindfunclet$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 0c	 add	 ecx, 12			; 0000000cH
  0000e	e9 00 00 00 00	 jmp	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
__ehhandler$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z:
  00013	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  00017	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0001a	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001d	33 c8		 xor	 ecx, eax
  0001f	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00024	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CTDA9875AudioDecoder@@QAE@PAVCTDA9875AudioControls@@@Z ENDP ; CTDA9875AudioDecoder::CTDA9875AudioDecoder
PUBLIC	__real@3fa999999999999a
PUBLIC	__real@40d86a0000000000
PUBLIC	__real@c0d86a0000000000
PUBLIC	__real@40d86a4000000000
PUBLIC	?DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@1@XZ ; CTDA9875AudioDecoder::DetectStandardTDA9875
;	COMDAT ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
_BSS	SEGMENT
?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA DD 01H DUP (?) ; `CTDA9875AudioDecoder::DetectStandardTDA9875'::`2'::d
_BSS	ENDS
;	COMDAT ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
_BSS	SEGMENT
?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA DD 01H DUP (?) ; `CTDA9875AudioDecoder::DetectStandardTDA9875'::`2'::c
_BSS	ENDS
;	COMDAT ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
_BSS	SEGMENT
?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA DD 01H DUP (?) ; `CTDA9875AudioDecoder::DetectStandardTDA9875'::`2'::a
_BSS	ENDS
;	COMDAT ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
_BSS	SEGMENT
?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA DD 01H DUP (?) ; `CTDA9875AudioDecoder::DetectStandardTDA9875'::`2'::nMinorIndex
_BSS	ENDS
;	COMDAT ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
_BSS	SEGMENT
?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA DD 01H DUP (?) ; `CTDA9875AudioDecoder::DetectStandardTDA9875'::`2'::nMajorIndex
_BSS	ENDS
;	COMDAT __real@3fa999999999999a
CONST	SEGMENT
__real@3fa999999999999a DQ 03fa999999999999ar	; 0.05
CONST	ENDS
;	COMDAT __real@40d86a0000000000
CONST	SEGMENT
__real@40d86a0000000000 DQ 040d86a0000000000r	; 25000
CONST	ENDS
;	COMDAT __real@c0d86a0000000000
CONST	SEGMENT
__real@c0d86a0000000000 DQ 0c0d86a0000000000r	; -25000
CONST	ENDS
;	COMDAT __real@40d86a4000000000
CONST	SEGMENT
__real@40d86a4000000000 DQ 040d86a4000000000r	; 25001
; Function compile flags: /Odtp
CONST	ENDS
;	COMDAT ?DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@1@XZ
_TEXT	SEGMENT
tv690 = -80						; size = 4
tv688 = -76						; size = 4
tv365 = -72						; size = 4
tv363 = -68						; size = 4
_this$ = -64						; size = 4
_MinorCarrier$140829 = -60				; size = 4
_MajorCarrier$140828 = -56				; size = 4
_n$140831 = -52						; size = 4
_k1$ = -48						; size = 8
_condition2$ = -40					; size = 4
_result$ = -36						; size = 2
_val$ = -32						; size = 2
_Standard$ = -28					; size = 4
_k0$ = -24						; size = 8
_u0$ = -16						; size = 8
_condition1$ = -4					; size = 4
?DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@1@XZ PROC ; CTDA9875AudioDecoder::DetectStandardTDA9875, COMDAT
; _this$ = ecx

; 782  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 50	 sub	 esp, 80			; 00000050H
  00006	89 4d c0	 mov	 DWORD PTR _this$[ebp], ecx

; 783  : 
; 784  :     static int nMajorIndex;
; 785  :     static int nMinorIndex;
; 786  :     static int a;
; 787  :     static int c;
; 788  :     static int d;
; 789  : 
; 790  : 
; 791  :     short int val;
; 792  :     double k0, k1, u0;
; 793  :     BOOL condition1, condition2;
; 794  :     BYTE result[2] = {0, 0};

  00009	c6 45 dc 00	 mov	 BYTE PTR _result$[ebp], 0
  0000d	c6 45 dd 00	 mov	 BYTE PTR _result$[ebp+1], 0

; 795  :     eStandard Standard = TDA9875_STANDARD_NONE;

  00011	c7 45 e4 00 00
	00 00		 mov	 DWORD PTR _Standard$[ebp], 0

; 796  : 
; 797  :     if (m_CarrierDetect_Phase == 0) //Setup

  00018	8b 45 c0	 mov	 eax, DWORD PTR _this$[ebp]
  0001b	83 78 2c 00	 cmp	 DWORD PTR [eax+44], 0
  0001f	75 50		 jne	 SHORT $LN40@DetectStan

; 798  :     {
; 799  :         nMajorIndex = 0;

  00021	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, 0

; 800  :         nMinorIndex = 0;

  0002b	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, 0

; 801  : 
; 802  :         if (m_ForceAMSound && IsSECAMVideoFormat(m_VideoFormat))

  00035	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00038	83 79 34 00	 cmp	 DWORD PTR [ecx+52], 0
  0003c	74 1d		 je	 SHORT $LN39@DetectStan
  0003e	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00041	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00044	50		 push	 eax
  00045	e8 00 00 00 00	 call	 ?IsSECAMVideoFormat@@YAHW4eVideoFormat@@@Z ; IsSECAMVideoFormat
  0004a	83 c4 04	 add	 esp, 4
  0004d	85 c0		 test	 eax, eax
  0004f	74 0a		 je	 SHORT $LN39@DetectStan

; 803  :             return TDA9875_STANDARD_L_DIGITAL_AM_NICAM;

  00051	b8 33 00 00 00	 mov	 eax, 51			; 00000033H
  00056	e9 a1 0d 00 00	 jmp	 $LN41@DetectStan
$LN39@DetectStan:

; 804  : 
; 805  :         WriteToSubAddress(TDA9875_MSR, 8); //channel 1

  0005b	6a 08		 push	 8
  0005d	6a 02		 push	 2
  0005f	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00062	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 806  :         m_CarrierDetect_Phase = 1;

  00067	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	c7 41 2c 01 00
	00 00		 mov	 DWORD PTR [ecx+44], 1
$LN40@DetectStan:

; 807  :     }
; 808  :     //Major carrier
; 809  :     if (m_CarrierDetect_Phase == 1) //Major carrier detection

  00071	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00074	83 7a 2c 01	 cmp	 DWORD PTR [edx+44], 1
  00078	75 5f		 jne	 SHORT $LN38@DetectStan

; 810  :     {
; 811  :         if (CarrierDetectTable[nMajorIndex].Major == TDA9875_NOCARRIER)

  0007a	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0007f	6b c0 2c	 imul	 eax, 44			; 0000002cH
  00082	83 b8 00 00 00
	00 00		 cmp	 DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax], 0
  00089	75 07		 jne	 SHORT $LN37@DetectStan

; 812  :             return TDA9875_STANDARD_NONE;

  0008b	33 c0		 xor	 eax, eax
  0008d	e9 6a 0d 00 00	 jmp	 $LN41@DetectStan
$LN37@DetectStan:

; 813  : 
; 814  :         //Left
; 815  :         //25Khz left to the carrier
; 816  :         SetAudioStandardCarriersTDA9875(
; 817  :             CarrierDetectTable[nMajorIndex].Major - CARRIER_OFFSET_25KHZ,
; 818  :             CarrierDetectTable[nMajorIndex].Major - CARRIER_OFFSET_25KHZ
; 819  :             );

  00092	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00098	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  0009b	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  000a1	81 ea a8 61 00
	00		 sub	 edx, 25000		; 000061a8H
  000a7	52		 push	 edx
  000a8	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  000ad	6b c0 2c	 imul	 eax, 44			; 0000002cH
  000b0	8b 88 00 00 00
	00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax]
  000b6	81 e9 a8 61 00
	00		 sub	 ecx, 25000		; 000061a8H
  000bc	51		 push	 ecx
  000bd	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  000c0	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 820  : 
; 821  :         m_CarrierDetect_Phase = 2;

  000c5	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  000c8	c7 42 2c 02 00
	00 00		 mov	 DWORD PTR [edx+44], 2

; 822  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  000cf	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  000d4	e9 23 0d 00 00	 jmp	 $LN41@DetectStan
$LN38@DetectStan:

; 823  :     }
; 824  :     if (m_CarrierDetect_Phase == 2) //Major carrier detection

  000d9	8b 45 c0	 mov	 eax, DWORD PTR _this$[ebp]
  000dc	83 78 2c 02	 cmp	 DWORD PTR [eax+44], 2
  000e0	0f 85 af 00 00
	00		 jne	 $LN36@DetectStan

; 825  :     {
; 826  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  000e6	6a 02		 push	 2
  000e8	8d 4d dc	 lea	 ecx, DWORD PTR _result$[ebp]
  000eb	51		 push	 ecx
  000ec	6a 05		 push	 5
  000ee	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  000f1	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 827  :         val = ((short int)result[0]) << 8 | result[1];

  000f6	0f b6 55 dc	 movzx	 edx, BYTE PTR _result$[ebp]
  000fa	c1 e2 08	 shl	 edx, 8
  000fd	0f b6 45 dd	 movzx	 eax, BYTE PTR _result$[ebp+1]
  00101	0b d0		 or	 edx, eax
  00103	66 89 55 e0	 mov	 WORD PTR _val$[ebp], dx

; 828  :         a = val;

  00107	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  0010b	89 0d 00 00 00
	00		 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 829  :         c = (-CARRIER_OFFSET_25KHZ)*val;

  00111	0f bf 55 e0	 movsx	 edx, WORD PTR _val$[ebp]
  00115	69 d2 58 9e ff
	ff		 imul	 edx, -25000		; ffff9e58H
  0011b	89 15 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 830  :         d = CARRIER_OFFSET_25KHZ*CARRIER_OFFSET_25KHZ;

  00121	c7 05 00 00 00
	00 40 be 40 25	 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, 625000000 ; 2540be40H

; 831  :         LOG(1,_T("TDA9875: Major carrier = %d Hz, 25KHz left = %d"),CarrierDetectTable[nMajorIndex].Major,val);

  0012b	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  0012f	50		 push	 eax
  00130	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00136	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00139	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  0013f	52		 push	 edx
  00140	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@MJADKDFP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00145	6a 01		 push	 1
  00147	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0014c	83 c4 10	 add	 esp, 16			; 00000010H

; 832  : 
; 833  :         //15Khz left to the carrier
; 834  :         SetAudioStandardCarriersTDA9875(
; 835  :             CarrierDetectTable[nMajorIndex].Major - CARRIER_OFFSET_15KHZ,
; 836  :             CarrierDetectTable[nMajorIndex].Major - CARRIER_OFFSET_15KHZ
; 837  :             );

  0014f	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00154	6b c0 2c	 imul	 eax, 44			; 0000002cH
  00157	8b 88 00 00 00
	00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax]
  0015d	81 e9 98 3a 00
	00		 sub	 ecx, 15000		; 00003a98H
  00163	51		 push	 ecx
  00164	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0016a	6b d2 2c	 imul	 edx, 44			; 0000002cH
  0016d	8b 82 00 00 00
	00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx]
  00173	2d 98 3a 00 00	 sub	 eax, 15000		; 00003a98H
  00178	50		 push	 eax
  00179	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0017c	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 838  : 
; 839  :         m_CarrierDetect_Phase = 3;

  00181	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00184	c7 41 2c 03 00
	00 00		 mov	 DWORD PTR [ecx+44], 3

; 840  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  0018b	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  00190	e9 67 0c 00 00	 jmp	 $LN41@DetectStan
$LN36@DetectStan:

; 841  :     }
; 842  :     if (m_CarrierDetect_Phase == 3) //Major carrier detection

  00195	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00198	83 7a 2c 03	 cmp	 DWORD PTR [edx+44], 3
  0019c	0f 85 c2 00 00
	00		 jne	 $LN35@DetectStan

; 843  :     {
; 844  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  001a2	6a 02		 push	 2
  001a4	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  001a7	50		 push	 eax
  001a8	6a 05		 push	 5
  001aa	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  001ad	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 845  :         val = ((short int)result[0]) << 8 | result[1];

  001b2	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  001b6	c1 e1 08	 shl	 ecx, 8
  001b9	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  001bd	0b ca		 or	 ecx, edx
  001bf	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 846  :         a += val;

  001c3	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  001c7	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  001cd	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 847  :         c += (-CARRIER_OFFSET_15KHZ)*val;

  001d2	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  001d6	69 c9 68 c5 ff
	ff		 imul	 ecx, -15000		; ffffc568H
  001dc	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  001e2	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 848  :         d += CARRIER_OFFSET_15KHZ*CARRIER_OFFSET_15KHZ;

  001e8	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  001ee	81 c2 40 3a 69
	0d		 add	 edx, 225000000		; 0d693a40H
  001f4	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 849  :         LOG(1,_T("TDA9875: Major carrier = %d Hz, 15KHz left = %d"),CarrierDetectTable[nMajorIndex].Major,val);

  001fa	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  001fe	50		 push	 eax
  001ff	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00205	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00208	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  0020e	52		 push	 edx
  0020f	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@BMKLOA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00214	6a 01		 push	 1
  00216	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0021b	83 c4 10	 add	 esp, 16			; 00000010H

; 850  : 
; 851  :         //5Khz left to the carrier
; 852  :         SetAudioStandardCarriersTDA9875(
; 853  :             CarrierDetectTable[nMajorIndex].Major - CARRIER_OFFSET_5KHZ,
; 854  :             CarrierDetectTable[nMajorIndex].Major - CARRIER_OFFSET_5KHZ
; 855  :             );

  0021e	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00223	6b c0 2c	 imul	 eax, 44			; 0000002cH
  00226	8b 88 00 00 00
	00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax]
  0022c	81 e9 88 13 00
	00		 sub	 ecx, 5000		; 00001388H
  00232	51		 push	 ecx
  00233	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00239	6b d2 2c	 imul	 edx, 44			; 0000002cH
  0023c	8b 82 00 00 00
	00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx]
  00242	2d 88 13 00 00	 sub	 eax, 5000		; 00001388H
  00247	50		 push	 eax
  00248	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0024b	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 856  : 
; 857  :         m_CarrierDetect_Phase = 4;

  00250	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00253	c7 41 2c 04 00
	00 00		 mov	 DWORD PTR [ecx+44], 4

; 858  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  0025a	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  0025f	e9 98 0b 00 00	 jmp	 $LN41@DetectStan
$LN35@DetectStan:

; 859  :     }
; 860  :     if (m_CarrierDetect_Phase == 4) //Major carrier detection

  00264	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00267	83 7a 2c 04	 cmp	 DWORD PTR [edx+44], 4
  0026b	0f 85 c2 00 00
	00		 jne	 $LN34@DetectStan

; 861  :     {
; 862  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  00271	6a 02		 push	 2
  00273	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  00276	50		 push	 eax
  00277	6a 05		 push	 5
  00279	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0027c	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 863  :         val = ((short int)result[0]) << 8 | result[1];

  00281	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  00285	c1 e1 08	 shl	 ecx, 8
  00288	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  0028c	0b ca		 or	 ecx, edx
  0028e	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 864  :         a += val;

  00292	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00296	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0029c	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 865  :         c += (-CARRIER_OFFSET_5KHZ)*val;

  002a1	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  002a5	69 c9 78 ec ff
	ff		 imul	 ecx, -5000		; ffffec78H
  002ab	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  002b1	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 866  :         d += CARRIER_OFFSET_5KHZ*CARRIER_OFFSET_5KHZ;

  002b7	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  002bd	81 c2 40 78 7d
	01		 add	 edx, 25000000		; 017d7840H
  002c3	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 867  :         LOG(1,_T("TDA9875: Major carrier = %d Hz, 5KHz left = %d"),CarrierDetectTable[nMajorIndex].Major,val);

  002c9	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  002cd	50		 push	 eax
  002ce	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  002d4	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  002d7	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  002dd	52		 push	 edx
  002de	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@OIELJNOL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  002e3	6a 01		 push	 1
  002e5	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  002ea	83 c4 10	 add	 esp, 16			; 00000010H

; 868  : 
; 869  :         //5Khz right from the carrier
; 870  :         SetAudioStandardCarriersTDA9875(
; 871  :             CarrierDetectTable[nMajorIndex].Major + CARRIER_OFFSET_5KHZ,
; 872  :             CarrierDetectTable[nMajorIndex].Major + CARRIER_OFFSET_5KHZ
; 873  :             );

  002ed	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  002f2	6b c0 2c	 imul	 eax, 44			; 0000002cH
  002f5	8b 88 00 00 00
	00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax]
  002fb	81 c1 88 13 00
	00		 add	 ecx, 5000		; 00001388H
  00301	51		 push	 ecx
  00302	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00308	6b d2 2c	 imul	 edx, 44			; 0000002cH
  0030b	8b 82 00 00 00
	00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx]
  00311	05 88 13 00 00	 add	 eax, 5000		; 00001388H
  00316	50		 push	 eax
  00317	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0031a	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 874  : 
; 875  :         m_CarrierDetect_Phase = 5;

  0031f	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00322	c7 41 2c 05 00
	00 00		 mov	 DWORD PTR [ecx+44], 5

; 876  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  00329	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  0032e	e9 c9 0a 00 00	 jmp	 $LN41@DetectStan
$LN34@DetectStan:

; 877  :     }
; 878  :     if (m_CarrierDetect_Phase == 5) //Major carrier detection

  00333	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00336	83 7a 2c 05	 cmp	 DWORD PTR [edx+44], 5
  0033a	0f 85 c2 00 00
	00		 jne	 $LN33@DetectStan

; 879  :     {
; 880  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  00340	6a 02		 push	 2
  00342	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  00345	50		 push	 eax
  00346	6a 05		 push	 5
  00348	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0034b	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 881  :         val = ((short int)result[0]) << 8 | result[1];

  00350	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  00354	c1 e1 08	 shl	 ecx, 8
  00357	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  0035b	0b ca		 or	 ecx, edx
  0035d	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 882  :         a += val;

  00361	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00365	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0036b	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 883  :         c += CARRIER_OFFSET_5KHZ*val;

  00370	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  00374	69 c9 88 13 00
	00		 imul	 ecx, 5000		; 00001388H
  0037a	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00380	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 884  :         d += CARRIER_OFFSET_5KHZ*CARRIER_OFFSET_5KHZ;

  00386	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0038c	81 c2 40 78 7d
	01		 add	 edx, 25000000		; 017d7840H
  00392	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 885  :         LOG(1,_T("TDA9875: Major carrier = %d Hz, 5KHz right = %d"),CarrierDetectTable[nMajorIndex].Major,val);

  00398	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  0039c	50		 push	 eax
  0039d	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  003a3	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  003a6	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  003ac	52		 push	 edx
  003ad	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@GKPAGIDN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  003b2	6a 01		 push	 1
  003b4	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  003b9	83 c4 10	 add	 esp, 16			; 00000010H

; 886  : 
; 887  :         //15Khz right from the carrier
; 888  :         SetAudioStandardCarriersTDA9875(
; 889  :             CarrierDetectTable[nMajorIndex].Major + CARRIER_OFFSET_15KHZ,
; 890  :             CarrierDetectTable[nMajorIndex].Major + CARRIER_OFFSET_15KHZ
; 891  :             );

  003bc	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  003c1	6b c0 2c	 imul	 eax, 44			; 0000002cH
  003c4	8b 88 00 00 00
	00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax]
  003ca	81 c1 98 3a 00
	00		 add	 ecx, 15000		; 00003a98H
  003d0	51		 push	 ecx
  003d1	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  003d7	6b d2 2c	 imul	 edx, 44			; 0000002cH
  003da	8b 82 00 00 00
	00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx]
  003e0	05 98 3a 00 00	 add	 eax, 15000		; 00003a98H
  003e5	50		 push	 eax
  003e6	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  003e9	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 892  : 
; 893  :         m_CarrierDetect_Phase = 6;

  003ee	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  003f1	c7 41 2c 06 00
	00 00		 mov	 DWORD PTR [ecx+44], 6

; 894  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  003f8	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  003fd	e9 fa 09 00 00	 jmp	 $LN41@DetectStan
$LN33@DetectStan:

; 895  :     }
; 896  :     if (m_CarrierDetect_Phase == 6) //Major carrier detection

  00402	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00405	83 7a 2c 06	 cmp	 DWORD PTR [edx+44], 6
  00409	0f 85 c2 00 00
	00		 jne	 $LN32@DetectStan

; 897  :     {
; 898  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  0040f	6a 02		 push	 2
  00411	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  00414	50		 push	 eax
  00415	6a 05		 push	 5
  00417	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0041a	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 899  :         val = ((short int)result[0]) << 8 | result[1];

  0041f	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  00423	c1 e1 08	 shl	 ecx, 8
  00426	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  0042a	0b ca		 or	 ecx, edx
  0042c	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 900  :         a += val;

  00430	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00434	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0043a	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 901  :         c += CARRIER_OFFSET_15KHZ*val;

  0043f	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  00443	69 c9 98 3a 00
	00		 imul	 ecx, 15000		; 00003a98H
  00449	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0044f	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 902  :         d += CARRIER_OFFSET_15KHZ*CARRIER_OFFSET_15KHZ;

  00455	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0045b	81 c2 40 3a 69
	0d		 add	 edx, 225000000		; 0d693a40H
  00461	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 903  :         LOG(1,_T("TDA9875: Major carrier = %d Hz, 15KHz right = %d"),CarrierDetectTable[nMajorIndex].Major,val);

  00467	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  0046b	50		 push	 eax
  0046c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00472	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00475	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  0047b	52		 push	 edx
  0047c	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@EGLOMMDI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00481	6a 01		 push	 1
  00483	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00488	83 c4 10	 add	 esp, 16			; 00000010H

; 904  : 
; 905  :         //25Khz right from the carrier
; 906  :         SetAudioStandardCarriersTDA9875(
; 907  :             CarrierDetectTable[nMajorIndex].Major + CARRIER_OFFSET_25KHZ,
; 908  :             CarrierDetectTable[nMajorIndex].Major + CARRIER_OFFSET_25KHZ
; 909  :             );

  0048b	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00490	6b c0 2c	 imul	 eax, 44			; 0000002cH
  00493	8b 88 00 00 00
	00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax]
  00499	81 c1 a8 61 00
	00		 add	 ecx, 25000		; 000061a8H
  0049f	51		 push	 ecx
  004a0	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  004a6	6b d2 2c	 imul	 edx, 44			; 0000002cH
  004a9	8b 82 00 00 00
	00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx]
  004af	05 a8 61 00 00	 add	 eax, 25000		; 000061a8H
  004b4	50		 push	 eax
  004b5	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  004b8	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 910  : 
; 911  :         m_CarrierDetect_Phase = 7;

  004bd	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  004c0	c7 41 2c 07 00
	00 00		 mov	 DWORD PTR [ecx+44], 7

; 912  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  004c7	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  004cc	e9 2b 09 00 00	 jmp	 $LN41@DetectStan
$LN32@DetectStan:

; 913  :     }
; 914  :     if (m_CarrierDetect_Phase == 7) //Major carrier detection

  004d1	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  004d4	83 7a 2c 07	 cmp	 DWORD PTR [edx+44], 7
  004d8	0f 85 7c 01 00
	00		 jne	 $LN27@DetectStan

; 915  :     {
; 916  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  004de	6a 02		 push	 2
  004e0	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  004e3	50		 push	 eax
  004e4	6a 05		 push	 5
  004e6	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  004e9	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 917  :         val = ((short int)result[0]) << 8 | result[1];

  004ee	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  004f2	c1 e1 08	 shl	 ecx, 8
  004f5	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  004f9	0b ca		 or	 ecx, edx
  004fb	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 918  :         a += val;

  004ff	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00503	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00509	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 919  :         c += CARRIER_OFFSET_25KHZ*val;

  0050e	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  00512	69 c9 a8 61 00
	00		 imul	 ecx, 25000		; 000061a8H
  00518	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0051e	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 920  :         d += CARRIER_OFFSET_25KHZ*CARRIER_OFFSET_25KHZ;

  00524	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0052a	81 c2 40 be 40
	25		 add	 edx, 625000000		; 2540be40H
  00530	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 921  :         LOG(1,_T("TDA9875: Major carrier = %d Hz, 25KHz right = %d"),CarrierDetectTable[nMajorIndex].Major,val);

  00536	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  0053a	50		 push	 eax
  0053b	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00541	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00544	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  0054a	52		 push	 edx
  0054b	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@CLDIDPGC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00550	6a 01		 push	 1
  00552	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00557	83 c4 10	 add	 esp, 16			; 00000010H

; 922  : 
; 923  :         k0 = a/6.0;

  0055a	db 05 00 00 00
	00		 fild	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00560	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4018000000000000
  00566	dd 5d e8	 fstp	 QWORD PTR _k0$[ebp]

; 924  :         k1 = ((double)c)/d;

  00569	db 05 00 00 00
	00		 fild	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0056f	da 35 00 00 00
	00		 fidiv	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00575	dd 5d d0	 fstp	 QWORD PTR _k1$[ebp]

; 925  :         if (k1 != 0)

  00578	d9 ee		 fldz
  0057a	dc 5d d0	 fcomp	 QWORD PTR _k1$[ebp]
  0057d	df e0		 fnstsw	 ax
  0057f	f6 c4 44	 test	 ah, 68			; 00000044H
  00582	7b 0d		 jnp	 SHORT $LN30@DetectStan

; 926  :             u0 = - k0/k1;

  00584	dd 45 e8	 fld	 QWORD PTR _k0$[ebp]
  00587	d9 e0		 fchs
  00589	dc 75 d0	 fdiv	 QWORD PTR _k1$[ebp]
  0058c	dd 5d f0	 fstp	 QWORD PTR _u0$[ebp]

; 927  :         else

  0058f	eb 09		 jmp	 SHORT $LN29@DetectStan
$LN30@DetectStan:

; 928  :             u0 = CARRIER_OFFSET_25KHZ + 1; //out of range

  00591	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@40d86a4000000000
  00597	dd 5d f0	 fstp	 QWORD PTR _u0$[ebp]
$LN29@DetectStan:

; 929  : 
; 930  :         condition1 = ((u0 > -CARRIER_OFFSET_25KHZ) && (u0 < CARRIER_OFFSET_25KHZ));

  0059a	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@c0d86a0000000000
  005a0	dc 5d f0	 fcomp	 QWORD PTR _u0$[ebp]
  005a3	df e0		 fnstsw	 ax
  005a5	f6 c4 05	 test	 ah, 5
  005a8	7a 19		 jp	 SHORT $LN43@DetectStan
  005aa	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@40d86a0000000000
  005b0	dc 5d f0	 fcomp	 QWORD PTR _u0$[ebp]
  005b3	df e0		 fnstsw	 ax
  005b5	f6 c4 41	 test	 ah, 65			; 00000041H
  005b8	75 09		 jne	 SHORT $LN43@DetectStan
  005ba	c7 45 bc 01 00
	00 00		 mov	 DWORD PTR tv363[ebp], 1
  005c1	eb 07		 jmp	 SHORT $LN44@DetectStan
$LN43@DetectStan:
  005c3	c7 45 bc 00 00
	00 00		 mov	 DWORD PTR tv363[ebp], 0
$LN44@DetectStan:
  005ca	8b 45 bc	 mov	 eax, DWORD PTR tv363[ebp]
  005cd	89 45 fc	 mov	 DWORD PTR _condition1$[ebp], eax

; 931  :         condition2 = (k1 > 0.05);

  005d0	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@3fa999999999999a
  005d6	dc 5d d0	 fcomp	 QWORD PTR _k1$[ebp]
  005d9	df e0		 fnstsw	 ax
  005db	f6 c4 05	 test	 ah, 5
  005de	7a 09		 jp	 SHORT $LN45@DetectStan
  005e0	c7 45 b8 01 00
	00 00		 mov	 DWORD PTR tv365[ebp], 1
  005e7	eb 07		 jmp	 SHORT $LN46@DetectStan
$LN45@DetectStan:
  005e9	c7 45 b8 00 00
	00 00		 mov	 DWORD PTR tv365[ebp], 0
$LN46@DetectStan:
  005f0	8b 4d b8	 mov	 ecx, DWORD PTR tv365[ebp]
  005f3	89 4d d8	 mov	 DWORD PTR _condition2$[ebp], ecx

; 932  : 
; 933  :         if (condition1 && condition2) //found

  005f6	83 7d fc 00	 cmp	 DWORD PTR _condition1$[ebp], 0
  005fa	74 3d		 je	 SHORT $LN28@DetectStan
  005fc	83 7d d8 00	 cmp	 DWORD PTR _condition2$[ebp], 0
  00600	74 37		 je	 SHORT $LN28@DetectStan

; 934  :         {
; 935  :             //Setup
; 936  :             LOG(1,_T("TDA9875: Found Major carrier = %d Hz"),CarrierDetectTable[nMajorIndex].Major);

  00602	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00608	6b d2 2c	 imul	 edx, 44			; 0000002cH
  0060b	8b 82 00 00 00
	00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx]
  00611	50		 push	 eax
  00612	68 00 00 00 00	 push	 OFFSET ??_C@_1EK@PGHGDLJB@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAa?$AAj?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@
  00617	6a 01		 push	 1
  00619	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0061e	83 c4 0c	 add	 esp, 12			; 0000000cH

; 937  :             m_CarrierDetect_Phase = 8; // Detect minor carrier

  00621	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00624	c7 41 2c 08 00
	00 00		 mov	 DWORD PTR [ecx+44], 8

; 938  : 
; 939  :             //Minor Carrier
; 940  :             WriteToSubAddress(TDA9875_MSR, 16); // channel 2

  0062b	6a 10		 push	 16			; 00000010H
  0062d	6a 02		 push	 2
  0062f	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00632	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 941  :         }
; 942  :         else

  00637	eb 21		 jmp	 SHORT $LN27@DetectStan
$LN28@DetectStan:

; 943  :         {
; 944  :             m_CarrierDetect_Phase = 1;

  00639	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  0063c	c7 42 2c 01 00
	00 00		 mov	 DWORD PTR [edx+44], 1

; 945  :             nMajorIndex++;

  00643	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00648	83 c0 01	 add	 eax, 1
  0064b	a3 00 00 00 00	 mov	 DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 946  :             return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  00650	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  00655	e9 a2 07 00 00	 jmp	 $LN41@DetectStan
$LN27@DetectStan:

; 947  :         }
; 948  :     }
; 949  :     //Minor carrier
; 950  :     if (m_CarrierDetect_Phase == 8) //Minor carrier detection

  0065a	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0065d	83 79 2c 08	 cmp	 DWORD PTR [ecx+44], 8
  00661	75 78		 jne	 SHORT $LN24@DetectStan

; 951  :     {
; 952  : 
; 953  :         if (CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] == TDA9875_NOCARRIER)

  00663	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00669	6b d2 2c	 imul	 edx, 44			; 0000002cH
  0066c	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00671	83 bc 82 04 00
	00 00 00	 cmp	 DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx+eax*4+4], 0
  00679	75 0c		 jne	 SHORT $LN25@DetectStan

; 954  :         {
; 955  :             m_CarrierDetect_Phase = 15; //Find standard

  0067b	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0067e	c7 41 2c 0f 00
	00 00		 mov	 DWORD PTR [ecx+44], 15	; 0000000fH

; 956  :         }
; 957  :         else

  00685	eb 54		 jmp	 SHORT $LN24@DetectStan
$LN25@DetectStan:

; 958  :         {
; 959  :             //Left
; 960  :             //25Khz left to the carrier
; 961  :             SetAudioStandardCarriersTDA9875(
; 962  :                 CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] - CARRIER_OFFSET_25KHZ,
; 963  :                 CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] - CARRIER_OFFSET_25KHZ
; 964  :                 );

  00687	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0068d	6b d2 2c	 imul	 edx, 44			; 0000002cH
  00690	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00695	8b 8c 82 04 00
	00 00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx+eax*4+4]
  0069c	81 e9 a8 61 00
	00		 sub	 ecx, 25000		; 000061a8H
  006a2	51		 push	 ecx
  006a3	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  006a9	6b d2 2c	 imul	 edx, 44			; 0000002cH
  006ac	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  006b1	8b 8c 82 04 00
	00 00		 mov	 ecx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[edx+eax*4+4]
  006b8	81 e9 a8 61 00
	00		 sub	 ecx, 25000		; 000061a8H
  006be	51		 push	 ecx
  006bf	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  006c2	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 965  : 
; 966  :             m_CarrierDetect_Phase = 9;

  006c7	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  006ca	c7 42 2c 09 00
	00 00		 mov	 DWORD PTR [edx+44], 9

; 967  :             return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  006d1	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  006d6	e9 21 07 00 00	 jmp	 $LN41@DetectStan
$LN24@DetectStan:

; 968  :         }
; 969  :     }
; 970  :     if (m_CarrierDetect_Phase == 9) //Minor carrier detection

  006db	8b 45 c0	 mov	 eax, DWORD PTR _this$[ebp]
  006de	83 78 2c 09	 cmp	 DWORD PTR [eax+44], 9
  006e2	0f 85 c4 00 00
	00		 jne	 $LN23@DetectStan

; 971  :     {
; 972  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  006e8	6a 02		 push	 2
  006ea	8d 4d dc	 lea	 ecx, DWORD PTR _result$[ebp]
  006ed	51		 push	 ecx
  006ee	6a 05		 push	 5
  006f0	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  006f3	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 973  :         val = ((short int)result[0]) << 8 | result[1];

  006f8	0f b6 55 dc	 movzx	 edx, BYTE PTR _result$[ebp]
  006fc	c1 e2 08	 shl	 edx, 8
  006ff	0f b6 45 dd	 movzx	 eax, BYTE PTR _result$[ebp+1]
  00703	0b d0		 or	 edx, eax
  00705	66 89 55 e0	 mov	 WORD PTR _val$[ebp], dx

; 974  :         a = val;

  00709	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  0070d	89 0d 00 00 00
	00		 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 975  :         c = (-CARRIER_OFFSET_25KHZ)*val;

  00713	0f bf 55 e0	 movsx	 edx, WORD PTR _val$[ebp]
  00717	69 d2 58 9e ff
	ff		 imul	 edx, -25000		; ffff9e58H
  0071d	89 15 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 976  :         d = CARRIER_OFFSET_25KHZ*CARRIER_OFFSET_25KHZ;

  00723	c7 05 00 00 00
	00 40 be 40 25	 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, 625000000 ; 2540be40H

; 977  :         LOG(1,_T("TDA9875: Minor carrier = %d Hz, 25KHz left = %d"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex],val);

  0072d	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00731	50		 push	 eax
  00732	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00738	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  0073b	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00741	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00748	50		 push	 eax
  00749	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@ELONLGMH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  0074e	6a 01		 push	 1
  00750	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00755	83 c4 10	 add	 esp, 16			; 00000010H

; 978  : 
; 979  :         //15Khz left to the carrier
; 980  :         SetAudioStandardCarriersTDA9875(
; 981  :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] - CARRIER_OFFSET_15KHZ,
; 982  :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] - CARRIER_OFFSET_15KHZ
; 983  :             );

  00758	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0075e	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00761	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00767	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  0076e	2d 98 3a 00 00	 sub	 eax, 15000		; 00003a98H
  00773	50		 push	 eax
  00774	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0077a	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  0077d	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00783	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  0078a	2d 98 3a 00 00	 sub	 eax, 15000		; 00003a98H
  0078f	50		 push	 eax
  00790	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00793	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 984  : 
; 985  :         m_CarrierDetect_Phase = 10;

  00798	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0079b	c7 41 2c 0a 00
	00 00		 mov	 DWORD PTR [ecx+44], 10	; 0000000aH

; 986  :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  007a2	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  007a7	e9 50 06 00 00	 jmp	 $LN41@DetectStan
$LN23@DetectStan:

; 987  :     }
; 988  :     if (m_CarrierDetect_Phase == 10) //Minor carrier detection

  007ac	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  007af	83 7a 2c 0a	 cmp	 DWORD PTR [edx+44], 10	; 0000000aH
  007b3	0f 85 d7 00 00
	00		 jne	 $LN22@DetectStan

; 989  :     {
; 990  :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  007b9	6a 02		 push	 2
  007bb	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  007be	50		 push	 eax
  007bf	6a 05		 push	 5
  007c1	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  007c4	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 991  :         val = ((short int)result[0]) << 8 | result[1];

  007c9	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  007cd	c1 e1 08	 shl	 ecx, 8
  007d0	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  007d4	0b ca		 or	 ecx, edx
  007d6	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 992  :         a += val;

  007da	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  007de	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  007e4	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 993  :         c += (-CARRIER_OFFSET_15KHZ)*val;

  007e9	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  007ed	69 c9 68 c5 ff
	ff		 imul	 ecx, -15000		; ffffc568H
  007f3	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  007f9	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 994  :         d += CARRIER_OFFSET_15KHZ*CARRIER_OFFSET_15KHZ;

  007ff	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00805	81 c2 40 3a 69
	0d		 add	 edx, 225000000		; 0d693a40H
  0080b	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 995  :         LOG(1,_T("TDA9875: Minor carrier = %d Hz, 15KHz left = %d"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex],val);

  00811	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00815	50		 push	 eax
  00816	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0081c	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  0081f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00825	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  0082c	50		 push	 eax
  0082d	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@ICPCLOHI@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00832	6a 01		 push	 1
  00834	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00839	83 c4 10	 add	 esp, 16			; 00000010H

; 996  : 
; 997  :         //5Khz left to the carrier
; 998  :         SetAudioStandardCarriersTDA9875(
; 999  :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] - CARRIER_OFFSET_5KHZ,
; 1000 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] - CARRIER_OFFSET_5KHZ
; 1001 :             );

  0083c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00842	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00845	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0084b	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00852	2d 88 13 00 00	 sub	 eax, 5000		; 00001388H
  00857	50		 push	 eax
  00858	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0085e	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00861	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00867	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  0086e	2d 88 13 00 00	 sub	 eax, 5000		; 00001388H
  00873	50		 push	 eax
  00874	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00877	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 1002 : 
; 1003 :         m_CarrierDetect_Phase = 11;

  0087c	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0087f	c7 41 2c 0b 00
	00 00		 mov	 DWORD PTR [ecx+44], 11	; 0000000bH

; 1004 :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  00886	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  0088b	e9 6c 05 00 00	 jmp	 $LN41@DetectStan
$LN22@DetectStan:

; 1005 :     }
; 1006 :     if (m_CarrierDetect_Phase == 11) //Minor carrier detection

  00890	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00893	83 7a 2c 0b	 cmp	 DWORD PTR [edx+44], 11	; 0000000bH
  00897	0f 85 d7 00 00
	00		 jne	 $LN21@DetectStan

; 1007 :     {
; 1008 :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  0089d	6a 02		 push	 2
  0089f	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  008a2	50		 push	 eax
  008a3	6a 05		 push	 5
  008a5	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  008a8	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 1009 :         val = ((short int)result[0]) << 8 | result[1];

  008ad	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  008b1	c1 e1 08	 shl	 ecx, 8
  008b4	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  008b8	0b ca		 or	 ecx, edx
  008ba	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 1010 :         a += val;

  008be	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  008c2	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  008c8	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 1011 :         c += (-CARRIER_OFFSET_5KHZ)*val;

  008cd	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  008d1	69 c9 78 ec ff
	ff		 imul	 ecx, -5000		; ffffec78H
  008d7	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  008dd	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 1012 :         d += CARRIER_OFFSET_5KHZ*CARRIER_OFFSET_5KHZ;

  008e3	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  008e9	81 c2 40 78 7d
	01		 add	 edx, 25000000		; 017d7840H
  008ef	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 1013 :         LOG(1,_T("TDA9875: Minor carrier = %d Hz, 5KHz left = %d"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex],val);

  008f5	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  008f9	50		 push	 eax
  008fa	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00900	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00903	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00909	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00910	50		 push	 eax
  00911	68 00 00 00 00	 push	 OFFSET ??_C@_1FO@GKEOMKKE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00916	6a 01		 push	 1
  00918	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0091d	83 c4 10	 add	 esp, 16			; 00000010H

; 1014 : 
; 1015 :         //Right
; 1016 :         //5Khz right from the carrier
; 1017 :         SetAudioStandardCarriersTDA9875(
; 1018 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] + CARRIER_OFFSET_5KHZ,
; 1019 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] + CARRIER_OFFSET_5KHZ
; 1020 :             );

  00920	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00926	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00929	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0092f	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00936	05 88 13 00 00	 add	 eax, 5000		; 00001388H
  0093b	50		 push	 eax
  0093c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00942	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00945	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  0094b	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00952	05 88 13 00 00	 add	 eax, 5000		; 00001388H
  00957	50		 push	 eax
  00958	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0095b	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 1021 :         m_CarrierDetect_Phase = 12;

  00960	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00963	c7 41 2c 0c 00
	00 00		 mov	 DWORD PTR [ecx+44], 12	; 0000000cH

; 1022 :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  0096a	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  0096f	e9 88 04 00 00	 jmp	 $LN41@DetectStan
$LN21@DetectStan:

; 1023 :     }
; 1024 :     if (m_CarrierDetect_Phase == 12) //Minor carrier detection

  00974	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00977	83 7a 2c 0c	 cmp	 DWORD PTR [edx+44], 12	; 0000000cH
  0097b	0f 85 d7 00 00
	00		 jne	 $LN20@DetectStan

; 1025 :     {
; 1026 :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  00981	6a 02		 push	 2
  00983	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  00986	50		 push	 eax
  00987	6a 05		 push	 5
  00989	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  0098c	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 1027 :         val = ((short int)result[0]) << 8 | result[1];

  00991	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  00995	c1 e1 08	 shl	 ecx, 8
  00998	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  0099c	0b ca		 or	 ecx, edx
  0099e	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 1028 :         a += val;

  009a2	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  009a6	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  009ac	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 1029 :         c += CARRIER_OFFSET_5KHZ*val;

  009b1	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  009b5	69 c9 88 13 00
	00		 imul	 ecx, 5000		; 00001388H
  009bb	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  009c1	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 1030 :         d += CARRIER_OFFSET_5KHZ*CARRIER_OFFSET_5KHZ;

  009c7	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  009cd	81 c2 40 78 7d
	01		 add	 edx, 25000000		; 017d7840H
  009d3	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 1031 :         LOG(1,_T("TDA9875: Minor carrier = %d Hz, 5KHz right = %d"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex],val);

  009d9	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  009dd	50		 push	 eax
  009de	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  009e4	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  009e7	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  009ed	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  009f4	50		 push	 eax
  009f5	68 00 00 00 00	 push	 OFFSET ??_C@_1GA@OIBOHNKF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  009fa	6a 01		 push	 1
  009fc	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00a01	83 c4 10	 add	 esp, 16			; 00000010H

; 1032 : 
; 1033 :         //15Khz right from the carrier
; 1034 :         SetAudioStandardCarriersTDA9875(
; 1035 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] + CARRIER_OFFSET_15KHZ,
; 1036 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] + CARRIER_OFFSET_15KHZ
; 1037 :             );

  00a04	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00a0a	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00a0d	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00a13	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00a1a	05 98 3a 00 00	 add	 eax, 15000		; 00003a98H
  00a1f	50		 push	 eax
  00a20	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00a26	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00a29	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00a2f	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00a36	05 98 3a 00 00	 add	 eax, 15000		; 00003a98H
  00a3b	50		 push	 eax
  00a3c	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00a3f	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 1038 : 
; 1039 :         m_CarrierDetect_Phase = 13;

  00a44	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00a47	c7 41 2c 0d 00
	00 00		 mov	 DWORD PTR [ecx+44], 13	; 0000000dH

; 1040 :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  00a4e	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  00a53	e9 a4 03 00 00	 jmp	 $LN41@DetectStan
$LN20@DetectStan:

; 1041 :     }
; 1042 :     if (m_CarrierDetect_Phase == 13) //Minor carrier detection

  00a58	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00a5b	83 7a 2c 0d	 cmp	 DWORD PTR [edx+44], 13	; 0000000dH
  00a5f	0f 85 d7 00 00
	00		 jne	 $LN19@DetectStan

; 1043 :     {
; 1044 :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  00a65	6a 02		 push	 2
  00a67	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  00a6a	50		 push	 eax
  00a6b	6a 05		 push	 5
  00a6d	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00a70	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 1045 :         val = ((short int)result[0]) << 8 | result[1];

  00a75	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  00a79	c1 e1 08	 shl	 ecx, 8
  00a7c	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  00a80	0b ca		 or	 ecx, edx
  00a82	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 1046 :         a += val;

  00a86	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00a8a	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00a90	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 1047 :         c += CARRIER_OFFSET_15KHZ*val;

  00a95	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  00a99	69 c9 98 3a 00
	00		 imul	 ecx, 15000		; 00003a98H
  00a9f	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00aa5	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 1048 :         d += CARRIER_OFFSET_15KHZ*CARRIER_OFFSET_15KHZ;

  00aab	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00ab1	81 c2 40 3a 69
	0d		 add	 edx, 225000000		; 0d693a40H
  00ab7	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 1049 :         LOG(1,_T("TDA9875: Minor carrier = %d Hz, 15KHz right = %d"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex],val);

  00abd	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00ac1	50		 push	 eax
  00ac2	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00ac8	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00acb	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00ad1	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00ad8	50		 push	 eax
  00ad9	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@JCPLKKCP@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00ade	6a 01		 push	 1
  00ae0	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00ae5	83 c4 10	 add	 esp, 16			; 00000010H

; 1050 : 
; 1051 :         //25Khz right from the carrier
; 1052 :         SetAudioStandardCarriersTDA9875(
; 1053 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] + CARRIER_OFFSET_25KHZ,
; 1054 :             CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] + CARRIER_OFFSET_25KHZ
; 1055 :             );

  00ae8	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00aee	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00af1	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00af7	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00afe	05 a8 61 00 00	 add	 eax, 25000		; 000061a8H
  00b03	50		 push	 eax
  00b04	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00b0a	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00b0d	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00b13	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00b1a	05 a8 61 00 00	 add	 eax, 25000		; 000061a8H
  00b1f	50		 push	 eax
  00b20	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00b23	e8 00 00 00 00	 call	 ?SetAudioStandardCarriersTDA9875@CTDA9875AudioDecoder@@AAEXJJ@Z ; CTDA9875AudioDecoder::SetAudioStandardCarriersTDA9875

; 1056 : 
; 1057 :         m_CarrierDetect_Phase = 14;

  00b28	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00b2b	c7 41 2c 0e 00
	00 00		 mov	 DWORD PTR [ecx+44], 14	; 0000000eH

; 1058 :         return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  00b32	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  00b37	e9 c0 02 00 00	 jmp	 $LN41@DetectStan
$LN19@DetectStan:

; 1059 :     }
; 1060 :     if (m_CarrierDetect_Phase == 14) //Minor carrier detection

  00b3c	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00b3f	83 7a 2c 0e	 cmp	 DWORD PTR [edx+44], 14	; 0000000eH
  00b43	0f 85 7f 01 00
	00		 jne	 $LN14@DetectStan

; 1061 :     {
; 1062 :         ReadFromSubAddress(TDA9875_L1MSB, result, sizeof(result));

  00b49	6a 02		 push	 2
  00b4b	8d 45 dc	 lea	 eax, DWORD PTR _result$[ebp]
  00b4e	50		 push	 eax
  00b4f	6a 05		 push	 5
  00b51	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00b54	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 1063 :         val = ((short int)result[0]) << 8 | result[1];

  00b59	0f b6 4d dc	 movzx	 ecx, BYTE PTR _result$[ebp]
  00b5d	c1 e1 08	 shl	 ecx, 8
  00b60	0f b6 55 dd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  00b64	0b ca		 or	 ecx, edx
  00b66	66 89 4d e0	 mov	 WORD PTR _val$[ebp], cx

; 1064 :         a += val;

  00b6a	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00b6e	03 05 00 00 00
	00		 add	 eax, DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00b74	a3 00 00 00 00	 mov	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, eax

; 1065 :         c += CARRIER_OFFSET_25KHZ*val;

  00b79	0f bf 4d e0	 movsx	 ecx, WORD PTR _val$[ebp]
  00b7d	69 c9 a8 61 00
	00		 imul	 ecx, 25000		; 000061a8H
  00b83	03 0d 00 00 00
	00		 add	 ecx, DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00b89	89 0d 00 00 00
	00		 mov	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, ecx

; 1066 :         d += CARRIER_OFFSET_25KHZ*CARRIER_OFFSET_25KHZ;

  00b8f	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00b95	81 c2 40 be 40
	25		 add	 edx, 625000000		; 2540be40H
  00b9b	89 15 00 00 00
	00		 mov	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 1067 :         LOG(1,_T("TDA9875: Minor carrier = %d Hz, 25KHz right = %d"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex],val);

  00ba1	0f bf 45 e0	 movsx	 eax, WORD PTR _val$[ebp]
  00ba5	50		 push	 eax
  00ba6	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00bac	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00baf	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00bb5	8b 84 91 04 00
	00 00		 mov	 eax, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4]
  00bbc	50		 push	 eax
  00bbd	68 00 00 00 00	 push	 OFFSET ??_C@_1GC@PPHNFJHF@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AAd?$AA?5?$AAH?$AAz?$AA?0?$AA?5@
  00bc2	6a 01		 push	 1
  00bc4	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00bc9	83 c4 10	 add	 esp, 16			; 00000010H

; 1068 : 
; 1069 :         k0 = a/6.0;

  00bcc	db 05 00 00 00
	00		 fild	 DWORD PTR ?a@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00bd2	dc 35 00 00 00
	00		 fdiv	 QWORD PTR __real@4018000000000000
  00bd8	dd 5d e8	 fstp	 QWORD PTR _k0$[ebp]

; 1070 :         k1 = ((double)c)/d;

  00bdb	db 05 00 00 00
	00		 fild	 DWORD PTR ?c@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00be1	da 35 00 00 00
	00		 fidiv	 DWORD PTR ?d@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00be7	dd 5d d0	 fstp	 QWORD PTR _k1$[ebp]

; 1071 :         if (k1 != 0)

  00bea	d9 ee		 fldz
  00bec	dc 5d d0	 fcomp	 QWORD PTR _k1$[ebp]
  00bef	df e0		 fnstsw	 ax
  00bf1	f6 c4 44	 test	 ah, 68			; 00000044H
  00bf4	7b 0d		 jnp	 SHORT $LN17@DetectStan

; 1072 :             u0 = - k0/k1;

  00bf6	dd 45 e8	 fld	 QWORD PTR _k0$[ebp]
  00bf9	d9 e0		 fchs
  00bfb	dc 75 d0	 fdiv	 QWORD PTR _k1$[ebp]
  00bfe	dd 5d f0	 fstp	 QWORD PTR _u0$[ebp]

; 1073 :         else

  00c01	eb 09		 jmp	 SHORT $LN16@DetectStan
$LN17@DetectStan:

; 1074 :             u0 = CARRIER_OFFSET_25KHZ + 1; //out of range

  00c03	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@40d86a4000000000
  00c09	dd 5d f0	 fstp	 QWORD PTR _u0$[ebp]
$LN16@DetectStan:

; 1075 : 
; 1076 :         condition1 = ((u0 > -CARRIER_OFFSET_25KHZ) && (u0 < CARRIER_OFFSET_25KHZ));

  00c0c	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@c0d86a0000000000
  00c12	dc 5d f0	 fcomp	 QWORD PTR _u0$[ebp]
  00c15	df e0		 fnstsw	 ax
  00c17	f6 c4 05	 test	 ah, 5
  00c1a	7a 19		 jp	 SHORT $LN47@DetectStan
  00c1c	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@40d86a0000000000
  00c22	dc 5d f0	 fcomp	 QWORD PTR _u0$[ebp]
  00c25	df e0		 fnstsw	 ax
  00c27	f6 c4 41	 test	 ah, 65			; 00000041H
  00c2a	75 09		 jne	 SHORT $LN47@DetectStan
  00c2c	c7 45 b4 01 00
	00 00		 mov	 DWORD PTR tv688[ebp], 1
  00c33	eb 07		 jmp	 SHORT $LN48@DetectStan
$LN47@DetectStan:
  00c35	c7 45 b4 00 00
	00 00		 mov	 DWORD PTR tv688[ebp], 0
$LN48@DetectStan:
  00c3c	8b 4d b4	 mov	 ecx, DWORD PTR tv688[ebp]
  00c3f	89 4d fc	 mov	 DWORD PTR _condition1$[ebp], ecx

; 1077 :         condition2 = (k1 > 0.05);

  00c42	dd 05 00 00 00
	00		 fld	 QWORD PTR __real@3fa999999999999a
  00c48	dc 5d d0	 fcomp	 QWORD PTR _k1$[ebp]
  00c4b	df e0		 fnstsw	 ax
  00c4d	f6 c4 05	 test	 ah, 5
  00c50	7a 09		 jp	 SHORT $LN49@DetectStan
  00c52	c7 45 b0 01 00
	00 00		 mov	 DWORD PTR tv690[ebp], 1
  00c59	eb 07		 jmp	 SHORT $LN50@DetectStan
$LN49@DetectStan:
  00c5b	c7 45 b0 00 00
	00 00		 mov	 DWORD PTR tv690[ebp], 0
$LN50@DetectStan:
  00c62	8b 55 b0	 mov	 edx, DWORD PTR tv690[ebp]
  00c65	89 55 d8	 mov	 DWORD PTR _condition2$[ebp], edx

; 1078 : 
; 1079 :         if (condition1 && condition2) //found

  00c68	83 7d fc 00	 cmp	 DWORD PTR _condition1$[ebp], 0
  00c6c	74 37		 je	 SHORT $LN15@DetectStan
  00c6e	83 7d d8 00	 cmp	 DWORD PTR _condition2$[ebp], 0
  00c72	74 31		 je	 SHORT $LN15@DetectStan

; 1080 :         {
; 1081 :             LOG(1,_T("TDA9875: Found Minor carrier = %d Hz"),CarrierDetectTable[nMajorIndex].Minor[nMinorIndex]);

  00c74	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00c79	6b c0 2c	 imul	 eax, 44			; 0000002cH
  00c7c	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00c82	8b 94 88 04 00
	00 00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax+ecx*4+4]
  00c89	52		 push	 edx
  00c8a	68 00 00 00 00	 push	 OFFSET ??_C@_1EK@CPGMEMPJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAF?$AAo?$AAu?$AAn?$AAd?$AA?5?$AAM?$AAi?$AAn?$AAo?$AAr?$AA?5?$AAc?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?5?$AA?$DN?$AA?5?$AA?$CF@
  00c8f	6a 01		 push	 1
  00c91	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00c96	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1082 :             m_CarrierDetect_Phase = 15; // Find standard

  00c99	8b 45 c0	 mov	 eax, DWORD PTR _this$[ebp]
  00c9c	c7 40 2c 0f 00
	00 00		 mov	 DWORD PTR [eax+44], 15	; 0000000fH

; 1083 :         }
; 1084 :         else

  00ca3	eb 23		 jmp	 SHORT $LN14@DetectStan
$LN15@DetectStan:

; 1085 :         {
; 1086 :             m_CarrierDetect_Phase = 8;

  00ca5	8b 4d c0	 mov	 ecx, DWORD PTR _this$[ebp]
  00ca8	c7 41 2c 08 00
	00 00		 mov	 DWORD PTR [ecx+44], 8

; 1087 :             nMinorIndex++;

  00caf	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00cb5	83 c2 01	 add	 edx, 1
  00cb8	89 15 00 00 00
	00		 mov	 DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA, edx

; 1088 :             return TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  00cbe	b8 ff 07 00 00	 mov	 eax, 2047		; 000007ffH
  00cc3	e9 34 01 00 00	 jmp	 $LN41@DetectStan
$LN14@DetectStan:

; 1089 :         }
; 1090 :     }
; 1091 : 
; 1092 :     //Find standard
; 1093 :     if (m_CarrierDetect_Phase == 15)

  00cc8	8b 45 c0	 mov	 eax, DWORD PTR _this$[ebp]
  00ccb	83 78 2c 0f	 cmp	 DWORD PTR [eax+44], 15	; 0000000fH
  00ccf	0f 85 24 01 00
	00		 jne	 $LN13@DetectStan

; 1094 :     {
; 1095 :         eCarrier MajorCarrier;
; 1096 :         eCarrier MinorCarrier;
; 1097 : 
; 1098 :         MajorCarrier = MinorCarrier = CarrierDetectTable[nMajorIndex].Major;

  00cd5	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00cdb	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00cde	8b 91 00 00 00
	00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx]
  00ce4	89 55 c4	 mov	 DWORD PTR _MinorCarrier$140829[ebp], edx
  00ce7	8b 45 c4	 mov	 eax, DWORD PTR _MinorCarrier$140829[ebp]
  00cea	89 45 c8	 mov	 DWORD PTR _MajorCarrier$140828[ebp], eax

; 1099 :         if (CarrierDetectTable[nMajorIndex].Minor[nMinorIndex] != TDA9875_NOCARRIER)

  00ced	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00cf3	6b c9 2c	 imul	 ecx, 44			; 0000002cH
  00cf6	8b 15 00 00 00
	00		 mov	 edx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00cfc	83 bc 91 04 00
	00 00 00	 cmp	 DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[ecx+edx*4+4], 0
  00d04	74 18		 je	 SHORT $LN12@DetectStan

; 1100 :             MinorCarrier = CarrierDetectTable[nMajorIndex].Minor[nMinorIndex];

  00d06	a1 00 00 00 00	 mov	 eax, DWORD PTR ?nMajorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00d0b	6b c0 2c	 imul	 eax, 44			; 0000002cH
  00d0e	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?nMinorIndex@?1??DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@2@XZ@4HA
  00d14	8b 94 88 04 00
	00 00		 mov	 edx, DWORD PTR ?CarrierDetectTable@CTDA9875AudioDecoder@@0PAUTCarrierDetect@1@A[eax+ecx*4+4]
  00d1b	89 55 c4	 mov	 DWORD PTR _MinorCarrier$140829[ebp], edx
$LN12@DetectStan:

; 1101 : 
; 1102 :         int n = 0;

  00d1e	c7 45 cc 00 00
	00 00		 mov	 DWORD PTR _n$140831[ebp], 0
$LN11@DetectStan:

; 1103 :         while (m_TDA9875Standards[n].Name != NULL)

  00d25	8b 45 cc	 mov	 eax, DWORD PTR _n$140831[ebp]
  00d28	6b c0 1c	 imul	 eax, 28			; 0000001cH
  00d2b	83 b8 00 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[eax], 0
  00d32	74 57		 je	 SHORT $LN10@DetectStan

; 1104 :         {
; 1105 :             if (m_TDA9875Standards[n].MajorCarrier == MajorCarrier)

  00d34	8b 4d cc	 mov	 ecx, DWORD PTR _n$140831[ebp]
  00d37	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00d3a	8b 91 08 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx+8]
  00d40	3b 55 c8	 cmp	 edx, DWORD PTR _MajorCarrier$140828[ebp]
  00d43	75 3b		 jne	 SHORT $LN7@DetectStan

; 1106 :             {
; 1107 :                 Standard = m_TDA9875Standards[n].Standard;

  00d45	8b 45 cc	 mov	 eax, DWORD PTR _n$140831[ebp]
  00d48	6b c0 1c	 imul	 eax, 28			; 0000001cH
  00d4b	8b 88 04 00 00
	00		 mov	 ecx, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[eax+4]
  00d51	89 4d e4	 mov	 DWORD PTR _Standard$[ebp], ecx

; 1108 :                 if (MajorCarrier == MinorCarrier)

  00d54	8b 55 c8	 mov	 edx, DWORD PTR _MajorCarrier$140828[ebp]
  00d57	3b 55 c4	 cmp	 edx, DWORD PTR _MinorCarrier$140829[ebp]
  00d5a	75 02		 jne	 SHORT $LN8@DetectStan

; 1109 :                     break;

  00d5c	eb 2d		 jmp	 SHORT $LN10@DetectStan
$LN8@DetectStan:

; 1110 : 
; 1111 :                 if (m_TDA9875Standards[n].MinorCarrier == MinorCarrier)

  00d5e	8b 45 cc	 mov	 eax, DWORD PTR _n$140831[ebp]
  00d61	6b c0 1c	 imul	 eax, 28			; 0000001cH
  00d64	8b 88 0c 00 00
	00		 mov	 ecx, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[eax+12]
  00d6a	3b 4d c4	 cmp	 ecx, DWORD PTR _MinorCarrier$140829[ebp]
  00d6d	75 11		 jne	 SHORT $LN7@DetectStan

; 1112 :                 {
; 1113 :                     Standard = m_TDA9875Standards[n].Standard;

  00d6f	8b 55 cc	 mov	 edx, DWORD PTR _n$140831[ebp]
  00d72	6b d2 1c	 imul	 edx, 28			; 0000001cH
  00d75	8b 82 04 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[edx+4]
  00d7b	89 45 e4	 mov	 DWORD PTR _Standard$[ebp], eax

; 1114 :                     break;

  00d7e	eb 0b		 jmp	 SHORT $LN10@DetectStan
$LN7@DetectStan:

; 1115 :                 }
; 1116 :             }
; 1117 : 
; 1118 :             n++;

  00d80	8b 4d cc	 mov	 ecx, DWORD PTR _n$140831[ebp]
  00d83	83 c1 01	 add	 ecx, 1
  00d86	89 4d cc	 mov	 DWORD PTR _n$140831[ebp], ecx

; 1119 :         }

  00d89	eb 9a		 jmp	 SHORT $LN11@DetectStan
$LN10@DetectStan:

; 1120 : 
; 1121 :         if ((MajorCarrier == TDA9875_CARRIER_4_5) && (MinorCarrier == TDA9875_CARRIER_4_5))

  00d8b	81 7d c8 20 aa
	44 00		 cmp	 DWORD PTR _MajorCarrier$140828[ebp], 4500000 ; 0044aa20H
  00d92	75 12		 jne	 SHORT $LN6@DetectStan
  00d94	81 7d c4 20 aa
	44 00		 cmp	 DWORD PTR _MinorCarrier$140829[ebp], 4500000 ; 0044aa20H
  00d9b	75 09		 jne	 SHORT $LN6@DetectStan

; 1122 :             Standard = TDA9875_STANDARD_M_ANALOG_FM_NONE;

  00d9d	c7 45 e4 10 00
	00 00		 mov	 DWORD PTR _Standard$[ebp], 16 ; 00000010H
  00da4	eb 4e		 jmp	 SHORT $LN1@DetectStan
$LN6@DetectStan:

; 1123 :         //Solve DK_FM_NICAM vs L_AM_NICAM ambiguity
; 1124 :         else if ((MajorCarrier == TDA9875_CARRIER_6_5) && (MinorCarrier == TDA9875_CARRIER_5_85))

  00da6	81 7d c8 a0 2e
	63 00		 cmp	 DWORD PTR _MajorCarrier$140828[ebp], 6500000 ; 00632ea0H
  00dad	75 2c		 jne	 SHORT $LN4@DetectStan
  00daf	81 7d c4 90 43
	59 00		 cmp	 DWORD PTR _MinorCarrier$140829[ebp], 5850000 ; 00594390H
  00db6	75 23		 jne	 SHORT $LN4@DetectStan

; 1125 :         {
; 1126 :             Standard = TDA9875_STANDARD_DK_DIGITAL_FM_NICAM;

  00db8	c7 45 e4 32 00
	00 00		 mov	 DWORD PTR _Standard$[ebp], 50 ; 00000032H

; 1127 :             if (IsSECAMVideoFormat(m_VideoFormat))

  00dbf	8b 55 c0	 mov	 edx, DWORD PTR _this$[ebp]
  00dc2	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00dc5	50		 push	 eax
  00dc6	e8 00 00 00 00	 call	 ?IsSECAMVideoFormat@@YAHW4eVideoFormat@@@Z ; IsSECAMVideoFormat
  00dcb	83 c4 04	 add	 esp, 4
  00dce	85 c0		 test	 eax, eax
  00dd0	74 07		 je	 SHORT $LN3@DetectStan

; 1128 :                 Standard = TDA9875_STANDARD_L_DIGITAL_AM_NICAM;

  00dd2	c7 45 e4 33 00
	00 00		 mov	 DWORD PTR _Standard$[ebp], 51 ; 00000033H
$LN3@DetectStan:

; 1129 :         }

  00dd9	eb 19		 jmp	 SHORT $LN1@DetectStan
$LN4@DetectStan:

; 1130 :         else if ((MajorCarrier == TDA9875_CARRIER_6_5) && (MinorCarrier == TDA9875_CARRIER_6_5))

  00ddb	81 7d c8 a0 2e
	63 00		 cmp	 DWORD PTR _MajorCarrier$140828[ebp], 6500000 ; 00632ea0H
  00de2	75 10		 jne	 SHORT $LN1@DetectStan
  00de4	81 7d c4 a0 2e
	63 00		 cmp	 DWORD PTR _MinorCarrier$140829[ebp], 6500000 ; 00632ea0H
  00deb	75 07		 jne	 SHORT $LN1@DetectStan

; 1131 :             Standard = TDA9875_STANDARD_SAT_FM_MONO;

  00ded	c7 45 e4 50 00
	00 00		 mov	 DWORD PTR _Standard$[ebp], 80 ; 00000050H
$LN1@DetectStan:

; 1132 : 
; 1133 :         return Standard;

  00df4	8b 45 e4	 mov	 eax, DWORD PTR _Standard$[ebp]
  00df7	eb 03		 jmp	 SHORT $LN41@DetectStan
$LN13@DetectStan:

; 1134 :     }
; 1135 : 
; 1136 :     return Standard;

  00df9	8b 45 e4	 mov	 eax, DWORD PTR _Standard$[ebp]
$LN41@DetectStan:

; 1137 : }

  00dfc	8b e5		 mov	 esp, ebp
  00dfe	5d		 pop	 ebp
  00dff	c3		 ret	 0
?DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@1@XZ ENDP ; CTDA9875AudioDecoder::DetectStandardTDA9875
PUBLIC	?DetectThread@CTDA9875AudioDecoder@@QAEHXZ	; CTDA9875AudioDecoder::DetectThread
; Function compile flags: /Odtp
;	COMDAT ?DetectThread@CTDA9875AudioDecoder@@QAEHXZ
_TEXT	SEGMENT
tv276 = -48						; size = 4
tv150 = -44						; size = 4
_this$ = -40						; size = 4
_SupportedSoundChannels$140924 = -36			; size = 4
_result$140919 = -29					; size = 1
_iSupported$140917 = -28				; size = 4
_Supported$140916 = -24					; size = 4
_standard$140909 = -20					; size = 4
_DetectCounter$140907 = -16				; size = 4
_bStopThread$ = -12					; size = 4
_AutoDetecting$ = -8					; size = 4
_bWait$ = -4						; size = 4
?DetectThread@CTDA9875AudioDecoder@@QAEHXZ PROC		; CTDA9875AudioDecoder::DetectThread, COMDAT
; _this$ = ecx

; 1249 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 30	 sub	 esp, 48			; 00000030H
  00006	89 4d d8	 mov	 DWORD PTR _this$[ebp], ecx

; 1250 :     int AutoDetecting;
; 1251 :     BOOL bWait;
; 1252 : 
; 1253 :     EnterCriticalSection(&TDA9875CriticalSection);

  00009	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 c0 4c	 add	 eax, 76			; 0000004cH
  0000f	50		 push	 eax
  00010	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1254 :     m_DetectCounter = 1;

  00016	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00019	c7 41 64 01 00
	00 00		 mov	 DWORD PTR [ecx+100], 1

; 1255 :     BOOL bStopThread = m_bStopThread;

  00020	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00023	8b 42 48	 mov	 eax, DWORD PTR [edx+72]
  00026	89 45 f4	 mov	 DWORD PTR _bStopThread$[ebp], eax

; 1256 :     LeaveCriticalSection(&TDA9875CriticalSection);

  00029	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0002c	83 c1 4c	 add	 ecx, 76			; 0000004cH
  0002f	51		 push	 ecx
  00030	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN18@DetectThre@3:

; 1257 :     while (!bStopThread)

  00036	83 7d f4 00	 cmp	 DWORD PTR _bStopThread$[ebp], 0
  0003a	0f 85 be 04 00
	00		 jne	 $LN17@DetectThre@3

; 1258 :     {
; 1259 :         EnterCriticalSection(&TDA9875CriticalSection);

  00040	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00043	83 c2 4c	 add	 edx, 76			; 0000004cH
  00046	52		 push	 edx
  00047	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1260 :         bWait = m_ThreadWait;

  0004d	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00050	8b 48 6c	 mov	 ecx, DWORD PTR [eax+108]
  00053	89 4d fc	 mov	 DWORD PTR _bWait$[ebp], ecx

; 1261 :         LeaveCriticalSection(&TDA9875CriticalSection);

  00056	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00059	83 c2 4c	 add	 edx, 76			; 0000004cH
  0005c	52		 push	 edx
  0005d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1262 :         if (bWait)

  00063	83 7d fc 00	 cmp	 DWORD PTR _bWait$[ebp], 0
  00067	74 40		 je	 SHORT $LN16@DetectThre@3

; 1263 :         {
; 1264 :             EnterCriticalSection(&TDA9875CriticalSection);

  00069	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0006c	83 c0 4c	 add	 eax, 76			; 0000004cH
  0006f	50		 push	 eax
  00070	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1265 :             m_AutoDetecting = 0;

  00076	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00079	c7 41 40 00 00
	00 00		 mov	 DWORD PTR [ecx+64], 0

; 1266 :             LeaveCriticalSection(&TDA9875CriticalSection);

  00080	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00083	83 c2 4c	 add	 edx, 76			; 0000004cH
  00086	52		 push	 edx
  00087	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1267 :             LOG(1, _T("TDA9875: Suspending thread"));

  0008d	68 00 00 00 00	 push	 OFFSET ??_C@_1DG@EOENIJBH@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AA?3?$AA?5?$AAS?$AAu?$AAs?$AAp?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAt?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
  00092	6a 01		 push	 1
  00094	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00099	83 c4 08	 add	 esp, 8

; 1268 :             SuspendThread(m_TDA9875Thread);

  0009c	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0009f	8b 48 44	 mov	 ecx, DWORD PTR [eax+68]
  000a2	51		 push	 ecx
  000a3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SuspendThread@4
$LN16@DetectThre@3:

; 1269 :         }
; 1270 : 
; 1271 :         EnterCriticalSection(&TDA9875CriticalSection);

  000a9	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  000ac	83 c2 4c	 add	 edx, 76			; 0000004cH
  000af	52		 push	 edx
  000b0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1272 :         AutoDetecting = m_AutoDetecting;

  000b6	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  000b9	8b 48 40	 mov	 ecx, DWORD PTR [eax+64]
  000bc	89 4d f8	 mov	 DWORD PTR _AutoDetecting$[ebp], ecx

; 1273 :         long DetectCounter = m_DetectCounter;

  000bf	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  000c2	8b 42 64	 mov	 eax, DWORD PTR [edx+100]
  000c5	89 45 f0	 mov	 DWORD PTR _DetectCounter$140907[ebp], eax

; 1274 :         LeaveCriticalSection(&TDA9875CriticalSection);

  000c8	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  000cb	83 c1 4c	 add	 ecx, 76			; 0000004cH
  000ce	51		 push	 ecx
  000cf	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1275 : 
; 1276 :         // Override detect interval, always use 100 ms interval
; 1277 :         if ((AutoDetecting==1) &&
; 1278 :             ((DetectCounter%10)==0)) //Detect standard

  000d5	83 7d f8 01	 cmp	 DWORD PTR _AutoDetecting$[ebp], 1
  000d9	0f 85 7b 01 00
	00		 jne	 $LN15@DetectThre@3
  000df	8b 45 f0	 mov	 eax, DWORD PTR _DetectCounter$140907[ebp]
  000e2	99		 cdq
  000e3	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  000e8	f7 f9		 idiv	 ecx
  000ea	85 d2		 test	 edx, edx
  000ec	0f 85 68 01 00
	00		 jne	 $LN15@DetectThre@3

; 1279 :         {
; 1280 : 
; 1281 :             EnterCriticalSection(&TDA9875CriticalSection);

  000f2	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  000f5	83 c2 4c	 add	 edx, 76			; 0000004cH
  000f8	52		 push	 edx
  000f9	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1282 :             m_AudioStandard = TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS;

  000ff	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00102	c7 40 1c ff 07
	00 00		 mov	 DWORD PTR [eax+28], 2047 ; 000007ffH

; 1283 :             LeaveCriticalSection(&TDA9875CriticalSection);

  00109	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0010c	83 c1 4c	 add	 ecx, 76			; 0000004cH
  0010f	51		 push	 ecx
  00110	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1284 : 
; 1285 :             eStandard standard = DetectStandardTDA9875();

  00116	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00119	e8 00 00 00 00	 call	 ?DetectStandardTDA9875@CTDA9875AudioDecoder@@AAE?AW4eStandard@1@XZ ; CTDA9875AudioDecoder::DetectStandardTDA9875
  0011e	89 45 ec	 mov	 DWORD PTR _standard$140909[ebp], eax

; 1286 :             if (standard != TDA9875_STANDARD_AUTODETECTION_IN_PROGRESS)

  00121	81 7d ec ff 07
	00 00		 cmp	 DWORD PTR _standard$140909[ebp], 2047 ; 000007ffH
  00128	0f 84 01 01 00
	00		 je	 $LN14@DetectThre@3

; 1287 :             {
; 1288 :                 EventCollector->RaiseEvent(this,EVENT_AUDIOSTANDARD_DETECTED, 0, standard);

  0012e	83 7d d8 00	 cmp	 DWORD PTR _this$[ebp], 0
  00132	74 0b		 je	 SHORT $LN21@DetectThre@3
  00134	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00137	83 c2 0c	 add	 edx, 12			; 0000000cH
  0013a	89 55 d4	 mov	 DWORD PTR tv150[ebp], edx
  0013d	eb 07		 jmp	 SHORT $LN22@DetectThre@3
$LN21@DetectThre@3:
  0013f	c7 45 d4 00 00
	00 00		 mov	 DWORD PTR tv150[ebp], 0
$LN22@DetectThre@3:
  00146	6a 00		 push	 0
  00148	8b 45 ec	 mov	 eax, DWORD PTR _standard$140909[ebp]
  0014b	50		 push	 eax
  0014c	6a 00		 push	 0
  0014e	6a 10		 push	 16			; 00000010H
  00150	8b 4d d4	 mov	 ecx, DWORD PTR tv150[ebp]
  00153	51		 push	 ecx
  00154	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  00159	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  0015e	8b c8		 mov	 ecx, eax
  00160	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent

; 1289 : 
; 1290 :                 EnterCriticalSection(&TDA9875CriticalSection);

  00165	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00168	83 c2 4c	 add	 edx, 76			; 0000004cH
  0016b	52		 push	 edx
  0016c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1291 :                 m_SupportedSoundChannels = SUPPORTEDSOUNDCHANNEL_MONO;

  00172	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00175	c7 40 74 01 00
	00 00		 mov	 DWORD PTR [eax+116], 1

; 1292 :                 m_AudioStandard = standard;

  0017c	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0017f	8b 55 ec	 mov	 edx, DWORD PTR _standard$140909[ebp]
  00182	89 51 1c	 mov	 DWORD PTR [ecx+28], edx

; 1293 :                 SetAudioStandard(standard, m_VideoFormat);

  00185	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00188	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0018b	51		 push	 ecx
  0018c	8b 55 ec	 mov	 edx, DWORD PTR _standard$140909[ebp]
  0018f	52		 push	 edx
  00190	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00193	83 c1 0c	 add	 ecx, 12			; 0000000cH
  00196	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00199	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  0019c	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  0019f	ff d0		 call	 eax

; 1294 :                 LeaveCriticalSection(&TDA9875CriticalSection);

  001a1	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001a4	83 c1 4c	 add	 ecx, 76			; 0000004cH
  001a7	51		 push	 ecx
  001a8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1295 : 
; 1296 :                 m_pAudioControls->m_bKeepItMuted = FALSE;

  001ae	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  001b1	8b 42 30	 mov	 eax, DWORD PTR [edx+48]
  001b4	c7 40 14 00 00
	00 00		 mov	 DWORD PTR [eax+20], 0

; 1297 :                 Audio_SetUserMute(FALSE);

  001bb	6a 00		 push	 0
  001bd	e8 00 00 00 00	 call	 ?Audio_SetUserMute@@YAXH@Z ; Audio_SetUserMute
  001c2	83 c4 04	 add	 esp, 4

; 1298 : 
; 1299 :                 EnterCriticalSection(&TDA9875CriticalSection);

  001c5	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001c8	83 c1 4c	 add	 ecx, 76			; 0000004cH
  001cb	51		 push	 ecx
  001cc	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1300 :                 if (m_DetectSupportedSoundChannels)

  001d2	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  001d5	83 7a 70 00	 cmp	 DWORD PTR [edx+112], 0
  001d9	74 1f		 je	 SHORT $LN13@DetectThre@3

; 1301 :                 {
; 1302 :                     m_AutoDetecting = AutoDetecting = 2; //Try to find stereo

  001db	c7 45 f8 02 00
	00 00		 mov	 DWORD PTR _AutoDetecting$[ebp], 2
  001e2	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  001e5	8b 4d f8	 mov	 ecx, DWORD PTR _AutoDetecting$[ebp]
  001e8	89 48 40	 mov	 DWORD PTR [eax+64], ecx

; 1303 :                     LeaveCriticalSection(&TDA9875CriticalSection);

  001eb	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  001ee	83 c2 4c	 add	 edx, 76			; 0000004cH
  001f1	52		 push	 edx
  001f2	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1304 :                 }
; 1305 :                 else

  001f8	eb 35		 jmp	 SHORT $LN14@DetectThre@3
$LN13@DetectThre@3:

; 1306 :                 {
; 1307 :                     m_AutoDetecting = AutoDetecting = 0; //Finished

  001fa	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _AutoDetecting$[ebp], 0
  00201	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00204	8b 4d f8	 mov	 ecx, DWORD PTR _AutoDetecting$[ebp]
  00207	89 48 40	 mov	 DWORD PTR [eax+64], ecx

; 1308 :                     SetSoundChannel(m_SoundChannel);

  0020a	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0020d	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  00210	50		 push	 eax
  00211	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00214	83 c1 0c	 add	 ecx, 12			; 0000000cH
  00217	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0021a	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0021d	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00220	ff d2		 call	 edx

; 1309 :                     LeaveCriticalSection(&TDA9875CriticalSection);

  00222	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00225	83 c0 4c	 add	 eax, 76			; 0000004cH
  00228	50		 push	 eax
  00229	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN14@DetectThre@3:

; 1310 :                 }
; 1311 :             }
; 1312 :             EnterCriticalSection(&TDA9875CriticalSection);

  0022f	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00232	83 c1 4c	 add	 ecx, 76			; 0000004cH
  00235	51		 push	 ecx
  00236	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1313 :             DetectCounter = m_DetectCounter = 1;

  0023c	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0023f	c7 42 64 01 00
	00 00		 mov	 DWORD PTR [edx+100], 1
  00246	c7 45 f0 01 00
	00 00		 mov	 DWORD PTR _DetectCounter$140907[ebp], 1

; 1314 :             LeaveCriticalSection(&TDA9875CriticalSection);

  0024d	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00250	83 c0 4c	 add	 eax, 76			; 0000004cH
  00253	50		 push	 eax
  00254	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN15@DetectThre@3:

; 1315 : 
; 1316 :         }
; 1317 : 
; 1318 :         EnterCriticalSection(&TDA9875CriticalSection);

  0025a	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0025d	83 c1 4c	 add	 ecx, 76			; 0000004cH
  00260	51		 push	 ecx
  00261	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1319 :         AutoDetecting = m_AutoDetecting;

  00267	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0026a	8b 42 40	 mov	 eax, DWORD PTR [edx+64]
  0026d	89 45 f8	 mov	 DWORD PTR _AutoDetecting$[ebp], eax

; 1320 :         if (AutoDetecting == 0)

  00270	83 7d f8 00	 cmp	 DWORD PTR _AutoDetecting$[ebp], 0
  00274	75 0a		 jne	 SHORT $LN11@DetectThre@3

; 1321 :             m_ThreadWait = TRUE;

  00276	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00279	c7 41 6c 01 00
	00 00		 mov	 DWORD PTR [ecx+108], 1
$LN11@DetectThre@3:

; 1322 :         LeaveCriticalSection(&TDA9875CriticalSection);

  00280	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00283	83 c2 4c	 add	 edx, 76			; 0000004cH
  00286	52		 push	 edx
  00287	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1323 : 
; 1324 : 
; 1325 :         if (AutoDetecting==2) //Detect mono/stereo/lang1/lang2

  0028d	83 7d f8 02	 cmp	 DWORD PTR _AutoDetecting$[ebp], 2
  00291	0f 85 d8 01 00
	00		 jne	 $LN10@DetectThre@3

; 1326 :         {
; 1327 :             EnterCriticalSection(&TDA9875CriticalSection);

  00297	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0029a	83 c0 4c	 add	 eax, 76			; 0000004cH
  0029d	50		 push	 eax
  0029e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1328 :             DetectCounter = m_DetectCounter;

  002a4	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  002a7	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  002aa	89 55 f0	 mov	 DWORD PTR _DetectCounter$140907[ebp], edx

; 1329 :             LeaveCriticalSection(&TDA9875CriticalSection);

  002ad	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  002b0	83 c0 4c	 add	 eax, 76			; 0000004cH
  002b3	50		 push	 eax
  002b4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1330 : 
; 1331 :             if ((DetectCounter%m_DetectInterval10ms) == 0)

  002ba	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  002bd	8b 45 f0	 mov	 eax, DWORD PTR _DetectCounter$140907[ebp]
  002c0	99		 cdq
  002c1	f7 79 68	 idiv	 DWORD PTR [ecx+104]
  002c4	85 d2		 test	 edx, edx
  002c6	0f 85 a3 01 00
	00		 jne	 $LN10@DetectThre@3

; 1332 :             {
; 1333 : 
; 1334 :                 eSupportedSoundChannels Supported = SUPPORTEDSOUNDCHANNEL_MONO;

  002cc	c7 45 e8 01 00
	00 00		 mov	 DWORD PTR _Supported$140916[ebp], 1

; 1335 :                 int iSupported = (int)Supported;

  002d3	8b 55 e8	 mov	 edx, DWORD PTR _Supported$140916[ebp]
  002d6	89 55 e4	 mov	 DWORD PTR _iSupported$140917[ebp], edx

; 1336 : 
; 1337 :                 BYTE result[1];
; 1338 : 
; 1339 :                 EnterCriticalSection(&TDA9875CriticalSection);

  002d9	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  002dc	83 c0 4c	 add	 eax, 76			; 0000004cH
  002df	50		 push	 eax
  002e0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1340 :                 ReadFromSubAddress(TDA9875_STA, 0, 0, result, sizeof(result));

  002e6	6a 01		 push	 1
  002e8	8d 4d e3	 lea	 ecx, DWORD PTR _result$140919[ebp]
  002eb	51		 push	 ecx
  002ec	6a 00		 push	 0
  002ee	6a 00		 push	 0
  002f0	6a 00		 push	 0
  002f2	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  002f5	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 1341 :                 LeaveCriticalSection(&TDA9875CriticalSection);

  002fa	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  002fd	83 c2 4c	 add	 edx, 76			; 0000004cH
  00300	52		 push	 edx
  00301	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1342 : 
; 1343 :                 if ((result[0] & 0x02) == 0x02)

  00307	0f b6 45 e3	 movzx	 eax, BYTE PTR _result$140919[ebp]
  0030b	83 e0 02	 and	 eax, 2
  0030e	74 09		 je	 SHORT $LN8@DetectThre@3

; 1344 :                     iSupported |= SUPPORTEDSOUNDCHANNEL_STEREO;

  00310	8b 4d e4	 mov	 ecx, DWORD PTR _iSupported$140917[ebp]
  00313	83 c9 02	 or	 ecx, 2
  00316	89 4d e4	 mov	 DWORD PTR _iSupported$140917[ebp], ecx
$LN8@DetectThre@3:

; 1345 :                 if ((result[0] & 0x04) == 0x04)

  00319	0f b6 55 e3	 movzx	 edx, BYTE PTR _result$140919[ebp]
  0031d	83 e2 04	 and	 edx, 4
  00320	74 09		 je	 SHORT $LN7@DetectThre@3

; 1346 :                     iSupported |= SUPPORTEDSOUNDCHANNEL_LANG1;

  00322	8b 45 e4	 mov	 eax, DWORD PTR _iSupported$140917[ebp]
  00325	83 c8 04	 or	 eax, 4
  00328	89 45 e4	 mov	 DWORD PTR _iSupported$140917[ebp], eax
$LN7@DetectThre@3:

; 1347 :                 if ((result[0] & 0x06) == 0x06)

  0032b	0f b6 4d e3	 movzx	 ecx, BYTE PTR _result$140919[ebp]
  0032f	83 e1 06	 and	 ecx, 6
  00332	83 f9 06	 cmp	 ecx, 6
  00335	75 09		 jne	 SHORT $LN6@DetectThre@3

; 1348 :                     iSupported |= SUPPORTEDSOUNDCHANNEL_LANG1 | SUPPORTEDSOUNDCHANNEL_LANG2;

  00337	8b 55 e4	 mov	 edx, DWORD PTR _iSupported$140917[ebp]
  0033a	83 ca 0c	 or	 edx, 12			; 0000000cH
  0033d	89 55 e4	 mov	 DWORD PTR _iSupported$140917[ebp], edx
$LN6@DetectThre@3:

; 1349 : 
; 1350 :                 Supported = (eSupportedSoundChannels)iSupported;

  00340	8b 45 e4	 mov	 eax, DWORD PTR _iSupported$140917[ebp]
  00343	89 45 e8	 mov	 DWORD PTR _Supported$140916[ebp], eax

; 1351 : 
; 1352 :                 EnterCriticalSection(&TDA9875CriticalSection);

  00346	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00349	83 c1 4c	 add	 ecx, 76			; 0000004cH
  0034c	51		 push	 ecx
  0034d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1353 :                 eSupportedSoundChannels SupportedSoundChannels = m_SupportedSoundChannels;

  00353	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00356	8b 42 74	 mov	 eax, DWORD PTR [edx+116]
  00359	89 45 dc	 mov	 DWORD PTR _SupportedSoundChannels$140924[ebp], eax

; 1354 :                 DetectCounter = m_DetectCounter;

  0035c	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0035f	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  00362	89 55 f0	 mov	 DWORD PTR _DetectCounter$140907[ebp], edx

; 1355 :                 LeaveCriticalSection(&TDA9875CriticalSection);

  00365	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00368	83 c0 4c	 add	 eax, 76			; 0000004cH
  0036b	50		 push	 eax
  0036c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1356 :                 if ((Supported != SupportedSoundChannels) || (DetectCounter >= 200))

  00372	8b 4d e8	 mov	 ecx, DWORD PTR _Supported$140916[ebp]
  00375	3b 4d dc	 cmp	 ecx, DWORD PTR _SupportedSoundChannels$140924[ebp]
  00378	75 0d		 jne	 SHORT $LN4@DetectThre@3
  0037a	81 7d f0 c8 00
	00 00		 cmp	 DWORD PTR _DetectCounter$140907[ebp], 200 ; 000000c8H
  00381	0f 8c e8 00 00
	00		 jl	 $LN10@DetectThre@3
$LN4@DetectThre@3:

; 1357 :                 {
; 1358 :                     EnterCriticalSection(&TDA9875CriticalSection);

  00387	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0038a	83 c2 4c	 add	 edx, 76			; 0000004cH
  0038d	52		 push	 edx
  0038e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1359 :                     m_SupportedSoundChannels = Supported;

  00394	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00397	8b 4d e8	 mov	 ecx, DWORD PTR _Supported$140916[ebp]
  0039a	89 48 74	 mov	 DWORD PTR [eax+116], ecx

; 1360 :                     LeaveCriticalSection(&TDA9875CriticalSection);

  0039d	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  003a0	83 c2 4c	 add	 edx, 76			; 0000004cH
  003a3	52		 push	 edx
  003a4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1361 : 
; 1362 :                     EventCollector->RaiseEvent(this, EVENT_AUDIOCHANNELSUPPORT_DETECTED, 0, Supported);

  003aa	83 7d d8 00	 cmp	 DWORD PTR _this$[ebp], 0
  003ae	74 0b		 je	 SHORT $LN23@DetectThre@3
  003b0	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  003b3	83 c0 0c	 add	 eax, 12			; 0000000cH
  003b6	89 45 d0	 mov	 DWORD PTR tv276[ebp], eax
  003b9	eb 07		 jmp	 SHORT $LN24@DetectThre@3
$LN23@DetectThre@3:
  003bb	c7 45 d0 00 00
	00 00		 mov	 DWORD PTR tv276[ebp], 0
$LN24@DetectThre@3:
  003c2	6a 00		 push	 0
  003c4	8b 4d e8	 mov	 ecx, DWORD PTR _Supported$140916[ebp]
  003c7	51		 push	 ecx
  003c8	6a 00		 push	 0
  003ca	6a 11		 push	 17			; 00000011H
  003cc	8b 55 d0	 mov	 edx, DWORD PTR tv276[ebp]
  003cf	52		 push	 edx
  003d0	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  003d5	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  003da	8b c8		 mov	 ecx, eax
  003dc	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent

; 1363 : 
; 1364 :                     EnterCriticalSection(&TDA9875CriticalSection);

  003e1	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  003e4	83 c0 4c	 add	 eax, 76			; 0000004cH
  003e7	50		 push	 eax
  003e8	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1365 :                     m_SoundChannel = IsAudioChannelDetected(m_TargetSoundChannel);

  003ee	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  003f1	8b 51 78	 mov	 edx, DWORD PTR [ecx+120]
  003f4	52		 push	 edx
  003f5	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  003f8	83 c1 0c	 add	 ecx, 12			; 0000000cH
  003fb	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  003fe	8b 50 0c	 mov	 edx, DWORD PTR [eax+12]
  00401	8b 42 10	 mov	 eax, DWORD PTR [edx+16]
  00404	ff d0		 call	 eax
  00406	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00409	89 41 14	 mov	 DWORD PTR [ecx+20], eax

; 1366 :                     SetSoundChannel(m_SoundChannel);

  0040c	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0040f	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  00412	50		 push	 eax
  00413	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00416	83 c1 0c	 add	 ecx, 12			; 0000000cH
  00419	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0041c	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  0041f	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00422	ff d2		 call	 edx

; 1367 :                     LeaveCriticalSection(&TDA9875CriticalSection);

  00424	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00427	83 c0 4c	 add	 eax, 76			; 0000004cH
  0042a	50		 push	 eax
  0042b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1368 : 
; 1369 : 
; 1370 :                     //Finished
; 1371 :                     if (DetectCounter >= 200)

  00431	81 7d f0 c8 00
	00 00		 cmp	 DWORD PTR _DetectCounter$140907[ebp], 200 ; 000000c8H
  00438	7c 35		 jl	 SHORT $LN10@DetectThre@3

; 1372 :                     {
; 1373 :                         EnterCriticalSection(&TDA9875CriticalSection);

  0043a	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0043d	83 c1 4c	 add	 ecx, 76			; 0000004cH
  00440	51		 push	 ecx
  00441	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1374 :                         m_AutoDetecting = 0;

  00447	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0044a	c7 42 40 00 00
	00 00		 mov	 DWORD PTR [edx+64], 0

; 1375 :                         m_ThreadWait = TRUE;

  00451	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00454	c7 40 6c 01 00
	00 00		 mov	 DWORD PTR [eax+108], 1

; 1376 :                         LeaveCriticalSection(&TDA9875CriticalSection);

  0045b	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0045e	83 c1 4c	 add	 ecx, 76			; 0000004cH
  00461	51		 push	 ecx
  00462	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1377 :                         AutoDetecting = 0;

  00468	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _AutoDetecting$[ebp], 0
$LN10@DetectThre@3:

; 1378 :                     }
; 1379 :                 }
; 1380 :             }
; 1381 :         }
; 1382 : 
; 1383 :         EnterCriticalSection(&TDA9875CriticalSection);

  0046f	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00472	83 c2 4c	 add	 edx, 76			; 0000004cH
  00475	52		 push	 edx
  00476	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1384 :         bWait = m_ThreadWait;

  0047c	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0047f	8b 48 6c	 mov	 ecx, DWORD PTR [eax+108]
  00482	89 4d fc	 mov	 DWORD PTR _bWait$[ebp], ecx

; 1385 :         if (bWait)

  00485	83 7d fc 00	 cmp	 DWORD PTR _bWait$[ebp], 0
  00489	74 07		 je	 SHORT $LN2@DetectThre@3

; 1386 :         {
; 1387 :             AutoDetecting = 0;

  0048b	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _AutoDetecting$[ebp], 0
$LN2@DetectThre@3:

; 1388 :         }
; 1389 :         LeaveCriticalSection(&TDA9875CriticalSection);

  00492	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  00495	83 c2 4c	 add	 edx, 76			; 0000004cH
  00498	52		 push	 edx
  00499	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1390 : 
; 1391 :         if (AutoDetecting != 0)

  0049f	83 7d f8 00	 cmp	 DWORD PTR _AutoDetecting$[ebp], 0
  004a3	74 31		 je	 SHORT $LN1@DetectThre@3

; 1392 :         {
; 1393 :             Sleep(10);

  004a5	6a 0a		 push	 10			; 0000000aH
  004a7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 1394 :             EnterCriticalSection(&TDA9875CriticalSection);

  004ad	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  004b0	83 c0 4c	 add	 eax, 76			; 0000004cH
  004b3	50		 push	 eax
  004b4	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1395 :             m_DetectCounter++;

  004ba	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  004bd	8b 51 64	 mov	 edx, DWORD PTR [ecx+100]
  004c0	83 c2 01	 add	 edx, 1
  004c3	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  004c6	89 50 64	 mov	 DWORD PTR [eax+100], edx

; 1396 :             LeaveCriticalSection(&TDA9875CriticalSection);

  004c9	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  004cc	83 c1 4c	 add	 ecx, 76			; 0000004cH
  004cf	51		 push	 ecx
  004d0	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4
$LN1@DetectThre@3:

; 1397 :         }
; 1398 :         EnterCriticalSection(&TDA9875CriticalSection);

  004d6	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  004d9	83 c2 4c	 add	 edx, 76			; 0000004cH
  004dc	52		 push	 edx
  004dd	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 1399 :         bStopThread = m_bStopThread;

  004e3	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  004e6	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  004e9	89 4d f4	 mov	 DWORD PTR _bStopThread$[ebp], ecx

; 1400 :         LeaveCriticalSection(&TDA9875CriticalSection);

  004ec	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  004ef	83 c2 4c	 add	 edx, 76			; 0000004cH
  004f2	52		 push	 edx
  004f3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 1401 :     }

  004f9	e9 38 fb ff ff	 jmp	 $LN18@DetectThre@3
$LN17@DetectThre@3:

; 1402 :     return 0;

  004fe	33 c0		 xor	 eax, eax

; 1403 : }

  00500	8b e5		 mov	 esp, ebp
  00502	5d		 pop	 ebp
  00503	c3		 ret	 0
?DetectThread@CTDA9875AudioDecoder@@QAEHXZ ENDP		; CTDA9875AudioDecoder::DetectThread
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?TDA9875ThreadProc@@YGKPAX@Z			; TDA9875ThreadProc
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TDA9875ThreadProc@@YGKPAX@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TDA9875ThreadProc@@YGKPAX@Z$2
	DD	00H
	DD	00H
	DD	00H
	DD	00H
__catchsym$?TDA9875ThreadProc@@YGKPAX@Z$3 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?TDA9875ThreadProc@@YGKPAX@Z$0
__tryblocktable$?TDA9875ThreadProc@@YGKPAX@Z DD 01H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:__catchsym$?TDA9875ThreadProc@@YGKPAX@Z$3
__ehfuncinfo$?TDA9875ThreadProc@@YGKPAX@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?TDA9875ThreadProc@@YGKPAX@Z
	DD	01H
	DD	FLAT:__tryblocktable$?TDA9875ThreadProc@@YGKPAX@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TDA9875ThreadProc@@YGKPAX@Z
_TEXT	SEGMENT
$T353709 = -68						; size = 4
$T353708 = -64						; size = 4
$T353707 = -60						; size = 4
_Result$140864 = -56					; size = 4
_thisThread$ = -52					; size = 32
__$ArrayPad$ = -20					; size = 4
__$EHRec$ = -16						; size = 16
_lpThreadParameter$ = 8					; size = 4
?TDA9875ThreadProc@@YGKPAX@Z PROC			; TDA9875ThreadProc, COMDAT

; 1167 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TDA9875ThreadProc@@YGKPAX@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	83 ec 34	 sub	 esp, 52			; 00000034H
  00015	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001a	33 c5		 xor	 eax, ebp
  0001c	89 45 ec	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  0001f	53		 push	 ebx
  00020	56		 push	 esi
  00021	57		 push	 edi
  00022	50		 push	 eax
  00023	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp+4]
  00026	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0002c	89 65 f0	 mov	 DWORD PTR __$EHRec$[ebp], esp

; 1168 :     DScalerThread thisThread(_T("TDA9875DetectThread"));

  0002f	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@IPCLKCE@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA5?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
  00034	8d 4d cc	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00037	e8 00 00 00 00	 call	 ??0DScalerThread@@QAE@PB_W@Z ; DScalerThread::DScalerThread
  0003c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 1169 :     if (lpThreadParameter != NULL)

  00043	83 7d 08 00	 cmp	 DWORD PTR _lpThreadParameter$[ebp], 0
  00047	74 62		 je	 SHORT $LN2@TDA9875Thr

; 1170 :     {
; 1171 :         int Result;
; 1172 :         try
; 1173 :         {

  00049	c6 45 fc 01	 mov	 BYTE PTR __$EHRec$[ebp+12], 1

; 1174 :             Result = ((CTDA9875AudioDecoder*)lpThreadParameter)->DetectThread();

  0004d	8b 4d 08	 mov	 ecx, DWORD PTR _lpThreadParameter$[ebp]
  00050	e8 00 00 00 00	 call	 ?DetectThread@CTDA9875AudioDecoder@@QAEHXZ ; CTDA9875AudioDecoder::DetectThread
  00055	89 45 c8	 mov	 DWORD PTR _Result$140864[ebp], eax

; 1175 :         }

  00058	eb 1a		 jmp	 SHORT $LN5@TDA9875Thr
__catch$?TDA9875ThreadProc@@YGKPAX@Z$0:

; 1176 :         catch(...)
; 1177 :         {
; 1178 :             return 1;

  0005a	c7 45 c4 01 00
	00 00		 mov	 DWORD PTR $T353707[ebp], 1
  00061	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  00068	b8 00 00 00 00	 mov	 eax, $LN9@TDA9875Thr
  0006d	c3		 ret	 0

; 1179 :         }

  0006e	b8 00 00 00 00	 mov	 eax, $LN5@TDA9875Thr
  00073	c3		 ret	 0
$LN5@TDA9875Thr:
  00074	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  0007b	eb 14		 jmp	 SHORT $LN8@TDA9875Thr
$LN9@TDA9875Thr:

; 1176 :         catch(...)
; 1177 :         {
; 1178 :             return 1;

  0007d	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  00084	8d 4d cc	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00087	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  0008c	8b 45 c4	 mov	 eax, DWORD PTR $T353707[ebp]
  0008f	eb 33		 jmp	 SHORT $LN3@TDA9875Thr
$LN8@TDA9875Thr:

; 1180 :         return Result;

  00091	8b 45 c8	 mov	 eax, DWORD PTR _Result$140864[ebp]
  00094	89 45 c0	 mov	 DWORD PTR $T353708[ebp], eax
  00097	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  0009e	8d 4d cc	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  000a1	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  000a6	8b 45 c0	 mov	 eax, DWORD PTR $T353708[ebp]
  000a9	eb 19		 jmp	 SHORT $LN3@TDA9875Thr
$LN2@TDA9875Thr:

; 1181 :     }
; 1182 :     return 1;

  000ab	c7 45 bc 01 00
	00 00		 mov	 DWORD PTR $T353709[ebp], 1
  000b2	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  000b9	8d 4d cc	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  000bc	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  000c1	8b 45 bc	 mov	 eax, DWORD PTR $T353709[ebp]
$LN3@TDA9875Thr:

; 1183 : }

  000c4	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000c7	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000ce	59		 pop	 ecx
  000cf	5f		 pop	 edi
  000d0	5e		 pop	 esi
  000d1	5b		 pop	 ebx
  000d2	8b 4d ec	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000d5	33 cd		 xor	 ecx, ebp
  000d7	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000dc	8b e5		 mov	 esp, ebp
  000de	5d		 pop	 ebp
  000df	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TDA9875ThreadProc@@YGKPAX@Z$2:
  00000	8d 4d cc	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
__ehhandler$?TDA9875ThreadProc@@YGKPAX@Z:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a b8	 mov	 ecx, DWORD PTR [edx-72]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  0001c	33 c8		 xor	 ecx, eax
  0001e	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00023	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?TDA9875ThreadProc@@YGKPAX@Z
  00028	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TDA9875ThreadProc@@YGKPAX@Z ENDP			; TDA9875ThreadProc
; Function compile flags: /Odtp
;	COMDAT ?SetAudioStandard@CTDA9875AudioDecoder@@UAEXJW4eVideoFormat@@@Z
_TEXT	SEGMENT
_this$ = -40						; size = 4
_nIndex$ = -36						; size = 4
_DCR$ = -29						; size = 1
_StandardDefinition$ = -28				; size = 28
_Standard$ = 8						; size = 4
_videoformat$ = 12					; size = 4
?SetAudioStandard@CTDA9875AudioDecoder@@UAEXJW4eVideoFormat@@@Z PROC ; CTDA9875AudioDecoder::SetAudioStandard, COMDAT
; _this$ = ecx

; 404  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 28	 sub	 esp, 40			; 00000028H
  00006	56		 push	 esi
  00007	57		 push	 edi
  00008	89 4d d8	 mov	 DWORD PTR _this$[ebp], ecx

; 405  :     CAudioDecoder::SetAudioStandard(Standard, videoformat);

  0000b	8b 45 0c	 mov	 eax, DWORD PTR _videoformat$[ebp]
  0000e	50		 push	 eax
  0000f	8b 4d 08	 mov	 ecx, DWORD PTR _Standard$[ebp]
  00012	51		 push	 ecx
  00013	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	e8 00 00 00 00	 call	 ?SetAudioStandard@CAudioDecoder@@UAEXJW4eVideoFormat@@@Z ; CAudioDecoder::SetAudioStandard

; 406  : 
; 407  :     //Only for tuner
; 408  :     if(m_AudioInput != AUDIOINPUT_TUNER)

  0001b	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0001e	83 7a 0c 00	 cmp	 DWORD PTR [edx+12], 0
  00022	74 05		 je	 SHORT $LN18@SetAudioSt@6

; 409  :     {
; 410  :         return;

  00024	e9 db 01 00 00	 jmp	 $LN19@SetAudioSt@6
$LN18@SetAudioSt@6:

; 411  :     }
; 412  : 
; 413  :     m_IsInitialized = TRUE;

  00029	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  0002c	c7 40 2c 01 00
	00 00		 mov	 DWORD PTR [eax+44], 1

; 414  : 
; 415  :     int nIndex = 0;

  00033	c7 45 dc 00 00
	00 00		 mov	 DWORD PTR _nIndex$[ebp], 0

; 416  :     TStandardDefinition StandardDefinition;
; 417  : 
; 418  :     StandardDefinition.Standard = TDA9875_STANDARD_NONE;

  0003a	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR _StandardDefinition$[ebp+4], 0

; 419  : 
; 420  :     // Find default carrier frequencies
; 421  :     m_AudioStandardMajorCarrier = 0;

  00041	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00044	c7 41 14 00 00
	00 00		 mov	 DWORD PTR [ecx+20], 0

; 422  :     m_AudioStandardMinorCarrier = 0;

  0004b	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  0004e	c7 42 18 00 00
	00 00		 mov	 DWORD PTR [edx+24], 0
$LN17@SetAudioSt@6:

; 423  : 
; 424  :     while (m_TDA9875Standards[nIndex].Name != NULL)

  00055	8b 45 dc	 mov	 eax, DWORD PTR _nIndex$[ebp]
  00058	6b c0 1c	 imul	 eax, 28			; 0000001cH
  0005b	83 b8 00 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[eax], 0
  00062	74 34		 je	 SHORT $LN16@SetAudioSt@6

; 425  :     {
; 426  :         if (m_TDA9875Standards[nIndex].Standard == Standard)

  00064	8b 4d dc	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  00067	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  0006a	8b 91 04 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A[ecx+4]
  00070	3b 55 08	 cmp	 edx, DWORD PTR _Standard$[ebp]
  00073	75 18		 jne	 SHORT $LN15@SetAudioSt@6

; 427  :         {
; 428  :             StandardDefinition = m_TDA9875Standards[nIndex];

  00075	8b 75 dc	 mov	 esi, DWORD PTR _nIndex$[ebp]
  00078	6b f6 1c	 imul	 esi, 28			; 0000001cH
  0007b	81 c6 00 00 00
	00		 add	 esi, OFFSET ?m_TDA9875Standards@CTDA9875AudioDecoder@@0PAUTStandardDefinition@1@A ; CTDA9875AudioDecoder::m_TDA9875Standards
  00081	b9 07 00 00 00	 mov	 ecx, 7
  00086	8d 7d e4	 lea	 edi, DWORD PTR _StandardDefinition$[ebp]
  00089	f3 a5		 rep movsd

; 429  :             break;

  0008b	eb 0b		 jmp	 SHORT $LN16@SetAudioSt@6
$LN15@SetAudioSt@6:

; 430  :         }
; 431  :         nIndex++;

  0008d	8b 45 dc	 mov	 eax, DWORD PTR _nIndex$[ebp]
  00090	83 c0 01	 add	 eax, 1
  00093	89 45 dc	 mov	 DWORD PTR _nIndex$[ebp], eax

; 432  :     }

  00096	eb bd		 jmp	 SHORT $LN17@SetAudioSt@6
$LN16@SetAudioSt@6:

; 433  : 
; 434  : 
; 435  :     if (Standard == TDA9875_STANDARD_AUTO)

  00098	83 7d 08 01	 cmp	 DWORD PTR _Standard$[ebp], 1
  0009c	75 26		 jne	 SHORT $LN14@SetAudioSt@6

; 436  :     {
; 437  :         // Mute
; 438  :         Audio_SetUserMute(TRUE);

  0009e	6a 01		 push	 1
  000a0	e8 00 00 00 00	 call	 ?Audio_SetUserMute@@YAXH@Z ; Audio_SetUserMute
  000a5	83 c4 04	 add	 esp, 4

; 439  :         m_CarrierDetect_Phase = 0;

  000a8	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  000ab	c7 41 20 00 00
	00 00		 mov	 DWORD PTR [ecx+32], 0

; 440  :         m_pAudioControls->m_bKeepItMuted = TRUE;

  000b2	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  000b5	8b 42 24	 mov	 eax, DWORD PTR [edx+36]
  000b8	c7 40 14 01 00
	00 00		 mov	 DWORD PTR [eax+20], 1

; 441  :         return;

  000bf	e9 40 01 00 00	 jmp	 $LN19@SetAudioSt@6
$LN14@SetAudioSt@6:

; 442  :     }
; 443  : 
; 444  :     if (Standard == TDA9875_STANDARD_NONE)

  000c4	83 7d 08 00	 cmp	 DWORD PTR _Standard$[ebp], 0
  000c8	75 10		 jne	 SHORT $LN13@SetAudioSt@6

; 445  :     {
; 446  :         Reset();

  000ca	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  000cd	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  000d0	e8 00 00 00 00	 call	 ?Reset@CTDA9875@@QAEXXZ	; CTDA9875::Reset

; 447  :         return;

  000d5	e9 2a 01 00 00	 jmp	 $LN19@SetAudioSt@6
$LN13@SetAudioSt@6:

; 448  :     }
; 449  : 
; 450  :     //De_emphasis
; 451  :     WriteToSubAddress(TDA9875_DEEM, (BYTE)StandardDefinition.De_emphasis);

  000da	0f b6 4d fc	 movzx	 ecx, BYTE PTR _StandardDefinition$[ebp+24]
  000de	51		 push	 ecx
  000df	6a 0a		 push	 10			; 0000000aH
  000e1	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  000e4	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  000e7	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 452  : 
; 453  :     BYTE DCR = 0;

  000ec	c6 45 e3 00	 mov	 BYTE PTR _DCR$[ebp], 0

; 454  : 
; 455  :     //Channel 1 mode AM, FM, SAT
; 456  :     if (StandardDefinition.MonoType == MONO_AM)

  000f0	83 7d f4 01	 cmp	 DWORD PTR _StandardDefinition$[ebp+16], 1
  000f4	75 0c		 jne	 SHORT $LN12@SetAudioSt@6

; 457  :         DCR |= 1;

  000f6	0f b6 55 e3	 movzx	 edx, BYTE PTR _DCR$[ebp]
  000fa	83 ca 01	 or	 edx, 1
  000fd	88 55 e3	 mov	 BYTE PTR _DCR$[ebp], dl
  00100	eb 30		 jmp	 SHORT $LN11@SetAudioSt@6
$LN12@SetAudioSt@6:

; 458  :     else if (StandardDefinition.MonoType == MONO_FM_SAT)

  00102	83 7d f4 02	 cmp	 DWORD PTR _StandardDefinition$[ebp+16], 2
  00106	75 1b		 jne	 SHORT $LN10@SetAudioSt@6

; 459  :     {
; 460  :         WriteToSubAddress(TDA9875_CFG, 1); //SIF2

  00108	6a 01		 push	 1
  0010a	6a 01		 push	 1
  0010c	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0010f	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00112	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 461  :         DCR |= 2;

  00117	0f b6 45 e3	 movzx	 eax, BYTE PTR _DCR$[ebp]
  0011b	83 c8 02	 or	 eax, 2
  0011e	88 45 e3	 mov	 BYTE PTR _DCR$[ebp], al

; 462  :     }
; 463  :     else

  00121	eb 0f		 jmp	 SHORT $LN11@SetAudioSt@6
$LN10@SetAudioSt@6:

; 464  :         WriteToSubAddress(TDA9875_CFG, 0); //SIF1

  00123	6a 00		 push	 0
  00125	6a 01		 push	 1
  00127	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0012a	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0012d	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress
$LN11@SetAudioSt@6:

; 465  : 
; 466  :     //Channel 2 mode AM, FM, NICAM
; 467  :     if (StandardDefinition.StereoType == STEREO_AM)

  00132	83 7d f8 03	 cmp	 DWORD PTR _StandardDefinition$[ebp+20], 3
  00136	75 0c		 jne	 SHORT $LN8@SetAudioSt@6

; 468  :         DCR |= 4;

  00138	0f b6 4d e3	 movzx	 ecx, BYTE PTR _DCR$[ebp]
  0013c	83 c9 04	 or	 ecx, 4
  0013f	88 4d e3	 mov	 BYTE PTR _DCR$[ebp], cl
  00142	eb 27		 jmp	 SHORT $LN7@SetAudioSt@6
$LN8@SetAudioSt@6:

; 469  :     else if (StandardDefinition.StereoType == STEREO_NICAM)

  00144	83 7d f8 02	 cmp	 DWORD PTR _StandardDefinition$[ebp+20], 2
  00148	75 0c		 jne	 SHORT $LN6@SetAudioSt@6

; 470  :         DCR |= 8;

  0014a	0f b6 55 e3	 movzx	 edx, BYTE PTR _DCR$[ebp]
  0014e	83 ca 08	 or	 edx, 8
  00151	88 55 e3	 mov	 BYTE PTR _DCR$[ebp], dl
  00154	eb 15		 jmp	 SHORT $LN7@SetAudioSt@6
$LN6@SetAudioSt@6:

; 471  : 
; 472  :     else if (StandardDefinition.StereoType == STEREO_NONE)

  00156	83 7d f8 00	 cmp	 DWORD PTR _StandardDefinition$[ebp+20], 0
  0015a	75 0f		 jne	 SHORT $LN7@SetAudioSt@6

; 473  :         SetSoundChannel(SOUNDCHANNEL_MONO);

  0015c	6a 01		 push	 1
  0015e	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00161	8b 45 d8	 mov	 eax, DWORD PTR _this$[ebp]
  00164	8b 10		 mov	 edx, DWORD PTR [eax]
  00166	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00169	ff d0		 call	 eax
$LN7@SetAudioSt@6:

; 474  : 
; 475  :     //Ident mode
; 476  :     if (StandardDefinition.Standard == TDA9875_STANDARD_M_ANALOG_FM_FM)

  0016b	83 7d e8 11	 cmp	 DWORD PTR _StandardDefinition$[ebp+4], 17 ; 00000011H
  0016f	75 0a		 jne	 SHORT $LN3@SetAudioSt@6

; 477  :         DCR |= 32;    //M stereo (Korean)

  00171	0f b6 4d e3	 movzx	 ecx, BYTE PTR _DCR$[ebp]
  00175	83 c9 20	 or	 ecx, 32			; 00000020H
  00178	88 4d e3	 mov	 BYTE PTR _DCR$[ebp], cl
$LN3@SetAudioSt@6:

; 478  : 
; 479  :     WriteToSubAddress(TDA9875_DCR, DCR);

  0017b	0f b6 55 e3	 movzx	 edx, BYTE PTR _DCR$[ebp]
  0017f	52		 push	 edx
  00180	6a 09		 push	 9
  00182	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  00185	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00188	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 480  : 
; 481  :     //Main channel select / digital matrix
; 482  :     if (StandardDefinition.StereoType == STEREO_NICAM)

  0018d	83 7d f8 02	 cmp	 DWORD PTR _StandardDefinition$[ebp+20], 2
  00191	75 2f		 jne	 SHORT $LN2@SetAudioSt@6

; 483  :     {
; 484  :         WriteToSubAddress(TDA9875_MCS, 1);        //MAIN NICAM, L + R

  00193	6a 01		 push	 1
  00195	6a 18		 push	 24			; 00000018H
  00197	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  0019a	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0019d	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 485  :         WriteToSubAddress(TDA9875_ACS, 1);        //AUX NICAM, L + R

  001a2	6a 01		 push	 1
  001a4	6a 1f		 push	 31			; 0000001fH
  001a6	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001a9	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001ac	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 486  :         WriteToSubAddress(TDA9875_DACOS, 1);    //DAC NICAM L + R

  001b1	6a 01		 push	 1
  001b3	6a 13		 push	 19			; 00000013H
  001b5	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001b8	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001bb	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 487  : 
; 488  :     }
; 489  :     else

  001c0	eb 2d		 jmp	 SHORT $LN1@SetAudioSt@6
$LN2@SetAudioSt@6:

; 490  :     {
; 491  :         WriteToSubAddress(TDA9875_MCS, 0);        //MAIN FM, L + R

  001c2	6a 00		 push	 0
  001c4	6a 18		 push	 24			; 00000018H
  001c6	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001c9	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001cc	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 492  :         WriteToSubAddress(TDA9875_ACS, 0);        //AUX FM, L + R

  001d1	6a 00		 push	 0
  001d3	6a 1f		 push	 31			; 0000001fH
  001d5	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001d8	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001db	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 493  :         WriteToSubAddress(TDA9875_DACOS, 0);    //DAC FM L + R

  001e0	6a 00		 push	 0
  001e2	6a 13		 push	 19			; 00000013H
  001e4	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001e7	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001ea	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress
$LN1@SetAudioSt@6:

; 494  :     }
; 495  : 
; 496  :     SetAudioStandardCarriers(StandardDefinition.MajorCarrier, StandardDefinition.MinorCarrier);

  001ef	8b 45 f0	 mov	 eax, DWORD PTR _StandardDefinition$[ebp+12]
  001f2	50		 push	 eax
  001f3	8b 4d ec	 mov	 ecx, DWORD PTR _StandardDefinition$[ebp+8]
  001f6	51		 push	 ecx
  001f7	8b 4d d8	 mov	 ecx, DWORD PTR _this$[ebp]
  001fa	8b 55 d8	 mov	 edx, DWORD PTR _this$[ebp]
  001fd	8b 02		 mov	 eax, DWORD PTR [edx]
  001ff	8b 50 3c	 mov	 edx, DWORD PTR [eax+60]
  00202	ff d2		 call	 edx
$LN19@SetAudioSt@6:

; 497  : }

  00204	5f		 pop	 edi
  00205	5e		 pop	 esi
  00206	8b e5		 mov	 esp, ebp
  00208	5d		 pop	 ebp
  00209	c2 08 00	 ret	 8
?SetAudioStandard@CTDA9875AudioDecoder@@UAEXJW4eVideoFormat@@@Z ENDP ; CTDA9875AudioDecoder::SetAudioStandard
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetAudioInput@CTDA9875AudioDecoder@@UAEXW4eAudioInput@@@Z
_TEXT	SEGMENT
tv79 = -8						; size = 4
_this$ = -4						; size = 4
_audioInput$ = 8					; size = 4
?SetAudioInput@CTDA9875AudioDecoder@@UAEXW4eAudioInput@@@Z PROC ; CTDA9875AudioDecoder::SetAudioInput, COMDAT
; _this$ = ecx

; 369  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 370  :     CAudioDecoder::SetAudioInput(audioInput);

  00009	8b 45 08	 mov	 eax, DWORD PTR _audioInput$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	e8 00 00 00 00	 call	 ?SetAudioInput@CAudioDecoder@@UAEXW4eAudioInput@@@Z ; CAudioDecoder::SetAudioInput

; 371  :     m_IsInitialized = TRUE;

  00015	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	c7 41 2c 01 00
	00 00		 mov	 DWORD PTR [ecx+44], 1

; 372  : 
; 373  : 
; 374  :     switch (m_AudioInput)

  0001f	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00022	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00025	89 45 f8	 mov	 DWORD PTR tv79[ebp], eax
  00028	83 7d f8 00	 cmp	 DWORD PTR tv79[ebp], 0
  0002c	7e 14		 jle	 SHORT $LN1@SetAudioIn@4
  0002e	83 7d f8 05	 cmp	 DWORD PTR tv79[ebp], 5
  00032	7e 02		 jle	 SHORT $LN2@SetAudioIn@4
  00034	eb 0c		 jmp	 SHORT $LN1@SetAudioIn@4
$LN2@SetAudioIn@4:

; 375  :     {
; 376  :     case AUDIOINPUT_RADIO:
; 377  :     case AUDIOINPUT_STEREO:
; 378  :     case AUDIOINPUT_INTERNAL:
; 379  :     case AUDIOINPUT_EXTERNAL:
; 380  :     case AUDIOINPUT_MUTE:
; 381  :         Audio_SetUserMute(TRUE);

  00036	6a 01		 push	 1
  00038	e8 00 00 00 00	 call	 ?Audio_SetUserMute@@YAXH@Z ; Audio_SetUserMute
  0003d	83 c4 04	 add	 esp, 4

; 382  :         break;

  00040	eb 0a		 jmp	 SHORT $LN5@SetAudioIn@4
$LN1@SetAudioIn@4:

; 383  :     default:
; 384  :         Audio_SetUserMute(FALSE);

  00042	6a 00		 push	 0
  00044	e8 00 00 00 00	 call	 ?Audio_SetUserMute@@YAXH@Z ; Audio_SetUserMute
  00049	83 c4 04	 add	 esp, 4
$LN5@SetAudioIn@4:

; 385  :         break;
; 386  :     }
; 387  : 
; 388  : 
; 389  : }

  0004c	8b e5		 mov	 esp, ebp
  0004e	5d		 pop	 ebp
  0004f	c2 04 00	 ret	 4
?SetAudioInput@CTDA9875AudioDecoder@@UAEXW4eAudioInput@@@Z ENDP ; CTDA9875AudioDecoder::SetAudioInput
PUBLIC	?StartThread@CTDA9875AudioDecoder@@AAEXXZ	; CTDA9875AudioDecoder::StartThread
; Function compile flags: /Odtp
;	COMDAT ?StartThread@CTDA9875AudioDecoder@@AAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LinkThreadID$ = -4					; size = 4
?StartThread@CTDA9875AudioDecoder@@AAEXXZ PROC		; CTDA9875AudioDecoder::StartThread, COMDAT
; _this$ = ecx

; 1186 : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 1187 :     DWORD LinkThreadID;
; 1188 : 
; 1189 :     if (m_TDA9875Thread != NULL)

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 44 00	 cmp	 DWORD PTR [eax+68], 0
  00010	74 0f		 je	 SHORT $LN1@StartThrea@4

; 1190 :     {
; 1191 :         // Already started, resume
; 1192 :         ResumeThread(m_TDA9875Thread);

  00012	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	8b 51 44	 mov	 edx, DWORD PTR [ecx+68]
  00018	52		 push	 edx
  00019	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ResumeThread@4

; 1193 :         return;

  0001f	eb 29		 jmp	 SHORT $LN2@StartThrea@4
$LN1@StartThrea@4:

; 1194 :     }
; 1195 : 
; 1196 :     m_bStopThread = FALSE;

  00021	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00024	c7 40 48 00 00
	00 00		 mov	 DWORD PTR [eax+72], 0

; 1197 : 
; 1198 :     m_TDA9875Thread = CreateThread((LPSECURITY_ATTRIBUTES) NULL,  // No security.
; 1199 :                              (DWORD) 0,                     // Same stack size.
; 1200 :                              TDA9875ThreadProc,                  // Thread procedure.
; 1201 :                              (LPVOID)this,                          // Parameter.
; 1202 :                              (DWORD) 0,                     // Start immediatly.
; 1203 :                              (LPDWORD) & LinkThreadID);     // Thread ID.

  0002b	8d 4d fc	 lea	 ecx, DWORD PTR _LinkThreadID$[ebp]
  0002e	51		 push	 ecx
  0002f	6a 00		 push	 0
  00031	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00034	52		 push	 edx
  00035	68 00 00 00 00	 push	 OFFSET ?TDA9875ThreadProc@@YGKPAX@Z ; TDA9875ThreadProc
  0003a	6a 00		 push	 0
  0003c	6a 00		 push	 0
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateThread@24
  00044	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	89 41 44	 mov	 DWORD PTR [ecx+68], eax
$LN2@StartThrea@4:

; 1204 : }

  0004a	8b e5		 mov	 esp, ebp
  0004c	5d		 pop	 ebp
  0004d	c3		 ret	 0
?StartThread@CTDA9875AudioDecoder@@AAEXXZ ENDP		; CTDA9875AudioDecoder::StartThread
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?DetectAudioStandard@CTDA9875AudioDecoder@@UAEXJHW4eSoundChannel@@@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_bSuspended$140739 = -8					; size = 4
_AutoDetecting$ = -4					; size = 4
_Interval$ = 8						; size = 4
_SupportedSoundChannels$ = 12				; size = 4
_TargetChannel$ = 16					; size = 4
?DetectAudioStandard@CTDA9875AudioDecoder@@UAEXJHW4eSoundChannel@@@Z PROC ; CTDA9875AudioDecoder::DetectAudioStandard, COMDAT
; _this$ = ecx

; 690  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 691  :     CAudioDecoder::DetectAudioStandard(Interval, SupportedSoundChannels, TargetChannel);

  00009	8b 45 10	 mov	 eax, DWORD PTR _TargetChannel$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d 0c	 mov	 ecx, DWORD PTR _SupportedSoundChannels$[ebp]
  00010	51		 push	 ecx
  00011	8b 55 08	 mov	 edx, DWORD PTR _Interval$[ebp]
  00014	52		 push	 edx
  00015	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00018	e8 00 00 00 00	 call	 ?DetectAudioStandard@CAudioDecoder@@UAEXJHW4eSoundChannel@@@Z ; CAudioDecoder::DetectAudioStandard

; 692  : 
; 693  :     if (Interval > 0)

  0001d	83 7d 08 00	 cmp	 DWORD PTR _Interval$[ebp], 0
  00021	7e 13		 jle	 SHORT $LN11@DetectAudi@3

; 694  :     {
; 695  :         m_DetectInterval10ms = (Interval/10);

  00023	8b 45 08	 mov	 eax, DWORD PTR _Interval$[ebp]
  00026	99		 cdq
  00027	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  0002c	f7 f9		 idiv	 ecx
  0002e	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00031	89 42 5c	 mov	 DWORD PTR [edx+92], eax

; 696  :     }
; 697  :     else

  00034	eb 10		 jmp	 SHORT $LN10@DetectAudi@3
$LN11@DetectAudi@3:

; 698  :     {
; 699  :         //Abort
; 700  :         StopThread();

  00036	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00039	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  0003c	e8 00 00 00 00	 call	 ?StopThread@CTDA9875AudioDecoder@@AAEXXZ ; CTDA9875AudioDecoder::StopThread

; 701  :         return;

  00041	e9 8e 01 00 00	 jmp	 $LN12@DetectAudi@3
$LN10@DetectAudi@3:

; 702  :     }
; 703  : 
; 704  :     if (SupportedSoundChannels)

  00046	83 7d 0c 00	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 0
  0004a	74 09		 je	 SHORT $LN9@DetectAudi@3

; 705  :     {
; 706  :         m_TargetSoundChannel = TargetChannel;

  0004c	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0004f	8b 4d 10	 mov	 ecx, DWORD PTR _TargetChannel$[ebp]
  00052	89 48 6c	 mov	 DWORD PTR [eax+108], ecx
$LN9@DetectAudi@3:

; 707  :     }
; 708  : 
; 709  :     EnterCriticalSection(&TDA9875CriticalSection);

  00055	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00058	83 c2 40	 add	 edx, 64			; 00000040H
  0005b	52		 push	 edx
  0005c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 710  :     int AutoDetecting = m_AutoDetecting;

  00062	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00065	8b 48 34	 mov	 ecx, DWORD PTR [eax+52]
  00068	89 4d fc	 mov	 DWORD PTR _AutoDetecting$[ebp], ecx

; 711  :     LeaveCriticalSection(&TDA9875CriticalSection);

  0006b	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0006e	83 c2 40	 add	 edx, 64			; 00000040H
  00071	52		 push	 edx
  00072	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 712  : 
; 713  :     // Stop thread if detecting audio standard
; 714  :     // Suspend thread if detecting stereo
; 715  :     if (AutoDetecting == 1)

  00078	83 7d fc 01	 cmp	 DWORD PTR _AutoDetecting$[ebp], 1
  0007c	75 10		 jne	 SHORT $LN8@DetectAudi@3

; 716  :     {
; 717  :         // Mute
; 718  :         StopThread();

  0007e	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00081	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00084	e8 00 00 00 00	 call	 ?StopThread@CTDA9875AudioDecoder@@AAEXXZ ; CTDA9875AudioDecoder::StopThread
  00089	e9 af 00 00 00	 jmp	 $LN7@DetectAudi@3
$LN8@DetectAudi@3:

; 719  : 
; 720  :     }
; 721  :     else if (AutoDetecting == 2)

  0008e	83 7d fc 02	 cmp	 DWORD PTR _AutoDetecting$[ebp], 2
  00092	0f 85 a5 00 00
	00		 jne	 $LN7@DetectAudi@3

; 722  :     {
; 723  :         EnterCriticalSection(&TDA9875CriticalSection);

  00098	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0009b	83 c0 40	 add	 eax, 64			; 00000040H
  0009e	50		 push	 eax
  0009f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 724  :         m_ThreadWait = TRUE;

  000a5	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000a8	c7 41 60 01 00
	00 00		 mov	 DWORD PTR [ecx+96], 1

; 725  :         LeaveCriticalSection(&TDA9875CriticalSection);

  000af	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  000b2	83 c2 40	 add	 edx, 64			; 00000040H
  000b5	52		 push	 edx
  000b6	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 726  :         Sleep(10);

  000bc	6a 0a		 push	 10			; 0000000aH
  000be	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 727  : 
; 728  :         EnterCriticalSection(&TDA9875CriticalSection);

  000c4	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  000c7	83 c0 40	 add	 eax, 64			; 00000040H
  000ca	50		 push	 eax
  000cb	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 729  :         BOOL bSuspended = (m_AutoDetecting == 0);

  000d1	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000d4	33 d2		 xor	 edx, edx
  000d6	83 79 34 00	 cmp	 DWORD PTR [ecx+52], 0
  000da	0f 94 c2	 sete	 dl
  000dd	89 55 f8	 mov	 DWORD PTR _bSuspended$140739[ebp], edx

; 730  :         LeaveCriticalSection(&TDA9875CriticalSection);

  000e0	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  000e3	83 c0 40	 add	 eax, 64			; 00000040H
  000e6	50		 push	 eax
  000e7	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 731  : 
; 732  :         if (!bSuspended)

  000ed	83 7d f8 00	 cmp	 DWORD PTR _bSuspended$140739[ebp], 0
  000f1	75 42		 jne	 SHORT $LN5@DetectAudi@3

; 733  :         {
; 734  :             Sleep(50);

  000f3	6a 32		 push	 50			; 00000032H
  000f5	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 735  :             EnterCriticalSection(&TDA9875CriticalSection);

  000fb	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000fe	83 c1 40	 add	 ecx, 64			; 00000040H
  00101	51		 push	 ecx
  00102	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 736  :             bSuspended = (m_AutoDetecting == 0);

  00108	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  0010b	33 c0		 xor	 eax, eax
  0010d	83 7a 34 00	 cmp	 DWORD PTR [edx+52], 0
  00111	0f 94 c0	 sete	 al
  00114	89 45 f8	 mov	 DWORD PTR _bSuspended$140739[ebp], eax

; 737  :             LeaveCriticalSection(&TDA9875CriticalSection);

  00117	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0011a	83 c1 40	 add	 ecx, 64			; 00000040H
  0011d	51		 push	 ecx
  0011e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 738  : 
; 739  :             if (!bSuspended)

  00124	83 7d f8 00	 cmp	 DWORD PTR _bSuspended$140739[ebp], 0
  00128	75 0b		 jne	 SHORT $LN5@DetectAudi@3

; 740  :             {
; 741  :                 StopThread();

  0012a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0012d	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  00130	e8 00 00 00 00	 call	 ?StopThread@CTDA9875AudioDecoder@@AAEXXZ ; CTDA9875AudioDecoder::StopThread
$LN5@DetectAudi@3:

; 742  :             }
; 743  :         }
; 744  :         Sleep(1);

  00135	6a 01		 push	 1
  00137	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4
$LN7@DetectAudi@3:

; 745  :     }
; 746  : 
; 747  :     if (SupportedSoundChannels == 1)

  0013d	83 7d 0c 01	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 1
  00141	75 16		 jne	 SHORT $LN3@DetectAudi@3

; 748  :     {
; 749  :         SetAudioStandard(TDA9875_STANDARD_AUTO, m_VideoFormat);

  00143	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00146	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00149	50		 push	 eax
  0014a	6a 01		 push	 1
  0014c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0014f	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00152	8b 02		 mov	 eax, DWORD PTR [edx]
  00154	8b 50 20	 mov	 edx, DWORD PTR [eax+32]
  00157	ff d2		 call	 edx
$LN3@DetectAudi@3:

; 750  :     }
; 751  : 
; 752  :     EnterCriticalSection(&TDA9875CriticalSection);

  00159	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0015c	83 c0 40	 add	 eax, 64			; 00000040H
  0015f	50		 push	 eax
  00160	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__EnterCriticalSection@4

; 753  :     m_DetectCounter = 1;

  00166	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00169	c7 41 58 01 00
	00 00		 mov	 DWORD PTR [ecx+88], 1

; 754  :     Sleep(10);

  00170	6a 0a		 push	 10			; 0000000aH
  00172	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 755  :     if (SupportedSoundChannels == 2)

  00178	83 7d 0c 02	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 2
  0017c	75 0c		 jne	 SHORT $LN2@DetectAudi@3

; 756  :     {
; 757  :         m_AutoDetecting = 2;

  0017e	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00181	c7 42 34 02 00
	00 00		 mov	 DWORD PTR [edx+52], 2

; 758  :     }
; 759  :     else

  00188	eb 0a		 jmp	 SHORT $LN1@DetectAudi@3
$LN2@DetectAudi@3:

; 760  :     {
; 761  :         m_AutoDetecting = 1;

  0018a	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0018d	c7 40 34 01 00
	00 00		 mov	 DWORD PTR [eax+52], 1
$LN1@DetectAudi@3:

; 762  :     }
; 763  :     m_DetectSupportedSoundChannels = (SupportedSoundChannels == 1);

  00194	33 c9		 xor	 ecx, ecx
  00196	83 7d 0c 01	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 1
  0019a	0f 94 c1	 sete	 cl
  0019d	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  001a0	89 4a 64	 mov	 DWORD PTR [edx+100], ecx

; 764  :     SetSoundChannel(SOUNDCHANNEL_MONO);

  001a3	6a 01		 push	 1
  001a5	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  001a8	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  001ab	8b 10		 mov	 edx, DWORD PTR [eax]
  001ad	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  001b0	ff d0		 call	 eax

; 765  :     m_ThreadWait = FALSE;

  001b2	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  001b5	c7 41 60 00 00
	00 00		 mov	 DWORD PTR [ecx+96], 0

; 766  :     LeaveCriticalSection(&TDA9875CriticalSection);

  001bc	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  001bf	83 c2 40	 add	 edx, 64			; 00000040H
  001c2	52		 push	 edx
  001c3	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__LeaveCriticalSection@4

; 767  :     //Start or resume thread
; 768  :     StartThread();

  001c9	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  001cc	83 e9 0c	 sub	 ecx, 12			; 0000000cH
  001cf	e8 00 00 00 00	 call	 ?StartThread@CTDA9875AudioDecoder@@AAEXXZ ; CTDA9875AudioDecoder::StartThread
$LN12@DetectAudi@3:

; 769  : 
; 770  : }

  001d4	8b e5		 mov	 esp, ebp
  001d6	5d		 pop	 ebp
  001d7	c2 0c 00	 ret	 12			; 0000000cH
?DetectAudioStandard@CTDA9875AudioDecoder@@UAEXJHW4eSoundChannel@@@Z ENDP ; CTDA9875AudioDecoder::DetectAudioStandard
END
