327 lines
9.9 KiB
Plaintext
327 lines
9.9 KiB
Plaintext
; 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
|