294 lines
7.9 KiB
Plaintext
294 lines
7.9 KiB
Plaintext
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.00.9044.0
|
|
|
|
TITLE C:\Users\Administrator\Desktop\GHOST\Client\Include\XvidEnc.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 ??0CXvidEnc@@QAE@HIH@Z ; CXvidEnc::CXvidEnc
|
|
EXTRN _xvid_global:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_version$ = 8
|
|
_cpu_flags$ = 12
|
|
_debug$ = 16
|
|
??0CXvidEnc@@QAE@HIH@Z PROC NEAR ; CXvidEnc::CXvidEnc
|
|
; _this$ = ecx
|
|
; File C:\Users\Administrator\Desktop\GHOST\Client\Include\XvidEnc.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 0c lea eax, DWORD PTR [esi+12]
|
|
0000d 89 4e 04 mov DWORD PTR [esi+4], 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 10 mov DWORD PTR [esi+16], 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 14 mov DWORD PTR [esi+20], 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 $L75517
|
|
; Line 19
|
|
00032 88 5e 08 mov BYTE PTR [esi+8], bl
|
|
; Line 20
|
|
00035 eb 04 jmp SHORT $L75518
|
|
$L75517:
|
|
; Line 21
|
|
00037 c6 46 08 01 mov BYTE PTR [esi+8], 1
|
|
$L75518:
|
|
; Line 22
|
|
0003b 8b c6 mov eax, esi
|
|
0003d 5e pop esi
|
|
0003e 5b pop ebx
|
|
0003f c2 0c 00 ret 12 ; 0000000cH
|
|
??0CXvidEnc@@QAE@HIH@Z ENDP ; CXvidEnc::CXvidEnc
|
|
_TEXT ENDS
|
|
PUBLIC ??1CXvidEnc@@QAE@XZ ; CXvidEnc::~CXvidEnc
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
??1CXvidEnc@@QAE@XZ PROC NEAR ; CXvidEnc::~CXvidEnc
|
|
; _this$ = ecx
|
|
; Line 27
|
|
00042 c3 ret 0
|
|
??1CXvidEnc@@QAE@XZ ENDP ; CXvidEnc::~CXvidEnc
|
|
_TEXT ENDS
|
|
PUBLIC ?Open@CXvidEnc@@QAE_NHHHH@Z ; CXvidEnc::Open
|
|
EXTRN _xvid_encore:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_width$ = 8
|
|
_height$ = 12
|
|
_fps$ = 16
|
|
_cbit$ = 20
|
|
_csp$ = -4
|
|
?Open@CXvidEnc@@QAE_NHHHH@Z PROC NEAR ; CXvidEnc::Open
|
|
; _this$ = ecx
|
|
; Line 30
|
|
00043 55 push ebp
|
|
00044 8b ec mov ebp, esp
|
|
00046 51 push ecx
|
|
00047 53 push ebx
|
|
00048 56 push esi
|
|
00049 8b f1 mov esi, ecx
|
|
0004b 57 push edi
|
|
; Line 31
|
|
0004c 80 7e 08 00 cmp BYTE PTR [esi+8], 0
|
|
00050 74 72 je SHORT $L75563
|
|
; Line 32
|
|
00052 80 3e 00 cmp BYTE PTR [esi], 0
|
|
00055 75 6d jne SHORT $L75563
|
|
; Line 36
|
|
00057 83 7d 14 10 cmp DWORD PTR _cbit$[ebp], 16 ; 00000010H
|
|
0005b 74 1e je SHORT $L75536
|
|
0005d 83 7d 14 18 cmp DWORD PTR _cbit$[ebp], 24 ; 00000018H
|
|
00061 74 0f je SHORT $L75537
|
|
00063 83 7d 14 20 cmp DWORD PTR _cbit$[ebp], 32 ; 00000020H
|
|
; Line 47
|
|
00067 75 5b jne SHORT $L75563
|
|
; Line 44
|
|
00069 c7 45 fc 40 00
|
|
00 80 mov DWORD PTR _csp$[ebp], -2147483584 ; 80000040H
|
|
; Line 45
|
|
00070 eb 10 jmp SHORT $L75533
|
|
$L75537:
|
|
; Line 41
|
|
00072 c7 45 fc 00 02
|
|
00 80 mov DWORD PTR _csp$[ebp], -2147483136 ; 80000200H
|
|
; Line 42
|
|
00079 eb 07 jmp SHORT $L75533
|
|
$L75536:
|
|
; Line 38
|
|
0007b c7 45 fc 00 04
|
|
00 80 mov DWORD PTR _csp$[ebp], -2147482624 ; 80000400H
|
|
$L75533:
|
|
; Line 51
|
|
00082 8d 56 18 lea edx, DWORD PTR [esi+24]
|
|
00085 6a 1a push 26 ; 0000001aH
|
|
00087 59 pop ecx
|
|
00088 33 c0 xor eax, eax
|
|
0008a 8b fa mov edi, edx
|
|
; Line 53
|
|
0008c 6a 08 push 8
|
|
0008e f3 ab rep stosd
|
|
00090 8b 46 04 mov eax, DWORD PTR [esi+4]
|
|
00093 5b pop ebx
|
|
00094 89 02 mov DWORD PTR [edx], eax
|
|
; Line 54
|
|
00096 8b 45 08 mov eax, DWORD PTR _width$[ebp]
|
|
00099 89 46 20 mov DWORD PTR [esi+32], eax
|
|
; Line 55
|
|
0009c 8b 45 0c mov eax, DWORD PTR _height$[ebp]
|
|
0009f 89 46 24 mov DWORD PTR [esi+36], eax
|
|
; Line 57
|
|
000a2 8b 45 10 mov eax, DWORD PTR _fps$[ebp]
|
|
000a5 89 46 48 mov DWORD PTR [esi+72], eax
|
|
; Line 58
|
|
000a8 33 c0 xor eax, eax
|
|
000aa 50 push eax
|
|
000ab 52 push edx
|
|
000ac 50 push eax
|
|
000ad 50 push eax
|
|
000ae 89 5e 1c mov DWORD PTR [esi+28], ebx
|
|
000b1 c7 46 44 01 00
|
|
00 00 mov DWORD PTR [esi+68], 1
|
|
000b8 e8 00 00 00 00 call _xvid_encore
|
|
000bd 83 c4 10 add esp, 16 ; 00000010H
|
|
000c0 85 c0 test eax, eax
|
|
000c2 7d 04 jge SHORT $L75540
|
|
$L75563:
|
|
; Line 59
|
|
000c4 32 c0 xor al, al
|
|
000c6 eb 3e jmp SHORT $L75528
|
|
$L75540:
|
|
; Line 62
|
|
000c8 8d 96 80 00 00
|
|
00 lea edx, DWORD PTR [esi+128]
|
|
000ce 6a 19 push 25 ; 00000019H
|
|
000d0 59 pop ecx
|
|
000d1 33 c0 xor eax, eax
|
|
000d3 8b fa mov edi, edx
|
|
; Line 65
|
|
000d5 6a 04 push 4
|
|
000d7 f3 ab rep stosd
|
|
000d9 8b 46 04 mov eax, DWORD PTR [esi+4]
|
|
000dc 59 pop ecx
|
|
000dd 89 02 mov DWORD PTR [edx], eax
|
|
000df 8b 45 fc mov eax, DWORD PTR _csp$[ebp]
|
|
000e2 89 86 a8 00 00
|
|
00 mov DWORD PTR [esi+168], eax
|
|
000e8 8b 46 20 mov eax, DWORD PTR [esi+32]
|
|
000eb 0f af 45 14 imul eax, DWORD PTR _cbit$[ebp]
|
|
000ef 99 cdq
|
|
000f0 f7 fb idiv ebx
|
|
; Line 67
|
|
000f2 c6 06 01 mov BYTE PTR [esi], 1
|
|
000f5 83 c0 03 add eax, 3
|
|
000f8 99 cdq
|
|
000f9 f7 f9 idiv ecx
|
|
000fb c1 e0 02 shl eax, 2
|
|
000fe 89 86 bc 00 00
|
|
00 mov DWORD PTR [esi+188], eax
|
|
; Line 68
|
|
00104 b0 01 mov al, 1
|
|
$L75528:
|
|
00106 5f pop edi
|
|
00107 5e pop esi
|
|
00108 5b pop ebx
|
|
; Line 69
|
|
00109 c9 leave
|
|
0010a c2 10 00 ret 16 ; 00000010H
|
|
?Open@CXvidEnc@@QAE_NHHHH@Z ENDP ; CXvidEnc::Open
|
|
_TEXT ENDS
|
|
PUBLIC ?Encode@CXvidEnc@@QAEHPAX0H@Z ; CXvidEnc::Encode
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_input$ = 8
|
|
_output$ = 12
|
|
_outlen$ = 16
|
|
?Encode@CXvidEnc@@QAEHPAX0H@Z PROC NEAR ; CXvidEnc::Encode
|
|
; _this$ = ecx
|
|
; Line 73
|
|
0010d 80 39 00 cmp BYTE PTR [ecx], 0
|
|
00110 75 05 jne SHORT $L75547
|
|
00112 83 c8 ff or eax, -1
|
|
00115 eb 34 jmp SHORT $L75546
|
|
$L75547:
|
|
; Line 75
|
|
00117 8b 44 24 04 mov eax, DWORD PTR _input$[esp-4]
|
|
; Line 79
|
|
0011b 6a 00 push 0
|
|
0011d 89 81 ac 00 00
|
|
00 mov DWORD PTR [ecx+172], eax
|
|
00123 8b 44 24 0c mov eax, DWORD PTR _output$[esp]
|
|
00127 89 81 d8 00 00
|
|
00 mov DWORD PTR [ecx+216], eax
|
|
0012d 8b 44 24 10 mov eax, DWORD PTR _outlen$[esp]
|
|
00131 89 81 dc 00 00
|
|
00 mov DWORD PTR [ecx+220], eax
|
|
00137 8d 81 80 00 00
|
|
00 lea eax, DWORD PTR [ecx+128]
|
|
0013d 50 push eax
|
|
0013e 6a 02 push 2
|
|
00140 ff 71 74 push DWORD PTR [ecx+116]
|
|
00143 e8 00 00 00 00 call _xvid_encore
|
|
00148 83 c4 10 add esp, 16 ; 00000010H
|
|
$L75546:
|
|
; Line 80
|
|
0014b c2 0c 00 ret 12 ; 0000000cH
|
|
?Encode@CXvidEnc@@QAEHPAX0H@Z ENDP ; CXvidEnc::Encode
|
|
_TEXT ENDS
|
|
PUBLIC ?Close@CXvidEnc@@QAE_NXZ ; CXvidEnc::Close
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
?Close@CXvidEnc@@QAE_NXZ PROC NEAR ; CXvidEnc::Close
|
|
; _this$ = ecx
|
|
; Line 83
|
|
0014e 56 push esi
|
|
0014f 8b f1 mov esi, ecx
|
|
; Line 84
|
|
00151 80 3e 00 cmp BYTE PTR [esi], 0
|
|
00154 74 1c je SHORT $L75551
|
|
00156 6a 00 push 0
|
|
00158 6a 00 push 0
|
|
0015a 6a 01 push 1
|
|
0015c ff 76 74 push DWORD PTR [esi+116]
|
|
0015f e8 00 00 00 00 call _xvid_encore
|
|
00164 83 c4 10 add esp, 16 ; 00000010H
|
|
00167 85 c0 test eax, eax
|
|
00169 7c 07 jl SHORT $L75551
|
|
; Line 86
|
|
0016b 80 26 00 and BYTE PTR [esi], 0
|
|
; Line 87
|
|
0016e b0 01 mov al, 1
|
|
00170 5e pop esi
|
|
; Line 90
|
|
00171 c3 ret 0
|
|
$L75551:
|
|
; Line 89
|
|
00172 32 c0 xor al, al
|
|
00174 5e pop esi
|
|
; Line 90
|
|
00175 c3 ret 0
|
|
?Close@CXvidEnc@@QAE_NXZ ENDP ; CXvidEnc::Close
|
|
_TEXT ENDS
|
|
END
|