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

355 lines
10 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 12.00.9044.0
TITLE C:\Users\Administrator\Desktop\GHOST\Client\Include\XvidDec.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 DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; COMDAT _IsEqualGUID
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _==
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ??0CXvidDec@@QAE@HIH@Z ; CXvidDec::CXvidDec
EXTRN _xvid_global:NEAR
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
_version$ = 8
_cpu_flags$ = 12
_debug$ = 16
??0CXvidDec@@QAE@HIH@Z PROC NEAR ; CXvidDec::CXvidDec
; _this$ = ecx
; File C:\Users\Administrator\Desktop\GHOST\Client\Include\XvidDec.cpp
; Line 11
00000 53 push ebx
00001 56 push esi
00002 8b f1 mov esi, ecx
; Line 12
00004 8b 4c 24 0c mov ecx, DWORD PTR _version$[esp+4]
; Line 13
00008 33 db xor ebx, ebx
; Line 15
0000a 8d 46 18 lea eax, DWORD PTR [esi+24]
0000d 89 4e 10 mov DWORD PTR [esi+16], ecx
; Line 18
00010 53 push ebx
00011 50 push eax
00012 89 08 mov DWORD PTR [eax], ecx
00014 8b 4c 24 18 mov ecx, DWORD PTR _cpu_flags$[esp+12]
00018 89 4e 1c mov DWORD PTR [esi+28], ecx
0001b 8b 4c 24 1c mov ecx, DWORD PTR _debug$[esp+12]
0001f 53 push ebx
00020 53 push ebx
00021 88 1e mov BYTE PTR [esi], bl
00023 89 4e 20 mov DWORD PTR [esi+32], ecx
00026 e8 00 00 00 00 call _xvid_global
0002b 83 c4 10 add esp, 16 ; 00000010H
0002e 85 c0 test eax, eax
00030 7d 05 jge SHORT $L75523
; Line 19
00032 88 5e 14 mov BYTE PTR [esi+20], bl
; Line 20
00035 eb 04 jmp SHORT $L75524
$L75523:
; Line 21
00037 c6 46 14 01 mov BYTE PTR [esi+20], 1
$L75524:
; Line 22
0003b 8b c6 mov eax, esi
0003d 5e pop esi
0003e 5b pop ebx
0003f c2 0c 00 ret 12 ; 0000000cH
??0CXvidDec@@QAE@HIH@Z ENDP ; CXvidDec::CXvidDec
_TEXT ENDS
PUBLIC ??1CXvidDec@@QAE@XZ ; CXvidDec::~CXvidDec
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
??1CXvidDec@@QAE@XZ PROC NEAR ; CXvidDec::~CXvidDec
; _this$ = ecx
; Line 27
00042 c3 ret 0
??1CXvidDec@@QAE@XZ ENDP ; CXvidDec::~CXvidDec
_TEXT ENDS
PUBLIC ?AttachCaller@CXvidDec@@QAEXHH@Z ; CXvidDec::AttachCaller
EXTRN ??2@YAPAXI@Z:NEAR ; operator new
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
_width$ = 8
_height$ = 12
?AttachCaller@CXvidDec@@QAEXHH@Z PROC NEAR ; CXvidDec::AttachCaller
; _this$ = ecx
; Line 30
00043 8b 44 24 04 mov eax, DWORD PTR _width$[esp-4]
00047 56 push esi
00048 8b f1 mov esi, ecx
; Line 31
0004a 8b 4c 24 0c mov ecx, DWORD PTR _height$[esp]
; Line 32
0004e 85 c0 test eax, eax
00050 89 46 08 mov DWORD PTR [esi+8], eax
00053 89 4e 0c mov DWORD PTR [esi+12], ecx
00056 7e 32 jle SHORT $L75533
00058 85 c9 test ecx, ecx
0005a 7e 2e jle SHORT $L75533
; Line 35
0005c 0f af c1 imul eax, ecx
0005f 57 push edi
00060 8d 04 40 lea eax, DWORD PTR [eax+eax*2]
00063 50 push eax
00064 e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
00069 8b f8 mov edi, eax
0006b 8b 46 0c mov eax, DWORD PTR [esi+12]
0006e 0f af 46 08 imul eax, DWORD PTR [esi+8]
00072 59 pop ecx
00073 89 7e 04 mov DWORD PTR [esi+4], edi
00076 8d 0c 40 lea ecx, DWORD PTR [eax+eax*2]
00079 33 c0 xor eax, eax
0007b 8b d1 mov edx, ecx
0007d c1 e9 02 shr ecx, 2
00080 f3 ab rep stosd
00082 8b ca mov ecx, edx
00084 83 e1 03 and ecx, 3
00087 f3 aa rep stosb
00089 5f pop edi
$L75533:
0008a 5e pop esi
; Line 37
0008b c2 08 00 ret 8
?AttachCaller@CXvidDec@@QAEXHH@Z ENDP ; CXvidDec::AttachCaller
_TEXT ENDS
PUBLIC ?XVID_GLOBAL_INIT@CXvidDec@@SAXXZ ; CXvidDec::XVID_GLOBAL_INIT
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
_xvid_gbl_init$ = -12
?XVID_GLOBAL_INIT@CXvidDec@@SAXXZ PROC NEAR ; CXvidDec::XVID_GLOBAL_INIT
; Line 38
0008e 55 push ebp
0008f 8b ec mov ebp, esp
00091 83 ec 0c sub esp, 12 ; 0000000cH
00094 57 push edi
; Line 43
00095 33 c0 xor eax, eax
00097 8d 7d f4 lea edi, DWORD PTR _xvid_gbl_init$[ebp]
; Line 47
0009a 8d 4d f4 lea ecx, DWORD PTR _xvid_gbl_init$[ebp]
0009d ab stosd
0009e ab stosd
0009f ab stosd
000a0 33 c0 xor eax, eax
000a2 c7 45 f4 05 03
01 00 mov DWORD PTR _xvid_gbl_init$[ebp], 66309 ; 00010305H
000a9 50 push eax
000aa 51 push ecx
000ab 50 push eax
000ac 50 push eax
000ad 89 45 f8 mov DWORD PTR _xvid_gbl_init$[ebp+4], eax
000b0 e8 00 00 00 00 call _xvid_global
000b5 83 c4 10 add esp, 16 ; 00000010H
000b8 5f pop edi
; Line 48
000b9 c9 leave
000ba c3 ret 0
?XVID_GLOBAL_INIT@CXvidDec@@SAXXZ ENDP ; CXvidDec::XVID_GLOBAL_INIT
_TEXT ENDS
PUBLIC ?Open@CXvidDec@@QAE_NHHH@Z ; CXvidDec::Open
EXTRN _xvid_decore:NEAR
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
_width$ = 8
_height$ = 12
_cbit$ = 16
?Open@CXvidDec@@QAE_NHHH@Z PROC NEAR ; CXvidDec::Open
; _this$ = ecx
; Line 50
000bb 55 push ebp
000bc 8b ec mov ebp, esp
000be 53 push ebx
000bf 56 push esi
000c0 8b f1 mov esi, ecx
000c2 57 push edi
; Line 51
000c3 80 7e 14 00 cmp BYTE PTR [esi+20], 0
000c7 74 59 je SHORT $L75582
; Line 52
000c9 80 3e 00 cmp BYTE PTR [esi], 0
000cc 75 54 jne SHORT $L75582
; Line 56
000ce 83 7d 10 10 cmp DWORD PTR _cbit$[ebp], 16 ; 00000010H
000d2 74 1a je SHORT $L75552
000d4 83 7d 10 18 cmp DWORD PTR _cbit$[ebp], 24 ; 00000018H
000d8 74 0d je SHORT $L75553
000da 83 7d 10 20 cmp DWORD PTR _cbit$[ebp], 32 ; 00000020H
; Line 67
000de 75 42 jne SHORT $L75582
; Line 64
000e0 bb 40 00 00 80 mov ebx, -2147483584 ; 80000040H
; Line 65
000e5 eb 0c jmp SHORT $L75549
$L75553:
; Line 61
000e7 bb 00 02 00 80 mov ebx, -2147483136 ; 80000200H
; Line 62
000ec eb 05 jmp SHORT $L75549
$L75552:
; Line 58
000ee bb 00 04 00 80 mov ebx, -2147482624 ; 80000400H
$L75549:
; Line 71
000f3 8d 56 24 lea edx, DWORD PTR [esi+36]
000f6 6a 06 push 6
000f8 59 pop ecx
000f9 33 c0 xor eax, eax
000fb 8b fa mov edi, edx
000fd f3 ab rep stosd
; Line 72
000ff 8b 46 10 mov eax, DWORD PTR [esi+16]
00102 89 02 mov DWORD PTR [edx], eax
; Line 73
00104 8b 45 08 mov eax, DWORD PTR _width$[ebp]
00107 89 46 28 mov DWORD PTR [esi+40], eax
; Line 74
0010a 8b 45 0c mov eax, DWORD PTR _height$[ebp]
0010d 89 46 2c mov DWORD PTR [esi+44], eax
; Line 75
00110 33 c0 xor eax, eax
00112 50 push eax
00113 52 push edx
00114 50 push eax
00115 50 push eax
00116 e8 00 00 00 00 call _xvid_decore
0011b 83 c4 10 add esp, 16 ; 00000010H
0011e 85 c0 test eax, eax
00120 7d 04 jge SHORT $L75556
$L75582:
; Line 76
00122 32 c0 xor al, al
00124 eb 35 jmp SHORT $L75544
$L75556:
; Line 79
00126 8d 56 3c lea edx, DWORD PTR [esi+60]
00129 6a 0e push 14 ; 0000000eH
0012b 59 pop ecx
0012c 33 c0 xor eax, eax
0012e 8b fa mov edi, edx
; Line 82
00130 6a 08 push 8
00132 f3 ab rep stosd
00134 8b 46 10 mov eax, DWORD PTR [esi+16]
00137 59 pop ecx
00138 89 02 mov DWORD PTR [edx], eax
0013a 8b 46 28 mov eax, DWORD PTR [esi+40]
0013d 0f af 45 10 imul eax, DWORD PTR _cbit$[ebp]
00141 99 cdq
00142 f7 f9 idiv ecx
00144 6a 04 push 4
00146 89 5e 4c mov DWORD PTR [esi+76], ebx
00149 59 pop ecx
; Line 84
0014a c6 06 01 mov BYTE PTR [esi], 1
0014d 83 c0 03 add eax, 3
00150 99 cdq
00151 f7 f9 idiv ecx
00153 c1 e0 02 shl eax, 2
00156 89 46 60 mov DWORD PTR [esi+96], eax
; Line 85
00159 b0 01 mov al, 1
$L75544:
0015b 5f pop edi
0015c 5e pop esi
0015d 5b pop ebx
; Line 86
0015e 5d pop ebp
0015f c2 0c 00 ret 12 ; 0000000cH
?Open@CXvidDec@@QAE_NHHH@Z ENDP ; CXvidDec::Open
_TEXT ENDS
PUBLIC ?Decode@CXvidDec@@QAEHPAXH0@Z ; CXvidDec::Decode
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
_input$ = 8
_inlen$ = 12
_output$ = 16
?Decode@CXvidDec@@QAEHPAXH0@Z PROC NEAR ; CXvidDec::Decode
; _this$ = ecx
; Line 90
00162 80 39 00 cmp BYTE PTR [ecx], 0
00165 75 05 jne SHORT $L75563
00167 83 c8 ff or eax, -1
0016a eb 28 jmp SHORT $L75562
$L75563:
; Line 92
0016c 8b 44 24 04 mov eax, DWORD PTR _input$[esp-4]
; Line 96
00170 6a 00 push 0
00172 89 41 44 mov DWORD PTR [ecx+68], eax
00175 8b 44 24 0c mov eax, DWORD PTR _inlen$[esp]
00179 89 41 48 mov DWORD PTR [ecx+72], eax
0017c 8b 44 24 10 mov eax, DWORD PTR _output$[esp]
00180 89 41 50 mov DWORD PTR [ecx+80], eax
00183 8d 41 3c lea eax, DWORD PTR [ecx+60]
00186 50 push eax
00187 6a 02 push 2
00189 ff 71 30 push DWORD PTR [ecx+48]
0018c e8 00 00 00 00 call _xvid_decore
00191 83 c4 10 add esp, 16 ; 00000010H
$L75562:
; Line 97
00194 c2 0c 00 ret 12 ; 0000000cH
?Decode@CXvidDec@@QAEHPAXH0@Z ENDP ; CXvidDec::Decode
_TEXT ENDS
PUBLIC ?Close@CXvidDec@@QAE_NXZ ; CXvidDec::Close
; Function compile flags: /Ogsawpy
_TEXT SEGMENT
?Close@CXvidDec@@QAE_NXZ PROC NEAR ; CXvidDec::Close
; _this$ = ecx
; Line 100
00197 56 push esi
00198 8b f1 mov esi, ecx
; Line 101
0019a 80 3e 00 cmp BYTE PTR [esi], 0
0019d 74 1c je SHORT $L75567
0019f 6a 00 push 0
001a1 6a 00 push 0
001a3 6a 01 push 1
001a5 ff 76 30 push DWORD PTR [esi+48]
001a8 e8 00 00 00 00 call _xvid_decore
001ad 83 c4 10 add esp, 16 ; 00000010H
001b0 85 c0 test eax, eax
001b2 7c 07 jl SHORT $L75567
; Line 103
001b4 80 26 00 and BYTE PTR [esi], 0
; Line 104
001b7 b0 01 mov al, 1
001b9 5e pop esi
; Line 107
001ba c3 ret 0
$L75567:
; Line 106
001bb 32 c0 xor al, al
001bd 5e pop esi
; Line 107
001be c3 ret 0
?Close@CXvidDec@@QAE_NXZ ENDP ; CXvidDec::Close
_TEXT ENDS
END