; 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