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

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

INCLUDELIB OLDNAMES

PUBLIC	?aviVideoFCCIsUncompressed@@YAHK@Z		; aviVideoFCCIsUncompressed
PUBLIC	??_C@_1EC@NGKPAKEP@?$AAT?$AAh?$AAe?$AA?5?$AAi?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAi?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd@ ; `string'
PUBLIC	??_C@_1EO@LEJPDDFG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAs?$AAe?$AAl?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAc?$AAo?$AAm?$AAp@ ; `string'
PUBLIC	??_C@_1DG@EHDDNPOC@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EA@BGCGAMLP@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@ ; `string'
PUBLIC	??_C@_1EA@MFONECGJ@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAb?$AAe?$AAg?$AAi?$AAn?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAr?$AAe?$AAs?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAa?$AAt?$AAa?$AA?$AA@ ; `string'
EXTRN	_ICOpen@12:PROC
EXTRN	_ICSendMessage@16:PROC
EXTRN	_ICSeqCompressFrameStart@8:PROC
EXTRN	_ICClose@4:PROC
EXTRN	_ICSeqCompressFrameEnd@4:PROC
EXTRN	_ICSeqCompressFrame@20:PROC
;	COMDAT ??_C@_1EA@MFONECGJ@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAb?$AAe?$AAg?$AAi?$AAn?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAr?$AAe?$AAs?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAa?$AAt?$AAa?$AA?$AA@
CONST	SEGMENT
??_C@_1EA@MFONECGJ@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAb?$AAe?$AAg?$AAi?$AAn?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAr?$AAe?$AAs?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAa?$AAt?$AAa?$AA?$AA@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, 'n', 00H, '''', 00H
	DB	't', 00H, ' ', 00H, 'b', 00H, 'e', 00H, 'g', 00H, 'i', 00H, 'n'
	DB	00H, ' ', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'r', 00H
	DB	'e', 00H, 's', 00H, 's', 00H, 'i', 00H, 'n', 00H, 'g', 00H, ' '
	DB	00H, 'd', 00H, 'a', 00H, 't', 00H, 'a', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EA@BGCGAMLP@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@
CONST	SEGMENT
??_C@_1EA@BGCGAMLP@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'g', 00H, 'e', 00H, 't', 00H, ' '
	DB	00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 'o', 00H, 'u', 00H
	DB	't', 00H, 'p', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'f', 00H, 'o'
	DB	00H, 'r', 00H, 'm', 00H, 'a', 00H, 't', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1DG@EHDDNPOC@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@
CONST	SEGMENT
??_C@_1DG@EHDDNPOC@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@ DB 'I'
	DB	00H, 'n', 00H, 'p', 00H, 'u', 00H, 't', 00H, ' ', 00H, 'f', 00H
	DB	'o', 00H, 'r', 00H, 'm', 00H, 'a', 00H, 't', 00H, ' ', 00H, 'n'
	DB	00H, 'o', 00H, 't', 00H, ' ', 00H, 's', 00H, 'u', 00H, 'p', 00H
	DB	'p', 00H, 'o', 00H, 'r', 00H, 't', 00H, 'e', 00H, 'd', 00H, 00H
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_1EO@LEJPDDFG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAs?$AAe?$AAl?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAc?$AAo?$AAm?$AAp@
CONST	SEGMENT
??_C@_1EO@LEJPDDFG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAs?$AAe?$AAl?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAc?$AAo?$AAm?$AAp@ DB 'C'
	DB	00H, 'o', 00H, 'u', 00H, 'l', 00H, 'd', 00H, ' ', 00H, 'n', 00H
	DB	'o', 00H, 't', 00H, ' ', 00H, 'o', 00H, 'p', 00H, 'e', 00H, 'n'
	DB	00H, ' ', 00H, 't', 00H, 'h', 00H, 'e', 00H, ' ', 00H, 's', 00H
	DB	'e', 00H, 'l', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'e', 00H, 'd'
	DB	00H, ' ', 00H, 'c', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'r', 00H
	DB	'e', 00H, 's', 00H, 's', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_1EC@NGKPAKEP@?$AAT?$AAh?$AAe?$AA?5?$AAi?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAi?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd@
CONST	SEGMENT
??_C@_1EC@NGKPAKEP@?$AAT?$AAh?$AAe?$AA?5?$AAi?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAi?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd@ DB 'T'
	DB	00H, 'h', 00H, 'e', 00H, ' ', 00H, 'i', 00H, 'n', 00H, 'p', 00H
	DB	'u', 00H, 't', 00H, ' ', 00H, 'f', 00H, 'o', 00H, 'r', 00H, 'm'
	DB	00H, 'a', 00H, 't', 00H, ' ', 00H, 'i', 00H, 's', 00H, 'n', 00H
	DB	'''', 00H, 't', 00H, ' ', 00H, 's', 00H, 'u', 00H, 'p', 00H, 'p'
	DB	00H, 'o', 00H, 'r', 00H, 't', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string'
PUBLIC	?aviVideoGetOutputFormat@@YAPAUtagBITMAPINFOHEADER@@PAUAVI_FILE@@@Z ; aviVideoGetOutputFormat
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\avi_video.cpp
;	COMDAT ?aviVideoGetOutputFormat@@YAPAUtagBITMAPINFOHEADER@@PAUAVI_FILE@@@Z
_TEXT	SEGMENT
_file$ = 8						; size = 4
?aviVideoGetOutputFormat@@YAPAUtagBITMAPINFOHEADER@@PAUAVI_FILE@@@Z PROC ; aviVideoGetOutputFormat, COMDAT

; 255  : {

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

; 256  :     if (!file)

  00003	83 7d 08 00	 cmp	 DWORD PTR _file$[ebp], 0
  00007	75 04		 jne	 SHORT $LN1@aviVideoGe

; 257  :        return NULL;

  00009	33 c0		 xor	 eax, eax
  0000b	eb 09		 jmp	 SHORT $LN2@aviVideoGe
$LN1@aviVideoGe:

; 258  : 
; 259  :     return (BITMAPINFOHEADER *)file->video.comp.format;

  0000d	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00010	8b 80 e4 02 00
	00		 mov	 eax, DWORD PTR [eax+740]
$LN2@aviVideoGe:

; 260  : }

  00016	5d		 pop	 ebp
  00017	c3		 ret	 0
?aviVideoGetOutputFormat@@YAPAUtagBITMAPINFOHEADER@@PAUAVI_FILE@@@Z ENDP ; aviVideoGetOutputFormat
_TEXT	ENDS
PUBLIC	?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z	; aviVideoCompressorClose
; Function compile flags: /Odtp
;	COMDAT ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z
_TEXT	SEGMENT
_comp$ = -4						; size = 4
_file$ = 8						; size = 4
?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z PROC	; aviVideoCompressorClose, COMDAT

; 184  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 185  :     VIDEO_COMP *comp;
; 186  : 
; 187  :     if (!file)

  00004	83 7d 08 00	 cmp	 DWORD PTR _file$[ebp], 0
  00008	75 04		 jne	 SHORT $LN4@aviVideoCo

; 188  :        return FALSE;

  0000a	33 c0		 xor	 eax, eax
  0000c	eb 77		 jmp	 SHORT $LN5@aviVideoCo
$LN4@aviVideoCo:

; 189  : 
; 190  :     comp = &file->video.comp;

  0000e	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00011	05 e0 02 00 00	 add	 eax, 736		; 000002e0H
  00016	89 45 fc	 mov	 DWORD PTR _comp$[ebp], eax

; 191  : 
; 192  :     if (comp->hIC)

  00019	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  0001c	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0001f	74 33		 je	 SHORT $LN3@aviVideoCo

; 193  :     {
; 194  :         if (comp->compressing)

  00021	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00024	83 7a 08 00	 cmp	 DWORD PTR [edx+8], 0
  00028	74 16		 je	 SHORT $LN2@aviVideoCo

; 195  :         {
; 196  :             ICSeqCompressFrameEnd(&comp->vars);

  0002a	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  0002d	83 c0 0c	 add	 eax, 12			; 0000000cH
  00030	50		 push	 eax
  00031	e8 00 00 00 00	 call	 _ICSeqCompressFrameEnd@4

; 197  :             comp->compressing = FALSE;

  00036	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  00039	c7 41 08 00 00
	00 00		 mov	 DWORD PTR [ecx+8], 0
$LN2@aviVideoCo:

; 198  :         }
; 199  : 
; 200  :         ICClose(comp->hIC);

  00040	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00043	8b 02		 mov	 eax, DWORD PTR [edx]
  00045	50		 push	 eax
  00046	e8 00 00 00 00	 call	 _ICClose@4

; 201  :         comp->hIC = 0;

  0004b	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  0004e	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], 0
$LN3@aviVideoCo:

; 202  :     }
; 203  : 
; 204  :     if (comp->format)

  00054	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00057	83 7a 04 00	 cmp	 DWORD PTR [edx+4], 0
  0005b	74 19		 je	 SHORT $LN1@aviVideoCo

; 205  :     {
; 206  :         free(comp->format);

  0005d	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  00060	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  00063	51		 push	 ecx
  00064	e8 00 00 00 00	 call	 _free
  00069	83 c4 04	 add	 esp, 4

; 207  :         comp->format = NULL;

  0006c	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  0006f	c7 42 04 00 00
	00 00		 mov	 DWORD PTR [edx+4], 0
$LN1@aviVideoCo:

; 208  :     }
; 209  : 
; 210  :     comp->compressing = FALSE;

  00076	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  00079	c7 40 08 00 00
	00 00		 mov	 DWORD PTR [eax+8], 0

; 211  : 
; 212  :     return TRUE;

  00080	b8 01 00 00 00	 mov	 eax, 1
$LN5@aviVideoCo:

; 213  : }

  00085	8b e5		 mov	 esp, ebp
  00087	5d		 pop	 ebp
  00088	c3		 ret	 0
?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ENDP	; aviVideoCompressorClose
_TEXT	ENDS
PUBLIC	_aviVideoSetHandler
; Function compile flags: /Odtp
;	COMDAT _aviVideoSetHandler
_TEXT	SEGMENT
_file$ = 8						; size = 4
_fccHandler$ = 12					; size = 4
_inFormat$ = 16						; size = 4
_bitCount$ = 20						; size = 2
_aviVideoSetHandler PROC				; COMDAT

; 70   : {

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

; 71   :     if (!file)

  00003	83 7d 08 00	 cmp	 DWORD PTR _file$[ebp], 0
  00007	75 02		 jne	 SHORT $LN1@aviVideoSe

; 72   :        return;

  00009	eb 26		 jmp	 SHORT $LN2@aviVideoSe
$LN1@aviVideoSe:

; 73   : 
; 74   :     file->video.fccHandler         = fccHandler;

  0000b	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  0000e	8b 4d 0c	 mov	 ecx, DWORD PTR _fccHandler$[ebp]
  00011	89 88 dc 02 00
	00		 mov	 DWORD PTR [eax+732], ecx

; 75   :     file->video.info.biCompression = inFormat;

  00017	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  0001a	8b 45 10	 mov	 eax, DWORD PTR _inFormat$[ebp]
  0001d	89 82 bc 02 00
	00		 mov	 DWORD PTR [edx+700], eax

; 76   :     file->video.info.biBitCount    = bitCount;

  00023	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  00026	66 8b 55 14	 mov	 dx, WORD PTR _bitCount$[ebp]
  0002a	66 89 91 ba 02
	00 00		 mov	 WORD PTR [ecx+698], dx
$LN2@aviVideoSe:

; 77   : }

  00031	5d		 pop	 ebp
  00032	c3		 ret	 0
_aviVideoSetHandler ENDP
_TEXT	ENDS
PUBLIC	_aviVideoDefineStream
; Function compile flags: /Odtp
;	COMDAT _aviVideoDefineStream
_TEXT	SEGMENT
tv174 = -16						; size = 8
tv169 = -8						; size = 8
_file$ = 8						; size = 4
_rate$ = 12						; size = 4
_scale$ = 16						; size = 4
_w$ = 20						; size = 4
_h$ = 24						; size = 4
_aviVideoDefineStream PROC				; COMDAT

; 34   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H

; 35   :     if (!file)

  00006	83 7d 08 00	 cmp	 DWORD PTR _file$[ebp], 0
  0000a	75 05		 jne	 SHORT $LN1@aviVideoDe

; 36   :        return;

  0000c	e9 e9 00 00 00	 jmp	 $LN2@aviVideoDe
$LN1@aviVideoDe:

; 37   : 
; 38   :     memset(&file->video.info, 0, sizeof(BITMAPINFOHEADER));

  00011	6a 28		 push	 40			; 00000028H
  00013	6a 00		 push	 0
  00015	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00018	05 ac 02 00 00	 add	 eax, 684		; 000002acH
  0001d	50		 push	 eax
  0001e	e8 00 00 00 00	 call	 _memset
  00023	83 c4 0c	 add	 esp, 12			; 0000000cH

; 39   : 
; 40   :     file->video.rate  = rate;

  00026	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  00029	8b 55 0c	 mov	 edx, DWORD PTR _rate$[ebp]
  0002c	89 91 d4 02 00
	00		 mov	 DWORD PTR [ecx+724], edx

; 41   :     file->video.scale = scale;

  00032	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00035	8b 4d 10	 mov	 ecx, DWORD PTR _scale$[ebp]
  00038	89 88 d8 02 00
	00		 mov	 DWORD PTR [eax+728], ecx

; 42   : 
; 43   :     file->video.info.biSize        = sizeof(BITMAPINFOHEADER);

  0003e	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  00041	c7 82 ac 02 00
	00 28 00 00 00	 mov	 DWORD PTR [edx+684], 40	; 00000028H

; 44   :     file->video.info.biWidth       = w;

  0004b	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  0004e	8b 4d 14	 mov	 ecx, DWORD PTR _w$[ebp]
  00051	89 88 b0 02 00
	00		 mov	 DWORD PTR [eax+688], ecx

; 45   :     file->video.info.biHeight      = h;

  00057	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  0005a	8b 45 18	 mov	 eax, DWORD PTR _h$[ebp]
  0005d	89 82 b4 02 00
	00		 mov	 DWORD PTR [edx+692], eax

; 46   :     file->video.info.biPlanes      = 1;

  00063	b9 01 00 00 00	 mov	 ecx, 1
  00068	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  0006b	66 89 8a b8 02
	00 00		 mov	 WORD PTR [edx+696], cx

; 47   :     file->video.info.biCompression = BI_RGB;

  00072	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00075	c7 80 bc 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+700], 0

; 48   :     file->video.info.biBitCount    = 24;

  0007f	b9 18 00 00 00	 mov	 ecx, 24			; 00000018H
  00084	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  00087	66 89 8a ba 02
	00 00		 mov	 WORD PTR [edx+698], cx

; 49   : 
; 50   :     file->video.cc.data  = mmioFOURCC('0', '0', 'd', 'b');

  0008e	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00091	c7 80 a0 02 00
	00 30 30 64 62	 mov	 DWORD PTR [eax+672], 1650733104 ; 62643030H

; 51   :     file->video.cc.index = mmioFOURCC('i', 'x', '0', '0');

  0009b	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  0009e	c7 81 a4 02 00
	00 69 78 30 30	 mov	 DWORD PTR [ecx+676], 808482921 ; 30307869H

; 52   : 
; 53   :     file->video.fccHandler = FOURCC_DIB;

  000a8	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  000ab	c7 82 dc 02 00
	00 44 49 42 20	 mov	 DWORD PTR [edx+732], 541215044 ; 20424944H

; 54   : 
; 55   :     file->video.fps = (float)file->video.rate / (float)file->video.scale;

  000b5	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  000b8	8b 88 d4 02 00
	00		 mov	 ecx, DWORD PTR [eax+724]
  000be	89 4d f8	 mov	 DWORD PTR tv169[ebp], ecx
  000c1	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR tv169[ebp+4], 0
  000c8	df 6d f8	 fild	 QWORD PTR tv169[ebp]
  000cb	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  000ce	8b 82 d8 02 00
	00		 mov	 eax, DWORD PTR [edx+728]
  000d4	89 45 f0	 mov	 DWORD PTR tv174[ebp], eax
  000d7	c7 45 f4 00 00
	00 00		 mov	 DWORD PTR tv174[ebp+4], 0
  000de	df 6d f0	 fild	 QWORD PTR tv174[ebp]
  000e1	de f9		 fdivp	 ST(1), ST(0)
  000e3	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  000e6	d9 99 34 03 00
	00		 fstp	 DWORD PTR [ecx+820]

; 56   : 
; 57   :     file->flags |= AVI_FLAG_VIDEO;

  000ec	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  000ef	0f b6 02	 movzx	 eax, BYTE PTR [edx]
  000f2	83 c8 01	 or	 eax, 1
  000f5	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  000f8	88 01		 mov	 BYTE PTR [ecx], al
$LN2@aviVideoDe:

; 58   : }

  000fa	8b e5		 mov	 esp, ebp
  000fc	5d		 pop	 ebp
  000fd	c3		 ret	 0
_aviVideoDefineStream ENDP
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?aviVideoFCCIsUncompressed@@YAHK@Z
_TEXT	SEGMENT
tv66 = -4						; size = 4
_fcc$ = 8						; size = 4
?aviVideoFCCIsUncompressed@@YAHK@Z PROC			; aviVideoFCCIsUncompressed, COMDAT

; 22   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx

; 23   :     return (fcc==0 || fcc==FOURCC_DIB) ? TRUE : FALSE;

  00004	83 7d 08 00	 cmp	 DWORD PTR _fcc$[ebp], 0
  00008	74 12		 je	 SHORT $LN3@aviVideoFC
  0000a	81 7d 08 44 49
	42 20		 cmp	 DWORD PTR _fcc$[ebp], 541215044 ; 20424944H
  00011	74 09		 je	 SHORT $LN3@aviVideoFC
  00013	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR tv66[ebp], 0
  0001a	eb 07		 jmp	 SHORT $LN4@aviVideoFC
$LN3@aviVideoFC:
  0001c	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR tv66[ebp], 1
$LN4@aviVideoFC:
  00023	8b 45 fc	 mov	 eax, DWORD PTR tv66[ebp]

; 24   : }

  00026	8b e5		 mov	 esp, ebp
  00028	5d		 pop	 ebp
  00029	c3		 ret	 0
?aviVideoFCCIsUncompressed@@YAHK@Z ENDP			; aviVideoFCCIsUncompressed
PUBLIC	?aviVideoCompressData@@YAPAXPAUAVI_FILE@@PAXPAHPAK@Z ; aviVideoCompressData
; Function compile flags: /Odtp
;	COMDAT ?aviVideoCompressData@@YAPAXPAUAVI_FILE@@PAXPAHPAK@Z
_TEXT	SEGMENT
_result$ = -8						; size = 4
_comp$ = -4						; size = 4
_file$ = 8						; size = 4
_src$ = 12						; size = 4
_isKey$ = 16						; size = 4
_outSize$ = 20						; size = 4
?aviVideoCompressData@@YAPAXPAUAVI_FILE@@PAXPAHPAK@Z PROC ; aviVideoCompressData, COMDAT

; 226  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8

; 227  :     VIDEO_COMP *comp;
; 228  :     void       *result;
; 229  : 
; 230  :     if (!file || !file->video.comp.compressing || !outSize || !isKey)

  00006	83 7d 08 00	 cmp	 DWORD PTR _file$[ebp], 0
  0000a	74 18		 je	 SHORT $LN3@aviVideoCo@2
  0000c	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  0000f	83 b8 e8 02 00
	00 00		 cmp	 DWORD PTR [eax+744], 0
  00016	74 0c		 je	 SHORT $LN3@aviVideoCo@2
  00018	83 7d 14 00	 cmp	 DWORD PTR _outSize$[ebp], 0
  0001c	74 06		 je	 SHORT $LN3@aviVideoCo@2
  0001e	83 7d 10 00	 cmp	 DWORD PTR _isKey$[ebp], 0
  00022	75 04		 jne	 SHORT $LN4@aviVideoCo@2
$LN3@aviVideoCo@2:

; 231  :        return NULL;

  00024	33 c0		 xor	 eax, eax
  00026	eb 6a		 jmp	 SHORT $LN5@aviVideoCo@2
$LN4@aviVideoCo@2:

; 232  : 
; 233  :     comp     = &file->video.comp;

  00028	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  0002b	81 c1 e0 02 00
	00		 add	 ecx, 736		; 000002e0H
  00031	89 4d fc	 mov	 DWORD PTR _comp$[ebp], ecx

; 234  :     *outSize = 0;

  00034	8b 55 14	 mov	 edx, DWORD PTR _outSize$[ebp]
  00037	c7 02 00 00 00
	00		 mov	 DWORD PTR [edx], 0

; 235  : 
; 236  :     if (aviVideoFCCIsUncompressed(file->video.fccHandler))

  0003d	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00040	8b 88 dc 02 00
	00		 mov	 ecx, DWORD PTR [eax+732]
  00046	51		 push	 ecx
  00047	e8 00 00 00 00	 call	 ?aviVideoFCCIsUncompressed@@YAHK@Z ; aviVideoFCCIsUncompressed
  0004c	83 c4 04	 add	 esp, 4
  0004f	85 c0		 test	 eax, eax
  00051	74 1f		 je	 SHORT $LN2@aviVideoCo@2

; 237  :     {
; 238  :         /* Special case for uncompressed data */
; 239  :         result   = src;

  00053	8b 55 0c	 mov	 edx, DWORD PTR _src$[ebp]
  00056	89 55 f8	 mov	 DWORD PTR _result$[ebp], edx

; 240  :         *outSize = ((BITMAPINFOHEADER *)comp->format)->biSizeImage;

  00059	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  0005c	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0005f	8b 55 14	 mov	 edx, DWORD PTR _outSize$[ebp]
  00062	8b 41 14	 mov	 eax, DWORD PTR [ecx+20]
  00065	89 02		 mov	 DWORD PTR [edx], eax

; 241  :         *isKey   = TRUE;

  00067	8b 4d 10	 mov	 ecx, DWORD PTR _isKey$[ebp]
  0006a	c7 01 01 00 00
	00		 mov	 DWORD PTR [ecx], 1

; 242  :     } else

  00070	eb 1d		 jmp	 SHORT $LN1@aviVideoCo@2
$LN2@aviVideoCo@2:

; 243  :       result = ICSeqCompressFrame(&comp->vars, 0, src, isKey, (LONG*)outSize);

  00072	8b 55 14	 mov	 edx, DWORD PTR _outSize$[ebp]
  00075	52		 push	 edx
  00076	8b 45 10	 mov	 eax, DWORD PTR _isKey$[ebp]
  00079	50		 push	 eax
  0007a	8b 4d 0c	 mov	 ecx, DWORD PTR _src$[ebp]
  0007d	51		 push	 ecx
  0007e	6a 00		 push	 0
  00080	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00083	83 c2 0c	 add	 edx, 12			; 0000000cH
  00086	52		 push	 edx
  00087	e8 00 00 00 00	 call	 _ICSeqCompressFrame@20
  0008c	89 45 f8	 mov	 DWORD PTR _result$[ebp], eax
$LN1@aviVideoCo@2:

; 244  : 
; 245  :     return result;

  0008f	8b 45 f8	 mov	 eax, DWORD PTR _result$[ebp]
$LN5@aviVideoCo@2:

; 246  : }

  00092	8b e5		 mov	 esp, ebp
  00094	5d		 pop	 ebp
  00095	c3		 ret	 0
?aviVideoCompressData@@YAPAXPAUAVI_FILE@@PAXPAHPAK@Z ENDP ; aviVideoCompressData
_TEXT	ENDS
PUBLIC	?aviVideoCompressorOpen@@YAHPAUAVI_FILE@@@Z	; aviVideoCompressorOpen
_dwICValue DD	01H DUP (?)
; Function compile flags: /Odtp
;	COMDAT ?aviVideoCompressorOpen@@YAHPAUAVI_FILE@@@Z
_TEXT	SEGMENT
_vars$ = -12						; size = 4
_size$ = -8						; size = 4
_comp$ = -4						; size = 4
_file$ = 8						; size = 4
?aviVideoCompressorOpen@@YAHPAUAVI_FILE@@@Z PROC	; aviVideoCompressorOpen, COMDAT

; 86   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 0c	 sub	 esp, 12			; 0000000cH

; 87   :     DWORD      size;
; 88   :     VIDEO_COMP *comp;
; 89   :     COMPVARS   *vars;
; 90   : 
; 91   :     #define VIDEO_ERROR(file, message)\
; 92   :     {\
; 93   :         aviVideoCompressorClose(file);\
; 94   :         aviSetError(file, AVI_ERROR_VIDEO_OPEN, message);\
; 95   :         return FALSE;\
; 96   :     }
; 97   : 
; 98   :     if (!file)

  00006	83 7d 08 00	 cmp	 DWORD PTR _file$[ebp], 0
  0000a	75 07		 jne	 SHORT $LN11@aviVideoCo@3

; 99   :        return FALSE;

  0000c	33 c0		 xor	 eax, eax
  0000e	e9 11 03 00 00	 jmp	 $LN12@aviVideoCo@3
$LN11@aviVideoCo@3:

; 100  : 
; 101  :     comp = &file->video.comp;

  00013	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00016	05 e0 02 00 00	 add	 eax, 736		; 000002e0H
  0001b	89 45 fc	 mov	 DWORD PTR _comp$[ebp], eax

; 102  : 
; 103  :     if (aviVideoFCCIsUncompressed(file->video.fccHandler))

  0001e	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  00021	8b 91 dc 02 00
	00		 mov	 edx, DWORD PTR [ecx+732]
  00027	52		 push	 edx
  00028	e8 00 00 00 00	 call	 ?aviVideoFCCIsUncompressed@@YAHK@Z ; aviVideoFCCIsUncompressed
  0002d	83 c4 04	 add	 esp, 4
  00030	85 c0		 test	 eax, eax
  00032	0f 84 cc 00 00
	00		 je	 $LN10@aviVideoCo@3

; 104  :     {
; 105  :         /* Special case for uncompressed output */
; 106  : 
; 107  :         /* Check the input format */
; 108  :         if (file->video.info.biCompression != BI_RGB &&
; 109  :             file->video.info.biCompression != FOURCC_YUY2)

  00038	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  0003b	83 b8 bc 02 00
	00 00		 cmp	 DWORD PTR [eax+700], 0
  00042	74 35		 je	 SHORT $LN9@aviVideoCo@3
  00044	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  00047	81 b9 bc 02 00
	00 59 55 59 32	 cmp	 DWORD PTR [ecx+700], 844715353 ; 32595559H
  00051	74 26		 je	 SHORT $LN9@aviVideoCo@3

; 110  :            VIDEO_ERROR(file, _T("The input format isn't supported"));

  00053	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  00056	52		 push	 edx
  00057	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  0005c	83 c4 04	 add	 esp, 4
  0005f	68 00 00 00 00	 push	 OFFSET ??_C@_1EC@NGKPAKEP@?$AAT?$AAh?$AAe?$AA?5?$AAi?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAi?$AAs?$AAn?$AA?8?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd@
  00064	6a 07		 push	 7
  00066	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00069	50		 push	 eax
  0006a	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  0006f	83 c4 0c	 add	 esp, 12			; 0000000cH
  00072	33 c0		 xor	 eax, eax
  00074	e9 ab 02 00 00	 jmp	 $LN12@aviVideoCo@3
$LN9@aviVideoCo@3:

; 111  : 
; 112  :         /* Make the output format equal to the input format */
; 113  :         comp->format = malloc(sizeof(BITMAPINFOHEADER));

  00079	6a 28		 push	 40			; 00000028H
  0007b	e8 00 00 00 00	 call	 _malloc
  00080	83 c4 04	 add	 esp, 4
  00083	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  00086	89 41 04	 mov	 DWORD PTR [ecx+4], eax

; 114  :         if (!comp->format)

  00089	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  0008c	83 7a 04 00	 cmp	 DWORD PTR [edx+4], 0
  00090	75 26		 jne	 SHORT $LN8@aviVideoCo@3

; 115  :            VIDEO_ERROR(file, _T("Out of memory"));

  00092	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00095	50		 push	 eax
  00096	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  0009b	83 c4 04	 add	 esp, 4
  0009e	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CKLAAKNF@?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?$AA@
  000a3	6a 07		 push	 7
  000a5	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  000a8	51		 push	 ecx
  000a9	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  000ae	83 c4 0c	 add	 esp, 12			; 0000000cH
  000b1	33 c0		 xor	 eax, eax
  000b3	e9 6c 02 00 00	 jmp	 $LN12@aviVideoCo@3
$LN8@aviVideoCo@3:

; 116  : 
; 117  :         memcpy(comp->format, &file->video.info, sizeof(BITMAPINFOHEADER));

  000b8	6a 28		 push	 40			; 00000028H
  000ba	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  000bd	81 c2 ac 02 00
	00		 add	 edx, 684		; 000002acH
  000c3	52		 push	 edx
  000c4	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  000c7	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  000ca	51		 push	 ecx
  000cb	e8 00 00 00 00	 call	 _memcpy
  000d0	83 c4 0c	 add	 esp, 12			; 0000000cH

; 118  : 
; 119  :         /* Make sure biSizeImage is set correctly in format */
; 120  :         ((BITMAPINFOHEADER *)comp->format)->biSizeImage =
; 121  :                 file->video.info.biWidth * file->video.info.biHeight *
; 122  :                 (file->video.info.biBitCount >> 3);

  000d3	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  000d6	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  000d9	8b 8a b0 02 00
	00		 mov	 ecx, DWORD PTR [edx+688]
  000df	0f af 88 b4 02
	00 00		 imul	 ecx, DWORD PTR [eax+692]
  000e6	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  000e9	0f b7 82 ba 02
	00 00		 movzx	 eax, WORD PTR [edx+698]
  000f0	c1 f8 03	 sar	 eax, 3
  000f3	0f af c8	 imul	 ecx, eax
  000f6	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  000f9	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  000fc	89 48 14	 mov	 DWORD PTR [eax+20], ecx

; 123  :     } else

  000ff	e9 11 02 00 00	 jmp	 $LN7@aviVideoCo@3
$LN10@aviVideoCo@3:

; 124  :     {
; 125  :         /* The fourcc code doesn't seem to indicate an uncompressed format */
; 126  : 
; 127  :         if (comp->hIC)

  00104	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  00107	83 39 00	 cmp	 DWORD PTR [ecx], 0
  0010a	74 0a		 je	 SHORT $LN6@aviVideoCo@3

; 128  :            return TRUE; /* Already open */

  0010c	b8 01 00 00 00	 mov	 eax, 1
  00111	e9 0e 02 00 00	 jmp	 $LN12@aviVideoCo@3
$LN6@aviVideoCo@3:

; 129  : 
; 130  :         comp->hIC = ICOpen(ICTYPE_VIDEO, file->video.fccHandler,
; 131  :                            ICMODE_COMPRESS);

  00116	6a 01		 push	 1
  00118	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  0011b	8b 82 dc 02 00
	00		 mov	 eax, DWORD PTR [edx+732]
  00121	50		 push	 eax
  00122	68 76 69 64 63	 push	 1667524982		; 63646976H
  00127	e8 00 00 00 00	 call	 _ICOpen@12
  0012c	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  0012f	89 01		 mov	 DWORD PTR [ecx], eax

; 132  :         if (!comp->hIC)

  00131	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00134	83 3a 00	 cmp	 DWORD PTR [edx], 0
  00137	75 26		 jne	 SHORT $LN5@aviVideoCo@3

; 133  :            VIDEO_ERROR(file, _T("Could not open the selected compressor"));

  00139	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  0013c	50		 push	 eax
  0013d	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  00142	83 c4 04	 add	 esp, 4
  00145	68 00 00 00 00	 push	 OFFSET ??_C@_1EO@LEJPDDFG@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAo?$AAp?$AAe?$AAn?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAs?$AAe?$AAl?$AAe?$AAc?$AAt?$AAe?$AAd?$AA?5?$AAc?$AAo?$AAm?$AAp@
  0014a	6a 07		 push	 7
  0014c	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  0014f	51		 push	 ecx
  00150	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  00155	83 c4 0c	 add	 esp, 12			; 0000000cH
  00158	33 c0		 xor	 eax, eax
  0015a	e9 c5 01 00 00	 jmp	 $LN12@aviVideoCo@3
$LN5@aviVideoCo@3:

; 134  : 
; 135  :         /* Make sure the compressor supports the input format */
; 136  :         if (ICCompressQuery(comp->hIC, &file->video.info, NULL) != ICERR_OK)

  0015f	6a 00		 push	 0
  00161	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  00164	81 c2 ac 02 00
	00		 add	 edx, 684		; 000002acH
  0016a	52		 push	 edx
  0016b	68 06 40 00 00	 push	 16390			; 00004006H
  00170	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  00173	8b 08		 mov	 ecx, DWORD PTR [eax]
  00175	51		 push	 ecx
  00176	e8 00 00 00 00	 call	 _ICSendMessage@16
  0017b	85 c0		 test	 eax, eax
  0017d	74 26		 je	 SHORT $LN4@aviVideoCo@3

; 137  :            VIDEO_ERROR(file, _T("Input format not supported"));

  0017f	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  00182	52		 push	 edx
  00183	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  00188	83 c4 04	 add	 esp, 4
  0018b	68 00 00 00 00	 push	 OFFSET ??_C@_1DG@EHDDNPOC@?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?$AA@
  00190	6a 07		 push	 7
  00192	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00195	50		 push	 eax
  00196	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  0019b	83 c4 0c	 add	 esp, 12			; 0000000cH
  0019e	33 c0		 xor	 eax, eax
  001a0	e9 7f 01 00 00	 jmp	 $LN12@aviVideoCo@3
$LN4@aviVideoCo@3:

; 138  : 
; 139  :         /* Get the output format */
; 140  :         assert(!comp->format);
; 141  :         size = ICCompressGetFormatSize(comp->hIC, &file->video.info);

  001a5	6a 00		 push	 0
  001a7	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  001aa	81 c1 ac 02 00
	00		 add	 ecx, 684		; 000002acH
  001b0	51		 push	 ecx
  001b1	68 04 40 00 00	 push	 16388			; 00004004H
  001b6	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  001b9	8b 02		 mov	 eax, DWORD PTR [edx]
  001bb	50		 push	 eax
  001bc	e8 00 00 00 00	 call	 _ICSendMessage@16
  001c1	89 45 f8	 mov	 DWORD PTR _size$[ebp], eax

; 142  : 
; 143  :         assert(size >= sizeof(BITMAPINFOHEADER));
; 144  : 
; 145  :         comp->format = malloc(size);

  001c4	8b 4d f8	 mov	 ecx, DWORD PTR _size$[ebp]
  001c7	51		 push	 ecx
  001c8	e8 00 00 00 00	 call	 _malloc
  001cd	83 c4 04	 add	 esp, 4
  001d0	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  001d3	89 42 04	 mov	 DWORD PTR [edx+4], eax

; 146  :         if (!comp->format)

  001d6	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  001d9	83 78 04 00	 cmp	 DWORD PTR [eax+4], 0
  001dd	75 26		 jne	 SHORT $LN3@aviVideoCo@3

; 147  :            VIDEO_ERROR(file, _T("Out of memory"));

  001df	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  001e2	51		 push	 ecx
  001e3	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  001e8	83 c4 04	 add	 esp, 4
  001eb	68 00 00 00 00	 push	 OFFSET ??_C@_1BM@CKLAAKNF@?$AAO?$AAu?$AAt?$AA?5?$AAo?$AAf?$AA?5?$AAm?$AAe?$AAm?$AAo?$AAr?$AAy?$AA?$AA@
  001f0	6a 07		 push	 7
  001f2	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  001f5	52		 push	 edx
  001f6	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  001fb	83 c4 0c	 add	 esp, 12			; 0000000cH
  001fe	33 c0		 xor	 eax, eax
  00200	e9 1f 01 00 00	 jmp	 $LN12@aviVideoCo@3
$LN3@aviVideoCo@3:

; 148  : 
; 149  :         if (ICCompressGetFormat(comp->hIC, &file->video.info,
; 150  :                                 comp->format) != ICERR_OK)

  00205	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  00208	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
  0020b	51		 push	 ecx
  0020c	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  0020f	81 c2 ac 02 00
	00		 add	 edx, 684		; 000002acH
  00215	52		 push	 edx
  00216	68 04 40 00 00	 push	 16388			; 00004004H
  0021b	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  0021e	8b 08		 mov	 ecx, DWORD PTR [eax]
  00220	51		 push	 ecx
  00221	e8 00 00 00 00	 call	 _ICSendMessage@16
  00226	85 c0		 test	 eax, eax
  00228	74 26		 je	 SHORT $LN2@aviVideoCo@3

; 151  :            VIDEO_ERROR(file, _T("Could not get the output format"));

  0022a	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  0022d	52		 push	 edx
  0022e	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  00233	83 c4 04	 add	 esp, 4
  00236	68 00 00 00 00	 push	 OFFSET ??_C@_1EA@BGCGAMLP@?$AAC?$AAo?$AAu?$AAl?$AAd?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAg?$AAe?$AAt?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAo?$AAu?$AAt?$AAp?$AAu?$AAt?$AA?5?$AAf?$AAo?$AAr?$AAm?$AAa?$AAt?$AA?$AA@
  0023b	6a 07		 push	 7
  0023d	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  00240	50		 push	 eax
  00241	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  00246	83 c4 0c	 add	 esp, 12			; 0000000cH
  00249	33 c0		 xor	 eax, eax
  0024b	e9 d4 00 00 00	 jmp	 $LN12@aviVideoCo@3
$LN2@aviVideoCo@3:

; 152  : 
; 153  :         /* Get the compressor's default quality setting */
; 154  :         comp->quality = ICGetDefaultQuality(comp->hIC);

  00250	6a 04		 push	 4
  00252	68 00 00 00 00	 push	 OFFSET _dwICValue
  00257	68 1e 50 00 00	 push	 20510			; 0000501eH
  0025c	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  0025f	8b 11		 mov	 edx, DWORD PTR [ecx]
  00261	52		 push	 edx
  00262	e8 00 00 00 00	 call	 _ICSendMessage@16
  00267	8b 45 fc	 mov	 eax, DWORD PTR _comp$[ebp]
  0026a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR _dwICValue
  00270	89 48 4c	 mov	 DWORD PTR [eax+76], ecx

; 155  : 
; 156  :         /* Get the compressor ready to begin working on input data */
; 157  :         vars = &comp->vars;

  00273	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00276	83 c2 0c	 add	 edx, 12			; 0000000cH
  00279	89 55 f4	 mov	 DWORD PTR _vars$[ebp], edx

; 158  :         memset(vars, 0, sizeof(COMPVARS));

  0027c	6a 40		 push	 64			; 00000040H
  0027e	6a 00		 push	 0
  00280	8b 45 f4	 mov	 eax, DWORD PTR _vars$[ebp]
  00283	50		 push	 eax
  00284	e8 00 00 00 00	 call	 _memset
  00289	83 c4 0c	 add	 esp, 12			; 0000000cH

; 159  : 
; 160  :         vars->cbSize     = sizeof(COMPVARS);

  0028c	8b 4d f4	 mov	 ecx, DWORD PTR _vars$[ebp]
  0028f	c7 01 40 00 00
	00		 mov	 DWORD PTR [ecx], 64	; 00000040H

; 161  :         vars->dwFlags    = ICMF_COMPVARS_VALID;

  00295	8b 55 f4	 mov	 edx, DWORD PTR _vars$[ebp]
  00298	c7 42 04 01 00
	00 00		 mov	 DWORD PTR [edx+4], 1

; 162  :         vars->hic        = comp->hIC;

  0029f	8b 45 f4	 mov	 eax, DWORD PTR _vars$[ebp]
  002a2	8b 4d fc	 mov	 ecx, DWORD PTR _comp$[ebp]
  002a5	8b 11		 mov	 edx, DWORD PTR [ecx]
  002a7	89 50 08	 mov	 DWORD PTR [eax+8], edx

; 163  :         vars->fccType    = ICTYPE_VIDEO;

  002aa	8b 45 f4	 mov	 eax, DWORD PTR _vars$[ebp]
  002ad	c7 40 0c 76 69
	64 63		 mov	 DWORD PTR [eax+12], 1667524982 ; 63646976H

; 164  :         vars->fccHandler = file->video.fccHandler;

  002b4	8b 4d f4	 mov	 ecx, DWORD PTR _vars$[ebp]
  002b7	8b 55 08	 mov	 edx, DWORD PTR _file$[ebp]
  002ba	8b 82 dc 02 00
	00		 mov	 eax, DWORD PTR [edx+732]
  002c0	89 41 10	 mov	 DWORD PTR [ecx+16], eax

; 165  :         vars->lpbiOut    = (LPBITMAPINFO)comp->format;

  002c3	8b 4d f4	 mov	 ecx, DWORD PTR _vars$[ebp]
  002c6	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  002c9	8b 42 04	 mov	 eax, DWORD PTR [edx+4]
  002cc	89 41 18	 mov	 DWORD PTR [ecx+24], eax

; 166  :         vars->lQ         = comp->quality;

  002cf	8b 4d f4	 mov	 ecx, DWORD PTR _vars$[ebp]
  002d2	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  002d5	8b 42 4c	 mov	 eax, DWORD PTR [edx+76]
  002d8	89 41 30	 mov	 DWORD PTR [ecx+48], eax

; 167  : 
; 168  :         if (!ICSeqCompressFrameStart(vars, (BITMAPINFO *)&file->video.info))

  002db	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  002de	81 c1 ac 02 00
	00		 add	 ecx, 684		; 000002acH
  002e4	51		 push	 ecx
  002e5	8b 55 f4	 mov	 edx, DWORD PTR _vars$[ebp]
  002e8	52		 push	 edx
  002e9	e8 00 00 00 00	 call	 _ICSeqCompressFrameStart@8
  002ee	85 c0		 test	 eax, eax
  002f0	75 23		 jne	 SHORT $LN7@aviVideoCo@3

; 169  :            VIDEO_ERROR(file, _T("Couldn't begin compressing data"));

  002f2	8b 45 08	 mov	 eax, DWORD PTR _file$[ebp]
  002f5	50		 push	 eax
  002f6	e8 00 00 00 00	 call	 ?aviVideoCompressorClose@@YAHPAUAVI_FILE@@@Z ; aviVideoCompressorClose
  002fb	83 c4 04	 add	 esp, 4
  002fe	68 00 00 00 00	 push	 OFFSET ??_C@_1EA@MFONECGJ@?$AAC?$AAo?$AAu?$AAl?$AAd?$AAn?$AA?8?$AAt?$AA?5?$AAb?$AAe?$AAg?$AAi?$AAn?$AA?5?$AAc?$AAo?$AAm?$AAp?$AAr?$AAe?$AAs?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAd?$AAa?$AAt?$AAa?$AA?$AA@
  00303	6a 07		 push	 7
  00305	8b 4d 08	 mov	 ecx, DWORD PTR _file$[ebp]
  00308	51		 push	 ecx
  00309	e8 00 00 00 00	 call	 ?aviSetError@@YAXPAUAVI_FILE@@W4aviError_t@@PA_W@Z ; aviSetError
  0030e	83 c4 0c	 add	 esp, 12			; 0000000cH
  00311	33 c0		 xor	 eax, eax
  00313	eb 0f		 jmp	 SHORT $LN12@aviVideoCo@3
$LN7@aviVideoCo@3:

; 170  :     }
; 171  : 
; 172  :     comp->compressing = TRUE;

  00315	8b 55 fc	 mov	 edx, DWORD PTR _comp$[ebp]
  00318	c7 42 08 01 00
	00 00		 mov	 DWORD PTR [edx+8], 1

; 173  : 
; 174  :     return TRUE;

  0031f	b8 01 00 00 00	 mov	 eax, 1
$LN12@aviVideoCo@3:

; 175  : }

  00324	8b e5		 mov	 esp, ebp
  00326	5d		 pop	 ebp
  00327	c3		 ret	 0
?aviVideoCompressorOpen@@YAHPAUAVI_FILE@@@Z ENDP	; aviVideoCompressorOpen
END
