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

	TITLE	C:\Users\Administrator\Desktop\GHOST\Client\Include\BmpToAvi.cpp
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT PARA USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
rdata$r	SEGMENT DWORD USE32 PUBLIC 'CONST'
rdata$r	ENDS
;	COMDAT _IsEqualGUID
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _==
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GCBmpToAvi@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_R4CBmpToAvi@@6B@
rdata$r	SEGMENT DWORD USE32 PUBLIC 'CONST'
rdata$r	ENDS
;	COMDAT ??_R3CBmpToAvi@@8
rdata$r	SEGMENT DWORD USE32 PUBLIC 'CONST'
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@A@CBmpToAvi@@8
rdata$r	SEGMENT DWORD USE32 PUBLIC 'CONST'
rdata$r	ENDS
;	COMDAT ??_R2CBmpToAvi@@8
rdata$r	SEGMENT DWORD USE32 PUBLIC 'CONST'
rdata$r	ENDS
;	COMDAT ??_R0?AVCBmpToAvi@@@8
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
;	COMDAT ??_7CBmpToAvi@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
FLAT	GROUP _DATA, CONST, _BSS, rdata$r
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A		; CBmpToAvi::m_si
_BSS	SEGMENT
?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A DB 08cH DUP (?)	; CBmpToAvi::m_si
_BSS	ENDS
PUBLIC	??0CBmpToAvi@@QAE@XZ				; CBmpToAvi::CBmpToAvi
PUBLIC	??_7CBmpToAvi@@6B@				; CBmpToAvi::`vftable'
PUBLIC	??_GCBmpToAvi@@UAEPAXI@Z			; CBmpToAvi::`scalar deleting destructor'
PUBLIC	??_ECBmpToAvi@@UAEPAXI@Z			; CBmpToAvi::`vector deleting destructor'
PUBLIC	??_R4CBmpToAvi@@6B@				; CBmpToAvi::`RTTI Complete Object Locator'
PUBLIC	??_R0?AVCBmpToAvi@@@8				; CBmpToAvi `RTTI Type Descriptor'
PUBLIC	??_R3CBmpToAvi@@8				; CBmpToAvi::`RTTI Class Hierarchy Descriptor'
PUBLIC	??_R2CBmpToAvi@@8				; CBmpToAvi::`RTTI Base Class Array'
PUBLIC	??_R1A@?0A@A@CBmpToAvi@@8			; CBmpToAvi::`RTTI Base Class Descriptor at (0,-1,0,0)'
EXTRN	??_7type_info@@6B@:DWORD			; type_info::`vftable'
EXTRN	_AVIFileInit@0:NEAR
;	COMDAT ??_7CBmpToAvi@@6B@
; File C:\Users\Administrator\Desktop\GHOST\Client\Include\BmpToAvi.cpp
CONST	SEGMENT
??_7CBmpToAvi@@6B@ DD FLAT:??_R4CBmpToAvi@@6B@		; CBmpToAvi::`vftable'
	DD	FLAT:??_ECBmpToAvi@@UAEPAXI@Z
CONST	ENDS
;	COMDAT ??_R4CBmpToAvi@@6B@
rdata$r	SEGMENT
??_R4CBmpToAvi@@6B@ DD 00H				; CBmpToAvi::`RTTI Complete Object Locator'
	DD	00H
	DD	00H
	DD	FLAT:??_R0?AVCBmpToAvi@@@8
	DD	FLAT:??_R3CBmpToAvi@@8
rdata$r	ENDS
;	COMDAT ??_R0?AVCBmpToAvi@@@8
_DATA	SEGMENT
??_R0?AVCBmpToAvi@@@8 DD FLAT:??_7type_info@@6B@	; CBmpToAvi `RTTI Type Descriptor'
	DD	00H
	DB	'.?AVCBmpToAvi@@', 00H
_DATA	ENDS
;	COMDAT ??_R3CBmpToAvi@@8
rdata$r	SEGMENT
??_R3CBmpToAvi@@8 DD 00H				; CBmpToAvi::`RTTI Class Hierarchy Descriptor'
	DD	00H
	DD	01H
	DD	FLAT:??_R2CBmpToAvi@@8
rdata$r	ENDS
;	COMDAT ??_R2CBmpToAvi@@8
rdata$r	SEGMENT
??_R2CBmpToAvi@@8 DD FLAT:??_R1A@?0A@A@CBmpToAvi@@8	; CBmpToAvi::`RTTI Base Class Array'
rdata$r	ENDS
;	COMDAT ??_R1A@?0A@A@CBmpToAvi@@8
rdata$r	SEGMENT
??_R1A@?0A@A@CBmpToAvi@@8 DD FLAT:??_R0?AVCBmpToAvi@@@8	; CBmpToAvi::`RTTI Base Class Descriptor at (0,-1,0,0)'
	DD	00H
	DD	00H
	DD	0ffffffffH
	DD	00H
	DD	00H
; Function compile flags: /Ogsawpy
rdata$r	ENDS
_TEXT	SEGMENT
??0CBmpToAvi@@QAE@XZ PROC NEAR				; CBmpToAvi::CBmpToAvi
; _this$ = ecx
; Line 15
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; Line 16
  00003	83 66 04 00	 and	 DWORD PTR [esi+4], 0
; Line 17
  00007	83 66 08 00	 and	 DWORD PTR [esi+8], 0
  0000b	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET FLAT:??_7CBmpToAvi@@6B@ ; CBmpToAvi::`vftable'
; Line 18
  00011	e8 00 00 00 00	 call	 _AVIFileInit@0
; Line 19
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c3		 ret	 0
??0CBmpToAvi@@QAE@XZ ENDP				; CBmpToAvi::CBmpToAvi
_TEXT	ENDS
PUBLIC	??1CBmpToAvi@@UAE@XZ				; CBmpToAvi::~CBmpToAvi
EXTRN	??3@YAXPAX@Z:NEAR				; operator delete
; Function compile flags: /Ogsawpy
;	COMDAT ??_GCBmpToAvi@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8
??_GCBmpToAvi@@UAEPAXI@Z PROC NEAR			; CBmpToAvi::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1CBmpToAvi@@UAE@XZ	; CBmpToAvi::~CBmpToAvi
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $L80470
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3@YAXPAX@Z		; operator delete
  00015	59		 pop	 ecx
$L80470:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GCBmpToAvi@@UAEPAXI@Z ENDP				; CBmpToAvi::`scalar deleting destructor'
_TEXT	ENDS
EXTRN	_AVIFileExit@0:NEAR
; Function compile flags: /Ogsawpy
_TEXT	SEGMENT
??1CBmpToAvi@@UAE@XZ PROC NEAR				; CBmpToAvi::~CBmpToAvi
; _this$ = ecx
; Line 22
  0001a	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET FLAT:??_7CBmpToAvi@@6B@ ; CBmpToAvi::`vftable'
; Line 24
  00020	e9 00 00 00 00	 jmp	 _AVIFileExit@0
??1CBmpToAvi@@UAE@XZ ENDP				; CBmpToAvi::~CBmpToAvi
_TEXT	ENDS
PUBLIC	?Open@CBmpToAvi@@QAE_NPBDPAUtagBITMAPINFO@@@Z	; CBmpToAvi::Open
EXTRN	_AVIFileOpenA@16:NEAR
EXTRN	_AVIFileCreateStreamA@12:NEAR
EXTRN	_AVIStreamSetFormat@16:NEAR
EXTRN	__imp__SetRect@20:NEAR
; Function compile flags: /Ogsawpy
_TEXT	SEGMENT
_szFile$ = 8
_lpbmi$ = 12
?Open@CBmpToAvi@@QAE_NPBDPAUtagBITMAPINFO@@@Z PROC NEAR	; CBmpToAvi::Open
; _this$ = ecx
; Line 28
  00025	53		 push	 ebx
  00026	56		 push	 esi
; Line 29
  00027	33 f6		 xor	 esi, esi
  00029	57		 push	 edi
  0002a	39 74 24 10	 cmp	 DWORD PTR _szFile$[esp+8], esi
  0002e	8b f9		 mov	 edi, ecx
  00030	75 07		 jne	 SHORT $L80479
$L80530:
; Line 30
  00032	32 c0		 xor	 al, al
  00034	e9 82 00 00 00	 jmp	 $L80491
$L80479:
; Line 33
  00039	56		 push	 esi
  0003a	68 01 10 00 00	 push	 4097			; 00001001H
  0003f	ff 74 24 18	 push	 DWORD PTR _szFile$[esp+16]
  00043	8d 5f 04	 lea	 ebx, DWORD PTR [edi+4]
  00046	89 77 0c	 mov	 DWORD PTR [edi+12], esi
  00049	53		 push	 ebx
  0004a	e8 00 00 00 00	 call	 _AVIFileOpenA@16
  0004f	85 c0		 test	 eax, eax
; Line 34
  00051	75 df		 jne	 SHORT $L80530
; Line 37
  00053	89 35 04 00 00
	00		 mov	 DWORD PTR ?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A+4, esi
; Line 40
  00059	8b 74 24 14	 mov	 esi, DWORD PTR _lpbmi$[esp+8]
  0005d	c7 05 00 00 00
	00 76 69 64 73	 mov	 DWORD PTR ?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A, 1935960438 ; 73646976H
  00067	c7 05 14 00 00
	00 01 00 00 00	 mov	 DWORD PTR ?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A+20, 1
  00071	ff 76 08	 push	 DWORD PTR [esi+8]
  00074	c7 05 18 00 00
	00 05 00 00 00	 mov	 DWORD PTR ?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A+24, 5
  0007e	ff 76 04	 push	 DWORD PTR [esi+4]
  00081	50		 push	 eax
  00082	50		 push	 eax
  00083	68 34 00 00 00	 push	 OFFSET FLAT:?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A+52
  00088	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetRect@20
; Line 41
  0008e	8b 46 14	 mov	 eax, DWORD PTR [esi+20]
; Line 44
  00091	83 c7 08	 add	 edi, 8
  00094	68 00 00 00 00	 push	 OFFSET FLAT:?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A ; CBmpToAvi::m_si
  00099	57		 push	 edi
  0009a	ff 33		 push	 DWORD PTR [ebx]
  0009c	a3 28 00 00 00	 mov	 DWORD PTR ?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A+40, eax
  000a1	e8 00 00 00 00	 call	 _AVIFileCreateStreamA@12
  000a6	85 c0		 test	 eax, eax
; Line 45
  000a8	75 88		 jne	 SHORT $L80530
; Line 48
  000aa	6a 2c		 push	 44			; 0000002cH
  000ac	56		 push	 esi
  000ad	50		 push	 eax
  000ae	ff 37		 push	 DWORD PTR [edi]
  000b0	e8 00 00 00 00	 call	 _AVIStreamSetFormat@16
  000b5	f7 d8		 neg	 eax
  000b7	1a c0		 sbb	 al, al
  000b9	fe c0		 inc	 al
$L80491:
  000bb	5f		 pop	 edi
  000bc	5e		 pop	 esi
  000bd	5b		 pop	 ebx
; Line 52
  000be	c2 08 00	 ret	 8
?Open@CBmpToAvi@@QAE_NPBDPAUtagBITMAPINFO@@@Z ENDP	; CBmpToAvi::Open
_TEXT	ENDS
PUBLIC	?Write@CBmpToAvi@@QAE_NPAX@Z			; CBmpToAvi::Write
EXTRN	_AVIStreamWrite@32:NEAR
; Function compile flags: /Ogsawpy
_TEXT	SEGMENT
_lpBuffer$ = 8
?Write@CBmpToAvi@@QAE_NPAX@Z PROC NEAR			; CBmpToAvi::Write
; _this$ = ecx
; Line 56
  000c1	83 79 04 00	 cmp	 DWORD PTR [ecx+4], 0
  000c5	74 32		 je	 SHORT $L80497
  000c7	8b 51 08	 mov	 edx, DWORD PTR [ecx+8]
  000ca	85 d2		 test	 edx, edx
  000cc	74 2b		 je	 SHORT $L80497
  000ce	57		 push	 edi
; Line 59
  000cf	8b 41 0c	 mov	 eax, DWORD PTR [ecx+12]
  000d2	6a 00		 push	 0
  000d4	6a 00		 push	 0
  000d6	6a 10		 push	 16			; 00000010H
  000d8	8d 78 01	 lea	 edi, DWORD PTR [eax+1]
  000db	ff 35 28 00 00
	00		 push	 DWORD PTR ?m_si@CBmpToAvi@@0U_AVISTREAMINFOA@@A+40
  000e1	89 79 0c	 mov	 DWORD PTR [ecx+12], edi
  000e4	ff 74 24 18	 push	 DWORD PTR _lpBuffer$[esp+16]
  000e8	6a 01		 push	 1
  000ea	50		 push	 eax
  000eb	52		 push	 edx
  000ec	e8 00 00 00 00	 call	 _AVIStreamWrite@32
  000f1	f7 d8		 neg	 eax
  000f3	1b c0		 sbb	 eax, eax
  000f5	5f		 pop	 edi
  000f6	40		 inc	 eax
  000f7	eb 02		 jmp	 SHORT $L80495
$L80497:
; Line 57
  000f9	32 c0		 xor	 al, al
$L80495:
; Line 60
  000fb	c2 04 00	 ret	 4
?Write@CBmpToAvi@@QAE_NPAX@Z ENDP			; CBmpToAvi::Write
_TEXT	ENDS
PUBLIC	?Close@CBmpToAvi@@QAEXXZ			; CBmpToAvi::Close
EXTRN	_AVIFileRelease@4:NEAR
EXTRN	_AVIStreamRelease@4:NEAR
; Function compile flags: /Ogsawpy
_TEXT	SEGMENT
?Close@CBmpToAvi@@QAEXXZ PROC NEAR			; CBmpToAvi::Close
; _this$ = ecx
; Line 64
  000fe	56		 push	 esi
  000ff	8b f1		 mov	 esi, ecx
; Line 65
  00101	8b 46 08	 mov	 eax, DWORD PTR [esi+8]
  00104	85 c0		 test	 eax, eax
  00106	74 0a		 je	 SHORT $L80501
; Line 67
  00108	50		 push	 eax
  00109	e8 00 00 00 00	 call	 _AVIStreamRelease@4
; Line 68
  0010e	83 66 08 00	 and	 DWORD PTR [esi+8], 0
$L80501:
; Line 70
  00112	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00115	85 c0		 test	 eax, eax
  00117	74 0a		 je	 SHORT $L80502
; Line 72
  00119	50		 push	 eax
  0011a	e8 00 00 00 00	 call	 _AVIFileRelease@4
; Line 73
  0011f	83 66 04 00	 and	 DWORD PTR [esi+4], 0
$L80502:
  00123	5e		 pop	 esi
; Line 75
  00124	c3		 ret	 0
?Close@CBmpToAvi@@QAEXXZ ENDP				; CBmpToAvi::Close
_TEXT	ENDS
END