Rev 920 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 920 | Rev 1122 | ||
---|---|---|---|
Line 132... | Line 132... | ||
132 | lea eax, [ebp + eax + .p+.Literal*4] |
132 | lea eax, [ebp + eax + .p+.Literal*4] |
133 | cmp ebx, .kNumLitStates |
133 | cmp ebx, .kNumLitStates |
134 | jb .literal |
134 | jb .literal |
135 | mov edx, edi |
135 | mov edx, edi |
136 | sub edx, [ebp+.rep0] |
136 | sub edx, [ebp+.rep0] |
- | 137 | jc .before_buf |
|
137 | cmp edx, [ebp+streamInfo.bufPtr] |
138 | cmp edx, [ebp+streamInfo.bufPtr] |
138 | jb .before_buf |
139 | jb .before_buf |
139 | @@: |
140 | @@: |
140 | mov dl, [edx] |
141 | mov dl, [edx] |
141 | call .LzmaLiteralDecodeMatch |
142 | call .LzmaLiteralDecodeMatch |
Line 175... | Line 176... | ||
175 | cmp bl, 7 |
176 | cmp bl, 7 |
176 | setae bl |
177 | setae bl |
177 | lea ebx, [9 + ebx + ebx] |
178 | lea ebx, [9 + ebx + ebx] |
178 | mov edx, edi |
179 | mov edx, edi |
179 | sub edx, [ebp+.rep0] |
180 | sub edx, [ebp+.rep0] |
- | 181 | jc @f |
|
180 | cmp edx, [ebp+streamInfo.bufPtr] |
182 | cmp edx, [ebp+streamInfo.bufPtr] |
181 | jae @f |
183 | jae .copy_byte |
- | 184 | @@: |
|
182 | add edx, [ebp+streamInfo.bufSize] |
185 | add edx, [ebp+streamInfo.bufSize] |
183 | cmp edx, [ebp+streamInfo.bufPtr] |
186 | cmp edx, [ebp+streamInfo.bufPtr] |
184 | jb return.err |
187 | jb return.err |
185 | @@: |
188 | .copy_byte: |
186 | mov al, [edx] |
189 | mov al, [edx] |
187 | stosb |
190 | stosb |
188 | mov [ebp+.previousByte], al |
191 | mov [ebp+.previousByte], al |
189 | jmp .main_loop |
192 | jmp .main_loop |
190 | .111: |
193 | .111: |
Line 275... | Line 278... | ||
275 | mov eax, [ebp+.rep0] |
278 | mov eax, [ebp+.rep0] |
276 | cmp eax, [ebp+.dictSize] |
279 | cmp eax, [ebp+.dictSize] |
277 | ja return.err |
280 | ja return.err |
278 | mov esi, edi |
281 | mov esi, edi |
279 | sub esi, eax |
282 | sub esi, eax |
- | 283 | jc .repmovsb0a |
|
280 | mov eax, [ebp+streamInfo.bufPtr] |
284 | mov eax, [ebp+streamInfo.bufPtr] |
281 | sub eax, esi |
285 | sub eax, esi |
282 | ja .repmovsb0 |
286 | ja .repmovsb0 |
283 | mov eax, [ebp+.outEnd] |
287 | mov eax, [ebp+.outEnd] |
284 | sub eax, edi |
288 | sub eax, edi |
Line 297... | Line 301... | ||
297 | mov [ebp+.state], ebx |
301 | mov [ebp+.state], ebx |
298 | mov [ebp+.ecx], ecx |
302 | mov [ebp+.ecx], ecx |
299 | mov [ebp+.continue], .restart_repmovsb |
303 | mov [ebp+.continue], .restart_repmovsb |
300 | popad |
304 | popad |
301 | ret |
305 | ret |
- | 306 | .repmovsb0a: |
|
- | 307 | mov eax, [ebp+streamInfo.bufPtr] |
|
- | 308 | sub eax, esi |
|
302 | .repmovsb0: |
309 | .repmovsb0: |
303 | mov edx, [ebp+.dictSize] |
310 | mov edx, [ebp+.dictSize] |
304 | ; cmp edx, [ebp+streamInfo.bufSize] |
311 | ; cmp edx, [ebp+streamInfo.bufSize] |
305 | ; jnz return.err |
312 | ; jnz return.err |
306 | add esi, edx |
313 | add esi, edx |