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

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

INCLUDELIB OLDNAMES

PUBLIC	??_R4CGenericI2CDevice@@6B@			; CGenericI2CDevice::`RTTI Complete Object Locator'
PUBLIC	??_R3CGenericI2CDevice@@8			; CGenericI2CDevice::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CGenericI2CDevice@@8			; CGenericI2CDevice::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EN@CI2CDevice@@8			; CI2CDevice::`RTTI Base Class Descriptor at (0,-1,0,77)'
PUBLIC	??_R1A@?0A@EA@CGenericI2CDevice@@8		; CGenericI2CDevice::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCGenericI2CDevice@@@8			; CGenericI2CDevice `RTTI Type Descriptor'
PUBLIC	?GetDefaultAddress@CGenericI2CDevice@@MBEEXZ	; CGenericI2CDevice::GetDefaultAddress
PUBLIC	??_GCGenericI2CDevice@@UAEPAXI@Z		; CGenericI2CDevice::`scalar deleting destructor'
PUBLIC	??_7CGenericI2CDevice@@6B@			; CGenericI2CDevice::`vftable'
EXTRN	??_ECGenericI2CDevice@@UAEPAXI@Z:PROC		; CGenericI2CDevice::`vector deleting destructor'
;	COMDAT ??_7CGenericI2CDevice@@6B@
CONST	SEGMENT
??_7CGenericI2CDevice@@6B@ DD FLAT:??_R4CGenericI2CDevice@@6B@ ; CGenericI2CDevice::`vftable'
	DD	FLAT:??_ECGenericI2CDevice@@UAEPAXI@Z
	DD	FLAT:?GetDefaultAddress@CGenericI2CDevice@@MBEEXZ
CONST	ENDS
;	COMDAT ??_R4CGenericI2CDevice@@6B@
rdata$r	SEGMENT
??_R4CGenericI2CDevice@@6B@ DD 00H			; CGenericI2CDevice::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCGenericI2CDevice@@@8
	DD	FLAT:??_R3CGenericI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R3CGenericI2CDevice@@8
rdata$r	SEGMENT
??_R3CGenericI2CDevice@@8 DD 00H			; CGenericI2CDevice::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	02H
	DD	FLAT:??_R2CGenericI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R2CGenericI2CDevice@@8
rdata$r	SEGMENT
??_R2CGenericI2CDevice@@8 DD FLAT:??_R1A@?0A@EA@CGenericI2CDevice@@8 ; CGenericI2CDevice::`RTTI Base Class Array'
	DD	FLAT:??_R1A@?0A@EN@CI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EN@CI2CDevice@@8
rdata$r	SEGMENT
??_R1A@?0A@EN@CI2CDevice@@8 DD FLAT:??_R0?AVCI2CDevice@@@8 ; CI2CDevice::`RTTI Base Class Descriptor at (0,-1,0,77)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	04dH
	DD	FLAT:??_R3CI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CGenericI2CDevice@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CGenericI2CDevice@@8 DD FLAT:??_R0?AVCGenericI2CDevice@@@8 ; CGenericI2CDevice::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	01H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CGenericI2CDevice@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCGenericI2CDevice@@@8
_DATA	SEGMENT
??_R0?AVCGenericI2CDevice@@@8 DD FLAT:??_7type_info@@6B@ ; CGenericI2CDevice `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCGenericI2CDevice@@', 00H
PUBLIC	?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z	; CI2CDevice::ReadFromSubAddress
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\i2cdevice.cpp
;	COMDAT ?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_buffer$ = -8						; size = 4
_result$ = -4						; size = 4
_subAddress$ = 8					; size = 1
_writeBuffer$ = 12					; size = 4
_writeBufferSize$ = 16					; size = 4
_readBuffer$ = 20					; size = 4
_readBufferSize$ = 24					; size = 4
?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z PROC	; CI2CDevice::ReadFromSubAddress, COMDAT
; _this$ = ecx

; 85   : {

  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

; 86   :     _ASSERTE(m_I2CBus != 0);
; 87   : 
; 88   :     if (writeBuffer == 0)

  00009	83 7d 0c 00	 cmp	 DWORD PTR _writeBuffer$[ebp], 0
  0000d	75 07		 jne	 SHORT $LN2@ReadFromSu

; 89   :     {
; 90   :         writeBufferSize = 0;

  0000f	c7 45 10 00 00
	00 00		 mov	 DWORD PTR _writeBufferSize$[ebp], 0
$LN2@ReadFromSu:

; 91   :     }
; 92   :     BYTE* buffer = (BYTE*)malloc(writeBufferSize + 2);

  00016	8b 45 10	 mov	 eax, DWORD PTR _writeBufferSize$[ebp]
  00019	83 c0 02	 add	 eax, 2
  0001c	50		 push	 eax
  0001d	e8 00 00 00 00	 call	 _malloc
  00022	83 c4 04	 add	 esp, 4
  00025	89 45 f8	 mov	 DWORD PTR _buffer$[ebp], eax

; 93   :     buffer[0] = m_DeviceAddress << 1;

  00028	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0002b	0f b6 51 08	 movzx	 edx, BYTE PTR [ecx+8]
  0002f	d1 e2		 shl	 edx, 1
  00031	8b 45 f8	 mov	 eax, DWORD PTR _buffer$[ebp]
  00034	88 10		 mov	 BYTE PTR [eax], dl

; 94   :     buffer[1] = subAddress;

  00036	8b 4d f8	 mov	 ecx, DWORD PTR _buffer$[ebp]
  00039	8a 55 08	 mov	 dl, BYTE PTR _subAddress$[ebp]
  0003c	88 51 01	 mov	 BYTE PTR [ecx+1], dl

; 95   :     if (writeBufferSize != 0)

  0003f	83 7d 10 00	 cmp	 DWORD PTR _writeBufferSize$[ebp], 0
  00043	74 17		 je	 SHORT $LN1@ReadFromSu

; 96   :     {
; 97   :         memcpy(&buffer[2], writeBuffer, writeBufferSize);

  00045	8b 45 10	 mov	 eax, DWORD PTR _writeBufferSize$[ebp]
  00048	50		 push	 eax
  00049	8b 4d 0c	 mov	 ecx, DWORD PTR _writeBuffer$[ebp]
  0004c	51		 push	 ecx
  0004d	8b 55 f8	 mov	 edx, DWORD PTR _buffer$[ebp]
  00050	83 c2 02	 add	 edx, 2
  00053	52		 push	 edx
  00054	e8 00 00 00 00	 call	 _memcpy
  00059	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@ReadFromSu:

; 98   :     }
; 99   : 
; 100  :     BOOL result = m_I2CBus->Read(buffer, writeBufferSize + 2, readBuffer, readBufferSize);

  0005c	8b 45 18	 mov	 eax, DWORD PTR _readBufferSize$[ebp]
  0005f	50		 push	 eax
  00060	8b 4d 14	 mov	 ecx, DWORD PTR _readBuffer$[ebp]
  00063	51		 push	 ecx
  00064	8b 55 10	 mov	 edx, DWORD PTR _writeBufferSize$[ebp]
  00067	83 c2 02	 add	 edx, 2
  0006a	52		 push	 edx
  0006b	8b 45 f8	 mov	 eax, DWORD PTR _buffer$[ebp]
  0006e	50		 push	 eax
  0006f	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00072	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  00075	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00078	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0007b	8b 12		 mov	 edx, DWORD PTR [edx]
  0007d	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00080	ff d0		 call	 eax
  00082	89 45 fc	 mov	 DWORD PTR _result$[ebp], eax

; 101  :     free(buffer);

  00085	8b 4d f8	 mov	 ecx, DWORD PTR _buffer$[ebp]
  00088	51		 push	 ecx
  00089	e8 00 00 00 00	 call	 _free
  0008e	83 c4 04	 add	 esp, 4

; 102  :     return result;

  00091	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 103  : }

  00094	8b e5		 mov	 esp, ebp
  00096	5d		 pop	 ebp
  00097	c2 14 00	 ret	 20			; 00000014H
?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z ENDP	; CI2CDevice::ReadFromSubAddress
_TEXT	ENDS
PUBLIC	?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z	; CI2CDevice::ReadFromSubAddress
; Function compile flags: /Odtp
;	COMDAT ?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_subAddress$ = 8					; size = 1
_readBuffer$ = 12					; size = 4
_readBufferSize$ = 16					; size = 4
?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z PROC	; CI2CDevice::ReadFromSubAddress, COMDAT
; _this$ = ecx

; 80   : {

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

; 81   :     return this->ReadFromSubAddress(subAddress, NULL, 0, readBuffer, readBufferSize);

  00007	8b 45 10	 mov	 eax, DWORD PTR _readBufferSize$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d 0c	 mov	 ecx, DWORD PTR _readBuffer$[ebp]
  0000e	51		 push	 ecx
  0000f	6a 00		 push	 0
  00011	6a 00		 push	 0
  00013	0f b6 55 08	 movzx	 edx, BYTE PTR _subAddress$[ebp]
  00017	52		 push	 edx
  00018	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001b	e8 00 00 00 00	 call	 ?ReadFromSubAddress@CI2CDevice@@QAEHEPBEIPAEI@Z ; CI2CDevice::ReadFromSubAddress

; 82   : }

  00020	8b e5		 mov	 esp, ebp
  00022	5d		 pop	 ebp
  00023	c2 0c 00	 ret	 12			; 0000000cH
?ReadFromSubAddress@CI2CDevice@@QAEHEPAEI@Z ENDP	; CI2CDevice::ReadFromSubAddress
_TEXT	ENDS
PUBLIC	?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z	; CI2CDevice::WriteToSubAddress
; Function compile flags: /Odtp
;	COMDAT ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z
_TEXT	SEGMENT
_this$ = -12						; size = 4
_buffer$ = -8						; size = 4
_result$ = -4						; size = 4
_subAddress$ = 8					; size = 1
_writeBuffer$ = 12					; size = 4
_writeBufferSize$ = 16					; size = 4
?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z PROC		; CI2CDevice::WriteToSubAddress, COMDAT
; _this$ = ecx

; 66   : {

  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

; 67   :     _ASSERTE(m_I2CBus != 0);
; 68   : 
; 69   :     BYTE* buffer = (BYTE*)malloc(writeBufferSize + 2);

  00009	8b 45 10	 mov	 eax, DWORD PTR _writeBufferSize$[ebp]
  0000c	83 c0 02	 add	 eax, 2
  0000f	50		 push	 eax
  00010	e8 00 00 00 00	 call	 _malloc
  00015	83 c4 04	 add	 esp, 4
  00018	89 45 f8	 mov	 DWORD PTR _buffer$[ebp], eax

; 70   :     buffer[0] = m_DeviceAddress << 1;

  0001b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0001e	0f b6 51 08	 movzx	 edx, BYTE PTR [ecx+8]
  00022	d1 e2		 shl	 edx, 1
  00024	8b 45 f8	 mov	 eax, DWORD PTR _buffer$[ebp]
  00027	88 10		 mov	 BYTE PTR [eax], dl

; 71   :     buffer[1] = subAddress;

  00029	8b 4d f8	 mov	 ecx, DWORD PTR _buffer$[ebp]
  0002c	8a 55 08	 mov	 dl, BYTE PTR _subAddress$[ebp]
  0002f	88 51 01	 mov	 BYTE PTR [ecx+1], dl

; 72   :     memcpy(&buffer[2], writeBuffer, writeBufferSize);

  00032	8b 45 10	 mov	 eax, DWORD PTR _writeBufferSize$[ebp]
  00035	50		 push	 eax
  00036	8b 4d 0c	 mov	 ecx, DWORD PTR _writeBuffer$[ebp]
  00039	51		 push	 ecx
  0003a	8b 55 f8	 mov	 edx, DWORD PTR _buffer$[ebp]
  0003d	83 c2 02	 add	 edx, 2
  00040	52		 push	 edx
  00041	e8 00 00 00 00	 call	 _memcpy
  00046	83 c4 0c	 add	 esp, 12			; 0000000cH

; 73   : 
; 74   :     BOOL result = m_I2CBus->Write(buffer, writeBufferSize + 2);

  00049	8b 45 10	 mov	 eax, DWORD PTR _writeBufferSize$[ebp]
  0004c	83 c0 02	 add	 eax, 2
  0004f	50		 push	 eax
  00050	8b 4d f8	 mov	 ecx, DWORD PTR _buffer$[ebp]
  00053	51		 push	 ecx
  00054	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  00057	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0005a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0005d	8b 49 04	 mov	 ecx, DWORD PTR [ecx+4]
  00060	8b 10		 mov	 edx, DWORD PTR [eax]
  00062	8b 42 0c	 mov	 eax, DWORD PTR [edx+12]
  00065	ff d0		 call	 eax
  00067	89 45 fc	 mov	 DWORD PTR _result$[ebp], eax

; 75   :     free(buffer);

  0006a	8b 4d f8	 mov	 ecx, DWORD PTR _buffer$[ebp]
  0006d	51		 push	 ecx
  0006e	e8 00 00 00 00	 call	 _free
  00073	83 c4 04	 add	 esp, 4

; 76   :     return result;

  00076	8b 45 fc	 mov	 eax, DWORD PTR _result$[ebp]

; 77   : }

  00079	8b e5		 mov	 esp, ebp
  0007b	5d		 pop	 ebp
  0007c	c2 0c 00	 ret	 12			; 0000000cH
?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ENDP		; CI2CDevice::WriteToSubAddress
_TEXT	ENDS
PUBLIC	?WriteToSubAddress@CI2CDevice@@QAEHEE@Z		; CI2CDevice::WriteToSubAddress
; Function compile flags: /Odtp
;	COMDAT ?WriteToSubAddress@CI2CDevice@@QAEHEE@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_subAddress$ = 8					; size = 1
_writeByte$ = 12					; size = 1
?WriteToSubAddress@CI2CDevice@@QAEHEE@Z PROC		; CI2CDevice::WriteToSubAddress, COMDAT
; _this$ = ecx

; 61   : {

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

; 62   :     return WriteToSubAddress(subAddress, &writeByte, 1);

  00007	6a 01		 push	 1
  00009	8d 45 0c	 lea	 eax, DWORD PTR _writeByte$[ebp]
  0000c	50		 push	 eax
  0000d	0f b6 4d 08	 movzx	 ecx, BYTE PTR _subAddress$[ebp]
  00011	51		 push	 ecx
  00012	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00015	e8 00 00 00 00	 call	 ?WriteToSubAddress@CI2CDevice@@QAEHEPBEI@Z ; CI2CDevice::WriteToSubAddress

; 63   : }

  0001a	8b e5		 mov	 esp, ebp
  0001c	5d		 pop	 ebp
  0001d	c2 08 00	 ret	 8
?WriteToSubAddress@CI2CDevice@@QAEHEE@Z ENDP		; CI2CDevice::WriteToSubAddress
_TEXT	ENDS
PUBLIC	?GetDeviceAddress@CI2CDevice@@QBEEXZ		; CI2CDevice::GetDeviceAddress
; Function compile flags: /Odtp
;	COMDAT ?GetDeviceAddress@CI2CDevice@@QBEEXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetDeviceAddress@CI2CDevice@@QBEEXZ PROC		; CI2CDevice::GetDeviceAddress, COMDAT
; _this$ = ecx

; 56   : {

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

; 57   :     return m_DeviceAddress;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8a 40 08	 mov	 al, BYTE PTR [eax+8]

; 58   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetDeviceAddress@CI2CDevice@@QBEEXZ ENDP		; CI2CDevice::GetDeviceAddress
_TEXT	ENDS
PUBLIC	?GetI2CBus@CI2CDevice@@QBEPAVCI2CBus@@XZ	; CI2CDevice::GetI2CBus
; Function compile flags: /Odtp
;	COMDAT ?GetI2CBus@CI2CDevice@@QBEPAVCI2CBus@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetI2CBus@CI2CDevice@@QBEPAVCI2CBus@@XZ PROC		; CI2CDevice::GetI2CBus, COMDAT
; _this$ = ecx

; 51   : {

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

; 52   :     return m_I2CBus;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 40 04	 mov	 eax, DWORD PTR [eax+4]

; 53   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?GetI2CBus@CI2CDevice@@QBEPAVCI2CBus@@XZ ENDP		; CI2CDevice::GetI2CBus
_TEXT	ENDS
PUBLIC	?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z	; CI2CDevice::SetI2CBus
; Function compile flags: /Odtp
;	COMDAT ?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z
_TEXT	SEGMENT
tv72 = -5						; size = 1
_this$ = -4						; size = 4
_i2cBus$ = 8						; size = 4
_address$ = 12						; size = 1
?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z PROC		; CI2CDevice::SetI2CBus, COMDAT
; _this$ = ecx

; 43   : {

  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

; 44   :     _ASSERTE(i2cBus != NULL);
; 45   : 
; 46   :     this->m_I2CBus = i2cBus;

  00009	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	8b 4d 08	 mov	 ecx, DWORD PTR _i2cBus$[ebp]
  0000f	89 48 04	 mov	 DWORD PTR [eax+4], ecx

; 47   :     this->m_DeviceAddress = (address == 0x00) ? GetDefaultAddress() : address;

  00012	0f b6 55 0c	 movzx	 edx, BYTE PTR _address$[ebp]
  00016	85 d2		 test	 edx, edx
  00018	75 12		 jne	 SHORT $LN3@SetI2CBus
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	8b 10		 mov	 edx, DWORD PTR [eax]
  0001f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00022	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  00025	ff d0		 call	 eax
  00027	88 45 fb	 mov	 BYTE PTR tv72[ebp], al
  0002a	eb 06		 jmp	 SHORT $LN4@SetI2CBus
$LN3@SetI2CBus:
  0002c	8a 4d 0c	 mov	 cl, BYTE PTR _address$[ebp]
  0002f	88 4d fb	 mov	 BYTE PTR tv72[ebp], cl
$LN4@SetI2CBus:
  00032	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  00035	8a 45 fb	 mov	 al, BYTE PTR tv72[ebp]
  00038	88 42 08	 mov	 BYTE PTR [edx+8], al

; 48   : }

  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c2 08 00	 ret	 8
?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z ENDP		; CI2CDevice::SetI2CBus
_TEXT	ENDS
PUBLIC	??0CI2CDevice@@QAE@XZ				; CI2CDevice::CI2CDevice
; Function compile flags: /Odtp
;	COMDAT ??0CI2CDevice@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0CI2CDevice@@QAE@XZ PROC				; CI2CDevice::CI2CDevice, COMDAT
; _this$ = ecx

; 37   : {

  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 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CI2CDevice@@6B@

; 38   :     this->m_I2CBus = 0;

  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0

; 39   :     this->m_DeviceAddress = 0;

  0001a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001d	c6 42 08 00	 mov	 BYTE PTR [edx+8], 0

; 40   : }

  00021	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00024	8b e5		 mov	 esp, ebp
  00026	5d		 pop	 ebp
  00027	c3		 ret	 0
??0CI2CDevice@@QAE@XZ ENDP				; CI2CDevice::CI2CDevice
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\i2cdevice.h
_TEXT	ENDS
;	COMDAT ?GetDefaultAddress@CGenericI2CDevice@@MBEEXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?GetDefaultAddress@CGenericI2CDevice@@MBEEXZ PROC	; CGenericI2CDevice::GetDefaultAddress, COMDAT
; _this$ = ecx

; 83   :     BYTE GetDefaultAddress() const { return 0x00; }

  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	32 c0		 xor	 al, al
  00009	8b e5		 mov	 esp, ebp
  0000b	5d		 pop	 ebp
  0000c	c3		 ret	 0
?GetDefaultAddress@CGenericI2CDevice@@MBEEXZ ENDP	; CGenericI2CDevice::GetDefaultAddress
PUBLIC	?SetI2CBus@CGenericI2CDevice@@QAEXPAVCI2CBus@@E@Z ; CGenericI2CDevice::SetI2CBus
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\i2cdevice.cpp
;	COMDAT ?SetI2CBus@CGenericI2CDevice@@QAEXPAVCI2CBus@@E@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_i2cBus$ = 8						; size = 4
_address$ = 12						; size = 1
?SetI2CBus@CGenericI2CDevice@@QAEXPAVCI2CBus@@E@Z PROC	; CGenericI2CDevice::SetI2CBus, COMDAT
; _this$ = ecx

; 124  : {

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

; 125  :     CI2CDevice::SetI2CBus(i2cBus, address);

  00007	0f b6 45 0c	 movzx	 eax, BYTE PTR _address$[ebp]
  0000b	50		 push	 eax
  0000c	8b 4d 08	 mov	 ecx, DWORD PTR _i2cBus$[ebp]
  0000f	51		 push	 ecx
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	e8 00 00 00 00	 call	 ?SetI2CBus@CI2CDevice@@QAEXPAVCI2CBus@@E@Z ; CI2CDevice::SetI2CBus

; 126  : }

  00018	8b e5		 mov	 esp, ebp
  0001a	5d		 pop	 ebp
  0001b	c2 08 00	 ret	 8
?SetI2CBus@CGenericI2CDevice@@QAEXPAVCI2CBus@@E@Z ENDP	; CGenericI2CDevice::SetI2CBus
_TEXT	ENDS
PUBLIC	??1CGenericI2CDevice@@UAE@XZ			; CGenericI2CDevice::~CGenericI2CDevice
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??1CGenericI2CDevice@@UAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??1CGenericI2CDevice@@UAE@XZ$0
__ehfuncinfo$??1CGenericI2CDevice@@UAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??1CGenericI2CDevice@@UAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??1CGenericI2CDevice@@UAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??1CGenericI2CDevice@@UAE@XZ PROC			; CGenericI2CDevice::~CGenericI2CDevice, COMDAT
; _this$ = ecx

; 120  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??1CGenericI2CDevice@@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 ??_7CGenericI2CDevice@@6B@
  0002f	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0

; 121  : }

  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$??1CGenericI2CDevice@@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$??1CGenericI2CDevice@@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$??1CGenericI2CDevice@@UAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??1CGenericI2CDevice@@UAE@XZ ENDP			; CGenericI2CDevice::~CGenericI2CDevice
PUBLIC	??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z	; CGenericI2CDevice::CGenericI2CDevice
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z$0
__ehfuncinfo$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
_i2cBus$ = 8						; size = 4
_address$ = 12						; size = 1
??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z PROC		; CGenericI2CDevice::CGenericI2CDevice, COMDAT
; _this$ = ecx

; 115  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	51		 push	 ecx
  00012	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00017	33 c5		 xor	 eax, ebp
  00019	50		 push	 eax
  0001a	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001d	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00023	89 4d f0	 mov	 DWORD PTR _this$[ebp], ecx
  00026	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	e8 00 00 00 00	 call	 ??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 ??_7CGenericI2CDevice@@6B@

; 116  :     SetI2CBus(i2cBus, address);

  0003e	0f b6 4d 0c	 movzx	 ecx, BYTE PTR _address$[ebp]
  00042	51		 push	 ecx
  00043	8b 55 08	 mov	 edx, DWORD PTR _i2cBus$[ebp]
  00046	52		 push	 edx
  00047	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  0004a	e8 00 00 00 00	 call	 ?SetI2CBus@CGenericI2CDevice@@QAEXPAVCI2CBus@@E@Z ; CGenericI2CDevice::SetI2CBus

; 117  : }

  0004f	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00056	8b 45 f0	 mov	 eax, DWORD PTR _this$[ebp]
  00059	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0005c	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00063	59		 pop	 ecx
  00064	8b e5		 mov	 esp, ebp
  00066	5d		 pop	 ebp
  00067	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z$0:
  00000	8b 4d f0	 mov	 ecx, DWORD PTR _this$[ebp]
  00003	e9 00 00 00 00	 jmp	 ??1CI2CDevice@@UAE@XZ	; CI2CDevice::~CI2CDevice
__ehhandler$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@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 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$??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CGenericI2CDevice@@QAE@PAVCI2CBus@@E@Z ENDP		; CGenericI2CDevice::CGenericI2CDevice
; Function compile flags: /Odtp
;	COMDAT ??_GCGenericI2CDevice@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCGenericI2CDevice@@UAEPAXI@Z PROC			; CGenericI2CDevice::`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	 ??1CGenericI2CDevice@@UAE@XZ ; CGenericI2CDevice::~CGenericI2CDevice
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@50
  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@50:
  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
??_GCGenericI2CDevice@@UAEPAXI@Z ENDP			; CGenericI2CDevice::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CGenericI2CDevice@@QAE@XZ			; CGenericI2CDevice::CGenericI2CDevice
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??0CGenericI2CDevice@@QAE@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??0CGenericI2CDevice@@QAE@XZ$0
__ehfuncinfo$??0CGenericI2CDevice@@QAE@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??0CGenericI2CDevice@@QAE@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??0CGenericI2CDevice@@QAE@XZ
_TEXT	SEGMENT
_this$ = -16						; size = 4
__$EHRec$ = -12						; size = 12
??0CGenericI2CDevice@@QAE@XZ PROC			; CGenericI2CDevice::CGenericI2CDevice, COMDAT
; _this$ = ecx

; 111  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??0CGenericI2CDevice@@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 ??_7CGenericI2CDevice@@6B@

; 112  : }

  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$??0CGenericI2CDevice@@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$??0CGenericI2CDevice@@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$??0CGenericI2CDevice@@QAE@XZ
  0001e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??0CGenericI2CDevice@@QAE@XZ ENDP			; CGenericI2CDevice::CGenericI2CDevice
END
