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

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

INCLUDELIB OLDNAMES

PUBLIC	?GetAudioDecoderType@CTDA9874AudioDecoder@@EAE?AW4eAudioDecoderType@CAudioDecoder@@XZ ; CTDA9874AudioDecoder::GetAudioDecoderType
PUBLIC	?DetectAudioStandard@CTDA9874AudioDecoder@@UAEXJHW4eSoundChannel@@@Z ; CTDA9874AudioDecoder::DetectAudioStandard
PUBLIC	?GetAudioStandardFromVideoFormat@CTDA9874AudioDecoder@@UAEJW4eVideoFormat@@@Z ; CTDA9874AudioDecoder::GetAudioStandardFromVideoFormat
PUBLIC	?GetAudioStandardMinorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z ; CTDA9874AudioDecoder::GetAudioStandardMinorCarrier
PUBLIC	?GetAudioStandardMajorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z ; CTDA9874AudioDecoder::GetAudioStandardMajorCarrier
PUBLIC	?GetAudioStandard@CTDA9874AudioDecoder@@UAEJH@Z	; CTDA9874AudioDecoder::GetAudioStandard
PUBLIC	?GetNumAudioStandards@CTDA9874AudioDecoder@@UAEHXZ ; CTDA9874AudioDecoder::GetNumAudioStandards
PUBLIC	?GetAudioStandardName@CTDA9874AudioDecoder@@UAEPB_WJ@Z ; CTDA9874AudioDecoder::GetAudioStandardName
PUBLIC	?SetAudioStandard@CTDA9874AudioDecoder@@UAEXJW4eVideoFormat@@@Z ; CTDA9874AudioDecoder::SetAudioStandard
PUBLIC	?SetAudioInput@CTDA9874AudioDecoder@@UAEXW4eAudioInput@@@Z ; CTDA9874AudioDecoder::SetAudioInput
PUBLIC	?IsAudioChannelDetected@CTDA9874AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z ; CTDA9874AudioDecoder::IsAudioChannelDetected
PUBLIC	?SetSoundChannel@CTDA9874AudioDecoder@@UAEXW4eSoundChannel@@@Z ; CTDA9874AudioDecoder::SetSoundChannel
PUBLIC	??_R4CTDA9874AudioDecoder@@6BCAudioDecoder@@@	; CTDA9874AudioDecoder::`RTTI Complete Object Locator'
PUBLIC	??_R4CTDA9874AudioDecoder@@6BCTDA9874@@@	; CTDA9874AudioDecoder::`RTTI Complete Object Locator'
PUBLIC	??_R3CTDA9874AudioDecoder@@8			; CTDA9874AudioDecoder::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CTDA9874AudioDecoder@@8			; CTDA9874AudioDecoder::`RTTI Base Class Array'
PUBLIC	??_R1CA@?0A@EA@CEventObject@@8			; CEventObject::`RTTI Base Class Descriptor at (32,-1,0,64)'
PUBLIC	??_R1CA@?0A@EA@CAudioDecoder@@8			; CAudioDecoder::`RTTI Base Class Descriptor at (32,-1,0,64)'
PUBLIC	??_R1A@?0A@EA@CTDA9874AudioDecoder@@8		; CTDA9874AudioDecoder::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCTDA9874AudioDecoder@@@8		; CTDA9874AudioDecoder `RTTI Type Descriptor'
PUBLIC	??_C@_1BC@GBBHDEKF@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAA?$AAM?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BE@OCEFIPGE@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA3?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BE@CJBJFMMB@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA2?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BE@KPINCOGP@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA1?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1M@POMPDJLP@?$AAA?$AA2?$AA?5?$AAB?$AAG?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BK@DJGMFNBP@?$AAA?$AA2?$AA?5?$AAM?$AA?5?$AA?$CI?$AAK?$AAo?$AAr?$AAe?$AAa?$AA?$CJ?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BC@BELBPKMK@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAD?$AAK?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BC@IIDOKGGP@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAB?$AAG?$AA?$AA@ ; `string'
PUBLIC	??_C@_1BA@JHPKHAGJ@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAI?$AA?$AA@ ; `string'
PUBLIC	??_GCTDA9874AudioDecoder@@UAEPAXI@Z		; CTDA9874AudioDecoder::`scalar deleting destructor'
PUBLIC	??_ECTDA9874AudioDecoder@@WCA@AEPAXI@Z		; [thunk]:CTDA9874AudioDecoder::`vector deleting destructor'
PUBLIC	?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A ; CTDA9874AudioDecoder::m_TDA9874Standards
PUBLIC	??_C@_1CK@EDOAKLMH@?$AAS?$AAe?$AAt?$AAC?$AAh?$AAi?$AAp?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DI@DNKCMNIG@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAS?$AAo?$AAu?$AAn?$AAd?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?3?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EG@GFIJOFL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAI?$AAs?$AAA?$AAu?$AAd?$AAi?$AAo?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?3@ ; `string'
PUBLIC	??_C@_1DE@LMKDEFHK@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@MAPHPBGE@?$AAg?$AAe?$AAt?$AAM?$AAa?$AAj?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@MMJOJIBK@?$AAg?$AAe?$AAt?$AAM?$AAi?$AAn?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DA@DMKBFMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA2?$AAi?$AAn?$AAd?$AAe?$AAx?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DE@CKEPJKIA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DG@JMAKGNEG@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA1?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DG@OCHCCFOA@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA2?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DG@MIFKBNIC@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA3?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CI@JEHEHDJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@DPIAFDCO@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EG@HBHLNMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@ ; `string'
PUBLIC	??_C@_1EG@PHOPKOOD@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@ ; `string'
PUBLIC	??_C@_1HO@MNBIABBC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAd?$AAi?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAt?$AAe?$AAr?$AAm@ ; `string'
PUBLIC	??_C@_1DI@FHBPGCDA@?$AAW?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DK@HMKOPEDF@?$AAR?$AAe?$AAs?$AAu?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ ; `string'
PUBLIC	??_7CTDA9874AudioDecoder@@6BCTDA9874@@@		; CTDA9874AudioDecoder::`vftable'
PUBLIC	??_7CTDA9874AudioDecoder@@6BCAudioDecoder@@@	; CTDA9874AudioDecoder::`vftable'
EXTRN	??_ECTDA9874AudioDecoder@@UAEPAXI@Z:PROC	; CTDA9874AudioDecoder::`vector deleting destructor'
;	COMDAT ??_7CTDA9874AudioDecoder@@6BCAudioDecoder@@@
CONST	SEGMENT
??_7CTDA9874AudioDecoder@@6BCAudioDecoder@@@ DD FLAT:??_R4CTDA9874AudioDecoder@@6BCAudioDecoder@@@ ; CTDA9874AudioDecoder::`vftable'
	DD	FLAT:??_ECTDA9874AudioDecoder@@WCA@AEPAXI@Z
	DD	FLAT:?OnEvent@CEventObject@@UAEXPAV1@W4eEventType@@JJPAW42@@Z
	DD	FLAT:?SetSoundChannel@CTDA9874AudioDecoder@@UAEXW4eSoundChannel@@@Z
	DD	FLAT:?GetSoundChannel@CAudioDecoder@@UAE?AW4eSoundChannel@@XZ
	DD	FLAT:?IsAudioChannelDetected@CTDA9874AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z
	DD	FLAT:?SetAudioInput@CTDA9874AudioDecoder@@UAEXW4eAudioInput@@@Z
	DD	FLAT:?GetAudioInput@CAudioDecoder@@UAE?AW4eAudioInput@@XZ
	DD	FLAT:?GetAudioInputName@CAudioDecoder@@UAEPB_WW4eAudioInput@@@Z
	DD	FLAT:?SetAudioStandard@CTDA9874AudioDecoder@@UAEXJW4eVideoFormat@@@Z
	DD	FLAT:?GetAudioStandardCurrent@CAudioDecoder@@UAEJXZ
	DD	FLAT:?GetAudioStandardName@CTDA9874AudioDecoder@@UAEPB_WJ@Z
	DD	FLAT:?GetNumAudioStandards@CTDA9874AudioDecoder@@UAEHXZ
	DD	FLAT:?GetAudioStandard@CTDA9874AudioDecoder@@UAEJH@Z
	DD	FLAT:?GetAudioStandardMajorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z
	DD	FLAT:?GetAudioStandardMinorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z
	DD	FLAT:?SetAudioStandardCarriers@CAudioDecoder@@UAEXJJ@Z
	DD	FLAT:?GetAudioStandardFromVideoFormat@CTDA9874AudioDecoder@@UAEJW4eVideoFormat@@@Z
	DD	FLAT:?DetectAudioStandard@CTDA9874AudioDecoder@@UAEXJHW4eSoundChannel@@@Z
	DD	FLAT:?GetAudioDecoderType@CTDA9874AudioDecoder@@EAE?AW4eAudioDecoderType@CAudioDecoder@@XZ
	DD	FLAT:?SetAudioDecoderValue@CAudioDecoder@@UAEHHJ@Z
	DD	FLAT:?GetAudioDecoderValue@CAudioDecoder@@UAEJH@Z
CONST	ENDS
;	COMDAT ??_R4CTDA9874AudioDecoder@@6BCAudioDecoder@@@
rdata$r	SEGMENT
??_R4CTDA9874AudioDecoder@@6BCAudioDecoder@@@ DD 00H	; CTDA9874AudioDecoder::`RTTI Complete Object Locator'
	DD	020H
	DD	00H
	DD	FLAT:??_R0?AVCTDA9874AudioDecoder@@@8
	DD	FLAT:??_R3CTDA9874AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_7CTDA9874AudioDecoder@@6BCTDA9874@@@
CONST	SEGMENT
??_7CTDA9874AudioDecoder@@6BCTDA9874@@@ DD FLAT:??_R4CTDA9874AudioDecoder@@6BCTDA9874@@@ ; CTDA9874AudioDecoder::`vftable'
	DD	FLAT:??_ECTDA9874AudioDecoder@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CTDA9874@@MBEEXZ
CONST	ENDS
;	COMDAT ??_R4CTDA9874AudioDecoder@@6BCTDA9874@@@
rdata$r	SEGMENT
??_R4CTDA9874AudioDecoder@@6BCTDA9874@@@ DD 00H		; CTDA9874AudioDecoder::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCTDA9874AudioDecoder@@@8
	DD	FLAT:??_R3CTDA9874AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_R3CTDA9874AudioDecoder@@8
rdata$r	SEGMENT
??_R3CTDA9874AudioDecoder@@8 DD 00H			; CTDA9874AudioDecoder::`RTTI Class Hierarchy Descriptor'
	DD	01H
	DD	05H
	DD	FLAT:??_R2CTDA9874AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_R2CTDA9874AudioDecoder@@8
rdata$r	SEGMENT
??_R2CTDA9874AudioDecoder@@8 DD FLAT:??_R1A@?0A@EA@CTDA9874AudioDecoder@@8 ; CTDA9874AudioDecoder::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CTDA9874@@8
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
	DD	FLAT:??_R1CA@?0A@EA@CAudioDecoder@@8
	DD	FLAT:??_R1CA@?0A@EA@CEventObject@@8
rdata$r	ENDS
;	COMDAT ??_R1CA@?0A@EA@CEventObject@@8
rdata$r	SEGMENT
??_R1CA@?0A@EA@CEventObject@@8 DD FLAT:??_R0?AVCEventObject@@@8 ; CEventObject::`RTTI Base Class Descriptor at (32,-1,0,64)'
	DD	00H
	DD	020H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CEventObject@@8
rdata$r	ENDS
;	COMDAT ??_R1CA@?0A@EA@CAudioDecoder@@8
rdata$r	SEGMENT
??_R1CA@?0A@EA@CAudioDecoder@@8 DD FLAT:??_R0?AVCAudioDecoder@@@8 ; CAudioDecoder::`RTTI Base Class Descriptor at (32,-1,0,64)'
	DD	01H
	DD	020H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CAudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CTDA9874AudioDecoder@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CTDA9874AudioDecoder@@8 DD FLAT:??_R0?AVCTDA9874AudioDecoder@@@8 ; CTDA9874AudioDecoder::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	04H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CTDA9874AudioDecoder@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCTDA9874AudioDecoder@@@8
_DATA	SEGMENT
??_R0?AVCTDA9874AudioDecoder@@@8 DD FLAT:??_7type_info@@6B@ ; CTDA9874AudioDecoder `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCTDA9874AudioDecoder@@', 00H
_DATA	ENDS
;	COMDAT ??_C@_1DK@HMKOPEDF@?$AAR?$AAe?$AAs?$AAu?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@HMKOPEDF@?$AAR?$AAe?$AAs?$AAu?$AAm?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ DB 'R'
	DB	00H, 'e', 00H, 's', 00H, 'u', 00H, 'm', 00H, 'i', 00H, 'n', 00H
	DB	'g', 00H, ' ', 00H, 'T', 00H, 'D', 00H, 'A', 00H, '9', 00H, '8'
	DB	00H, '7', 00H, '4', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 't', 00H
	DB	'e', 00H, 'c', 00H, 't', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o'
	DB	00H, 'p', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DI@FHBPGCDA@?$AAW?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DI@FHBPGCDA@?$AAW?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ DB 'W'
	DB	00H, 'a', 00H, 'i', 00H, 't', 00H, 'i', 00H, 'n', 00H, 'g', 00H
	DB	' ', 00H, 'T', 00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7'
	DB	00H, '4', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H
	DB	'c', 00H, 't', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1HO@MNBIABBC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAd?$AAi?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAt?$AAe?$AAr?$AAm@
CONST	SEGMENT
??_C@_1HO@MNBIABBC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAd?$AAi?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAt?$AAe?$AAr?$AAm@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H, 't'
	DB	00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, ' ', 00H
	DB	'd', 00H, 'i', 00H, 'd', 00H, ' ', 00H, 'n', 00H, 'o', 00H, 't'
	DB	00H, ' ', 00H, 't', 00H, 'e', 00H, 'r', 00H, 'm', 00H, 'i', 00H
	DB	'n', 00H, 'a', 00H, 't', 00H, 'e', 00H, ' ', 00H, 'g', 00H, 'r'
	DB	00H, 'a', 00H, 'c', 00H, 'e', 00H, 'f', 00H, 'u', 00H, 'l', 00H
	DB	'l', 00H, 'y', 00H, ':', 00H, ' ', 00H, 't', 00H, 'e', 00H, 'r'
	DB	00H, 'm', 00H, 'i', 00H, 'n', 00H, 'a', 00H, 't', 00H, 'i', 00H
	DB	'n', 00H, 'g', 00H, '!', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1EG@PHOPKOOD@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@
CONST	SEGMENT
??_C@_1EG@PHOPKOOD@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H, 't'
	DB	00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, ' ', 00H
	DB	'n', 00H, 'o', 00H, 't', 00H, ' ', 00H, 'w', 00H, 'a', 00H, 'i'
	DB	00H, 't', 00H, 'i', 00H, 'n', 00H, 'g', 00H, '(', 00H, '2', 00H
	DB	')', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1EG@HBHLNMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@
CONST	SEGMENT
??_C@_1EG@HBHLNMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H, 't'
	DB	00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, ' ', 00H
	DB	'n', 00H, 'o', 00H, 't', 00H, ' ', 00H, 'w', 00H, 'a', 00H, 'i'
	DB	00H, 't', 00H, 'i', 00H, 'n', 00H, 'g', 00H, '(', 00H, '1', 00H
	DB	')', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@DPIAFDCO@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@DPIAFDCO@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ DB 'C'
	DB	00H, 'r', 00H, 'a', 00H, 's', 00H, 'h', 00H, ' ', 00H, 'i', 00H
	DB	'n', 00H, ' ', 00H, 'T', 00H, 'D', 00H, 'A', 00H, '9', 00H, '8'
	DB	00H, '7', 00H, '4', 00H, ' ', 00H, 'd', 00H, 'e', 00H, 't', 00H
	DB	'e', 00H, 'c', 00H, 't', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o'
	DB	00H, 'p', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1CI@JEHEHDJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1CI@JEHEHDJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$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, '4', 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@_1DG@MIFKBNIC@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA3?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@MIFKBNIC@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA3?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ DB 'A'
	DB	00H, 'b', 00H, 'o', 00H, 'r', 00H, 't', 00H, '3', 00H, ' ', 00H
	DB	'T', 00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4'
	DB	00H, ' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H
	DB	't', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1DG@OCHCCFOA@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA2?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@OCHCCFOA@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA2?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ DB 'A'
	DB	00H, 'b', 00H, 'o', 00H, 'r', 00H, 't', 00H, '2', 00H, ' ', 00H
	DB	'T', 00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4'
	DB	00H, ' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H
	DB	't', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1DG@JMAKGNEG@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA1?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@JMAKGNEG@?$AAA?$AAb?$AAo?$AAr?$AAt?$AA1?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@ DB 'A'
	DB	00H, 'b', 00H, 'o', 00H, 'r', 00H, 't', 00H, '1', 00H, ' ', 00H
	DB	'T', 00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4'
	DB	00H, ' ', 00H, 'd', 00H, 'e', 00H, 't', 00H, 'e', 00H, 'c', 00H
	DB	't', 00H, ' ', 00H, 'l', 00H, 'o', 00H, 'o', 00H, 'p', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1DE@CKEPJKIA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DE@CKEPJKIA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$AA@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	':', 00H, ' ', 00H, 'S', 00H, 'e', 00H, 't', 00H, 'A', 00H, 'u'
	DB	00H, 'd', 00H, 'i', 00H, 'o', 00H, 'S', 00H, 't', 00H, 'a', 00H
	DB	'n', 00H, 'd', 00H, 'a', 00H, 'r', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DA@DMKBFMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA2?$AAi?$AAn?$AAd?$AAe?$AAx?$AA?$AA@
CONST	SEGMENT
??_C@_1DA@DMKBFMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA2?$AAi?$AAn?$AAd?$AAe?$AAx?$AA?$AA@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	':', 00H, ' ', 00H, 's', 00H, 't', 00H, 'a', 00H, 'n', 00H, 'd'
	DB	00H, 'a', 00H, 'r', 00H, 'd', 00H, '2', 00H, 'i', 00H, 'n', 00H
	DB	'd', 00H, 'e', 00H, 'x', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@MMJOJIBK@?$AAg?$AAe?$AAt?$AAM?$AAi?$AAn?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@MMJOJIBK@?$AAg?$AAe?$AAt?$AAM?$AAi?$AAn?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@ DB 'g'
	DB	00H, 'e', 00H, 't', 00H, 'M', 00H, 'i', 00H, 'n', 00H, 'o', 00H
	DB	'r', 00H, 'C', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H, 'e'
	DB	00H, 'r', 00H, ',', 00H, ' ', 00H, 's', 00H, 't', 00H, 'a', 00H
	DB	'n', 00H, 'd', 00H, 'a', 00H, 'r', 00H, 'd', 00H, '=', 00H, '%'
	DB	00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DK@MAPHPBGE@?$AAg?$AAe?$AAt?$AAM?$AAa?$AAj?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DK@MAPHPBGE@?$AAg?$AAe?$AAt?$AAM?$AAa?$AAj?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@ DB 'g'
	DB	00H, 'e', 00H, 't', 00H, 'M', 00H, 'a', 00H, 'j', 00H, 'o', 00H
	DB	'r', 00H, 'C', 00H, 'a', 00H, 'r', 00H, 'r', 00H, 'i', 00H, 'e'
	DB	00H, 'r', 00H, ',', 00H, ' ', 00H, 's', 00H, 't', 00H, 'a', 00H
	DB	'n', 00H, 'd', 00H, 'a', 00H, 'r', 00H, 'd', 00H, '=', 00H, '%'
	DB	00H, 'd', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1DE@LMKDEFHK@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DE@LMKDEFHK@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	':', 00H, ' ', 00H, 'S', 00H, 'e', 00H, 't', 00H, 'A', 00H, 'u'
	DB	00H, 'd', 00H, 'i', 00H, 'o', 00H, 'I', 00H, 'n', 00H, 'p', 00H
	DB	'u', 00H, 't', 00H, ':', 00H, '%', 00H, 'd', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EG@GFIJOFL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAI?$AAs?$AAA?$AAu?$AAd?$AAi?$AAo?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?3@
CONST	SEGMENT
??_C@_1EG@GFIJOFL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAI?$AAs?$AAA?$AAu?$AAd?$AAi?$AAo?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?3@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	':', 00H, ' ', 00H, 'I', 00H, 's', 00H, 'A', 00H, 'u', 00H, 'd'
	DB	00H, 'i', 00H, 'o', 00H, 'C', 00H, 'h', 00H, 'a', 00H, 'n', 00H
	DB	'n', 00H, 'e', 00H, 'l', 00H, 'D', 00H, 'e', 00H, 't', 00H, 'e'
	DB	00H, 'c', 00H, 't', 00H, 'e', 00H, 'd', 00H, ':', 00H, '%', 00H
	DB	'd', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1DI@DNKCMNIG@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAS?$AAo?$AAu?$AAn?$AAd?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?3?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DI@DNKCMNIG@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAS?$AAo?$AAu?$AAn?$AAd?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?3?$AA?$CF?$AAd?$AA?$AA@ DB 'T'
	DB	00H, 'D', 00H, 'A', 00H, '9', 00H, '8', 00H, '7', 00H, '4', 00H
	DB	':', 00H, ' ', 00H, 'S', 00H, 'e', 00H, 't', 00H, 'S', 00H, 'o'
	DB	00H, 'u', 00H, 'n', 00H, 'd', 00H, 'C', 00H, 'h', 00H, 'a', 00H
	DB	'n', 00H, 'n', 00H, 'e', 00H, 'l', 00H, ':', 00H, '%', 00H, 'd'
	DB	00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1CK@EDOAKLMH@?$AAS?$AAe?$AAt?$AAC?$AAh?$AAi?$AAp?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1CK@EDOAKLMH@?$AAS?$AAe?$AAt?$AAC?$AAh?$AAi?$AAp?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@ DB 'S'
	DB	00H, 'e', 00H, 't', 00H, 'C', 00H, 'h', 00H, 'i', 00H, 'p', 00H
	DB	'M', 00H, 'o', 00H, 'd', 00H, 'e', 00H, ' ', 00H, 'a', 00H, 'u'
	DB	00H, 'd', 00H, 'i', 00H, 'o', 00H, '=', 00H, '%', 00H, 'd', 00H
	DB	00H, 00H					; `string'
CONST	ENDS
;	COMDAT ??_C@_1BC@GBBHDEKF@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAA?$AAM?$AA?$AA@
CONST	SEGMENT
??_C@_1BC@GBBHDEKF@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAA?$AAM?$AA?$AA@ DB 'N'
	DB	00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ' ', 00H, 'A', 00H
	DB	'M', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@OCEFIPGE@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA3?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@OCEFIPGE@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA3?$AA?$CJ?$AA?$AA@ DB 'A'
	DB	00H, '2', 00H, ' ', 00H, 'D', 00H, 'K', 00H, ' ', 00H, '(', 00H
	DB	'3', 00H, ')', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@CJBJFMMB@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA2?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@CJBJFMMB@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA2?$AA?$CJ?$AA?$AA@ DB 'A'
	DB	00H, '2', 00H, ' ', 00H, 'D', 00H, 'K', 00H, ' ', 00H, '(', 00H
	DB	'2', 00H, ')', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1BE@KPINCOGP@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA1?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BE@KPINCOGP@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA1?$AA?$CJ?$AA?$AA@ DB 'A'
	DB	00H, '2', 00H, ' ', 00H, 'D', 00H, 'K', 00H, ' ', 00H, '(', 00H
	DB	'1', 00H, ')', 00H, 00H, 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_1M@POMPDJLP@?$AAA?$AA2?$AA?5?$AAB?$AAG?$AA?$AA@
CONST	SEGMENT
??_C@_1M@POMPDJLP@?$AAA?$AA2?$AA?5?$AAB?$AAG?$AA?$AA@ DB 'A', 00H, '2', 00H
	DB	' ', 00H, 'B', 00H, 'G', 00H, 00H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_1BK@DJGMFNBP@?$AAA?$AA2?$AA?5?$AAM?$AA?5?$AA?$CI?$AAK?$AAo?$AAr?$AAe?$AAa?$AA?$CJ?$AA?$AA@
CONST	SEGMENT
??_C@_1BK@DJGMFNBP@?$AAA?$AA2?$AA?5?$AAM?$AA?5?$AA?$CI?$AAK?$AAo?$AAr?$AAe?$AAa?$AA?$CJ?$AA?$AA@ DB 'A'
	DB	00H, '2', 00H, ' ', 00H, 'M', 00H, ' ', 00H, '(', 00H, 'K', 00H
	DB	'o', 00H, 'r', 00H, 'e', 00H, 'a', 00H, ')', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1BC@BELBPKMK@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAD?$AAK?$AA?$AA@
CONST	SEGMENT
??_C@_1BC@BELBPKMK@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAD?$AAK?$AA?$AA@ DB 'N'
	DB	00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ' ', 00H, 'D', 00H
	DB	'K', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BC@IIDOKGGP@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAB?$AAG?$AA?$AA@
CONST	SEGMENT
??_C@_1BC@IIDOKGGP@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAB?$AAG?$AA?$AA@ DB 'N'
	DB	00H, 'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ' ', 00H, 'B', 00H
	DB	'G', 00H, 00H, 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_1BA@JHPKHAGJ@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAI?$AA?$AA@
CONST	SEGMENT
??_C@_1BA@JHPKHAGJ@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAI?$AA?$AA@ DB 'N', 00H
	DB	'I', 00H, 'C', 00H, 'A', 00H, 'M', 00H, ' ', 00H, 'I', 00H, 00H
	DB	00H						; `string'
?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A DD FLAT:??_C@_1BA@JHPKHAGJ@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAI?$AA?$AA@ ; CTDA9874AudioDecoder::m_TDA9874Standards
	DD	031H
	DD	07d0000H
	DD	0888000H
	DB	08H
	DB	00H
	DB	00H
	ORG $+1
	DD	01H
	DD	00H
	DD	FLAT:??_C@_1BC@IIDOKGGP@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAB?$AAG?$AA?$AA@
	DD	030H
	DD	0729555H
	DD	079dfffH
	DB	08H
	DB	00H
	DB	00H
	ORG $+1
	DD	01H
	DD	00H
	DD	FLAT:??_C@_1BC@BELBPKMK@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAD?$AAK?$AA?$AA@
	DD	032H
	DD	0876aaaH
	DD	079dfffH
	DB	08H
	DB	00H
	DB	00H
	ORG $+1
	DD	01H
	DD	00H
	DD	FLAT:??_C@_1BK@DJGMFNBP@?$AAA?$AA2?$AA?5?$AAM?$AA?5?$AA?$CI?$AAK?$AAo?$AAr?$AAe?$AAa?$AA?$CJ?$AA?$AA@
	DD	011H
	DD	05dc000H
	DD	0626aaaH
	DB	020H
	DB	022H
	DB	05H
	ORG $+1
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1M@POMPDJLP@?$AAA?$AA2?$AA?5?$AAB?$AAG?$AA?$AA@
	DD	012H
	DD	0729555H
	DD	077a000H
	DB	00H
	DB	00H
	DB	04H
	ORG $+1
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1BE@KPINCOGP@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA1?$AA?$CJ?$AA?$AA@
	DD	014H
	DD	0876aaaH
	DD	0826000H
	DB	00H
	DB	00H
	DB	04H
	ORG $+1
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1BE@CJBJFMMB@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA2?$AA?$CJ?$AA?$AA@
	DD	015H
	DD	0876aaaH
	DD	08c7555H
	DB	00H
	DB	00H
	DB	04H
	ORG $+1
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1BE@OCEFIPGE@?$AAA?$AA2?$AA?5?$AAD?$AAK?$AA?5?$AA?$CI?$AA3?$AA?$CJ?$AA?$AA@
	DD	016H
	DD	0876aaaH
	DD	077a000H
	DB	00H
	DB	00H
	DB	04H
	ORG $+1
	DD	00H
	DD	00H
	DD	FLAT:??_C@_1BC@GBBHDEKF@?$AAN?$AAI?$AAC?$AAA?$AAM?$AA?5?$AAA?$AAM?$AA?$AA@
	DD	033H
	DD	0876aaaH
	DD	079dfffH
	DB	09H
	DB	00H
	DB	00H
	ORG $+1
	DD	01H
	DD	01H
; Function compile flags: /Odtp
;	COMDAT ??_ECTDA9874AudioDecoder@@WCA@AEPAXI@Z
_TEXT	SEGMENT
??_ECTDA9874AudioDecoder@@WCA@AEPAXI@Z PROC		; [thunk]:CTDA9874AudioDecoder::`vector deleting destructor', COMDAT
  00000	83 e9 20	 sub	 ecx, 32			; 00000020H
  00003	e9 00 00 00 00	 jmp	 ??_ECTDA9874AudioDecoder@@UAEPAXI@Z
??_ECTDA9874AudioDecoder@@WCA@AEPAXI@Z ENDP		; [thunk]:CTDA9874AudioDecoder::`vector deleting destructor'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\tda9874audiodecoder.cpp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardFromVideoFormat@CTDA9874AudioDecoder@@UAEJW4eVideoFormat@@@Z
_TEXT	SEGMENT
tv64 = -12						; size = 4
_this$ = -8						; size = 4
_standard$ = -4						; size = 2
_videoFormat$ = 8					; size = 4
?GetAudioStandardFromVideoFormat@CTDA9874AudioDecoder@@UAEJW4eVideoFormat@@@Z PROC ; CTDA9874AudioDecoder::GetAudioStandardFromVideoFormat, COMDAT
; _this$ = ecx

; 298  : {

  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

; 299  :     // ToDo: Check, add, ...
; 300  :     // Guess the correct format
; 301  :     WORD standard;
; 302  :     switch(videoFormat)

  00009	8b 45 08	 mov	 eax, DWORD PTR _videoFormat$[ebp]
  0000c	89 45 f4	 mov	 DWORD PTR tv64[ebp], eax
  0000f	83 7d f4 10	 cmp	 DWORD PTR tv64[ebp], 16	; 00000010H
  00013	0f 87 bd 00 00
	00		 ja	 $LN1@GetAudioSt@6
  00019	8b 4d f4	 mov	 ecx, DWORD PTR tv64[ebp]
  0001c	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN22@GetAudioSt@6[ecx*4]
$LN17@GetAudioSt@6:

; 303  :     {
; 304  :     case VIDEOFORMAT_PAL_B:
; 305  :         standard = TDA9874_STANDARD_BG_DIGITAL_FM_NICAM;

  00023	ba 30 00 00 00	 mov	 edx, 48			; 00000030H
  00028	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 306  :         break;

  0002c	e9 ab 00 00 00	 jmp	 $LN18@GetAudioSt@6
$LN16@GetAudioSt@6:

; 307  :     case VIDEOFORMAT_PAL_D:
; 308  :         standard = TDA9874_STANDARD_DK1_ANALOG_FM_FM;

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

; 309  :         break;

  0003a	e9 9d 00 00 00	 jmp	 $LN18@GetAudioSt@6
$LN15@GetAudioSt@6:

; 310  :     case VIDEOFORMAT_PAL_G:
; 311  :         standard = TDA9874_STANDARD_BG_DIGITAL_FM_NICAM;

  0003f	b9 30 00 00 00	 mov	 ecx, 48			; 00000030H
  00044	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 312  :         break;

  00048	e9 8f 00 00 00	 jmp	 $LN18@GetAudioSt@6
$LN14@GetAudioSt@6:

; 313  :     case VIDEOFORMAT_PAL_H:
; 314  :         // \todo FIXME
; 315  :         standard = TDA9874_STANDARD_NONE;

  0004d	33 d2		 xor	 edx, edx
  0004f	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 316  :         break;

  00053	e9 84 00 00 00	 jmp	 $LN18@GetAudioSt@6
$LN13@GetAudioSt@6:

; 317  :     case VIDEOFORMAT_PAL_I:
; 318  :         standard = TDA9874_STANDARD_I_ANALOG_FM_NONE;

  00058	b8 13 00 00 00	 mov	 eax, 19			; 00000013H
  0005d	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 319  :         break;

  00061	eb 79		 jmp	 SHORT $LN18@GetAudioSt@6
$LN12@GetAudioSt@6:

; 320  :     case VIDEOFORMAT_PAL_M:
; 321  :         // \todo FIXME
; 322  :         standard = TDA9874_STANDARD_M_ANALOG_FM_NONE;

  00063	b9 10 00 00 00	 mov	 ecx, 16			; 00000010H
  00068	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 323  :         break;

  0006c	eb 6e		 jmp	 SHORT $LN18@GetAudioSt@6
$LN11@GetAudioSt@6:

; 324  :     case VIDEOFORMAT_PAL_N:
; 325  :         // \todo FIXME
; 326  :         standard = TDA9874_STANDARD_NONE;

  0006e	33 d2		 xor	 edx, edx
  00070	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 327  :         break;

  00074	eb 66		 jmp	 SHORT $LN18@GetAudioSt@6
$LN10@GetAudioSt@6:

; 328  :     case VIDEOFORMAT_PAL_N_COMBO:
; 329  :         // \todo FIXME
; 330  :         standard = TDA9874_STANDARD_NONE;

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

; 331  :         break;

  0007c	eb 5e		 jmp	 SHORT $LN18@GetAudioSt@6
$LN9@GetAudioSt@6:

; 332  :     case VIDEOFORMAT_SECAM_B:
; 333  :         standard = TDA9874_STANDARD_BG_ANALOG_FM_FM;

  0007e	b9 12 00 00 00	 mov	 ecx, 18			; 00000012H
  00083	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 334  :         break;

  00087	eb 53		 jmp	 SHORT $LN18@GetAudioSt@6
$LN8@GetAudioSt@6:

; 335  :     case VIDEOFORMAT_SECAM_D:
; 336  :         standard = TDA9874_STANDARD_DK1_ANALOG_FM_FM;

  00089	ba 14 00 00 00	 mov	 edx, 20			; 00000014H
  0008e	66 89 55 fc	 mov	 WORD PTR _standard$[ebp], dx

; 337  :         break;

  00092	eb 48		 jmp	 SHORT $LN18@GetAudioSt@6
$LN7@GetAudioSt@6:

; 338  :     case VIDEOFORMAT_SECAM_G:
; 339  :         standard = TDA9874_STANDARD_BG_ANALOG_FM_FM;

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

; 340  :         break;

  0009d	eb 3d		 jmp	 SHORT $LN18@GetAudioSt@6
$LN6@GetAudioSt@6:

; 341  :     case VIDEOFORMAT_SECAM_H:
; 342  :         standard = TDA9874_STANDARD_DK1_ANALOG_FM_FM;

  0009f	b9 14 00 00 00	 mov	 ecx, 20			; 00000014H
  000a4	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 343  :         break;

  000a8	eb 32		 jmp	 SHORT $LN18@GetAudioSt@6
$LN5@GetAudioSt@6:

; 344  :     case VIDEOFORMAT_SECAM_K:
; 345  :         standard = TDA9874_STANDARD_DK1_ANALOG_FM_FM;

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

; 346  :         break;

  000b3	eb 27		 jmp	 SHORT $LN18@GetAudioSt@6
$LN4@GetAudioSt@6:

; 347  :     case VIDEOFORMAT_SECAM_K1:
; 348  :         standard = TDA9874_STANDARD_DK2_ANALOG_FM_FM;

  000b5	b8 15 00 00 00	 mov	 eax, 21			; 00000015H
  000ba	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax

; 349  :         break;

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

; 350  :     case VIDEOFORMAT_SECAM_L:
; 351  :         standard = TDA9874_STANDARD_L_DIGITAL_AM_NICAM;

  000c0	b9 33 00 00 00	 mov	 ecx, 51			; 00000033H
  000c5	66 89 4d fc	 mov	 WORD PTR _standard$[ebp], cx

; 352  :         break;

  000c9	eb 11		 jmp	 SHORT $LN18@GetAudioSt@6
$LN2@GetAudioSt@6:

; 353  :     case VIDEOFORMAT_SECAM_L1:
; 354  :         standard = TDA9874_STANDARD_L_DIGITAL_AM_NICAM;

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

; 355  :         break;

  000d4	eb 06		 jmp	 SHORT $LN18@GetAudioSt@6
$LN1@GetAudioSt@6:

; 356  :     default:
; 357  :     case VIDEOFORMAT_PAL_60:
; 358  :     case VIDEOFORMAT_NTSC_50:
; 359  :         standard = TDA9874_STANDARD_NONE;

  000d6	33 c0		 xor	 eax, eax
  000d8	66 89 45 fc	 mov	 WORD PTR _standard$[ebp], ax
$LN18@GetAudioSt@6:

; 360  :         break;
; 361  :     }
; 362  :     return standard;

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

; 363  : }

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

; 288  : {

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

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

  00007	83 7d 08 00	 cmp	 DWORD PTR _nIndex$[ebp], 0
  0000b	7c 12		 jl	 SHORT $LN1@GetAudioSt@7
  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 $LN2@GetAudioSt@7
$LN1@GetAudioSt@7:

; 290  :     {
; 291  :         return 0;

  0001f	33 c0		 xor	 eax, eax
  00021	eb 0c		 jmp	 SHORT $LN3@GetAudioSt@7
$LN2@GetAudioSt@7:

; 292  :     }
; 293  : 
; 294  :     return m_TDA9874Standards[nIndex].Standard;

  00023	8b 4d 08	 mov	 ecx, DWORD PTR _nIndex$[ebp]
  00026	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00029	8b 81 04 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+4]
$LN3@GetAudioSt@7:

; 295  : }

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

; 283  : {

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

; 284  :     return sizeof(m_TDA9874Standards) / sizeof(m_TDA9874Standards[0]);

  00007	b8 09 00 00 00	 mov	 eax, 9

; 285  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?GetNumAudioStandards@CTDA9874AudioDecoder@@UAEHXZ ENDP	; CTDA9874AudioDecoder::GetNumAudioStandards
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioDecoderType@CTDA9874AudioDecoder@@EAE?AW4eAudioDecoderType@CAudioDecoder@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetAudioDecoderType@CTDA9874AudioDecoder@@EAE?AW4eAudioDecoderType@CAudioDecoder@@XZ PROC ; CTDA9874AudioDecoder::GetAudioDecoderType, COMDAT
; _this$ = ecx

; 144  : {

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

; 145  :     return AUDIODECODERTYPE_TDA9874;

  00007	b8 0b 00 00 00	 mov	 eax, 11			; 0000000bH

; 146  : }

  0000c	8b e5		 mov	 esp, ebp
  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?GetAudioDecoderType@CTDA9874AudioDecoder@@EAE?AW4eAudioDecoderType@CAudioDecoder@@XZ ENDP ; CTDA9874AudioDecoder::GetAudioDecoderType
PUBLIC	?SetChipStandard@CTDA9874AudioDecoder@@AAEXH@Z	; CTDA9874AudioDecoder::SetChipStandard
; Function compile flags: /Odtp
;	COMDAT ?SetChipStandard@CTDA9874AudioDecoder@@AAEXH@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_Buffer$ = -4						; size = 3
_FastCheck$ = 8						; size = 4
?SetChipStandard@CTDA9874AudioDecoder@@AAEXH@Z PROC	; CTDA9874AudioDecoder::SetChipStandard, COMDAT
; _this$ = ecx

; 93   : {

  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

; 94   :     WriteToSubAddress(TDA9874A_GCONR, 0xc0 | m_SIF | ((m_TDA9874Standards[m_AudioStandard].AGCOff) ? 0x02 : 0x00) ); // Select the proper SIF and turn AGC on/off if needed to

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 48 44	 mov	 ecx, DWORD PTR [eax+68]
  0000f	81 c9 c0 00 00
	00		 or	 ecx, 192		; 000000c0H
  00015	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00018	8b 42 30	 mov	 eax, DWORD PTR [edx+48]
  0001b	6b c0 1c	 imul	 eax, 28			; 0000001cH
  0001e	8b 90 18 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[eax+24]
  00024	f7 da		 neg	 edx
  00026	1b d2		 sbb	 edx, edx
  00028	83 e2 02	 and	 edx, 2
  0002b	0b ca		 or	 ecx, edx
  0002d	51		 push	 ecx
  0002e	6a 01		 push	 1
  00030	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00033	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 95   :     WriteToSubAddress(TDA9874A_MSR, (m_TDA9874Standards[m_AudioStandard].Nicam) ? 0x03 : 0x02 ); // We monitor channel (1+2)/2 (not used by now)

  00038	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0003b	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  0003e	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00041	33 d2		 xor	 edx, edx
  00043	83 b9 14 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+20], 0
  0004a	0f 95 c2	 setne	 dl
  0004d	83 c2 02	 add	 edx, 2
  00050	52		 push	 edx
  00051	6a 02		 push	 2
  00053	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 96   : 
; 97   :     // Demodulator settings
; 98   :     // Now program the needed Carrier frequencies...
; 99   :     BYTE Buffer[3];
; 100  :     Buffer[0] = BYTE((m_TDA9874Standards[m_AudioStandard].c1 >> 16) & 0xFF);

  0005b	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0005e	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  00061	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00064	8b 91 08 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+8]
  0006a	c1 ea 10	 shr	 edx, 16			; 00000010H
  0006d	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00073	88 55 fc	 mov	 BYTE PTR _Buffer$[ebp], dl

; 101  :     Buffer[1] = BYTE((m_TDA9874Standards[m_AudioStandard].c1 >> 8 ) & 0xFF);

  00076	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00079	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  0007c	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  0007f	8b 91 08 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+8]
  00085	c1 ea 08	 shr	 edx, 8
  00088	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0008e	88 55 fd	 mov	 BYTE PTR _Buffer$[ebp+1], dl

; 102  :     Buffer[2] = BYTE((m_TDA9874Standards[m_AudioStandard].c1      ) & 0xFF);

  00091	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00094	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  00097	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  0009a	8b 91 08 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+8]
  000a0	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  000a6	88 55 fe	 mov	 BYTE PTR _Buffer$[ebp+2], dl

; 103  :     CI2CDevice::WriteToSubAddress(TDA9874A_C1FRA, Buffer, sizeof(Buffer));

  000a9	6a 03		 push	 3
  000ab	8d 45 fc	 lea	 eax, DWORD PTR _Buffer$[ebp]
  000ae	50		 push	 eax
  000af	6a 03		 push	 3
  000b1	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000b4	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 104  : 
; 105  :     Buffer[0] = BYTE((m_TDA9874Standards[m_AudioStandard].c2 >> 16) & 0xFF);

  000b9	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000bc	8b 51 30	 mov	 edx, DWORD PTR [ecx+48]
  000bf	6b d2 1c	 imul	 edx, 28			; 0000001cH
  000c2	8b 82 0c 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[edx+12]
  000c8	c1 e8 10	 shr	 eax, 16			; 00000010H
  000cb	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  000d0	88 45 fc	 mov	 BYTE PTR _Buffer$[ebp], al

; 106  :     Buffer[1] = BYTE((m_TDA9874Standards[m_AudioStandard].c2 >> 8 ) & 0xFF);

  000d3	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000d6	8b 51 30	 mov	 edx, DWORD PTR [ecx+48]
  000d9	6b d2 1c	 imul	 edx, 28			; 0000001cH
  000dc	8b 82 0c 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[edx+12]
  000e2	c1 e8 08	 shr	 eax, 8
  000e5	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  000ea	88 45 fd	 mov	 BYTE PTR _Buffer$[ebp+1], al

; 107  :     Buffer[2] = BYTE((m_TDA9874Standards[m_AudioStandard].c2      ) & 0xFF);

  000ed	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000f0	8b 51 30	 mov	 edx, DWORD PTR [ecx+48]
  000f3	6b d2 1c	 imul	 edx, 28			; 0000001cH
  000f6	8b 82 0c 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[edx+12]
  000fc	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00101	88 45 fe	 mov	 BYTE PTR _Buffer$[ebp+2], al

; 108  :     CI2CDevice::WriteToSubAddress(TDA9874A_C2FRA, Buffer, sizeof(Buffer));

  00104	6a 03		 push	 3
  00106	8d 4d fc	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  00109	51		 push	 ecx
  0010a	6a 06		 push	 6
  0010c	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0010f	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 109  : 
; 110  :     WriteToSubAddress(TDA9874A_DCR,
; 111  :         m_TDA9874Standards[m_AudioStandard].DCR | ((FastCheck) ? 0x80 : 0x00) ); // Fast Detect if asked to

  00114	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00117	8b 42 30	 mov	 eax, DWORD PTR [edx+48]
  0011a	6b c0 1c	 imul	 eax, 28			; 0000001cH
  0011d	0f b6 88 10 00
	00 00		 movzx	 ecx, BYTE PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[eax+16]
  00124	8b 55 08	 mov	 edx, DWORD PTR _FastCheck$[ebp]
  00127	f7 da		 neg	 edx
  00129	1b d2		 sbb	 edx, edx
  0012b	81 e2 80 00 00
	00		 and	 edx, 128		; 00000080H
  00131	0b ca		 or	 ecx, edx
  00133	51		 push	 ecx
  00134	6a 09		 push	 9
  00136	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00139	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 112  : 
; 113  :     // FM Settings
; 114  :     WriteToSubAddress(TDA9874A_FMER, m_TDA9874Standards[m_AudioStandard].FMER);

  0013e	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00141	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  00144	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00147	0f b6 91 11 00
	00 00		 movzx	 edx, BYTE PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+17]
  0014e	52		 push	 edx
  0014f	6a 0a		 push	 10			; 0000000aH
  00151	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00154	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 115  : 
; 116  :     // Set the signal source...
; 117  :     WriteToSubAddress(TDA9874A_SDACOSR,    (m_TDA9874Standards[m_AudioStandard].Nicam) ? 0x01:0x00); /* Signal source */

  00159	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0015c	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  0015f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00162	33 d2		 xor	 edx, edx
  00164	83 b9 14 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+20], 0
  0016b	0f 95 c2	 setne	 dl
  0016e	0f b6 c2	 movzx	 eax, dl
  00171	50		 push	 eax
  00172	6a 13		 push	 19			; 00000013H
  00174	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00177	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 118  : }

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

; 50   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CTDA9874AudioDecoder@@QAE@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 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??0CTDA9874@@QAE@XZ	; CTDA9874::CTDA9874
  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 20	 add	 ecx, 32			; 00000020H
  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 ??_7CTDA9874AudioDecoder@@6BCTDA9874@@@
  0004d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00050	c7 41 20 00 00
	00 00		 mov	 DWORD PTR [ecx+32], OFFSET ??_7CTDA9874AudioDecoder@@6BCAudioDecoder@@@

; 51   :     m_AudioStandard = 1;

  00057	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0005a	c7 42 30 01 00
	00 00		 mov	 DWORD PTR [edx+48], 1

; 52   :     m_SIF=0;

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

; 53   :     m_AutoDetecting = 0;

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

; 54   :     m_TDA9874Thread = NULL;

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

; 55   :     m_SupportedSoundChannels = SUPPORTEDSOUNDCHANNEL_LANG2;

  0007f	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00082	c7 40 64 08 00
	00 00		 mov	 DWORD PTR [eax+100], 8

; 56   : }

  00089	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00090	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00093	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00096	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0009d	59		 pop	 ecx
  0009e	8b e5		 mov	 esp, ebp
  000a0	5d		 pop	 ebp
  000a1	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CTDA9874AudioDecoder@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CTDA9874@@UAE@XZ	; CTDA9874::~CTDA9874
__unwindfunclet$??0CTDA9874AudioDecoder@@QAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 20	 add	 ecx, 32			; 00000020H
  0000e	e9 00 00 00 00	 jmp	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
__ehhandler$??0CTDA9874AudioDecoder@@QAE@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$??0CTDA9874AudioDecoder@@QAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CTDA9874AudioDecoder@@QAE@XZ ENDP			; CTDA9874AudioDecoder::CTDA9874AudioDecoder
PUBLIC	?StopThread@CTDA9874AudioDecoder@@AAEXXZ	; CTDA9874AudioDecoder::StopThread
; Function compile flags: /Odtp
;	COMDAT ?StopThread@CTDA9874AudioDecoder@@AAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_dwResult$140029 = -4					; size = 4
?StopThread@CTDA9874AudioDecoder@@AAEXXZ PROC		; CTDA9874AudioDecoder::StopThread, COMDAT
; _this$ = ecx

; 472  : {

  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

; 473  :     if (m_TDA9874Thread != NULL)

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 78 48 00	 cmp	 DWORD PTR [eax+72], 0
  00010	74 67		 je	 SHORT $LN3@StopThread@3

; 474  :     {
; 475  :         // Signal the stop
; 476  :         m_StopThread = TRUE;

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

; 477  :         ResumeThread(m_TDA9874Thread);

  0001c	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0001f	8b 42 48	 mov	 eax, DWORD PTR [edx+72]
  00022	50		 push	 eax
  00023	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ResumeThread@4

; 478  : 
; 479  :         // Wait one second for the thread to exit gracefully
; 480  :         DWORD dwResult = WaitForSingleObject(m_TDA9874Thread, 1000);

  00029	68 e8 03 00 00	 push	 1000			; 000003e8H
  0002e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00031	8b 51 48	 mov	 edx, DWORD PTR [ecx+72]
  00034	52		 push	 edx
  00035	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__WaitForSingleObject@8
  0003b	89 45 fc	 mov	 DWORD PTR _dwResult$140029[ebp], eax

; 481  : 
; 482  :         if (dwResult != WAIT_OBJECT_0)

  0003e	83 7d fc 00	 cmp	 DWORD PTR _dwResult$140029[ebp], 0
  00042	74 1e		 je	 SHORT $LN1@StopThread@3

; 483  :         {
; 484  :             LOG(1,_T("TDA9874 detect loop did not terminate gracefully: terminating!"));

  00044	68 00 00 00 00	 push	 OFFSET ??_C@_1HO@MNBIABBC@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAd?$AAi?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAt?$AAe?$AAr?$AAm@
  00049	6a 01		 push	 1
  0004b	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00050	83 c4 08	 add	 esp, 8

; 485  :             TerminateThread(m_TDA9874Thread, 0);

  00053	6a 00		 push	 0
  00055	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00058	8b 48 48	 mov	 ecx, DWORD PTR [eax+72]
  0005b	51		 push	 ecx
  0005c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__TerminateThread@8
$LN1@StopThread@3:

; 486  :         }
; 487  : 
; 488  :         CloseHandle(m_TDA9874Thread);

  00062	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00065	8b 42 48	 mov	 eax, DWORD PTR [edx+72]
  00068	50		 push	 eax
  00069	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CloseHandle@4

; 489  :         m_TDA9874Thread = NULL;

  0006f	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00072	c7 41 48 00 00
	00 00		 mov	 DWORD PTR [ecx+72], 0
$LN3@StopThread@3:

; 490  :     }
; 491  : }

  00079	8b e5		 mov	 esp, ebp
  0007b	5d		 pop	 ebp
  0007c	c3		 ret	 0
?StopThread@CTDA9874AudioDecoder@@AAEXXZ ENDP		; CTDA9874AudioDecoder::StopThread
_TEXT	ENDS
PUBLIC	?Standard2Index@CTDA9874AudioDecoder@@AAEHJ@Z	; CTDA9874AudioDecoder::Standard2Index
; Function compile flags: /Odtp
;	COMDAT ?Standard2Index@CTDA9874AudioDecoder@@AAEHJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_i$139927 = -4						; size = 4
_Standard$ = 8						; size = 4
?Standard2Index@CTDA9874AudioDecoder@@AAEHJ@Z PROC	; CTDA9874AudioDecoder::Standard2Index, COMDAT
; _this$ = ecx

; 224  : {

  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

; 225  :     LOG(1, _T("TDA9874: standard2index"), Standard);

  00009	8b 45 08	 mov	 eax, DWORD PTR _Standard$[ebp]
  0000c	50		 push	 eax
  0000d	68 00 00 00 00	 push	 OFFSET ??_C@_1DA@DMKBFMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA2?$AAi?$AAn?$AAd?$AAe?$AAx?$AA?$AA@
  00012	6a 01		 push	 1
  00014	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00019	83 c4 0c	 add	 esp, 12			; 0000000cH

; 226  :     for(int i = 0; i < GetNumAudioStandards(); ++i)

  0001c	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR _i$139927[ebp], 0
  00023	eb 09		 jmp	 SHORT $LN4@Standard2I@2
$LN3@Standard2I@2:
  00025	8b 4d fc	 mov	 ecx, DWORD PTR _i$139927[ebp]
  00028	83 c1 01	 add	 ecx, 1
  0002b	89 4d fc	 mov	 DWORD PTR _i$139927[ebp], ecx
$LN4@Standard2I@2:
  0002e	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00031	83 c1 20	 add	 ecx, 32			; 00000020H
  00034	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00037	8b 42 20	 mov	 eax, DWORD PTR [edx+32]
  0003a	8b 50 2c	 mov	 edx, DWORD PTR [eax+44]
  0003d	ff d2		 call	 edx
  0003f	39 45 fc	 cmp	 DWORD PTR _i$139927[ebp], eax
  00042	7d 18		 jge	 SHORT $LN2@Standard2I@2

; 227  :     {
; 228  :         if(m_TDA9874Standards[i].Standard == Standard)

  00044	8b 45 fc	 mov	 eax, DWORD PTR _i$139927[ebp]
  00047	6b c0 1c	 imul	 eax, 28			; 0000001cH
  0004a	8b 88 04 00 00
	00		 mov	 ecx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[eax+4]
  00050	3b 4d 08	 cmp	 ecx, DWORD PTR _Standard$[ebp]
  00053	75 05		 jne	 SHORT $LN1@Standard2I@2

; 229  :         {
; 230  :             return i;

  00055	8b 45 fc	 mov	 eax, DWORD PTR _i$139927[ebp]
  00058	eb 05		 jmp	 SHORT $LN5@Standard2I@2
$LN1@Standard2I@2:

; 231  :         }
; 232  :     }

  0005a	eb c9		 jmp	 SHORT $LN3@Standard2I@2
$LN2@Standard2I@2:

; 233  : 
; 234  :     return -1;

  0005c	83 c8 ff	 or	 eax, -1
$LN5@Standard2I@2:

; 235  : }

  0005f	8b e5		 mov	 esp, ebp
  00061	5d		 pop	 ebp
  00062	c2 04 00	 ret	 4
?Standard2Index@CTDA9874AudioDecoder@@AAEHJ@Z ENDP	; CTDA9874AudioDecoder::Standard2Index
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?GetAudioStandardMinorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Standard$ = 8						; size = 4
?GetAudioStandardMinorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z PROC ; CTDA9874AudioDecoder::GetAudioStandardMinorCarrier, COMDAT
; _this$ = ecx

; 218  : {

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

; 219  :     LOG(1,_T("getMinorCarrier, standard=%d"),Standard);

  00007	8b 45 08	 mov	 eax, DWORD PTR _Standard$[ebp]
  0000a	50		 push	 eax
  0000b	68 00 00 00 00	 push	 OFFSET ??_C@_1DK@MMJOJIBK@?$AAg?$AAe?$AAt?$AAM?$AAi?$AAn?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@
  00010	6a 01		 push	 1
  00012	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00017	83 c4 0c	 add	 esp, 12			; 0000000cH

; 220  :     return m_TDA9874Standards[Standard].c2;

  0001a	8b 4d 08	 mov	 ecx, DWORD PTR _Standard$[ebp]
  0001d	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00020	8b 81 0c 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+12]

; 221  : }

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

; 212  : {

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

; 213  :     LOG(1,_T("getMajorCarrier, standard=%d"),Standard);

  00007	8b 45 08	 mov	 eax, DWORD PTR _Standard$[ebp]
  0000a	50		 push	 eax
  0000b	68 00 00 00 00	 push	 OFFSET ??_C@_1DK@MAPHPBGE@?$AAg?$AAe?$AAt?$AAM?$AAa?$AAj?$AAo?$AAr?$AAC?$AAa?$AAr?$AAr?$AAi?$AAe?$AAr?$AA?0?$AA?5?$AAs?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@
  00010	6a 01		 push	 1
  00012	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00017	83 c4 0c	 add	 esp, 12			; 0000000cH

; 214  :     return m_TDA9874Standards[Standard].c1;

  0001a	8b 4d 08	 mov	 ecx, DWORD PTR _Standard$[ebp]
  0001d	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00020	8b 81 08 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+8]

; 215  : }

  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c2 04 00	 ret	 4
?GetAudioStandardMajorCarrier@CTDA9874AudioDecoder@@UAEJJ@Z ENDP ; CTDA9874AudioDecoder::GetAudioStandardMajorCarrier
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetAudioInput@CTDA9874AudioDecoder@@UAEXW4eAudioInput@@@Z
_TEXT	SEGMENT
tv74 = -8						; size = 4
_this$ = -4						; size = 4
_AudioInput$ = 8					; size = 4
?SetAudioInput@CTDA9874AudioDecoder@@UAEXW4eAudioInput@@@Z PROC ; CTDA9874AudioDecoder::SetAudioInput, COMDAT
; _this$ = ecx

; 191  : {

  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

; 192  :     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

; 193  :     LOG(1, _T("TDA9874: SetAudioInput:%d"), AudioInput);

  00015	8b 4d 08	 mov	 ecx, DWORD PTR _AudioInput$[ebp]
  00018	51		 push	 ecx
  00019	68 00 00 00 00	 push	 OFFSET ??_C@_1DE@LMKDEFHK@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?3?$AA?$CF?$AAd?$AA?$AA@
  0001e	6a 01		 push	 1
  00020	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00025	83 c4 0c	 add	 esp, 12			; 0000000cH

; 194  : 
; 195  :     switch(AudioInput)

  00028	8b 55 08	 mov	 edx, DWORD PTR _AudioInput$[ebp]
  0002b	89 55 f8	 mov	 DWORD PTR tv74[ebp], edx
  0002e	83 7d f8 00	 cmp	 DWORD PTR tv74[ebp], 0
  00032	7e 1c		 jle	 SHORT $LN1@SetAudioIn@2
  00034	83 7d f8 05	 cmp	 DWORD PTR tv74[ebp], 5
  00038	7e 02		 jle	 SHORT $LN2@SetAudioIn@2
  0003a	eb 14		 jmp	 SHORT $LN1@SetAudioIn@2
$LN2@SetAudioIn@2:

; 196  :     {
; 197  :     case AUDIOINPUT_RADIO:
; 198  :     case AUDIOINPUT_STEREO:
; 199  :     case AUDIOINPUT_INTERNAL:
; 200  :     case AUDIOINPUT_EXTERNAL:
; 201  :     case AUDIOINPUT_MUTE:
; 202  :         WriteToSubAddress(TDA9874A_AMCONR, 0xFF); // mute enable ALL outs

  0003c	68 ff 00 00 00	 push	 255			; 000000ffH
  00041	6a 12		 push	 18			; 00000012H
  00043	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	83 e9 20	 sub	 ecx, 32			; 00000020H
  00049	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 203  :         break;

  0004e	eb 12		 jmp	 SHORT $LN5@SetAudioIn@2
$LN1@SetAudioIn@2:

; 204  :     default:
; 205  :         WriteToSubAddress(TDA9874A_AMCONR, 0xF9); // unmute enable ALL outs

  00050	68 f9 00 00 00	 push	 249			; 000000f9H
  00055	6a 12		 push	 18			; 00000012H
  00057	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0005a	83 e9 20	 sub	 ecx, 32			; 00000020H
  0005d	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress
$LN5@SetAudioIn@2:

; 206  :         //Audio_SetUserMute(FALSE);
; 207  :         break;
; 208  :     }
; 209  : }

  00062	8b e5		 mov	 esp, ebp
  00064	5d		 pop	 ebp
  00065	c2 04 00	 ret	 4
?SetAudioInput@CTDA9874AudioDecoder@@UAEXW4eAudioInput@@@Z ENDP ; CTDA9874AudioDecoder::SetAudioInput
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?IsAudioChannelDetected@CTDA9874AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z
_TEXT	SEGMENT
tv67 = -12						; size = 4
_this$ = -8						; size = 4
_SoundChannel$ = -4					; size = 4
_DesiredAudioChannel$ = 8				; size = 4
?IsAudioChannelDetected@CTDA9874AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z PROC ; CTDA9874AudioDecoder::IsAudioChannelDetected, COMDAT
; _this$ = ecx

; 169  : {

  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

; 170  :     LOG(1,_T("TDA9874: IsAudioChannelDetected:%d"),DesiredAudioChannel);

  00009	8b 45 08	 mov	 eax, DWORD PTR _DesiredAudioChannel$[ebp]
  0000c	50		 push	 eax
  0000d	68 00 00 00 00	 push	 OFFSET ??_C@_1EG@GFIJOFL@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAI?$AAs?$AAA?$AAu?$AAd?$AAi?$AAo?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?3@
  00012	6a 01		 push	 1
  00014	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00019	83 c4 0c	 add	 esp, 12			; 0000000cH

; 171  :     eSoundChannel SoundChannel = SOUNDCHANNEL_MONO;

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

; 172  :     switch (DesiredAudioChannel)

  00023	8b 4d 08	 mov	 ecx, DWORD PTR _DesiredAudioChannel$[ebp]
  00026	89 4d f4	 mov	 DWORD PTR tv67[ebp], ecx
  00029	83 7d f4 02	 cmp	 DWORD PTR tv67[ebp], 2
  0002d	74 0e		 je	 SHORT $LN6@IsAudioCha@4
  0002f	83 7d f4 03	 cmp	 DWORD PTR tv67[ebp], 3
  00033	74 1b		 je	 SHORT $LN4@IsAudioCha@4
  00035	83 7d f4 04	 cmp	 DWORD PTR tv67[ebp], 4
  00039	74 28		 je	 SHORT $LN2@IsAudioCha@4
  0003b	eb 37		 jmp	 SHORT $LN7@IsAudioCha@4
$LN6@IsAudioCha@4:

; 173  :     {
; 174  :     case SOUNDCHANNEL_STEREO:
; 175  :         if (m_SupportedSoundChannels & SUPPORTEDSOUNDCHANNEL_STEREO)

  0003d	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00040	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  00043	83 e0 02	 and	 eax, 2
  00046	74 06		 je	 SHORT $LN5@IsAudioCha@4

; 176  :             SoundChannel = DesiredAudioChannel;

  00048	8b 4d 08	 mov	 ecx, DWORD PTR _DesiredAudioChannel$[ebp]
  0004b	89 4d fc	 mov	 DWORD PTR _SoundChannel$[ebp], ecx
$LN5@IsAudioCha@4:

; 177  :         break;

  0004e	eb 24		 jmp	 SHORT $LN7@IsAudioCha@4
$LN4@IsAudioCha@4:

; 178  :     case SOUNDCHANNEL_LANGUAGE1:
; 179  :         if (m_SupportedSoundChannels & SUPPORTEDSOUNDCHANNEL_LANG1)

  00050	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00053	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  00056	83 e0 04	 and	 eax, 4
  00059	74 06		 je	 SHORT $LN3@IsAudioCha@4

; 180  :             SoundChannel = DesiredAudioChannel;

  0005b	8b 4d 08	 mov	 ecx, DWORD PTR _DesiredAudioChannel$[ebp]
  0005e	89 4d fc	 mov	 DWORD PTR _SoundChannel$[ebp], ecx
$LN3@IsAudioCha@4:

; 181  :         break;

  00061	eb 11		 jmp	 SHORT $LN7@IsAudioCha@4
$LN2@IsAudioCha@4:

; 182  :     case SOUNDCHANNEL_LANGUAGE2:
; 183  :         if (m_SupportedSoundChannels & SUPPORTEDSOUNDCHANNEL_LANG2)

  00063	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00066	8b 42 44	 mov	 eax, DWORD PTR [edx+68]
  00069	83 e0 08	 and	 eax, 8
  0006c	74 06		 je	 SHORT $LN7@IsAudioCha@4

; 184  :             SoundChannel = DesiredAudioChannel;

  0006e	8b 4d 08	 mov	 ecx, DWORD PTR _DesiredAudioChannel$[ebp]
  00071	89 4d fc	 mov	 DWORD PTR _SoundChannel$[ebp], ecx
$LN7@IsAudioCha@4:

; 185  :         break;
; 186  :     }
; 187  :     return SoundChannel;

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

; 188  : }

  00077	8b e5		 mov	 esp, ebp
  00079	5d		 pop	 ebp
  0007a	c2 04 00	 ret	 4
?IsAudioChannelDetected@CTDA9874AudioDecoder@@UAE?AW4eSoundChannel@@W42@@Z ENDP ; CTDA9874AudioDecoder::IsAudioChannelDetected
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetSoundChannel@CTDA9874AudioDecoder@@UAEXW4eSoundChannel@@@Z
_TEXT	SEGMENT
tv142 = -28						; size = 4
tv143 = -24						; size = 4
tv144 = -20						; size = 4
tv94 = -16						; size = 4
tv95 = -12						; size = 4
_this$ = -8						; size = 4
_audio$ = -4						; size = 4
_SoundChannel$ = 8					; size = 4
?SetSoundChannel@CTDA9874AudioDecoder@@UAEXW4eSoundChannel@@@Z PROC ; CTDA9874AudioDecoder::SetSoundChannel, COMDAT
; _this$ = ecx

; 149  : {

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

; 150  :     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

; 151  :     int audio = SoundChannel;

  00015	8b 4d 08	 mov	 ecx, DWORD PTR _SoundChannel$[ebp]
  00018	89 4d fc	 mov	 DWORD PTR _audio$[ebp], ecx

; 152  :     LOG(1, _T("TDA9874: SetSoundChannel:%d"), SoundChannel);

  0001b	8b 55 08	 mov	 edx, DWORD PTR _SoundChannel$[ebp]
  0001e	52		 push	 edx
  0001f	68 00 00 00 00	 push	 OFFSET ??_C@_1DI@DNKCMNIG@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAS?$AAo?$AAu?$AAn?$AAd?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?3?$AA?$CF?$AAd?$AA?$AA@
  00024	6a 01		 push	 1
  00026	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0002b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 153  : 
; 154  :     // FM settings
; 155  :     WriteToSubAddress(TDA9874A_FMMR,
; 156  :         (  audio == SOUNDCHANNEL_MONO ) ? 0x00 :
; 157  :         (( audio == SOUNDCHANNEL_LANGUAGE1 || audio == SOUNDCHANNEL_LANGUAGE2 ) ? 0x02 :
; 158  :         m_TDA9874Standards[m_AudioStandard].FMMR) );

  0002e	83 7d fc 01	 cmp	 DWORD PTR _audio$[ebp], 1
  00032	75 09		 jne	 SHORT $LN5@SetSoundCh@3
  00034	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR tv95[ebp], 0
  0003b	eb 2e		 jmp	 SHORT $LN6@SetSoundCh@3
$LN5@SetSoundCh@3:
  0003d	83 7d fc 03	 cmp	 DWORD PTR _audio$[ebp], 3
  00041	74 1b		 je	 SHORT $LN3@SetSoundCh@3
  00043	83 7d fc 04	 cmp	 DWORD PTR _audio$[ebp], 4
  00047	74 15		 je	 SHORT $LN3@SetSoundCh@3
  00049	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0004c	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  0004f	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  00052	0f b6 91 12 00
	00 00		 movzx	 edx, BYTE PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+18]
  00059	89 55 f0	 mov	 DWORD PTR tv94[ebp], edx
  0005c	eb 07		 jmp	 SHORT $LN4@SetSoundCh@3
$LN3@SetSoundCh@3:
  0005e	c7 45 f0 02 00
	00 00		 mov	 DWORD PTR tv94[ebp], 2
$LN4@SetSoundCh@3:
  00065	8b 45 f0	 mov	 eax, DWORD PTR tv94[ebp]
  00068	89 45 f4	 mov	 DWORD PTR tv95[ebp], eax
$LN6@SetSoundCh@3:
  0006b	0f b6 4d f4	 movzx	 ecx, BYTE PTR tv95[ebp]
  0006f	51		 push	 ecx
  00070	6a 0b		 push	 11			; 0000000bH
  00072	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00075	83 e9 20	 sub	 ecx, 32			; 00000020H
  00078	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 159  : 
; 160  :     // Select the proper outs.
; 161  :     WriteToSubAddress(TDA9874A_AOSR,
; 162  :         (  audio == SOUNDCHANNEL_MONO )        ? 0x40 :
; 163  :         (( audio == SOUNDCHANNEL_STEREO  )    ? 0x00 :
; 164  :         (( audio == SOUNDCHANNEL_LANGUAGE1  ) ? 0x10 :
; 165  :         (( audio == SOUNDCHANNEL_LANGUAGE2  ) ? 0x20 : 0x00 ))) );

  0007d	83 7d fc 01	 cmp	 DWORD PTR _audio$[ebp], 1
  00081	75 09		 jne	 SHORT $LN11@SetSoundCh@3
  00083	c7 45 ec 40 00
	00 00		 mov	 DWORD PTR tv144[ebp], 64 ; 00000040H
  0008a	eb 3c		 jmp	 SHORT $LN12@SetSoundCh@3
$LN11@SetSoundCh@3:
  0008c	83 7d fc 02	 cmp	 DWORD PTR _audio$[ebp], 2
  00090	75 09		 jne	 SHORT $LN9@SetSoundCh@3
  00092	c7 45 e8 00 00
	00 00		 mov	 DWORD PTR tv143[ebp], 0
  00099	eb 27		 jmp	 SHORT $LN10@SetSoundCh@3
$LN9@SetSoundCh@3:
  0009b	83 7d fc 03	 cmp	 DWORD PTR _audio$[ebp], 3
  0009f	75 09		 jne	 SHORT $LN7@SetSoundCh@3
  000a1	c7 45 e4 10 00
	00 00		 mov	 DWORD PTR tv142[ebp], 16 ; 00000010H
  000a8	eb 12		 jmp	 SHORT $LN8@SetSoundCh@3
$LN7@SetSoundCh@3:
  000aa	33 d2		 xor	 edx, edx
  000ac	83 7d fc 04	 cmp	 DWORD PTR _audio$[ebp], 4
  000b0	0f 95 c2	 setne	 dl
  000b3	83 ea 01	 sub	 edx, 1
  000b6	83 e2 20	 and	 edx, 32			; 00000020H
  000b9	89 55 e4	 mov	 DWORD PTR tv142[ebp], edx
$LN8@SetSoundCh@3:
  000bc	8b 45 e4	 mov	 eax, DWORD PTR tv142[ebp]
  000bf	89 45 e8	 mov	 DWORD PTR tv143[ebp], eax
$LN10@SetSoundCh@3:
  000c2	8b 4d e8	 mov	 ecx, DWORD PTR tv143[ebp]
  000c5	89 4d ec	 mov	 DWORD PTR tv144[ebp], ecx
$LN12@SetSoundCh@3:
  000c8	0f b6 55 ec	 movzx	 edx, BYTE PTR tv144[ebp]
  000cc	52		 push	 edx
  000cd	6a 14		 push	 20			; 00000014H
  000cf	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  000d2	83 e9 20	 sub	 ecx, 32			; 00000020H
  000d5	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 166  : }

  000da	8b e5		 mov	 esp, ebp
  000dc	5d		 pop	 ebp
  000dd	c2 04 00	 ret	 4
?SetSoundChannel@CTDA9874AudioDecoder@@UAEXW4eSoundChannel@@@Z ENDP ; CTDA9874AudioDecoder::SetSoundChannel
_TEXT	ENDS
PUBLIC	?SetChipMode@CTDA9874AudioDecoder@@AAEXW4eSoundChannel@@@Z ; CTDA9874AudioDecoder::SetChipMode
; Function compile flags: /Odtp
;	COMDAT ?SetChipMode@CTDA9874AudioDecoder@@AAEXW4eSoundChannel@@@Z
_TEXT	SEGMENT
tv139 = -24						; size = 4
tv140 = -20						; size = 4
tv141 = -16						; size = 4
tv85 = -12						; size = 4
tv86 = -8						; size = 4
_this$ = -4						; size = 4
_audio$ = 8						; size = 4
?SetChipMode@CTDA9874AudioDecoder@@AAEXW4eSoundChannel@@@Z PROC ; CTDA9874AudioDecoder::SetChipMode, COMDAT
; _this$ = ecx

; 122  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 123  :     LOG(1, _T("SetChipMode audio=%d"), (int)audio);

  00009	8b 45 08	 mov	 eax, DWORD PTR _audio$[ebp]
  0000c	50		 push	 eax
  0000d	68 00 00 00 00	 push	 OFFSET ??_C@_1CK@EDOAKLMH@?$AAS?$AAe?$AAt?$AAC?$AAh?$AAi?$AAp?$AAM?$AAo?$AAd?$AAe?$AA?5?$AAa?$AAu?$AAd?$AAi?$AAo?$AA?$DN?$AA?$CF?$AAd?$AA?$AA@
  00012	6a 01		 push	 1
  00014	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00019	83 c4 0c	 add	 esp, 12			; 0000000cH

; 124  : 
; 125  :     // FM settings
; 126  :     WriteToSubAddress(TDA9874A_FMMR,
; 127  :         (  audio == SOUNDCHANNEL_STEREO ) ? 0x00 :
; 128  :         (( audio == SOUNDCHANNEL_LANGUAGE1 || audio == SOUNDCHANNEL_LANGUAGE2) ? 0x02 :
; 129  :         m_TDA9874Standards[m_AudioStandard].FMMR) );

  0001c	83 7d 08 02	 cmp	 DWORD PTR _audio$[ebp], 2
  00020	75 09		 jne	 SHORT $LN5@SetChipMod
  00022	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv86[ebp], 0
  00029	eb 2e		 jmp	 SHORT $LN6@SetChipMod
$LN5@SetChipMod:
  0002b	83 7d 08 03	 cmp	 DWORD PTR _audio$[ebp], 3
  0002f	74 1b		 je	 SHORT $LN3@SetChipMod
  00031	83 7d 08 04	 cmp	 DWORD PTR _audio$[ebp], 4
  00035	74 15		 je	 SHORT $LN3@SetChipMod
  00037	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003a	8b 51 30	 mov	 edx, DWORD PTR [ecx+48]
  0003d	6b d2 1c	 imul	 edx, 28			; 0000001cH
  00040	0f b6 82 12 00
	00 00		 movzx	 eax, BYTE PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[edx+18]
  00047	89 45 f4	 mov	 DWORD PTR tv85[ebp], eax
  0004a	eb 07		 jmp	 SHORT $LN4@SetChipMod
$LN3@SetChipMod:
  0004c	c7 45 f4 02 00
	00 00		 mov	 DWORD PTR tv85[ebp], 2
$LN4@SetChipMod:
  00053	8b 4d f4	 mov	 ecx, DWORD PTR tv85[ebp]
  00056	89 4d f8	 mov	 DWORD PTR tv86[ebp], ecx
$LN6@SetChipMod:
  00059	0f b6 55 f8	 movzx	 edx, BYTE PTR tv86[ebp]
  0005d	52		 push	 edx
  0005e	6a 0b		 push	 11			; 0000000bH
  00060	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00063	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 130  : 
; 131  :     // Select the proper outs.
; 132  :     WriteToSubAddress(TDA9874A_AOSR,
; 133  :         (  audio == SOUNDCHANNEL_MONO) ? ((m_AudioStandard==8)?0x43:0x40) :
; 134  :         (( audio == SOUNDCHANNEL_STEREO ) ? 0x00 :
; 135  :         (( audio == SOUNDCHANNEL_LANGUAGE1 ) ? 0x10 :
; 136  :         (( audio == SOUNDCHANNEL_LANGUAGE2 ) ? 0x20 : 0x00 ))) );

  00068	83 7d 08 01	 cmp	 DWORD PTR _audio$[ebp], 1
  0006c	75 18		 jne	 SHORT $LN11@SetChipMod
  0006e	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00071	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  00074	83 e9 08	 sub	 ecx, 8
  00077	f7 d9		 neg	 ecx
  00079	1b c9		 sbb	 ecx, ecx
  0007b	83 e1 fd	 and	 ecx, -3			; fffffffdH
  0007e	83 c1 43	 add	 ecx, 67			; 00000043H
  00081	89 4d f0	 mov	 DWORD PTR tv141[ebp], ecx
  00084	eb 3c		 jmp	 SHORT $LN12@SetChipMod
$LN11@SetChipMod:
  00086	83 7d 08 02	 cmp	 DWORD PTR _audio$[ebp], 2
  0008a	75 09		 jne	 SHORT $LN9@SetChipMod
  0008c	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv140[ebp], 0
  00093	eb 27		 jmp	 SHORT $LN10@SetChipMod
$LN9@SetChipMod:
  00095	83 7d 08 03	 cmp	 DWORD PTR _audio$[ebp], 3
  00099	75 09		 jne	 SHORT $LN7@SetChipMod
  0009b	c7 45 e8 10 00
	00 00		 mov	 DWORD PTR tv139[ebp], 16 ; 00000010H
  000a2	eb 12		 jmp	 SHORT $LN8@SetChipMod
$LN7@SetChipMod:
  000a4	33 d2		 xor	 edx, edx
  000a6	83 7d 08 04	 cmp	 DWORD PTR _audio$[ebp], 4
  000aa	0f 95 c2	 setne	 dl
  000ad	83 ea 01	 sub	 edx, 1
  000b0	83 e2 20	 and	 edx, 32			; 00000020H
  000b3	89 55 e8	 mov	 DWORD PTR tv139[ebp], edx
$LN8@SetChipMod:
  000b6	8b 45 e8	 mov	 eax, DWORD PTR tv139[ebp]
  000b9	89 45 ec	 mov	 DWORD PTR tv140[ebp], eax
$LN10@SetChipMod:
  000bc	8b 4d ec	 mov	 ecx, DWORD PTR tv140[ebp]
  000bf	89 4d f0	 mov	 DWORD PTR tv141[ebp], ecx
$LN12@SetChipMod:
  000c2	0f b6 55 f0	 movzx	 edx, BYTE PTR tv141[ebp]
  000c6	52		 push	 edx
  000c7	6a 14		 push	 20			; 00000014H
  000c9	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000cc	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 137  : 
; 138  :     // Fix Me
; 139  :     // Si mode mono => On passe en AM/FM
; 140  :     //WriteToSubAddress(TDA9874A_SDACOSR, (( (m_TDA9874Standards[m_AudioStandard].Nicam) && (desiredam!=SOUNDCHANNEL_MONO) )?0x01:0x00));
; 141  : }

  000d1	8b e5		 mov	 esp, ebp
  000d3	5d		 pop	 ebp
  000d4	c2 04 00	 ret	 4
?SetChipMode@CTDA9874AudioDecoder@@AAEXW4eSoundChannel@@@Z ENDP ; CTDA9874AudioDecoder::SetChipMode
_TEXT	ENDS
PUBLIC	?Initialize@CTDA9874AudioDecoder@@QAEHXZ	; CTDA9874AudioDecoder::Initialize
; Function compile flags: /Odtp
;	COMDAT ?Initialize@CTDA9874AudioDecoder@@QAEHXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Initialize@CTDA9874AudioDecoder@@QAEHXZ PROC		; CTDA9874AudioDecoder::Initialize, COMDAT
; _this$ = ecx

; 64   : {

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

; 65   :     WriteToSubAddress(TDA9874A_GCONR, 0x10);    // Reset

  00007	6a 10		 push	 16			; 00000010H
  00009	6a 01		 push	 1
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 66   :     WriteToSubAddress(TDA9874A_AGCGR, 0x00);    // 0 dB

  00013	6a 00		 push	 0
  00015	6a 00		 push	 0
  00017	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001a	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 67   : 
; 68   :     // Muting
; 69   :     WriteToSubAddress(TDA9874A_AMCONR, 0xF9);    // mute enable ALL outs

  0001f	68 f9 00 00 00	 push	 249			; 000000f9H
  00024	6a 12		 push	 18			; 00000012H
  00026	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 70   : 
; 71   :     // Channel Gain settings
; 72   :     WriteToSubAddress(TDA9874A_C1OLAR, 0x00);    // 0 dB

  0002e	6a 00		 push	 0
  00030	6a 0c		 push	 12			; 0000000cH
  00032	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00035	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 73   :     WriteToSubAddress(TDA9874A_C2OLAR, 0x00);    // 0 dB

  0003a	6a 00		 push	 0
  0003c	6a 0d		 push	 13			; 0000000dH
  0003e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 74   : 
; 75   :     // NICAM settings
; 76   :     WriteToSubAddress(TDA9874A_NCONR, 0x00);    // Enable NICAM automute on BER (switchs to mono), and NICAM deemphasis. Should be selected by user based on needs

  00046	6a 00		 push	 0
  00048	6a 0e		 push	 14			; 0000000eH
  0004a	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004d	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 77   :     WriteToSubAddress(TDA9874A_NOLAR, 0x0a);    // 10 dB

  00052	6a 0a		 push	 10			; 0000000aH
  00054	6a 0f		 push	 15			; 0000000fH
  00056	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00059	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 78   :     WriteToSubAddress(TDA9874A_NLELR, 0x14);    // NICAM lower error limit

  0005e	6a 14		 push	 20			; 00000014H
  00060	6a 10		 push	 16			; 00000010H
  00062	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00065	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 79   :     WriteToSubAddress(TDA9874A_NUELR, 0x50);    // NICAM upper error limit

  0006a	6a 50		 push	 80			; 00000050H
  0006c	6a 11		 push	 17			; 00000011H
  0006e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00071	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 80   : 
; 81   :     // Start with something!
; 82   :     SetChipMode(SOUNDCHANNEL_STEREO);

  00076	6a 02		 push	 2
  00078	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007b	e8 00 00 00 00	 call	 ?SetChipMode@CTDA9874AudioDecoder@@AAEXW4eSoundChannel@@@Z ; CTDA9874AudioDecoder::SetChipMode

; 83   : 
; 84   :     // Fix Me
; 85   :     //SetAudioConnector(AudioConTuner);
; 86   :     SetChipStandard(FALSE);

  00080	6a 00		 push	 0
  00082	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00085	e8 00 00 00 00	 call	 ?SetChipStandard@CTDA9874AudioDecoder@@AAEXH@Z ; CTDA9874AudioDecoder::SetChipStandard

; 87   :     // Reinit autodetection
; 88   :     return TRUE;

  0008a	b8 01 00 00 00	 mov	 eax, 1

; 89   : }

  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
?Initialize@CTDA9874AudioDecoder@@QAEHXZ ENDP		; CTDA9874AudioDecoder::Initialize
_TEXT	ENDS
PUBLIC	??1CTDA9874AudioDecoder@@UAE@XZ			; CTDA9874AudioDecoder::~CTDA9874AudioDecoder
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CTDA9874AudioDecoder@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CTDA9874AudioDecoder@@UAE@XZ$0
	DD	00H
	DD	FLAT:__unwindfunclet$??1CTDA9874AudioDecoder@@UAE@XZ$1
__ehfuncinfo$??1CTDA9874AudioDecoder@@UAE@XZ DD 019930522H
	DD	02H
	DD	FLAT:__unwindtable$??1CTDA9874AudioDecoder@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CTDA9874AudioDecoder@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CTDA9874AudioDecoder@@UAE@XZ PROC			; CTDA9874AudioDecoder::~CTDA9874AudioDecoder, COMDAT
; _this$ = ecx

; 59   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CTDA9874AudioDecoder@@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 ??_7CTDA9874AudioDecoder@@6BCTDA9874@@@
  0002f	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00032	c7 41 20 00 00
	00 00		 mov	 DWORD PTR [ecx+32], OFFSET ??_7CTDA9874AudioDecoder@@6BCAudioDecoder@@@
  00039	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 1

; 60   :     StopThread();

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

; 61   : }

  00048	c6 45 fc 00	 mov	 BYTE PTR __$EHRec$[ebp+8], 0
  0004c	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004f	83 c1 20	 add	 ecx, 32			; 00000020H
  00052	e8 00 00 00 00	 call	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
  00057	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0005e	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00061	e8 00 00 00 00	 call	 ??1CTDA9874@@UAE@XZ	; CTDA9874::~CTDA9874
  00066	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00069	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00070	59		 pop	 ecx
  00071	8b e5		 mov	 esp, ebp
  00073	5d		 pop	 ebp
  00074	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CTDA9874AudioDecoder@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CTDA9874@@UAE@XZ	; CTDA9874::~CTDA9874
__unwindfunclet$??1CTDA9874AudioDecoder@@UAE@XZ$1:
  00008	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0000b	83 c1 20	 add	 ecx, 32			; 00000020H
  0000e	e9 00 00 00 00	 jmp	 ??1CAudioDecoder@@UAE@XZ ; CAudioDecoder::~CAudioDecoder
__ehhandler$??1CTDA9874AudioDecoder@@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$??1CTDA9874AudioDecoder@@UAE@XZ
  00029	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CTDA9874AudioDecoder@@UAE@XZ ENDP			; CTDA9874AudioDecoder::~CTDA9874AudioDecoder
; Function compile flags: /Odtp
;	COMDAT ??_GCTDA9874AudioDecoder@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCTDA9874AudioDecoder@@UAEPAXI@Z PROC		; CTDA9874AudioDecoder::`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	 ??1CTDA9874AudioDecoder@@UAE@XZ ; CTDA9874AudioDecoder::~CTDA9874AudioDecoder
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@428
  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@428:
  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
??_GCTDA9874AudioDecoder@@UAEPAXI@Z ENDP		; CTDA9874AudioDecoder::`scalar deleting destructor'
; Function compile flags: /Odtp
;	COMDAT ?GetAudioStandardName@CTDA9874AudioDecoder@@UAEPB_WJ@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_index$ = -4						; size = 4
_Standard$ = 8						; size = 4
?GetAudioStandardName@CTDA9874AudioDecoder@@UAEPB_WJ@Z PROC ; CTDA9874AudioDecoder::GetAudioStandardName, COMDAT
; _this$ = ecx

; 271  : {

  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

; 272  :     int index = Standard2Index(Standard);

  00009	8b 45 08	 mov	 eax, DWORD PTR _Standard$[ebp]
  0000c	50		 push	 eax
  0000d	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00010	83 e9 20	 sub	 ecx, 32			; 00000020H
  00013	e8 00 00 00 00	 call	 ?Standard2Index@CTDA9874AudioDecoder@@AAEHJ@Z ; CTDA9874AudioDecoder::Standard2Index
  00018	89 45 fc	 mov	 DWORD PTR _index$[ebp], eax

; 273  : 
; 274  :     if(index < 0)

  0001b	83 7d fc 00	 cmp	 DWORD PTR _index$[ebp], 0
  0001f	7d 04		 jge	 SHORT $LN1@GetAudioSt@16

; 275  :     {
; 276  :         return NULL;

  00021	33 c0		 xor	 eax, eax
  00023	eb 0c		 jmp	 SHORT $LN2@GetAudioSt@16
$LN1@GetAudioSt@16:

; 277  :     }
; 278  : 
; 279  :     return m_TDA9874Standards[index].Name;

  00025	8b 4d fc	 mov	 ecx, DWORD PTR _index$[ebp]
  00028	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  0002b	8b 81 00 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx]
$LN2@GetAudioSt@16:

; 280  : }

  00031	8b e5		 mov	 esp, ebp
  00033	5d		 pop	 ebp
  00034	c2 04 00	 ret	 4
?GetAudioStandardName@CTDA9874AudioDecoder@@UAEPB_WJ@Z ENDP ; CTDA9874AudioDecoder::GetAudioStandardName
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?SetAudioStandard@CTDA9874AudioDecoder@@UAEXJW4eVideoFormat@@@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_Buffer$ = -8						; size = 3
_index$ = -4						; size = 4
_Standard$ = 8						; size = 4
_VideoFormat$ = 12					; size = 4
?SetAudioStandard@CTDA9874AudioDecoder@@UAEXJW4eVideoFormat@@@Z PROC ; CTDA9874AudioDecoder::SetAudioStandard, COMDAT
; _this$ = ecx

; 238  : {

  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

; 239  :     LOG(1, _T("TDA9874: SetAudioStandard"), Standard);

  00009	8b 45 08	 mov	 eax, DWORD PTR _Standard$[ebp]
  0000c	50		 push	 eax
  0000d	68 00 00 00 00	 push	 OFFSET ??_C@_1DE@CKEPJKIA@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?3?$AA?5?$AAS?$AAe?$AAt?$AAA?$AAu?$AAd?$AAi?$AAo?$AAS?$AAt?$AAa?$AAn?$AAd?$AAa?$AAr?$AAd?$AA?$AA@
  00012	6a 01		 push	 1
  00014	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00019	83 c4 0c	 add	 esp, 12			; 0000000cH

; 240  :     CAudioDecoder::SetAudioStandard(Standard, VideoFormat);

  0001c	8b 4d 0c	 mov	 ecx, DWORD PTR _VideoFormat$[ebp]
  0001f	51		 push	 ecx
  00020	8b 55 08	 mov	 edx, DWORD PTR _Standard$[ebp]
  00023	52		 push	 edx
  00024	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00027	e8 00 00 00 00	 call	 ?SetAudioStandard@CAudioDecoder@@UAEXJW4eVideoFormat@@@Z ; CAudioDecoder::SetAudioStandard

; 241  : 
; 242  :     int index = Standard2Index(Standard);

  0002c	8b 45 08	 mov	 eax, DWORD PTR _Standard$[ebp]
  0002f	50		 push	 eax
  00030	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00033	83 e9 20	 sub	 ecx, 32			; 00000020H
  00036	e8 00 00 00 00	 call	 ?Standard2Index@CTDA9874AudioDecoder@@AAEHJ@Z ; CTDA9874AudioDecoder::Standard2Index
  0003b	89 45 fc	 mov	 DWORD PTR _index$[ebp], eax

; 243  : 
; 244  :     if(index < 0)

  0003e	83 7d fc 00	 cmp	 DWORD PTR _index$[ebp], 0
  00042	7d 05		 jge	 SHORT $LN1@SetAudioSt@4

; 245  :     {
; 246  :         return;

  00044	e9 ec 00 00 00	 jmp	 $LN2@SetAudioSt@4
$LN1@SetAudioSt@4:

; 247  :     }
; 248  : 
; 249  :     m_AudioStandard = index;

  00049	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0004c	8b 55 fc	 mov	 edx, DWORD PTR _index$[ebp]
  0004f	89 51 10	 mov	 DWORD PTR [ecx+16], edx

; 250  : 
; 251  :     // Set the signal source...
; 252  :     WriteToSubAddress(TDA9874A_SDACOSR,
; 253  :         (m_TDA9874Standards[m_AudioStandard].Nicam) ? 0x01:0x00); // Signal source

  00052	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00055	8b 48 10	 mov	 ecx, DWORD PTR [eax+16]
  00058	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  0005b	33 d2		 xor	 edx, edx
  0005d	83 b9 14 00 00
	00 00		 cmp	 DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+20], 0
  00064	0f 95 c2	 setne	 dl
  00067	0f b6 c2	 movzx	 eax, dl
  0006a	50		 push	 eax
  0006b	6a 13		 push	 19			; 00000013H
  0006d	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00070	83 e9 20	 sub	 ecx, 32			; 00000020H
  00073	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 254  : 
; 255  :     WriteToSubAddress( TDA9874A_AMCONR, 0x00 ); // unmute

  00078	6a 00		 push	 0
  0007a	6a 12		 push	 18			; 00000012H
  0007c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	83 e9 20	 sub	 ecx, 32			; 00000020H
  00082	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ; CI2CDevice::WriteToSubAddress

; 256  : 
; 257  :     // Now program the needed Carrier frequencies...
; 258  :     BYTE Buffer[3];
; 259  :     Buffer[0] = BYTE((m_TDA9874Standards[index].c1 >> 16) & 0xFF);

  00087	8b 4d fc	 mov	 ecx, DWORD PTR _index$[ebp]
  0008a	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  0008d	8b 91 08 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+8]
  00093	c1 ea 10	 shr	 edx, 16			; 00000010H
  00096	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0009c	88 55 f8	 mov	 BYTE PTR _Buffer$[ebp], dl

; 260  :     Buffer[1] = BYTE((m_TDA9874Standards[index].c1 >> 8 ) & 0xFF);

  0009f	8b 45 fc	 mov	 eax, DWORD PTR _index$[ebp]
  000a2	6b c0 1c	 imul	 eax, 28			; 0000001cH
  000a5	8b 88 08 00 00
	00		 mov	 ecx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[eax+8]
  000ab	c1 e9 08	 shr	 ecx, 8
  000ae	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  000b4	88 4d f9	 mov	 BYTE PTR _Buffer$[ebp+1], cl

; 261  :     Buffer[2] = BYTE((m_TDA9874Standards[index].c1      ) & 0xFF);

  000b7	8b 55 fc	 mov	 edx, DWORD PTR _index$[ebp]
  000ba	6b d2 1c	 imul	 edx, 28			; 0000001cH
  000bd	8b 82 08 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[edx+8]
  000c3	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  000c8	88 45 fa	 mov	 BYTE PTR _Buffer$[ebp+2], al

; 262  :     CI2CDevice::WriteToSubAddress(TDA9874A_C1FRA, Buffer, sizeof(Buffer));

  000cb	6a 03		 push	 3
  000cd	8d 4d f8	 lea	 ecx, DWORD PTR _Buffer$[ebp]
  000d0	51		 push	 ecx
  000d1	6a 03		 push	 3
  000d3	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000d6	83 e9 20	 sub	 ecx, 32			; 00000020H
  000d9	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 263  : 
; 264  :     Buffer[0] = BYTE((m_TDA9874Standards[index].c2 >> 16) & 0xFF);

  000de	8b 55 fc	 mov	 edx, DWORD PTR _index$[ebp]
  000e1	6b d2 1c	 imul	 edx, 28			; 0000001cH
  000e4	8b 82 0c 00 00
	00		 mov	 eax, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[edx+12]
  000ea	c1 e8 10	 shr	 eax, 16			; 00000010H
  000ed	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  000f2	88 45 f8	 mov	 BYTE PTR _Buffer$[ebp], al

; 265  :     Buffer[1] = BYTE((m_TDA9874Standards[index].c2 >> 8 ) & 0xFF);

  000f5	8b 4d fc	 mov	 ecx, DWORD PTR _index$[ebp]
  000f8	6b c9 1c	 imul	 ecx, 28			; 0000001cH
  000fb	8b 91 0c 00 00
	00		 mov	 edx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[ecx+12]
  00101	c1 ea 08	 shr	 edx, 8
  00104	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0010a	88 55 f9	 mov	 BYTE PTR _Buffer$[ebp+1], dl

; 266  :     Buffer[2] = BYTE((m_TDA9874Standards[index].c2      ) & 0xFF);

  0010d	8b 45 fc	 mov	 eax, DWORD PTR _index$[ebp]
  00110	6b c0 1c	 imul	 eax, 28			; 0000001cH
  00113	8b 88 0c 00 00
	00		 mov	 ecx, DWORD PTR ?m_TDA9874Standards@CTDA9874AudioDecoder@@0PAUANInfo@1@A[eax+12]
  00119	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  0011f	88 4d fa	 mov	 BYTE PTR _Buffer$[ebp+2], cl

; 267  :     CI2CDevice::WriteToSubAddress(TDA9874A_C2FRA, Buffer, sizeof(Buffer));

  00122	6a 03		 push	 3
  00124	8d 55 f8	 lea	 edx, DWORD PTR _Buffer$[ebp]
  00127	52		 push	 edx
  00128	6a 06		 push	 6
  0012a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0012d	83 e9 20	 sub	 ecx, 32			; 00000020H
  00130	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress
$LN2@SetAudioSt@4:

; 268  : }

  00135	8b e5		 mov	 esp, ebp
  00137	5d		 pop	 ebp
  00138	c2 08 00	 ret	 8
?SetAudioStandard@CTDA9874AudioDecoder@@UAEXJW4eVideoFormat@@@Z ENDP ; CTDA9874AudioDecoder::SetAudioStandard
PUBLIC	?DetectThread@CTDA9874AudioDecoder@@QAEHXZ	; CTDA9874AudioDecoder::DetectThread
; Function compile flags: /Odtp
;	COMDAT ?DetectThread@CTDA9874AudioDecoder@@QAEHXZ
_TEXT	SEGMENT
tv94 = -20						; size = 4
_this$ = -16						; size = 4
_iSupported$140049 = -12				; size = 4
_Supported$140048 = -8					; size = 4
_DetectCounter$ = -4					; size = 4
?DetectThread@CTDA9874AudioDecoder@@QAEHXZ PROC		; CTDA9874AudioDecoder::DetectThread, COMDAT
; _this$ = ecx

; 494  : {

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

; 495  :     int DetectCounter = 1;

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

; 496  :     m_SupportedSoundChannels = SUPPORTEDSOUNDCHANNEL_MONO;

  00010	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00013	c7 40 64 01 00
	00 00		 mov	 DWORD PTR [eax+100], 1
$LN9@DetectThre:

; 497  : 
; 498  :     while (!m_StopThread)

  0001a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0001d	83 79 4c 00	 cmp	 DWORD PTR [ecx+76], 0
  00021	0f 85 ee 00 00
	00		 jne	 $LN8@DetectThre

; 499  :     {
; 500  :         if (m_ThreadWait)

  00027	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0002a	83 7a 50 00	 cmp	 DWORD PTR [edx+80], 0
  0002e	74 28		 je	 SHORT $LN7@DetectThre

; 501  :         {
; 502  :             LOGD(_T("Waiting TDA9874 detect loop"));
; 503  :             m_AutoDetecting = 0;

  00030	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00033	c7 40 60 00 00
	00 00		 mov	 DWORD PTR [eax+96], 0

; 504  :             SuspendThread(m_TDA9874Thread);

  0003a	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0003d	8b 51 48	 mov	 edx, DWORD PTR [ecx+72]
  00040	52		 push	 edx
  00041	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SuspendThread@4

; 505  :             LOGD(_T("Resuming TDA9874 detect loop"));
; 506  :             DetectCounter = 1;

  00047	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _DetectCounter$[ebp], 1

; 507  :             m_SupportedSoundChannels = SUPPORTEDSOUNDCHANNEL_MONO;

  0004e	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00051	c7 40 64 01 00
	00 00		 mov	 DWORD PTR [eax+100], 1
$LN7@DetectThre:

; 508  :         }
; 509  : 
; 510  :         if (m_AutoDetecting==1)         //Detect standard

  00058	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0005b	83 79 60 01	 cmp	 DWORD PTR [ecx+96], 1
  0005f	75 60		 jne	 SHORT $LN6@DetectThre

; 511  :         {
; 512  :             // No autodetection of standard possible!!?
; 513  :             EventCollector->RaiseEvent(this, EVENT_AUDIOSTANDARD_DETECTED, 0, m_AudioStandard);

  00061	83 7d f0 00	 cmp	 DWORD PTR _this$[ebp], 0
  00065	74 0b		 je	 SHORT $LN12@DetectThre
  00067	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  0006a	83 c2 20	 add	 edx, 32			; 00000020H
  0006d	89 55 ec	 mov	 DWORD PTR tv94[ebp], edx
  00070	eb 07		 jmp	 SHORT $LN13@DetectThre
$LN12@DetectThre:
  00072	c7 45 ec 00 00
	00 00		 mov	 DWORD PTR tv94[ebp], 0
$LN13@DetectThre:
  00079	6a 00		 push	 0
  0007b	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0007e	8b 48 30	 mov	 ecx, DWORD PTR [eax+48]
  00081	51		 push	 ecx
  00082	6a 00		 push	 0
  00084	6a 10		 push	 16			; 00000010H
  00086	8b 55 ec	 mov	 edx, DWORD PTR tv94[ebp]
  00089	52		 push	 edx
  0008a	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  0008f	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00094	8b c8		 mov	 ecx, eax
  00096	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent

; 514  : 
; 515  :             if (m_DetectSupportedSoundChannels)

  0009b	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  0009e	83 78 54 00	 cmp	 DWORD PTR [eax+84], 0
  000a2	74 0c		 je	 SHORT $LN5@DetectThre

; 516  :             {
; 517  :                 m_AutoDetecting = 2;    //Try to find stereo

  000a4	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000a7	c7 41 60 02 00
	00 00		 mov	 DWORD PTR [ecx+96], 2

; 518  :             }
; 519  :             else

  000ae	eb 0a		 jmp	 SHORT $LN4@DetectThre
$LN5@DetectThre:

; 520  :             {
; 521  :                 m_ThreadWait = TRUE;    //Finished

  000b0	8b 55 f0	 mov	 edx, DWORD PTR _this$[ebp]
  000b3	c7 42 50 01 00
	00 00		 mov	 DWORD PTR [edx+80], 1
$LN4@DetectThre:

; 522  :             }
; 523  : 
; 524  :             DetectCounter = 1;

  000ba	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _DetectCounter$[ebp], 1
$LN6@DetectThre:

; 525  :         }
; 526  : 
; 527  :         if (m_AutoDetecting==2)         //Detect mono/stereo/lang1/lang2

  000c1	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000c4	83 78 60 02	 cmp	 DWORD PTR [eax+96], 2
  000c8	75 23		 jne	 SHORT $LN3@DetectThre

; 528  :         {
; 529  :             if ((DetectCounter >= 100) && (DetectCounter % m_DetectInterval10ms) == 0)

  000ca	83 7d fc 64	 cmp	 DWORD PTR _DetectCounter$[ebp], 100 ; 00000064H
  000ce	7c 1d		 jl	 SHORT $LN3@DetectThre
  000d0	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000d3	8b 49 5c	 mov	 ecx, DWORD PTR [ecx+92]
  000d6	8b 45 fc	 mov	 eax, DWORD PTR _DetectCounter$[ebp]
  000d9	99		 cdq
  000da	f7 f9		 idiv	 ecx
  000dc	85 d2		 test	 edx, edx
  000de	75 0d		 jne	 SHORT $LN3@DetectThre

; 530  :             {
; 531  :                 eSupportedSoundChannels Supported = SUPPORTEDSOUNDCHANNEL_LANG2;

  000e0	c7 45 f8 08 00
	00 00		 mov	 DWORD PTR _Supported$140048[ebp], 8

; 532  :                 int iSupported = (int)Supported;

  000e7	8b 55 f8	 mov	 edx, DWORD PTR _Supported$140048[ebp]
  000ea	89 55 f4	 mov	 DWORD PTR _iSupported$140049[ebp], edx
$LN3@DetectThre:

; 533  : 
; 534  :                 // Fix Me
; 535  : 
; 536  :                 /*
; 537  :                 BYTE status = ReadStatus();
; 538  : 
; 539  :                 if ((status & TDA9874IN_CHANNELMASK) == TDA9874IN_STEREO)
; 540  :                 {
; 541  :                     iSupported |= SUPPORTEDSOUNDCHANNEL_STEREO;
; 542  :                 }
; 543  :                 if ((status & TDA9874IN_CHANNELMASK) == TDA9874IN_LANG12)
; 544  :                 {
; 545  :                     iSupported |= SUPPORTEDSOUNDCHANNEL_LANG1|SUPPORTEDSOUNDCHANNEL_LANG2;
; 546  :                 }
; 547  : 
; 548  :                 Supported = (eSupportedSoundChannels)iSupported;
; 549  : 
; 550  :                 if ((Supported != m_SupportedSoundChannels) || (DetectCounter >= 200))
; 551  :                 {
; 552  :                     m_SupportedSoundChannels = Supported;
; 553  : 
; 554  :                     LOG(1,_T("TDA9874: Detect stereo: Supported: %s%s%s%s"),
; 555  :                         (Supported&SUPPORTEDSOUNDCHANNEL_MONO)?_T("Mono "):_T(""),
; 556  :                         (Supported&SUPPORTEDSOUNDCHANNEL_STEREO)?_T("Stereo "):_T(""),
; 557  :                         (Supported&SUPPORTEDSOUNDCHANNEL_LANG1)?_T("Lang1 "):_T(""),
; 558  :                         (Supported&SUPPORTEDSOUNDCHANNEL_LANG2)?_T("Lang2 "):_T(""));
; 559  : 
; 560  :                     SetSoundChannel(IsAudioChannelDetected(m_TargetSoundChannel));
; 561  : 
; 562  :                     EventCollector->RaiseEvent(this, EVENT_AUDIOCHANNELSUPPORT_DETECTED, 0, Supported);
; 563  : 
; 564  :                     if (DetectCounter >= 200)
; 565  :                     {
; 566  :                         m_ThreadWait = TRUE;    //Finished
; 567  :                     }
; 568  :                 }
; 569  :                 */
; 570  :             }
; 571  :         }
; 572  : 
; 573  :         if (!m_StopThread && !m_ThreadWait)

  000ed	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  000f0	83 78 4c 00	 cmp	 DWORD PTR [eax+76], 0
  000f4	75 1a		 jne	 SHORT $LN1@DetectThre
  000f6	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  000f9	83 79 50 00	 cmp	 DWORD PTR [ecx+80], 0
  000fd	75 11		 jne	 SHORT $LN1@DetectThre

; 574  :         {
; 575  :             Sleep(10);

  000ff	6a 0a		 push	 10			; 0000000aH
  00101	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 576  :             ++DetectCounter;

  00107	8b 55 fc	 mov	 edx, DWORD PTR _DetectCounter$[ebp]
  0010a	83 c2 01	 add	 edx, 1
  0010d	89 55 fc	 mov	 DWORD PTR _DetectCounter$[ebp], edx
$LN1@DetectThre:

; 577  :         }
; 578  :     }

  00110	e9 05 ff ff ff	 jmp	 $LN9@DetectThre
$LN8@DetectThre:

; 579  : 
; 580  :     return 0;

  00115	33 c0		 xor	 eax, eax

; 581  : }

  00117	8b e5		 mov	 esp, ebp
  00119	5d		 pop	 ebp
  0011a	c3		 ret	 0
?DetectThread@CTDA9874AudioDecoder@@QAEHXZ ENDP		; CTDA9874AudioDecoder::DetectThread
_TEXT	ENDS
PUBLIC	__$ArrayPad$
PUBLIC	?TDA9874ThreadProc@@YGKPAX@Z			; TDA9874ThreadProc
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?TDA9874ThreadProc@@YGKPAX@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?TDA9874ThreadProc@@YGKPAX@Z$2
	DD	00H
	DD	00H
	DD	00H
	DD	00H
__catchsym$?TDA9874ThreadProc@@YGKPAX@Z$3 DD 00H
	DD	00H
	DD	00H
	DD	FLAT:__catch$?TDA9874ThreadProc@@YGKPAX@Z$0
__tryblocktable$?TDA9874ThreadProc@@YGKPAX@Z DD 01H
	DD	01H
	DD	02H
	DD	01H
	DD	FLAT:__catchsym$?TDA9874ThreadProc@@YGKPAX@Z$3
__ehfuncinfo$?TDA9874ThreadProc@@YGKPAX@Z DD 019930522H
	DD	03H
	DD	FLAT:__unwindtable$?TDA9874ThreadProc@@YGKPAX@Z
	DD	01H
	DD	FLAT:__tryblocktable$?TDA9874ThreadProc@@YGKPAX@Z
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?TDA9874ThreadProc@@YGKPAX@Z
_TEXT	SEGMENT
$T351928 = -64						; size = 4
$T351927 = -60						; size = 4
_thisThread$ = -56					; size = 32
__$ArrayPad$ = -24					; size = 4
_Result$ = -20						; size = 4
__$EHRec$ = -16						; size = 16
_lpThreadParameter$ = 8					; size = 4
?TDA9874ThreadProc@@YGKPAX@Z PROC			; TDA9874ThreadProc, COMDAT

; 421  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?TDA9874ThreadProc@@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 30	 sub	 esp, 48			; 00000030H
  00015	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001a	33 c5		 xor	 eax, ebp
  0001c	89 45 e8	 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

; 422  :     int Result = 1;

  0002f	c7 45 ec 01 00
	00 00		 mov	 DWORD PTR _Result$[ebp], 1

; 423  : 
; 424  :     DScalerThread thisThread(_T("TDA9874DetectThread"));

  00036	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@JEHEHDJ@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AAD?$AAe?$AAt?$AAe?$AAc?$AAt?$AAT?$AAh?$AAr?$AAe?$AAa?$AAd?$AA?$AA@
  0003b	8d 4d c8	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  0003e	e8 00 00 00 00	 call	 ??0DScalerThread@@QAE@PB_W@Z ; DScalerThread::DScalerThread
  00043	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0

; 425  :     if (lpThreadParameter != NULL)

  0004a	83 7d 08 00	 cmp	 DWORD PTR _lpThreadParameter$[ebp], 0
  0004e	74 3a		 je	 SHORT $LN5@TDA9874Thr

; 426  :     {
; 427  :         try
; 428  :         {

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

; 429  :             Result = ((CTDA9874AudioDecoder*)lpThreadParameter)->DetectThread();

  00054	8b 4d 08	 mov	 ecx, DWORD PTR _lpThreadParameter$[ebp]
  00057	e8 00 00 00 00	 call	 ?DetectThread@CTDA9874AudioDecoder@@QAEHXZ ; CTDA9874AudioDecoder::DetectThread
  0005c	89 45 ec	 mov	 DWORD PTR _Result$[ebp], eax

; 430  :         }

  0005f	eb 29		 jmp	 SHORT $LN5@TDA9874Thr
__catch$?TDA9874ThreadProc@@YGKPAX@Z$0:

; 431  :         catch(...)
; 432  :         {
; 433  :             LOG(1, _T("Crash in TDA9874 detect loop"));

  00061	68 00 00 00 00	 push	 OFFSET ??_C@_1DK@DPIAFDCO@?$AAC?$AAr?$AAa?$AAs?$AAh?$AA?5?$AAi?$AAn?$AA?5?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?$AA@
  00066	6a 01		 push	 1
  00068	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0006d	83 c4 08	 add	 esp, 8

; 434  :             return 1;

  00070	c7 45 c4 01 00
	00 00		 mov	 DWORD PTR $T351927[ebp], 1
  00077	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  0007e	b8 00 00 00 00	 mov	 eax, $LN9@TDA9874Thr
  00083	c3		 ret	 0

; 435  :         }

  00084	b8 00 00 00 00	 mov	 eax, $LN5@TDA9874Thr
  00089	c3		 ret	 0
$LN5@TDA9874Thr:
  0008a	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+12], 0
  00091	eb 14		 jmp	 SHORT $LN8@TDA9874Thr
$LN9@TDA9874Thr:

; 434  :             return 1;

  00093	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  0009a	8d 4d c8	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  0009d	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  000a2	8b 45 c4	 mov	 eax, DWORD PTR $T351927[ebp]
  000a5	eb 18		 jmp	 SHORT $LN3@TDA9874Thr
$LN8@TDA9874Thr:

; 436  :     }
; 437  :     return Result;

  000a7	8b 45 ec	 mov	 eax, DWORD PTR _Result$[ebp]
  000aa	89 45 c0	 mov	 DWORD PTR $T351928[ebp], eax
  000ad	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+12], -1
  000b4	8d 4d c8	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  000b7	e8 00 00 00 00	 call	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
  000bc	8b 45 c0	 mov	 eax, DWORD PTR $T351928[ebp]
$LN3@TDA9874Thr:

; 438  : }

  000bf	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp+4]
  000c2	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  000c9	59		 pop	 ecx
  000ca	5f		 pop	 edi
  000cb	5e		 pop	 esi
  000cc	5b		 pop	 ebx
  000cd	8b 4d e8	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  000d0	33 cd		 xor	 ecx, ebp
  000d2	e8 00 00 00 00	 call	 @__security_check_cookie@4
  000d7	8b e5		 mov	 esp, ebp
  000d9	5d		 pop	 ebp
  000da	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?TDA9874ThreadProc@@YGKPAX@Z$2:
  00000	8d 4d c8	 lea	 ecx, DWORD PTR _thisThread$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1DScalerThread@@QAE@XZ ; DScalerThread::~DScalerThread
__ehhandler$?TDA9874ThreadProc@@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 bc	 mov	 ecx, DWORD PTR [edx-68]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  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$?TDA9874ThreadProc@@YGKPAX@Z
  00028	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?TDA9874ThreadProc@@YGKPAX@Z ENDP			; TDA9874ThreadProc
PUBLIC	?StartThread@CTDA9874AudioDecoder@@AAEXXZ	; CTDA9874AudioDecoder::StartThread
; Function compile flags: /Odtp
;	COMDAT ?StartThread@CTDA9874AudioDecoder@@AAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_LinkThreadID$ = -4					; size = 4
?StartThread@CTDA9874AudioDecoder@@AAEXXZ PROC		; CTDA9874AudioDecoder::StartThread, COMDAT
; _this$ = ecx

; 441  : {

  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

; 442  :     DWORD LinkThreadID;
; 443  : 
; 444  :     m_ThreadWait = FALSE;

  00009	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	c7 40 50 00 00
	00 00		 mov	 DWORD PTR [eax+80], 0

; 445  : 
; 446  :     if (m_TDA9874Thread != NULL)

  00013	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	83 79 48 00	 cmp	 DWORD PTR [ecx+72], 0
  0001a	74 4a		 je	 SHORT $LN3@StartThrea@2

; 447  :     {
; 448  :         // Already started, resume
; 449  :         if(ResumeThread(m_TDA9874Thread) == 0)

  0001c	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  0001f	8b 42 48	 mov	 eax, DWORD PTR [edx+72]
  00022	50		 push	 eax
  00023	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ResumeThread@4
  00029	85 c0		 test	 eax, eax
  0002b	75 37		 jne	 SHORT $LN2@StartThrea@2

; 450  :         {
; 451  :             LOG(1, _T("TDA9874 detect loop not waiting(1)"));

  0002d	68 00 00 00 00	 push	 OFFSET ??_C@_1EG@HBHLNMEN@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@
  00032	6a 01		 push	 1
  00034	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00039	83 c4 08	 add	 esp, 8

; 452  :             Sleep(10);

  0003c	6a 0a		 push	 10			; 0000000aH
  0003e	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 453  :             if(ResumeThread(m_TDA9874Thread) == 0)

  00044	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	8b 51 48	 mov	 edx, DWORD PTR [ecx+72]
  0004a	52		 push	 edx
  0004b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__ResumeThread@4
  00051	85 c0		 test	 eax, eax
  00053	75 0f		 jne	 SHORT $LN2@StartThrea@2

; 454  :             {
; 455  :                 LOG(1, _T("TDA9874 detect loop not waiting(2)"));

  00055	68 00 00 00 00	 push	 OFFSET ??_C@_1EG@PHOPKOOD@?$AAT?$AAD?$AAA?$AA9?$AA8?$AA7?$AA4?$AA?5?$AAd?$AAe?$AAt?$AAe?$AAc?$AAt?$AA?5?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAw?$AAa?$AAi?$AAt?$AAi?$AAn?$AAg?$AA?$CI@
  0005a	6a 01		 push	 1
  0005c	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00061	83 c4 08	 add	 esp, 8
$LN2@StartThrea@2:

; 456  :             }
; 457  :         }
; 458  :         return;

  00064	eb 29		 jmp	 SHORT $LN4@StartThrea@2
$LN3@StartThrea@2:

; 459  :     }
; 460  : 
; 461  :     m_StopThread = FALSE;

  00066	8b 45 f8	 mov	 eax, DWORD PTR _this$[ebp]
  00069	c7 40 4c 00 00
	00 00		 mov	 DWORD PTR [eax+76], 0

; 462  : 
; 463  :     m_TDA9874Thread = CreateThread((LPSECURITY_ATTRIBUTES) NULL,    // No security.
; 464  :                              (DWORD) 0,                                // Same stack size.
; 465  :                              TDA9874ThreadProc,                        // Thread procedure.
; 466  :                              (LPVOID)this,                          // Parameter.
; 467  :                              (DWORD) 0,                                // Start immediatly.
; 468  :                              (LPDWORD) &LinkThreadID);                // Thread ID.

  00070	8d 4d fc	 lea	 ecx, DWORD PTR _LinkThreadID$[ebp]
  00073	51		 push	 ecx
  00074	6a 00		 push	 0
  00076	8b 55 f8	 mov	 edx, DWORD PTR _this$[ebp]
  00079	52		 push	 edx
  0007a	68 00 00 00 00	 push	 OFFSET ?TDA9874ThreadProc@@YGKPAX@Z ; TDA9874ThreadProc
  0007f	6a 00		 push	 0
  00081	6a 00		 push	 0
  00083	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__CreateThread@24
  00089	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0008c	89 41 48	 mov	 DWORD PTR [ecx+72], eax
$LN4@StartThrea@2:

; 469  : }

  0008f	8b e5		 mov	 esp, ebp
  00091	5d		 pop	 ebp
  00092	c3		 ret	 0
?StartThread@CTDA9874AudioDecoder@@AAEXXZ ENDP		; CTDA9874AudioDecoder::StartThread
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?DetectAudioStandard@CTDA9874AudioDecoder@@UAEXJHW4eSoundChannel@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_Interval$ = 8						; size = 4
_SupportedSoundChannels$ = 12				; size = 4
_TargetChannel$ = 16					; size = 4
?DetectAudioStandard@CTDA9874AudioDecoder@@UAEXJHW4eSoundChannel@@@Z PROC ; CTDA9874AudioDecoder::DetectAudioStandard, COMDAT
; _this$ = ecx

; 366  : {

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

; 367  :     CAudioDecoder::DetectAudioStandard(Interval, SupportedSoundChannels, TargetChannel);

  00007	8b 45 10	 mov	 eax, DWORD PTR _TargetChannel$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 0c	 mov	 ecx, DWORD PTR _SupportedSoundChannels$[ebp]
  0000e	51		 push	 ecx
  0000f	8b 55 08	 mov	 edx, DWORD PTR _Interval$[ebp]
  00012	52		 push	 edx
  00013	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	e8 00 00 00 00	 call	 ?DetectAudioStandard@CAudioDecoder@@UAEXJHW4eSoundChannel@@@Z ; CAudioDecoder::DetectAudioStandard

; 368  : 
; 369  :     if (Interval > 0)

  0001b	83 7d 08 00	 cmp	 DWORD PTR _Interval$[ebp], 0
  0001f	7e 16		 jle	 SHORT $LN8@DetectAudi

; 370  :     {
; 371  :         m_DetectInterval10ms = (Interval+9)/10;

  00021	8b 45 08	 mov	 eax, DWORD PTR _Interval$[ebp]
  00024	83 c0 09	 add	 eax, 9
  00027	99		 cdq
  00028	b9 0a 00 00 00	 mov	 ecx, 10			; 0000000aH
  0002d	f7 f9		 idiv	 ecx
  0002f	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00032	89 42 3c	 mov	 DWORD PTR [edx+60], eax

; 372  :     }
; 373  : 
; 374  :     else

  00035	eb 10		 jmp	 SHORT $LN7@DetectAudi
$LN8@DetectAudi:

; 375  :     {
; 376  :         //Abort
; 377  :         StopThread();

  00037	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0003a	83 e9 20	 sub	 ecx, 32			; 00000020H
  0003d	e8 00 00 00 00	 call	 ?StopThread@CTDA9874AudioDecoder@@AAEXXZ ; CTDA9874AudioDecoder::StopThread

; 378  :         return;

  00042	e9 85 00 00 00	 jmp	 $LN9@DetectAudi
$LN7@DetectAudi:

; 379  :     }
; 380  : 
; 381  :     if (SupportedSoundChannels)

  00047	83 7d 0c 00	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 0
  0004b	74 09		 je	 SHORT $LN6@DetectAudi

; 382  :     {
; 383  :         m_TargetSoundChannel = TargetChannel;

  0004d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00050	8b 4d 10	 mov	 ecx, DWORD PTR _TargetChannel$[ebp]
  00053	89 48 38	 mov	 DWORD PTR [eax+56], ecx
$LN6@DetectAudi:

; 384  :     }
; 385  : 
; 386  :     // Suspend thread if detecting
; 387  :     if (m_AutoDetecting)

  00056	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00059	83 7a 40 00	 cmp	 DWORD PTR [edx+64], 0
  0005d	74 37		 je	 SHORT $LN5@DetectAudi

; 388  :     {
; 389  :         LOGD(_T("Abort1 TDA9874 detect loop"));
; 390  :         m_ThreadWait = TRUE;

  0005f	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00062	c7 40 30 01 00
	00 00		 mov	 DWORD PTR [eax+48], 1

; 391  :         Sleep(10);

  00069	6a 0a		 push	 10			; 0000000aH
  0006b	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 392  : 
; 393  :         if (m_AutoDetecting)

  00071	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00074	83 79 40 00	 cmp	 DWORD PTR [ecx+64], 0
  00078	74 1c		 je	 SHORT $LN5@DetectAudi

; 394  :         {
; 395  :             LOGD(_T("Abort2 TDA9874 detect loop"));
; 396  :             Sleep(50);

  0007a	6a 32		 push	 50			; 00000032H
  0007c	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__Sleep@4

; 397  : 
; 398  :             if (m_AutoDetecting)

  00082	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00085	83 7a 40 00	 cmp	 DWORD PTR [edx+64], 0
  00089	74 0b		 je	 SHORT $LN5@DetectAudi

; 399  :             {
; 400  :                 LOGD(_T("Abort3 TDA9874 detect loop"));
; 401  :                 StopThread();

  0008b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0008e	83 e9 20	 sub	 ecx, 32			; 00000020H
  00091	e8 00 00 00 00	 call	 ?StopThread@CTDA9874AudioDecoder@@AAEXXZ ; CTDA9874AudioDecoder::StopThread
$LN5@DetectAudi:

; 402  :             }
; 403  :         }
; 404  :     }
; 405  : 
; 406  :     if (SupportedSoundChannels == 2)

  00096	83 7d 0c 02	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 2
  0009a	75 0c		 jne	 SHORT $LN2@DetectAudi

; 407  :     {
; 408  :         m_AutoDetecting = 2;

  0009c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0009f	c7 40 40 02 00
	00 00		 mov	 DWORD PTR [eax+64], 2

; 409  :     }
; 410  :     else

  000a6	eb 19		 jmp	 SHORT $LN1@DetectAudi
$LN2@DetectAudi:

; 411  :     {
; 412  :         m_AutoDetecting = 1;

  000a8	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000ab	c7 41 40 01 00
	00 00		 mov	 DWORD PTR [ecx+64], 1

; 413  :         m_DetectSupportedSoundChannels = (SupportedSoundChannels == 1);

  000b2	33 d2		 xor	 edx, edx
  000b4	83 7d 0c 01	 cmp	 DWORD PTR _SupportedSoundChannels$[ebp], 1
  000b8	0f 94 c2	 sete	 dl
  000bb	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  000be	89 50 34	 mov	 DWORD PTR [eax+52], edx
$LN1@DetectAudi:

; 414  :     }
; 415  : 
; 416  :     //Start or resume thread
; 417  :     StartThread();

  000c1	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  000c4	83 e9 20	 sub	 ecx, 32			; 00000020H
  000c7	e8 00 00 00 00	 call	 ?StartThread@CTDA9874AudioDecoder@@AAEXXZ ; CTDA9874AudioDecoder::StartThread
$LN9@DetectAudi:

; 418  : }

  000cc	8b e5		 mov	 esp, ebp
  000ce	5d		 pop	 ebp
  000cf	c2 0c 00	 ret	 12			; 0000000cH
?DetectAudioStandard@CTDA9874AudioDecoder@@UAEXJHW4eSoundChannel@@@Z ENDP ; CTDA9874AudioDecoder::DetectAudioStandard
END
