2024-06-23 17:36:53 +08:00

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