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

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

INCLUDELIB OLDNAMES

PUBLIC	??HCBitVector@@UAE?AV0@ABV0@@Z			; CBitVector::operator+
PUBLIC	??YCBitVector@@UAEAAV0@ABV0@@Z			; CBitVector::operator+=
PUBLIC	??UCBitVector@@UBE?AV0@ABV0@@Z			; CBitVector::operator|
PUBLIC	??_5CBitVector@@UAEAAV0@ABV0@@Z			; CBitVector::operator|=
PUBLIC	??ICBitVector@@UBE?AV0@ABV0@@Z			; CBitVector::operator&
PUBLIC	??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z		; CBitVector::operator&
PUBLIC	??_4CBitVector@@UAEAAV0@ABV0@@Z			; CBitVector::operator&=
PUBLIC	??_4CBitVector@@UAEAAV0@ABVCBitMask@@@Z		; CBitVector::operator&=
PUBLIC	??SCBitVector@@UBE?AV0@XZ			; CBitVector::operator~
PUBLIC	?mask@CBitVector@@UBEKXZ			; CBitVector::mask
PUBLIC	?value@CBitVector@@UBEKXZ			; CBitVector::value
PUBLIC	?value@CBitVector@@UBEKEE@Z			; CBitVector::value
PUBLIC	?value@CBitVector@@UAEKABVCBitBlock@@@Z		; CBitVector::value
PUBLIC	??_R4CBitVector@@6B@				; CBitVector::`RTTI Complete Object Locator'
PUBLIC	??_R3CBitVector@@8				; CBitVector::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CBitVector@@8				; CBitVector::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CBitVector@@8			; CBitVector::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCBitVector@@@8				; CBitVector `RTTI Type Descriptor'
PUBLIC	??UCBitMask@@UBE?AV0@ABV0@@Z			; CBitMask::operator|
PUBLIC	??_5CBitMask@@UAEAAV0@ABV0@@Z			; CBitMask::operator|=
PUBLIC	??ICBitMask@@UBE?AV0@ABV0@@Z			; CBitMask::operator&
PUBLIC	??_4CBitMask@@UAEAAV0@ABV0@@Z			; CBitMask::operator&=
PUBLIC	??SCBitMask@@UBE?AV0@XZ				; CBitMask::operator~
PUBLIC	?mask@CBitMask@@UBEKXZ				; CBitMask::mask
PUBLIC	?mask@CBitMask@@UBEKK@Z				; CBitMask::mask
PUBLIC	??_R4CBitMask@@6B@				; CBitMask::`RTTI Complete Object Locator'
PUBLIC	??_R3CBitMask@@8				; CBitMask::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CBitMask@@8				; CBitMask::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CBitMask@@8			; CBitMask::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCBitMask@@@8				; CBitMask `RTTI Type Descriptor'
PUBLIC	?unpack@CBitBlock@@UBEKK@Z			; CBitBlock::unpack
PUBLIC	?pack@CBitBlock@@UBEKK@Z			; CBitBlock::pack
PUBLIC	?subset@CBitBlock@@UBE?AV1@K@Z			; CBitBlock::subset
PUBLIC	?subset@CBitBlock@@UBE?AV1@KK@Z			; CBitBlock::subset
PUBLIC	?mask@CBitBlock@@UBEKXZ				; CBitBlock::mask
PUBLIC	?offset@CBitBlock@@UBEKXZ			; CBitBlock::offset
PUBLIC	??_R4CBitBlock@@6B@				; CBitBlock::`RTTI Complete Object Locator'
PUBLIC	??_R3CBitBlock@@8				; CBitBlock::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CBitBlock@@8				; CBitBlock::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@EA@CBitBlock@@8			; CBitBlock::`RTTI Base Class Descriptor at (0,-1,0,64)'
PUBLIC	??_R0?AVCBitBlock@@@8				; CBitBlock `RTTI Type Descriptor'
PUBLIC	??_GCBitBlock@@UAEPAXI@Z			; CBitBlock::`scalar deleting destructor'
PUBLIC	??_GCBitMask@@UAEPAXI@Z				; CBitMask::`scalar deleting destructor'
PUBLIC	??_GCBitVector@@UAEPAXI@Z			; CBitVector::`scalar deleting destructor'
PUBLIC	??_7CBitBlock@@6B@				; CBitBlock::`vftable'
PUBLIC	??_7CBitMask@@6B@				; CBitMask::`vftable'
PUBLIC	??_7CBitVector@@6B@				; CBitVector::`vftable'
EXTRN	??_ECBitBlock@@UAEPAXI@Z:PROC			; CBitBlock::`vector deleting destructor'
EXTRN	??_ECBitMask@@UAEPAXI@Z:PROC			; CBitMask::`vector deleting destructor'
EXTRN	??_ECBitVector@@UAEPAXI@Z:PROC			; CBitVector::`vector deleting destructor'
;	COMDAT ??_7CBitVector@@6B@
CONST	SEGMENT
??_7CBitVector@@6B@ DD FLAT:??_R4CBitVector@@6B@	; CBitVector::`vftable'
	DD	FLAT:??_ECBitVector@@UAEPAXI@Z
	DD	FLAT:?value@CBitVector@@UAEKABVCBitBlock@@@Z
	DD	FLAT:?value@CBitVector@@UBEKEE@Z
	DD	FLAT:?value@CBitVector@@UBEKXZ
	DD	FLAT:?mask@CBitVector@@UBEKXZ
	DD	FLAT:??SCBitVector@@UBE?AV0@XZ
	DD	FLAT:??_4CBitVector@@UAEAAV0@ABVCBitMask@@@Z
	DD	FLAT:??_4CBitVector@@UAEAAV0@ABV0@@Z
	DD	FLAT:??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z
	DD	FLAT:??ICBitVector@@UBE?AV0@ABV0@@Z
	DD	FLAT:??_5CBitVector@@UAEAAV0@ABV0@@Z
	DD	FLAT:??UCBitVector@@UBE?AV0@ABV0@@Z
	DD	FLAT:??YCBitVector@@UAEAAV0@ABV0@@Z
	DD	FLAT:??HCBitVector@@UAE?AV0@ABV0@@Z
CONST	ENDS
;	COMDAT ??_R4CBitVector@@6B@
rdata$r	SEGMENT
??_R4CBitVector@@6B@ DD 00H				; CBitVector::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCBitVector@@@8
	DD	FLAT:??_R3CBitVector@@8
rdata$r	ENDS
;	COMDAT ??_R3CBitVector@@8
rdata$r	SEGMENT
??_R3CBitVector@@8 DD 00H				; CBitVector::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2CBitVector@@8
rdata$r	ENDS
;	COMDAT ??_R2CBitVector@@8
rdata$r	SEGMENT
??_R2CBitVector@@8 DD FLAT:??_R1A@?0A@EA@CBitVector@@8	; CBitVector::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CBitVector@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CBitVector@@8 DD FLAT:??_R0?AVCBitVector@@@8 ; CBitVector::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CBitVector@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCBitVector@@@8
_DATA	SEGMENT
??_R0?AVCBitVector@@@8 DD FLAT:??_7type_info@@6B@	; CBitVector `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCBitVector@@', 00H
_DATA	ENDS
;	COMDAT ??_7CBitMask@@6B@
CONST	SEGMENT
??_7CBitMask@@6B@ DD FLAT:??_R4CBitMask@@6B@		; CBitMask::`vftable'
	DD	FLAT:??_ECBitMask@@UAEPAXI@Z
	DD	FLAT:?mask@CBitMask@@UBEKK@Z
	DD	FLAT:?mask@CBitMask@@UBEKXZ
	DD	FLAT:??SCBitMask@@UBE?AV0@XZ
	DD	FLAT:??_4CBitMask@@UAEAAV0@ABV0@@Z
	DD	FLAT:??ICBitMask@@UBE?AV0@ABV0@@Z
	DD	FLAT:??_5CBitMask@@UAEAAV0@ABV0@@Z
	DD	FLAT:??UCBitMask@@UBE?AV0@ABV0@@Z
CONST	ENDS
;	COMDAT ??_R4CBitMask@@6B@
rdata$r	SEGMENT
??_R4CBitMask@@6B@ DD 00H				; CBitMask::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCBitMask@@@8
	DD	FLAT:??_R3CBitMask@@8
rdata$r	ENDS
;	COMDAT ??_R3CBitMask@@8
rdata$r	SEGMENT
??_R3CBitMask@@8 DD 00H					; CBitMask::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2CBitMask@@8
rdata$r	ENDS
;	COMDAT ??_R2CBitMask@@8
rdata$r	SEGMENT
??_R2CBitMask@@8 DD FLAT:??_R1A@?0A@EA@CBitMask@@8	; CBitMask::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CBitMask@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CBitMask@@8 DD FLAT:??_R0?AVCBitMask@@@8	; CBitMask::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CBitMask@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCBitMask@@@8
_DATA	SEGMENT
??_R0?AVCBitMask@@@8 DD FLAT:??_7type_info@@6B@		; CBitMask `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCBitMask@@', 00H
_DATA	ENDS
;	COMDAT ??_7CBitBlock@@6B@
CONST	SEGMENT
??_7CBitBlock@@6B@ DD FLAT:??_R4CBitBlock@@6B@		; CBitBlock::`vftable'
	DD	FLAT:??_ECBitBlock@@UAEPAXI@Z
	DD	FLAT:?offset@CBitBlock@@UBEKXZ
	DD	FLAT:?mask@CBitBlock@@UBEKXZ
	DD	FLAT:?subset@CBitBlock@@UBE?AV1@KK@Z
	DD	FLAT:?subset@CBitBlock@@UBE?AV1@K@Z
	DD	FLAT:?pack@CBitBlock@@UBEKK@Z
	DD	FLAT:?unpack@CBitBlock@@UBEKK@Z
CONST	ENDS
;	COMDAT ??_R4CBitBlock@@6B@
rdata$r	SEGMENT
??_R4CBitBlock@@6B@ DD 00H				; CBitBlock::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCBitBlock@@@8
	DD	FLAT:??_R3CBitBlock@@8
rdata$r	ENDS
;	COMDAT ??_R3CBitBlock@@8
rdata$r	SEGMENT
??_R3CBitBlock@@8 DD 00H				; CBitBlock::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2CBitBlock@@8
rdata$r	ENDS
;	COMDAT ??_R2CBitBlock@@8
rdata$r	SEGMENT
??_R2CBitBlock@@8 DD FLAT:??_R1A@?0A@EA@CBitBlock@@8	; CBitBlock::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@EA@CBitBlock@@8
rdata$r	SEGMENT
??_R1A@?0A@EA@CBitBlock@@8 DD FLAT:??_R0?AVCBitBlock@@@8 ; CBitBlock::`RTTI Base Class Descriptor at (0,-1,0,64)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	040H
	DD	FLAT:??_R3CBitBlock@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCBitBlock@@@8
_DATA	SEGMENT
??_R0?AVCBitBlock@@@8 DD FLAT:??_7type_info@@6B@	; CBitBlock `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCBitBlock@@', 00H
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\bitvector.cpp
;	COMDAT ??_4CBitVector@@UAEAAV0@ABVCBitMask@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_m$ = 8							; size = 4
??_4CBitVector@@UAEAAV0@ABVCBitMask@@@Z PROC		; CBitVector::operator&=, COMDAT
; _this$ = ecx

; 240  : {

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

; 241  :     m_mask &= m.mask();

  00007	8b 45 08	 mov	 eax, DWORD PTR _m$[ebp]
  0000a	8b 10		 mov	 edx, DWORD PTR [eax]
  0000c	8b 4d 08	 mov	 ecx, DWORD PTR _m$[ebp]
  0000f	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  00012	ff d0		 call	 eax
  00014	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00017	23 41 04	 and	 eax, DWORD PTR [ecx+4]
  0001a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001d	89 42 04	 mov	 DWORD PTR [edx+4], eax

; 242  :     m_value &= m_mask;

  00020	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00023	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00026	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00029	23 51 04	 and	 edx, DWORD PTR [ecx+4]
  0002c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0002f	89 50 08	 mov	 DWORD PTR [eax+8], edx

; 243  :     return *this;

  00032	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 244  : }

  00035	8b e5		 mov	 esp, ebp
  00037	5d		 pop	 ebp
  00038	c2 04 00	 ret	 4
??_4CBitVector@@UAEAAV0@ABVCBitMask@@@Z ENDP		; CBitVector::operator&=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??YCBitVector@@UAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_b$ = 8							; size = 4
??YCBitVector@@UAEAAV0@ABV0@@Z PROC			; CBitVector::operator+=, COMDAT
; _this$ = ecx

; 228  : {

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

; 229  :     m_mask |= b.m_mask;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _b$[ebp]
  0000d	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00010	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 230  :     m_value = m_value & ~b.m_mask | b.m_value;

  00019	8b 4d 08	 mov	 ecx, DWORD PTR _b$[ebp]
  0001c	8b 51 04	 mov	 edx, DWORD PTR [ecx+4]
  0001f	f7 d2		 not	 edx
  00021	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00024	23 50 08	 and	 edx, DWORD PTR [eax+8]
  00027	8b 4d 08	 mov	 ecx, DWORD PTR _b$[ebp]
  0002a	0b 51 08	 or	 edx, DWORD PTR [ecx+8]
  0002d	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00030	89 50 08	 mov	 DWORD PTR [eax+8], edx

; 231  :     return *this;

  00033	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 232  : }

  00036	8b e5		 mov	 esp, ebp
  00038	5d		 pop	 ebp
  00039	c2 04 00	 ret	 4
??YCBitVector@@UAEAAV0@ABV0@@Z ENDP			; CBitVector::operator+=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_5CBitVector@@UAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_b$ = 8							; size = 4
??_5CBitVector@@UAEAAV0@ABV0@@Z PROC			; CBitVector::operator|=, COMDAT
; _this$ = ecx

; 216  : {

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

; 217  :     m_mask |= b.m_mask;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _b$[ebp]
  0000d	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00010	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 218  :     m_value |= b.m_value;

  00019	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001c	8b 55 08	 mov	 edx, DWORD PTR _b$[ebp]
  0001f	8b 41 08	 mov	 eax, DWORD PTR [ecx+8]
  00022	0b 42 08	 or	 eax, DWORD PTR [edx+8]
  00025	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00028	89 41 08	 mov	 DWORD PTR [ecx+8], eax

; 219  :     return *this;

  0002b	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 220  : }

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c2 04 00	 ret	 4
??_5CBitVector@@UAEAAV0@ABV0@@Z ENDP			; CBitVector::operator|=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_4CBitVector@@UAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_b$ = 8							; size = 4
??_4CBitVector@@UAEAAV0@ABV0@@Z PROC			; CBitVector::operator&=, COMDAT
; _this$ = ecx

; 204  : {

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

; 205  :     m_mask |= b.m_mask;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _b$[ebp]
  0000d	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00010	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 206  :     m_value &= b.m_value;

  00019	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0001c	8b 55 08	 mov	 edx, DWORD PTR _b$[ebp]
  0001f	8b 41 08	 mov	 eax, DWORD PTR [ecx+8]
  00022	23 42 08	 and	 eax, DWORD PTR [edx+8]
  00025	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00028	89 41 08	 mov	 DWORD PTR [ecx+8], eax

; 207  :     return *this;

  0002b	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 208  : }

  0002e	8b e5		 mov	 esp, ebp
  00030	5d		 pop	 ebp
  00031	c2 04 00	 ret	 4
??_4CBitVector@@UAEAAV0@ABV0@@Z ENDP			; CBitVector::operator&=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?mask@CBitVector@@UBEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?mask@CBitVector@@UBEKXZ PROC				; CBitVector::mask, COMDAT
; _this$ = ecx

; 194  : {

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

; 195  :     return m_mask;

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

; 196  : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?mask@CBitVector@@UBEKXZ ENDP				; CBitVector::mask
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?value@CBitVector@@UAEKABVCBitBlock@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bitBlock$ = 8						; size = 4
?value@CBitVector@@UAEKABVCBitBlock@@@Z PROC		; CBitVector::value, COMDAT
; _this$ = ecx

; 189  : {

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

; 190  :     return bitBlock.unpack(m_value);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  0000d	51		 push	 ecx
  0000e	8b 55 08	 mov	 edx, DWORD PTR _bitBlock$[ebp]
  00011	8b 02		 mov	 eax, DWORD PTR [edx]
  00013	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00016	8b 50 18	 mov	 edx, DWORD PTR [eax+24]
  00019	ff d2		 call	 edx

; 191  : }

  0001b	8b e5		 mov	 esp, ebp
  0001d	5d		 pop	 ebp
  0001e	c2 04 00	 ret	 4
?value@CBitVector@@UAEKABVCBitBlock@@@Z ENDP		; CBitVector::value
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?value@CBitVector@@UBEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?value@CBitVector@@UBEKXZ PROC				; CBitVector::value, COMDAT
; _this$ = ecx

; 179  : {

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

; 180  :     return m_value;

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

; 181  : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?value@CBitVector@@UBEKXZ ENDP				; CBitVector::value
_TEXT	ENDS
PUBLIC	??1CBitVector@@UAE@XZ				; CBitVector::~CBitVector
; Function compile flags: /Odtp
;	COMDAT ??1CBitVector@@UAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1CBitVector@@UAE@XZ PROC				; CBitVector::~CBitVector, COMDAT
; _this$ = ecx

; 175  : {

  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 ??_7CBitVector@@6B@

; 176  : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
??1CBitVector@@UAE@XZ ENDP				; CBitVector::~CBitVector
_TEXT	ENDS
PUBLIC	??0CBitVector@@QAE@ABVCBitBlock@@K@Z		; CBitVector::CBitVector
; Function compile flags: /Odtp
;	COMDAT ??0CBitVector@@QAE@ABVCBitBlock@@K@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bitBlock$ = 8						; size = 4
_value$ = 12						; size = 4
??0CBitVector@@QAE@ABVCBitBlock@@K@Z PROC		; CBitVector::CBitVector, COMDAT
; _this$ = ecx

; 171  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	56		 push	 esi
  00005	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00008	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000b	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CBitVector@@6B@
  00011	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00014	8b 11		 mov	 edx, DWORD PTR [ecx]
  00016	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00019	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0001c	ff d0		 call	 eax
  0001e	8b f0		 mov	 esi, eax
  00020	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00023	8b 11		 mov	 edx, DWORD PTR [ecx]
  00025	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00028	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0002b	ff d0		 call	 eax
  0002d	8b c8		 mov	 ecx, eax
  0002f	d3 e6		 shl	 esi, cl
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	89 71 04	 mov	 DWORD PTR [ecx+4], esi
  00037	8b 55 0c	 mov	 edx, DWORD PTR _value$[ebp]
  0003a	52		 push	 edx
  0003b	8b 45 08	 mov	 eax, DWORD PTR _bitBlock$[ebp]
  0003e	8b 10		 mov	 edx, DWORD PTR [eax]
  00040	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00043	8b 42 14	 mov	 eax, DWORD PTR [edx+20]
  00046	ff d0		 call	 eax
  00048	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0004b	89 41 08	 mov	 DWORD PTR [ecx+8], eax

; 172  : }

  0004e	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00051	5e		 pop	 esi
  00052	8b e5		 mov	 esp, ebp
  00054	5d		 pop	 ebp
  00055	c2 08 00	 ret	 8
??0CBitVector@@QAE@ABVCBitBlock@@K@Z ENDP		; CBitVector::CBitVector
_TEXT	ENDS
PUBLIC	??0CBitVector@@QAE@KK@Z				; CBitVector::CBitVector
; Function compile flags: /Odtp
;	COMDAT ??0CBitVector@@QAE@KK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_mask$ = 8						; size = 4
_value$ = 12						; size = 4
??0CBitVector@@QAE@KK@Z PROC				; CBitVector::CBitVector, COMDAT
; _this$ = ecx

; 161  : {

  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 ??_7CBitVector@@6B@
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 55 08	 mov	 edx, DWORD PTR _mask$[ebp]
  00016	89 51 04	 mov	 DWORD PTR [ecx+4], edx
  00019	8b 45 0c	 mov	 eax, DWORD PTR _value$[ebp]
  0001c	23 45 08	 and	 eax, DWORD PTR _mask$[ebp]
  0001f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00022	89 41 08	 mov	 DWORD PTR [ecx+8], eax

; 162  : }

  00025	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00028	8b e5		 mov	 esp, ebp
  0002a	5d		 pop	 ebp
  0002b	c2 08 00	 ret	 8
??0CBitVector@@QAE@KK@Z ENDP				; CBitVector::CBitVector
_TEXT	ENDS
PUBLIC	??0CBitVector@@QAE@K@Z				; CBitVector::CBitVector
; Function compile flags: /Odtp
;	COMDAT ??0CBitVector@@QAE@K@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_value$ = 8						; size = 4
??0CBitVector@@QAE@K@Z PROC				; CBitVector::CBitVector, COMDAT
; _this$ = ecx

; 156  : {

  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 ??_7CBitVector@@6B@
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 ff ff
	ff ff		 mov	 DWORD PTR [ecx+4], -1
  0001a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001d	8b 45 08	 mov	 eax, DWORD PTR _value$[ebp]
  00020	89 42 08	 mov	 DWORD PTR [edx+8], eax

; 157  : }

  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
??0CBitVector@@QAE@K@Z ENDP				; CBitVector::CBitVector
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_GCBitVector@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCBitVector@@UAEPAXI@Z PROC				; CBitVector::`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	 ??1CBitVector@@UAE@XZ	; CBitVector::~CBitVector
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@14
  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@14:
  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
??_GCBitVector@@UAEPAXI@Z ENDP				; CBitVector::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CBitVector@@QAE@XZ				; CBitVector::CBitVector
; Function compile flags: /Odtp
;	COMDAT ??0CBitVector@@QAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??0CBitVector@@QAE@XZ PROC				; CBitVector::CBitVector, COMDAT
; _this$ = ecx

; 151  : {

  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 ??_7CBitVector@@6B@
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	c7 41 04 00 00
	00 00		 mov	 DWORD PTR [ecx+4], 0
  0001a	8b 55 fc	 mov	 edx, DWORD PTR _this$[ebp]
  0001d	c7 42 08 00 00
	00 00		 mov	 DWORD PTR [edx+8], 0

; 152  : }

  00024	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00027	8b e5		 mov	 esp, ebp
  00029	5d		 pop	 ebp
  0002a	c3		 ret	 0
??0CBitVector@@QAE@XZ ENDP				; CBitVector::CBitVector
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_5CBitMask@@UAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_m$ = 8							; size = 4
??_5CBitMask@@UAEAAV0@ABV0@@Z PROC			; CBitMask::operator|=, COMDAT
; _this$ = ecx

; 134  : {

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

; 135  :     m_mask |= m.m_mask;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _m$[ebp]
  0000d	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00010	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 136  :     return *this;

  00019	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 137  : }

  0001c	8b e5		 mov	 esp, ebp
  0001e	5d		 pop	 ebp
  0001f	c2 04 00	 ret	 4
??_5CBitMask@@UAEAAV0@ABV0@@Z ENDP			; CBitMask::operator|=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_4CBitMask@@UAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_m$ = 8							; size = 4
??_4CBitMask@@UAEAAV0@ABV0@@Z PROC			; CBitMask::operator&=, COMDAT
; _this$ = ecx

; 123  : {

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

; 124  :     m_mask &= m.m_mask;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _m$[ebp]
  0000d	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00010	23 51 04	 and	 edx, DWORD PTR [ecx+4]
  00013	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00016	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 125  :     return *this;

  00019	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]

; 126  : }

  0001c	8b e5		 mov	 esp, ebp
  0001e	5d		 pop	 ebp
  0001f	c2 04 00	 ret	 4
??_4CBitMask@@UAEAAV0@ABV0@@Z ENDP			; CBitMask::operator&=
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?mask@CBitMask@@UBEKK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_value$ = 8						; size = 4
?mask@CBitMask@@UBEKK@Z PROC				; CBitMask::mask, COMDAT
; _this$ = ecx

; 113  : {

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

; 114  :     return value & m_mask;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 4d 08	 mov	 ecx, DWORD PTR _value$[ebp]
  0000d	23 48 04	 and	 ecx, DWORD PTR [eax+4]
  00010	8b c1		 mov	 eax, ecx

; 115  : }

  00012	8b e5		 mov	 esp, ebp
  00014	5d		 pop	 ebp
  00015	c2 04 00	 ret	 4
?mask@CBitMask@@UBEKK@Z ENDP				; CBitMask::mask
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?mask@CBitMask@@UBEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?mask@CBitMask@@UBEKXZ PROC				; CBitMask::mask, COMDAT
; _this$ = ecx

; 108  : {

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

; 109  :     return m_mask;

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

; 110  : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?mask@CBitMask@@UBEKXZ ENDP				; CBitMask::mask
_TEXT	ENDS
PUBLIC	??1CBitMask@@UAE@XZ				; CBitMask::~CBitMask
; Function compile flags: /Odtp
;	COMDAT ??1CBitMask@@UAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1CBitMask@@UAE@XZ PROC				; CBitMask::~CBitMask, COMDAT
; _this$ = ecx

; 104  : {

  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 ??_7CBitMask@@6B@

; 105  : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
??1CBitMask@@UAE@XZ ENDP				; CBitMask::~CBitMask
_TEXT	ENDS
PUBLIC	??0CBitMask@@QAE@ABVCBitBlock@@@Z		; CBitMask::CBitMask
; Function compile flags: /Odtp
;	COMDAT ??0CBitMask@@QAE@ABVCBitBlock@@@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bitBlock$ = 8						; size = 4
??0CBitMask@@QAE@ABVCBitBlock@@@Z PROC			; CBitMask::CBitMask, COMDAT
; _this$ = ecx

; 100  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	56		 push	 esi
  00005	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx
  00008	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000b	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7CBitMask@@6B@
  00011	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00014	8b 11		 mov	 edx, DWORD PTR [ecx]
  00016	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00019	8b 42 08	 mov	 eax, DWORD PTR [edx+8]
  0001c	ff d0		 call	 eax
  0001e	8b f0		 mov	 esi, eax
  00020	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00023	8b 11		 mov	 edx, DWORD PTR [ecx]
  00025	8b 4d 08	 mov	 ecx, DWORD PTR _bitBlock$[ebp]
  00028	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0002b	ff d0		 call	 eax
  0002d	8b c8		 mov	 ecx, eax
  0002f	d3 e6		 shl	 esi, cl
  00031	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00034	89 71 04	 mov	 DWORD PTR [ecx+4], esi

; 101  : }

  00037	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0003a	5e		 pop	 esi
  0003b	8b e5		 mov	 esp, ebp
  0003d	5d		 pop	 ebp
  0003e	c2 04 00	 ret	 4
??0CBitMask@@QAE@ABVCBitBlock@@@Z ENDP			; CBitMask::CBitMask
_TEXT	ENDS
PUBLIC	??0CBitMask@@QAE@KK@Z				; CBitMask::CBitMask
; Function compile flags: /Odtp
;	COMDAT ??0CBitMask@@QAE@KK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_offset$ = 8						; size = 4
_mask$ = 12						; size = 4
??0CBitMask@@QAE@KK@Z PROC				; CBitMask::CBitMask, COMDAT
; _this$ = ecx

; 95   : {

  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 ??_7CBitMask@@6B@
  00010	8b 55 0c	 mov	 edx, DWORD PTR _mask$[ebp]
  00013	8b 4d 08	 mov	 ecx, DWORD PTR _offset$[ebp]
  00016	d3 e2		 shl	 edx, cl
  00018	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001b	89 50 04	 mov	 DWORD PTR [eax+4], edx

; 96   : }

  0001e	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c2 08 00	 ret	 8
??0CBitMask@@QAE@KK@Z ENDP				; CBitMask::CBitMask
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_GCBitMask@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCBitMask@@UAEPAXI@Z PROC				; CBitMask::`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	 ??1CBitMask@@UAE@XZ	; CBitMask::~CBitMask
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@15
  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@15:
  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
??_GCBitMask@@UAEPAXI@Z ENDP				; CBitMask::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CBitMask@@QAE@K@Z				; CBitMask::CBitMask
; Function compile flags: /Odtp
;	COMDAT ??0CBitMask@@QAE@K@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_mask$ = 8						; size = 4
??0CBitMask@@QAE@K@Z PROC				; CBitMask::CBitMask, COMDAT
; _this$ = ecx

; 90   : {

  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 ??_7CBitMask@@6B@
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 55 08	 mov	 edx, DWORD PTR _mask$[ebp]
  00016	89 51 04	 mov	 DWORD PTR [ecx+4], edx

; 91   : }

  00019	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001c	8b e5		 mov	 esp, ebp
  0001e	5d		 pop	 ebp
  0001f	c2 04 00	 ret	 4
??0CBitMask@@QAE@K@Z ENDP				; CBitMask::CBitMask
_TEXT	ENDS
PUBLIC	?unpack@CBitBlock@@SAKKKK@Z			; CBitBlock::unpack
; Function compile flags: /Odtp
;	COMDAT ?unpack@CBitBlock@@SAKKKK@Z
_TEXT	SEGMENT
_offset$ = 8						; size = 4
_mask$ = 12						; size = 4
_bitVector$ = 16					; size = 4
?unpack@CBitBlock@@SAKKKK@Z PROC			; CBitBlock::unpack, COMDAT

; 79   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 80   :     return (bitVector >> offset) & mask;

  00003	8b 45 10	 mov	 eax, DWORD PTR _bitVector$[ebp]
  00006	8b 4d 08	 mov	 ecx, DWORD PTR _offset$[ebp]
  00009	d3 e8		 shr	 eax, cl
  0000b	23 45 0c	 and	 eax, DWORD PTR _mask$[ebp]

; 81   : }

  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?unpack@CBitBlock@@SAKKKK@Z ENDP			; CBitBlock::unpack
_TEXT	ENDS
PUBLIC	?pack@CBitBlock@@SAKKKK@Z			; CBitBlock::pack
; Function compile flags: /Odtp
;	COMDAT ?pack@CBitBlock@@SAKKKK@Z
_TEXT	SEGMENT
_offset$ = 8						; size = 4
_mask$ = 12						; size = 4
_value$ = 16						; size = 4
?pack@CBitBlock@@SAKKKK@Z PROC				; CBitBlock::pack, COMDAT

; 73   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp

; 74   :     return (value & mask) << offset;

  00003	8b 45 10	 mov	 eax, DWORD PTR _value$[ebp]
  00006	23 45 0c	 and	 eax, DWORD PTR _mask$[ebp]
  00009	8b 4d 08	 mov	 ecx, DWORD PTR _offset$[ebp]
  0000c	d3 e0		 shl	 eax, cl

; 75   : }

  0000e	5d		 pop	 ebp
  0000f	c3		 ret	 0
?pack@CBitBlock@@SAKKKK@Z ENDP				; CBitBlock::pack
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?unpack@CBitBlock@@UBEKK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_bitVector$ = 8						; size = 4
?unpack@CBitBlock@@UBEKK@Z PROC				; CBitBlock::unpack, COMDAT
; _this$ = ecx

; 67   : {

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

; 68   :     return unpack(m_offset, m_mask, bitVector);

  00007	8b 45 08	 mov	 eax, DWORD PTR _bitVector$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00011	52		 push	 edx
  00012	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00015	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00018	51		 push	 ecx
  00019	e8 00 00 00 00	 call	 ?unpack@CBitBlock@@SAKKKK@Z ; CBitBlock::unpack
  0001e	83 c4 0c	 add	 esp, 12			; 0000000cH

; 69   : }

  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c2 04 00	 ret	 4
?unpack@CBitBlock@@UBEKK@Z ENDP				; CBitBlock::unpack
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?pack@CBitBlock@@UBEKK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_value$ = 8						; size = 4
?pack@CBitBlock@@UBEKK@Z PROC				; CBitBlock::pack, COMDAT
; _this$ = ecx

; 62   : {

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

; 63   :     return pack(m_offset, m_mask, value);

  00007	8b 45 08	 mov	 eax, DWORD PTR _value$[ebp]
  0000a	50		 push	 eax
  0000b	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000e	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  00011	52		 push	 edx
  00012	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00015	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00018	51		 push	 ecx
  00019	e8 00 00 00 00	 call	 ?pack@CBitBlock@@SAKKKK@Z ; CBitBlock::pack
  0001e	83 c4 0c	 add	 esp, 12			; 0000000cH

; 64   : }

  00021	8b e5		 mov	 esp, ebp
  00023	5d		 pop	 ebp
  00024	c2 04 00	 ret	 4
?pack@CBitBlock@@UBEKK@Z ENDP				; CBitBlock::pack
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?mask@CBitBlock@@UBEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?mask@CBitBlock@@UBEKXZ PROC				; CBitBlock::mask, COMDAT
; _this$ = ecx

; 47   : {

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

; 48   :     return m_mask;

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

; 49   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?mask@CBitBlock@@UBEKXZ ENDP				; CBitBlock::mask
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?offset@CBitBlock@@UBEKXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?offset@CBitBlock@@UBEKXZ PROC				; CBitBlock::offset, COMDAT
; _this$ = ecx

; 42   : {

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

; 43   :     return m_offset;

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

; 44   : }

  0000d	8b e5		 mov	 esp, ebp
  0000f	5d		 pop	 ebp
  00010	c3		 ret	 0
?offset@CBitBlock@@UBEKXZ ENDP				; CBitBlock::offset
_TEXT	ENDS
PUBLIC	??1CBitBlock@@UAE@XZ				; CBitBlock::~CBitBlock
; Function compile flags: /Odtp
;	COMDAT ??1CBitBlock@@UAE@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??1CBitBlock@@UAE@XZ PROC				; CBitBlock::~CBitBlock, COMDAT
; _this$ = ecx

; 38   : {

  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 ??_7CBitBlock@@6B@

; 39   : }

  00010	8b e5		 mov	 esp, ebp
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
??1CBitBlock@@UAE@XZ ENDP				; CBitBlock::~CBitBlock
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ??_GCBitBlock@@UAEPAXI@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
___flags$ = 8						; size = 4
??_GCBitBlock@@UAEPAXI@Z PROC				; CBitBlock::`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	 ??1CBitBlock@@UAE@XZ	; CBitBlock::~CBitBlock
  0000f	8b 45 08	 mov	 eax, DWORD PTR ___flags$[ebp]
  00012	83 e0 01	 and	 eax, 1
  00015	74 0c		 je	 SHORT $LN1@scalar@16
  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@16:
  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
??_GCBitBlock@@UAEPAXI@Z ENDP				; CBitBlock::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0CBitBlock@@QAE@KK@Z				; CBitBlock::CBitBlock
; Function compile flags: /Odtp
;	COMDAT ??0CBitBlock@@QAE@KK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_offset$ = 8						; size = 4
_mask$ = 12						; size = 4
??0CBitBlock@@QAE@KK@Z PROC				; CBitBlock::CBitBlock, COMDAT
; _this$ = ecx

; 34   : {

  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 ??_7CBitBlock@@6B@
  00010	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00013	8b 55 08	 mov	 edx, DWORD PTR _offset$[ebp]
  00016	89 51 04	 mov	 DWORD PTR [ecx+4], edx
  00019	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001c	8b 4d 0c	 mov	 ecx, DWORD PTR _mask$[ebp]
  0001f	89 48 08	 mov	 DWORD PTR [eax+8], ecx

; 35   : }

  00022	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  00025	8b e5		 mov	 esp, ebp
  00027	5d		 pop	 ebp
  00028	c2 08 00	 ret	 8
??0CBitBlock@@QAE@KK@Z ENDP				; CBitBlock::CBitBlock
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z$0
__ehfuncinfo$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317131 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_m$ = 12						; size = 4
??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z PROC		; CBitVector::operator&, COMDAT
; _this$ = ecx

; 247  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317131[ebp], 0

; 248  :     return CBitVector(m_mask & m.mask(), m_value);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  00035	51		 push	 ecx
  00036	8b 55 0c	 mov	 edx, DWORD PTR _m$[ebp]
  00039	8b 02		 mov	 eax, DWORD PTR [edx]
  0003b	8b 4d 0c	 mov	 ecx, DWORD PTR _m$[ebp]
  0003e	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00041	ff d2		 call	 edx
  00043	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00046	23 41 04	 and	 eax, DWORD PTR [ecx+4]
  00049	50		 push	 eax
  0004a	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0004d	e8 00 00 00 00	 call	 ??0CBitVector@@QAE@KK@Z	; CBitVector::CBitVector
  00052	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00059	8b 55 f0	 mov	 edx, DWORD PTR $T317131[ebp]
  0005c	83 ca 01	 or	 edx, 1
  0005f	89 55 f0	 mov	 DWORD PTR $T317131[ebp], edx
  00062	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 249  : }

  00065	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00068	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006f	59		 pop	 ecx
  00070	8b e5		 mov	 esp, ebp
  00072	5d		 pop	 ebp
  00073	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317131[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@384
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317131[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitVector@@UAE@XZ	; CBitVector::~CBitVector
$LN4@operator@384:
  00018	c3		 ret	 0
__ehhandler$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??ICBitVector@@UBE?AV0@ABVCBitMask@@@Z ENDP		; CBitVector::operator&
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??HCBitVector@@UAE?AV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??HCBitVector@@UAE?AV0@ABV0@@Z$0
__ehfuncinfo$??HCBitVector@@UAE?AV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??HCBitVector@@UAE?AV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??HCBitVector@@UAE?AV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317142 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_b$ = 12						; size = 4
??HCBitVector@@UAE?AV0@ABV0@@Z PROC			; CBitVector::operator+, COMDAT
; _this$ = ecx

; 235  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??HCBitVector@@UAE?AV0@ABV0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317142[ebp], 0

; 236  :     return CBitVector(m_mask | b.m_mask, m_value & ~b.m_mask | b.m_value);

  0002f	8b 45 0c	 mov	 eax, DWORD PTR _b$[ebp]
  00032	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00035	f7 d1		 not	 ecx
  00037	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  0003a	23 4a 08	 and	 ecx, DWORD PTR [edx+8]
  0003d	8b 45 0c	 mov	 eax, DWORD PTR _b$[ebp]
  00040	0b 48 08	 or	 ecx, DWORD PTR [eax+8]
  00043	51		 push	 ecx
  00044	8b 4d ec	 mov	 ecx, DWORD PTR _this$[ebp]
  00047	8b 55 0c	 mov	 edx, DWORD PTR _b$[ebp]
  0004a	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]
  0004d	0b 42 04	 or	 eax, DWORD PTR [edx+4]
  00050	50		 push	 eax
  00051	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00054	e8 00 00 00 00	 call	 ??0CBitVector@@QAE@KK@Z	; CBitVector::CBitVector
  00059	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00060	8b 4d f0	 mov	 ecx, DWORD PTR $T317142[ebp]
  00063	83 c9 01	 or	 ecx, 1
  00066	89 4d f0	 mov	 DWORD PTR $T317142[ebp], ecx
  00069	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 237  : }

  0006c	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0006f	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00076	59		 pop	 ecx
  00077	8b e5		 mov	 esp, ebp
  00079	5d		 pop	 ebp
  0007a	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??HCBitVector@@UAE?AV0@ABV0@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317142[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@385
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317142[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitVector@@UAE@XZ	; CBitVector::~CBitVector
$LN4@operator@385:
  00018	c3		 ret	 0
__ehhandler$??HCBitVector@@UAE?AV0@ABV0@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??HCBitVector@@UAE?AV0@ABV0@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??HCBitVector@@UAE?AV0@ABV0@@Z ENDP			; CBitVector::operator+
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??UCBitVector@@UBE?AV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??UCBitVector@@UBE?AV0@ABV0@@Z$0
__ehfuncinfo$??UCBitVector@@UBE?AV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??UCBitVector@@UBE?AV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??UCBitVector@@UBE?AV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317153 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_b$ = 12						; size = 4
??UCBitVector@@UBE?AV0@ABV0@@Z PROC			; CBitVector::operator|, COMDAT
; _this$ = ecx

; 223  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??UCBitVector@@UBE?AV0@ABV0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317153[ebp], 0

; 224  :     return CBitVector(m_mask | b.m_mask, m_value | b.m_value);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _b$[ebp]
  00035	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00038	0b 51 08	 or	 edx, DWORD PTR [ecx+8]
  0003b	52		 push	 edx
  0003c	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	8b 4d 0c	 mov	 ecx, DWORD PTR _b$[ebp]
  00042	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00045	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  00048	52		 push	 edx
  00049	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0004c	e8 00 00 00 00	 call	 ??0CBitVector@@QAE@KK@Z	; CBitVector::CBitVector
  00051	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00058	8b 45 f0	 mov	 eax, DWORD PTR $T317153[ebp]
  0005b	83 c8 01	 or	 eax, 1
  0005e	89 45 f0	 mov	 DWORD PTR $T317153[ebp], eax
  00061	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 225  : }

  00064	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00067	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006e	59		 pop	 ecx
  0006f	8b e5		 mov	 esp, ebp
  00071	5d		 pop	 ebp
  00072	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??UCBitVector@@UBE?AV0@ABV0@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317153[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@386
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317153[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitVector@@UAE@XZ	; CBitVector::~CBitVector
$LN4@operator@386:
  00018	c3		 ret	 0
__ehhandler$??UCBitVector@@UBE?AV0@ABV0@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??UCBitVector@@UBE?AV0@ABV0@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??UCBitVector@@UBE?AV0@ABV0@@Z ENDP			; CBitVector::operator|
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??ICBitVector@@UBE?AV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??ICBitVector@@UBE?AV0@ABV0@@Z$0
__ehfuncinfo$??ICBitVector@@UBE?AV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??ICBitVector@@UBE?AV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??ICBitVector@@UBE?AV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317164 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_b$ = 12						; size = 4
??ICBitVector@@UBE?AV0@ABV0@@Z PROC			; CBitVector::operator&, COMDAT
; _this$ = ecx

; 211  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??ICBitVector@@UBE?AV0@ABV0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317164[ebp], 0

; 212  :     return CBitVector(m_mask | b.m_mask, m_value & b.m_value);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _b$[ebp]
  00035	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00038	23 51 08	 and	 edx, DWORD PTR [ecx+8]
  0003b	52		 push	 edx
  0003c	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	8b 4d 0c	 mov	 ecx, DWORD PTR _b$[ebp]
  00042	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00045	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  00048	52		 push	 edx
  00049	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0004c	e8 00 00 00 00	 call	 ??0CBitVector@@QAE@KK@Z	; CBitVector::CBitVector
  00051	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00058	8b 45 f0	 mov	 eax, DWORD PTR $T317164[ebp]
  0005b	83 c8 01	 or	 eax, 1
  0005e	89 45 f0	 mov	 DWORD PTR $T317164[ebp], eax
  00061	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 213  : }

  00064	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00067	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006e	59		 pop	 ecx
  0006f	8b e5		 mov	 esp, ebp
  00071	5d		 pop	 ebp
  00072	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??ICBitVector@@UBE?AV0@ABV0@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317164[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@387
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317164[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitVector@@UAE@XZ	; CBitVector::~CBitVector
$LN4@operator@387:
  00018	c3		 ret	 0
__ehhandler$??ICBitVector@@UBE?AV0@ABV0@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??ICBitVector@@UBE?AV0@ABV0@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??ICBitVector@@UBE?AV0@ABV0@@Z ENDP			; CBitVector::operator&
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??SCBitVector@@UBE?AV0@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??SCBitVector@@UBE?AV0@XZ$0
__ehfuncinfo$??SCBitVector@@UBE?AV0@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??SCBitVector@@UBE?AV0@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??SCBitVector@@UBE?AV0@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317175 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
??SCBitVector@@UBE?AV0@XZ PROC				; CBitVector::operator~, COMDAT
; _this$ = ecx

; 199  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??SCBitVector@@UBE?AV0@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317175[ebp], 0

; 200  :     return CBitVector(m_mask, ~m_value);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  00035	f7 d1		 not	 ecx
  00037	51		 push	 ecx
  00038	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  0003b	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0003e	50		 push	 eax
  0003f	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00042	e8 00 00 00 00	 call	 ??0CBitVector@@QAE@KK@Z	; CBitVector::CBitVector
  00047	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004e	8b 4d f0	 mov	 ecx, DWORD PTR $T317175[ebp]
  00051	83 c9 01	 or	 ecx, 1
  00054	89 4d f0	 mov	 DWORD PTR $T317175[ebp], ecx
  00057	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 201  : }

  0005a	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0005d	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00064	59		 pop	 ecx
  00065	8b e5		 mov	 esp, ebp
  00067	5d		 pop	 ebp
  00068	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??SCBitVector@@UBE?AV0@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317175[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@388
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317175[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitVector@@UAE@XZ	; CBitVector::~CBitVector
$LN4@operator@388:
  00018	c3		 ret	 0
__ehhandler$??SCBitVector@@UBE?AV0@XZ:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??SCBitVector@@UBE?AV0@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??SCBitVector@@UBE?AV0@XZ ENDP				; CBitVector::operator~
; Function compile flags: /Odtp
;	COMDAT ?value@CBitVector@@UBEKEE@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_offset$ = 8						; size = 1
_mask$ = 12						; size = 1
?value@CBitVector@@UBEKEE@Z PROC			; CBitVector::value, COMDAT
; _this$ = ecx

; 184  : {

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

; 185  :     return CBitBlock::unpack(offset, mask, m_value);

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  0000d	51		 push	 ecx
  0000e	0f b6 55 0c	 movzx	 edx, BYTE PTR _mask$[ebp]
  00012	52		 push	 edx
  00013	0f b6 45 08	 movzx	 eax, BYTE PTR _offset$[ebp]
  00017	50		 push	 eax
  00018	e8 00 00 00 00	 call	 ?unpack@CBitBlock@@SAKKKK@Z ; CBitBlock::unpack
  0001d	83 c4 0c	 add	 esp, 12			; 0000000cH

; 186  : }

  00020	8b e5		 mov	 esp, ebp
  00022	5d		 pop	 ebp
  00023	c2 08 00	 ret	 8
?value@CBitVector@@UBEKEE@Z ENDP			; CBitVector::value
_TEXT	ENDS
PUBLIC	??0CBitVector@@QAE@EEK@Z			; CBitVector::CBitVector
; Function compile flags: /Odtp
;	COMDAT ??0CBitVector@@QAE@EEK@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_offset$ = 8						; size = 1
_mask$ = 12						; size = 1
_value$ = 16						; size = 4
??0CBitVector@@QAE@EEK@Z PROC				; CBitVector::CBitVector, COMDAT
; _this$ = ecx

; 166  : {

  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 ??_7CBitVector@@6B@
  00010	0f b6 55 0c	 movzx	 edx, BYTE PTR _mask$[ebp]
  00014	0f b6 4d 08	 movzx	 ecx, BYTE PTR _offset$[ebp]
  00018	d3 e2		 shl	 edx, cl
  0001a	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0001d	89 50 04	 mov	 DWORD PTR [eax+4], edx
  00020	8b 4d 10	 mov	 ecx, DWORD PTR _value$[ebp]
  00023	51		 push	 ecx
  00024	0f b6 55 0c	 movzx	 edx, BYTE PTR _mask$[ebp]
  00028	52		 push	 edx
  00029	0f b6 45 08	 movzx	 eax, BYTE PTR _offset$[ebp]
  0002d	50		 push	 eax
  0002e	e8 00 00 00 00	 call	 ?pack@CBitBlock@@SAKKKK@Z ; CBitBlock::pack
  00033	83 c4 0c	 add	 esp, 12			; 0000000cH
  00036	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00039	89 41 08	 mov	 DWORD PTR [ecx+8], eax

; 167  : }

  0003c	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0003f	8b e5		 mov	 esp, ebp
  00041	5d		 pop	 ebp
  00042	c2 0c 00	 ret	 12			; 0000000cH
??0CBitVector@@QAE@EEK@Z ENDP				; CBitVector::CBitVector
_TEXT	ENDS
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??UCBitMask@@UBE?AV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??UCBitMask@@UBE?AV0@ABV0@@Z$0
__ehfuncinfo$??UCBitMask@@UBE?AV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??UCBitMask@@UBE?AV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??UCBitMask@@UBE?AV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317190 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_m$ = 12						; size = 4
??UCBitMask@@UBE?AV0@ABV0@@Z PROC			; CBitMask::operator|, COMDAT
; _this$ = ecx

; 140  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??UCBitMask@@UBE?AV0@ABV0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317190[ebp], 0

; 141  :     return CBitMask(m_mask | m.m_mask);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _m$[ebp]
  00035	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00038	0b 51 04	 or	 edx, DWORD PTR [ecx+4]
  0003b	52		 push	 edx
  0003c	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0003f	e8 00 00 00 00	 call	 ??0CBitMask@@QAE@K@Z	; CBitMask::CBitMask
  00044	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004b	8b 45 f0	 mov	 eax, DWORD PTR $T317190[ebp]
  0004e	83 c8 01	 or	 eax, 1
  00051	89 45 f0	 mov	 DWORD PTR $T317190[ebp], eax
  00054	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 142  : }

  00057	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0005a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00061	59		 pop	 ecx
  00062	8b e5		 mov	 esp, ebp
  00064	5d		 pop	 ebp
  00065	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??UCBitMask@@UBE?AV0@ABV0@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317190[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@389
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317190[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitMask@@UAE@XZ	; CBitMask::~CBitMask
$LN4@operator@389:
  00018	c3		 ret	 0
__ehhandler$??UCBitMask@@UBE?AV0@ABV0@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??UCBitMask@@UBE?AV0@ABV0@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??UCBitMask@@UBE?AV0@ABV0@@Z ENDP			; CBitMask::operator|
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??ICBitMask@@UBE?AV0@ABV0@@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??ICBitMask@@UBE?AV0@ABV0@@Z$0
__ehfuncinfo$??ICBitMask@@UBE?AV0@ABV0@@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??ICBitMask@@UBE?AV0@ABV0@@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??ICBitMask@@UBE?AV0@ABV0@@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317201 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_m$ = 12						; size = 4
??ICBitMask@@UBE?AV0@ABV0@@Z PROC			; CBitMask::operator&, COMDAT
; _this$ = ecx

; 129  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??ICBitMask@@UBE?AV0@ABV0@@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317201[ebp], 0

; 130  :     return CBitMask(m_mask & m.m_mask);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 4d 0c	 mov	 ecx, DWORD PTR _m$[ebp]
  00035	8b 50 04	 mov	 edx, DWORD PTR [eax+4]
  00038	23 51 04	 and	 edx, DWORD PTR [ecx+4]
  0003b	52		 push	 edx
  0003c	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0003f	e8 00 00 00 00	 call	 ??0CBitMask@@QAE@K@Z	; CBitMask::CBitMask
  00044	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004b	8b 45 f0	 mov	 eax, DWORD PTR $T317201[ebp]
  0004e	83 c8 01	 or	 eax, 1
  00051	89 45 f0	 mov	 DWORD PTR $T317201[ebp], eax
  00054	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 131  : }

  00057	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0005a	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00061	59		 pop	 ecx
  00062	8b e5		 mov	 esp, ebp
  00064	5d		 pop	 ebp
  00065	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??ICBitMask@@UBE?AV0@ABV0@@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317201[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@390
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317201[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitMask@@UAE@XZ	; CBitMask::~CBitMask
$LN4@operator@390:
  00018	c3		 ret	 0
__ehhandler$??ICBitMask@@UBE?AV0@ABV0@@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??ICBitMask@@UBE?AV0@ABV0@@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??ICBitMask@@UBE?AV0@ABV0@@Z ENDP			; CBitMask::operator&
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$??SCBitMask@@UBE?AV0@XZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$??SCBitMask@@UBE?AV0@XZ$0
__ehfuncinfo$??SCBitMask@@UBE?AV0@XZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$??SCBitMask@@UBE?AV0@XZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ??SCBitMask@@UBE?AV0@XZ
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317212 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
??SCBitMask@@UBE?AV0@XZ PROC				; CBitMask::operator~, COMDAT
; _this$ = ecx

; 118  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$??SCBitMask@@UBE?AV0@XZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317212[ebp], 0

; 119  :     return CBitMask(~m_mask);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00035	f7 d1		 not	 ecx
  00037	51		 push	 ecx
  00038	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0003b	e8 00 00 00 00	 call	 ??0CBitMask@@QAE@K@Z	; CBitMask::CBitMask
  00040	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00047	8b 55 f0	 mov	 edx, DWORD PTR $T317212[ebp]
  0004a	83 ca 01	 or	 edx, 1
  0004d	89 55 f0	 mov	 DWORD PTR $T317212[ebp], edx
  00050	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 120  : }

  00053	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00056	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0005d	59		 pop	 ecx
  0005e	8b e5		 mov	 esp, ebp
  00060	5d		 pop	 ebp
  00061	c2 04 00	 ret	 4
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$??SCBitMask@@UBE?AV0@XZ$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317212[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@operator@391
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317212[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitMask@@UAE@XZ	; CBitMask::~CBitMask
$LN4@operator@391:
  00018	c3		 ret	 0
__ehhandler$??SCBitMask@@UBE?AV0@XZ:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$??SCBitMask@@UBE?AV0@XZ
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
??SCBitMask@@UBE?AV0@XZ ENDP				; CBitMask::operator~
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?subset@CBitBlock@@UBE?AV1@KK@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?subset@CBitBlock@@UBE?AV1@KK@Z$0
__ehfuncinfo$?subset@CBitBlock@@UBE?AV1@KK@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?subset@CBitBlock@@UBE?AV1@KK@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?subset@CBitBlock@@UBE?AV1@KK@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317223 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_offset$ = 12						; size = 4
_mask$ = 16						; size = 4
?subset@CBitBlock@@UBE?AV1@KK@Z PROC			; CBitBlock::subset, COMDAT
; _this$ = ecx

; 57   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?subset@CBitBlock@@UBE?AV1@KK@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317223[ebp], 0

; 58   :     return CBitBlock(m_offset + offset, (m_mask >> offset) & mask);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 50 08	 mov	 edx, DWORD PTR [eax+8]
  00035	8b 4d 0c	 mov	 ecx, DWORD PTR _offset$[ebp]
  00038	d3 ea		 shr	 edx, cl
  0003a	23 55 10	 and	 edx, DWORD PTR _mask$[ebp]
  0003d	52		 push	 edx
  0003e	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00041	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00044	03 4d 0c	 add	 ecx, DWORD PTR _offset$[ebp]
  00047	51		 push	 ecx
  00048	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  0004b	e8 00 00 00 00	 call	 ??0CBitBlock@@QAE@KK@Z	; CBitBlock::CBitBlock
  00050	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  00057	8b 55 f0	 mov	 edx, DWORD PTR $T317223[ebp]
  0005a	83 ca 01	 or	 edx, 1
  0005d	89 55 f0	 mov	 DWORD PTR $T317223[ebp], edx
  00060	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 59   : }

  00063	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  00066	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  0006d	59		 pop	 ecx
  0006e	8b e5		 mov	 esp, ebp
  00070	5d		 pop	 ebp
  00071	c2 0c 00	 ret	 12			; 0000000cH
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?subset@CBitBlock@@UBE?AV1@KK@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317223[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@subset
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317223[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitBlock@@UAE@XZ	; CBitBlock::~CBitBlock
$LN4@subset:
  00018	c3		 ret	 0
__ehhandler$?subset@CBitBlock@@UBE?AV1@KK@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?subset@CBitBlock@@UBE?AV1@KK@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?subset@CBitBlock@@UBE?AV1@KK@Z ENDP			; CBitBlock::subset
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?subset@CBitBlock@@UBE?AV1@K@Z DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?subset@CBitBlock@@UBE?AV1@K@Z$0
__ehfuncinfo$?subset@CBitBlock@@UBE?AV1@K@Z DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?subset@CBitBlock@@UBE?AV1@K@Z
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?subset@CBitBlock@@UBE?AV1@K@Z
_TEXT	SEGMENT
_this$ = -20						; size = 4
$T317234 = -16						; size = 4
__$EHRec$ = -12						; size = 12
___$ReturnUdt$ = 8					; size = 4
_mask$ = 12						; size = 4
?subset@CBitBlock@@UBE?AV1@K@Z PROC			; CBitBlock::subset, COMDAT
; _this$ = ecx

; 52   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?subset@CBitBlock@@UBE?AV1@K@Z
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	83 ec 08	 sub	 esp, 8
  00014	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  00019	33 c5		 xor	 eax, ebp
  0001b	50		 push	 eax
  0001c	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  0001f	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  00025	89 4d ec	 mov	 DWORD PTR _this$[ebp], ecx
  00028	c7 45 f0 00 00
	00 00		 mov	 DWORD PTR $T317234[ebp], 0

; 53   :     return CBitBlock(m_offset, m_mask & mask);

  0002f	8b 45 ec	 mov	 eax, DWORD PTR _this$[ebp]
  00032	8b 48 08	 mov	 ecx, DWORD PTR [eax+8]
  00035	23 4d 0c	 and	 ecx, DWORD PTR _mask$[ebp]
  00038	51		 push	 ecx
  00039	8b 55 ec	 mov	 edx, DWORD PTR _this$[ebp]
  0003c	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  0003f	50		 push	 eax
  00040	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00043	e8 00 00 00 00	 call	 ??0CBitBlock@@QAE@KK@Z	; CBitBlock::CBitBlock
  00048	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0004f	8b 4d f0	 mov	 ecx, DWORD PTR $T317234[ebp]
  00052	83 c9 01	 or	 ecx, 1
  00055	89 4d f0	 mov	 DWORD PTR $T317234[ebp], ecx
  00058	8b 45 08	 mov	 eax, DWORD PTR ___$ReturnUdt$[ebp]

; 54   : }

  0005b	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  0005e	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  00065	59		 pop	 ecx
  00066	8b e5		 mov	 esp, ebp
  00068	5d		 pop	 ebp
  00069	c2 08 00	 ret	 8
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?subset@CBitBlock@@UBE?AV1@K@Z$0:
  00000	8b 45 f0	 mov	 eax, DWORD PTR $T317234[ebp]
  00003	83 e0 01	 and	 eax, 1
  00006	0f 84 0c 00 00
	00		 je	 $LN4@subset@2
  0000c	83 65 f0 fe	 and	 DWORD PTR $T317234[ebp], -2 ; fffffffeH
  00010	8b 4d 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[ebp]
  00013	e9 00 00 00 00	 jmp	 ??1CBitBlock@@UAE@XZ	; CBitBlock::~CBitBlock
$LN4@subset@2:
  00018	c3		 ret	 0
__ehhandler$?subset@CBitBlock@@UBE?AV1@K@Z:
  00019	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0001d	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00020	8b 4a f4	 mov	 ecx, DWORD PTR [edx-12]
  00023	33 c8		 xor	 ecx, eax
  00025	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0002a	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?subset@CBitBlock@@UBE?AV1@K@Z
  0002f	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?subset@CBitBlock@@UBE?AV1@K@Z ENDP			; CBitBlock::subset
END
