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

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

INCLUDELIB OLDNAMES

PUBLIC	?GetDefaultAddress@CMSP34x0@@MBEEXZ		; CMSP34x0::GetDefaultAddress
PUBLIC	??_R4CMSP34x0@@6B@				; CMSP34x0::`RTTI Complete Object Locator'
PUBLIC	??_R3CMSP34x0@@8				; CMSP34x0::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CMSP34x0@@8				; CMSP34x0::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CMSP34x0@@8			; CMSP34x0::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCMSP34x0@@@8				; CMSP34x0 `RTTI Type Descriptor'
PUBLIC	??1CMSP34x0@@UAE@XZ				; CMSP34x0::~CMSP34x0
PUBLIC	??_GCMSP34x0@@UAEPAXI@Z				; CMSP34x0::`scalar deleting destructor'
PUBLIC	??_C@_1DM@JALKNEIN@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$DN?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@ ; `string'
PUBLIC	??_C@_1DM@MLIHEPAM@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@ ; `string'
PUBLIC	??_C@_1CI@GELJGGMI@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@ ; `string'
PUBLIC	??_7CMSP34x0@@6B@				; CMSP34x0::`vftable'
EXTRN	??_ECMSP34x0@@UAEPAXI@Z:PROC			; CMSP34x0::`vector deleting destructor'
;	COMDAT ??_7CMSP34x0@@6B@
CONST	SEGMENT
??_7CMSP34x0@@6B@ DD FLAT:??_R4CMSP34x0@@6B@		; CMSP34x0::`vftable'
	DD	FLAT:??_ECMSP34x0@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CMSP34x0@@MBEEXZ
CONST	ENDS
;	COMDAT ??_R4CMSP34x0@@6B@
rdata$r	SEGMENT
??_R4CMSP34x0@@6B@ DD 00H				; CMSP34x0::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCMSP34x0@@@8
	DD	FLAT:??_R3CMSP34x0@@8
rdata$r	ENDS
;	COMDAT ??_R3CMSP34x0@@8
rdata$r	SEGMENT
??_R3CMSP34x0@@8 DD 00H					; CMSP34x0::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2CMSP34x0@@8
rdata$r	ENDS
;	COMDAT ??_R2CMSP34x0@@8
rdata$r	SEGMENT
??_R2CMSP34x0@@8 DD FLAT:??_R1A@?0A@EA@CMSP34x0@@8	; CMSP34x0::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EA@CI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CMSP34x0@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CMSP34x0@@8 DD FLAT:??_R0?AVCMSP34x0@@@8	; CMSP34x0::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CMSP34x0@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCMSP34x0@@@8
_DATA	SEGMENT
??_R0?AVCMSP34x0@@@8 DD FLAT:??_7type_info@@6B@		; CMSP34x0 `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCMSP34x0@@', 00H
_DATA	ENDS
;	COMDAT ??_C@_1CI@GELJGGMI@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
CONST	SEGMENT
??_C@_1CI@GELJGGMI@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@ DB 'M'
	DB	00H, 'S', 00H, 'P', 00H, ':', 00H, ' ', 00H, '%', 00H, '0', 00H
	DB	'2', 00H, 'X', 00H, ' ', 00H, '%', 00H, '0', 00H, '2', 00H, 'X'
	DB	00H, ' ', 00H, '%', 00H, '0', 00H, '2', 00H, 'X', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@MLIHEPAM@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@MLIHEPAM@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@ DB 'M'
	DB	00H, 'S', 00H, 'P', 00H, ':', 00H, ' ', 00H, '%', 00H, '0', 00H
	DB	'2', 00H, 'X', 00H, ' ', 00H, '%', 00H, '0', 00H, '2', 00H, 'X'
	DB	00H, ' ', 00H, '%', 00H, '0', 00H, '2', 00H, 'X', 00H, ' ', 00H
	DB	'%', 00H, '0', 00H, '2', 00H, 'X', 00H, ' ', 00H, '%', 00H, '0'
	DB	00H, '2', 00H, 'X', 00H, 00H, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_1DM@JALKNEIN@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$DN?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
CONST	SEGMENT
??_C@_1DM@JALKNEIN@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$DN?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@ DB 'M'
	DB	00H, 'S', 00H, 'P', 00H, ':', 00H, ' ', 00H, '%', 00H, '0', 00H
	DB	'2', 00H, 'X', 00H, ' ', 00H, '%', 00H, '0', 00H, '2', 00H, 'X'
	DB	00H, ' ', 00H, '%', 00H, '0', 00H, '2', 00H, 'X', 00H, '=', 00H
	DB	'%', 00H, '0', 00H, '2', 00H, 'X', 00H, ' ', 00H, '%', 00H, '0'
	DB	00H, '2', 00H, 'X', 00H, 00H, 00H		; `string'
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\msp34x0.cpp
;	COMDAT ?GetDefaultAddress@CMSP34x0@@MBEEXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetDefaultAddress@CMSP34x0@@MBEEXZ PROC		; CMSP34x0::GetDefaultAddress, COMDAT
; _this$ = ecx

; 69   : {

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

; 70   :     return 0x80>>1;

  00007	b0 40		 mov	 al, 64			; 00000040H

; 71   : }

  00009	8b e5		 mov	 esp, ebp
  0000b	5d		 pop	 ebp
  0000c	c3		 ret	 0
?GetDefaultAddress@CMSP34x0@@MBEEXZ ENDP		; CMSP34x0::GetDefaultAddress
PUBLIC	??0CMSP34x0@@QAE@XZ				; CMSP34x0::CMSP34x0
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CMSP34x0@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CMSP34x0@@QAE@XZ$0
__ehfuncinfo$??0CMSP34x0@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CMSP34x0@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CMSP34x0@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0CMSP34x0@@QAE@XZ PROC				; CMSP34x0::CMSP34x0, COMDAT
; _this$ = ecx

; 65   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CMSP34x0@@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	 ??0CI2CDevice@@QAE@XZ	; CI2CDevice::CI2CDevice
  0002e	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00035	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00038	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CMSP34x0@@6B@

; 66   : }

  0003e	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00045	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00048	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0004b	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00052	59		 pop	 ecx
  00053	8b e5		 mov	 esp, ebp
  00055	5d		 pop	 ebp
  00056	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CMSP34x0@@QAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??0CMSP34x0@@QAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??0CMSP34x0@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CMSP34x0@@QAE@XZ ENDP				; CMSP34x0::CMSP34x0
;	COMDAT xdata$x
; File c:\develop\dscaler423a\dscaler\msp34x0.h
xdata$x	SEGMENT
__unwindtable$??1CMSP34x0@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CMSP34x0@@UAE@XZ$0
__ehfuncinfo$??1CMSP34x0@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CMSP34x0@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CMSP34x0@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CMSP34x0@@UAE@XZ PROC				; CMSP34x0::~CMSP34x0, COMDAT
; _this$ = ecx

; 51   :     virtual ~CMSP34x0() {};

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CMSP34x0@@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 ??_7CMSP34x0@@6B@
  0002f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00036	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  0003d	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00040	e8 00 00 00 00	 call	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
  00045	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00048	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0004f	59		 pop	 ecx
  00050	8b e5		 mov	 esp, ebp
  00052	5d		 pop	 ebp
  00053	c3		 ret	 0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??1CMSP34x0@@UAE@XZ$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??1CMSP34x0@@UAE@XZ:
  00008	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000c	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  0000f	8b 4a f8	 mov	 ecx, DWORD PTR [edx-8]
  00012	33 c8		 xor	 ecx, eax
  00014	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00019	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??1CMSP34x0@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CMSP34x0@@UAE@XZ ENDP				; CMSP34x0::~CMSP34x0
; Function compile flags: /Odtp
;	COMDAT ??_GCMSP34x0@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCMSP34x0@@UAEPAXI@Z PROC				; CMSP34x0::`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	 ??1CMSP34x0@@UAE@XZ	; CMSP34x0::~CMSP34x0
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@100
  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@100:
  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
??_GCMSP34x0@@UAEPAXI@Z ENDP				; CMSP34x0::`scalar deleting destructor'
PUBLIC	?Reset@CMSP34x0@@QAEXXZ				; CMSP34x0::Reset
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\msp34x0.cpp
;	COMDAT ?Reset@CMSP34x0@@QAEXXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_reset$ = -4						; size = 2
?Reset@CMSP34x0@@QAEXXZ PROC				; CMSP34x0::Reset, COMDAT
; _this$ = ecx

; 121  : {

  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

; 122  :     BYTE reset[2] = {0x80, 0};

  00009	c6 45 fc 80	 mov	 BYTE PTR _reset$[ebp], 128 ; 00000080H
  0000d	c6 45 fd 00	 mov	 BYTE PTR _reset$[ebp+1], 0

; 123  :     LOG(2, _T("MSP: %02X %02X %02X"),
; 124  :         0,
; 125  :         reset[0],
; 126  :         reset[1]);

  00011	0f b6 45 fd	 movzx	 eax, BYTE PTR _reset$[ebp+1]
  00015	50		 push	 eax
  00016	0f b6 4d fc	 movzx	 ecx, BYTE PTR _reset$[ebp]
  0001a	51		 push	 ecx
  0001b	6a 00		 push	 0
  0001d	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@GELJGGMI@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
  00022	6a 02		 push	 2
  00024	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00029	83 c4 14	 add	 esp, 20			; 00000014H

; 127  :     WriteToSubAddress(0, reset, sizeof(reset));

  0002c	6a 02		 push	 2
  0002e	8d 55 fc	 lea	 edx, DWORD PTR _reset$[ebp]
  00031	52		 push	 edx
  00032	6a 00		 push	 0
  00034	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00037	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 128  :     reset[0] = 0;

  0003c	c6 45 fc 00	 mov	 BYTE PTR _reset$[ebp], 0

; 129  :     LOG(2, _T("MSP: %02X %02X %02X"),
; 130  :         0,
; 131  :         reset[0],
; 132  :         reset[1]);

  00040	0f b6 45 fd	 movzx	 eax, BYTE PTR _reset$[ebp+1]
  00044	50		 push	 eax
  00045	0f b6 4d fc	 movzx	 ecx, BYTE PTR _reset$[ebp]
  00049	51		 push	 ecx
  0004a	6a 00		 push	 0
  0004c	68 00 00 00 00	 push	 OFFSET ??_C@_1CI@GELJGGMI@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
  00051	6a 02		 push	 2
  00053	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00058	83 c4 14	 add	 esp, 20			; 00000014H

; 133  :     WriteToSubAddress(0, reset, sizeof(reset));

  0005b	6a 02		 push	 2
  0005d	8d 55 fc	 lea	 edx, DWORD PTR _reset$[ebp]
  00060	52		 push	 edx
  00061	6a 00		 push	 0
  00063	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00066	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 134  : }

  0006b	8b e5		 mov	 esp, ebp
  0006d	5d		 pop	 ebp
  0006e	c3		 ret	 0
?Reset@CMSP34x0@@QAEXXZ ENDP				; CMSP34x0::Reset
_TEXT	ENDS
PUBLIC	?SetRegister@CMSP34x0@@AAEXEGG@Z		; CMSP34x0::SetRegister
; Function compile flags: /Odtp
;	COMDAT ?SetRegister@CMSP34x0@@AAEXEGG@Z
_TEXT	SEGMENT
_this$ = -8						; size = 4
_write$ = -4						; size = 4
_subAddress$ = 8					; size = 1
_reg$ = 12						; size = 2
_value$ = 16						; size = 2
?SetRegister@CMSP34x0@@AAEXEGG@Z PROC			; CMSP34x0::SetRegister, COMDAT
; _this$ = ecx

; 88   : {

  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

; 89   :     BYTE write[] = {(reg >> 8) & 0xFF, reg & 0xFF, (value >> 8) & 0xFF, value & 0xFF};

  00009	0f b7 45 0c	 movzx	 eax, WORD PTR _reg$[ebp]
  0000d	c1 f8 08	 sar	 eax, 8
  00010	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00015	88 45 fc	 mov	 BYTE PTR _write$[ebp], al
  00018	0f b7 4d 0c	 movzx	 ecx, WORD PTR _reg$[ebp]
  0001c	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00022	88 4d fd	 mov	 BYTE PTR _write$[ebp+1], cl
  00025	0f b7 55 10	 movzx	 edx, WORD PTR _value$[ebp]
  00029	c1 fa 08	 sar	 edx, 8
  0002c	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  00032	88 55 fe	 mov	 BYTE PTR _write$[ebp+2], dl
  00035	0f b7 45 10	 movzx	 eax, WORD PTR _value$[ebp]
  00039	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  0003e	88 45 ff	 mov	 BYTE PTR _write$[ebp+3], al

; 90   :     LOG(2, _T("MSP: %02X %02X %02X %02X %02X"),
; 91   :         subAddress,
; 92   :         write[0],
; 93   :         write[1],
; 94   :         write[2],
; 95   :         write[3]);

  00041	0f b6 4d ff	 movzx	 ecx, BYTE PTR _write$[ebp+3]
  00045	51		 push	 ecx
  00046	0f b6 55 fe	 movzx	 edx, BYTE PTR _write$[ebp+2]
  0004a	52		 push	 edx
  0004b	0f b6 45 fd	 movzx	 eax, BYTE PTR _write$[ebp+1]
  0004f	50		 push	 eax
  00050	0f b6 4d fc	 movzx	 ecx, BYTE PTR _write$[ebp]
  00054	51		 push	 ecx
  00055	0f b6 55 08	 movzx	 edx, BYTE PTR _subAddress$[ebp]
  00059	52		 push	 edx
  0005a	68 00 00 00 00	 push	 OFFSET ??_C@_1DM@MLIHEPAM@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
  0005f	6a 02		 push	 2
  00061	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  00066	83 c4 1c	 add	 esp, 28			; 0000001cH

; 96   : 
; 97   :     WriteToSubAddress(subAddress, write, sizeof(write));

  00069	6a 04		 push	 4
  0006b	8d 45 fc	 lea	 eax, DWORD PTR _write$[ebp]
  0006e	50		 push	 eax
  0006f	0f b6 4d 08	 movzx	 ecx, BYTE PTR _subAddress$[ebp]
  00073	51		 push	 ecx
  00074	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  00077	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 98   : }

  0007c	8b e5		 mov	 esp, ebp
  0007e	5d		 pop	 ebp
  0007f	c2 0c 00	 ret	 12			; 0000000cH
?SetRegister@CMSP34x0@@AAEXEGG@Z ENDP			; CMSP34x0::SetRegister
_TEXT	ENDS
PUBLIC	?GetRegister@CMSP34x0@@AAEGEG@Z			; CMSP34x0::GetRegister
; Function compile flags: /Odtp
;	COMDAT ?GetRegister@CMSP34x0@@AAEGEG@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_write$ = -8						; size = 2
_result$ = -4						; size = 2
_subAddress$ = 8					; size = 1
_reg$ = 12						; size = 2
?GetRegister@CMSP34x0@@AAEGEG@Z PROC			; CMSP34x0::GetRegister, COMDAT
; _this$ = ecx

; 74   : {

  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

; 75   :     BYTE write[] = {(reg >> 8) & 0xFF, reg & 0xFF};

  00009	0f b7 45 0c	 movzx	 eax, WORD PTR _reg$[ebp]
  0000d	c1 f8 08	 sar	 eax, 8
  00010	25 ff 00 00 00	 and	 eax, 255		; 000000ffH
  00015	88 45 f8	 mov	 BYTE PTR _write$[ebp], al
  00018	0f b7 4d 0c	 movzx	 ecx, WORD PTR _reg$[ebp]
  0001c	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00022	88 4d f9	 mov	 BYTE PTR _write$[ebp+1], cl

; 76   :     BYTE result[2] = {0, 0};

  00025	c6 45 fc 00	 mov	 BYTE PTR _result$[ebp], 0
  00029	c6 45 fd 00	 mov	 BYTE PTR _result$[ebp+1], 0

; 77   :     ReadFromSubAddress(subAddress, write, sizeof(write), result, sizeof(result));

  0002d	6a 02		 push	 2
  0002f	8d 55 fc	 lea	 edx, DWORD PTR _result$[ebp]
  00032	52		 push	 edx
  00033	6a 02		 push	 2
  00035	8d 45 f8	 lea	 eax, DWORD PTR _write$[ebp]
  00038	50		 push	 eax
  00039	0f b6 4d 08	 movzx	 ecx, BYTE PTR _subAddress$[ebp]
  0003d	51		 push	 ecx
  0003e	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00041	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 78   :     LOG(2, _T("MSP: %02X %02X %02X=%02X %02X"),
; 79   :         subAddress,
; 80   :         write[0],
; 81   :         write[1],
; 82   :         result[0],
; 83   :         result[1]);

  00046	0f b6 55 fd	 movzx	 edx, BYTE PTR _result$[ebp+1]
  0004a	52		 push	 edx
  0004b	0f b6 45 fc	 movzx	 eax, BYTE PTR _result$[ebp]
  0004f	50		 push	 eax
  00050	0f b6 4d f9	 movzx	 ecx, BYTE PTR _write$[ebp+1]
  00054	51		 push	 ecx
  00055	0f b6 55 f8	 movzx	 edx, BYTE PTR _write$[ebp]
  00059	52		 push	 edx
  0005a	0f b6 45 08	 movzx	 eax, BYTE PTR _subAddress$[ebp]
  0005e	50		 push	 eax
  0005f	68 00 00 00 00	 push	 OFFSET ??_C@_1DM@JALKNEIN@?$AAM?$AAS?$AAP?$AA?3?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$DN?$AA?$CF?$AA0?$AA2?$AAX?$AA?5?$AA?$CF?$AA0?$AA2?$AAX?$AA?$AA@
  00064	6a 02		 push	 2
  00066	e8 00 00 00 00	 call	 ?LOG@@YAXHPB_WZZ	; LOG
  0006b	83 c4 1c	 add	 esp, 28			; 0000001cH

; 84   :     return ((WORD)result[0]) << 8 | result[1];

  0006e	0f b6 45 fc	 movzx	 eax, BYTE PTR _result$[ebp]
  00072	c1 e0 08	 shl	 eax, 8
  00075	0f b6 4d fd	 movzx	 ecx, BYTE PTR _result$[ebp+1]
  00079	0b c1		 or	 eax, ecx

; 85   : }

  0007b	8b e5		 mov	 esp, ebp
  0007d	5d		 pop	 ebp
  0007e	c2 08 00	 ret	 8
?GetRegister@CMSP34x0@@AAEGEG@Z ENDP			; CMSP34x0::GetRegister
PUBLIC	?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ; CMSP34x0::SetDSPRegister
; Function compile flags: /Odtp
;	COMDAT ?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_reg$ = 8						; size = 4
_value$ = 12						; size = 2
?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z PROC ; CMSP34x0::SetDSPRegister, COMDAT
; _this$ = ecx

; 116  : {

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

; 117  :     SetRegister(0x12, (WORD)reg, value);

  00007	0f b7 45 0c	 movzx	 eax, WORD PTR _value$[ebp]
  0000b	50		 push	 eax
  0000c	0f b7 4d 08	 movzx	 ecx, WORD PTR _reg$[ebp]
  00010	51		 push	 ecx
  00011	6a 12		 push	 18			; 00000012H
  00013	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	e8 00 00 00 00	 call	 ?SetRegister@CMSP34x0@@AAEXEGG@Z ; CMSP34x0::SetRegister

; 118  : }

  0001b	8b e5		 mov	 esp, ebp
  0001d	5d		 pop	 ebp
  0001e	c2 08 00	 ret	 8
?SetDSPRegister@CMSP34x0@@IAEXW4eDSPWriteRegister@1@G@Z ENDP ; CMSP34x0::SetDSPRegister
_TEXT	ENDS
PUBLIC	?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
; Function compile flags: /Odtp
;	COMDAT ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_reg$ = 8						; size = 4
?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z PROC ; CMSP34x0::GetDSPRegister, COMDAT
; _this$ = ecx

; 111  : {

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

; 112  :     return GetRegister(0x13, (WORD)reg);

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _reg$[ebp]
  0000b	50		 push	 eax
  0000c	6a 13		 push	 19			; 00000013H
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	e8 00 00 00 00	 call	 ?GetRegister@CMSP34x0@@AAEGEG@Z ; CMSP34x0::GetRegister

; 113  : }

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c2 04 00	 ret	 4
?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ENDP ; CMSP34x0::GetDSPRegister
_TEXT	ENDS
PUBLIC	?SetDEMRegister@CMSP34x0@@IAEXW4eDEMWriteRegister@1@G@Z ; CMSP34x0::SetDEMRegister
; Function compile flags: /Odtp
;	COMDAT ?SetDEMRegister@CMSP34x0@@IAEXW4eDEMWriteRegister@1@G@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_reg$ = 8						; size = 4
_value$ = 12						; size = 2
?SetDEMRegister@CMSP34x0@@IAEXW4eDEMWriteRegister@1@G@Z PROC ; CMSP34x0::SetDEMRegister, COMDAT
; _this$ = ecx

; 106  : {

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

; 107  :     SetRegister(0x10, (WORD)reg, value);

  00007	0f b7 45 0c	 movzx	 eax, WORD PTR _value$[ebp]
  0000b	50		 push	 eax
  0000c	0f b7 4d 08	 movzx	 ecx, WORD PTR _reg$[ebp]
  00010	51		 push	 ecx
  00011	6a 10		 push	 16			; 00000010H
  00013	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	e8 00 00 00 00	 call	 ?SetRegister@CMSP34x0@@AAEXEGG@Z ; CMSP34x0::SetRegister

; 108  : }

  0001b	8b e5		 mov	 esp, ebp
  0001d	5d		 pop	 ebp
  0001e	c2 08 00	 ret	 8
?SetDEMRegister@CMSP34x0@@IAEXW4eDEMWriteRegister@1@G@Z ENDP ; CMSP34x0::SetDEMRegister
_TEXT	ENDS
PUBLIC	?GetDEMRegister@CMSP34x0@@IAEGW4eDEMReadRegister@1@@Z ; CMSP34x0::GetDEMRegister
; Function compile flags: /Odtp
;	COMDAT ?GetDEMRegister@CMSP34x0@@IAEGW4eDEMReadRegister@1@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_reg$ = 8						; size = 4
?GetDEMRegister@CMSP34x0@@IAEGW4eDEMReadRegister@1@@Z PROC ; CMSP34x0::GetDEMRegister, COMDAT
; _this$ = ecx

; 101  : {

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

; 102  :     return GetRegister(0x11, (WORD)reg);

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _reg$[ebp]
  0000b	50		 push	 eax
  0000c	6a 11		 push	 17			; 00000011H
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	e8 00 00 00 00	 call	 ?GetRegister@CMSP34x0@@AAEGEG@Z ; CMSP34x0::GetRegister

; 103  : }

  00016	8b e5		 mov	 esp, ebp
  00018	5d		 pop	 ebp
  00019	c2 04 00	 ret	 4
?GetDEMRegister@CMSP34x0@@IAEGW4eDEMReadRegister@1@@Z ENDP ; CMSP34x0::GetDEMRegister
PUBLIC	?GetProductCode@CMSP34x0@@QAEGXZ		; CMSP34x0::GetProductCode
; Function compile flags: /Odtp
;	COMDAT ?GetProductCode@CMSP34x0@@QAEGXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_result$ = -4						; size = 2
?GetProductCode@CMSP34x0@@QAEGXZ PROC			; CMSP34x0::GetProductCode, COMDAT
; _this$ = ecx

; 143  : {

  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

; 144  :     WORD result = GetDSPRegister(DSP_RD_PRODUCT_CODE);

  00009	6a 1f		 push	 31			; 0000001fH
  0000b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00013	66 89 45 fc	 mov	 WORD PTR _result$[ebp], ax

; 145  :     return result;

  00017	66 8b 45 fc	 mov	 ax, WORD PTR _result$[ebp]

; 146  : }

  0001b	8b e5		 mov	 esp, ebp
  0001d	5d		 pop	 ebp
  0001e	c3		 ret	 0
?GetProductCode@CMSP34x0@@QAEGXZ ENDP			; CMSP34x0::GetProductCode
_TEXT	ENDS
PUBLIC	?GetVersion@CMSP34x0@@QAEGXZ			; CMSP34x0::GetVersion
; Function compile flags: /Odtp
;	COMDAT ?GetVersion@CMSP34x0@@QAEGXZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_result$ = -4						; size = 2
?GetVersion@CMSP34x0@@QAEGXZ PROC			; CMSP34x0::GetVersion, COMDAT
; _this$ = ecx

; 137  : {

  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

; 138  :     WORD result = GetDSPRegister(DSP_RD_VERSION_CODE);

  00009	6a 1e		 push	 30			; 0000001eH
  0000b	8b 4d f8	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	e8 00 00 00 00	 call	 ?GetDSPRegister@CMSP34x0@@IAEGW4eDSPReadRegister@1@@Z ; CMSP34x0::GetDSPRegister
  00013	66 89 45 fc	 mov	 WORD PTR _result$[ebp], ax

; 139  :     return result;

  00017	66 8b 45 fc	 mov	 ax, WORD PTR _result$[ebp]

; 140  : }

  0001b	8b e5		 mov	 esp, ebp
  0001d	5d		 pop	 ebp
  0001e	c3		 ret	 0
?GetVersion@CMSP34x0@@QAEGXZ ENDP			; CMSP34x0::GetVersion
END
