OpenCores
URL https://opencores.org/ocsvn/bluespec_md6/bluespec_md6/trunk

Subversion Repositories bluespec_md6

[/] [bluespec_md6/] [trunk/] [C_implementation/] [md6_compress.s] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 kfleming
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.42 
2
 
3
        TITLE   C:\ron\proj\2007E_md6\rivest\C implementation\md6_compress.c
4
        .686P
5
        .XMM
6
        include listing.inc
7
        .model  flat
8
 
9
INCLUDELIB LIBCMT
10
INCLUDELIB OLDNAMES
11
 
12
PUBLIC  _S0
13
PUBLIC  _Smask
14
_DATA   SEGMENT
15
COMM    _compression_hook:DWORD
16
_DATA   ENDS
17
CONST   SEGMENT
18
_S0     DQ      0123456789abcdefH
19
_Smask  DQ      7311c2812425cfa0H
20
CONST   ENDS
21
PUBLIC  _md6_main_compression_loop
22
; Function compile flags: /Ogtpy
23
;       COMDAT _md6_main_compression_loop
24
_TEXT   SEGMENT
25
tv2623 = -164                                           ; size = 4
26
tv2611 = -164                                           ; size = 4
27
tv2609 = -164                                           ; size = 4
28
tv2607 = -164                                           ; size = 4
29
tv2605 = -164                                           ; size = 4
30
tv2603 = -164                                           ; size = 4
31
tv2601 = -164                                           ; size = 4
32
tv2599 = -164                                           ; size = 4
33
tv2597 = -164                                           ; size = 4
34
tv2595 = -164                                           ; size = 4
35
tv2593 = -164                                           ; size = 4
36
tv2591 = -164                                           ; size = 4
37
tv2589 = -164                                           ; size = 4
38
tv2587 = -164                                           ; size = 4
39
tv2585 = -164                                           ; size = 4
40
tv2583 = -164                                           ; size = 4
41
tv2581 = -164                                           ; size = 4
42
tv2579 = -164                                           ; size = 4
43
tv2577 = -164                                           ; size = 4
44
tv2575 = -164                                           ; size = 4
45
tv2573 = -164                                           ; size = 4
46
tv2571 = -164                                           ; size = 4
47
tv2569 = -164                                           ; size = 4
48
tv2567 = -164                                           ; size = 4
49
tv2565 = -164                                           ; size = 4
50
tv2563 = -164                                           ; size = 4
51
tv2561 = -164                                           ; size = 4
52
tv2559 = -164                                           ; size = 4
53
tv2557 = -164                                           ; size = 4
54
tv2555 = -164                                           ; size = 4
55
tv2553 = -164                                           ; size = 4
56
tv2551 = -164                                           ; size = 4
57
tv2549 = -164                                           ; size = 4
58
tv2619 = -160                                           ; size = 4
59
tv2621 = -156                                           ; size = 4
60
tv1969 = -152                                           ; size = 4
61
_x$ = -148                                              ; size = 8
62
_S$ = -140                                              ; size = 8
63
tv769 = -132                                            ; size = 4
64
tv87 = -128                                             ; size = 8
65
tv905 = -120                                            ; size = 8
66
tv3245 = -112                                           ; size = 8
67
tv380 = -104                                            ; size = 8
68
tv959 = -96                                             ; size = 8
69
tv717 = -88                                             ; size = 8
70
tv933 = -80                                             ; size = 8
71
tv869 = -72                                             ; size = 8
72
tv160 = -64                                             ; size = 8
73
tv264 = -56                                             ; size = 8
74
tv3268 = -48                                            ; size = 8
75
tv185 = -40                                             ; size = 8
76
tv3222 = -32                                            ; size = 8
77
tv218 = -24                                             ; size = 8
78
tv142 = -16                                             ; size = 8
79
tv271 = -8                                              ; size = 8
80
_A$ = 8                                                 ; size = 4
81
_r$ = 12                                                ; size = 4
82
_md6_main_compression_loop PROC                         ; COMDAT
83
; File c:\ron\proj\2007e_md6\rivest\c implementation\md6_compress.c
84
; Line 197
85
        sub     esp, 164                                ; 000000a4H
86
        push    edi
87
; Line 204
88
        mov     edi, DWORD PTR _r$[esp+164]
89
        shl     edi, 4
90
        test    edi, edi
91
        mov     DWORD PTR _S$[esp+168], -1985229329     ; 89abcdefH
92
        mov     DWORD PTR _S$[esp+172], 19088743        ; 01234567H
93
        jle     $LN1@md6_main_c
94
        mov     eax, DWORD PTR _A$[esp+164]
95
        push    ebx
96
        lea     ecx, DWORD PTR [eax+712]
97
        lea     edx, DWORD PTR [eax+576]
98
        push    ebp
99
        add     edi, -1
100
        push    esi
101
        mov     DWORD PTR tv1969[esp+180], ecx
102
        mov     DWORD PTR tv2619[esp+180], edx
103
        mov     DWORD PTR tv2621[esp+180], eax
104
        lea     esi, DWORD PTR [eax+568]
105
        lea     edx, DWORD PTR [eax+544]
106
        lea     ecx, DWORD PTR [eax+464]
107
        shr     edi, 4
108
        add     eax, 176                                ; 000000b0H
109
        add     edi, 1
110
        mov     DWORD PTR tv769[esp+180], edi
111
        jmp     SHORT $LN3@md6_main_c
112
$LL8@md6_main_c:
113
; Line 203
114
        mov     esi, DWORD PTR tv2623[esp+180]
115
$LN3@md6_main_c:
116
; Line 222
117
        mov     edi, DWORD PTR [ecx+4]
118
        and     edi, DWORD PTR [eax+4]
119
        mov     ebx, DWORD PTR [ecx]
120
        and     ebx, DWORD PTR [eax]
121
        mov     ebp, DWORD PTR [esi+4]
122
        and     ebp, DWORD PTR [edx+4]
123
        mov     DWORD PTR tv3268[esp+184], edi
124
        mov     edi, DWORD PTR [esi]
125
        and     edi, DWORD PTR [edx]
126
        xor     ebx, edi
127
        mov     edi, DWORD PTR tv3268[esp+184]
128
        xor     edi, ebp
129
        mov     ebp, DWORD PTR tv2619[esp+180]
130
        xor     edi, DWORD PTR [ebp+4]
131
        xor     ebx, DWORD PTR [ebp]
132
        mov     ebp, DWORD PTR tv2621[esp+180]
133
        xor     edi, DWORD PTR [ebp+4]
134
        xor     ebx, DWORD PTR [ebp]
135
        xor     edi, DWORD PTR _S$[esp+184]
136
        xor     ebx, DWORD PTR _S$[esp+180]
137
        mov     DWORD PTR _x$[esp+184], edi
138
        mov     ebp, ebx
139
        shrd    ebp, edi, 10
140
        shr     edi, 10                                 ; 0000000aH
141
        xor     ebx, ebp
142
        mov     ebp, edi
143
        mov     edi, DWORD PTR _x$[esp+184]
144
        xor     edi, ebp
145
        mov     DWORD PTR _x$[esp+184], edi
146
        mov     ebp, ebx
147
        shld    edi, ebp, 11
148
        xor     edi, DWORD PTR _x$[esp+184]
149
        shl     ebp, 11                                 ; 0000000bH
150
        xor     ebp, ebx
151
        mov     DWORD PTR tv2609[esp+180], edi
152
        mov     edi, DWORD PTR tv1969[esp+180]
153
        mov     DWORD PTR [edi], ebp
154
        mov     ebp, DWORD PTR tv2609[esp+180]
155
        mov     DWORD PTR [edi+4], ebp
156
        mov     ebx, 8
157
        add     DWORD PTR tv2621[esp+180], ebx
158
        add     DWORD PTR tv2619[esp+180], ebx
159
        add     edi, ebx
160
        mov     ebp, DWORD PTR [esi+ebx+4]
161
        and     ebp, DWORD PTR [edx+ebx+4]
162
        mov     DWORD PTR tv1969[esp+180], edi
163
        mov     edi, DWORD PTR [ecx+ebx+4]
164
        and     edi, DWORD PTR [eax+ebx+4]
165
        add     ecx, ebx
166
        add     eax, ebx
167
        mov     DWORD PTR tv3245[esp+184], edi
168
        mov     edi, DWORD PTR [esi+ebx]
169
        and     edi, DWORD PTR [edx+ebx]
170
        add     esi, ebx
171
        add     edx, ebx
172
        mov     ebx, DWORD PTR [ecx]
173
        and     ebx, DWORD PTR [eax]
174
        xor     ebx, edi
175
        mov     edi, DWORD PTR tv3245[esp+184]
176
        xor     edi, ebp
177
        mov     ebp, DWORD PTR tv2619[esp+180]
178
        xor     edi, DWORD PTR [ebp+4]
179
        xor     ebx, DWORD PTR [ebp]
180
        mov     ebp, DWORD PTR tv2621[esp+180]
181
        xor     edi, DWORD PTR [ebp+4]
182
        xor     ebx, DWORD PTR [ebp]
183
        xor     edi, DWORD PTR _S$[esp+184]
184
        xor     ebx, DWORD PTR _S$[esp+180]
185
        mov     DWORD PTR _x$[esp+184], edi
186
        mov     ebp, ebx
187
        shrd    ebp, edi, 5
188
        shr     edi, 5
189
        mov     DWORD PTR tv2607[esp+180], edi
190
        mov     edi, DWORD PTR _x$[esp+184]
191
        xor     ebx, ebp
192
        mov     ebp, DWORD PTR tv2607[esp+180]
193
        xor     edi, ebp
194
        mov     ebp, ebx
195
        mov     DWORD PTR _x$[esp+184], edi
196
        shld    edi, ebp, 24
197
        xor     edi, DWORD PTR _x$[esp+184]
198
        shl     ebp, 24                                 ; 00000018H
199
        xor     ebp, ebx
200
        mov     DWORD PTR tv2605[esp+180], edi
201
        mov     edi, DWORD PTR tv1969[esp+180]
202
        mov     DWORD PTR [edi], ebp
203
        mov     ebp, DWORD PTR tv2605[esp+180]
204
        mov     DWORD PTR [edi+4], ebp
205
        mov     ebx, 8
206
        add     DWORD PTR tv2621[esp+180], ebx
207
        add     DWORD PTR tv2619[esp+180], ebx
208
        add     edi, ebx
209
        mov     DWORD PTR tv1969[esp+180], edi
210
        mov     edi, DWORD PTR [ecx+ebx+4]
211
        and     edi, DWORD PTR [eax+ebx+4]
212
        mov     ebp, DWORD PTR [esi+ebx+4]
213
        and     ebp, DWORD PTR [edx+ebx+4]
214
        add     ecx, ebx
215
        mov     DWORD PTR tv3222[esp+184], edi
216
        mov     edi, DWORD PTR [esi+ebx]
217
        and     edi, DWORD PTR [edx+ebx]
218
        add     eax, ebx
219
        add     esi, ebx
220
        add     edx, ebx
221
        mov     ebx, DWORD PTR [ecx]
222
        and     ebx, DWORD PTR [eax]
223
        xor     ebx, edi
224
        mov     edi, DWORD PTR tv3222[esp+184]
225
        xor     edi, ebp
226
        mov     ebp, DWORD PTR tv2619[esp+180]
227
        xor     edi, DWORD PTR [ebp+4]
228
        xor     ebx, DWORD PTR [ebp]
229
        mov     ebp, DWORD PTR tv2621[esp+180]
230
        xor     edi, DWORD PTR [ebp+4]
231
        xor     ebx, DWORD PTR [ebp]
232
        xor     edi, DWORD PTR _S$[esp+184]
233
        xor     ebx, DWORD PTR _S$[esp+180]
234
        mov     DWORD PTR _x$[esp+184], edi
235
        mov     ebp, ebx
236
        shrd    ebp, edi, 13
237
        shr     edi, 13                                 ; 0000000dH
238
        mov     DWORD PTR tv2603[esp+180], edi
239
        mov     edi, DWORD PTR _x$[esp+184]
240
        xor     ebx, ebp
241
        mov     ebp, DWORD PTR tv2603[esp+180]
242
        xor     edi, ebp
243
        mov     DWORD PTR _x$[esp+184], edi
244
        mov     ebp, ebx
245
        shld    edi, ebp, 9
246
        xor     edi, DWORD PTR _x$[esp+184]
247
        shl     ebp, 9
248
        xor     ebp, ebx
249
        mov     DWORD PTR tv2601[esp+180], edi
250
        mov     edi, DWORD PTR tv1969[esp+180]
251
        mov     DWORD PTR [edi], ebp
252
        mov     ebp, DWORD PTR tv2601[esp+180]
253
        mov     DWORD PTR [edi+4], ebp
254
        mov     ebx, 8
255
        add     DWORD PTR tv2619[esp+180], ebx
256
        add     DWORD PTR tv2621[esp+180], ebx
257
        mov     ebp, DWORD PTR [esi+ebx+4]
258
        and     ebp, DWORD PTR [edx+ebx+4]
259
        add     edi, ebx
260
        add     ecx, ebx
261
        mov     DWORD PTR tv1969[esp+180], edi
262
        mov     edi, DWORD PTR [ecx+4]
263
        and     edi, DWORD PTR [eax+ebx+4]
264
        add     eax, ebx
265
        add     esi, ebx
266
        add     edx, ebx
267
        mov     ebx, DWORD PTR [ecx]
268
        and     ebx, DWORD PTR [eax]
269
        mov     DWORD PTR tv959[esp+184], edi
270
        mov     edi, DWORD PTR [esi]
271
        and     edi, DWORD PTR [edx]
272
        xor     ebx, edi
273
        mov     edi, DWORD PTR tv959[esp+184]
274
        xor     edi, ebp
275
        mov     ebp, DWORD PTR tv2619[esp+180]
276
        xor     ebx, DWORD PTR [ebp]
277
        xor     edi, DWORD PTR [ebp+4]
278
        mov     ebp, DWORD PTR tv2621[esp+180]
279
        xor     edi, DWORD PTR [ebp+4]
280
        xor     ebx, DWORD PTR [ebp]
281
        xor     edi, DWORD PTR _S$[esp+184]
282
        xor     ebx, DWORD PTR _S$[esp+180]
283
        mov     DWORD PTR _x$[esp+184], edi
284
        mov     ebp, ebx
285
        shrd    ebp, edi, 10
286
        xor     ebx, ebp
287
        shr     edi, 10                                 ; 0000000aH
288
        mov     ebp, edi
289
        mov     edi, DWORD PTR _x$[esp+184]
290
        xor     edi, ebp
291
        mov     DWORD PTR _x$[esp+184], edi
292
        mov     ebp, ebx
293
        shld    edi, ebp, 16
294
        xor     edi, DWORD PTR _x$[esp+184]
295
        shl     ebp, 16                                 ; 00000010H
296
        xor     ebp, ebx
297
        mov     DWORD PTR tv2597[esp+180], edi
298
        mov     edi, DWORD PTR tv1969[esp+180]
299
        mov     DWORD PTR [edi], ebp
300
        mov     ebp, DWORD PTR tv2597[esp+180]
301
        mov     DWORD PTR [edi+4], ebp
302
        mov     ebx, 8
303
        add     DWORD PTR tv2621[esp+180], ebx
304
        add     DWORD PTR tv2619[esp+180], ebx
305
        add     edi, ebx
306
        mov     ebp, DWORD PTR [esi+ebx+4]
307
        and     ebp, DWORD PTR [edx+ebx+4]
308
        mov     DWORD PTR tv1969[esp+180], edi
309
        mov     edi, DWORD PTR [ecx+ebx+4]
310
        and     edi, DWORD PTR [eax+ebx+4]
311
        add     ecx, ebx
312
        add     eax, ebx
313
        mov     DWORD PTR tv87[esp+184], edi
314
        mov     edi, DWORD PTR [esi+ebx]
315
        and     edi, DWORD PTR [edx+ebx]
316
        add     esi, ebx
317
        add     edx, ebx
318
        mov     ebx, DWORD PTR [ecx]
319
        and     ebx, DWORD PTR [eax]
320
        xor     ebx, edi
321
        mov     edi, DWORD PTR tv87[esp+184]
322
        xor     edi, ebp
323
        mov     ebp, DWORD PTR tv2619[esp+180]
324
        xor     edi, DWORD PTR [ebp+4]
325
        xor     ebx, DWORD PTR [ebp]
326
        mov     ebp, DWORD PTR tv2621[esp+180]
327
        xor     edi, DWORD PTR [ebp+4]
328
        xor     ebx, DWORD PTR [ebp]
329
        xor     edi, DWORD PTR _S$[esp+184]
330
        xor     ebx, DWORD PTR _S$[esp+180]
331
        mov     DWORD PTR _x$[esp+184], edi
332
        mov     ebp, ebx
333
        shrd    ebp, edi, 11
334
        shr     edi, 11                                 ; 0000000bH
335
        xor     ebx, ebp
336
        mov     ebp, edi
337
        mov     edi, DWORD PTR _x$[esp+184]
338
        xor     edi, ebp
339
        mov     DWORD PTR _x$[esp+184], edi
340
        mov     ebp, ebx
341
        shld    edi, ebp, 15
342
        xor     edi, DWORD PTR _x$[esp+184]
343
        shl     ebp, 15                                 ; 0000000fH
344
        xor     ebp, ebx
345
        mov     ebx, 8
346
        add     DWORD PTR tv2621[esp+180], ebx
347
        mov     DWORD PTR tv2593[esp+180], edi
348
        mov     edi, DWORD PTR tv1969[esp+180]
349
        mov     DWORD PTR [edi], ebp
350
        mov     ebp, DWORD PTR tv2593[esp+180]
351
        add     eax, ebx
352
        add     ecx, ebx
353
        add     edx, ebx
354
        add     esi, ebx
355
        add     DWORD PTR tv2619[esp+180], ebx
356
        mov     DWORD PTR [edi+4], ebp
357
        add     edi, ebx
358
        mov     DWORD PTR tv1969[esp+180], edi
359
        mov     edi, DWORD PTR [ecx+4]
360
        and     edi, DWORD PTR [eax+4]
361
        mov     ebx, DWORD PTR [ecx]
362
        and     ebx, DWORD PTR [eax]
363
        mov     ebp, DWORD PTR [esi+4]
364
        and     ebp, DWORD PTR [edx+4]
365
        mov     DWORD PTR tv933[esp+184], edi
366
        mov     edi, DWORD PTR [esi]
367
        and     edi, DWORD PTR [edx]
368
        xor     ebx, edi
369
        mov     edi, DWORD PTR tv933[esp+184]
370
        xor     edi, ebp
371
        mov     ebp, DWORD PTR tv2619[esp+180]
372
        xor     edi, DWORD PTR [ebp+4]
373
        xor     ebx, DWORD PTR [ebp]
374
        mov     ebp, DWORD PTR tv2621[esp+180]
375
        xor     edi, DWORD PTR [ebp+4]
376
        xor     ebx, DWORD PTR [ebp]
377
        xor     edi, DWORD PTR _S$[esp+184]
378
        xor     ebx, DWORD PTR _S$[esp+180]
379
        mov     DWORD PTR _x$[esp+184], edi
380
        mov     ebp, ebx
381
        shrd    ebp, edi, 12
382
        shr     edi, 12                                 ; 0000000cH
383
        xor     ebx, ebp
384
        mov     ebp, edi
385
        mov     edi, DWORD PTR _x$[esp+184]
386
        xor     edi, ebp
387
        mov     DWORD PTR _x$[esp+184], edi
388
        mov     ebp, ebx
389
        shld    edi, ebp, 9
390
        xor     edi, DWORD PTR _x$[esp+184]
391
        shl     ebp, 9
392
        xor     ebp, ebx
393
        mov     DWORD PTR tv2589[esp+180], edi
394
        mov     edi, DWORD PTR tv1969[esp+180]
395
        mov     DWORD PTR [edi], ebp
396
        mov     ebp, DWORD PTR tv2589[esp+180]
397
        mov     DWORD PTR [edi+4], ebp
398
        mov     ebx, 8
399
        add     DWORD PTR tv2621[esp+180], ebx
400
        add     DWORD PTR tv2619[esp+180], ebx
401
        add     edi, ebx
402
        mov     ebp, DWORD PTR [esi+ebx+4]
403
        and     ebp, DWORD PTR [edx+ebx+4]
404
        mov     DWORD PTR tv1969[esp+180], edi
405
        mov     edi, DWORD PTR [ecx+ebx+4]
406
        and     edi, DWORD PTR [eax+ebx+4]
407
        add     ecx, ebx
408
        add     eax, ebx
409
        add     esi, ebx
410
        mov     DWORD PTR tv142[esp+184], edi
411
        mov     edi, DWORD PTR [esi]
412
        and     edi, DWORD PTR [edx+ebx]
413
        add     edx, ebx
414
        mov     ebx, DWORD PTR [ecx]
415
        and     ebx, DWORD PTR [eax]
416
        xor     ebx, edi
417
        mov     edi, DWORD PTR tv142[esp+184]
418
        xor     edi, ebp
419
        mov     ebp, DWORD PTR tv2619[esp+180]
420
        xor     edi, DWORD PTR [ebp+4]
421
        xor     ebx, DWORD PTR [ebp]
422
        mov     ebp, DWORD PTR tv2621[esp+180]
423
        xor     ebx, DWORD PTR [ebp]
424
        xor     edi, DWORD PTR [ebp+4]
425
        xor     ebx, DWORD PTR _S$[esp+180]
426
        xor     edi, DWORD PTR _S$[esp+184]
427
        mov     ebp, ebx
428
        mov     DWORD PTR _x$[esp+184], edi
429
        shrd    ebp, edi, 2
430
        shr     edi, 2
431
        mov     DWORD PTR tv2587[esp+180], edi
432
        mov     edi, DWORD PTR _x$[esp+184]
433
        xor     ebx, ebp
434
        mov     ebp, DWORD PTR tv2587[esp+180]
435
        xor     edi, ebp
436
        mov     DWORD PTR _x$[esp+184], edi
437
        mov     ebp, ebx
438
        shld    edi, ebp, 27
439
        xor     edi, DWORD PTR _x$[esp+184]
440
        shl     ebp, 27                                 ; 0000001bH
441
        xor     ebp, ebx
442
        mov     DWORD PTR tv2585[esp+180], edi
443
        mov     edi, DWORD PTR tv1969[esp+180]
444
        mov     DWORD PTR [edi], ebp
445
        mov     ebp, DWORD PTR tv2585[esp+180]
446
        mov     DWORD PTR [edi+4], ebp
447
        mov     ebx, 8
448
        add     DWORD PTR tv2621[esp+180], ebx
449
        add     DWORD PTR tv2619[esp+180], ebx
450
        add     edi, ebx
451
        mov     DWORD PTR tv1969[esp+180], edi
452
        mov     edi, DWORD PTR [ecx+ebx+4]
453
        and     edi, DWORD PTR [eax+ebx+4]
454
        mov     ebp, DWORD PTR [esi+ebx+4]
455
        and     ebp, DWORD PTR [edx+ebx+4]
456
        add     ecx, ebx
457
        mov     DWORD PTR tv160[esp+184], edi
458
        mov     edi, DWORD PTR [esi+ebx]
459
        and     edi, DWORD PTR [edx+ebx]
460
        add     eax, ebx
461
        add     esi, ebx
462
        add     edx, ebx
463
        mov     ebx, DWORD PTR [ecx]
464
        and     ebx, DWORD PTR [eax]
465
        xor     ebx, edi
466
        mov     edi, DWORD PTR tv160[esp+184]
467
        xor     edi, ebp
468
        mov     ebp, DWORD PTR tv2619[esp+180]
469
        xor     edi, DWORD PTR [ebp+4]
470
        xor     ebx, DWORD PTR [ebp]
471
        mov     ebp, DWORD PTR tv2621[esp+180]
472
        xor     edi, DWORD PTR [ebp+4]
473
        xor     ebx, DWORD PTR [ebp]
474
        xor     edi, DWORD PTR _S$[esp+184]
475
        xor     ebx, DWORD PTR _S$[esp+180]
476
        mov     DWORD PTR _x$[esp+184], edi
477
        mov     ebp, ebx
478
        shrd    ebp, edi, 7
479
        shr     edi, 7
480
        mov     DWORD PTR tv2583[esp+180], edi
481
        mov     edi, DWORD PTR _x$[esp+184]
482
        xor     ebx, ebp
483
        mov     ebp, DWORD PTR tv2583[esp+180]
484
        xor     edi, ebp
485
        mov     DWORD PTR _x$[esp+184], edi
486
        mov     ebp, ebx
487
        shld    edi, ebp, 15
488
        xor     edi, DWORD PTR _x$[esp+184]
489
        shl     ebp, 15                                 ; 0000000fH
490
        xor     ebp, ebx
491
        mov     DWORD PTR tv2581[esp+180], edi
492
        mov     edi, DWORD PTR tv1969[esp+180]
493
        mov     DWORD PTR [edi], ebp
494
        mov     ebp, DWORD PTR tv2581[esp+180]
495
        mov     DWORD PTR [edi+4], ebp
496
        mov     ebx, 8
497
        add     DWORD PTR tv2619[esp+180], ebx
498
        add     DWORD PTR tv2621[esp+180], ebx
499
; Line 223
500
        mov     ebp, DWORD PTR [esi+ebx+4]
501
        and     ebp, DWORD PTR [edx+ebx+4]
502
        add     edi, ebx
503
        add     ecx, ebx
504
        mov     DWORD PTR tv1969[esp+180], edi
505
        mov     edi, DWORD PTR [ecx+4]
506
        and     edi, DWORD PTR [eax+ebx+4]
507
        add     eax, ebx
508
        add     esi, ebx
509
        add     edx, ebx
510
        mov     ebx, DWORD PTR [ecx]
511
        and     ebx, DWORD PTR [eax]
512
        mov     DWORD PTR tv905[esp+184], edi
513
        mov     edi, DWORD PTR [esi]
514
        and     edi, DWORD PTR [edx]
515
        xor     ebx, edi
516
        mov     edi, DWORD PTR tv905[esp+184]
517
        xor     edi, ebp
518
        mov     ebp, DWORD PTR tv2619[esp+180]
519
        xor     edi, DWORD PTR [ebp+4]
520
        xor     ebx, DWORD PTR [ebp]
521
        mov     ebp, DWORD PTR tv2621[esp+180]
522
        xor     edi, DWORD PTR [ebp+4]
523
        xor     ebx, DWORD PTR [ebp]
524
        xor     edi, DWORD PTR _S$[esp+184]
525
        xor     ebx, DWORD PTR _S$[esp+180]
526
        mov     DWORD PTR _x$[esp+184], edi
527
        mov     ebp, ebx
528
        shrd    ebp, edi, 14
529
        xor     ebx, ebp
530
        shr     edi, 14                                 ; 0000000eH
531
        mov     ebp, edi
532
        mov     edi, DWORD PTR _x$[esp+184]
533
        xor     edi, ebp
534
        mov     DWORD PTR _x$[esp+184], edi
535
        mov     ebp, ebx
536
        shld    edi, ebp, 6
537
        xor     edi, DWORD PTR _x$[esp+184]
538
        shl     ebp, 6
539
        xor     ebp, ebx
540
        mov     DWORD PTR tv2577[esp+180], edi
541
        mov     edi, DWORD PTR tv1969[esp+180]
542
        mov     DWORD PTR [edi], ebp
543
        mov     ebp, DWORD PTR tv2577[esp+180]
544
        mov     DWORD PTR [edi+4], ebp
545
        mov     ebx, 8
546
        add     DWORD PTR tv2621[esp+180], ebx
547
        add     DWORD PTR tv2619[esp+180], ebx
548
        add     edi, ebx
549
        mov     ebp, DWORD PTR [esi+ebx+4]
550
        and     ebp, DWORD PTR [edx+ebx+4]
551
        mov     DWORD PTR tv1969[esp+180], edi
552
        mov     edi, DWORD PTR [ecx+ebx+4]
553
        and     edi, DWORD PTR [eax+ebx+4]
554
        add     ecx, ebx
555
        add     eax, ebx
556
        mov     DWORD PTR tv380[esp+184], edi
557
        mov     edi, DWORD PTR [esi+ebx]
558
        and     edi, DWORD PTR [edx+ebx]
559
        add     esi, ebx
560
        add     edx, ebx
561
        mov     ebx, DWORD PTR [ecx]
562
        and     ebx, DWORD PTR [eax]
563
        xor     ebx, edi
564
        mov     edi, DWORD PTR tv380[esp+184]
565
        xor     edi, ebp
566
        mov     ebp, DWORD PTR tv2619[esp+180]
567
        xor     edi, DWORD PTR [ebp+4]
568
        xor     ebx, DWORD PTR [ebp]
569
        mov     ebp, DWORD PTR tv2621[esp+180]
570
        xor     edi, DWORD PTR [ebp+4]
571
        xor     ebx, DWORD PTR [ebp]
572
        xor     edi, DWORD PTR _S$[esp+184]
573
        xor     ebx, DWORD PTR _S$[esp+180]
574
        mov     DWORD PTR _x$[esp+184], edi
575
        mov     ebp, ebx
576
        shrd    ebp, edi, 15
577
        shr     edi, 15                                 ; 0000000fH
578
        xor     ebx, ebp
579
        mov     ebp, edi
580
        mov     edi, DWORD PTR _x$[esp+184]
581
        xor     edi, ebp
582
        mov     DWORD PTR _x$[esp+184], edi
583
        mov     ebp, ebx
584
        shld    edi, ebp, 2
585
        xor     edi, DWORD PTR _x$[esp+184]
586
        add     ebp, ebp
587
        add     ebp, ebp
588
        xor     ebp, ebx
589
        mov     DWORD PTR tv2573[esp+180], edi
590
        mov     edi, DWORD PTR tv1969[esp+180]
591
        mov     ebx, 8
592
        mov     DWORD PTR [edi], ebp
593
        mov     ebp, DWORD PTR tv2573[esp+180]
594
        add     eax, ebx
595
        add     ecx, ebx
596
        mov     DWORD PTR [edi+4], ebp
597
        add     edx, ebx
598
        add     edi, ebx
599
        add     DWORD PTR tv2621[esp+180], ebx
600
        add     DWORD PTR tv2619[esp+180], ebx
601
        mov     DWORD PTR tv1969[esp+180], edi
602
        mov     edi, DWORD PTR [ecx+4]
603
        and     edi, DWORD PTR [eax+4]
604
        mov     ebp, DWORD PTR [esi+ebx+4]
605
        and     ebp, DWORD PTR [edx+4]
606
        mov     DWORD PTR tv717[esp+184], edi
607
        mov     edi, DWORD PTR [esi+ebx]
608
        and     edi, DWORD PTR [edx]
609
        add     esi, ebx
610
        mov     ebx, DWORD PTR [ecx]
611
        and     ebx, DWORD PTR [eax]
612
        xor     ebx, edi
613
        mov     edi, DWORD PTR tv717[esp+184]
614
        xor     edi, ebp
615
        mov     ebp, DWORD PTR tv2619[esp+180]
616
        xor     edi, DWORD PTR [ebp+4]
617
        xor     ebx, DWORD PTR [ebp]
618
        mov     ebp, DWORD PTR tv2621[esp+180]
619
        xor     edi, DWORD PTR [ebp+4]
620
        xor     ebx, DWORD PTR [ebp]
621
        xor     edi, DWORD PTR _S$[esp+184]
622
        xor     ebx, DWORD PTR _S$[esp+180]
623
        mov     DWORD PTR _x$[esp+184], edi
624
        mov     ebp, ebx
625
        shrd    ebp, edi, 7
626
        shr     edi, 7
627
        mov     DWORD PTR tv2571[esp+180], edi
628
        mov     edi, DWORD PTR _x$[esp+184]
629
        xor     ebx, ebp
630
        mov     ebp, DWORD PTR tv2571[esp+180]
631
        xor     edi, ebp
632
        mov     DWORD PTR _x$[esp+184], edi
633
        mov     ebp, ebx
634
        shld    edi, ebp, 29
635
        xor     edi, DWORD PTR _x$[esp+184]
636
        shl     ebp, 29                                 ; 0000001dH
637
        mov     DWORD PTR tv2569[esp+180], edi
638
        mov     edi, DWORD PTR tv1969[esp+180]
639
        xor     ebp, ebx
640
        mov     DWORD PTR [edi], ebp
641
        mov     ebp, DWORD PTR tv2569[esp+180]
642
        mov     DWORD PTR [edi+4], ebp
643
        mov     ebx, 8
644
        add     DWORD PTR tv2621[esp+180], ebx
645
        add     DWORD PTR tv2619[esp+180], ebx
646
        mov     ebp, DWORD PTR [esi+ebx+4]
647
        and     ebp, DWORD PTR [edx+ebx+4]
648
        add     edi, ebx
649
        mov     DWORD PTR tv1969[esp+180], edi
650
        mov     edi, DWORD PTR [ecx+ebx+4]
651
        and     edi, DWORD PTR [eax+ebx+4]
652
        add     ecx, ebx
653
        add     eax, ebx
654
        add     esi, ebx
655
        mov     DWORD PTR tv869[esp+184], edi
656
        mov     edi, DWORD PTR [esi]
657
        and     edi, DWORD PTR [edx+ebx]
658
        add     edx, ebx
659
        mov     ebx, DWORD PTR [ecx]
660
        and     ebx, DWORD PTR [eax]
661
        xor     ebx, edi
662
        mov     edi, DWORD PTR tv869[esp+184]
663
        xor     edi, ebp
664
        mov     ebp, DWORD PTR tv2619[esp+180]
665
        xor     edi, DWORD PTR [ebp+4]
666
        xor     ebx, DWORD PTR [ebp]
667
        mov     ebp, DWORD PTR tv2621[esp+180]
668
        xor     edi, DWORD PTR [ebp+4]
669
        xor     ebx, DWORD PTR [ebp]
670
        xor     edi, DWORD PTR _S$[esp+184]
671
        xor     ebx, DWORD PTR _S$[esp+180]
672
        mov     DWORD PTR _x$[esp+184], edi
673
        mov     ebp, ebx
674
        shrd    ebp, edi, 13
675
        shr     edi, 13                                 ; 0000000dH
676
        mov     DWORD PTR tv2567[esp+180], edi
677
        mov     edi, DWORD PTR _x$[esp+184]
678
        xor     ebx, ebp
679
        mov     ebp, DWORD PTR tv2567[esp+180]
680
        xor     edi, ebp
681
        mov     DWORD PTR _x$[esp+184], edi
682
        mov     ebp, ebx
683
        shld    edi, ebp, 8
684
        xor     edi, DWORD PTR _x$[esp+184]
685
        shl     ebp, 8
686
        xor     ebp, ebx
687
        mov     DWORD PTR tv2565[esp+180], edi
688
        mov     edi, DWORD PTR tv1969[esp+180]
689
        mov     DWORD PTR [edi], ebp
690
        mov     ebp, DWORD PTR tv2565[esp+180]
691
        mov     DWORD PTR [edi+4], ebp
692
        mov     ebx, 8
693
        add     DWORD PTR tv2621[esp+180], ebx
694
        add     DWORD PTR tv2619[esp+180], ebx
695
        add     edi, ebx
696
        mov     ebp, DWORD PTR [esi+ebx+4]
697
        and     ebp, DWORD PTR [edx+ebx+4]
698
        mov     DWORD PTR tv1969[esp+180], edi
699
        mov     edi, DWORD PTR [ecx+ebx+4]
700
        and     edi, DWORD PTR [eax+ebx+4]
701
        add     ecx, ebx
702
        mov     DWORD PTR tv264[esp+184], edi
703
        mov     edi, DWORD PTR [esi+ebx]
704
        and     edi, DWORD PTR [edx+ebx]
705
        add     eax, ebx
706
        add     esi, ebx
707
        add     edx, ebx
708
        mov     ebx, DWORD PTR [ecx]
709
        and     ebx, DWORD PTR [eax]
710
        xor     ebx, edi
711
        mov     edi, DWORD PTR tv264[esp+184]
712
        xor     edi, ebp
713
        mov     ebp, DWORD PTR tv2619[esp+180]
714
        xor     edi, DWORD PTR [ebp+4]
715
        xor     ebx, DWORD PTR [ebp]
716
        mov     ebp, DWORD PTR tv2621[esp+180]
717
        xor     edi, DWORD PTR [ebp+4]
718
        xor     ebx, DWORD PTR [ebp]
719
        xor     edi, DWORD PTR _S$[esp+184]
720
        xor     ebx, DWORD PTR _S$[esp+180]
721
        mov     DWORD PTR _x$[esp+184], edi
722
        mov     ebp, ebx
723
        shrd    ebp, edi, 11
724
        shr     edi, 11                                 ; 0000000bH
725
        mov     DWORD PTR tv2563[esp+180], edi
726
        mov     edi, DWORD PTR _x$[esp+184]
727
        xor     ebx, ebp
728
        mov     ebp, DWORD PTR tv2563[esp+180]
729
        xor     edi, ebp
730
        mov     DWORD PTR _x$[esp+184], edi
731
        mov     ebp, ebx
732
        shld    edi, ebp, 15
733
        xor     edi, DWORD PTR _x$[esp+184]
734
        shl     ebp, 15                                 ; 0000000fH
735
        xor     ebp, ebx
736
        mov     DWORD PTR tv2561[esp+180], edi
737
        mov     edi, DWORD PTR tv1969[esp+180]
738
        mov     DWORD PTR [edi], ebp
739
        mov     ebp, DWORD PTR tv2561[esp+180]
740
        mov     DWORD PTR [edi+4], ebp
741
        mov     ebx, 8
742
        add     DWORD PTR tv2621[esp+180], ebx
743
        add     DWORD PTR tv2619[esp+180], ebx
744
        mov     ebp, DWORD PTR [esi+ebx+4]
745
        and     ebp, DWORD PTR [edx+ebx+4]
746
        add     edi, ebx
747
        add     ecx, ebx
748
        mov     DWORD PTR tv1969[esp+180], edi
749
        mov     edi, DWORD PTR [ecx+4]
750
        and     edi, DWORD PTR [eax+ebx+4]
751
        add     eax, ebx
752
        add     esi, ebx
753
        add     edx, ebx
754
        mov     ebx, DWORD PTR [ecx]
755
        and     ebx, DWORD PTR [eax]
756
        mov     DWORD PTR tv185[esp+184], edi
757
        mov     edi, DWORD PTR [esi]
758
        and     edi, DWORD PTR [edx]
759
        xor     ebx, edi
760
        mov     edi, DWORD PTR tv185[esp+184]
761
        xor     edi, ebp
762
        mov     ebp, DWORD PTR tv2619[esp+180]
763
        xor     edi, DWORD PTR [ebp+4]
764
        xor     ebx, DWORD PTR [ebp]
765
        mov     ebp, DWORD PTR tv2621[esp+180]
766
        xor     edi, DWORD PTR [ebp+4]
767
        xor     ebx, DWORD PTR [ebp]
768
        xor     edi, DWORD PTR _S$[esp+184]
769
        xor     ebx, DWORD PTR _S$[esp+180]
770
        mov     DWORD PTR _x$[esp+184], edi
771
        mov     ebp, ebx
772
        shrd    ebp, edi, 7
773
        xor     ebx, ebp
774
        shr     edi, 7
775
        mov     ebp, edi
776
        mov     edi, DWORD PTR _x$[esp+184]
777
        xor     edi, ebp
778
        mov     DWORD PTR _x$[esp+184], edi
779
        mov     ebp, ebx
780
        shld    edi, ebp, 5
781
        xor     edi, DWORD PTR _x$[esp+184]
782
        shl     ebp, 5
783
        xor     ebp, ebx
784
        mov     DWORD PTR tv2557[esp+180], edi
785
        mov     edi, DWORD PTR tv1969[esp+180]
786
        mov     DWORD PTR [edi], ebp
787
        mov     ebp, DWORD PTR tv2557[esp+180]
788
        mov     DWORD PTR [edi+4], ebp
789
        mov     ebx, 8
790
        add     DWORD PTR tv2621[esp+180], ebx
791
        add     DWORD PTR tv2619[esp+180], ebx
792
        add     edi, ebx
793
        mov     ebp, DWORD PTR [esi+ebx+4]
794
        and     ebp, DWORD PTR [edx+ebx+4]
795
        mov     DWORD PTR tv1969[esp+180], edi
796
        mov     edi, DWORD PTR [ecx+ebx+4]
797
        and     edi, DWORD PTR [eax+ebx+4]
798
        add     ecx, ebx
799
        add     eax, ebx
800
        mov     DWORD PTR tv218[esp+184], edi
801
        mov     edi, DWORD PTR [esi+ebx]
802
        and     edi, DWORD PTR [edx+ebx]
803
        add     esi, ebx
804
        add     edx, ebx
805
        mov     ebx, DWORD PTR [ecx]
806
        and     ebx, DWORD PTR [eax]
807
        xor     ebx, edi
808
        mov     edi, DWORD PTR tv218[esp+184]
809
        xor     edi, ebp
810
        mov     ebp, DWORD PTR tv2619[esp+180]
811
        xor     edi, DWORD PTR [ebp+4]
812
        xor     ebx, DWORD PTR [ebp]
813
        mov     ebp, DWORD PTR tv2621[esp+180]
814
        xor     edi, DWORD PTR [ebp+4]
815
        xor     ebx, DWORD PTR [ebp]
816
        xor     edi, DWORD PTR _S$[esp+184]
817
        xor     ebx, DWORD PTR _S$[esp+180]
818
        mov     DWORD PTR _x$[esp+184], edi
819
        mov     ebp, ebx
820
        shrd    ebp, edi, 6
821
        shr     edi, 6
822
        xor     ebx, ebp
823
        mov     ebp, edi
824
        mov     edi, DWORD PTR _x$[esp+184]
825
        xor     edi, ebp
826
        mov     DWORD PTR _x$[esp+184], edi
827
        mov     ebp, ebx
828
        shld    edi, ebp, 31
829
        xor     edi, DWORD PTR _x$[esp+184]
830
        shl     ebp, 31                                 ; 0000001fH
831
        xor     ebp, ebx
832
        mov     DWORD PTR tv2553[esp+180], edi
833
        mov     edi, DWORD PTR tv1969[esp+180]
834
        mov     DWORD PTR [edi], ebp
835
        mov     ebp, DWORD PTR tv2553[esp+180]
836
        mov     ebx, 8
837
        mov     DWORD PTR [edi+4], ebp
838
        add     eax, ebx
839
        add     DWORD PTR tv2621[esp+180], ebx
840
        add     DWORD PTR tv2619[esp+180], ebx
841
        add     edi, ebx
842
        mov     ebp, DWORD PTR [esi+ebx+4]
843
        and     ebp, DWORD PTR [edx+ebx+4]
844
        mov     DWORD PTR tv1969[esp+180], edi
845
        mov     edi, DWORD PTR [ecx+ebx+4]
846
        and     edi, DWORD PTR [eax+4]
847
        add     ecx, ebx
848
        add     esi, ebx
849
        mov     DWORD PTR tv271[esp+184], edi
850
        mov     edi, DWORD PTR [esi]
851
        and     edi, DWORD PTR [edx+ebx]
852
        add     edx, ebx
853
        mov     ebx, DWORD PTR [ecx]
854
        and     ebx, DWORD PTR [eax]
855
        xor     ebx, edi
856
        mov     edi, DWORD PTR tv271[esp+184]
857
        xor     edi, ebp
858
        mov     ebp, DWORD PTR tv2619[esp+180]
859
        xor     edi, DWORD PTR [ebp+4]
860
        xor     ebx, DWORD PTR [ebp]
861
        mov     ebp, DWORD PTR tv2621[esp+180]
862
        xor     edi, DWORD PTR [ebp+4]
863
        xor     ebx, DWORD PTR [ebp]
864
        xor     edi, DWORD PTR _S$[esp+184]
865
        xor     ebx, DWORD PTR _S$[esp+180]
866
        mov     DWORD PTR _x$[esp+184], edi
867
        mov     ebp, ebx
868
        shrd    ebp, edi, 12
869
        shr     edi, 12                                 ; 0000000cH
870
        xor     ebx, ebp
871
        mov     ebp, edi
872
        mov     edi, DWORD PTR _x$[esp+184]
873
        xor     edi, ebp
874
        mov     DWORD PTR _x$[esp+184], edi
875
        mov     ebp, ebx
876
        shld    edi, ebp, 9
877
        xor     edi, DWORD PTR _x$[esp+184]
878
        shl     ebp, 9
879
        xor     ebp, ebx
880
        mov     DWORD PTR tv2549[esp+180], edi
881
        mov     edi, DWORD PTR tv1969[esp+180]
882
        mov     DWORD PTR [edi], ebp
883
        mov     ebp, DWORD PTR tv2549[esp+180]
884
        mov     ebx, 8
885
        add     DWORD PTR tv2621[esp+180], ebx
886
        add     DWORD PTR tv2619[esp+180], ebx
887
        add     esi, ebx
888
        mov     DWORD PTR [edi+4], ebp
889
        add     edi, ebx
890
        mov     DWORD PTR tv2623[esp+180], esi
891
; Line 226
892
        mov     esi, DWORD PTR _S$[esp+184]
893
        add     eax, ebx
894
        add     ecx, ebx
895
        add     edx, ebx
896
        mov     DWORD PTR tv1969[esp+180], edi
897
        mov     edi, DWORD PTR _S$[esp+180]
898
        mov     ebx, esi
899
        shr     esi, 31                                 ; 0000001fH
900
        xor     ebp, ebp
901
        and     edi, 606457760                          ; 2425cfa0H
902
        and     ebx, 1930543745                         ; 7311c281H
903
        xor     edi, esi
904
        mov     esi, DWORD PTR _S$[esp+180]
905
        xor     ebx, ebp
906
        mov     ebp, DWORD PTR _S$[esp+184]
907
        shld    ebp, esi, 1
908
        add     esi, esi
909
        xor     edi, esi
910
        xor     ebx, ebp
911
        sub     DWORD PTR tv769[esp+180], 1
912
        mov     DWORD PTR _S$[esp+180], edi
913
        mov     DWORD PTR _S$[esp+184], ebx
914
        jne     $LL8@md6_main_c
915
        pop     esi
916
        pop     ebp
917
        pop     ebx
918
$LN1@md6_main_c:
919
        pop     edi
920
; Line 229
921
        add     esp, 164                                ; 000000a4H
922
        ret     0
923
_md6_main_compression_loop ENDP
924
_TEXT   ENDS
925
PUBLIC  _md6_compress
926
EXTRN   _free:PROC
927
EXTRN   _calloc:PROC
928
EXTRN   _memset:PROC
929
; Function compile flags: /Ogtpy
930
;       COMDAT _md6_compress
931
_TEXT   SEGMENT
932
_C$ = 8                                                 ; size = 4
933
_N$ = 12                                                ; size = 4
934
_r$ = 16                                                ; size = 4
935
_A_as_given$ = 20                                       ; size = 4
936
_A$ = 20                                                ; size = 4
937
_md6_compress PROC                                      ; COMDAT
938
; Line 257
939
        push    ebx
940
        mov     ebx, DWORD PTR _A$[esp]
941
        push    esi
942
; Line 260
943
        mov     esi, DWORD PTR _N$[esp+4]
944
        test    esi, esi
945
        mov     DWORD PTR _A_as_given$[esp+4], ebx
946
        jne     SHORT $LN7@md6_compre
947
        pop     esi
948
        mov     eax, 9
949
        pop     ebx
950
; Line 279
951
        ret     0
952
$LN7@md6_compre:
953
; Line 261
954
        cmp     DWORD PTR _C$[esp+4], 0
955
        jne     SHORT $LN6@md6_compre
956
        pop     esi
957
        mov     eax, 15                                 ; 0000000fH
958
        pop     ebx
959
; Line 279
960
        ret     0
961
$LN6@md6_compre:
962
        push    ebp
963
; Line 262
964
        mov     ebp, DWORD PTR _r$[esp+8]
965
        cmp     ebp, 255                                ; 000000ffH
966
        ja      SHORT $LN4@md6_compre
967
; Line 264
968
        test    ebx, ebx
969
        jne     SHORT $LN2@md6_compre
970
        mov     eax, ebp
971
        shl     eax, 4
972
        add     eax, 89                                 ; 00000059H
973
        push    8
974
        push    eax
975
        call    _calloc
976
        mov     ebx, eax
977
        add     esp, 8
978
; Line 265
979
        test    ebx, ebx
980
        jne     SHORT $LN2@md6_compre
981
        pop     ebp
982
        pop     esi
983
        mov     eax, 18                                 ; 00000012H
984
        pop     ebx
985
; Line 279
986
        ret     0
987
$LN2@md6_compre:
988
        push    edi
989
; Line 269
990
        push    ebp
991
        mov     ecx, 178                                ; 000000b2H
992
        mov     edi, ebx
993
        push    ebx
994
        rep movsd
995
        call    _md6_main_compression_loop
996
; Line 271
997
        mov     edi, DWORD PTR _C$[esp+20]
998
        shl     ebp, 7
999
        add     esp, 8
1000
; Line 273
1001
        cmp     DWORD PTR _A_as_given$[esp+12], 0
1002
        lea     esi, DWORD PTR [ebx+ebp+584]
1003
        mov     ecx, 32                                 ; 00000020H
1004
        rep movsd
1005
        pop     edi
1006
        jne     SHORT $LN1@md6_compre
1007
; Line 274
1008
        add     ebp, 712                                ; 000002c8H
1009
        push    ebp
1010
        push    0
1011
        push    ebx
1012
        call    _memset
1013
; Line 275
1014
        push    ebx
1015
        call    _free
1016
        add     esp, 16                                 ; 00000010H
1017
$LN1@md6_compre:
1018
        pop     ebp
1019
        pop     esi
1020
; Line 278
1021
        xor     eax, eax
1022
        pop     ebx
1023
; Line 279
1024
        ret     0
1025
$LN4@md6_compre:
1026
        pop     ebp
1027
        pop     esi
1028
; Line 262
1029
        mov     eax, 17                                 ; 00000011H
1030
        pop     ebx
1031
; Line 279
1032
        ret     0
1033
_md6_compress ENDP
1034
_TEXT   ENDS
1035
PUBLIC  _md6_make_control_word
1036
; Function compile flags: /Ogtpy
1037
;       COMDAT _md6_make_control_word
1038
_TEXT   SEGMENT
1039
_r$ = 8                                                 ; size = 4
1040
_L$ = 12                                                ; size = 4
1041
_z$ = 16                                                ; size = 4
1042
_p$ = 20                                                ; size = 4
1043
_keylen$ = 24                                           ; size = 4
1044
_d$ = 28                                                ; size = 4
1045
_md6_make_control_word PROC                             ; COMDAT
1046
; Line 311
1047
        mov     eax, DWORD PTR _r$[esp-4]
1048
        cdq
1049
        shld    edx, eax, 8
1050
        shl     eax, 8
1051
        mov     ecx, eax
1052
        mov     eax, DWORD PTR _L$[esp-4]
1053
        push    esi
1054
        mov     esi, edx
1055
        cdq
1056
        or      ecx, eax
1057
        mov     eax, DWORD PTR _z$[esp]
1058
        or      esi, edx
1059
        shld    esi, ecx, 4
1060
        shl     ecx, 4
1061
        cdq
1062
        or      ecx, eax
1063
        mov     eax, DWORD PTR _p$[esp]
1064
        or      esi, edx
1065
        shld    esi, ecx, 16
1066
        cdq
1067
        shl     ecx, 16                                 ; 00000010H
1068
        or      ecx, eax
1069
        mov     eax, DWORD PTR _keylen$[esp]
1070
        or      esi, edx
1071
        shld    esi, ecx, 8
1072
        cdq
1073
        shl     ecx, 8
1074
        or      ecx, eax
1075
        mov     eax, DWORD PTR _d$[esp]
1076
        or      esi, edx
1077
        shld    esi, ecx, 12
1078
        cdq
1079
        shl     ecx, 12                                 ; 0000000cH
1080
        or      esi, edx
1081
        or      ecx, eax
1082
        mov     edx, esi
1083
        mov     eax, ecx
1084
        pop     esi
1085
; Line 312
1086
        ret     0
1087
_md6_make_control_word ENDP
1088
_TEXT   ENDS
1089
PUBLIC  _md6_make_nodeID
1090
; Function compile flags: /Ogtpy
1091
;       COMDAT _md6_make_nodeID
1092
_TEXT   SEGMENT
1093
_ell$ = 8                                               ; size = 4
1094
_i$ = 12                                                ; size = 4
1095
_md6_make_nodeID PROC                                   ; COMDAT
1096
; Line 332
1097
        mov     eax, DWORD PTR _ell$[esp-4]
1098
        cdq
1099
        mov     ecx, eax
1100
        mov     eax, DWORD PTR _i$[esp-4]
1101
        cdq
1102
        push    esi
1103
        xor     esi, esi
1104
        shl     ecx, 24                                 ; 00000018H
1105
        or      esi, eax
1106
        or      ecx, edx
1107
        mov     eax, esi
1108
        mov     edx, ecx
1109
        pop     esi
1110
; Line 333
1111
        ret     0
1112
_md6_make_nodeID ENDP
1113
_TEXT   ENDS
1114
PUBLIC  _md6_pack
1115
; Function compile flags: /Ogtpy
1116
;       COMDAT _md6_pack
1117
_TEXT   SEGMENT
1118
_N$ = 8                                                 ; size = 4
1119
_Q$ = 12                                                ; size = 4
1120
_K$ = 16                                                ; size = 4
1121
_ell$ = 20                                              ; size = 4
1122
_i$ = 24                                                ; size = 4
1123
_r$ = 28                                                ; size = 4
1124
_L$ = 32                                                ; size = 4
1125
_z$ = 36                                                ; size = 4
1126
_p$ = 40                                                ; size = 4
1127
_keylen$ = 44                                           ; size = 4
1128
_d$ = 48                                                ; size = 4
1129
_B$ = 52                                                ; size = 4
1130
_md6_pack PROC                                          ; COMDAT
1131
; Line 351
1132
        mov     ecx, DWORD PTR _N$[esp-4]
1133
; Line 353
1134
        mov     edx, DWORD PTR _Q$[esp-4]
1135
        push    esi
1136
        push    edi
1137
        mov     eax, ecx
1138
        sub     edx, ecx
1139
        mov     esi, 15                                 ; 0000000fH
1140
$LL6@md6_pack:
1141
        mov     edi, DWORD PTR [edx+eax]
1142
        mov     DWORD PTR [eax], edi
1143
        mov     edi, DWORD PTR [edx+eax+4]
1144
        mov     DWORD PTR [eax+4], edi
1145
        add     eax, 8
1146
        sub     esi, 1
1147
        jne     SHORT $LL6@md6_pack
1148
; Line 355
1149
        mov     eax, DWORD PTR _K$[esp+4]
1150
        mov     edx, DWORD PTR [eax]
1151
        mov     DWORD PTR [ecx+120], edx
1152
        mov     edx, DWORD PTR [eax+4]
1153
        mov     DWORD PTR [ecx+124], edx
1154
        mov     edx, DWORD PTR [eax+8]
1155
        mov     DWORD PTR [ecx+128], edx
1156
        mov     edx, DWORD PTR [eax+12]
1157
        mov     DWORD PTR [ecx+132], edx
1158
        mov     edx, DWORD PTR [eax+16]
1159
        mov     DWORD PTR [ecx+136], edx
1160
        mov     edx, DWORD PTR [eax+20]
1161
        mov     DWORD PTR [ecx+140], edx
1162
        mov     edx, DWORD PTR [eax+24]
1163
        mov     DWORD PTR [ecx+144], edx
1164
        mov     edx, DWORD PTR [eax+28]
1165
        mov     DWORD PTR [ecx+148], edx
1166
        mov     edx, DWORD PTR [eax+32]
1167
        mov     DWORD PTR [ecx+152], edx
1168
        mov     edx, DWORD PTR [eax+36]
1169
        mov     DWORD PTR [ecx+156], edx
1170
        mov     edx, DWORD PTR [eax+40]
1171
        mov     DWORD PTR [ecx+160], edx
1172
        mov     edx, DWORD PTR [eax+44]
1173
        mov     DWORD PTR [ecx+164], edx
1174
        mov     edx, DWORD PTR [eax+48]
1175
        mov     DWORD PTR [ecx+168], edx
1176
        mov     edx, DWORD PTR [eax+52]
1177
        mov     DWORD PTR [ecx+172], edx
1178
        mov     edx, DWORD PTR [eax+56]
1179
        mov     DWORD PTR [ecx+176], edx
1180
        mov     eax, DWORD PTR [eax+60]
1181
        mov     DWORD PTR [ecx+180], eax
1182
; Line 357
1183
        mov     eax, DWORD PTR _ell$[esp+4]
1184
        cdq
1185
        mov     esi, eax
1186
        mov     eax, DWORD PTR _i$[esp+4]
1187
        cdq
1188
        shl     esi, 24                                 ; 00000018H
1189
        or      esi, edx
1190
        xor     edi, edi
1191
        or      edi, eax
1192
; Line 367
1193
        mov     eax, DWORD PTR _r$[esp+4]
1194
        cdq
1195
        shld    edx, eax, 8
1196
        mov     DWORD PTR [ecx+188], esi
1197
        shl     eax, 8
1198
        mov     DWORD PTR [ecx+184], edi
1199
        mov     esi, eax
1200
        mov     eax, DWORD PTR _L$[esp+4]
1201
        mov     edi, edx
1202
        cdq
1203
        or      esi, eax
1204
        mov     eax, DWORD PTR _z$[esp+4]
1205
        or      edi, edx
1206
        shld    edi, esi, 4
1207
        shl     esi, 4
1208
        cdq
1209
        or      esi, eax
1210
        mov     eax, DWORD PTR _p$[esp+4]
1211
        or      edi, edx
1212
        shld    edi, esi, 16
1213
        shl     esi, 16                                 ; 00000010H
1214
        cdq
1215
        or      esi, eax
1216
        mov     eax, DWORD PTR _keylen$[esp+4]
1217
        or      edi, edx
1218
        shld    edi, esi, 8
1219
        shl     esi, 8
1220
        cdq
1221
        or      esi, eax
1222
        mov     eax, DWORD PTR _d$[esp+4]
1223
        or      edi, edx
1224
        shld    edi, esi, 12
1225
        cdq
1226
        shl     esi, 12                                 ; 0000000cH
1227
        or      esi, eax
1228
        or      edi, edx
1229
; Line 373
1230
        mov     DWORD PTR [ecx+196], edi
1231
        mov     DWORD PTR [ecx+192], esi
1232
; Line 376
1233
        lea     edi, DWORD PTR [ecx+200]
1234
        mov     esi, DWORD PTR _B$[esp+4]
1235
        mov     ecx, 128                                ; 00000080H
1236
        rep movsd
1237
        pop     edi
1238
        pop     esi
1239
; Line 377
1240
        ret     0
1241
_md6_pack ENDP
1242
_TEXT   ENDS
1243
PUBLIC  _md6_standard_compress
1244
EXTRN   __chkstk:PROC
1245
; Function compile flags: /Ogtpy
1246
;       COMDAT _md6_standard_compress
1247
_TEXT   SEGMENT
1248
_N$ = -40712                                            ; size = 712
1249
_A$ = -40000                                            ; size = 40000
1250
_C$ = 8                                                 ; size = 4
1251
_Q$ = 12                                                ; size = 4
1252
_K$ = 16                                                ; size = 4
1253
_ell$ = 20                                              ; size = 4
1254
_i$ = 24                                                ; size = 4
1255
_r$ = 28                                                ; size = 4
1256
_L$ = 32                                                ; size = 4
1257
_z$ = 36                                                ; size = 4
1258
_p$ = 40                                                ; size = 4
1259
_keylen$ = 44                                           ; size = 4
1260
_d$ = 48                                                ; size = 4
1261
_B$ = 52                                                ; size = 4
1262
_md6_standard_compress PROC                             ; COMDAT
1263
; Line 411
1264
        mov     eax, 40712                              ; 00009f08H
1265
        call    __chkstk
1266
; Line 415
1267
        cmp     DWORD PTR _C$[esp+40708], 0
1268
        jne     SHORT $LN13@md6_standa
1269
        mov     eax, 15                                 ; 0000000fH
1270
; Line 434
1271
        add     esp, 40712                              ; 00009f08H
1272
        ret     0
1273
$LN13@md6_standa:
1274
; Line 416
1275
        cmp     DWORD PTR _B$[esp+40708], 0
1276
        jne     SHORT $LN12@md6_standa
1277
        mov     eax, 10                                 ; 0000000aH
1278
; Line 434
1279
        add     esp, 40712                              ; 00009f08H
1280
        ret     0
1281
$LN12@md6_standa:
1282
; Line 417
1283
        xor     eax, eax
1284
        push    esi
1285
        mov     esi, DWORD PTR _r$[esp+40712]
1286
        cmp     esi, 255                                ; 000000ffH
1287
        setg    al
1288
        xor     ecx, ecx
1289
        test    esi, esi
1290
        setl    cl
1291
        or      eax, ecx
1292
        je      SHORT $LN11@md6_standa
1293
        mov     eax, 17                                 ; 00000011H
1294
        pop     esi
1295
; Line 434
1296
        add     esp, 40712                              ; 00009f08H
1297
        ret     0
1298
$LN11@md6_standa:
1299
; Line 418
1300
        xor     edx, edx
1301
        push    ebx
1302
        mov     ebx, DWORD PTR _L$[esp+40716]
1303
        cmp     ebx, 255                                ; 000000ffH
1304
        setg    dl
1305
        xor     eax, eax
1306
        test    ebx, ebx
1307
        setl    al
1308
        or      edx, eax
1309
        je      SHORT $LN10@md6_standa
1310
        pop     ebx
1311
        mov     eax, 16                                 ; 00000010H
1312
        pop     esi
1313
; Line 434
1314
        add     esp, 40712                              ; 00009f08H
1315
        ret     0
1316
$LN10@md6_standa:
1317
; Line 419
1318
        mov     ecx, DWORD PTR _ell$[esp+40716]
1319
        cmp     ecx, 255                                ; 000000ffH
1320
        ja      $LN8@md6_standa
1321
; Line 420
1322
        mov     edx, DWORD PTR _p$[esp+40716]
1323
        cmp     edx, 4096                               ; 00001000H
1324
        ja      $LN6@md6_standa
1325
; Line 421
1326
        mov     eax, DWORD PTR _d$[esp+40716]
1327
        push    edi
1328
        lea     edi, DWORD PTR [eax-1]
1329
        cmp     edi, 511                                ; 000001ffH
1330
        ja      $LN4@md6_standa
1331
        push    ebp
1332
; Line 422
1333
        mov     ebp, DWORD PTR _K$[esp+40724]
1334
        test    ebp, ebp
1335
        jne     SHORT $LN3@md6_standa
1336
        pop     ebp
1337
        pop     edi
1338
        pop     ebx
1339
        mov     eax, 13                                 ; 0000000dH
1340
        pop     esi
1341
; Line 434
1342
        add     esp, 40712                              ; 00009f08H
1343
        ret     0
1344
$LN3@md6_standa:
1345
; Line 423
1346
        mov     edi, DWORD PTR _Q$[esp+40724]
1347
        test    edi, edi
1348
        jne     SHORT $LN2@md6_standa
1349
        pop     ebp
1350
        pop     edi
1351
        pop     ebx
1352
        mov     eax, 14                                 ; 0000000eH
1353
        pop     esi
1354
; Line 434
1355
        add     esp, 40712                              ; 00009f08H
1356
        ret     0
1357
$LN2@md6_standa:
1358
; Line 426
1359
        push    DWORD PTR _B$[esp+40724]
1360
        push    eax
1361
        mov     eax, DWORD PTR _keylen$[esp+40732]
1362
        push    eax
1363
        mov     eax, DWORD PTR _i$[esp+40736]
1364
        push    edx
1365
        mov     edx, DWORD PTR _z$[esp+40740]
1366
        push    edx
1367
        push    ebx
1368
        push    esi
1369
        push    eax
1370
        push    ecx
1371
        push    ebp
1372
        lea     ecx, DWORD PTR _N$[esp+40768]
1373
        push    edi
1374
        push    ecx
1375
        call    _md6_pack
1376
; Line 430
1377
        mov     eax, DWORD PTR _compression_hook
1378
        add     esp, 48                                 ; 00000030H
1379
        test    eax, eax
1380
        je      SHORT $LN16@md6_standa
1381
; Line 431
1382
        mov     edx, DWORD PTR _B$[esp+40724]
1383
        mov     ecx, DWORD PTR _d$[esp+40724]
1384
        push    edx
1385
        mov     edx, DWORD PTR _keylen$[esp+40728]
1386
        push    ecx
1387
        mov     ecx, DWORD PTR _p$[esp+40732]
1388
        push    edx
1389
        mov     edx, DWORD PTR _z$[esp+40736]
1390
        push    ecx
1391
        mov     ecx, DWORD PTR _i$[esp+40740]
1392
        push    edx
1393
        mov     edx, DWORD PTR _ell$[esp+40744]
1394
        push    ebx
1395
        push    esi
1396
        push    ecx
1397
        mov     ecx, DWORD PTR _C$[esp+40756]
1398
        push    edx
1399
        push    ebp
1400
        push    edi
1401
        push    ecx
1402
        call    eax
1403
        add     esp, 48                                 ; 00000030H
1404
$LN16@md6_standa:
1405
; Line 433
1406
        mov     ecx, DWORD PTR _C$[esp+40724]
1407
        lea     edx, DWORD PTR _A$[esp+40728]
1408
        push    edx
1409
        push    esi
1410
        lea     eax, DWORD PTR _N$[esp+40736]
1411
        push    eax
1412
        push    ecx
1413
        call    _md6_compress
1414
        add     esp, 16                                 ; 00000010H
1415
        pop     ebp
1416
        pop     edi
1417
        pop     ebx
1418
        pop     esi
1419
; Line 434
1420
        add     esp, 40712                              ; 00009f08H
1421
        ret     0
1422
$LN4@md6_standa:
1423
        pop     edi
1424
        pop     ebx
1425
; Line 421
1426
        mov     eax, 2
1427
        pop     esi
1428
; Line 434
1429
        add     esp, 40712                              ; 00009f08H
1430
        ret     0
1431
$LN6@md6_standa:
1432
        pop     ebx
1433
; Line 420
1434
        mov     eax, 12                                 ; 0000000cH
1435
        pop     esi
1436
; Line 434
1437
        add     esp, 40712                              ; 00009f08H
1438
        ret     0
1439
$LN8@md6_standa:
1440
        pop     ebx
1441
; Line 419
1442
        mov     eax, 11                                 ; 0000000bH
1443
        pop     esi
1444
; Line 434
1445
        add     esp, 40712                              ; 00009f08H
1446
        ret     0
1447
_md6_standard_compress ENDP
1448
_TEXT   ENDS
1449
END

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.