355 lines
10 KiB
Plaintext
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
|