]> pd.if.org Git - mmurtl/blob - ossource/fsys.asm
autocommit for file dated 1995-02-09 11:17:18
[mmurtl] / ossource / fsys.asm
1 \r
2 .DATA\r
3 EXTRN _AllocExch FWORD\r
4 EXTRN _GetTSSExch FWORD\r
5 EXTRN _SpawnTask FWORD\r
6 EXTRN _WaitMsg FWORD\r
7 EXTRN _CheckMsg FWORD\r
8 EXTRN _Request FWORD\r
9 EXTRN _Respond FWORD\r
10 EXTRN _CopyData FWORD\r
11 EXTRN _FillData FWORD\r
12 EXTRN _CompareNCS FWORD\r
13 EXTRN _GetCMOSTime FWORD\r
14 EXTRN _GetCMOSDate FWORD\r
15 EXTRN _GetTimerTick FWORD\r
16 EXTRN _TTYOut FWORD\r
17 EXTRN _GetNormVid FWORD\r
18 EXTRN _ReadKbd FWORD\r
19 EXTRN _DeviceOp FWORD\r
20 EXTRN _DeviceStat FWORD\r
21 EXTRN _DeviceInit FWORD\r
22 EXTRN _AllocOSPage FWORD\r
23 EXTRN _DeAllocPage FWORD\r
24 EXTRN _GetPath FWORD\r
25 EXTRN _RegisterSvc FWORD\r
26 _fsysname DD OFFSET L_lit+0\r
27 L_lit DB 70,73,76,69,83,89,83,77,0,46,32,32,32,32,32,32\r
28  DB 32,32,32,32,0,46,46,32,32,32,32,32,32,32,32,32\r
29  DB 0,78,85,76,0,75,66,68,0,86,73,68,0,76,80,84\r
30  DB 0,37,99,58,32,72,101,97,100,115,32,37,100,44,32,83\r
31  DB 101,99,47,84,114,107,32,37,100,44,32,83,101,99,47,67\r
32  DB 108,115,116,114,32,37,100,44,32,68,101,118,32,37,100,44\r
33  DB 32,70,65,84,37,100,32,13,10,0\r
34 _Fat DB 272 DUP(0)\r
35 PUBLIC _FatBufA DB 1536 DUP(0)\r
36 _paFCB DD 0h\r
37 _pFCB DD 0h\r
38 _paFUB DD 0h\r
39 _pFUB DD 0h\r
40 _fsb DB 62 DUP(0)\r
41 _partab DB 64 DUP(0)\r
42 _partsig DW 0h\r
43 _dirent DB 32 DUP(0)\r
44 _pDirEnt DD 0h\r
45 _FDrive DB 0h\r
46 _FileSpec DB 77 DUP(0)\r
47 _SpecDepth DB 0h\r
48 _FDrive1 DB 0h\r
49 _FileSpec1 DB 77 DUP(0)\r
50 _SpecDepth1 DB 0h\r
51 _abRawSector DB 516 DUP(0)\r
52 _abTmpSector DB 516 DUP(0)\r
53 _abDirSectBuf DB 516 DUP(0)\r
54 _PDrvs DB 48 DUP(0)\r
55 _Ldrv DB 320 DUP(0)\r
56 _HDDevStat DB 64 DUP(0)\r
57 _FDDevStat DB 64 DUP(0)\r
58 _FSysStack DD 512 DUP(0)\r
59 _FSysExch DD 0h\r
60 _pRQB DD 0h\r
61 _keycode DD 0h\r
62 \r
63 \r
64 .CODE\r
65 EXTRN _xprintf: NEAR\r
66 EXTRN _Dump: NEAR\r
67 _GetBSInfo:\r
68         PUSH EBP\r
69         MOV EBP,ESP\r
70         MOV EAX,DWORD PTR [EBP+12]\r
71         MOV ECX,12\r
72         MUL ECX\r
73         MOV ESI,OFFSET _PDrvs\r
74         ADD ESI,EAX\r
75         MOV EAX,DWORD PTR [EBP+8]\r
76         SHL EAX,4\r
77         MOV EBX,ESI\r
78         MOV ESI,OFFSET _partab\r
79         ADD ESI,EAX\r
80         XOR EAX,EAX\r
81         MOV AL,BYTE PTR [ESI+1]\r
82         MOV BYTE PTR [EBX+10], AL\r
83         MOV EAX,DWORD PTR [EBP+12]\r
84         MOV ECX,12\r
85         MUL ECX\r
86         MOV ESI,OFFSET _PDrvs\r
87         ADD ESI,EAX\r
88         MOV EAX,DWORD PTR [EBP+8]\r
89         SHL EAX,4\r
90         MOV EBX,ESI\r
91         MOV ESI,OFFSET _partab\r
92         ADD ESI,EAX\r
93         XOR EAX,EAX\r
94         MOV AL,BYTE PTR [ESI+2]\r
95         MOV BYTE PTR [EBX+11], AL\r
96         MOV EAX,DWORD PTR [EBP+12]\r
97         MOV ECX,12\r
98         MUL ECX\r
99         MOV ESI,OFFSET _PDrvs\r
100         ADD ESI,EAX\r
101         MOV EAX,DWORD PTR [EBP+8]\r
102         SHL EAX,4\r
103         MOV EBX,ESI\r
104         MOV ESI,OFFSET _partab\r
105         ADD ESI,EAX\r
106         XOR EAX,EAX\r
107         MOV AL,BYTE PTR [ESI+3]\r
108         MOV WORD PTR [EBX+8], AX\r
109         MOV EAX,DWORD PTR [EBP+8]\r
110         AND EAX,EAX\r
111         JNZ L_1\r
112         MOV EAX,DWORD PTR [EBP+12]\r
113         MOV ECX,12\r
114         MUL ECX\r
115         MOV ESI,OFFSET _PDrvs\r
116         ADD ESI,EAX\r
117         MOV EAX,DWORD PTR [EBP+8]\r
118         SHL EAX,4\r
119         MOV EBX,ESI\r
120         MOV ESI,OFFSET _partab\r
121         ADD ESI,EAX\r
122         XOR EAX,EAX\r
123         MOV AL,BYTE PTR [ESI+5]\r
124         MOV DWORD PTR [EBX], EAX\r
125         MOV EAX,DWORD PTR [EBP+12]\r
126         MOV ECX,12\r
127         MUL ECX\r
128         MOV ESI,OFFSET _PDrvs\r
129         ADD ESI,EAX\r
130         MOV EAX,DWORD PTR [EBP+8]\r
131         SHL EAX,4\r
132         MOV EBX,ESI\r
133         MOV ESI,OFFSET _partab\r
134         ADD ESI,EAX\r
135         MOV EAX,DWORD PTR [ESI+8]\r
136         AND EAX,255\r
137         MOV DWORD PTR [EBX+4], EAX\r
138 L_1:\r
139         POP EBP\r
140         RETN 8\r
141 _StatFloppy:\r
142         PUSH EBP\r
143         MOV EBP,ESP\r
144         SUB ESP,8\r
145         MOV ESI,OFFSET _Ldrv\r
146         MOV EAX,10\r
147         MOV BYTE PTR [ESI+28], AL\r
148         MOV EAX,32\r
149         MOV ESI,OFFSET _Ldrv\r
150         ADD ESI,EAX\r
151         MOV EAX,11\r
152         MOV BYTE PTR [ESI+28], AL\r
153         XOR EAX,EAX\r
154         MOV AL,BYTE PTR [EBP+8]\r
155         MOV ECX,10\r
156         ADD EAX,ECX\r
157         PUSH EAX\r
158         PUSH OFFSET _FDDevStat\r
159         PUSH 64\r
160         LEA EAX,DWORD PTR [EBP-8]\r
161         PUSH EAX\r
162         CALL FWORD PTR _DeviceStat\r
163         MOV DWORD PTR [EBP-4], EAX\r
164         MOV EAX,DWORD PTR [EBP-4]\r
165         AND EAX,EAX\r
166         JNZ L_2\r
167         XOR EAX,EAX\r
168         MOV AL,BYTE PTR [EBP+8]\r
169         MOV ECX,12\r
170         MUL ECX\r
171         MOV ESI,OFFSET _PDrvs\r
172         ADD ESI,EAX\r
173         MOV EBX,ESI\r
174         MOV ESI,OFFSET _FDDevStat\r
175         MOV EAX,DWORD PTR [ESI+20]\r
176         MOV DWORD PTR [EBX], EAX\r
177         XOR EAX,EAX\r
178         MOV AL,BYTE PTR [EBP+8]\r
179         MOV ECX,12\r
180         MUL ECX\r
181         MOV ESI,OFFSET _PDrvs\r
182         ADD ESI,EAX\r
183         MOV EBX,ESI\r
184         MOV ESI,OFFSET _FDDevStat\r
185         MOV EAX,DWORD PTR [ESI+24]\r
186         MOV DWORD PTR [EBX+4], EAX\r
187         XOR EAX,EAX\r
188         MOV AL,BYTE PTR [EBP+8]\r
189         SHL EAX,5\r
190         MOV ESI,OFFSET _Ldrv\r
191         ADD ESI,EAX\r
192         XOR EAX,EAX\r
193         MOV DWORD PTR [ESI], EAX\r
194         XOR EAX,EAX\r
195         MOV AL,BYTE PTR [EBP+8]\r
196         SHL EAX,5\r
197         MOV ESI,OFFSET _Ldrv\r
198         ADD ESI,EAX\r
199         MOV EBX,ESI\r
200         MOV ESI,OFFSET _FDDevStat\r
201         MOV EAX,DWORD PTR [ESI+8]\r
202         SUB EAX,1\r
203         MOV DWORD PTR [EBX+8], EAX\r
204         XOR EAX,EAX\r
205         MOV AL,BYTE PTR [EBP+8]\r
206         SHL EAX,5\r
207         MOV ESI,OFFSET _Ldrv\r
208         ADD ESI,EAX\r
209         MOV EBX,ESI\r
210         MOV ESI,OFFSET _FDDevStat\r
211         MOV EAX,DWORD PTR [ESI+20]\r
212         MOV WORD PTR [EBX+20], AX\r
213         XOR EAX,EAX\r
214         MOV AL,BYTE PTR [EBP+8]\r
215         SHL EAX,5\r
216         MOV ESI,OFFSET _Ldrv\r
217         ADD ESI,EAX\r
218         MOV EBX,ESI\r
219         MOV ESI,OFFSET _FDDevStat\r
220         MOV EAX,DWORD PTR [ESI+24]\r
221         MOV WORD PTR [EBX+22], AX\r
222         XOR EAX,EAX\r
223         MOV DWORD PTR [EBP-4], EAX\r
224         JMP L_3\r
225 L_2:\r
226         XOR EAX,EAX\r
227         MOV AL,BYTE PTR [EBP+8]\r
228         SHL EAX,5\r
229         MOV ESI,OFFSET _Ldrv\r
230         ADD ESI,EAX\r
231         MOV EAX,255\r
232         MOV BYTE PTR [ESI+28], AL\r
233 L_3:\r
234         MOV EAX,DWORD PTR [EBP-4]\r
235         MOV ESP,EBP\r
236         POP EBP\r
237         RETN 4\r
238 _read_PE:\r
239         PUSH EBP\r
240         MOV EBP,ESP\r
241         SUB ESP,22\r
242         XOR EAX,EAX\r
243         MOV BYTE PTR [EBP-21], AL\r
244         XOR EAX,EAX\r
245         MOV BYTE PTR [EBP-22], AL\r
246         MOV EAX,2\r
247         MOV DWORD PTR [EBP-16], EAX\r
248 L_5:\r
249         MOV EAX,DWORD PTR [EBP-16]\r
250         CMP EAX,10\r
251         SETB AL\r
252         AND AL,AL\r
253         JZ L_6\r
254         JMP SHORT L_7\r
255 L_8:\r
256         MOV EAX,DWORD PTR [EBP-16]\r
257         INC DWORD PTR [EBP-16]\r
258         JMP SHORT L_5\r
259 L_7:\r
260         MOV EAX,DWORD PTR [EBP-16]\r
261         SHL EAX,5\r
262         MOV ESI,OFFSET _Ldrv\r
263         ADD ESI,EAX\r
264         MOV EAX,255\r
265         MOV BYTE PTR [ESI+28], AL\r
266         JMP L_8\r
267 L_6:\r
268         MOV EAX,2\r
269         MOV DWORD PTR [EBP-16], EAX\r
270         MOV EAX,2\r
271         MOV DWORD PTR [EBP-20], EAX\r
272 L_9:\r
273         MOV EAX,DWORD PTR [EBP-20]\r
274         CMP EAX,4\r
275         SETB AL\r
276         AND AL,AL\r
277         JZ L_10\r
278         JMP SHORT L_11\r
279 L_12:\r
280         MOV EAX,DWORD PTR [EBP-20]\r
281         INC DWORD PTR [EBP-20]\r
282         JMP SHORT L_9\r
283 L_11:\r
284         MOV EAX,DWORD PTR [EBP-20]\r
285         ADD EAX,10\r
286         PUSH EAX\r
287         PUSH 1\r
288         XOR EAX,EAX\r
289         PUSH EAX\r
290         PUSH 1\r
291         PUSH OFFSET _abRawSector\r
292         CALL FWORD PTR _DeviceOp\r
293         MOV DWORD PTR [EBP-4], EAX\r
294         MOV EAX,DWORD PTR [EBP-20]\r
295         CMP EAX,2\r
296         SETE AL\r
297         AND AL,AL\r
298         JZ L_13\r
299         MOV EAX,DWORD PTR [EBP-4]\r
300         MOV DWORD PTR [EBP-8], EAX\r
301         JMP L_14\r
302 L_13:\r
303         MOV EAX,DWORD PTR [EBP-4]\r
304         MOV DWORD PTR [EBP-12], EAX\r
305 L_14:\r
306         MOV EAX,DWORD PTR [EBP-4]\r
307         AND EAX,EAX\r
308         JNZ L_15\r
309         MOV EAX,510\r
310         MOV ESI,OFFSET _abRawSector\r
311         ADD ESI,EAX\r
312         PUSH ESI\r
313         PUSH OFFSET _partsig\r
314         PUSH 2\r
315         CALL FWORD PTR _CopyData\r
316         MOVZX EAX,_partsig\r
317         CMP EAX,43605\r
318         SETNE AL\r
319         AND AL,AL\r
320         JZ L_16\r
321         MOV EAX,218\r
322         JMP L_17\r
323 L_16:\r
324         MOV EAX,446\r
325         MOV ESI,OFFSET _abRawSector\r
326         ADD ESI,EAX\r
327         PUSH ESI\r
328         PUSH OFFSET _partab\r
329         PUSH 64\r
330         CALL FWORD PTR _CopyData\r
331         MOV ESI,OFFSET _partab\r
332         MOV EAX,DWORD PTR [ESI+12]\r
333         CMP EAX,0\r
334         SETA AL\r
335         AND AL,AL\r
336         JZ L_18\r
337         MOV EAX,DWORD PTR [EBP-16]\r
338         SHL EAX,5\r
339         MOV ESI,OFFSET _Ldrv\r
340         ADD ESI,EAX\r
341         MOV EBX,ESI\r
342         MOV ESI,OFFSET _partab\r
343         MOV EAX,DWORD PTR [ESI+8]\r
344         MOV DWORD PTR [EBX], EAX\r
345         MOV EAX,DWORD PTR [EBP-16]\r
346         SHL EAX,5\r
347         MOV ESI,OFFSET _Ldrv\r
348         ADD ESI,EAX\r
349         MOV EBX,ESI\r
350         MOV ESI,OFFSET _partab\r
351         MOV EAX,DWORD PTR [ESI+12]\r
352         MOV DWORD PTR [EBX+8], EAX\r
353         MOV ESI,OFFSET _partab\r
354         XOR EAX,EAX\r
355         MOV AL,BYTE PTR [ESI+4]\r
356         CMP EAX,3\r
357         SETA AL\r
358         AND AL,AL\r
359         JZ L_19\r
360         MOV EAX,DWORD PTR [EBP-16]\r
361         SHL EAX,5\r
362         MOV ESI,OFFSET _Ldrv\r
363         ADD ESI,EAX\r
364         MOV EAX,1\r
365         MOV BYTE PTR [ESI+31], AL\r
366 L_19:\r
367         MOV EAX,DWORD PTR [EBP-16]\r
368         SHL EAX,5\r
369         MOV ESI,OFFSET _Ldrv\r
370         ADD ESI,EAX\r
371         MOV EAX,DWORD PTR [EBP-20]\r
372         ADD EAX,10\r
373         MOV BYTE PTR [ESI+28], AL\r
374         MOV EAX,DWORD PTR [EBP-20]\r
375         CMP EAX,2\r
376         SETE AL\r
377         AND AL,AL\r
378         JZ L_20\r
379         XOR EAX,EAX\r
380         MOV AL,BYTE PTR [EBP-21]\r
381         AND EAX,EAX\r
382         SETZ AL\r
383         AND AL,AL\r
384 L_20:\r
385         JZ L_21\r
386         PUSH 2\r
387         XOR EAX,EAX\r
388         PUSH EAX\r
389         CALL _GetBSInfo\r
390         MOV EAX,1\r
391         MOV BYTE PTR [EBP-21], AL\r
392 L_21:\r
393         MOV EAX,DWORD PTR [EBP-20]\r
394         CMP EAX,3\r
395         SETE AL\r
396         AND AL,AL\r
397         JZ L_22\r
398         XOR EAX,EAX\r
399         MOV AL,BYTE PTR [EBP-22]\r
400         AND EAX,EAX\r
401         SETZ AL\r
402         AND AL,AL\r
403 L_22:\r
404         JZ L_23\r
405         PUSH 3\r
406         XOR EAX,EAX\r
407         PUSH EAX\r
408         CALL _GetBSInfo\r
409         MOV EAX,1\r
410         MOV BYTE PTR [EBP-22], AL\r
411 L_23:\r
412         MOV EAX,DWORD PTR [EBP-16]\r
413         INC DWORD PTR [EBP-16]\r
414 L_18:\r
415         MOV EAX,16\r
416         MOV ESI,OFFSET _partab\r
417         ADD ESI,EAX\r
418         MOV EAX,DWORD PTR [ESI+12]\r
419         CMP EAX,0\r
420         SETA AL\r
421         AND AL,AL\r
422         JZ L_24\r
423         MOV EAX,DWORD PTR [EBP-16]\r
424         SHL EAX,5\r
425         MOV ESI,OFFSET _Ldrv\r
426         ADD ESI,EAX\r
427         MOV EAX,16\r
428         MOV EBX,ESI\r
429         MOV ESI,OFFSET _partab\r
430         ADD ESI,EAX\r
431         MOV EAX,DWORD PTR [ESI+8]\r
432         MOV DWORD PTR [EBX], EAX\r
433         MOV EAX,DWORD PTR [EBP-16]\r
434         SHL EAX,5\r
435         MOV ESI,OFFSET _Ldrv\r
436         ADD ESI,EAX\r
437         MOV EAX,16\r
438         MOV EBX,ESI\r
439         MOV ESI,OFFSET _partab\r
440         ADD ESI,EAX\r
441         MOV EAX,DWORD PTR [ESI+12]\r
442         MOV DWORD PTR [EBX+8], EAX\r
443         MOV EAX,16\r
444         MOV ESI,OFFSET _partab\r
445         ADD ESI,EAX\r
446         XOR EAX,EAX\r
447         MOV AL,BYTE PTR [ESI+4]\r
448         CMP EAX,3\r
449         SETA AL\r
450         AND AL,AL\r
451         JZ L_25\r
452         MOV EAX,DWORD PTR [EBP-16]\r
453         SHL EAX,5\r
454         MOV ESI,OFFSET _Ldrv\r
455         ADD ESI,EAX\r
456         MOV EAX,1\r
457         MOV BYTE PTR [ESI+31], AL\r
458 L_25:\r
459         MOV EAX,DWORD PTR [EBP-16]\r
460         SHL EAX,5\r
461         MOV ESI,OFFSET _Ldrv\r
462         ADD ESI,EAX\r
463         MOV EAX,DWORD PTR [EBP-20]\r
464         ADD EAX,10\r
465         MOV BYTE PTR [ESI+28], AL\r
466         MOV EAX,DWORD PTR [EBP-20]\r
467         CMP EAX,2\r
468         SETE AL\r
469         AND AL,AL\r
470         JZ L_26\r
471         XOR EAX,EAX\r
472         MOV AL,BYTE PTR [EBP-21]\r
473         AND EAX,EAX\r
474         SETZ AL\r
475         AND AL,AL\r
476 L_26:\r
477         JZ L_27\r
478         PUSH 2\r
479         PUSH 1\r
480         CALL _GetBSInfo\r
481         MOV EAX,1\r
482         MOV BYTE PTR [EBP-21], AL\r
483 L_27:\r
484         MOV EAX,DWORD PTR [EBP-20]\r
485         CMP EAX,3\r
486         SETE AL\r
487         AND AL,AL\r
488         JZ L_28\r
489         XOR EAX,EAX\r
490         MOV AL,BYTE PTR [EBP-22]\r
491         AND EAX,EAX\r
492         SETZ AL\r
493         AND AL,AL\r
494 L_28:\r
495         JZ L_29\r
496         PUSH 3\r
497         PUSH 1\r
498         CALL _GetBSInfo\r
499         MOV EAX,1\r
500         MOV BYTE PTR [EBP-22], AL\r
501 L_29:\r
502         MOV EAX,DWORD PTR [EBP-16]\r
503         INC DWORD PTR [EBP-16]\r
504 L_24:\r
505         MOV EAX,32\r
506         MOV ESI,OFFSET _partab\r
507         ADD ESI,EAX\r
508         MOV EAX,DWORD PTR [ESI+12]\r
509         CMP EAX,0\r
510         SETA AL\r
511         AND AL,AL\r
512         JZ L_30\r
513         MOV EAX,DWORD PTR [EBP-16]\r
514         SHL EAX,5\r
515         MOV ESI,OFFSET _Ldrv\r
516         ADD ESI,EAX\r
517         MOV EAX,32\r
518         MOV EBX,ESI\r
519         MOV ESI,OFFSET _partab\r
520         ADD ESI,EAX\r
521         MOV EAX,DWORD PTR [ESI+8]\r
522         MOV DWORD PTR [EBX], EAX\r
523         MOV EAX,DWORD PTR [EBP-16]\r
524         SHL EAX,5\r
525         MOV ESI,OFFSET _Ldrv\r
526         ADD ESI,EAX\r
527         MOV EAX,32\r
528         MOV EBX,ESI\r
529         MOV ESI,OFFSET _partab\r
530         ADD ESI,EAX\r
531         MOV EAX,DWORD PTR [ESI+12]\r
532         MOV DWORD PTR [EBX+8], EAX\r
533         MOV EAX,32\r
534         MOV ESI,OFFSET _partab\r
535         ADD ESI,EAX\r
536         XOR EAX,EAX\r
537         MOV AL,BYTE PTR [ESI+4]\r
538         CMP EAX,3\r
539         SETA AL\r
540         AND AL,AL\r
541         JZ L_31\r
542         MOV EAX,DWORD PTR [EBP-16]\r
543         SHL EAX,5\r
544         MOV ESI,OFFSET _Ldrv\r
545         ADD ESI,EAX\r
546         MOV EAX,1\r
547         MOV BYTE PTR [ESI+31], AL\r
548 L_31:\r
549         MOV EAX,DWORD PTR [EBP-16]\r
550         SHL EAX,5\r
551         MOV ESI,OFFSET _Ldrv\r
552         ADD ESI,EAX\r
553         MOV EAX,DWORD PTR [EBP-20]\r
554         ADD EAX,10\r
555         MOV BYTE PTR [ESI+28], AL\r
556         MOV EAX,DWORD PTR [EBP-20]\r
557         CMP EAX,2\r
558         SETE AL\r
559         AND AL,AL\r
560         JZ L_32\r
561         XOR EAX,EAX\r
562         MOV AL,BYTE PTR [EBP-21]\r
563         AND EAX,EAX\r
564         SETZ AL\r
565         AND AL,AL\r
566 L_32:\r
567         JZ L_33\r
568         PUSH 2\r
569         PUSH 2\r
570         CALL _GetBSInfo\r
571         MOV EAX,1\r
572         MOV BYTE PTR [EBP-21], AL\r
573 L_33:\r
574         MOV EAX,DWORD PTR [EBP-20]\r
575         CMP EAX,3\r
576         SETE AL\r
577         AND AL,AL\r
578         JZ L_34\r
579         XOR EAX,EAX\r
580         MOV AL,BYTE PTR [EBP-22]\r
581         AND EAX,EAX\r
582         SETZ AL\r
583         AND AL,AL\r
584 L_34:\r
585         JZ L_35\r
586         PUSH 3\r
587         PUSH 2\r
588         CALL _GetBSInfo\r
589         MOV EAX,1\r
590         MOV BYTE PTR [EBP-22], AL\r
591 L_35:\r
592         MOV EAX,DWORD PTR [EBP-16]\r
593         INC DWORD PTR [EBP-16]\r
594 L_30:\r
595         MOV EAX,48\r
596         MOV ESI,OFFSET _partab\r
597         ADD ESI,EAX\r
598         MOV EAX,DWORD PTR [ESI+12]\r
599         CMP EAX,0\r
600         SETA AL\r
601         AND AL,AL\r
602         JZ L_36\r
603         MOV EAX,DWORD PTR [EBP-16]\r
604         SHL EAX,5\r
605         MOV ESI,OFFSET _Ldrv\r
606         ADD ESI,EAX\r
607         MOV EAX,48\r
608         MOV EBX,ESI\r
609         MOV ESI,OFFSET _partab\r
610         ADD ESI,EAX\r
611         MOV EAX,DWORD PTR [ESI+8]\r
612         MOV DWORD PTR [EBX], EAX\r
613         MOV EAX,DWORD PTR [EBP-16]\r
614         SHL EAX,5\r
615         MOV ESI,OFFSET _Ldrv\r
616         ADD ESI,EAX\r
617         MOV EAX,48\r
618         MOV EBX,ESI\r
619         MOV ESI,OFFSET _partab\r
620         ADD ESI,EAX\r
621         MOV EAX,DWORD PTR [ESI+12]\r
622         MOV DWORD PTR [EBX+8], EAX\r
623         MOV EAX,48\r
624         MOV ESI,OFFSET _partab\r
625         ADD ESI,EAX\r
626         XOR EAX,EAX\r
627         MOV AL,BYTE PTR [ESI+4]\r
628         CMP EAX,3\r
629         SETA AL\r
630         AND AL,AL\r
631         JZ L_37\r
632         MOV EAX,DWORD PTR [EBP-16]\r
633         SHL EAX,5\r
634         MOV ESI,OFFSET _Ldrv\r
635         ADD ESI,EAX\r
636         MOV EAX,1\r
637         MOV BYTE PTR [ESI+31], AL\r
638 L_37:\r
639         MOV EAX,DWORD PTR [EBP-16]\r
640         SHL EAX,5\r
641         MOV ESI,OFFSET _Ldrv\r
642         ADD ESI,EAX\r
643         MOV EAX,DWORD PTR [EBP-20]\r
644         ADD EAX,10\r
645         MOV BYTE PTR [ESI+28], AL\r
646         MOV EAX,DWORD PTR [EBP-20]\r
647         CMP EAX,2\r
648         SETE AL\r
649         AND AL,AL\r
650         JZ L_38\r
651         XOR EAX,EAX\r
652         MOV AL,BYTE PTR [EBP-21]\r
653         AND EAX,EAX\r
654         SETZ AL\r
655         AND AL,AL\r
656 L_38:\r
657         JZ L_39\r
658         PUSH 2\r
659         PUSH 3\r
660         CALL _GetBSInfo\r
661         MOV EAX,1\r
662         MOV BYTE PTR [EBP-21], AL\r
663 L_39:\r
664         MOV EAX,DWORD PTR [EBP-20]\r
665         CMP EAX,3\r
666         SETE AL\r
667         AND AL,AL\r
668         JZ L_40\r
669         XOR EAX,EAX\r
670         MOV AL,BYTE PTR [EBP-22]\r
671         AND EAX,EAX\r
672         SETZ AL\r
673         AND AL,AL\r
674 L_40:\r
675         JZ L_41\r
676         PUSH 3\r
677         PUSH 3\r
678         CALL _GetBSInfo\r
679         MOV EAX,1\r
680         MOV BYTE PTR [EBP-22], AL\r
681 L_41:\r
682         MOV EAX,DWORD PTR [EBP-16]\r
683         INC DWORD PTR [EBP-16]\r
684 L_36:\r
685 L_15:\r
686         JMP L_12\r
687 L_10:\r
688         MOV EAX,DWORD PTR [EBP-8]\r
689         AND EAX,EAX\r
690         JZ L_42\r
691         MOV EAX,DWORD PTR [EBP-8]\r
692         JMP L_17\r
693 L_42:\r
694         XOR EAX,EAX\r
695 L_43:\r
696 L_17:\r
697         MOV ESP,EBP\r
698         POP EBP\r
699         RETN\r
700 _SetDriveGeometry:\r
701         PUSH EBP\r
702         MOV EBP,ESP\r
703         SUB ESP,8\r
704         MOV EAX,DWORD PTR [EBP+8]\r
705         CMP EAX,12\r
706         SETE AL\r
707         AND AL,AL\r
708         JZ L_44\r
709         PUSH 12\r
710         PUSH OFFSET _HDDevStat\r
711         PUSH 64\r
712         LEA EAX,DWORD PTR [EBP-8]\r
713         PUSH EAX\r
714         CALL FWORD PTR _DeviceStat\r
715         MOV DWORD PTR [EBP-4], EAX\r
716         MOV EAX,DWORD PTR [EBP-4]\r
717         AND EAX,EAX\r
718         JNZ L_45\r
719         MOV ESI,OFFSET _HDDevStat\r
720         MOV EAX,24\r
721         MOV EBX,ESI\r
722         MOV ESI,OFFSET _PDrvs\r
723         ADD ESI,EAX\r
724         MOV EAX,DWORD PTR [ESI]\r
725         MOV DWORD PTR [EBX+20], EAX\r
726         MOV ESI,OFFSET _HDDevStat\r
727         MOV EAX,24\r
728         MOV EBX,ESI\r
729         MOV ESI,OFFSET _PDrvs\r
730         ADD ESI,EAX\r
731         MOV EAX,DWORD PTR [ESI+4]\r
732         MOV DWORD PTR [EBX+24], EAX\r
733         PUSH 12\r
734         PUSH OFFSET _HDDevStat\r
735         PUSH 64\r
736         CALL FWORD PTR _DeviceInit\r
737         MOV DWORD PTR [EBP-4], EAX\r
738 L_45:\r
739 L_44:\r
740         MOV EAX,DWORD PTR [EBP+8]\r
741         CMP EAX,13\r
742         SETE AL\r
743         AND AL,AL\r
744         JZ L_46\r
745         PUSH 13\r
746         PUSH OFFSET _HDDevStat\r
747         PUSH 64\r
748         LEA EAX,DWORD PTR [EBP-8]\r
749         PUSH EAX\r
750         CALL FWORD PTR _DeviceStat\r
751         MOV DWORD PTR [EBP-4], EAX\r
752         MOV EAX,DWORD PTR [EBP-4]\r
753         AND EAX,EAX\r
754         JNZ L_47\r
755         MOV ESI,OFFSET _HDDevStat\r
756         MOV EAX,36\r
757         MOV EBX,ESI\r
758         MOV ESI,OFFSET _PDrvs\r
759         ADD ESI,EAX\r
760         MOV EAX,DWORD PTR [ESI]\r
761         MOV DWORD PTR [EBX+20], EAX\r
762         MOV ESI,OFFSET _HDDevStat\r
763         MOV EAX,36\r
764         MOV EBX,ESI\r
765         MOV ESI,OFFSET _PDrvs\r
766         ADD ESI,EAX\r
767         MOV EAX,DWORD PTR [ESI+4]\r
768         MOV DWORD PTR [EBX+24], EAX\r
769         PUSH 13\r
770         PUSH OFFSET _HDDevStat\r
771         PUSH 64\r
772         CALL FWORD PTR _DeviceInit\r
773         MOV DWORD PTR [EBP-4], EAX\r
774 L_47:\r
775 L_46:\r
776         MOV EAX,DWORD PTR [EBP-4]\r
777         MOV ESP,EBP\r
778         POP EBP\r
779         RETN 4\r
780 _read_BS:\r
781         PUSH EBP\r
782         MOV EBP,ESP\r
783         SUB ESP,8\r
784         MOV EAX,DWORD PTR [EBP+8]\r
785         SHL EAX,5\r
786         MOV ESI,OFFSET _Ldrv\r
787         ADD ESI,EAX\r
788         XOR EAX,EAX\r
789         MOV AL,BYTE PTR [ESI+28]\r
790         CMP EAX,255\r
791         SETNE AL\r
792         AND AL,AL\r
793         JZ L_49\r
794         MOV EAX,DWORD PTR [EBP+8]\r
795         SHL EAX,5\r
796         MOV ESI,OFFSET _Ldrv\r
797         ADD ESI,EAX\r
798         XOR EAX,EAX\r
799         MOV AL,BYTE PTR [ESI+28]\r
800         MOV DWORD PTR [EBP-8], EAX\r
801         PUSH DWORD PTR [EBP-8]\r
802         PUSH 1\r
803         MOV EAX,DWORD PTR [EBP+8]\r
804         SHL EAX,5\r
805         MOV ESI,OFFSET _Ldrv\r
806         ADD ESI,EAX\r
807         PUSH DWORD PTR [ESI]\r
808         PUSH 1\r
809         PUSH OFFSET _abRawSector\r
810         CALL FWORD PTR _DeviceOp\r
811         MOV DWORD PTR [EBP-4], EAX\r
812         MOV EAX,DWORD PTR [EBP-4]\r
813         CMP EAX,605\r
814         SETE AL\r
815         AND AL,AL\r
816         JZ L_50\r
817         MOV EAX,DWORD PTR [EBP+8]\r
818         CMP EAX,2\r
819         SETB AL\r
820         AND AL,AL\r
821 L_50:\r
822         JZ L_51\r
823         PUSH DWORD PTR [EBP-8]\r
824         PUSH 1\r
825         MOV EAX,DWORD PTR [EBP+8]\r
826         SHL EAX,5\r
827         MOV ESI,OFFSET _Ldrv\r
828         ADD ESI,EAX\r
829         PUSH DWORD PTR [ESI]\r
830         PUSH 1\r
831         PUSH OFFSET _abRawSector\r
832         CALL FWORD PTR _DeviceOp\r
833         MOV DWORD PTR [EBP-4], EAX\r
834 L_51:\r
835         PUSH OFFSET _abRawSector\r
836         PUSH OFFSET _fsb\r
837         PUSH 62\r
838         CALL FWORD PTR _CopyData\r
839         MOV EAX,DWORD PTR [EBP-4]\r
840         CMP EAX,0\r
841         SETE AL\r
842         AND AL,AL\r
843         JZ L_52\r
844         MOV EAX,DWORD PTR [EBP+8]\r
845         SHL EAX,5\r
846         MOV ESI,OFFSET _Ldrv\r
847         ADD ESI,EAX\r
848         MOV EBX,ESI\r
849         MOV ESI,OFFSET _fsb\r
850         MOV EAX,DWORD PTR [EBP+8]\r
851         SHL EAX,5\r
852         PUSH EBX\r
853         MOV EBX,ESI\r
854         MOV ESI,OFFSET _Ldrv\r
855         ADD ESI,EAX\r
856         MOVZX EAX,WORD PTR [EBX+14]\r
857         ADD EAX,DWORD PTR [ESI]\r
858         MOV EBX,EAX\r
859         MOV ESI,OFFSET _fsb\r
860         PUSH EBX\r
861         MOV EBX,ESI\r
862         MOV ESI,OFFSET _fsb\r
863         XOR EAX,EAX\r
864         MOV AL,BYTE PTR [EBX+16]\r
865         MOVZX ECX,WORD PTR [ESI+22]\r
866         MUL ECX\r
867         POP EDX\r
868         ADD EAX,EDX\r
869         POP EDX\r
870         MOV DWORD PTR [EDX+12], EAX\r
871         MOV EAX,DWORD PTR [EBP+8]\r
872         SHL EAX,5\r
873         MOV ESI,OFFSET _Ldrv\r
874         ADD ESI,EAX\r
875         MOV EBX,ESI\r
876         MOV ESI,OFFSET _fsb\r
877         MOVZX EAX,WORD PTR [ESI+17]\r
878         MOV WORD PTR [EBX+24], AX\r
879         MOV EAX,DWORD PTR [EBP+8]\r
880         SHL EAX,5\r
881         MOV ESI,OFFSET _Ldrv\r
882         ADD ESI,EAX\r
883         MOV EBX,ESI\r
884         MOV ESI,OFFSET _fsb\r
885         XOR EAX,EAX\r
886         MOV AL,BYTE PTR [ESI+13]\r
887         MOV BYTE PTR [EBX+29], AL\r
888         MOV EAX,DWORD PTR [EBP+8]\r
889         SHL EAX,5\r
890         MOV ESI,OFFSET _Ldrv\r
891         ADD ESI,EAX\r
892         MOV EBX,ESI\r
893         MOV ESI,OFFSET _fsb\r
894         MOVZX EAX,WORD PTR [ESI+26]\r
895         MOV WORD PTR [EBX+20], AX\r
896         MOV EAX,DWORD PTR [EBP+8]\r
897         SHL EAX,5\r
898         MOV ESI,OFFSET _Ldrv\r
899         ADD ESI,EAX\r
900         MOV EBX,ESI\r
901         MOV ESI,OFFSET _fsb\r
902         MOVZX EAX,WORD PTR [ESI+24]\r
903         MOV WORD PTR [EBX+22], AX\r
904         MOV EAX,DWORD PTR [EBP+8]\r
905         SHL EAX,5\r
906         MOV ESI,OFFSET _Ldrv\r
907         ADD ESI,EAX\r
908         MOV EBX,ESI\r
909         MOV ESI,OFFSET _fsb\r
910         MOVZX EAX,WORD PTR [ESI+22]\r
911         MOV WORD PTR [EBX+26], AX\r
912         MOV EAX,DWORD PTR [EBP+8]\r
913         SHL EAX,5\r
914         MOV ESI,OFFSET _Ldrv\r
915         ADD ESI,EAX\r
916         MOV EBX,ESI\r
917         MOV ESI,OFFSET _fsb\r
918         XOR EAX,EAX\r
919         MOV AL,BYTE PTR [ESI+16]\r
920         MOV BYTE PTR [EBX+30], AL\r
921         MOV EAX,DWORD PTR [EBP+8]\r
922         SHL EAX,5\r
923         MOV ESI,OFFSET _Ldrv\r
924         ADD ESI,EAX\r
925         MOV EAX,DWORD PTR [EBP+8]\r
926         SHL EAX,5\r
927         MOV EBX,ESI\r
928         MOV ESI,OFFSET _Ldrv\r
929         ADD ESI,EAX\r
930         PUSH EBX\r
931         MOV EBX,ESI\r
932         MOV ESI,OFFSET _fsb\r
933         MOV EAX,DWORD PTR [EBX]\r
934         MOVZX ECX,WORD PTR [ESI+14]\r
935         ADD EAX,ECX\r
936         POP EDX\r
937         MOV DWORD PTR [EDX+16], EAX\r
938         MOV EAX,DWORD PTR [EBP+8]\r
939         SHL EAX,5\r
940         MOV ESI,OFFSET _Ldrv\r
941         ADD ESI,EAX\r
942         MOV EAX,DWORD PTR [EBP+8]\r
943         SHL EAX,5\r
944         MOV EBX,ESI\r
945         MOV ESI,OFFSET _Ldrv\r
946         ADD ESI,EAX\r
947         PUSH EBX\r
948         MOV EBX,ESI\r
949         MOV ESI,OFFSET _fsb\r
950         MOVZX EAX,WORD PTR [ESI+17]\r
951         MOV ECX,16\r
952         XOR EDX,EDX\r
953         DIV ECX\r
954         ADD EAX,DWORD PTR [EBX+12]\r
955         POP EDX\r
956         MOV DWORD PTR [EDX+4], EAX\r
957         MOV ESI,OFFSET _fsb\r
958         MOV EAX,4\r
959         ADD ESI,EAX\r
960         XOR EAX,EAX\r
961         MOV AL,BYTE PTR [ESI+54]\r
962         CMP EAX,50\r
963         SETE AL\r
964         AND AL,AL\r
965         JZ L_53\r
966         MOV EAX,DWORD PTR [EBP+8]\r
967         SHL EAX,5\r
968         MOV ESI,OFFSET _Ldrv\r
969         ADD ESI,EAX\r
970         XOR EAX,EAX\r
971         MOV BYTE PTR [ESI+31], AL\r
972 L_53:\r
973 L_52:\r
974 L_49:\r
975         XOR EAX,EAX\r
976         MOV ESP,EBP\r
977         POP EBP\r
978         RETN 4\r
979 _GetFATTime:\r
980         PUSH EBP\r
981         MOV EBP,ESP\r
982         SUB ESP,14\r
983         LEA EAX,DWORD PTR [EBP-4]\r
984         PUSH EAX\r
985         CALL FWORD PTR _GetCMOSDate\r
986         LEA EAX,DWORD PTR [EBP-8]\r
987         PUSH EAX\r
988         CALL FWORD PTR _GetCMOSTime\r
989         MOV EAX,DWORD PTR [EBP-4]\r
990         MOV ECX,12\r
991         SHR EAX,CL\r
992         AND EAX,15\r
993         MOV ECX,10\r
994         MUL ECX\r
995         MOV EBX,EAX\r
996         MOV EAX,DWORD PTR [EBP-4]\r
997         MOV ECX,8\r
998         SHR EAX,CL\r
999         AND EAX,15\r
1000         ADD EAX,EBX\r
1001         MOV WORD PTR [EBP-10], AX\r
1002         MOV EAX,DWORD PTR [EBP-4]\r
1003         MOV ECX,20\r
1004         SHR EAX,CL\r
1005         AND EAX,15\r
1006         MOV ECX,10\r
1007         MUL ECX\r
1008         MOV EBX,EAX\r
1009         MOV EAX,DWORD PTR [EBP-4]\r
1010         MOV ECX,16\r
1011         SHR EAX,CL\r
1012         AND EAX,15\r
1013         ADD EAX,EBX\r
1014         ADD EAX,2\r
1015         MOV WORD PTR [EBP-14], AX\r
1016         MOVZX EAX,WORD PTR [EBP-14]\r
1017         MOV ECX,4\r
1018         SHL EAX,CL\r
1019         AND EAX,0FFFFh\r
1020         MOVZX ECX,WORD PTR [EBP-10]\r
1021         OR EAX,ECX\r
1022         MOV WORD PTR [EBP-10], AX\r
1023         MOV EAX,DWORD PTR [EBP-4]\r
1024         MOV ECX,28\r
1025         SHR EAX,CL\r
1026         AND EAX,15\r
1027         MOV ECX,10\r
1028         MUL ECX\r
1029         MOV EBX,EAX\r
1030         MOV EAX,DWORD PTR [EBP-4]\r
1031         MOV ECX,24\r
1032         SHR EAX,CL\r
1033         AND EAX,15\r
1034         ADD EAX,EBX\r
1035         MOV WORD PTR [EBP-14], AX\r
1036         MOVZX EAX,WORD PTR [EBP-14]\r
1037         MOV ECX,1900\r
1038         ADD EAX,ECX\r
1039         MOV ECX,1980\r
1040         SUB EAX,ECX\r
1041         MOV ECX,9\r
1042         SHL EAX,CL\r
1043         AND EAX,0FFFFh\r
1044         MOVZX ECX,WORD PTR [EBP-10]\r
1045         OR EAX,ECX\r
1046         MOV WORD PTR [EBP-10], AX\r
1047         MOV EAX,DWORD PTR [EBP-8]\r
1048         MOV ECX,4\r
1049         SHR EAX,CL\r
1050         AND EAX,15\r
1051         MOV ECX,10\r
1052         MUL ECX\r
1053         MOV EBX,EAX\r
1054         MOV EAX,DWORD PTR [EBP-8]\r
1055         AND EAX,15\r
1056         ADD EAX,EBX\r
1057         MOV ECX,2\r
1058         XOR EDX,EDX\r
1059         DIV ECX\r
1060         MOV WORD PTR [EBP-12], AX\r
1061         MOV EAX,DWORD PTR [EBP-8]\r
1062         MOV ECX,12\r
1063         SHR EAX,CL\r
1064         AND EAX,15\r
1065         MOV ECX,10\r
1066         MUL ECX\r
1067         MOV EBX,EAX\r
1068         MOV EAX,DWORD PTR [EBP-8]\r
1069         MOV ECX,8\r
1070         SHR EAX,CL\r
1071         AND EAX,15\r
1072         ADD EAX,EBX\r
1073         MOV WORD PTR [EBP-14], AX\r
1074         MOVZX EAX,WORD PTR [EBP-14]\r
1075         MOV ECX,5\r
1076         SHL EAX,CL\r
1077         AND EAX,0FFFFh\r
1078         MOVZX ECX,WORD PTR [EBP-12]\r
1079         OR EAX,ECX\r
1080         MOV WORD PTR [EBP-12], AX\r
1081         MOV EAX,DWORD PTR [EBP-8]\r
1082         MOV ECX,20\r
1083         SHR EAX,CL\r
1084         AND EAX,15\r
1085         MOV ECX,10\r
1086         MUL ECX\r
1087         MOV EBX,EAX\r
1088         MOV EAX,DWORD PTR [EBP-8]\r
1089         MOV ECX,16\r
1090         SHR EAX,CL\r
1091         AND EAX,15\r
1092         ADD EAX,EBX\r
1093         MOV WORD PTR [EBP-14], AX\r
1094         MOVZX EAX,WORD PTR [EBP-14]\r
1095         MOV ECX,11\r
1096         SHL EAX,CL\r
1097         AND EAX,0FFFFh\r
1098         MOVZX ECX,WORD PTR [EBP-12]\r
1099         OR EAX,ECX\r
1100         MOV WORD PTR [EBP-12], AX\r
1101         MOV ESI,DWORD PTR [EBP+12]\r
1102         MOVZX EAX,WORD PTR [EBP-12]\r
1103         MOV WORD PTR [ESI], AX\r
1104         MOV ESI,DWORD PTR [EBP+8]\r
1105         MOVZX EAX,WORD PTR [EBP-10]\r
1106         MOV WORD PTR [ESI], AX\r
1107         MOV ESP,EBP\r
1108         POP EBP\r
1109         RETN 8\r
1110 _UpdateDirEnt:\r
1111         PUSH EBP\r
1112         MOV EBP,ESP\r
1113         SUB ESP,13\r
1114         MOV EAX,DWORD PTR [EBP+8]\r
1115         MOV ECX,64\r
1116         MUL ECX\r
1117         MOV ESI,_paFCB\r
1118         ADD ESI,EAX\r
1119         XOR EAX,EAX\r
1120         MOV AL,BYTE PTR [ESI+38]\r
1121         MOV BYTE PTR [EBP-13], AL\r
1122         MOV EAX,DWORD PTR [EBP+8]\r
1123         MOV ECX,64\r
1124         MUL ECX\r
1125         MOV ESI,_paFCB\r
1126         ADD ESI,EAX\r
1127         MOV EAX,DWORD PTR [ESI+32]\r
1128         MOV DWORD PTR [EBP-8], EAX\r
1129         MOV EAX,DWORD PTR [EBP+8]\r
1130         MOV ECX,64\r
1131         MUL ECX\r
1132         MOV ESI,_paFCB\r
1133         ADD ESI,EAX\r
1134         MOVZX EAX,WORD PTR [ESI+36]\r
1135         MOV DWORD PTR [EBP-12], EAX\r
1136         MOV EAX,DWORD PTR [EBP+8]\r
1137         MOV ECX,64\r
1138         MUL ECX\r
1139         MOV ESI,_paFCB\r
1140         ADD ESI,EAX\r
1141         MOV EAX,ESI\r
1142         ADD EAX,22\r
1143         PUSH EAX\r
1144         MOV EAX,DWORD PTR [EBP+8]\r
1145         MOV ECX,64\r
1146         MUL ECX\r
1147         MOV ESI,_paFCB\r
1148         ADD ESI,EAX\r
1149         MOV EAX,ESI\r
1150         ADD EAX,24\r
1151         PUSH EAX\r
1152         CALL _GetFATTime\r
1153         XOR EAX,EAX\r
1154         MOV AL,BYTE PTR [EBP-13]\r
1155         SHL EAX,5\r
1156         MOV ESI,OFFSET _Ldrv\r
1157         ADD ESI,EAX\r
1158         XOR EAX,EAX\r
1159         MOV AL,BYTE PTR [ESI+28]\r
1160         PUSH EAX\r
1161         PUSH 1\r
1162         PUSH DWORD PTR [EBP-8]\r
1163         PUSH 1\r
1164         PUSH OFFSET _abDirSectBuf\r
1165         CALL FWORD PTR _DeviceOp\r
1166         MOV DWORD PTR [EBP-4], EAX\r
1167         MOV EAX,DWORD PTR [EBP-4]\r
1168         AND EAX,EAX\r
1169         JNZ L_55\r
1170         MOV EAX,DWORD PTR [EBP+8]\r
1171         MOV ECX,64\r
1172         MUL ECX\r
1173         MOV ESI,_paFCB\r
1174         ADD ESI,EAX\r
1175         PUSH ESI\r
1176         MOV EAX,DWORD PTR [EBP-12]\r
1177         MOV ESI,OFFSET _abDirSectBuf\r
1178         ADD ESI,EAX\r
1179         PUSH ESI\r
1180         PUSH 32\r
1181         CALL FWORD PTR _CopyData\r
1182         XOR EAX,EAX\r
1183         MOV AL,BYTE PTR [EBP-13]\r
1184         SHL EAX,5\r
1185         MOV ESI,OFFSET _Ldrv\r
1186         ADD ESI,EAX\r
1187         XOR EAX,EAX\r
1188         MOV AL,BYTE PTR [ESI+28]\r
1189         PUSH EAX\r
1190         PUSH 2\r
1191         PUSH DWORD PTR [EBP-8]\r
1192         PUSH 1\r
1193         PUSH OFFSET _abDirSectBuf\r
1194         CALL FWORD PTR _DeviceOp\r
1195         MOV DWORD PTR [EBP-4], EAX\r
1196 L_55:\r
1197         MOV EAX,DWORD PTR [EBP-4]\r
1198         MOV ESP,EBP\r
1199         POP EBP\r
1200         RETN 4\r
1201 _ValidateHandle:\r
1202         PUSH EBP\r
1203         MOV EBP,ESP\r
1204         MOV EAX,DWORD PTR [EBP+12]\r
1205         CMP EAX,4\r
1206         SETB AL\r
1207         AND AL,AL\r
1208         JZ L_57\r
1209         MOV EAX,210\r
1210         JMP L_58\r
1211 L_57:\r
1212         MOV EAX,DWORD PTR [EBP+12]\r
1213         CMP EAX,128\r
1214         SETAE AL\r
1215         AND AL,AL\r
1216         JZ L_59\r
1217         MOV EAX,210\r
1218         JMP L_58\r
1219 L_59:\r
1220         MOV EAX,DWORD PTR [EBP+12]\r
1221         SHL EAX,5\r
1222         MOV ESI,_paFUB\r
1223         ADD ESI,EAX\r
1224         MOVZX EAX,WORD PTR [ESI]\r
1225         AND EAX,EAX\r
1226         JNZ L_60\r
1227         MOV EAX,210\r
1228         JMP L_58\r
1229 L_60:\r
1230         MOV ESI,DWORD PTR [EBP+8]\r
1231         MOV EAX,DWORD PTR [EBP+12]\r
1232         SHL EAX,5\r
1233         MOV EBX,ESI\r
1234         MOV ESI,_paFUB\r
1235         ADD ESI,EAX\r
1236         MOVZX EAX,WORD PTR [ESI+2]\r
1237         MOV DWORD PTR [EBX], EAX\r
1238         XOR EAX,EAX\r
1239 L_58:\r
1240         POP EBP\r
1241         RETN 8\r
1242 _ClsToLBA:\r
1243         PUSH EBP\r
1244         MOV EBP,ESP\r
1245         SUB ESP,4\r
1246         MOVZX EAX,WORD PTR [EBP+12]\r
1247         MOV ECX,2\r
1248         SUB EAX,ECX\r
1249         MOV WORD PTR [EBP+12], AX\r
1250         XOR EAX,EAX\r
1251         MOV AL,BYTE PTR [EBP+8]\r
1252         SHL EAX,5\r
1253         MOV ESI,OFFSET _Ldrv\r
1254         ADD ESI,EAX\r
1255         XOR EAX,EAX\r
1256         MOV AL,BYTE PTR [ESI+29]\r
1257         MOVZX ECX,WORD PTR [EBP+12]\r
1258         MUL ECX\r
1259         MOV DWORD PTR [EBP-4], EAX\r
1260         XOR EAX,EAX\r
1261         MOV AL,BYTE PTR [EBP+8]\r
1262         SHL EAX,5\r
1263         MOV ESI,OFFSET _Ldrv\r
1264         ADD ESI,EAX\r
1265         MOV EAX,DWORD PTR [EBP-4]\r
1266         ADD EAX,DWORD PTR [ESI+4]\r
1267         MOV DWORD PTR [EBP-4], EAX\r
1268         MOV EAX,DWORD PTR [EBP-4]\r
1269         MOV ESP,EBP\r
1270         POP EBP\r
1271         RETN 8\r
1272 _UpdateFAT:\r
1273         PUSH EBP\r
1274         MOV EBP,ESP\r
1275         SUB ESP,13\r
1276         XOR EAX,EAX\r
1277         MOV DWORD PTR [EBP-4], EAX\r
1278         MOV EAX,DWORD PTR [EBP+8]\r
1279         SHL EAX,4\r
1280         MOV ESI,OFFSET _Fat\r
1281         ADD ESI,EAX\r
1282         XOR EAX,EAX\r
1283         MOV AL,BYTE PTR [ESI+15]\r
1284         MOV ECX,1\r
1285         AND EAX,ECX\r
1286         JZ L_62\r
1287         MOV EAX,DWORD PTR [EBP+8]\r
1288         SHL EAX,4\r
1289         MOV ESI,OFFSET _Fat\r
1290         ADD ESI,EAX\r
1291         XOR EAX,EAX\r
1292         MOV AL,BYTE PTR [ESI+14]\r
1293         MOV BYTE PTR [EBP-13], AL\r
1294         MOV EAX,DWORD PTR [EBP+8]\r
1295         SHL EAX,4\r
1296         MOV ESI,OFFSET _Fat\r
1297         ADD ESI,EAX\r
1298         MOV EAX,DWORD PTR [ESI+8]\r
1299         MOV DWORD PTR [EBP-8], EAX\r
1300         MOV EAX,DWORD PTR [EBP+8]\r
1301         AND EAX,EAX\r
1302         JNZ L_63\r
1303         MOV EAX,DWORD PTR [EBP-8]\r
1304         ADD EAX,2\r
1305         MOV EBX,EAX\r
1306         XOR EAX,EAX\r
1307         MOV AL,BYTE PTR [EBP-13]\r
1308         SHL EAX,5\r
1309         MOV ESI,OFFSET _Ldrv\r
1310         ADD ESI,EAX\r
1311         XOR EAX,EAX\r
1312         MOV AL,BYTE PTR [EBP-13]\r
1313         SHL EAX,5\r
1314         PUSH EBX\r
1315         MOV EBX,ESI\r
1316         MOV ESI,OFFSET _Ldrv\r
1317         ADD ESI,EAX\r
1318         MOVZX EAX,WORD PTR [EBX+26]\r
1319         ADD EAX,DWORD PTR [ESI+16]\r
1320         POP EDX\r
1321         CMP EAX,EDX\r
1322         SETA AL\r
1323         AND AL,AL\r
1324         JZ L_64\r
1325         MOV EAX,3\r
1326         MOV DWORD PTR [EBP-12], EAX\r
1327         JMP L_65\r
1328 L_64:\r
1329         MOV EAX,DWORD PTR [EBP-8]\r
1330         ADD EAX,1\r
1331         MOV EBX,EAX\r
1332         XOR EAX,EAX\r
1333         MOV AL,BYTE PTR [EBP-13]\r
1334         SHL EAX,5\r
1335         MOV ESI,OFFSET _Ldrv\r
1336         ADD ESI,EAX\r
1337         XOR EAX,EAX\r
1338         MOV AL,BYTE PTR [EBP-13]\r
1339         SHL EAX,5\r
1340         PUSH EBX\r
1341         MOV EBX,ESI\r
1342         MOV ESI,OFFSET _Ldrv\r
1343         ADD ESI,EAX\r
1344         MOVZX EAX,WORD PTR [EBX+26]\r
1345         ADD EAX,DWORD PTR [ESI+16]\r
1346         POP EDX\r
1347         CMP EAX,EDX\r
1348         SETA AL\r
1349         AND AL,AL\r
1350         JZ L_66\r
1351         MOV EAX,2\r
1352         MOV DWORD PTR [EBP-12], EAX\r
1353         JMP L_67\r
1354 L_66:\r
1355         MOV EAX,1\r
1356         MOV DWORD PTR [EBP-12], EAX\r
1357 L_67:\r
1358 L_65:\r
1359         JMP L_68\r
1360 L_63:\r
1361         MOV EAX,1\r
1362         MOV DWORD PTR [EBP-12], EAX\r
1363 L_68:\r
1364         XOR EAX,EAX\r
1365         MOV AL,BYTE PTR [EBP-13]\r
1366         SHL EAX,5\r
1367         MOV ESI,OFFSET _Ldrv\r
1368         ADD ESI,EAX\r
1369         XOR EAX,EAX\r
1370         MOV AL,BYTE PTR [ESI+28]\r
1371         PUSH EAX\r
1372         PUSH 2\r
1373         PUSH DWORD PTR [EBP-8]\r
1374         PUSH DWORD PTR [EBP-12]\r
1375         MOV EAX,DWORD PTR [EBP+8]\r
1376         SHL EAX,4\r
1377         MOV ESI,OFFSET _Fat\r
1378         ADD ESI,EAX\r
1379         PUSH DWORD PTR [ESI]\r
1380         CALL FWORD PTR _DeviceOp\r
1381         MOV DWORD PTR [EBP-4], EAX\r
1382         MOV EAX,DWORD PTR [EBP-4]\r
1383         AND EAX,EAX\r
1384         JNZ L_69\r
1385         MOV EAX,DWORD PTR [EBP+8]\r
1386         SHL EAX,4\r
1387         MOV ESI,OFFSET _Fat\r
1388         ADD ESI,EAX\r
1389         XOR EAX,EAX\r
1390         MOV AL,BYTE PTR [ESI+15]\r
1391         MOV ECX,-2\r
1392         AND EAX,ECX\r
1393         MOV BYTE PTR [ESI+15], AL\r
1394         XOR EAX,EAX\r
1395         MOV AL,BYTE PTR [EBP-13]\r
1396         SHL EAX,5\r
1397         MOV ESI,OFFSET _Ldrv\r
1398         ADD ESI,EAX\r
1399         XOR EAX,EAX\r
1400         MOV AL,BYTE PTR [ESI+30]\r
1401         CMP EAX,1\r
1402         SETA AL\r
1403         AND AL,AL\r
1404         JZ L_70\r
1405         XOR EAX,EAX\r
1406         MOV AL,BYTE PTR [EBP-13]\r
1407         SHL EAX,5\r
1408         MOV ESI,OFFSET _Ldrv\r
1409         ADD ESI,EAX\r
1410         MOV EAX,DWORD PTR [EBP-8]\r
1411         MOVZX ECX,WORD PTR [ESI+26]\r
1412         ADD EAX,ECX\r
1413         MOV DWORD PTR [EBP-8], EAX\r
1414         XOR EAX,EAX\r
1415         MOV AL,BYTE PTR [EBP-13]\r
1416         SHL EAX,5\r
1417         MOV ESI,OFFSET _Ldrv\r
1418         ADD ESI,EAX\r
1419         XOR EAX,EAX\r
1420         MOV AL,BYTE PTR [ESI+28]\r
1421         PUSH EAX\r
1422         PUSH 2\r
1423         PUSH DWORD PTR [EBP-8]\r
1424         PUSH DWORD PTR [EBP-12]\r
1425         MOV EAX,DWORD PTR [EBP+8]\r
1426         SHL EAX,4\r
1427         MOV ESI,OFFSET _Fat\r
1428         ADD ESI,EAX\r
1429         PUSH DWORD PTR [ESI]\r
1430         CALL FWORD PTR _DeviceOp\r
1431         MOV DWORD PTR [EBP-4], EAX\r
1432 L_70:\r
1433 L_69:\r
1434 L_62:\r
1435         MOV EAX,DWORD PTR [EBP-4]\r
1436         MOV ESP,EBP\r
1437         POP EBP\r
1438         RETN 4\r
1439 _FindFatSect:\r
1440         PUSH EBP\r
1441         MOV EBP,ESP\r
1442         SUB ESP,42\r
1443         XOR EAX,EAX\r
1444         MOV AL,BYTE PTR [EBP+20]\r
1445         SHL EAX,5\r
1446         MOV ESI,OFFSET _Ldrv\r
1447         ADD ESI,EAX\r
1448         XOR EAX,EAX\r
1449         MOV AL,BYTE PTR [ESI+31]\r
1450         AND EAX,EAX\r
1451         JZ L_72\r
1452         MOV EAX,65528\r
1453         MOV WORD PTR [EBP-42], AX\r
1454         JMP L_73\r
1455 L_72:\r
1456         MOV EAX,4088\r
1457         MOV WORD PTR [EBP-42], AX\r
1458 L_73:\r
1459         MOVZX EAX,WORD PTR [EBP+16]\r
1460         MOVZX ECX,WORD PTR [EBP-42]\r
1461         CMP EAX,ECX\r
1462         SETAE AL\r
1463         AND AL,AL\r
1464         JZ L_74\r
1465         MOV EAX,1\r
1466         JMP L_75\r
1467 L_74:\r
1468         MOVZX EAX,WORD PTR [EBP+16]\r
1469         CMP EAX,2\r
1470         SETB AL\r
1471         AND AL,AL\r
1472         JZ L_76\r
1473         MOV EAX,220\r
1474         JMP L_75\r
1475 L_76:\r
1476         LEA EAX,DWORD PTR [EBP-40]\r
1477         PUSH EAX\r
1478         CALL FWORD PTR _GetTimerTick\r
1479         XOR EAX,EAX\r
1480         MOV DWORD PTR [EBP-24], EAX\r
1481         XOR EAX,EAX\r
1482         MOV AL,BYTE PTR [EBP+20]\r
1483         SHL EAX,5\r
1484         MOV ESI,OFFSET _Ldrv\r
1485         ADD ESI,EAX\r
1486         XOR EAX,EAX\r
1487         MOV AL,BYTE PTR [ESI+31]\r
1488         AND EAX,EAX\r
1489         JZ L_77\r
1490         MOVZX EAX,WORD PTR [EBP+16]\r
1491         MOV ECX,256\r
1492         XOR EDX,EDX\r
1493         DIV ECX\r
1494         MOV DWORD PTR [EBP-20], EAX\r
1495         MOVZX EAX,WORD PTR [EBP+16]\r
1496         MOV ECX,256\r
1497         XOR EDX,EDX\r
1498         DIV ECX\r
1499         MOV ECX,EDX\r
1500         MOVZX EAX,WORD PTR [EBP+16]\r
1501         SUB EAX,ECX\r
1502         MOV DWORD PTR [EBP-16], EAX\r
1503         XOR EAX,EAX\r
1504         MOV AL,BYTE PTR [EBP+20]\r
1505         SHL EAX,5\r
1506         MOV ESI,OFFSET _Ldrv\r
1507         ADD ESI,EAX\r
1508         MOV EAX,DWORD PTR [EBP-20]\r
1509         ADD EAX,DWORD PTR [ESI+16]\r
1510         MOV DWORD PTR [EBP-4], EAX\r
1511         XOR EAX,EAX\r
1512         MOV AL,BYTE PTR [EBP+20]\r
1513         SHL EAX,5\r
1514         MOV ESI,OFFSET _Ldrv\r
1515         ADD ESI,EAX\r
1516         XOR EAX,EAX\r
1517         MOV AL,BYTE PTR [EBP+20]\r
1518         SHL EAX,5\r
1519         MOV EBX,ESI\r
1520         MOV ESI,OFFSET _Ldrv\r
1521         ADD ESI,EAX\r
1522         MOVZX EAX,WORD PTR [EBX+26]\r
1523         ADD EAX,DWORD PTR [ESI+16]\r
1524         CMP EAX,DWORD PTR [EBP-4]\r
1525         SETBE AL\r
1526         AND AL,AL\r
1527         JZ L_78\r
1528         MOV EAX,220\r
1529         JMP L_75\r
1530 L_78:\r
1531         MOV EAX,-1\r
1532         MOV DWORD PTR [EBP-36], EAX\r
1533         MOV EAX,-1\r
1534         MOV DWORD PTR [EBP-28], EAX\r
1535         MOV EAX,1\r
1536         MOV DWORD PTR [EBP-32], EAX\r
1537         MOV EAX,1\r
1538         MOV DWORD PTR [EBP-8], EAX\r
1539 L_80:\r
1540         MOV EAX,DWORD PTR [EBP-8]\r
1541         CMP EAX,17\r
1542         SETB AL\r
1543         AND AL,AL\r
1544         JZ L_81\r
1545         JMP SHORT L_82\r
1546 L_83:\r
1547         MOV EAX,DWORD PTR [EBP-8]\r
1548         INC DWORD PTR [EBP-8]\r
1549         JMP SHORT L_80\r
1550 L_82:\r
1551         MOV EAX,DWORD PTR [EBP-8]\r
1552         SHL EAX,4\r
1553         MOV ESI,OFFSET _Fat\r
1554         ADD ESI,EAX\r
1555         MOV EAX,DWORD PTR [ESI+4]\r
1556         CMP EAX,0\r
1557         SETA AL\r
1558         AND AL,AL\r
1559         JZ L_84\r
1560         MOV EAX,DWORD PTR [EBP-8]\r
1561         SHL EAX,4\r
1562         MOV ESI,OFFSET _Fat\r
1563         ADD ESI,EAX\r
1564         MOV EAX,DWORD PTR [EBP-16]\r
1565         MOVZX ECX,WORD PTR [ESI+12]\r
1566         CMP EAX,ECX\r
1567         SETE AL\r
1568         AND AL,AL\r
1569         JZ L_85\r
1570         MOV EAX,DWORD PTR [EBP-8]\r
1571         SHL EAX,4\r
1572         MOV ESI,OFFSET _Fat\r
1573         ADD ESI,EAX\r
1574         XOR EAX,EAX\r
1575         MOV AL,BYTE PTR [EBP+20]\r
1576         XOR ECX,ECX\r
1577         MOV CL,BYTE PTR [ESI+14]\r
1578         CMP EAX,ECX\r
1579         SETE AL\r
1580         AND AL,AL\r
1581 L_85:\r
1582         JZ L_86\r
1583         MOV EAX,DWORD PTR [EBP-8]\r
1584         MOV DWORD PTR [EBP-36], EAX\r
1585         XOR EAX,EAX\r
1586         MOV AL,BYTE PTR [EBP+8]\r
1587         AND EAX,EAX\r
1588         JZ L_87\r
1589         MOV EAX,DWORD PTR [EBP-8]\r
1590         SHL EAX,4\r
1591         MOV ESI,OFFSET _Fat\r
1592         ADD ESI,EAX\r
1593         XOR EAX,EAX\r
1594         MOV AL,BYTE PTR [ESI+15]\r
1595         MOV ECX,2\r
1596         OR EAX,ECX\r
1597         MOV BYTE PTR [ESI+15], AL\r
1598 L_87:\r
1599         JMP L_81\r
1600 L_86:\r
1601 L_84:\r
1602         MOV EAX,DWORD PTR [EBP-8]\r
1603         SHL EAX,4\r
1604         MOV ESI,OFFSET _Fat\r
1605         ADD ESI,EAX\r
1606         MOV EAX,DWORD PTR [ESI+4]\r
1607         CMP EAX,DWORD PTR [EBP-28]\r
1608         SETB AL\r
1609         AND AL,AL\r
1610         JZ L_88\r
1611         MOV EAX,DWORD PTR [EBP-8]\r
1612         SHL EAX,4\r
1613         MOV ESI,OFFSET _Fat\r
1614         ADD ESI,EAX\r
1615         MOV EAX,DWORD PTR [ESI+4]\r
1616         MOV DWORD PTR [EBP-28], EAX\r
1617         MOV EAX,DWORD PTR [EBP-8]\r
1618         MOV DWORD PTR [EBP-32], EAX\r
1619 L_88:\r
1620         JMP L_83\r
1621 L_81:\r
1622         MOV EAX,DWORD PTR [EBP-36]\r
1623         CMP EAX,-1\r
1624         SETNE AL\r
1625         AND AL,AL\r
1626         JZ L_89\r
1627         MOV EAX,DWORD PTR [EBP-8]\r
1628         SHL EAX,4\r
1629         MOV ESI,OFFSET _Fat\r
1630         ADD ESI,EAX\r
1631         MOV EAX,DWORD PTR [EBP-40]\r
1632         MOV DWORD PTR [ESI+4], EAX\r
1633         JMP L_90\r
1634 L_89:\r
1635         MOV EAX,DWORD PTR [EBP-32]\r
1636         MOV DWORD PTR [EBP-8], EAX\r
1637         MOV EAX,DWORD PTR [EBP-8]\r
1638         SHL EAX,4\r
1639         MOV ESI,OFFSET _Fat\r
1640         ADD ESI,EAX\r
1641         XOR EAX,EAX\r
1642         MOV AL,BYTE PTR [ESI+15]\r
1643         MOV ECX,1\r
1644         AND EAX,ECX\r
1645         JZ L_91\r
1646         PUSH DWORD PTR [EBP-8]\r
1647         CALL _UpdateFAT\r
1648         MOV DWORD PTR [EBP-24], EAX\r
1649 L_91:\r
1650         MOV EAX,DWORD PTR [EBP-24]\r
1651         AND EAX,EAX\r
1652         JNZ L_92\r
1653         XOR EAX,EAX\r
1654         MOV AL,BYTE PTR [EBP+20]\r
1655         SHL EAX,5\r
1656         MOV ESI,OFFSET _Ldrv\r
1657         ADD ESI,EAX\r
1658         XOR EAX,EAX\r
1659         MOV AL,BYTE PTR [ESI+28]\r
1660         PUSH EAX\r
1661         PUSH 1\r
1662         PUSH DWORD PTR [EBP-4]\r
1663         PUSH 1\r
1664         MOV EAX,DWORD PTR [EBP-8]\r
1665         SHL EAX,4\r
1666         MOV ESI,OFFSET _Fat\r
1667         ADD ESI,EAX\r
1668         PUSH DWORD PTR [ESI]\r
1669         CALL FWORD PTR _DeviceOp\r
1670         MOV DWORD PTR [EBP-24], EAX\r
1671         MOV EAX,DWORD PTR [EBP-8]\r
1672         SHL EAX,4\r
1673         MOV ESI,OFFSET _Fat\r
1674         ADD ESI,EAX\r
1675         XOR EAX,EAX\r
1676         MOV AL,BYTE PTR [EBP+20]\r
1677         MOV BYTE PTR [ESI+14], AL\r
1678         MOV EAX,DWORD PTR [EBP-8]\r
1679         SHL EAX,4\r
1680         MOV ESI,OFFSET _Fat\r
1681         ADD ESI,EAX\r
1682         MOV EAX,DWORD PTR [EBP-40]\r
1683         MOV DWORD PTR [ESI+4], EAX\r
1684         MOV EAX,DWORD PTR [EBP-8]\r
1685         SHL EAX,4\r
1686         MOV ESI,OFFSET _Fat\r
1687         ADD ESI,EAX\r
1688         MOV EAX,DWORD PTR [EBP-16]\r
1689         MOV WORD PTR [ESI+12], AX\r
1690         MOV EAX,DWORD PTR [EBP-8]\r
1691         SHL EAX,4\r
1692         MOV ESI,OFFSET _Fat\r
1693         ADD ESI,EAX\r
1694         MOV EAX,DWORD PTR [EBP-4]\r
1695         MOV DWORD PTR [ESI+8], EAX\r
1696 L_92:\r
1697 L_90:\r
1698 L_79:\r
1699         JMP L_93\r
1700 L_77:\r
1701         MOVZX EAX,WORD PTR [EBP+16]\r
1702         MOV ECX,1024\r
1703         XOR EDX,EDX\r
1704         DIV ECX\r
1705         MOV ECX,3\r
1706         MUL ECX\r
1707         MOV DWORD PTR [EBP-20], EAX\r
1708         MOVZX EAX,WORD PTR [EBP+16]\r
1709         MOV ECX,1024\r
1710         XOR EDX,EDX\r
1711         DIV ECX\r
1712         MOV ECX,EDX\r
1713         MOVZX EAX,WORD PTR [EBP+16]\r
1714         SUB EAX,ECX\r
1715         MOV DWORD PTR [EBP-16], EAX\r
1716         XOR EAX,EAX\r
1717         MOV AL,BYTE PTR [EBP+20]\r
1718         SHL EAX,5\r
1719         MOV ESI,OFFSET _Ldrv\r
1720         ADD ESI,EAX\r
1721         MOV EAX,DWORD PTR [EBP-20]\r
1722         ADD EAX,DWORD PTR [ESI+16]\r
1723         MOV DWORD PTR [EBP-4], EAX\r
1724         XOR EAX,EAX\r
1725         MOV DWORD PTR [EBP-8], EAX\r
1726         XOR EAX,EAX\r
1727         MOV AL,BYTE PTR [EBP+20]\r
1728         SHL EAX,5\r
1729         MOV ESI,OFFSET _Ldrv\r
1730         ADD ESI,EAX\r
1731         MOV EAX,DWORD PTR [EBP-4]\r
1732         MOVZX ECX,WORD PTR [ESI+26]\r
1733         CMP EAX,ECX\r
1734         SETAE AL\r
1735         AND AL,AL\r
1736         JZ L_94\r
1737         MOV EAX,220\r
1738         JMP L_75\r
1739 L_94:\r
1740         MOV EAX,-1\r
1741         MOV DWORD PTR [EBP-36], EAX\r
1742         MOV ESI,OFFSET _Fat\r
1743         MOV EAX,DWORD PTR [ESI+4]\r
1744         CMP EAX,0\r
1745         SETA AL\r
1746         AND AL,AL\r
1747         JZ L_96\r
1748         MOV ESI,OFFSET _Fat\r
1749         MOV EAX,DWORD PTR [EBP-16]\r
1750         MOVZX ECX,WORD PTR [ESI+12]\r
1751         CMP EAX,ECX\r
1752         SETE AL\r
1753         AND AL,AL\r
1754         JZ L_97\r
1755         MOV ESI,OFFSET _Fat\r
1756         XOR EAX,EAX\r
1757         MOV AL,BYTE PTR [EBP+20]\r
1758         XOR ECX,ECX\r
1759         MOV CL,BYTE PTR [ESI+14]\r
1760         CMP EAX,ECX\r
1761         SETE AL\r
1762         AND AL,AL\r
1763 L_97:\r
1764         JZ L_98\r
1765         XOR EAX,EAX\r
1766         MOV DWORD PTR [EBP-36], EAX\r
1767         XOR EAX,EAX\r
1768         MOV AL,BYTE PTR [EBP+8]\r
1769         AND EAX,EAX\r
1770         JZ L_99\r
1771         MOV ESI,OFFSET _Fat\r
1772         XOR EAX,EAX\r
1773         MOV AL,BYTE PTR [ESI+15]\r
1774         MOV ECX,2\r
1775         OR EAX,ECX\r
1776         MOV BYTE PTR [ESI+15], AL\r
1777 L_99:\r
1778 L_98:\r
1779 L_96:\r
1780         MOV EAX,DWORD PTR [EBP-36]\r
1781         CMP EAX,-1\r
1782         SETE AL\r
1783         AND AL,AL\r
1784         JZ L_100\r
1785         MOV ESI,OFFSET _Fat\r
1786         XOR EAX,EAX\r
1787         MOV AL,BYTE PTR [ESI+15]\r
1788         MOV ECX,1\r
1789         AND EAX,ECX\r
1790         JZ L_101\r
1791         XOR EAX,EAX\r
1792         PUSH EAX\r
1793         CALL _UpdateFAT\r
1794         MOV DWORD PTR [EBP-24], EAX\r
1795 L_101:\r
1796         MOV EAX,DWORD PTR [EBP-4]\r
1797         ADD EAX,2\r
1798         MOV EBX,EAX\r
1799         XOR EAX,EAX\r
1800         MOV AL,BYTE PTR [EBP+20]\r
1801         SHL EAX,5\r
1802         MOV ESI,OFFSET _Ldrv\r
1803         ADD ESI,EAX\r
1804         XOR EAX,EAX\r
1805         MOV AL,BYTE PTR [EBP+20]\r
1806         SHL EAX,5\r
1807         PUSH EBX\r
1808         MOV EBX,ESI\r
1809         MOV ESI,OFFSET _Ldrv\r
1810         ADD ESI,EAX\r
1811         MOVZX EAX,WORD PTR [EBX+26]\r
1812         ADD EAX,DWORD PTR [ESI+16]\r
1813         POP EDX\r
1814         CMP EAX,EDX\r
1815         SETA AL\r
1816         AND AL,AL\r
1817         JZ L_102\r
1818         MOV EAX,3\r
1819         MOV DWORD PTR [EBP-12], EAX\r
1820         JMP L_103\r
1821 L_102:\r
1822         MOV EAX,DWORD PTR [EBP-4]\r
1823         ADD EAX,1\r
1824         MOV EBX,EAX\r
1825         XOR EAX,EAX\r
1826         MOV AL,BYTE PTR [EBP+20]\r
1827         SHL EAX,5\r
1828         MOV ESI,OFFSET _Ldrv\r
1829         ADD ESI,EAX\r
1830         XOR EAX,EAX\r
1831         MOV AL,BYTE PTR [EBP+20]\r
1832         SHL EAX,5\r
1833         PUSH EBX\r
1834         MOV EBX,ESI\r
1835         MOV ESI,OFFSET _Ldrv\r
1836         ADD ESI,EAX\r
1837         MOVZX EAX,WORD PTR [EBX+26]\r
1838         ADD EAX,DWORD PTR [ESI+16]\r
1839         POP EDX\r
1840         CMP EAX,EDX\r
1841         SETA AL\r
1842         AND AL,AL\r
1843         JZ L_104\r
1844         MOV EAX,2\r
1845         MOV DWORD PTR [EBP-12], EAX\r
1846         JMP L_105\r
1847 L_104:\r
1848         MOV EAX,1\r
1849         MOV DWORD PTR [EBP-12], EAX\r
1850 L_105:\r
1851 L_103:\r
1852         MOV EAX,DWORD PTR [EBP-24]\r
1853         AND EAX,EAX\r
1854         JNZ L_106\r
1855         XOR EAX,EAX\r
1856         MOV AL,BYTE PTR [EBP+20]\r
1857         SHL EAX,5\r
1858         MOV ESI,OFFSET _Ldrv\r
1859         ADD ESI,EAX\r
1860         XOR EAX,EAX\r
1861         MOV AL,BYTE PTR [ESI+28]\r
1862         PUSH EAX\r
1863         PUSH 1\r
1864         PUSH DWORD PTR [EBP-4]\r
1865         PUSH DWORD PTR [EBP-12]\r
1866         MOV ESI,OFFSET _Fat\r
1867         PUSH DWORD PTR [ESI]\r
1868         CALL FWORD PTR _DeviceOp\r
1869         MOV DWORD PTR [EBP-24], EAX\r
1870         MOV ESI,OFFSET _Fat\r
1871         XOR EAX,EAX\r
1872         MOV AL,BYTE PTR [EBP+20]\r
1873         MOV BYTE PTR [ESI+14], AL\r
1874         MOV ESI,OFFSET _Fat\r
1875         MOV EAX,DWORD PTR [EBP-40]\r
1876         MOV DWORD PTR [ESI+4], EAX\r
1877         MOV ESI,OFFSET _Fat\r
1878         MOV EAX,DWORD PTR [EBP-16]\r
1879         MOV WORD PTR [ESI+12], AX\r
1880         MOV ESI,OFFSET _Fat\r
1881         MOV EAX,DWORD PTR [EBP-4]\r
1882         MOV DWORD PTR [ESI+8], EAX\r
1883 L_106:\r
1884 L_100:\r
1885 L_95:\r
1886 L_93:\r
1887         MOV ESI,DWORD PTR [EBP+12]\r
1888         MOV EAX,DWORD PTR [EBP-8]\r
1889         MOV DWORD PTR [ESI], EAX\r
1890         MOV EAX,DWORD PTR [EBP-24]\r
1891 L_75:\r
1892         MOV ESP,EBP\r
1893         POP EBP\r
1894         RETN 16\r
1895 _GetClstrValue:\r
1896         PUSH EBP\r
1897         MOV EBP,ESP\r
1898         SUB ESP,18\r
1899         XOR EAX,EAX\r
1900         MOV AL,BYTE PTR [EBP+20]\r
1901         PUSH EAX\r
1902         MOVZX EAX,WORD PTR [EBP+24]\r
1903         PUSH EAX\r
1904         LEA EAX,DWORD PTR [EBP-12]\r
1905         PUSH EAX\r
1906         XOR EAX,EAX\r
1907         MOV AL,BYTE PTR [EBP+16]\r
1908         PUSH EAX\r
1909         CALL _FindFatSect\r
1910         MOV DWORD PTR [EBP-4], EAX\r
1911         MOV EAX,DWORD PTR [EBP-4]\r
1912         AND EAX,EAX\r
1913         JZ L_107\r
1914         MOV ESI,DWORD PTR [EBP+12]\r
1915         XOR EAX,EAX\r
1916         MOV WORD PTR [ESI], AX\r
1917         MOV EAX,DWORD PTR [EBP-4]\r
1918         JMP L_108\r
1919 L_107:\r
1920         MOV EAX,DWORD PTR [EBP-12]\r
1921         SHL EAX,4\r
1922         MOV ESI,OFFSET _Fat\r
1923         ADD ESI,EAX\r
1924         MOV EAX,DWORD PTR [ESI]\r
1925         MOV DWORD PTR [EBP-18], EAX\r
1926         MOV EAX,DWORD PTR [EBP-12]\r
1927         SHL EAX,4\r
1928         MOV ESI,OFFSET _Fat\r
1929         ADD ESI,EAX\r
1930         MOVZX EAX,WORD PTR [EBP+24]\r
1931         MOVZX ECX,WORD PTR [ESI+12]\r
1932         SUB EAX,ECX\r
1933         MOV DWORD PTR [EBP-8], EAX\r
1934         XOR EAX,EAX\r
1935         MOV AL,BYTE PTR [EBP+20]\r
1936         SHL EAX,5\r
1937         MOV ESI,OFFSET _Ldrv\r
1938         ADD ESI,EAX\r
1939         XOR EAX,EAX\r
1940         MOV AL,BYTE PTR [ESI+31]\r
1941         AND EAX,EAX\r
1942         JZ L_109\r
1943         MOV EAX,DWORD PTR [EBP-8]\r
1944         SHL EAX,1\r
1945         ADD EAX,DWORD PTR [EBP-18]\r
1946         MOV DWORD PTR [EBP-18], EAX\r
1947         MOV ESI,DWORD PTR [EBP-18]\r
1948         MOVZX EAX,WORD PTR [ESI]\r
1949         MOV WORD PTR [EBP-14], AX\r
1950         JMP L_110\r
1951 L_109:\r
1952         MOV EAX,DWORD PTR [EBP-8]\r
1953         MOV ECX,2\r
1954         XOR EDX,EDX\r
1955         DIV ECX\r
1956         ADD EAX,DWORD PTR [EBP-8]\r
1957         ADD EAX,DWORD PTR [EBP-18]\r
1958         MOV DWORD PTR [EBP-18], EAX\r
1959         MOV ESI,DWORD PTR [EBP-18]\r
1960         MOVZX EAX,WORD PTR [ESI]\r
1961         MOV WORD PTR [EBP-14], AX\r
1962         MOVZX EAX,WORD PTR [EBP+24]\r
1963         MOV ECX,1\r
1964         AND EAX,ECX\r
1965         JZ L_111\r
1966         MOVZX EAX,WORD PTR [EBP-14]\r
1967         MOV ECX,4\r
1968         SHR AX,CL\r
1969         MOV WORD PTR [EBP-14], AX\r
1970 L_111:\r
1971         MOVZX EAX,WORD PTR [EBP-14]\r
1972         MOV ECX,4095\r
1973         AND EAX,ECX\r
1974         MOV WORD PTR [EBP-14], AX\r
1975 L_110:\r
1976         MOV ESI,DWORD PTR [EBP+12]\r
1977         MOVZX EAX,WORD PTR [EBP-14]\r
1978         MOV WORD PTR [ESI], AX\r
1979         MOV ESI,DWORD PTR [EBP+8]\r
1980         MOV EAX,DWORD PTR [EBP-12]\r
1981         MOV DWORD PTR [ESI], EAX\r
1982         MOV EAX,DWORD PTR [EBP-4]\r
1983 L_108:\r
1984         MOV ESP,EBP\r
1985         POP EBP\r
1986         RETN 20\r
1987 _SetClstrValue:\r
1988         PUSH EBP\r
1989         MOV EBP,ESP\r
1990         SUB ESP,20\r
1991         XOR EAX,EAX\r
1992         MOV AL,BYTE PTR [EBP+12]\r
1993         PUSH EAX\r
1994         MOVZX EAX,WORD PTR [EBP+20]\r
1995         PUSH EAX\r
1996         LEA EAX,DWORD PTR [EBP-12]\r
1997         PUSH EAX\r
1998         XOR EAX,EAX\r
1999         PUSH EAX\r
2000         CALL _FindFatSect\r
2001         MOV DWORD PTR [EBP-4], EAX\r
2002         MOV EAX,DWORD PTR [EBP-4]\r
2003         AND EAX,EAX\r
2004         JZ L_112\r
2005         MOV ESI,DWORD PTR [EBP+8]\r
2006         XOR EAX,EAX\r
2007         MOV DWORD PTR [ESI], EAX\r
2008         MOV EAX,DWORD PTR [EBP-4]\r
2009         JMP L_113\r
2010 L_112:\r
2011         MOV EAX,DWORD PTR [EBP-12]\r
2012         SHL EAX,4\r
2013         MOV ESI,OFFSET _Fat\r
2014         ADD ESI,EAX\r
2015         MOV EAX,DWORD PTR [ESI]\r
2016         MOV DWORD PTR [EBP-18], EAX\r
2017         MOV EAX,DWORD PTR [EBP-12]\r
2018         SHL EAX,4\r
2019         MOV ESI,OFFSET _Fat\r
2020         ADD ESI,EAX\r
2021         MOVZX EAX,WORD PTR [EBP+20]\r
2022         MOVZX ECX,WORD PTR [ESI+12]\r
2023         SUB EAX,ECX\r
2024         MOV DWORD PTR [EBP-8], EAX\r
2025         XOR EAX,EAX\r
2026         MOV AL,BYTE PTR [EBP+12]\r
2027         SHL EAX,5\r
2028         MOV ESI,OFFSET _Ldrv\r
2029         ADD ESI,EAX\r
2030         XOR EAX,EAX\r
2031         MOV AL,BYTE PTR [ESI+31]\r
2032         AND EAX,EAX\r
2033         JZ L_114\r
2034         MOV EAX,DWORD PTR [EBP-8]\r
2035         SHL EAX,1\r
2036         ADD EAX,DWORD PTR [EBP-18]\r
2037         MOV DWORD PTR [EBP-18], EAX\r
2038         MOV ESI,DWORD PTR [EBP-18]\r
2039         MOVZX EAX,WORD PTR [EBP+16]\r
2040         MOV WORD PTR [ESI], AX\r
2041         JMP L_115\r
2042 L_114:\r
2043         MOV EAX,DWORD PTR [EBP-8]\r
2044         MOV ECX,2\r
2045         XOR EDX,EDX\r
2046         DIV ECX\r
2047         ADD EAX,DWORD PTR [EBP-8]\r
2048         ADD EAX,DWORD PTR [EBP-18]\r
2049         MOV DWORD PTR [EBP-18], EAX\r
2050         MOV ESI,DWORD PTR [EBP-18]\r
2051         MOVZX EAX,WORD PTR [ESI]\r
2052         MOV WORD PTR [EBP-20], AX\r
2053         MOVZX EAX,WORD PTR [EBP+20]\r
2054         MOV ECX,1\r
2055         AND EAX,ECX\r
2056         JZ L_116\r
2057         MOVZX EAX,WORD PTR [EBP+16]\r
2058         MOV ECX,4\r
2059         SHL EAX,CL\r
2060         AND EAX,0FFFFh\r
2061         MOV WORD PTR [EBP+16], AX\r
2062         MOVZX EAX,WORD PTR [EBP+16]\r
2063         MOV ECX,65520\r
2064         AND EAX,ECX\r
2065         MOV WORD PTR [EBP+16], AX\r
2066         MOVZX EAX,WORD PTR [EBP-20]\r
2067         MOV ECX,15\r
2068         AND EAX,ECX\r
2069         MOVZX ECX,WORD PTR [EBP+16]\r
2070         OR EAX,ECX\r
2071         MOV WORD PTR [EBP-14], AX\r
2072         JMP L_117\r
2073 L_116:\r
2074         MOVZX EAX,WORD PTR [EBP+16]\r
2075         MOV ECX,4095\r
2076         AND EAX,ECX\r
2077         MOV WORD PTR [EBP+16], AX\r
2078         MOVZX EAX,WORD PTR [EBP-20]\r
2079         MOV ECX,61440\r
2080         AND EAX,ECX\r
2081         MOVZX ECX,WORD PTR [EBP+16]\r
2082         OR EAX,ECX\r
2083         MOV WORD PTR [EBP-14], AX\r
2084 L_117:\r
2085         MOV ESI,DWORD PTR [EBP-18]\r
2086         MOVZX EAX,WORD PTR [EBP-14]\r
2087         MOV WORD PTR [ESI], AX\r
2088 L_115:\r
2089         MOV EAX,DWORD PTR [EBP-12]\r
2090         SHL EAX,4\r
2091         MOV ESI,OFFSET _Fat\r
2092         ADD ESI,EAX\r
2093         XOR EAX,EAX\r
2094         MOV AL,BYTE PTR [ESI+15]\r
2095         MOV ECX,1\r
2096         OR EAX,ECX\r
2097         MOV BYTE PTR [ESI+15], AL\r
2098         MOV ESI,DWORD PTR [EBP+8]\r
2099         MOV EAX,DWORD PTR [EBP-12]\r
2100         MOV DWORD PTR [ESI], EAX\r
2101         MOV EAX,DWORD PTR [EBP-4]\r
2102 L_113:\r
2103         MOV ESP,EBP\r
2104         POP EBP\r
2105         RETN 16\r
2106 _NextFATClstr:\r
2107         PUSH EBP\r
2108         MOV EBP,ESP\r
2109         SUB ESP,10\r
2110         MOVZX EAX,WORD PTR [EBP+12]\r
2111         PUSH EAX\r
2112         XOR EAX,EAX\r
2113         MOV AL,BYTE PTR [EBP+16]\r
2114         PUSH EAX\r
2115         XOR EAX,EAX\r
2116         PUSH EAX\r
2117         LEA EAX,WORD PTR [EBP-10]\r
2118         PUSH EAX\r
2119         LEA EAX,DWORD PTR [EBP-8]\r
2120         PUSH EAX\r
2121         CALL _GetClstrValue\r
2122         MOV DWORD PTR [EBP-4], EAX\r
2123         MOV EAX,DWORD PTR [EBP-4]\r
2124         AND EAX,EAX\r
2125         JZ L_118\r
2126         MOV ESI,DWORD PTR [EBP+8]\r
2127         XOR EAX,EAX\r
2128         MOV WORD PTR [ESI], AX\r
2129         MOV EAX,DWORD PTR [EBP-4]\r
2130         JMP L_119\r
2131 L_118:\r
2132         MOV ESI,DWORD PTR [EBP+8]\r
2133         MOVZX EAX,WORD PTR [EBP-10]\r
2134         MOV WORD PTR [ESI], AX\r
2135         XOR EAX,EAX\r
2136 L_119:\r
2137         MOV ESP,EBP\r
2138         POP EBP\r
2139         RETN 12\r
2140 _ExtendClstrChain:\r
2141         PUSH EBP\r
2142         MOV EBP,ESP\r
2143         SUB ESP,23\r
2144         XOR EAX,EAX\r
2145         MOV AL,BYTE PTR [EBP+16]\r
2146         SHL EAX,5\r
2147         MOV ESI,OFFSET _Ldrv\r
2148         ADD ESI,EAX\r
2149         XOR EAX,EAX\r
2150         MOV AL,BYTE PTR [ESI+31]\r
2151         AND EAX,EAX\r
2152         JZ L_120\r
2153         MOV EAX,65528\r
2154         MOV WORD PTR [EBP-20], AX\r
2155         JMP L_121\r
2156 L_120:\r
2157         MOV EAX,4088\r
2158         MOV WORD PTR [EBP-20], AX\r
2159 L_121:\r
2160         MOVZX EAX,WORD PTR [EBP+12]\r
2161         PUSH EAX\r
2162         XOR EAX,EAX\r
2163         MOV AL,BYTE PTR [EBP+16]\r
2164         PUSH EAX\r
2165         PUSH 1\r
2166         LEA EAX,WORD PTR [EBP-18]\r
2167         PUSH EAX\r
2168         LEA EAX,DWORD PTR [EBP-8]\r
2169         PUSH EAX\r
2170         CALL _GetClstrValue\r
2171         MOV DWORD PTR [EBP-4], EAX\r
2172         MOV EAX,DWORD PTR [EBP-4]\r
2173         AND EAX,EAX\r
2174         JZ L_122\r
2175         MOV ESI,DWORD PTR [EBP+8]\r
2176         XOR EAX,EAX\r
2177         MOV WORD PTR [ESI], AX\r
2178         MOV EAX,DWORD PTR [EBP-4]\r
2179         JMP L_123\r
2180 L_122:\r
2181         MOVZX EAX,WORD PTR [EBP-18]\r
2182         MOVZX ECX,WORD PTR [EBP-20]\r
2183         CMP EAX,ECX\r
2184         SETB AL\r
2185         AND AL,AL\r
2186         JZ L_124\r
2187         MOV ESI,DWORD PTR [EBP+8]\r
2188         MOVZX EAX,WORD PTR [EBP-18]\r
2189         MOV WORD PTR [ESI], AX\r
2190         MOV EAX,DWORD PTR [EBP-8]\r
2191         SHL EAX,4\r
2192         MOV ESI,OFFSET _Fat\r
2193         ADD ESI,EAX\r
2194         XOR EAX,EAX\r
2195         MOV AL,BYTE PTR [ESI+15]\r
2196         MOV ECX,-3\r
2197         AND EAX,ECX\r
2198         MOV BYTE PTR [ESI+15], AL\r
2199         XOR EAX,EAX\r
2200         JMP L_123\r
2201 L_124:\r
2202         MOVZX EAX,WORD PTR [EBP+12]\r
2203         MOV WORD PTR [EBP-22], AX\r
2204         XOR EAX,EAX\r
2205         MOV BYTE PTR [EBP-23], AL\r
2206 L_125:\r
2207         XOR EAX,EAX\r
2208         MOV AL,BYTE PTR [EBP-23]\r
2209         AND EAX,EAX\r
2210         JNZ L_126\r
2211         INC WORD PTR [EBP-22]\r
2212         MOVZX EAX,WORD PTR [EBP-22]\r
2213         MOVZX EAX,WORD PTR [EBP-22]\r
2214         PUSH EAX\r
2215         XOR EAX,EAX\r
2216         MOV AL,BYTE PTR [EBP+16]\r
2217         PUSH EAX\r
2218         XOR EAX,EAX\r
2219         PUSH EAX\r
2220         LEA EAX,WORD PTR [EBP-18]\r
2221         PUSH EAX\r
2222         LEA EAX,DWORD PTR [EBP-12]\r
2223         PUSH EAX\r
2224         CALL _GetClstrValue\r
2225         MOV DWORD PTR [EBP-4], EAX\r
2226         MOV EAX,DWORD PTR [EBP-4]\r
2227         AND EAX,EAX\r
2228         JZ L_127\r
2229         MOV ESI,DWORD PTR [EBP+8]\r
2230         XOR EAX,EAX\r
2231         MOV WORD PTR [ESI], AX\r
2232         MOV EAX,DWORD PTR [EBP-8]\r
2233         SHL EAX,4\r
2234         MOV ESI,OFFSET _Fat\r
2235         ADD ESI,EAX\r
2236         XOR EAX,EAX\r
2237         MOV AL,BYTE PTR [ESI+15]\r
2238         MOV ECX,-3\r
2239         AND EAX,ECX\r
2240         MOV BYTE PTR [ESI+15], AL\r
2241         MOV EAX,DWORD PTR [EBP-4]\r
2242         JMP L_123\r
2243 L_127:\r
2244         MOVZX EAX,WORD PTR [EBP-18]\r
2245         AND EAX,EAX\r
2246         JNZ L_128\r
2247         MOV EAX,1\r
2248         MOV BYTE PTR [EBP-23], AL\r
2249 L_128:\r
2250         JMP L_125\r
2251 L_126:\r
2252         XOR EAX,EAX\r
2253         MOV AL,BYTE PTR [EBP-23]\r
2254         AND EAX,EAX\r
2255         JZ L_129\r
2256         MOVZX EAX,WORD PTR [EBP+12]\r
2257         PUSH EAX\r
2258         MOVZX EAX,WORD PTR [EBP-22]\r
2259         PUSH EAX\r
2260         XOR EAX,EAX\r
2261         MOV AL,BYTE PTR [EBP+16]\r
2262         PUSH EAX\r
2263         LEA EAX,DWORD PTR [EBP-16]\r
2264         PUSH EAX\r
2265         CALL _SetClstrValue\r
2266         MOV DWORD PTR [EBP-4], EAX\r
2267         MOV EAX,DWORD PTR [EBP-4]\r
2268         AND EAX,EAX\r
2269         JZ L_130\r
2270         MOV ESI,DWORD PTR [EBP+8]\r
2271         XOR EAX,EAX\r
2272         MOV WORD PTR [ESI], AX\r
2273         MOV EAX,DWORD PTR [EBP-8]\r
2274         SHL EAX,4\r
2275         MOV ESI,OFFSET _Fat\r
2276         ADD ESI,EAX\r
2277         XOR EAX,EAX\r
2278         MOV AL,BYTE PTR [ESI+15]\r
2279         MOV ECX,-3\r
2280         AND EAX,ECX\r
2281         MOV BYTE PTR [ESI+15], AL\r
2282         MOV EAX,DWORD PTR [EBP-4]\r
2283         JMP L_123\r
2284 L_130:\r
2285         MOV EAX,DWORD PTR [EBP-16]\r
2286         SHL EAX,4\r
2287         MOV ESI,OFFSET _Fat\r
2288         ADD ESI,EAX\r
2289         XOR EAX,EAX\r
2290         MOV AL,BYTE PTR [ESI+15]\r
2291         MOV ECX,-3\r
2292         AND EAX,ECX\r
2293         MOV BYTE PTR [ESI+15], AL\r
2294         MOVZX EAX,WORD PTR [EBP-22]\r
2295         PUSH EAX\r
2296         PUSH 65535\r
2297         XOR EAX,EAX\r
2298         MOV AL,BYTE PTR [EBP+16]\r
2299         PUSH EAX\r
2300         LEA EAX,DWORD PTR [EBP-12]\r
2301         PUSH EAX\r
2302         CALL _SetClstrValue\r
2303         MOV DWORD PTR [EBP-4], EAX\r
2304 L_129:\r
2305         MOV ESI,DWORD PTR [EBP+8]\r
2306         MOVZX EAX,WORD PTR [EBP-22]\r
2307         MOV WORD PTR [ESI], AX\r
2308         MOV EAX,DWORD PTR [EBP-4]\r
2309 L_123:\r
2310         MOV ESP,EBP\r
2311         POP EBP\r
2312         RETN 12\r
2313 _TruncClstrChain:\r
2314         PUSH EBP\r
2315         MOV EBP,ESP\r
2316         SUB ESP,14\r
2317         XOR EAX,EAX\r
2318         MOV AL,BYTE PTR [EBP+12]\r
2319         SHL EAX,5\r
2320         MOV ESI,OFFSET _Ldrv\r
2321         ADD ESI,EAX\r
2322         XOR EAX,EAX\r
2323         MOV AL,BYTE PTR [ESI+31]\r
2324         AND EAX,EAX\r
2325         JZ L_131\r
2326         MOV EAX,65528\r
2327         MOV WORD PTR [EBP-10], AX\r
2328         JMP L_132\r
2329 L_131:\r
2330         MOV EAX,4088\r
2331         MOV WORD PTR [EBP-10], AX\r
2332 L_132:\r
2333         MOVZX EAX,WORD PTR [EBP+8]\r
2334         PUSH EAX\r
2335         XOR EAX,EAX\r
2336         MOV AL,BYTE PTR [EBP+12]\r
2337         PUSH EAX\r
2338         XOR EAX,EAX\r
2339         PUSH EAX\r
2340         LEA EAX,WORD PTR [EBP-12]\r
2341         PUSH EAX\r
2342         LEA EAX,DWORD PTR [EBP-8]\r
2343         PUSH EAX\r
2344         CALL _GetClstrValue\r
2345         MOV DWORD PTR [EBP-4], EAX\r
2346         MOV EAX,DWORD PTR [EBP-4]\r
2347         AND EAX,EAX\r
2348         JZ L_133\r
2349         MOV EAX,DWORD PTR [EBP-4]\r
2350         JMP L_134\r
2351 L_133:\r
2352         MOVZX EAX,WORD PTR [EBP-12]\r
2353         MOVZX ECX,WORD PTR [EBP-10]\r
2354         CMP EAX,ECX\r
2355         SETAE AL\r
2356         AND AL,AL\r
2357         JZ L_135\r
2358         XOR EAX,EAX\r
2359         JMP L_134\r
2360 L_135:\r
2361         MOVZX EAX,WORD PTR [EBP+8]\r
2362         PUSH EAX\r
2363         XOR EAX,EAX\r
2364         MOV AL,BYTE PTR [EBP+12]\r
2365         PUSH EAX\r
2366         XOR EAX,EAX\r
2367         PUSH EAX\r
2368         LEA EAX,WORD PTR [EBP-12]\r
2369         PUSH EAX\r
2370         LEA EAX,DWORD PTR [EBP-8]\r
2371         PUSH EAX\r
2372         CALL _GetClstrValue\r
2373         MOV DWORD PTR [EBP-4], EAX\r
2374         MOV EAX,DWORD PTR [EBP-4]\r
2375         AND EAX,EAX\r
2376         JZ L_136\r
2377         MOV EAX,DWORD PTR [EBP-4]\r
2378         JMP L_134\r
2379 L_136:\r
2380         MOVZX EAX,WORD PTR [EBP+8]\r
2381         PUSH EAX\r
2382         PUSH 65535\r
2383         XOR EAX,EAX\r
2384         MOV AL,BYTE PTR [EBP+12]\r
2385         PUSH EAX\r
2386         LEA EAX,DWORD PTR [EBP-8]\r
2387         PUSH EAX\r
2388         CALL _SetClstrValue\r
2389         MOV DWORD PTR [EBP-4], EAX\r
2390         MOV EAX,DWORD PTR [EBP-4]\r
2391         AND EAX,EAX\r
2392         JZ L_137\r
2393         MOV EAX,DWORD PTR [EBP-4]\r
2394         JMP L_134\r
2395 L_137:\r
2396 L_138:\r
2397         MOVZX EAX,WORD PTR [EBP-12]\r
2398         AND EAX,EAX\r
2399         JZ L_140\r
2400         MOVZX EAX,WORD PTR [EBP-12]\r
2401         MOVZX ECX,WORD PTR [EBP-10]\r
2402         CMP EAX,ECX\r
2403         SETB AL\r
2404         AND AL,AL\r
2405 L_140:\r
2406         JZ L_139\r
2407         MOVZX EAX,WORD PTR [EBP-12]\r
2408         MOV WORD PTR [EBP-14], AX\r
2409         MOVZX EAX,WORD PTR [EBP-14]\r
2410         PUSH EAX\r
2411         XOR EAX,EAX\r
2412         MOV AL,BYTE PTR [EBP+12]\r
2413         PUSH EAX\r
2414         XOR EAX,EAX\r
2415         PUSH EAX\r
2416         LEA EAX,WORD PTR [EBP-12]\r
2417         PUSH EAX\r
2418         LEA EAX,DWORD PTR [EBP-8]\r
2419         PUSH EAX\r
2420         CALL _GetClstrValue\r
2421         MOV DWORD PTR [EBP-4], EAX\r
2422         MOV EAX,DWORD PTR [EBP-4]\r
2423         AND EAX,EAX\r
2424         JZ L_141\r
2425         MOV EAX,DWORD PTR [EBP-4]\r
2426         JMP L_134\r
2427 L_141:\r
2428         MOVZX EAX,WORD PTR [EBP-14]\r
2429         PUSH EAX\r
2430         XOR EAX,EAX\r
2431         PUSH EAX\r
2432         XOR EAX,EAX\r
2433         MOV AL,BYTE PTR [EBP+12]\r
2434         PUSH EAX\r
2435         LEA EAX,DWORD PTR [EBP-8]\r
2436         PUSH EAX\r
2437         CALL _SetClstrValue\r
2438         MOV DWORD PTR [EBP-4], EAX\r
2439         MOV EAX,DWORD PTR [EBP-4]\r
2440         AND EAX,EAX\r
2441         JZ L_142\r
2442         MOV EAX,DWORD PTR [EBP-4]\r
2443         JMP L_134\r
2444 L_142:\r
2445         JMP L_138\r
2446 L_139:\r
2447         XOR EAX,EAX\r
2448 L_134:\r
2449         MOV ESP,EBP\r
2450         POP EBP\r
2451         RETN 8\r
2452 _GetAbsoluteClstr:\r
2453         PUSH EBP\r
2454         MOV EBP,ESP\r
2455         SUB ESP,29\r
2456         MOV EAX,DWORD PTR [EBP+20]\r
2457         SHL EAX,5\r
2458         MOV ESI,_paFUB\r
2459         ADD ESI,EAX\r
2460         MOVZX EAX,WORD PTR [ESI+2]\r
2461         MOV DWORD PTR [EBP-8], EAX\r
2462         MOV EAX,DWORD PTR [EBP-8]\r
2463         MOV ECX,64\r
2464         MUL ECX\r
2465         MOV ESI,_paFCB\r
2466         ADD ESI,EAX\r
2467         XOR EAX,EAX\r
2468         MOV AL,BYTE PTR [ESI+38]\r
2469         MOV BYTE PTR [EBP-29], AL\r
2470         XOR EAX,EAX\r
2471         MOV AL,BYTE PTR [EBP-29]\r
2472         SHL EAX,5\r
2473         MOV ESI,OFFSET _Ldrv\r
2474         ADD ESI,EAX\r
2475         XOR EAX,EAX\r
2476         MOV AL,BYTE PTR [ESI+29]\r
2477         MOV DWORD PTR [EBP-12], EAX\r
2478         MOV EAX,DWORD PTR [EBP-12]\r
2479         MOV ECX,512\r
2480         MUL ECX\r
2481         MOV DWORD PTR [EBP-16], EAX\r
2482         XOR EAX,EAX\r
2483         MOV AL,BYTE PTR [EBP-29]\r
2484         SHL EAX,5\r
2485         MOV ESI,OFFSET _Ldrv\r
2486         ADD ESI,EAX\r
2487         XOR EAX,EAX\r
2488         MOV AL,BYTE PTR [ESI+31]\r
2489         AND EAX,EAX\r
2490         JZ L_143\r
2491         MOV EAX,65528\r
2492         MOV WORD PTR [EBP-28], AX\r
2493         JMP L_144\r
2494 L_143:\r
2495         MOV EAX,4088\r
2496         MOV WORD PTR [EBP-28], AX\r
2497 L_144:\r
2498         MOV EAX,DWORD PTR [EBP+16]\r
2499         MOV ECX,DWORD PTR [EBP-16]\r
2500         XOR EDX,EDX\r
2501         DIV ECX\r
2502         MOV WORD PTR [EBP-22], AX\r
2503         MOV EAX,DWORD PTR [EBP+20]\r
2504         SHL EAX,5\r
2505         MOV ESI,_paFUB\r
2506         ADD ESI,EAX\r
2507         MOV EAX,DWORD PTR [ESI+20]\r
2508         MOV ECX,DWORD PTR [EBP-16]\r
2509         XOR EDX,EDX\r
2510         DIV ECX\r
2511         MOV WORD PTR [EBP-24], AX\r
2512         MOVZX EAX,WORD PTR [EBP-22]\r
2513         MOVZX ECX,WORD PTR [EBP-24]\r
2514         CMP EAX,ECX\r
2515         SETB AL\r
2516         AND AL,AL\r
2517         JZ L_145\r
2518         MOV EAX,DWORD PTR [EBP-8]\r
2519         MOV ECX,64\r
2520         MUL ECX\r
2521         MOV ESI,_paFCB\r
2522         ADD ESI,EAX\r
2523         MOVZX EAX,WORD PTR [ESI+26]\r
2524         MOV WORD PTR [EBP-26], AX\r
2525         XOR EAX,EAX\r
2526         MOV WORD PTR [EBP-24], AX\r
2527         XOR EAX,EAX\r
2528         MOV DWORD PTR [EBP-20], EAX\r
2529         JMP L_146\r
2530 L_145:\r
2531         MOV EAX,DWORD PTR [EBP+20]\r
2532         SHL EAX,5\r
2533         MOV ESI,_paFUB\r
2534         ADD ESI,EAX\r
2535         MOVZX EAX,WORD PTR [ESI+24]\r
2536         MOV WORD PTR [EBP-26], AX\r
2537         MOV EAX,DWORD PTR [EBP+20]\r
2538         SHL EAX,5\r
2539         MOV ESI,_paFUB\r
2540         ADD ESI,EAX\r
2541         MOV EAX,DWORD PTR [ESI+20]\r
2542         MOV DWORD PTR [EBP-20], EAX\r
2543 L_146:\r
2544 L_147:\r
2545         MOVZX EAX,WORD PTR [EBP-24]\r
2546         MOVZX ECX,WORD PTR [EBP-22]\r
2547         CMP EAX,ECX\r
2548         SETB AL\r
2549         AND AL,AL\r
2550         JZ L_149\r
2551         MOVZX EAX,WORD PTR [EBP-26]\r
2552         MOVZX ECX,WORD PTR [EBP-28]\r
2553         CMP EAX,ECX\r
2554         SETB AL\r
2555         AND AL,AL\r
2556         JZ L_150\r
2557         MOVZX EAX,WORD PTR [EBP-26]\r
2558 L_150:\r
2559 L_149:\r
2560         AND EAX,EAX\r
2561         JZ L_148\r
2562         XOR EAX,EAX\r
2563         MOV AL,BYTE PTR [EBP-29]\r
2564         PUSH EAX\r
2565         MOVZX EAX,WORD PTR [EBP-26]\r
2566         PUSH EAX\r
2567         LEA EAX,WORD PTR [EBP-26]\r
2568         PUSH EAX\r
2569         CALL _NextFATClstr\r
2570         MOV DWORD PTR [EBP-4], EAX\r
2571         MOV EAX,DWORD PTR [EBP-4]\r
2572         AND EAX,EAX\r
2573         JZ L_151\r
2574         MOV EAX,DWORD PTR [EBP-4]\r
2575         JMP L_152\r
2576 L_151:\r
2577         INC WORD PTR [EBP-24]\r
2578         MOVZX EAX,WORD PTR [EBP-24]\r
2579         MOV EAX,DWORD PTR [EBP-20]\r
2580         ADD EAX,DWORD PTR [EBP-16]\r
2581         MOV DWORD PTR [EBP-20], EAX\r
2582         JMP L_147\r
2583 L_148:\r
2584         MOVZX EAX,WORD PTR [EBP-24]\r
2585         MOVZX ECX,WORD PTR [EBP-22]\r
2586         CMP EAX,ECX\r
2587         SETNE AL\r
2588         AND AL,AL\r
2589         JZ L_153\r
2590         MOV EAX,211\r
2591         JMP L_152\r
2592 L_153:\r
2593         MOV ESI,DWORD PTR [EBP+12]\r
2594         MOVZX EAX,WORD PTR [EBP-26]\r
2595         MOV WORD PTR [ESI], AX\r
2596         MOV ESI,DWORD PTR [EBP+8]\r
2597         MOV EAX,DWORD PTR [EBP-20]\r
2598         MOV DWORD PTR [ESI], EAX\r
2599         XOR EAX,EAX\r
2600 L_152:\r
2601         MOV ESP,EBP\r
2602         POP EBP\r
2603         RETN 16\r
2604 _SetFileSizeM:\r
2605         PUSH EBP\r
2606         MOV EBP,ESP\r
2607         SUB ESP,43\r
2608         PUSH DWORD PTR [EBP+12]\r
2609         LEA EAX,DWORD PTR [EBP-12]\r
2610         PUSH EAX\r
2611         CALL _ValidateHandle\r
2612         MOV DWORD PTR [EBP-4], EAX\r
2613         MOV EAX,DWORD PTR [EBP-4]\r
2614         AND EAX,EAX\r
2615         JZ L_154\r
2616         MOV EAX,DWORD PTR [EBP-4]\r
2617         JMP L_155\r
2618 L_154:\r
2619         MOV EAX,DWORD PTR [EBP-12]\r
2620         MOV ECX,64\r
2621         MUL ECX\r
2622         MOV ESI,_paFCB\r
2623         ADD ESI,EAX\r
2624         XOR EAX,EAX\r
2625         MOV AL,BYTE PTR [ESI+39]\r
2626         AND EAX,EAX\r
2627         JNZ L_156\r
2628         MOV EAX,205\r
2629         JMP L_155\r
2630 L_156:\r
2631         MOV EAX,DWORD PTR [EBP-12]\r
2632         MOV ECX,64\r
2633         MUL ECX\r
2634         MOV ESI,_paFCB\r
2635         ADD ESI,EAX\r
2636         XOR EAX,EAX\r
2637         MOV AL,BYTE PTR [ESI+38]\r
2638         MOV BYTE PTR [EBP-43], AL\r
2639         XOR EAX,EAX\r
2640         MOV AL,BYTE PTR [EBP-43]\r
2641         SHL EAX,5\r
2642         MOV ESI,OFFSET _Ldrv\r
2643         ADD ESI,EAX\r
2644         XOR EAX,EAX\r
2645         MOV AL,BYTE PTR [ESI+29]\r
2646         MOV DWORD PTR [EBP-32], EAX\r
2647         MOV EAX,DWORD PTR [EBP-32]\r
2648         MOV ECX,512\r
2649         MUL ECX\r
2650         MOV DWORD PTR [EBP-36], EAX\r
2651         MOV EAX,DWORD PTR [EBP-12]\r
2652         MOV ECX,64\r
2653         MUL ECX\r
2654         MOV ESI,_paFCB\r
2655         ADD ESI,EAX\r
2656         MOV EAX,DWORD PTR [ESI+28]\r
2657         MOV DWORD PTR [EBP-24], EAX\r
2658         MOV EAX,DWORD PTR [EBP-24]\r
2659         AND EAX,EAX\r
2660         JZ L_157\r
2661         MOV EAX,DWORD PTR [EBP-24]\r
2662         SUB EAX,1\r
2663         MOV DWORD PTR [EBP-20], EAX\r
2664         JMP L_158\r
2665 L_157:\r
2666         XOR EAX,EAX\r
2667         MOV DWORD PTR [EBP-20], EAX\r
2668 L_158:\r
2669         MOV EAX,DWORD PTR [EBP-24]\r
2670         CMP EAX,DWORD PTR [EBP+8]\r
2671         SETE AL\r
2672         AND AL,AL\r
2673         JZ L_159\r
2674         XOR EAX,EAX\r
2675         JMP L_155\r
2676 L_159:\r
2677         MOV EAX,DWORD PTR [EBP-24]\r
2678         MOV ECX,DWORD PTR [EBP-36]\r
2679         XOR EDX,EDX\r
2680         DIV ECX\r
2681         MOV DWORD PTR [EBP-28], EAX\r
2682         MOV EAX,DWORD PTR [EBP-24]\r
2683         MOV ECX,DWORD PTR [EBP-36]\r
2684         XOR EDX,EDX\r
2685         DIV ECX\r
2686         MOV EAX,EDX\r
2687         AND EAX,EAX\r
2688         JZ L_160\r
2689         MOV EAX,DWORD PTR [EBP-28]\r
2690         INC DWORD PTR [EBP-28]\r
2691 L_160:\r
2692         MOV EAX,DWORD PTR [EBP-24]\r
2693         AND EAX,EAX\r
2694         JNZ L_161\r
2695         MOV EAX,1\r
2696         MOV DWORD PTR [EBP-28], EAX\r
2697 L_161:\r
2698         MOV EAX,DWORD PTR [EBP+8]\r
2699         MOV ECX,DWORD PTR [EBP-36]\r
2700         XOR EDX,EDX\r
2701         DIV ECX\r
2702         MOV DWORD PTR [EBP-40], EAX\r
2703         MOV EAX,DWORD PTR [EBP+8]\r
2704         MOV ECX,DWORD PTR [EBP-36]\r
2705         XOR EDX,EDX\r
2706         DIV ECX\r
2707         MOV EAX,EDX\r
2708         AND EAX,EAX\r
2709         JZ L_162\r
2710         MOV EAX,DWORD PTR [EBP-40]\r
2711         INC DWORD PTR [EBP-40]\r
2712 L_162:\r
2713         MOV EAX,DWORD PTR [EBP+8]\r
2714         AND EAX,EAX\r
2715         JNZ L_163\r
2716         MOV EAX,1\r
2717         MOV DWORD PTR [EBP-40], EAX\r
2718 L_163:\r
2719         MOV EAX,DWORD PTR [EBP-40]\r
2720         CMP EAX,DWORD PTR [EBP-28]\r
2721         SETE AL\r
2722         AND AL,AL\r
2723         JZ L_164\r
2724         XOR EAX,EAX\r
2725         MOV DWORD PTR [EBP-4], EAX\r
2726         JMP L_165\r
2727 L_164:\r
2728         MOV EAX,DWORD PTR [EBP-40]\r
2729         CMP EAX,DWORD PTR [EBP-28]\r
2730         SETA AL\r
2731         AND AL,AL\r
2732         JZ L_166\r
2733         PUSH DWORD PTR [EBP+12]\r
2734         PUSH DWORD PTR [EBP-20]\r
2735         LEA EAX,WORD PTR [EBP-42]\r
2736         PUSH EAX\r
2737         LEA EAX,DWORD PTR [EBP-16]\r
2738         PUSH EAX\r
2739         CALL _GetAbsoluteClstr\r
2740         MOV DWORD PTR [EBP-4], EAX\r
2741         MOV EAX,DWORD PTR [EBP-28]\r
2742         MOV DWORD PTR [EBP-8], EAX\r
2743 L_167:\r
2744         MOV EAX,DWORD PTR [EBP-4]\r
2745         AND EAX,EAX\r
2746         SETZ AL\r
2747         AND AL,AL\r
2748         JZ L_169\r
2749         MOV EAX,DWORD PTR [EBP-8]\r
2750         CMP EAX,DWORD PTR [EBP-40]\r
2751         SETB AL\r
2752         AND AL,AL\r
2753 L_169:\r
2754         JZ L_168\r
2755         XOR EAX,EAX\r
2756         MOV AL,BYTE PTR [EBP-43]\r
2757         PUSH EAX\r
2758         MOVZX EAX,WORD PTR [EBP-42]\r
2759         PUSH EAX\r
2760         LEA EAX,WORD PTR [EBP-42]\r
2761         PUSH EAX\r
2762         CALL _ExtendClstrChain\r
2763         MOV DWORD PTR [EBP-4], EAX\r
2764         MOV EAX,DWORD PTR [EBP-8]\r
2765         INC DWORD PTR [EBP-8]\r
2766         JMP L_167\r
2767 L_168:\r
2768         JMP L_170\r
2769 L_166:\r
2770         MOV EAX,DWORD PTR [EBP-40]\r
2771         CMP EAX,DWORD PTR [EBP-28]\r
2772         SETB AL\r
2773         AND AL,AL\r
2774         JZ L_171\r
2775         MOV EAX,DWORD PTR [EBP+8]\r
2776         AND EAX,EAX\r
2777         JZ L_172\r
2778         MOV EAX,DWORD PTR [EBP+8]\r
2779         SUB EAX,1\r
2780         MOV DWORD PTR [EBP-20], EAX\r
2781         JMP L_173\r
2782 L_172:\r
2783         XOR EAX,EAX\r
2784         MOV DWORD PTR [EBP-20], EAX\r
2785 L_173:\r
2786         PUSH DWORD PTR [EBP+12]\r
2787         PUSH DWORD PTR [EBP-20]\r
2788         LEA EAX,WORD PTR [EBP-42]\r
2789         PUSH EAX\r
2790         LEA EAX,DWORD PTR [EBP-16]\r
2791         PUSH EAX\r
2792         CALL _GetAbsoluteClstr\r
2793         MOV DWORD PTR [EBP-4], EAX\r
2794         MOV EAX,DWORD PTR [EBP-4]\r
2795         AND EAX,EAX\r
2796         JNZ L_174\r
2797         XOR EAX,EAX\r
2798         MOV AL,BYTE PTR [EBP-43]\r
2799         PUSH EAX\r
2800         MOVZX EAX,WORD PTR [EBP-42]\r
2801         PUSH EAX\r
2802         CALL _TruncClstrChain\r
2803         MOV DWORD PTR [EBP-4], EAX\r
2804 L_174:\r
2805         MOV ESI,_paFUB\r
2806         MOV EAX,DWORD PTR [ESI+20]\r
2807         CMP EAX,DWORD PTR [EBP+8]\r
2808         SETAE AL\r
2809         AND AL,AL\r
2810         JZ L_175\r
2811         MOV ESI,_paFUB\r
2812         XOR EAX,EAX\r
2813         MOV DWORD PTR [ESI+20], EAX\r
2814         MOV EAX,DWORD PTR [EBP+12]\r
2815         SHL EAX,5\r
2816         MOV ESI,_paFUB\r
2817         ADD ESI,EAX\r
2818         MOV EAX,DWORD PTR [EBP-12]\r
2819         MOV ECX,64\r
2820         MUL ECX\r
2821         MOV EBX,ESI\r
2822         MOV ESI,_paFCB\r
2823         ADD ESI,EAX\r
2824         MOVZX EAX,WORD PTR [ESI+26]\r
2825         MOV WORD PTR [EBX+24], AX\r
2826 L_175:\r
2827 L_171:\r
2828 L_170:\r
2829 L_165:\r
2830         MOV EAX,DWORD PTR [EBP-4]\r
2831         AND EAX,EAX\r
2832         JNZ L_176\r
2833         MOV EAX,DWORD PTR [EBP-12]\r
2834         MOV ECX,64\r
2835         MUL ECX\r
2836         MOV ESI,_paFCB\r
2837         ADD ESI,EAX\r
2838         MOV EAX,DWORD PTR [EBP+8]\r
2839         MOV DWORD PTR [ESI+28], EAX\r
2840         MOV EAX,DWORD PTR [EBP-12]\r
2841         MOV ECX,64\r
2842         MUL ECX\r
2843         MOV ESI,_paFCB\r
2844         ADD ESI,EAX\r
2845         MOV EAX,1\r
2846         MOV BYTE PTR [ESI+41], AL\r
2847 L_176:\r
2848         MOV EAX,DWORD PTR [EBP-4]\r
2849 L_155:\r
2850         MOV ESP,EBP\r
2851         POP EBP\r
2852         RETN 8\r
2853 _GetDirEnt:\r
2854         PUSH EBP\r
2855         MOV EBP,ESP\r
2856         SUB ESP,32\r
2857         XOR EAX,EAX\r
2858         MOV AL,BYTE PTR [EBP+24]\r
2859         SHL EAX,5\r
2860         MOV ESI,OFFSET _Ldrv\r
2861         ADD ESI,EAX\r
2862         XOR EAX,EAX\r
2863         MOV AL,BYTE PTR [ESI+29]\r
2864         MOV DWORD PTR [EBP-12], EAX\r
2865         MOVZX EAX,WORD PTR [EBP+20]\r
2866         PUSH EAX\r
2867         XOR EAX,EAX\r
2868         MOV AL,BYTE PTR [EBP+24]\r
2869         PUSH EAX\r
2870         CALL _ClsToLBA\r
2871         MOV DWORD PTR [EBP-4], EAX\r
2872         XOR EAX,EAX\r
2873         MOV AL,BYTE PTR [EBP+24]\r
2874         SHL EAX,5\r
2875         MOV ESI,OFFSET _Ldrv\r
2876         ADD ESI,EAX\r
2877         XOR EAX,EAX\r
2878         MOV AL,BYTE PTR [ESI+31]\r
2879         AND EAX,EAX\r
2880         JZ L_177\r
2881         MOV EAX,65528\r
2882         MOV WORD PTR [EBP-32], AX\r
2883         JMP L_178\r
2884 L_177:\r
2885         MOV EAX,4088\r
2886         MOV WORD PTR [EBP-32], AX\r
2887 L_178:\r
2888         XOR EAX,EAX\r
2889         MOV DWORD PTR [EBP-8], EAX\r
2890         XOR EAX,EAX\r
2891         MOV BYTE PTR [EBP-22], AL\r
2892         XOR EAX,EAX\r
2893         MOV BYTE PTR [EBP-21], AL\r
2894         XOR EAX,EAX\r
2895         MOV BYTE PTR [EBP-21], AL\r
2896 L_179:\r
2897         XOR EAX,EAX\r
2898         MOV AL,BYTE PTR [EBP-21]\r
2899         AND EAX,EAX\r
2900         SETZ AL\r
2901         AND AL,AL\r
2902         JZ L_181\r
2903         XOR EAX,EAX\r
2904         MOV AL,BYTE PTR [EBP-22]\r
2905         AND EAX,EAX\r
2906         SETZ AL\r
2907         AND AL,AL\r
2908 L_181:\r
2909         JZ L_180\r
2910         MOV EAX,DWORD PTR [EBP-8]\r
2911         CMP EAX,DWORD PTR [EBP-12]\r
2912         SETE AL\r
2913         AND AL,AL\r
2914         JZ L_182\r
2915         XOR EAX,EAX\r
2916         MOV AL,BYTE PTR [EBP+24]\r
2917         PUSH EAX\r
2918         MOVZX EAX,WORD PTR [EBP+20]\r
2919         PUSH EAX\r
2920         LEA EAX,WORD PTR [EBP+20]\r
2921         PUSH EAX\r
2922         CALL _NextFATClstr\r
2923         MOV DWORD PTR [EBP-20], EAX\r
2924         MOV EAX,DWORD PTR [EBP-20]\r
2925         AND EAX,EAX\r
2926         JNZ L_183\r
2927         MOVZX EAX,WORD PTR [EBP+20]\r
2928         MOVZX ECX,WORD PTR [EBP-32]\r
2929         CMP EAX,ECX\r
2930         SETAE AL\r
2931         AND AL,AL\r
2932         JZ L_184\r
2933         MOV EAX,203\r
2934         JMP L_185\r
2935 L_184:\r
2936         MOVZX EAX,WORD PTR [EBP+20]\r
2937         PUSH EAX\r
2938         XOR EAX,EAX\r
2939         MOV AL,BYTE PTR [EBP+24]\r
2940         PUSH EAX\r
2941         CALL _ClsToLBA\r
2942         MOV DWORD PTR [EBP-4], EAX\r
2943         XOR EAX,EAX\r
2944         MOV DWORD PTR [EBP-8], EAX\r
2945         JMP L_186\r
2946 L_183:\r
2947         MOV ESI,DWORD PTR [EBP+8]\r
2948         XOR EAX,EAX\r
2949         MOV DWORD PTR [ESI], EAX\r
2950         MOV EAX,DWORD PTR [EBP-20]\r
2951         JMP L_185\r
2952 L_186:\r
2953 L_182:\r
2954         XOR EAX,EAX\r
2955         MOV AL,BYTE PTR [EBP+24]\r
2956         SHL EAX,5\r
2957         MOV ESI,OFFSET _Ldrv\r
2958         ADD ESI,EAX\r
2959         XOR EAX,EAX\r
2960         MOV AL,BYTE PTR [ESI+28]\r
2961         PUSH EAX\r
2962         PUSH 1\r
2963         MOV EAX,DWORD PTR [EBP-4]\r
2964         INC DWORD PTR [EBP-4]\r
2965         PUSH EAX\r
2966         PUSH 1\r
2967         PUSH OFFSET _abDirSectBuf\r
2968         CALL FWORD PTR _DeviceOp\r
2969         MOV DWORD PTR [EBP-20], EAX\r
2970         MOV EAX,DWORD PTR [EBP-20]\r
2971         AND EAX,EAX\r
2972         JZ L_187\r
2973         MOV EAX,DWORD PTR [EBP-20]\r
2974         JMP L_185\r
2975 L_187:\r
2976         INC DWORD PTR [EBP-8]\r
2977         MOV EAX,DWORD PTR [EBP-8]\r
2978         MOV EAX,OFFSET _abDirSectBuf\r
2979         MOV DWORD PTR [EBP-26], EAX\r
2980         MOV EAX,DWORD PTR [EBP-26]\r
2981         MOV DWORD PTR [EBP-30], EAX\r
2982         XOR EAX,EAX\r
2983         MOV DWORD PTR [EBP-16], EAX\r
2984 L_188:\r
2985         MOV EAX,DWORD PTR [EBP-16]\r
2986         CMP EAX,16\r
2987         SETB AL\r
2988         AND AL,AL\r
2989         JZ L_189\r
2990         JMP SHORT L_190\r
2991 L_191:\r
2992         MOV EAX,DWORD PTR [EBP-16]\r
2993         INC DWORD PTR [EBP-16]\r
2994         JMP SHORT L_188\r
2995 L_190:\r
2996         MOV ESI,DWORD PTR [EBP-26]\r
2997         XOR EAX,EAX\r
2998         MOV AL,BYTE PTR [ESI]\r
2999         XOR ECX,ECX\r
3000         CMP EAX,ECX\r
3001         SETE AL\r
3002         AND AL,AL\r
3003         JZ L_192\r
3004         MOV EAX,1\r
3005         MOV BYTE PTR [EBP-22], AL\r
3006         JMP L_189\r
3007 L_192:\r
3008         PUSH DWORD PTR [EBP-26]\r
3009         PUSH DWORD PTR [EBP+28]\r
3010         PUSH 11\r
3011         CALL FWORD PTR _CompareNCS\r
3012         CMP EAX,-1\r
3013         SETE AL\r
3014         AND AL,AL\r
3015         JZ L_193\r
3016         MOV EAX,1\r
3017         MOV BYTE PTR [EBP-21], AL\r
3018         MOV ESI,DWORD PTR [EBP+16]\r
3019         MOV EAX,DWORD PTR [EBP-4]\r
3020         SUB EAX,1\r
3021         MOV DWORD PTR [ESI], EAX\r
3022         MOV ESI,DWORD PTR [EBP+12]\r
3023         MOV EAX,DWORD PTR [EBP-26]\r
3024         SUB EAX,DWORD PTR [EBP-30]\r
3025         MOV DWORD PTR [ESI], EAX\r
3026         JMP L_189\r
3027 L_193:\r
3028         MOV EAX,DWORD PTR [EBP-26]\r
3029         ADD EAX,32\r
3030         MOV DWORD PTR [EBP-26], EAX\r
3031         JMP L_191\r
3032 L_189:\r
3033         JMP L_179\r
3034 L_180:\r
3035         XOR EAX,EAX\r
3036         MOV AL,BYTE PTR [EBP-21]\r
3037         AND EAX,EAX\r
3038         JZ L_194\r
3039         MOV ESI,DWORD PTR [EBP+8]\r
3040         MOV EAX,DWORD PTR [EBP-26]\r
3041         MOV DWORD PTR [ESI], EAX\r
3042         XOR EAX,EAX\r
3043         JMP L_185\r
3044 L_194:\r
3045         MOV EAX,203\r
3046 L_195:\r
3047 L_185:\r
3048         MOV ESP,EBP\r
3049         POP EBP\r
3050         RETN 24\r
3051 _GetRootEnt:\r
3052         PUSH EBP\r
3053         MOV EBP,ESP\r
3054         SUB ESP,26\r
3055         XOR EAX,EAX\r
3056         MOV AL,BYTE PTR [EBP+20]\r
3057         SHL EAX,5\r
3058         MOV ESI,OFFSET _Ldrv\r
3059         ADD ESI,EAX\r
3060         MOV EAX,DWORD PTR [ESI+12]\r
3061         MOV DWORD PTR [EBP-4], EAX\r
3062         XOR EAX,EAX\r
3063         MOV AL,BYTE PTR [EBP+20]\r
3064         SHL EAX,5\r
3065         MOV ESI,OFFSET _Ldrv\r
3066         ADD ESI,EAX\r
3067         MOVZX EAX,WORD PTR [ESI+24]\r
3068         MOV DWORD PTR [EBP-8], EAX\r
3069         XOR EAX,EAX\r
3070         MOV BYTE PTR [EBP-17], AL\r
3071         XOR EAX,EAX\r
3072         MOV BYTE PTR [EBP-18], AL\r
3073 L_196:\r
3074         MOV EAX,DWORD PTR [EBP-8]\r
3075         AND EAX,EAX\r
3076         JZ L_198\r
3077         XOR EAX,EAX\r
3078         MOV AL,BYTE PTR [EBP-17]\r
3079         AND EAX,EAX\r
3080         SETZ AL\r
3081         AND AL,AL\r
3082         JZ L_199\r
3083         XOR EAX,EAX\r
3084         MOV AL,BYTE PTR [EBP-18]\r
3085         AND EAX,EAX\r
3086         SETZ AL\r
3087         AND AL,AL\r
3088 L_199:\r
3089 L_198:\r
3090         JZ L_197\r
3091         XOR EAX,EAX\r
3092         MOV AL,BYTE PTR [EBP+20]\r
3093         SHL EAX,5\r
3094         MOV ESI,OFFSET _Ldrv\r
3095         ADD ESI,EAX\r
3096         XOR EAX,EAX\r
3097         MOV AL,BYTE PTR [ESI+28]\r
3098         PUSH EAX\r
3099         PUSH 1\r
3100         MOV EAX,DWORD PTR [EBP-4]\r
3101         INC DWORD PTR [EBP-4]\r
3102         PUSH EAX\r
3103         PUSH 1\r
3104         PUSH OFFSET _abRawSector\r
3105         CALL FWORD PTR _DeviceOp\r
3106         MOV DWORD PTR [EBP-16], EAX\r
3107         MOV EAX,DWORD PTR [EBP-16]\r
3108         AND EAX,EAX\r
3109         JZ L_200\r
3110         MOV EAX,DWORD PTR [EBP-16]\r
3111         JMP L_201\r
3112 L_200:\r
3113         MOV EAX,OFFSET _abRawSector\r
3114         MOV DWORD PTR [EBP-22], EAX\r
3115         MOV EAX,DWORD PTR [EBP-22]\r
3116         MOV DWORD PTR [EBP-26], EAX\r
3117         XOR EAX,EAX\r
3118         MOV DWORD PTR [EBP-12], EAX\r
3119 L_202:\r
3120         MOV EAX,DWORD PTR [EBP-12]\r
3121         CMP EAX,16\r
3122         SETB AL\r
3123         AND AL,AL\r
3124         JZ L_203\r
3125         JMP SHORT L_204\r
3126 L_205:\r
3127         MOV EAX,DWORD PTR [EBP-12]\r
3128         INC DWORD PTR [EBP-12]\r
3129         JMP SHORT L_202\r
3130 L_204:\r
3131         MOV ESI,DWORD PTR [EBP-22]\r
3132         XOR EAX,EAX\r
3133         MOV AL,BYTE PTR [ESI]\r
3134         XOR ECX,ECX\r
3135         CMP EAX,ECX\r
3136         SETE AL\r
3137         AND AL,AL\r
3138         JZ L_206\r
3139         MOV EAX,1\r
3140         MOV BYTE PTR [EBP-18], AL\r
3141         JMP L_203\r
3142 L_206:\r
3143         PUSH DWORD PTR [EBP-22]\r
3144         PUSH DWORD PTR [EBP+24]\r
3145         PUSH 11\r
3146         CALL FWORD PTR _CompareNCS\r
3147         CMP EAX,-1\r
3148         SETE AL\r
3149         AND AL,AL\r
3150         JZ L_207\r
3151         MOV EAX,1\r
3152         MOV BYTE PTR [EBP-17], AL\r
3153         MOV ESI,DWORD PTR [EBP+16]\r
3154         MOV EAX,DWORD PTR [EBP-4]\r
3155         SUB EAX,1\r
3156         MOV DWORD PTR [ESI], EAX\r
3157         MOV ESI,DWORD PTR [EBP+12]\r
3158         MOV EAX,DWORD PTR [EBP-22]\r
3159         SUB EAX,DWORD PTR [EBP-26]\r
3160         MOV DWORD PTR [ESI], EAX\r
3161         JMP L_203\r
3162 L_207:\r
3163         DEC DWORD PTR [EBP-8]\r
3164         MOV EAX,DWORD PTR [EBP-22]\r
3165         ADD EAX,32\r
3166         MOV DWORD PTR [EBP-22], EAX\r
3167         JMP L_205\r
3168 L_203:\r
3169         JMP L_196\r
3170 L_197:\r
3171         XOR EAX,EAX\r
3172         MOV AL,BYTE PTR [EBP-17]\r
3173         AND EAX,EAX\r
3174         JZ L_208\r
3175         MOV ESI,DWORD PTR [EBP+8]\r
3176         MOV EAX,DWORD PTR [EBP-22]\r
3177         MOV DWORD PTR [ESI], EAX\r
3178         XOR EAX,EAX\r
3179         JMP L_201\r
3180 L_208:\r
3181         MOV EAX,203\r
3182 L_209:\r
3183 L_201:\r
3184         MOV ESP,EBP\r
3185         POP EBP\r
3186         RETN 20\r
3187 _BuildSpec:\r
3188         PUSH EBP\r
3189         MOV EBP,ESP\r
3190         SUB ESP,74\r
3191         MOV EAX,DWORD PTR [EBP+20]\r
3192         AND EAX,EAX\r
3193         JZ L_210\r
3194         MOV EAX,DWORD PTR [EBP+24]\r
3195         AND EAX,EAX\r
3196         JZ L_211\r
3197         MOV EAX,1\r
3198         MOV ESI,DWORD PTR [EBP+24]\r
3199         ADD ESI,EAX\r
3200         MOVSX EAX,BYTE PTR [ESI]\r
3201         CMP EAX,58\r
3202         SETE AL\r
3203         AND AL,AL\r
3204 L_211:\r
3205 L_210:\r
3206         JZ L_212\r
3207         PUSH DWORD PTR [EBP+24]\r
3208         PUSH DWORD PTR [EBP+16]\r
3209         PUSH DWORD PTR [EBP+20]\r
3210         CALL FWORD PTR _CopyData\r
3211         MOV EAX,DWORD PTR [EBP+20]\r
3212         MOV DWORD PTR [EBP-4], EAX\r
3213         JMP L_213\r
3214 L_212:\r
3215         MOV EAX,DWORD PTR [EBP+20]\r
3216         AND EAX,EAX\r
3217         JZ L_214\r
3218         MOV EAX,DWORD PTR [EBP+24]\r
3219         AND EAX,EAX\r
3220         JZ L_215\r
3221         MOV ESI,DWORD PTR [EBP+24]\r
3222         MOVSX EAX,BYTE PTR [ESI]\r
3223         CMP EAX,92\r
3224         SETE AL\r
3225         AND AL,AL\r
3226 L_215:\r
3227 L_214:\r
3228         JZ L_216\r
3229         PUSH DWORD PTR [EBP+8]\r
3230         LEA EAX,DWORD PTR [EBP-74]\r
3231         PUSH EAX\r
3232         LEA EAX,DWORD PTR [EBP-4]\r
3233         PUSH EAX\r
3234         CALL FWORD PTR _GetPath\r
3235         MOV ESI,DWORD PTR [EBP+16]\r
3236         MOV EBX,ESI\r
3237         LEA ESI,BYTE PTR [EBP-74]\r
3238         MOVSX EAX,BYTE PTR [ESI]\r
3239         MOV BYTE PTR [EBX], AL\r
3240         MOV EAX,1\r
3241         MOV ESI,DWORD PTR [EBP+16]\r
3242         ADD ESI,EAX\r
3243         MOV EAX,1\r
3244         MOV EBX,ESI\r
3245         LEA ESI,BYTE PTR [EBP-74]\r
3246         ADD ESI,EAX\r
3247         MOVSX EAX,BYTE PTR [ESI]\r
3248         MOV BYTE PTR [EBX], AL\r
3249         MOV EAX,2\r
3250         MOV DWORD PTR [EBP-4], EAX\r
3251         PUSH DWORD PTR [EBP+24]\r
3252         MOV EAX,2\r
3253         MOV ESI,DWORD PTR [EBP+16]\r
3254         ADD ESI,EAX\r
3255         PUSH ESI\r
3256         PUSH DWORD PTR [EBP+20]\r
3257         CALL FWORD PTR _CopyData\r
3258         MOV EAX,DWORD PTR [EBP-4]\r
3259         ADD EAX,DWORD PTR [EBP+20]\r
3260         MOV DWORD PTR [EBP-4], EAX\r
3261         JMP L_217\r
3262 L_216:\r
3263         XOR EAX,EAX\r
3264         MOV DWORD PTR [EBP-4], EAX\r
3265         PUSH DWORD PTR [EBP+8]\r
3266         PUSH DWORD PTR [EBP+16]\r
3267         LEA EAX,DWORD PTR [EBP-4]\r
3268         PUSH EAX\r
3269         CALL FWORD PTR _GetPath\r
3270         MOV EAX,DWORD PTR [EBP+20]\r
3271         AND EAX,EAX\r
3272         JZ L_218\r
3273         MOV EAX,DWORD PTR [EBP+24]\r
3274 L_218:\r
3275         AND EAX,EAX\r
3276         JZ L_219\r
3277         MOV EAX,DWORD PTR [EBP+24]\r
3278         AND EAX,EAX\r
3279         JZ L_220\r
3280         MOV EAX,DWORD PTR [EBP+20]\r
3281 L_220:\r
3282         AND EAX,EAX\r
3283         JZ L_221\r
3284         PUSH DWORD PTR [EBP+24]\r
3285         MOV EAX,DWORD PTR [EBP-4]\r
3286         MOV ESI,DWORD PTR [EBP+16]\r
3287         ADD ESI,EAX\r
3288         PUSH ESI\r
3289         PUSH DWORD PTR [EBP+20]\r
3290         CALL FWORD PTR _CopyData\r
3291         MOV EAX,DWORD PTR [EBP-4]\r
3292         ADD EAX,DWORD PTR [EBP+20]\r
3293         MOV DWORD PTR [EBP-4], EAX\r
3294 L_221:\r
3295 L_219:\r
3296 L_217:\r
3297 L_213:\r
3298         MOV ESI,DWORD PTR [EBP+12]\r
3299         MOV EAX,DWORD PTR [EBP-4]\r
3300         MOV DWORD PTR [ESI], EAX\r
3301         MOV ESP,EBP\r
3302         POP EBP\r
3303         RETN 20\r
3304 _ParseName:\r
3305         PUSH EBP\r
3306         MOV EBP,ESP\r
3307         SUB ESP,95\r
3308         XOR EAX,EAX\r
3309         MOV DWORD PTR [EBP-16], EAX\r
3310         XOR EAX,EAX\r
3311         MOV _FDrive, AL\r
3312         PUSH OFFSET _FileSpec\r
3313         PUSH 77\r
3314         PUSH 32\r
3315         CALL FWORD PTR _FillData\r
3316         MOV EAX,DWORD PTR [EBP+12]\r
3317         AND EAX,EAX\r
3318         JZ L_222\r
3319         MOV ESI,DWORD PTR [EBP+16]\r
3320         XOR EAX,EAX\r
3321         MOV AL,BYTE PTR [ESI]\r
3322         CMP EAX,32\r
3323         SETE AL\r
3324         AND AL,AL\r
3325 L_222:\r
3326         JZ L_223\r
3327         MOV EAX,200\r
3328         MOV DWORD PTR [EBP-16], EAX\r
3329 L_223:\r
3330         PUSH DWORD PTR [EBP+16]\r
3331         PUSH DWORD PTR [EBP+12]\r
3332         LEA EAX,DWORD PTR [EBP-91]\r
3333         PUSH EAX\r
3334         LEA EAX,DWORD PTR [EBP-95]\r
3335         PUSH EAX\r
3336         PUSH DWORD PTR [EBP+8]\r
3337         CALL _BuildSpec\r
3338         XOR EAX,EAX\r
3339         MOV DWORD PTR [EBP-8], EAX\r
3340         XOR EAX,EAX\r
3341         MOV DWORD PTR [EBP-12], EAX\r
3342         LEA EAX,DWORD PTR [EBP-91]\r
3343         MOV DWORD PTR [EBP-21], EAX\r
3344         XOR EAX,EAX\r
3345         MOV DWORD PTR [EBP-4], EAX\r
3346 L_224:\r
3347         MOV EAX,DWORD PTR [EBP-4]\r
3348         CMP EAX,DWORD PTR [EBP-95]\r
3349         SETB AL\r
3350         AND AL,AL\r
3351         JZ L_225\r
3352         JMP SHORT L_226\r
3353 L_227:\r
3354         MOV EAX,DWORD PTR [EBP-4]\r
3355         INC DWORD PTR [EBP-4]\r
3356         JMP SHORT L_224\r
3357 L_226:\r
3358         MOV ESI,DWORD PTR [EBP-21]\r
3359         INC DWORD PTR [EBP-21]\r
3360         XOR EAX,EAX\r
3361         MOV AL,BYTE PTR [ESI]\r
3362         MOV BYTE PTR [EBP-17], AL\r
3363         JMP L_229\r
3364 L_230:\r
3365         MOV EAX,DWORD PTR [EBP-8]\r
3366         CMP EAX,0\r
3367         SETA AL\r
3368         AND AL,AL\r
3369         JZ L_231\r
3370         INC DWORD PTR [EBP-12]\r
3371         MOV EAX,DWORD PTR [EBP-12]\r
3372         XOR EAX,EAX\r
3373         MOV DWORD PTR [EBP-8], EAX\r
3374 L_231:\r
3375         JMP L_228\r
3376 L_232:\r
3377         MOV EAX,DWORD PTR [EBP-8]\r
3378         CMP EAX,1\r
3379         SETE AL\r
3380         AND AL,AL\r
3381         JZ L_233\r
3382         MOV EAX,DWORD PTR [EBP-12]\r
3383         CMP EAX,0\r
3384         SETE AL\r
3385         AND AL,AL\r
3386         JZ L_234\r
3387         XOR EAX,EAX\r
3388         MOV AL,_FDrive\r
3389         XOR ECX,ECX\r
3390         CMP EAX,ECX\r
3391         SETE AL\r
3392         AND AL,AL\r
3393 L_234:\r
3394 L_233:\r
3395         JZ L_235\r
3396         MOV ESI,OFFSET _FileSpec\r
3397         XOR EAX,EAX\r
3398         MOV AL,BYTE PTR [ESI]\r
3399         MOV ECX,223\r
3400         AND EAX,ECX\r
3401         MOV _FDrive, AL\r
3402         MOV ESI,OFFSET _FileSpec\r
3403         MOV EAX,32\r
3404         MOV BYTE PTR [ESI], AL\r
3405         XOR EAX,EAX\r
3406         MOV DWORD PTR [EBP-8], EAX\r
3407         XOR EAX,EAX\r
3408         MOV DWORD PTR [EBP-12], EAX\r
3409         JMP L_236\r
3410 L_235:\r
3411         MOV EAX,200\r
3412         MOV DWORD PTR [EBP-16], EAX\r
3413 L_236:\r
3414         JMP L_228\r
3415 L_237:\r
3416         MOV EAX,DWORD PTR [EBP-8]\r
3417         CMP EAX,8\r
3418         SETA AL\r
3419         AND AL,AL\r
3420         JZ L_238\r
3421         MOV EAX,200\r
3422         MOV DWORD PTR [EBP-16], EAX\r
3423         JMP L_239\r
3424 L_238:\r
3425         MOV EAX,8\r
3426         MOV DWORD PTR [EBP-8], EAX\r
3427 L_239:\r
3428         JMP L_228\r
3429 L_240:\r
3430 L_241:\r
3431 L_242:\r
3432 L_243:\r
3433 L_244:\r
3434 L_245:\r
3435 L_246:\r
3436 L_247:\r
3437 L_248:\r
3438 L_249:\r
3439 L_250:\r
3440 L_251:\r
3441         MOV EAX,200\r
3442         MOV DWORD PTR [EBP-16], EAX\r
3443         JMP L_228\r
3444 L_252:\r
3445         MOV EAX,DWORD PTR [EBP-8]\r
3446         CMP EAX,10\r
3447         SETA AL\r
3448         AND AL,AL\r
3449         JZ L_253\r
3450         MOV EAX,200\r
3451         MOV DWORD PTR [EBP-16], EAX\r
3452         JMP L_254\r
3453 L_253:\r
3454         XOR EAX,EAX\r
3455         MOV AL,BYTE PTR [EBP-17]\r
3456         CMP EAX,65\r
3457         SETAE AL\r
3458         AND AL,AL\r
3459         JZ L_255\r
3460         XOR EAX,EAX\r
3461         MOV AL,BYTE PTR [EBP-17]\r
3462         CMP EAX,90\r
3463         SETBE AL\r
3464         AND AL,AL\r
3465 L_255:\r
3466         JNZ L_256\r
3467         XOR EAX,EAX\r
3468         MOV AL,BYTE PTR [EBP-17]\r
3469         CMP EAX,97\r
3470         SETAE AL\r
3471         AND AL,AL\r
3472         JZ L_257\r
3473         XOR EAX,EAX\r
3474         MOV AL,BYTE PTR [EBP-17]\r
3475         CMP EAX,122\r
3476         SETBE AL\r
3477         AND AL,AL\r
3478 L_257:\r
3479 L_256:\r
3480         JZ L_258\r
3481         XOR EAX,EAX\r
3482         MOV AL,BYTE PTR [EBP-17]\r
3483         MOV ECX,223\r
3484         AND EAX,ECX\r
3485         MOV BYTE PTR [EBP-17], AL\r
3486 L_258:\r
3487         MOV EAX,DWORD PTR [EBP-12]\r
3488         MOV ECX,11\r
3489         MUL ECX\r
3490         ADD EAX,DWORD PTR [EBP-8]\r
3491         MOV ESI,OFFSET _FileSpec\r
3492         ADD ESI,EAX\r
3493         XOR EAX,EAX\r
3494         MOV AL,BYTE PTR [EBP-17]\r
3495         MOV BYTE PTR [ESI], AL\r
3496         INC DWORD PTR [EBP-8]\r
3497         MOV EAX,DWORD PTR [EBP-8]\r
3498 L_254:\r
3499         JMP L_228\r
3500 L_229:\r
3501         CMP EAX,63\r
3502         JE L_251\r
3503         CMP EAX,42\r
3504         JE L_250\r
3505         CMP EAX,64\r
3506         JE L_249\r
3507         CMP EAX,61\r
3508         JE L_248\r
3509         CMP EAX,43\r
3510         JE L_247\r
3511         CMP EAX,91\r
3512         JE L_246\r
3513         CMP EAX,93\r
3514         JE L_245\r
3515         CMP EAX,124\r
3516         JE L_244\r
3517         CMP EAX,43\r
3518         JE L_243\r
3519         CMP EAX,44\r
3520         JE L_242\r
3521         CMP EAX,60\r
3522         JE L_241\r
3523         CMP EAX,62\r
3524         JE L_240\r
3525         CMP EAX,46\r
3526         JE L_237\r
3527         CMP EAX,58\r
3528         JE L_232\r
3529         CMP EAX,92\r
3530         JE L_230\r
3531         JMP L_252\r
3532 L_228:\r
3533         MOV EAX,DWORD PTR [EBP-16]\r
3534         AND EAX,EAX\r
3535         JNZ L_225\r
3536         JMP L_227\r
3537 L_225:\r
3538         MOV EAX,DWORD PTR [EBP-12]\r
3539         MOV _SpecDepth, AL\r
3540         MOV EAX,DWORD PTR [EBP-16]\r
3541 L_260:\r
3542         MOV ESP,EBP\r
3543         POP EBP\r
3544         RETN 12\r
3545 _GetDirSectorM:\r
3546         PUSH EBP\r
3547         MOV EBP,ESP\r
3548         SUB ESP,44\r
3549         MOV EAX,DWORD PTR [EBP+24]\r
3550         CMP EAX,512\r
3551         SETG AL\r
3552         AND AL,AL\r
3553         JZ L_261\r
3554         MOV EAX,512\r
3555         MOV DWORD PTR [EBP+24], EAX\r
3556 L_261:\r
3557         PUSH DWORD PTR [EBP+36]\r
3558         PUSH DWORD PTR [EBP+32]\r
3559         PUSH DWORD PTR [EBP+8]\r
3560         CALL _ParseName\r
3561         MOV DWORD PTR [EBP-20], EAX\r
3562         XOR EAX,EAX\r
3563         MOV AL,_FDrive\r
3564         CMP EAX,64\r
3565         SETA AL\r
3566         AND AL,AL\r
3567         JZ L_262\r
3568         XOR EAX,EAX\r
3569         MOV AL,_FDrive\r
3570         CMP EAX,82\r
3571         SETB AL\r
3572         AND AL,AL\r
3573 L_262:\r
3574         JZ L_263\r
3575         XOR EAX,EAX\r
3576         MOV AL,_FDrive\r
3577         MOV ECX,65\r
3578         SUB EAX,ECX\r
3579         MOV BYTE PTR [EBP-44], AL\r
3580         JMP L_264\r
3581 L_263:\r
3582         MOV EAX,201\r
3583         JMP L_265\r
3584 L_264:\r
3585         XOR EAX,EAX\r
3586         MOV AL,BYTE PTR [EBP-44]\r
3587         CMP EAX,2\r
3588         SETB AL\r
3589         AND AL,AL\r
3590         JZ L_266\r
3591         XOR EAX,EAX\r
3592         MOV AL,BYTE PTR [EBP-44]\r
3593         PUSH EAX\r
3594         CALL _StatFloppy\r
3595         XOR EAX,EAX\r
3596         MOV AL,BYTE PTR [EBP-44]\r
3597         PUSH EAX\r
3598         CALL _read_BS\r
3599         MOV DWORD PTR [EBP-20], EAX\r
3600 L_266:\r
3601         XOR EAX,EAX\r
3602         MOV AL,BYTE PTR [EBP-44]\r
3603         SHL EAX,5\r
3604         MOV ESI,OFFSET _Ldrv\r
3605         ADD ESI,EAX\r
3606         XOR EAX,EAX\r
3607         MOV AL,BYTE PTR [ESI+28]\r
3608         CMP EAX,255\r
3609         SETE AL\r
3610         AND AL,AL\r
3611         JZ L_267\r
3612         MOV EAX,201\r
3613         JMP L_265\r
3614 L_267:\r
3615         XOR EAX,EAX\r
3616         MOV AL,BYTE PTR [EBP-44]\r
3617         SHL EAX,5\r
3618         MOV ESI,OFFSET _Ldrv\r
3619         ADD ESI,EAX\r
3620         MOV EAX,DWORD PTR [ESI+12]\r
3621         MOV DWORD PTR [EBP-8], EAX\r
3622         XOR EAX,EAX\r
3623         MOV AL,BYTE PTR [EBP-44]\r
3624         SHL EAX,5\r
3625         MOV ESI,OFFSET _Ldrv\r
3626         ADD ESI,EAX\r
3627         MOVZX EAX,WORD PTR [ESI+24]\r
3628         MOV DWORD PTR [EBP-12], EAX\r
3629         MOV ESI,OFFSET _FileSpec\r
3630         XOR EAX,EAX\r
3631         MOV AL,BYTE PTR [ESI]\r
3632         CMP EAX,32\r
3633         SETE AL\r
3634         AND AL,AL\r
3635         JZ L_268\r
3636         MOV EAX,DWORD PTR [EBP-12]\r
3637         MOV ECX,32\r
3638         XOR EDX,EDX\r
3639         DIV ECX\r
3640         CMP EAX,DWORD PTR [EBP+20]\r
3641         SETB AL\r
3642         AND AL,AL\r
3643         JZ L_269\r
3644         MOV EAX,224\r
3645         JMP L_265\r
3646 L_269:\r
3647         XOR EAX,EAX\r
3648         MOV AL,BYTE PTR [EBP-44]\r
3649         SHL EAX,5\r
3650         MOV ESI,OFFSET _Ldrv\r
3651         ADD ESI,EAX\r
3652         XOR EAX,EAX\r
3653         MOV AL,BYTE PTR [ESI+28]\r
3654         PUSH EAX\r
3655         PUSH 1\r
3656         MOV EAX,DWORD PTR [EBP-8]\r
3657         ADD EAX,DWORD PTR [EBP+20]\r
3658         PUSH EAX\r
3659         PUSH 1\r
3660         PUSH OFFSET _abRawSector\r
3661         CALL FWORD PTR _DeviceOp\r
3662         MOV DWORD PTR [EBP-20], EAX\r
3663         MOV EAX,DWORD PTR [EBP-20]\r
3664         AND EAX,EAX\r
3665         JNZ L_270\r
3666         MOV ESI,DWORD PTR [EBP+16]\r
3667         MOV EAX,DWORD PTR [EBP-8]\r
3668         ADD EAX,DWORD PTR [EBP+20]\r
3669         MOV DWORD PTR [ESI], EAX\r
3670         PUSH OFFSET _abRawSector\r
3671         PUSH DWORD PTR [EBP+28]\r
3672         PUSH DWORD PTR [EBP+24]\r
3673         CALL FWORD PTR _CopyData\r
3674 L_270:\r
3675         MOV EAX,DWORD PTR [EBP-20]\r
3676         JMP L_265\r
3677 L_268:\r
3678         XOR EAX,EAX\r
3679         MOV BYTE PTR [EBP-39], AL\r
3680 L_271:\r
3681         MOV EAX,DWORD PTR [EBP-12]\r
3682         AND EAX,EAX\r
3683         JZ L_273\r
3684         XOR EAX,EAX\r
3685         MOV AL,BYTE PTR [EBP-39]\r
3686         AND EAX,EAX\r
3687         SETZ AL\r
3688         AND AL,AL\r
3689 L_273:\r
3690         JZ L_272\r
3691         XOR EAX,EAX\r
3692         MOV AL,BYTE PTR [EBP-44]\r
3693         SHL EAX,5\r
3694         MOV ESI,OFFSET _Ldrv\r
3695         ADD ESI,EAX\r
3696         XOR EAX,EAX\r
3697         MOV AL,BYTE PTR [ESI+28]\r
3698         PUSH EAX\r
3699         PUSH 1\r
3700         MOV EAX,DWORD PTR [EBP-8]\r
3701         INC DWORD PTR [EBP-8]\r
3702         PUSH EAX\r
3703         PUSH 1\r
3704         PUSH OFFSET _abRawSector\r
3705         CALL FWORD PTR _DeviceOp\r
3706         MOV DWORD PTR [EBP-20], EAX\r
3707         MOV EAX,DWORD PTR [EBP-20]\r
3708         AND EAX,EAX\r
3709         JZ L_274\r
3710         MOV EAX,DWORD PTR [EBP-20]\r
3711         JMP L_265\r
3712 L_274:\r
3713         MOV EAX,OFFSET _abRawSector\r
3714         MOV DWORD PTR [EBP-43], EAX\r
3715         XOR EAX,EAX\r
3716         MOV DWORD PTR [EBP-16], EAX\r
3717 L_275:\r
3718         MOV EAX,DWORD PTR [EBP-16]\r
3719         CMP EAX,16\r
3720         SETB AL\r
3721         AND AL,AL\r
3722         JZ L_276\r
3723         JMP SHORT L_277\r
3724 L_278:\r
3725         MOV EAX,DWORD PTR [EBP-16]\r
3726         INC DWORD PTR [EBP-16]\r
3727         JMP SHORT L_275\r
3728 L_277:\r
3729         PUSH DWORD PTR [EBP-43]\r
3730         PUSH OFFSET _FileSpec\r
3731         PUSH 11\r
3732         CALL FWORD PTR _CompareNCS\r
3733         CMP EAX,-1\r
3734         SETE AL\r
3735         AND AL,AL\r
3736         JZ L_279\r
3737         MOV EAX,1\r
3738         MOV BYTE PTR [EBP-39], AL\r
3739         JMP L_276\r
3740 L_279:\r
3741         DEC DWORD PTR [EBP-12]\r
3742         MOV EAX,DWORD PTR [EBP-43]\r
3743         ADD EAX,32\r
3744         MOV DWORD PTR [EBP-43], EAX\r
3745         JMP L_278\r
3746 L_276:\r
3747         JMP L_271\r
3748 L_272:\r
3749         XOR EAX,EAX\r
3750         MOV AL,BYTE PTR [EBP-39]\r
3751         AND EAX,EAX\r
3752         JNZ L_280\r
3753         MOV EAX,224\r
3754         JMP L_265\r
3755 L_280:\r
3756         MOV EAX,DWORD PTR [EBP-43]\r
3757         MOV _pDirEnt, EAX\r
3758         MOV ESI,_pDirEnt\r
3759         XOR EAX,EAX\r
3760         MOV AL,BYTE PTR [ESI+11]\r
3761         MOV ECX,16\r
3762         AND EAX,ECX\r
3763         JNZ L_281\r
3764         MOV EAX,204\r
3765         JMP L_265\r
3766 L_281:\r
3767         XOR EAX,EAX\r
3768         MOV AL,BYTE PTR [EBP-44]\r
3769         SHL EAX,5\r
3770         MOV ESI,OFFSET _Ldrv\r
3771         ADD ESI,EAX\r
3772         XOR EAX,EAX\r
3773         MOV AL,BYTE PTR [ESI+31]\r
3774         AND EAX,EAX\r
3775         JZ L_282\r
3776         MOV EAX,65528\r
3777         MOV WORD PTR [EBP-34], AX\r
3778         JMP L_283\r
3779 L_282:\r
3780         MOV EAX,4088\r
3781         MOV WORD PTR [EBP-34], AX\r
3782 L_283:\r
3783         XOR EAX,EAX\r
3784         MOV AL,BYTE PTR [EBP-44]\r
3785         SHL EAX,5\r
3786         MOV ESI,OFFSET _Ldrv\r
3787         ADD ESI,EAX\r
3788         XOR EAX,EAX\r
3789         MOV AL,BYTE PTR [ESI+29]\r
3790         MOV DWORD PTR [EBP-24], EAX\r
3791         MOV ESI,_pDirEnt\r
3792         MOVZX EAX,WORD PTR [ESI+26]\r
3793         MOV WORD PTR [EBP-36], AX\r
3794         MOV EAX,1\r
3795         MOV DWORD PTR [EBP-28], EAX\r
3796 L_284:\r
3797         MOV EAX,DWORD PTR [EBP-20]\r
3798         AND EAX,EAX\r
3799         JNZ L_285\r
3800         MOV EAX,DWORD PTR [EBP-28]\r
3801         MOV ECX,11\r
3802         MUL ECX\r
3803         ADD EAX,0\r
3804         MOV ESI,OFFSET _FileSpec\r
3805         ADD ESI,EAX\r
3806         XOR EAX,EAX\r
3807         MOV AL,BYTE PTR [ESI]\r
3808         CMP EAX,32\r
3809         SETE AL\r
3810         AND AL,AL\r
3811         JZ L_286\r
3812         MOV ESI,_pDirEnt\r
3813         XOR EAX,EAX\r
3814         MOV AL,BYTE PTR [ESI+11]\r
3815         MOV ECX,16\r
3816         AND EAX,ECX\r
3817         JNZ L_287\r
3818         MOV EAX,204\r
3819         JMP L_265\r
3820 L_287:\r
3821         MOV EAX,DWORD PTR [EBP+20]\r
3822         MOV ECX,DWORD PTR [EBP-24]\r
3823         CDQ\r
3824         IDIV ECX\r
3825         MOV WORD PTR [EBP-38], AX\r
3826         MOV EAX,DWORD PTR [EBP+20]\r
3827         MOV ECX,DWORD PTR [EBP-24]\r
3828         CDQ\r
3829         IDIV ECX\r
3830         MOV EAX,EDX\r
3831         MOV DWORD PTR [EBP-32], EAX\r
3832         MOVZX EAX,WORD PTR [EBP-36]\r
3833         PUSH EAX\r
3834         XOR EAX,EAX\r
3835         MOV AL,BYTE PTR [EBP-44]\r
3836         PUSH EAX\r
3837         CALL _ClsToLBA\r
3838         MOV DWORD PTR [EBP-4], EAX\r
3839 L_288:\r
3840         MOVZX EAX,WORD PTR [EBP-38]\r
3841         DEC WORD PTR [EBP-38]\r
3842         AND EAX,EAX\r
3843         JZ L_290\r
3844         MOV EAX,DWORD PTR [EBP-20]\r
3845         AND EAX,EAX\r
3846         SETZ AL\r
3847         AND AL,AL\r
3848 L_290:\r
3849         JZ L_289\r
3850         XOR EAX,EAX\r
3851         MOV AL,BYTE PTR [EBP-44]\r
3852         PUSH EAX\r
3853         MOVZX EAX,WORD PTR [EBP-36]\r
3854         PUSH EAX\r
3855         LEA EAX,WORD PTR [EBP-36]\r
3856         PUSH EAX\r
3857         CALL _NextFATClstr\r
3858         MOV DWORD PTR [EBP-20], EAX\r
3859         JMP L_288\r
3860 L_289:\r
3861         MOV EAX,DWORD PTR [EBP-20]\r
3862         AND EAX,EAX\r
3863         JZ L_291\r
3864         MOV EAX,DWORD PTR [EBP-20]\r
3865         JMP L_265\r
3866 L_291:\r
3867         MOVZX EAX,WORD PTR [EBP-36]\r
3868         PUSH EAX\r
3869         XOR EAX,EAX\r
3870         MOV AL,BYTE PTR [EBP-44]\r
3871         PUSH EAX\r
3872         CALL _ClsToLBA\r
3873         MOV DWORD PTR [EBP-4], EAX\r
3874         MOV EAX,DWORD PTR [EBP-4]\r
3875         ADD EAX,DWORD PTR [EBP-32]\r
3876         MOV DWORD PTR [EBP-4], EAX\r
3877         XOR EAX,EAX\r
3878         MOV AL,BYTE PTR [EBP-44]\r
3879         SHL EAX,5\r
3880         MOV ESI,OFFSET _Ldrv\r
3881         ADD ESI,EAX\r
3882         XOR EAX,EAX\r
3883         MOV AL,BYTE PTR [ESI+28]\r
3884         PUSH EAX\r
3885         PUSH 1\r
3886         PUSH DWORD PTR [EBP-4]\r
3887         PUSH 1\r
3888         PUSH OFFSET _abRawSector\r
3889         CALL FWORD PTR _DeviceOp\r
3890         MOV DWORD PTR [EBP-20], EAX\r
3891         MOV EAX,DWORD PTR [EBP-20]\r
3892         AND EAX,EAX\r
3893         JNZ L_292\r
3894         PUSH OFFSET _abRawSector\r
3895         PUSH DWORD PTR [EBP+28]\r
3896         PUSH DWORD PTR [EBP+24]\r
3897         CALL FWORD PTR _CopyData\r
3898         MOV ESI,DWORD PTR [EBP+16]\r
3899         MOV EAX,DWORD PTR [EBP-4]\r
3900         MOV DWORD PTR [ESI], EAX\r
3901         MOV ESI,DWORD PTR [EBP+12]\r
3902         MOVZX EAX,WORD PTR [EBP-36]\r
3903         MOV WORD PTR [ESI], AX\r
3904 L_292:\r
3905         MOV EAX,DWORD PTR [EBP-20]\r
3906         JMP L_265\r
3907 L_286:\r
3908         MOVZX EAX,WORD PTR [EBP-36]\r
3909         PUSH EAX\r
3910         XOR EAX,EAX\r
3911         MOV AL,BYTE PTR [EBP-44]\r
3912         PUSH EAX\r
3913         CALL _ClsToLBA\r
3914         MOV DWORD PTR [EBP-4], EAX\r
3915         XOR EAX,EAX\r
3916         MOV BYTE PTR [EBP-39], AL\r
3917         XOR EAX,EAX\r
3918         MOV DWORD PTR [EBP-8], EAX\r
3919 L_294:\r
3920         XOR EAX,EAX\r
3921         MOV AL,BYTE PTR [EBP-39]\r
3922         AND EAX,EAX\r
3923         JNZ L_295\r
3924         MOV EAX,DWORD PTR [EBP-8]\r
3925         CMP EAX,DWORD PTR [EBP-24]\r
3926         SETE AL\r
3927         AND AL,AL\r
3928         JZ L_296\r
3929         XOR EAX,EAX\r
3930         MOV AL,BYTE PTR [EBP-44]\r
3931         PUSH EAX\r
3932         MOVZX EAX,WORD PTR [EBP-36]\r
3933         PUSH EAX\r
3934         LEA EAX,WORD PTR [EBP-36]\r
3935         PUSH EAX\r
3936         CALL _NextFATClstr\r
3937         MOV DWORD PTR [EBP-20], EAX\r
3938         MOV EAX,DWORD PTR [EBP-20]\r
3939         AND EAX,EAX\r
3940         JNZ L_297\r
3941         MOVZX EAX,WORD PTR [EBP-36]\r
3942         MOVZX ECX,WORD PTR [EBP-34]\r
3943         CMP EAX,ECX\r
3944         SETAE AL\r
3945         AND AL,AL\r
3946         JZ L_298\r
3947         MOV EAX,203\r
3948         JMP L_265\r
3949 L_298:\r
3950         MOVZX EAX,WORD PTR [EBP-36]\r
3951         PUSH EAX\r
3952         XOR EAX,EAX\r
3953         MOV AL,BYTE PTR [EBP-44]\r
3954         PUSH EAX\r
3955         CALL _ClsToLBA\r
3956         MOV DWORD PTR [EBP-4], EAX\r
3957         XOR EAX,EAX\r
3958         MOV DWORD PTR [EBP-8], EAX\r
3959         JMP L_299\r
3960 L_297:\r
3961         MOV EAX,DWORD PTR [EBP-20]\r
3962         JMP L_265\r
3963 L_299:\r
3964 L_296:\r
3965         XOR EAX,EAX\r
3966         MOV AL,BYTE PTR [EBP-44]\r
3967         SHL EAX,5\r
3968         MOV ESI,OFFSET _Ldrv\r
3969         ADD ESI,EAX\r
3970         XOR EAX,EAX\r
3971         MOV AL,BYTE PTR [ESI+28]\r
3972         PUSH EAX\r
3973         PUSH 1\r
3974         MOV EAX,DWORD PTR [EBP-4]\r
3975         INC DWORD PTR [EBP-4]\r
3976         PUSH EAX\r
3977         PUSH 1\r
3978         PUSH OFFSET _abRawSector\r
3979         CALL FWORD PTR _DeviceOp\r
3980         MOV DWORD PTR [EBP-20], EAX\r
3981         MOV EAX,DWORD PTR [EBP-20]\r
3982         AND EAX,EAX\r
3983         JZ L_300\r
3984         MOV EAX,DWORD PTR [EBP-20]\r
3985         JMP L_265\r
3986 L_300:\r
3987         MOV EAX,DWORD PTR [EBP-8]\r
3988         INC DWORD PTR [EBP-8]\r
3989         MOV EAX,OFFSET _abRawSector\r
3990         MOV DWORD PTR [EBP-43], EAX\r
3991         XOR EAX,EAX\r
3992         MOV DWORD PTR [EBP-16], EAX\r
3993 L_301:\r
3994         MOV EAX,DWORD PTR [EBP-16]\r
3995         CMP EAX,16\r
3996         SETB AL\r
3997         AND AL,AL\r
3998         JZ L_302\r
3999         JMP SHORT L_303\r
4000 L_304:\r
4001         MOV EAX,DWORD PTR [EBP-16]\r
4002         INC DWORD PTR [EBP-16]\r
4003         JMP SHORT L_301\r
4004 L_303:\r
4005         PUSH DWORD PTR [EBP-43]\r
4006         MOV EAX,DWORD PTR [EBP-28]\r
4007         MOV ECX,11\r
4008         MUL ECX\r
4009         MOV ESI,OFFSET _FileSpec\r
4010         ADD ESI,EAX\r
4011         PUSH ESI\r
4012         PUSH 11\r
4013         CALL FWORD PTR _CompareNCS\r
4014         CMP EAX,-1\r
4015         SETE AL\r
4016         AND AL,AL\r
4017         JZ L_305\r
4018         MOV EAX,1\r
4019         MOV BYTE PTR [EBP-39], AL\r
4020         JMP L_302\r
4021 L_305:\r
4022         MOV EAX,DWORD PTR [EBP-43]\r
4023         ADD EAX,32\r
4024         MOV DWORD PTR [EBP-43], EAX\r
4025         JMP L_304\r
4026 L_302:\r
4027         JMP L_294\r
4028 L_295:\r
4029         MOV EAX,DWORD PTR [EBP-43]\r
4030         MOV _pDirEnt, EAX\r
4031         MOV ESI,_pDirEnt\r
4032         MOVZX EAX,WORD PTR [ESI+26]\r
4033         MOV WORD PTR [EBP-36], AX\r
4034 L_293:\r
4035         INC DWORD PTR [EBP-28]\r
4036         MOV EAX,DWORD PTR [EBP-28]\r
4037         JMP L_284\r
4038 L_285:\r
4039         MOV EAX,DWORD PTR [EBP-20]\r
4040 L_265:\r
4041         MOV ESP,EBP\r
4042         POP EBP\r
4043         RETN 32\r
4044 _ReadBlockM:\r
4045         PUSH EBP\r
4046         MOV EBP,ESP\r
4047         SUB ESP,47\r
4048         PUSH DWORD PTR [EBP+28]\r
4049         LEA EAX,DWORD PTR [EBP-16]\r
4050         PUSH EAX\r
4051         CALL _ValidateHandle\r
4052         MOV DWORD PTR [EBP-4], EAX\r
4053         MOV EAX,DWORD PTR [EBP-4]\r
4054         AND EAX,EAX\r
4055         JZ L_306\r
4056         MOV EAX,DWORD PTR [EBP-4]\r
4057         JMP L_307\r
4058 L_306:\r
4059         MOV EAX,DWORD PTR [EBP+28]\r
4060         SHL EAX,5\r
4061         MOV ESI,_paFUB\r
4062         ADD ESI,EAX\r
4063         XOR EAX,EAX\r
4064         MOV AL,BYTE PTR [ESI+27]\r
4065         AND EAX,EAX\r
4066         JZ L_308\r
4067         XOR EAX,EAX\r
4068         MOV AL,BYTE PTR [EBP+8]\r
4069         AND EAX,EAX\r
4070         SETZ AL\r
4071         AND AL,AL\r
4072 L_308:\r
4073         JZ L_309\r
4074         MOV ESI,DWORD PTR [EBP+12]\r
4075         XOR EAX,EAX\r
4076         MOV DWORD PTR [ESI], EAX\r
4077         MOV EAX,214\r
4078         JMP L_307\r
4079 L_309:\r
4080         MOV EAX,DWORD PTR [EBP+20]\r
4081         MOV ECX,512\r
4082         XOR EDX,EDX\r
4083         DIV ECX\r
4084         MOV DWORD PTR [EBP-40], EAX\r
4085         MOV EAX,DWORD PTR [EBP-16]\r
4086         MOV ECX,64\r
4087         MUL ECX\r
4088         MOV ESI,_paFCB\r
4089         ADD ESI,EAX\r
4090         XOR EAX,EAX\r
4091         MOV AL,BYTE PTR [ESI+38]\r
4092         MOV BYTE PTR [EBP-47], AL\r
4093         XOR EAX,EAX\r
4094         MOV AL,BYTE PTR [EBP-47]\r
4095         SHL EAX,5\r
4096         MOV ESI,OFFSET _Ldrv\r
4097         ADD ESI,EAX\r
4098         XOR EAX,EAX\r
4099         MOV AL,BYTE PTR [ESI+29]\r
4100         MOV DWORD PTR [EBP-24], EAX\r
4101         MOV EAX,DWORD PTR [EBP-24]\r
4102         MOV ECX,512\r
4103         MUL ECX\r
4104         MOV DWORD PTR [EBP-20], EAX\r
4105         XOR EAX,EAX\r
4106         MOV AL,BYTE PTR [EBP-47]\r
4107         SHL EAX,5\r
4108         MOV ESI,OFFSET _Ldrv\r
4109         ADD ESI,EAX\r
4110         XOR EAX,EAX\r
4111         MOV AL,BYTE PTR [ESI+31]\r
4112         AND EAX,EAX\r
4113         JZ L_310\r
4114         MOV EAX,65528\r
4115         MOV WORD PTR [EBP-44], AX\r
4116         JMP L_311\r
4117 L_310:\r
4118         MOV EAX,4088\r
4119         MOV WORD PTR [EBP-44], AX\r
4120 L_311:\r
4121         PUSH DWORD PTR [EBP+28]\r
4122         PUSH DWORD PTR [EBP+16]\r
4123         LEA EAX,WORD PTR [EBP-42]\r
4124         PUSH EAX\r
4125         LEA EAX,DWORD PTR [EBP-32]\r
4126         PUSH EAX\r
4127         CALL _GetAbsoluteClstr\r
4128         MOV DWORD PTR [EBP-4], EAX\r
4129         MOVZX EAX,WORD PTR [EBP-42]\r
4130         PUSH EAX\r
4131         XOR EAX,EAX\r
4132         MOV AL,BYTE PTR [EBP-47]\r
4133         PUSH EAX\r
4134         CALL _ClsToLBA\r
4135         MOV DWORD PTR [EBP-12], EAX\r
4136         MOV EAX,DWORD PTR [EBP+16]\r
4137         MOV ECX,512\r
4138         XOR EDX,EDX\r
4139         DIV ECX\r
4140         MOV ECX,DWORD PTR [EBP-24]\r
4141         XOR EDX,EDX\r
4142         DIV ECX\r
4143         MOV EAX,EDX\r
4144         ADD EAX,DWORD PTR [EBP-12]\r
4145         MOV DWORD PTR [EBP-12], EAX\r
4146         MOV EAX,DWORD PTR [EBP+16]\r
4147         MOV ECX,512\r
4148         XOR EDX,EDX\r
4149         DIV ECX\r
4150         MOV ECX,DWORD PTR [EBP-24]\r
4151         XOR EDX,EDX\r
4152         DIV ECX\r
4153         MOV ECX,EDX\r
4154         MOV EAX,DWORD PTR [EBP-24]\r
4155         SUB EAX,ECX\r
4156         MOV DWORD PTR [EBP-36], EAX\r
4157         XOR EAX,EAX\r
4158         MOV DWORD PTR [EBP-28], EAX\r
4159 L_312:\r
4160         MOV EAX,DWORD PTR [EBP-40]\r
4161         AND EAX,EAX\r
4162         JZ L_314\r
4163         MOV EAX,DWORD PTR [EBP-4]\r
4164         AND EAX,EAX\r
4165         SETZ AL\r
4166         AND AL,AL\r
4167 L_314:\r
4168         JZ L_313\r
4169         MOV EAX,DWORD PTR [EBP-40]\r
4170         CMP EAX,DWORD PTR [EBP-36]\r
4171         SETA AL\r
4172         AND AL,AL\r
4173         JZ L_315\r
4174         MOV EAX,DWORD PTR [EBP-36]\r
4175         MOV DWORD PTR [EBP-8], EAX\r
4176         JMP L_316\r
4177 L_315:\r
4178         MOV EAX,DWORD PTR [EBP-40]\r
4179         MOV DWORD PTR [EBP-8], EAX\r
4180 L_316:\r
4181         MOV EAX,DWORD PTR [EBP+28]\r
4182         SHL EAX,5\r
4183         MOV ESI,_paFUB\r
4184         ADD ESI,EAX\r
4185         MOVZX EAX,WORD PTR [EBP-42]\r
4186         MOV WORD PTR [ESI+24], AX\r
4187         MOV EAX,DWORD PTR [EBP+28]\r
4188         SHL EAX,5\r
4189         MOV ESI,_paFUB\r
4190         ADD ESI,EAX\r
4191         MOV EAX,DWORD PTR [EBP-32]\r
4192         MOV DWORD PTR [ESI+20], EAX\r
4193         XOR EAX,EAX\r
4194         MOV AL,BYTE PTR [EBP-47]\r
4195         SHL EAX,5\r
4196         MOV ESI,OFFSET _Ldrv\r
4197         ADD ESI,EAX\r
4198         XOR EAX,EAX\r
4199         MOV AL,BYTE PTR [ESI+28]\r
4200         PUSH EAX\r
4201         PUSH 1\r
4202         PUSH DWORD PTR [EBP-12]\r
4203         PUSH DWORD PTR [EBP-8]\r
4204         PUSH DWORD PTR [EBP+24]\r
4205         CALL FWORD PTR _DeviceOp\r
4206         MOV DWORD PTR [EBP-4], EAX\r
4207         MOV EAX,DWORD PTR [EBP-4]\r
4208         AND EAX,EAX\r
4209         JZ L_317\r
4210         JMP L_313\r
4211 L_317:\r
4212         MOV EAX,DWORD PTR [EBP-8]\r
4213         MOV ECX,512\r
4214         MUL ECX\r
4215         ADD EAX,DWORD PTR [EBP+24]\r
4216         MOV DWORD PTR [EBP+24], EAX\r
4217         MOV EAX,DWORD PTR [EBP-40]\r
4218         SUB EAX,DWORD PTR [EBP-8]\r
4219         MOV DWORD PTR [EBP-40], EAX\r
4220         MOV EAX,DWORD PTR [EBP-36]\r
4221         SUB EAX,DWORD PTR [EBP-8]\r
4222         MOV DWORD PTR [EBP-36], EAX\r
4223         MOV EAX,DWORD PTR [EBP-28]\r
4224         ADD EAX,DWORD PTR [EBP-8]\r
4225         MOV DWORD PTR [EBP-28], EAX\r
4226         MOV EAX,DWORD PTR [EBP-40]\r
4227         AND EAX,EAX\r
4228         JZ L_318\r
4229         MOV EAX,DWORD PTR [EBP-36]\r
4230         AND EAX,EAX\r
4231         SETZ AL\r
4232         AND AL,AL\r
4233 L_318:\r
4234         JZ L_319\r
4235         MOV EAX,DWORD PTR [EBP-24]\r
4236         MOV DWORD PTR [EBP-36], EAX\r
4237         MOVZX EAX,WORD PTR [EBP-42]\r
4238         MOV WORD PTR [EBP-46], AX\r
4239         XOR EAX,EAX\r
4240         MOV AL,BYTE PTR [EBP-47]\r
4241         PUSH EAX\r
4242         MOVZX EAX,WORD PTR [EBP-42]\r
4243         PUSH EAX\r
4244         LEA EAX,WORD PTR [EBP-42]\r
4245         PUSH EAX\r
4246         CALL _NextFATClstr\r
4247         MOV DWORD PTR [EBP-4], EAX\r
4248         MOV EAX,DWORD PTR [EBP-4]\r
4249         AND EAX,EAX\r
4250         JZ L_320\r
4251         MOV ESI,DWORD PTR [EBP+12]\r
4252         MOV EAX,DWORD PTR [EBP-28]\r
4253         MOV ECX,512\r
4254         MUL ECX\r
4255         MOV DWORD PTR [ESI], EAX\r
4256         MOV EAX,DWORD PTR [EBP-4]\r
4257         JMP L_307\r
4258 L_320:\r
4259         MOV EAX,DWORD PTR [EBP-32]\r
4260         ADD EAX,DWORD PTR [EBP-20]\r
4261         MOV DWORD PTR [EBP-32], EAX\r
4262         MOVZX EAX,WORD PTR [EBP-42]\r
4263         MOVZX ECX,WORD PTR [EBP-44]\r
4264         CMP EAX,ECX\r
4265         SETAE AL\r
4266         AND AL,AL\r
4267         JZ L_321\r
4268         MOV EAX,1\r
4269         MOV DWORD PTR [EBP-4], EAX\r
4270 L_321:\r
4271         MOVZX EAX,WORD PTR [EBP-42]\r
4272         AND EAX,EAX\r
4273         JNZ L_322\r
4274         MOV EAX,211\r
4275         MOV DWORD PTR [EBP-4], EAX\r
4276 L_322:\r
4277         MOVZX EAX,WORD PTR [EBP-42]\r
4278         PUSH EAX\r
4279         XOR EAX,EAX\r
4280         MOV AL,BYTE PTR [EBP-47]\r
4281         PUSH EAX\r
4282         CALL _ClsToLBA\r
4283         MOV DWORD PTR [EBP-12], EAX\r
4284 L_319:\r
4285         JMP L_312\r
4286 L_313:\r
4287         MOV ESI,DWORD PTR [EBP+12]\r
4288         MOV EAX,DWORD PTR [EBP-28]\r
4289         MOV ECX,512\r
4290         MUL ECX\r
4291         MOV DWORD PTR [ESI], EAX\r
4292         MOV EAX,DWORD PTR [EBP-4]\r
4293 L_307:\r
4294         MOV ESP,EBP\r
4295         POP EBP\r
4296         RETN 24\r
4297 _WriteBlockM:\r
4298         PUSH EBP\r
4299         MOV EBP,ESP\r
4300         SUB ESP,61\r
4301         PUSH DWORD PTR [EBP+24]\r
4302         LEA EAX,DWORD PTR [EBP-20]\r
4303         PUSH EAX\r
4304         CALL _ValidateHandle\r
4305         MOV DWORD PTR [EBP-4], EAX\r
4306         MOV EAX,DWORD PTR [EBP-4]\r
4307         AND EAX,EAX\r
4308         JZ L_323\r
4309         MOV EAX,DWORD PTR [EBP-4]\r
4310         JMP L_324\r
4311 L_323:\r
4312         MOV EAX,DWORD PTR [EBP+16]\r
4313         MOV ECX,512\r
4314         XOR EDX,EDX\r
4315         DIV ECX\r
4316         MOV DWORD PTR [EBP-44], EAX\r
4317         MOV EAX,DWORD PTR [EBP+12]\r
4318         MOV ECX,512\r
4319         XOR EDX,EDX\r
4320         DIV ECX\r
4321         MOV ECX,512\r
4322         MUL ECX\r
4323         MOV DWORD PTR [EBP+12], EAX\r
4324         MOV EAX,DWORD PTR [EBP-20]\r
4325         MOV ECX,64\r
4326         MUL ECX\r
4327         MOV ESI,_paFCB\r
4328         ADD ESI,EAX\r
4329         XOR EAX,EAX\r
4330         MOV AL,BYTE PTR [ESI+39]\r
4331         AND EAX,EAX\r
4332         JNZ L_325\r
4333         MOV EAX,205\r
4334         JMP L_324\r
4335 L_325:\r
4336         MOV EAX,DWORD PTR [EBP-20]\r
4337         MOV ECX,64\r
4338         MUL ECX\r
4339         MOV ESI,_paFCB\r
4340         ADD ESI,EAX\r
4341         MOV EAX,DWORD PTR [ESI+28]\r
4342         MOV ECX,512\r
4343         XOR EDX,EDX\r
4344         DIV ECX\r
4345         MOV DWORD PTR [EBP-8], EAX\r
4346         MOV EAX,DWORD PTR [EBP-20]\r
4347         MOV ECX,64\r
4348         MUL ECX\r
4349         MOV ESI,_paFCB\r
4350         ADD ESI,EAX\r
4351         MOV EAX,DWORD PTR [ESI+28]\r
4352         MOV ECX,512\r
4353         XOR EDX,EDX\r
4354         DIV ECX\r
4355         MOV EAX,EDX\r
4356         AND EAX,EAX\r
4357         JZ L_326\r
4358         MOV EAX,DWORD PTR [EBP-8]\r
4359         INC DWORD PTR [EBP-8]\r
4360 L_326:\r
4361         MOV EAX,DWORD PTR [EBP+12]\r
4362         MOV ECX,512\r
4363         XOR EDX,EDX\r
4364         DIV ECX\r
4365         ADD EAX,DWORD PTR [EBP-44]\r
4366         MOV DWORD PTR [EBP-12], EAX\r
4367         MOV EAX,DWORD PTR [EBP-12]\r
4368         CMP EAX,DWORD PTR [EBP-8]\r
4369         SETA AL\r
4370         AND AL,AL\r
4371         JZ L_327\r
4372         MOV EAX,217\r
4373         JMP L_324\r
4374 L_327:\r
4375         MOV EAX,DWORD PTR [EBP-20]\r
4376         MOV ECX,64\r
4377         MUL ECX\r
4378         MOV ESI,_paFCB\r
4379         ADD ESI,EAX\r
4380         XOR EAX,EAX\r
4381         MOV AL,BYTE PTR [ESI+38]\r
4382         MOV BYTE PTR [EBP-61], AL\r
4383         XOR EAX,EAX\r
4384         MOV AL,BYTE PTR [EBP-61]\r
4385         SHL EAX,5\r
4386         MOV ESI,OFFSET _Ldrv\r
4387         ADD ESI,EAX\r
4388         XOR EAX,EAX\r
4389         MOV AL,BYTE PTR [ESI+29]\r
4390         MOV DWORD PTR [EBP-28], EAX\r
4391         MOV EAX,DWORD PTR [EBP-28]\r
4392         MOV ECX,512\r
4393         MUL ECX\r
4394         MOV DWORD PTR [EBP-24], EAX\r
4395         XOR EAX,EAX\r
4396         MOV AL,BYTE PTR [EBP-61]\r
4397         SHL EAX,5\r
4398         MOV ESI,OFFSET _Ldrv\r
4399         ADD ESI,EAX\r
4400         XOR EAX,EAX\r
4401         MOV AL,BYTE PTR [ESI+31]\r
4402         AND EAX,EAX\r
4403         JZ L_328\r
4404         MOV EAX,65528\r
4405         MOV WORD PTR [EBP-60], AX\r
4406         JMP L_329\r
4407 L_328:\r
4408         MOV EAX,4088\r
4409         MOV WORD PTR [EBP-60], AX\r
4410 L_329:\r
4411         PUSH DWORD PTR [EBP+24]\r
4412         PUSH DWORD PTR [EBP+12]\r
4413         LEA EAX,WORD PTR [EBP-58]\r
4414         PUSH EAX\r
4415         LEA EAX,DWORD PTR [EBP-36]\r
4416         PUSH EAX\r
4417         CALL _GetAbsoluteClstr\r
4418         MOV DWORD PTR [EBP-4], EAX\r
4419         MOV EAX,DWORD PTR [EBP-4]\r
4420         AND EAX,EAX\r
4421         JZ L_330\r
4422         MOV EAX,DWORD PTR [EBP-4]\r
4423         JMP L_324\r
4424 L_330:\r
4425         MOVZX EAX,WORD PTR [EBP-58]\r
4426         PUSH EAX\r
4427         XOR EAX,EAX\r
4428         MOV AL,BYTE PTR [EBP-61]\r
4429         PUSH EAX\r
4430         CALL _ClsToLBA\r
4431         MOV DWORD PTR [EBP-16], EAX\r
4432         MOV EAX,DWORD PTR [EBP+12]\r
4433         MOV ECX,512\r
4434         XOR EDX,EDX\r
4435         DIV ECX\r
4436         MOV ECX,DWORD PTR [EBP-28]\r
4437         XOR EDX,EDX\r
4438         DIV ECX\r
4439         MOV EAX,EDX\r
4440         ADD EAX,DWORD PTR [EBP-16]\r
4441         MOV DWORD PTR [EBP-16], EAX\r
4442         MOV EAX,DWORD PTR [EBP-16]\r
4443         MOV DWORD PTR [EBP-52], EAX\r
4444         MOV EAX,DWORD PTR [EBP+12]\r
4445         MOV ECX,512\r
4446         XOR EDX,EDX\r
4447         DIV ECX\r
4448         MOV ECX,DWORD PTR [EBP-28]\r
4449         XOR EDX,EDX\r
4450         DIV ECX\r
4451         MOV ECX,EDX\r
4452         MOV EAX,DWORD PTR [EBP-28]\r
4453         SUB EAX,ECX\r
4454         MOV DWORD PTR [EBP-40], EAX\r
4455         MOV EAX,DWORD PTR [EBP-40]\r
4456         MOV DWORD PTR [EBP-48], EAX\r
4457         MOV EAX,DWORD PTR [EBP-44]\r
4458         MOV DWORD PTR [EBP-56], EAX\r
4459         XOR EAX,EAX\r
4460         MOV DWORD PTR [EBP-32], EAX\r
4461 L_331:\r
4462         MOV EAX,DWORD PTR [EBP-44]\r
4463         AND EAX,EAX\r
4464         JZ L_333\r
4465         MOV EAX,DWORD PTR [EBP-4]\r
4466         AND EAX,EAX\r
4467         SETZ AL\r
4468         AND AL,AL\r
4469 L_333:\r
4470         JZ L_332\r
4471         MOV EAX,DWORD PTR [EBP-44]\r
4472         CMP EAX,DWORD PTR [EBP-40]\r
4473         SETA AL\r
4474         AND AL,AL\r
4475         JZ L_334\r
4476         MOV EAX,DWORD PTR [EBP-40]\r
4477         MOV DWORD PTR [EBP-12], EAX\r
4478         JMP L_335\r
4479 L_334:\r
4480         MOV EAX,DWORD PTR [EBP-44]\r
4481         MOV DWORD PTR [EBP-12], EAX\r
4482 L_335:\r
4483         MOV EAX,DWORD PTR [EBP+24]\r
4484         SHL EAX,5\r
4485         MOV ESI,_paFUB\r
4486         ADD ESI,EAX\r
4487         MOVZX EAX,WORD PTR [EBP-58]\r
4488         MOV WORD PTR [ESI+24], AX\r
4489         MOV EAX,DWORD PTR [EBP+24]\r
4490         SHL EAX,5\r
4491         MOV ESI,_paFUB\r
4492         ADD ESI,EAX\r
4493         MOV EAX,DWORD PTR [EBP-36]\r
4494         MOV DWORD PTR [ESI+20], EAX\r
4495         XOR EAX,EAX\r
4496         MOV AL,BYTE PTR [EBP-61]\r
4497         SHL EAX,5\r
4498         MOV ESI,OFFSET _Ldrv\r
4499         ADD ESI,EAX\r
4500         XOR EAX,EAX\r
4501         MOV AL,BYTE PTR [ESI+28]\r
4502         PUSH EAX\r
4503         PUSH 2\r
4504         PUSH DWORD PTR [EBP-16]\r
4505         PUSH DWORD PTR [EBP-12]\r
4506         PUSH DWORD PTR [EBP+20]\r
4507         CALL FWORD PTR _DeviceOp\r
4508         MOV DWORD PTR [EBP-4], EAX\r
4509         MOV EAX,DWORD PTR [EBP-4]\r
4510         AND EAX,EAX\r
4511         JZ L_336\r
4512         JMP L_332\r
4513 L_336:\r
4514         MOV EAX,DWORD PTR [EBP-12]\r
4515         MOV ECX,512\r
4516         MUL ECX\r
4517         ADD EAX,DWORD PTR [EBP+20]\r
4518         MOV DWORD PTR [EBP+20], EAX\r
4519         MOV EAX,DWORD PTR [EBP-32]\r
4520         ADD EAX,DWORD PTR [EBP-12]\r
4521         MOV DWORD PTR [EBP-32], EAX\r
4522         MOV EAX,DWORD PTR [EBP-44]\r
4523         SUB EAX,DWORD PTR [EBP-12]\r
4524         MOV DWORD PTR [EBP-44], EAX\r
4525         MOV EAX,DWORD PTR [EBP-40]\r
4526         SUB EAX,DWORD PTR [EBP-12]\r
4527         MOV DWORD PTR [EBP-40], EAX\r
4528         MOV EAX,DWORD PTR [EBP-44]\r
4529         AND EAX,EAX\r
4530         JZ L_337\r
4531         MOV EAX,DWORD PTR [EBP-40]\r
4532         AND EAX,EAX\r
4533         SETZ AL\r
4534         AND AL,AL\r
4535 L_337:\r
4536         JZ L_338\r
4537         MOV EAX,DWORD PTR [EBP-28]\r
4538         MOV DWORD PTR [EBP-40], EAX\r
4539         XOR EAX,EAX\r
4540         MOV AL,BYTE PTR [EBP-61]\r
4541         PUSH EAX\r
4542         MOVZX EAX,WORD PTR [EBP-58]\r
4543         PUSH EAX\r
4544         LEA EAX,WORD PTR [EBP-58]\r
4545         PUSH EAX\r
4546         CALL _NextFATClstr\r
4547         MOV DWORD PTR [EBP-4], EAX\r
4548         MOV EAX,DWORD PTR [EBP-4]\r
4549         AND EAX,EAX\r
4550         JZ L_339\r
4551         MOV EAX,DWORD PTR [EBP-4]\r
4552         JMP L_324\r
4553 L_339:\r
4554         MOV EAX,DWORD PTR [EBP-36]\r
4555         ADD EAX,DWORD PTR [EBP-24]\r
4556         MOV DWORD PTR [EBP-36], EAX\r
4557         MOVZX EAX,WORD PTR [EBP-58]\r
4558         MOVZX ECX,WORD PTR [EBP-60]\r
4559         CMP EAX,ECX\r
4560         SETAE AL\r
4561         AND AL,AL\r
4562         JZ L_340\r
4563         MOV EAX,DWORD PTR [EBP-44]\r
4564 L_340:\r
4565         AND EAX,EAX\r
4566         JZ L_341\r
4567         MOV EAX,217\r
4568         MOV DWORD PTR [EBP-4], EAX\r
4569 L_341:\r
4570         MOVZX EAX,WORD PTR [EBP-58]\r
4571         AND EAX,EAX\r
4572         JNZ L_342\r
4573         MOV EAX,211\r
4574         MOV DWORD PTR [EBP-4], EAX\r
4575 L_342:\r
4576         MOVZX EAX,WORD PTR [EBP-58]\r
4577         PUSH EAX\r
4578         XOR EAX,EAX\r
4579         MOV AL,BYTE PTR [EBP-61]\r
4580         PUSH EAX\r
4581         CALL _ClsToLBA\r
4582         MOV DWORD PTR [EBP-16], EAX\r
4583 L_338:\r
4584         JMP L_331\r
4585 L_332:\r
4586         MOV ESI,DWORD PTR [EBP+8]\r
4587         MOV EAX,DWORD PTR [EBP-32]\r
4588         MOV ECX,512\r
4589         MUL ECX\r
4590         MOV DWORD PTR [ESI], EAX\r
4591         MOV EAX,DWORD PTR [EBP-4]\r
4592 L_324:\r
4593         MOV ESP,EBP\r
4594         POP EBP\r
4595         RETN 20\r
4596 _FillStreamBuff:\r
4597         PUSH EBP\r
4598         MOV EBP,ESP\r
4599         SUB ESP,32\r
4600         XOR EAX,EAX\r
4601         MOV DWORD PTR [EBP-4], EAX\r
4602         MOV EAX,DWORD PTR [EBP+12]\r
4603         SHL EAX,5\r
4604         MOV ESI,_paFUB\r
4605         ADD ESI,EAX\r
4606         MOV EAX,DWORD PTR [ESI+4]\r
4607         MOV DWORD PTR [EBP-16], EAX\r
4608         MOV EAX,DWORD PTR [EBP+12]\r
4609         SHL EAX,5\r
4610         MOV ESI,_paFUB\r
4611         ADD ESI,EAX\r
4612         MOV EAX,DWORD PTR [ESI+16]\r
4613         MOV DWORD PTR [EBP-20], EAX\r
4614         MOV EAX,DWORD PTR [EBP+12]\r
4615         SHL EAX,5\r
4616         MOV ESI,_paFUB\r
4617         ADD ESI,EAX\r
4618         MOV EAX,DWORD PTR [ESI+8]\r
4619         MOV DWORD PTR [EBP-32], EAX\r
4620         MOV EAX,DWORD PTR [EBP+12]\r
4621         SHL EAX,5\r
4622         MOV ESI,_paFUB\r
4623         ADD ESI,EAX\r
4624         MOV EAX,DWORD PTR [ESI+12]\r
4625         MOV DWORD PTR [EBP-28], EAX\r
4626         MOV EAX,DWORD PTR [EBP+12]\r
4627         SHL EAX,5\r
4628         MOV ESI,_paFUB\r
4629         ADD ESI,EAX\r
4630         MOVZX EAX,WORD PTR [ESI+2]\r
4631         MOV DWORD PTR [EBP-24], EAX\r
4632         XOR EAX,EAX\r
4633         MOV AL,BYTE PTR [EBP+8]\r
4634         AND EAX,EAX\r
4635         JZ L_343\r
4636         PUSH DWORD PTR [EBP+12]\r
4637         PUSH DWORD PTR [EBP-32]\r
4638         PUSH DWORD PTR [EBP-28]\r
4639         XOR EAX,EAX\r
4640         PUSH EAX\r
4641         LEA EAX,DWORD PTR [EBP-8]\r
4642         PUSH EAX\r
4643         PUSH 1\r
4644         CALL _ReadBlockM\r
4645         MOV DWORD PTR [EBP-4], EAX\r
4646         MOV EAX,DWORD PTR [EBP+12]\r
4647         SHL EAX,5\r
4648         MOV ESI,_paFUB\r
4649         ADD ESI,EAX\r
4650         XOR EAX,EAX\r
4651         MOV DWORD PTR [ESI+16], EAX\r
4652         JMP L_344\r
4653 L_343:\r
4654         MOV EAX,DWORD PTR [EBP-16]\r
4655         CMP EAX,DWORD PTR [EBP-20]\r
4656         SETAE AL\r
4657         AND AL,AL\r
4658         JZ L_345\r
4659         MOV EAX,DWORD PTR [EBP-20]\r
4660         ADD EAX,DWORD PTR [EBP-28]\r
4661         CMP EAX,DWORD PTR [EBP-16]\r
4662         SETA AL\r
4663         AND AL,AL\r
4664 L_345:\r
4665         JZ L_346\r
4666         XOR EAX,EAX\r
4667         MOV DWORD PTR [EBP-4], EAX\r
4668         JMP L_347\r
4669 L_346:\r
4670         MOV EAX,DWORD PTR [EBP-16]\r
4671         MOV ECX,512\r
4672         XOR EDX,EDX\r
4673         DIV ECX\r
4674         MOV ECX,512\r
4675         MUL ECX\r
4676         MOV DWORD PTR [EBP-12], EAX\r
4677         PUSH DWORD PTR [EBP+12]\r
4678         PUSH DWORD PTR [EBP-32]\r
4679         PUSH DWORD PTR [EBP-28]\r
4680         PUSH DWORD PTR [EBP-12]\r
4681         LEA EAX,DWORD PTR [EBP-8]\r
4682         PUSH EAX\r
4683         PUSH 1\r
4684         CALL _ReadBlockM\r
4685         MOV DWORD PTR [EBP-4], EAX\r
4686         MOV EAX,DWORD PTR [EBP+12]\r
4687         SHL EAX,5\r
4688         MOV ESI,_paFUB\r
4689         ADD ESI,EAX\r
4690         MOV EAX,DWORD PTR [EBP-12]\r
4691         MOV DWORD PTR [ESI+16], EAX\r
4692 L_347:\r
4693 L_344:\r
4694         MOV EAX,DWORD PTR [EBP-4]\r
4695         CMP EAX,1\r
4696         SETE AL\r
4697         AND AL,AL\r
4698         JZ L_348\r
4699         XOR EAX,EAX\r
4700         MOV DWORD PTR [EBP-4], EAX\r
4701 L_348:\r
4702         MOV EAX,DWORD PTR [EBP-4]\r
4703         MOV ESP,EBP\r
4704         POP EBP\r
4705         RETN 8\r
4706 _ReadBytesM:\r
4707         PUSH EBP\r
4708         MOV EBP,ESP\r
4709         SUB ESP,40\r
4710         PUSH DWORD PTR [EBP+20]\r
4711         LEA EAX,DWORD PTR [EBP-8]\r
4712         PUSH EAX\r
4713         CALL _ValidateHandle\r
4714         MOV DWORD PTR [EBP-4], EAX\r
4715         MOV EAX,DWORD PTR [EBP-4]\r
4716         AND EAX,EAX\r
4717         JZ L_350\r
4718         MOV EAX,DWORD PTR [EBP-4]\r
4719         JMP L_351\r
4720 L_350:\r
4721         MOV EAX,DWORD PTR [EBP+20]\r
4722         SHL EAX,5\r
4723         MOV ESI,_paFUB\r
4724         ADD ESI,EAX\r
4725         XOR EAX,EAX\r
4726         MOV AL,BYTE PTR [ESI+27]\r
4727         AND EAX,EAX\r
4728         JNZ L_352\r
4729         MOV EAX,215\r
4730         JMP L_351\r
4731 L_352:\r
4732         MOV EAX,DWORD PTR [EBP+20]\r
4733         SHL EAX,5\r
4734         MOV ESI,_paFUB\r
4735         ADD ESI,EAX\r
4736         MOV EAX,DWORD PTR [ESI+4]\r
4737         MOV DWORD PTR [EBP-16], EAX\r
4738         MOV EAX,DWORD PTR [EBP-8]\r
4739         MOV ECX,64\r
4740         MUL ECX\r
4741         MOV ESI,_paFCB\r
4742         ADD ESI,EAX\r
4743         MOV EAX,DWORD PTR [ESI+28]\r
4744         MOV DWORD PTR [EBP-20], EAX\r
4745         MOV EAX,DWORD PTR [EBP-16]\r
4746         CMP EAX,DWORD PTR [EBP-20]\r
4747         SETAE AL\r
4748         AND AL,AL\r
4749         JZ L_353\r
4750         MOV ESI,DWORD PTR [EBP+8]\r
4751         XOR EAX,EAX\r
4752         MOV DWORD PTR [ESI], EAX\r
4753         MOV EAX,1\r
4754         JMP L_351\r
4755 L_353:\r
4756         MOV EAX,DWORD PTR [EBP+20]\r
4757         SHL EAX,5\r
4758         MOV ESI,_paFUB\r
4759         ADD ESI,EAX\r
4760         MOV EAX,DWORD PTR [ESI+8]\r
4761         MOV DWORD PTR [EBP-40], EAX\r
4762         MOV EAX,DWORD PTR [EBP+20]\r
4763         SHL EAX,5\r
4764         MOV ESI,_paFUB\r
4765         ADD ESI,EAX\r
4766         MOV EAX,DWORD PTR [ESI+12]\r
4767         MOV DWORD PTR [EBP-12], EAX\r
4768         XOR EAX,EAX\r
4769         MOV DWORD PTR [EBP-24], EAX\r
4770 L_354:\r
4771         MOV EAX,DWORD PTR [EBP-24]\r
4772         CMP EAX,DWORD PTR [EBP+12]\r
4773         SETB AL\r
4774         AND AL,AL\r
4775         JZ L_356\r
4776         MOV EAX,DWORD PTR [EBP-16]\r
4777         CMP EAX,DWORD PTR [EBP-20]\r
4778         SETB AL\r
4779         AND AL,AL\r
4780         JZ L_357\r
4781         MOV EAX,DWORD PTR [EBP-4]\r
4782         AND EAX,EAX\r
4783         SETZ AL\r
4784         AND AL,AL\r
4785 L_357:\r
4786 L_356:\r
4787         JZ L_355\r
4788         PUSH DWORD PTR [EBP+20]\r
4789         XOR EAX,EAX\r
4790         PUSH EAX\r
4791         CALL _FillStreamBuff\r
4792         MOV DWORD PTR [EBP-4], EAX\r
4793         MOV EAX,DWORD PTR [EBP+20]\r
4794         SHL EAX,5\r
4795         MOV ESI,_paFUB\r
4796         ADD ESI,EAX\r
4797         MOV EAX,DWORD PTR [ESI+16]\r
4798         ADD EAX,DWORD PTR [EBP-12]\r
4799         SUB EAX,1\r
4800         MOV DWORD PTR [EBP-28], EAX\r
4801         MOV EAX,DWORD PTR [EBP-28]\r
4802         CMP EAX,DWORD PTR [EBP-20]\r
4803         SETA AL\r
4804         AND AL,AL\r
4805         JZ L_358\r
4806         MOV EAX,DWORD PTR [EBP-20]\r
4807         SUB EAX,1\r
4808         MOV DWORD PTR [EBP-28], EAX\r
4809 L_358:\r
4810         MOV EAX,DWORD PTR [EBP+20]\r
4811         SHL EAX,5\r
4812         MOV ESI,_paFUB\r
4813         ADD ESI,EAX\r
4814         MOV EAX,DWORD PTR [EBP-16]\r
4815         SUB EAX,DWORD PTR [ESI+16]\r
4816         ADD EAX,DWORD PTR [EBP-40]\r
4817         MOV DWORD PTR [EBP-36], EAX\r
4818         MOV EAX,DWORD PTR [EBP-28]\r
4819         SUB EAX,DWORD PTR [EBP-16]\r
4820         ADD EAX,1\r
4821         MOV DWORD PTR [EBP-32], EAX\r
4822         MOV EAX,DWORD PTR [EBP+12]\r
4823         SUB EAX,DWORD PTR [EBP-24]\r
4824         CMP EAX,DWORD PTR [EBP-32]\r
4825         SETB AL\r
4826         AND AL,AL\r
4827         JZ L_359\r
4828         MOV EAX,DWORD PTR [EBP+12]\r
4829         SUB EAX,DWORD PTR [EBP-24]\r
4830         MOV DWORD PTR [EBP-32], EAX\r
4831 L_359:\r
4832         PUSH DWORD PTR [EBP-36]\r
4833         PUSH DWORD PTR [EBP+16]\r
4834         PUSH DWORD PTR [EBP-32]\r
4835         CALL FWORD PTR _CopyData\r
4836         MOV EAX,DWORD PTR [EBP+16]\r
4837         ADD EAX,DWORD PTR [EBP-32]\r
4838         MOV DWORD PTR [EBP+16], EAX\r
4839         MOV EAX,DWORD PTR [EBP-24]\r
4840         ADD EAX,DWORD PTR [EBP-32]\r
4841         MOV DWORD PTR [EBP-24], EAX\r
4842         MOV EAX,DWORD PTR [EBP-16]\r
4843         ADD EAX,DWORD PTR [EBP-32]\r
4844         MOV DWORD PTR [EBP-16], EAX\r
4845         MOV EAX,DWORD PTR [EBP+20]\r
4846         SHL EAX,5\r
4847         MOV ESI,_paFUB\r
4848         ADD ESI,EAX\r
4849         MOV EAX,DWORD PTR [EBP-16]\r
4850         MOV DWORD PTR [ESI+4], EAX\r
4851         JMP L_354\r
4852 L_355:\r
4853         MOV ESI,DWORD PTR [EBP+8]\r
4854         MOV EAX,DWORD PTR [EBP-24]\r
4855         MOV DWORD PTR [ESI], EAX\r
4856         MOV EAX,DWORD PTR [EBP-4]\r
4857         AND EAX,EAX\r
4858         JNZ L_360\r
4859         MOV EAX,DWORD PTR [EBP-16]\r
4860         CMP EAX,DWORD PTR [EBP-20]\r
4861         SETE AL\r
4862         AND AL,AL\r
4863         JZ L_361\r
4864         MOV EAX,1\r
4865         MOV DWORD PTR [EBP-4], EAX\r
4866 L_361:\r
4867 L_360:\r
4868         MOV EAX,DWORD PTR [EBP-4]\r
4869 L_351:\r
4870         MOV ESP,EBP\r
4871         POP EBP\r
4872         RETN 16\r
4873 _FlushStreamBuff:\r
4874         PUSH EBP\r
4875         MOV EBP,ESP\r
4876         SUB ESP,32\r
4877         XOR EAX,EAX\r
4878         MOV DWORD PTR [EBP-4], EAX\r
4879         MOV EAX,DWORD PTR [EBP+8]\r
4880         SHL EAX,5\r
4881         MOV ESI,_paFUB\r
4882         ADD ESI,EAX\r
4883         XOR EAX,EAX\r
4884         MOV AL,BYTE PTR [ESI+26]\r
4885         AND EAX,EAX\r
4886         JZ L_362\r
4887         MOV EAX,DWORD PTR [EBP+8]\r
4888         SHL EAX,5\r
4889         MOV ESI,_paFUB\r
4890         ADD ESI,EAX\r
4891         MOV EAX,DWORD PTR [ESI+16]\r
4892         MOV DWORD PTR [EBP-16], EAX\r
4893         MOV EAX,DWORD PTR [EBP+8]\r
4894         SHL EAX,5\r
4895         MOV ESI,_paFUB\r
4896         ADD ESI,EAX\r
4897         MOV EAX,DWORD PTR [ESI+8]\r
4898         MOV DWORD PTR [EBP-32], EAX\r
4899         MOV EAX,DWORD PTR [EBP+8]\r
4900         SHL EAX,5\r
4901         MOV ESI,_paFUB\r
4902         ADD ESI,EAX\r
4903         MOV EAX,DWORD PTR [ESI+12]\r
4904         MOV DWORD PTR [EBP-28], EAX\r
4905         MOV EAX,DWORD PTR [EBP+8]\r
4906         SHL EAX,5\r
4907         MOV ESI,_paFUB\r
4908         ADD ESI,EAX\r
4909         MOVZX EAX,WORD PTR [ESI+2]\r
4910         MOV DWORD PTR [EBP-20], EAX\r
4911         MOV EAX,DWORD PTR [EBP-20]\r
4912         MOV ECX,64\r
4913         MUL ECX\r
4914         MOV ESI,_paFCB\r
4915         ADD ESI,EAX\r
4916         MOV EAX,DWORD PTR [ESI+28]\r
4917         MOV DWORD PTR [EBP-24], EAX\r
4918         MOV EAX,DWORD PTR [EBP-28]\r
4919         MOV ECX,512\r
4920         XOR EDX,EDX\r
4921         DIV ECX\r
4922         MOV DWORD PTR [EBP-8], EAX\r
4923         MOV EAX,DWORD PTR [EBP-24]\r
4924         SUB EAX,DWORD PTR [EBP-16]\r
4925         MOV ECX,512\r
4926         XOR EDX,EDX\r
4927         DIV ECX\r
4928         MOV DWORD PTR [EBP-12], EAX\r
4929         MOV EAX,DWORD PTR [EBP-24]\r
4930         SUB EAX,DWORD PTR [EBP-16]\r
4931         MOV ECX,512\r
4932         XOR EDX,EDX\r
4933         DIV ECX\r
4934         MOV EAX,EDX\r
4935         AND EAX,EAX\r
4936         JZ L_363\r
4937         MOV EAX,DWORD PTR [EBP-12]\r
4938         INC DWORD PTR [EBP-12]\r
4939 L_363:\r
4940         MOV EAX,DWORD PTR [EBP-12]\r
4941         CMP EAX,DWORD PTR [EBP-8]\r
4942         SETB AL\r
4943         AND AL,AL\r
4944         JZ L_364\r
4945         MOV EAX,DWORD PTR [EBP-12]\r
4946         MOV DWORD PTR [EBP-8], EAX\r
4947 L_364:\r
4948         PUSH DWORD PTR [EBP+8]\r
4949         PUSH DWORD PTR [EBP-32]\r
4950         MOV EAX,DWORD PTR [EBP-8]\r
4951         MOV ECX,512\r
4952         MUL ECX\r
4953         PUSH EAX\r
4954         PUSH DWORD PTR [EBP-16]\r
4955         LEA EAX,DWORD PTR [EBP-8]\r
4956         PUSH EAX\r
4957         CALL _WriteBlockM\r
4958         MOV DWORD PTR [EBP-4], EAX\r
4959         MOV EAX,DWORD PTR [EBP+8]\r
4960         SHL EAX,5\r
4961         MOV ESI,_paFUB\r
4962         ADD ESI,EAX\r
4963         XOR EAX,EAX\r
4964         MOV BYTE PTR [ESI+26], AL\r
4965 L_362:\r
4966         MOV EAX,DWORD PTR [EBP-4]\r
4967         MOV ESP,EBP\r
4968         POP EBP\r
4969         RETN 4\r
4970 _WriteBytesM:\r
4971         PUSH EBP\r
4972         MOV EBP,ESP\r
4973         SUB ESP,40\r
4974         PUSH DWORD PTR [EBP+20]\r
4975         LEA EAX,DWORD PTR [EBP-8]\r
4976         PUSH EAX\r
4977         CALL _ValidateHandle\r
4978         MOV DWORD PTR [EBP-4], EAX\r
4979         MOV EAX,DWORD PTR [EBP-4]\r
4980         AND EAX,EAX\r
4981         JZ L_366\r
4982         MOV EAX,DWORD PTR [EBP-4]\r
4983         JMP L_367\r
4984 L_366:\r
4985         MOV EAX,DWORD PTR [EBP+20]\r
4986         SHL EAX,5\r
4987         MOV ESI,_paFUB\r
4988         ADD ESI,EAX\r
4989         XOR EAX,EAX\r
4990         MOV AL,BYTE PTR [ESI+27]\r
4991         AND EAX,EAX\r
4992         JNZ L_368\r
4993         MOV EAX,215\r
4994         JMP L_367\r
4995 L_368:\r
4996         MOV EAX,DWORD PTR [EBP-8]\r
4997         MOV ECX,64\r
4998         MUL ECX\r
4999         MOV ESI,_paFCB\r
5000         ADD ESI,EAX\r
5001         XOR EAX,EAX\r
5002         MOV AL,BYTE PTR [ESI+39]\r
5003         AND EAX,EAX\r
5004         JNZ L_369\r
5005         MOV EAX,205\r
5006         JMP L_367\r
5007 L_369:\r
5008         MOV EAX,DWORD PTR [EBP+20]\r
5009         SHL EAX,5\r
5010         MOV ESI,_paFUB\r
5011         ADD ESI,EAX\r
5012         MOV EAX,DWORD PTR [ESI+8]\r
5013         MOV DWORD PTR [EBP-40], EAX\r
5014         MOV EAX,DWORD PTR [EBP+20]\r
5015         SHL EAX,5\r
5016         MOV ESI,_paFUB\r
5017         ADD ESI,EAX\r
5018         MOV EAX,DWORD PTR [ESI+12]\r
5019         MOV DWORD PTR [EBP-12], EAX\r
5020         MOV EAX,DWORD PTR [EBP+20]\r
5021         SHL EAX,5\r
5022         MOV ESI,_paFUB\r
5023         ADD ESI,EAX\r
5024         MOV EAX,DWORD PTR [ESI+4]\r
5025         MOV DWORD PTR [EBP-16], EAX\r
5026         MOV EAX,DWORD PTR [EBP-8]\r
5027         MOV ECX,64\r
5028         MUL ECX\r
5029         MOV ESI,_paFCB\r
5030         ADD ESI,EAX\r
5031         MOV EAX,DWORD PTR [ESI+28]\r
5032         MOV DWORD PTR [EBP-20], EAX\r
5033         MOV EAX,DWORD PTR [EBP-16]\r
5034         ADD EAX,DWORD PTR [EBP+12]\r
5035         CMP EAX,DWORD PTR [EBP-20]\r
5036         SETA AL\r
5037         AND AL,AL\r
5038         JZ L_370\r
5039         PUSH DWORD PTR [EBP+20]\r
5040         MOV EAX,DWORD PTR [EBP-16]\r
5041         ADD EAX,DWORD PTR [EBP+12]\r
5042         PUSH EAX\r
5043         CALL _SetFileSizeM\r
5044         MOV DWORD PTR [EBP-4], EAX\r
5045         MOV EAX,DWORD PTR [EBP-4]\r
5046         AND EAX,EAX\r
5047         JZ L_371\r
5048         MOV EAX,DWORD PTR [EBP-4]\r
5049         JMP L_367\r
5050 L_371:\r
5051         MOV EAX,DWORD PTR [EBP-8]\r
5052         MOV ECX,64\r
5053         MUL ECX\r
5054         MOV ESI,_paFCB\r
5055         ADD ESI,EAX\r
5056         MOV EAX,DWORD PTR [ESI+28]\r
5057         MOV DWORD PTR [EBP-20], EAX\r
5058 L_370:\r
5059         MOV EAX,DWORD PTR [EBP+20]\r
5060         SHL EAX,5\r
5061         MOV ESI,_paFUB\r
5062         ADD ESI,EAX\r
5063         MOV EAX,DWORD PTR [ESI+16]\r
5064         ADD EAX,DWORD PTR [EBP-12]\r
5065         SUB EAX,1\r
5066         MOV DWORD PTR [EBP-28], EAX\r
5067         MOV EAX,DWORD PTR [EBP-28]\r
5068         CMP EAX,DWORD PTR [EBP-20]\r
5069         SETA AL\r
5070         AND AL,AL\r
5071         JZ L_372\r
5072         MOV EAX,DWORD PTR [EBP-20]\r
5073         SUB EAX,1\r
5074         MOV DWORD PTR [EBP-28], EAX\r
5075 L_372:\r
5076         XOR EAX,EAX\r
5077         MOV DWORD PTR [EBP-24], EAX\r
5078 L_373:\r
5079         MOV EAX,DWORD PTR [EBP-24]\r
5080         CMP EAX,DWORD PTR [EBP+12]\r
5081         SETB AL\r
5082         AND AL,AL\r
5083         JZ L_375\r
5084         MOV EAX,DWORD PTR [EBP-16]\r
5085         CMP EAX,DWORD PTR [EBP-20]\r
5086         SETB AL\r
5087         AND AL,AL\r
5088         JZ L_376\r
5089         MOV EAX,DWORD PTR [EBP-4]\r
5090         AND EAX,EAX\r
5091         SETZ AL\r
5092         AND AL,AL\r
5093 L_376:\r
5094 L_375:\r
5095         JZ L_374\r
5096         MOV EAX,DWORD PTR [EBP-16]\r
5097         CMP EAX,DWORD PTR [EBP-28]\r
5098         SETA AL\r
5099         AND AL,AL\r
5100         JNZ L_377\r
5101         MOV EAX,DWORD PTR [EBP+20]\r
5102         SHL EAX,5\r
5103         MOV ESI,_paFUB\r
5104         ADD ESI,EAX\r
5105         MOV EAX,DWORD PTR [EBP-16]\r
5106         CMP EAX,DWORD PTR [ESI+16]\r
5107         SETB AL\r
5108         AND AL,AL\r
5109 L_377:\r
5110         JZ L_378\r
5111         PUSH DWORD PTR [EBP+20]\r
5112         CALL _FlushStreamBuff\r
5113         MOV DWORD PTR [EBP-4], EAX\r
5114         MOV EAX,DWORD PTR [EBP-4]\r
5115         AND EAX,EAX\r
5116         JZ L_379\r
5117         MOV EAX,DWORD PTR [EBP-4]\r
5118         JMP L_367\r
5119 L_379:\r
5120         PUSH DWORD PTR [EBP+20]\r
5121         XOR EAX,EAX\r
5122         PUSH EAX\r
5123         CALL _FillStreamBuff\r
5124         MOV DWORD PTR [EBP-4], EAX\r
5125         MOV EAX,DWORD PTR [EBP-4]\r
5126         AND EAX,EAX\r
5127         JZ L_380\r
5128         MOV EAX,DWORD PTR [EBP-4]\r
5129         JMP L_367\r
5130 L_380:\r
5131 L_378:\r
5132         MOV EAX,DWORD PTR [EBP+20]\r
5133         SHL EAX,5\r
5134         MOV ESI,_paFUB\r
5135         ADD ESI,EAX\r
5136         MOV EAX,DWORD PTR [ESI+16]\r
5137         ADD EAX,DWORD PTR [EBP-12]\r
5138         SUB EAX,1\r
5139         MOV DWORD PTR [EBP-28], EAX\r
5140         MOV EAX,DWORD PTR [EBP-28]\r
5141         CMP EAX,DWORD PTR [EBP-20]\r
5142         SETA AL\r
5143         AND AL,AL\r
5144         JZ L_381\r
5145         MOV EAX,DWORD PTR [EBP-20]\r
5146         SUB EAX,1\r
5147         MOV DWORD PTR [EBP-28], EAX\r
5148 L_381:\r
5149         MOV EAX,DWORD PTR [EBP+20]\r
5150         SHL EAX,5\r
5151         MOV ESI,_paFUB\r
5152         ADD ESI,EAX\r
5153         MOV EAX,DWORD PTR [EBP-16]\r
5154         SUB EAX,DWORD PTR [ESI+16]\r
5155         ADD EAX,DWORD PTR [EBP-40]\r
5156         MOV DWORD PTR [EBP-36], EAX\r
5157         MOV EAX,DWORD PTR [EBP-28]\r
5158         ADD EAX,1\r
5159         SUB EAX,DWORD PTR [EBP-16]\r
5160         MOV DWORD PTR [EBP-32], EAX\r
5161         MOV EAX,DWORD PTR [EBP+12]\r
5162         SUB EAX,DWORD PTR [EBP-24]\r
5163         CMP EAX,DWORD PTR [EBP-32]\r
5164         SETB AL\r
5165         AND AL,AL\r
5166         JZ L_382\r
5167         MOV EAX,DWORD PTR [EBP+12]\r
5168         SUB EAX,DWORD PTR [EBP-24]\r
5169         MOV DWORD PTR [EBP-32], EAX\r
5170 L_382:\r
5171         PUSH DWORD PTR [EBP+16]\r
5172         PUSH DWORD PTR [EBP-36]\r
5173         PUSH DWORD PTR [EBP-32]\r
5174         CALL FWORD PTR _CopyData\r
5175         MOV EAX,DWORD PTR [EBP+20]\r
5176         SHL EAX,5\r
5177         MOV ESI,_paFUB\r
5178         ADD ESI,EAX\r
5179         MOV EAX,1\r
5180         MOV BYTE PTR [ESI+26], AL\r
5181         MOV EAX,DWORD PTR [EBP+16]\r
5182         ADD EAX,DWORD PTR [EBP-32]\r
5183         MOV DWORD PTR [EBP+16], EAX\r
5184         MOV EAX,DWORD PTR [EBP-24]\r
5185         ADD EAX,DWORD PTR [EBP-32]\r
5186         MOV DWORD PTR [EBP-24], EAX\r
5187         MOV EAX,DWORD PTR [EBP-16]\r
5188         ADD EAX,DWORD PTR [EBP-32]\r
5189         MOV DWORD PTR [EBP-16], EAX\r
5190         MOV EAX,DWORD PTR [EBP+20]\r
5191         SHL EAX,5\r
5192         MOV ESI,_paFUB\r
5193         ADD ESI,EAX\r
5194         MOV EAX,DWORD PTR [EBP-16]\r
5195         MOV DWORD PTR [ESI+4], EAX\r
5196         JMP L_373\r
5197 L_374:\r
5198         MOV ESI,DWORD PTR [EBP+8]\r
5199         MOV EAX,DWORD PTR [EBP-24]\r
5200         MOV DWORD PTR [ESI], EAX\r
5201         MOV EAX,DWORD PTR [EBP-4]\r
5202 L_367:\r
5203         MOV ESP,EBP\r
5204         POP EBP\r
5205         RETN 16\r
5206 _GetFileSizeM:\r
5207         PUSH EBP\r
5208         MOV EBP,ESP\r
5209         SUB ESP,8\r
5210         PUSH DWORD PTR [EBP+12]\r
5211         LEA EAX,DWORD PTR [EBP-8]\r
5212         PUSH EAX\r
5213         CALL _ValidateHandle\r
5214         MOV DWORD PTR [EBP-4], EAX\r
5215         MOV EAX,DWORD PTR [EBP-4]\r
5216         AND EAX,EAX\r
5217         JZ L_383\r
5218         MOV EAX,DWORD PTR [EBP-4]\r
5219         JMP L_384\r
5220 L_383:\r
5221         MOV ESI,DWORD PTR [EBP+8]\r
5222         MOV EAX,DWORD PTR [EBP-8]\r
5223         MOV ECX,64\r
5224         MUL ECX\r
5225         MOV EBX,ESI\r
5226         MOV ESI,_paFCB\r
5227         ADD ESI,EAX\r
5228         MOV EAX,DWORD PTR [ESI+28]\r
5229         MOV DWORD PTR [EBX], EAX\r
5230         XOR EAX,EAX\r
5231 L_384:\r
5232         MOV ESP,EBP\r
5233         POP EBP\r
5234         RETN 8\r
5235 _SetFileLFAM:\r
5236         PUSH EBP\r
5237         MOV EBP,ESP\r
5238         SUB ESP,8\r
5239         PUSH DWORD PTR [EBP+12]\r
5240         LEA EAX,DWORD PTR [EBP-8]\r
5241         PUSH EAX\r
5242         CALL _ValidateHandle\r
5243         MOV DWORD PTR [EBP-4], EAX\r
5244         MOV EAX,DWORD PTR [EBP-4]\r
5245         AND EAX,EAX\r
5246         JZ L_385\r
5247         MOV EAX,DWORD PTR [EBP-4]\r
5248         JMP L_386\r
5249 L_385:\r
5250         MOV EAX,DWORD PTR [EBP+12]\r
5251         SHL EAX,5\r
5252         MOV ESI,_paFUB\r
5253         ADD ESI,EAX\r
5254         XOR EAX,EAX\r
5255         MOV AL,BYTE PTR [ESI+27]\r
5256         AND EAX,EAX\r
5257         JNZ L_387\r
5258         MOV EAX,215\r
5259         JMP L_386\r
5260 L_387:\r
5261         MOV EAX,DWORD PTR [EBP-8]\r
5262         MOV ECX,64\r
5263         MUL ECX\r
5264         MOV ESI,_paFCB\r
5265         ADD ESI,EAX\r
5266         XOR EAX,EAX\r
5267         MOV AL,BYTE PTR [ESI+39]\r
5268         AND EAX,EAX\r
5269         JZ L_388\r
5270         PUSH DWORD PTR [EBP+12]\r
5271         CALL _FlushStreamBuff\r
5272         MOV DWORD PTR [EBP-4], EAX\r
5273 L_388:\r
5274         MOV EAX,DWORD PTR [EBP+8]\r
5275         CMP EAX,-1\r
5276         SETE AL\r
5277         AND AL,AL\r
5278         JZ L_389\r
5279         MOV EAX,DWORD PTR [EBP-8]\r
5280         MOV ECX,64\r
5281         MUL ECX\r
5282         MOV ESI,_paFCB\r
5283         ADD ESI,EAX\r
5284         MOV EAX,DWORD PTR [ESI+28]\r
5285         MOV DWORD PTR [EBP+8], EAX\r
5286 L_389:\r
5287         MOV EAX,DWORD PTR [EBP-8]\r
5288         MOV ECX,64\r
5289         MUL ECX\r
5290         MOV ESI,_paFCB\r
5291         ADD ESI,EAX\r
5292         MOV EAX,DWORD PTR [EBP+8]\r
5293         CMP EAX,DWORD PTR [ESI+28]\r
5294         SETA AL\r
5295         AND AL,AL\r
5296         JZ L_390\r
5297         MOV EAX,217\r
5298         MOV DWORD PTR [EBP-4], EAX\r
5299 L_390:\r
5300         MOV EAX,DWORD PTR [EBP-4]\r
5301         AND EAX,EAX\r
5302         JNZ L_391\r
5303         MOV EAX,DWORD PTR [EBP+12]\r
5304         SHL EAX,5\r
5305         MOV ESI,_paFUB\r
5306         ADD ESI,EAX\r
5307         MOV EAX,DWORD PTR [EBP+8]\r
5308         MOV DWORD PTR [ESI+4], EAX\r
5309         PUSH DWORD PTR [EBP+12]\r
5310         XOR EAX,EAX\r
5311         PUSH EAX\r
5312         CALL _FillStreamBuff\r
5313         MOV DWORD PTR [EBP-4], EAX\r
5314 L_391:\r
5315         MOV EAX,DWORD PTR [EBP-4]\r
5316 L_386:\r
5317         MOV ESP,EBP\r
5318         POP EBP\r
5319         RETN 8\r
5320 _GetFileLFAM:\r
5321         PUSH EBP\r
5322         MOV EBP,ESP\r
5323         SUB ESP,8\r
5324         PUSH DWORD PTR [EBP+12]\r
5325         LEA EAX,DWORD PTR [EBP-8]\r
5326         PUSH EAX\r
5327         CALL _ValidateHandle\r
5328         MOV DWORD PTR [EBP-4], EAX\r
5329         MOV EAX,DWORD PTR [EBP-4]\r
5330         AND EAX,EAX\r
5331         JZ L_392\r
5332         MOV EAX,DWORD PTR [EBP-4]\r
5333         JMP L_393\r
5334 L_392:\r
5335         MOV EAX,DWORD PTR [EBP+12]\r
5336         SHL EAX,5\r
5337         MOV ESI,_paFUB\r
5338         ADD ESI,EAX\r
5339         XOR EAX,EAX\r
5340         MOV AL,BYTE PTR [ESI+27]\r
5341         AND EAX,EAX\r
5342         JNZ L_394\r
5343         MOV EAX,215\r
5344         JMP L_393\r
5345 L_394:\r
5346         MOV ESI,DWORD PTR [EBP+8]\r
5347         MOV EAX,DWORD PTR [EBP+12]\r
5348         SHL EAX,5\r
5349         MOV EBX,ESI\r
5350         MOV ESI,_paFUB\r
5351         ADD ESI,EAX\r
5352         MOV EAX,DWORD PTR [ESI+4]\r
5353         MOV DWORD PTR [EBX], EAX\r
5354         MOV EAX,DWORD PTR [EBP-4]\r
5355 L_393:\r
5356         MOV ESP,EBP\r
5357         POP EBP\r
5358         RETN 8\r
5359 _OpenFileM:\r
5360         PUSH EBP\r
5361         MOV EBP,ESP\r
5362         SUB ESP,36\r
5363         XOR EAX,EAX\r
5364         MOV AL,BYTE PTR [EBP+20]\r
5365         CMP EAX,1\r
5366         SETA AL\r
5367         AND AL,AL\r
5368         JZ L_395\r
5369         MOV EAX,207\r
5370         JMP L_396\r
5371 L_395:\r
5372         XOR EAX,EAX\r
5373         MOV DWORD PTR [EBP-8], EAX\r
5374         MOV EAX,DWORD PTR [EBP+24]\r
5375         AND EAX,EAX\r
5376         JZ L_397\r
5377         MOV ESI,DWORD PTR [EBP+28]\r
5378         XOR EAX,EAX\r
5379         MOV AL,BYTE PTR [ESI]\r
5380         CMP EAX,32\r
5381         SETE AL\r
5382         AND AL,AL\r
5383 L_397:\r
5384         JNZ L_398\r
5385         MOV EAX,DWORD PTR [EBP+24]\r
5386         AND EAX,EAX\r
5387         SETZ AL\r
5388         AND AL,AL\r
5389 L_398:\r
5390         JZ L_399\r
5391         MOV EAX,200\r
5392         JMP L_396\r
5393 L_399:\r
5394         PUSH DWORD PTR [EBP+28]\r
5395         PUSH DWORD PTR [EBP+24]\r
5396         PUSH DWORD PTR [EBP+8]\r
5397         CALL _ParseName\r
5398         MOV DWORD PTR [EBP-4], EAX\r
5399         XOR EAX,EAX\r
5400         MOV AL,_FDrive\r
5401         CMP EAX,64\r
5402         SETA AL\r
5403         AND AL,AL\r
5404         JZ L_400\r
5405         XOR EAX,EAX\r
5406         MOV AL,_FDrive\r
5407         CMP EAX,82\r
5408         SETB AL\r
5409         AND AL,AL\r
5410 L_400:\r
5411         JZ L_401\r
5412         XOR EAX,EAX\r
5413         MOV AL,_FDrive\r
5414         MOV ECX,65\r
5415         SUB EAX,ECX\r
5416         MOV BYTE PTR [EBP-36], AL\r
5417         JMP L_402\r
5418 L_401:\r
5419         MOV EAX,201\r
5420         MOV DWORD PTR [EBP-4], EAX\r
5421 L_402:\r
5422         XOR EAX,EAX\r
5423         MOV AL,BYTE PTR [EBP-36]\r
5424         SHL EAX,5\r
5425         MOV ESI,OFFSET _Ldrv\r
5426         ADD ESI,EAX\r
5427         XOR EAX,EAX\r
5428         MOV AL,BYTE PTR [ESI+28]\r
5429         CMP EAX,255\r
5430         SETE AL\r
5431         AND AL,AL\r
5432         JZ L_403\r
5433         MOV EAX,201\r
5434         MOV DWORD PTR [EBP-4], EAX\r
5435 L_403:\r
5436         XOR EAX,EAX\r
5437         MOV AL,BYTE PTR [EBP-36]\r
5438         CMP EAX,2\r
5439         SETB AL\r
5440         AND AL,AL\r
5441         JZ L_404\r
5442         MOV EAX,DWORD PTR [EBP-4]\r
5443         AND EAX,EAX\r
5444         SETZ AL\r
5445         AND AL,AL\r
5446 L_404:\r
5447         JZ L_405\r
5448         XOR EAX,EAX\r
5449         MOV AL,BYTE PTR [EBP-36]\r
5450         PUSH EAX\r
5451         CALL _StatFloppy\r
5452         XOR EAX,EAX\r
5453         MOV AL,BYTE PTR [EBP-36]\r
5454         PUSH EAX\r
5455         CALL _read_BS\r
5456         MOV DWORD PTR [EBP-4], EAX\r
5457 L_405:\r
5458         MOV EAX,DWORD PTR [EBP-4]\r
5459         AND EAX,EAX\r
5460         JNZ L_406\r
5461         MOV EAX,DWORD PTR [EBP-8]\r
5462         MOV ECX,11\r
5463         MUL ECX\r
5464         MOV ESI,OFFSET _FileSpec\r
5465         ADD ESI,EAX\r
5466         PUSH ESI\r
5467         XOR EAX,EAX\r
5468         MOV AL,BYTE PTR [EBP-36]\r
5469         PUSH EAX\r
5470         LEA EAX,DWORD PTR [EBP-24]\r
5471         PUSH EAX\r
5472         LEA EAX,DWORD PTR [EBP-28]\r
5473         PUSH EAX\r
5474         PUSH OFFSET _pDirEnt\r
5475         CALL _GetRootEnt\r
5476         MOV DWORD PTR [EBP-4], EAX\r
5477         MOV EAX,DWORD PTR [EBP-4]\r
5478         CMP EAX,203\r
5479         SETE AL\r
5480         AND AL,AL\r
5481         JZ L_407\r
5482         MOV EAX,DWORD PTR [EBP-8]\r
5483         XOR ECX,ECX\r
5484         MOV CL,_SpecDepth\r
5485         CMP EAX,ECX\r
5486         SETE AL\r
5487         AND AL,AL\r
5488         JZ L_408\r
5489         MOV EAX,203\r
5490         MOV DWORD PTR [EBP-4], EAX\r
5491         JMP L_409\r
5492 L_408:\r
5493         MOV EAX,204\r
5494         MOV DWORD PTR [EBP-4], EAX\r
5495 L_409:\r
5496 L_407:\r
5497         MOV EAX,DWORD PTR [EBP-4]\r
5498         AND EAX,EAX\r
5499         JZ L_410\r
5500         MOV EAX,DWORD PTR [EBP-4]\r
5501         JMP L_396\r
5502 L_410:\r
5503         MOV EAX,DWORD PTR [EBP-4]\r
5504         AND EAX,EAX\r
5505         JNZ L_411\r
5506         MOV ESI,_pDirEnt\r
5507         MOVZX EAX,WORD PTR [ESI+26]\r
5508         MOV WORD PTR [EBP-30], AX\r
5509 L_411:\r
5510 L_412:\r
5511         MOV EAX,DWORD PTR [EBP-8]\r
5512         XOR ECX,ECX\r
5513         MOV CL,_SpecDepth\r
5514         CMP EAX,ECX\r
5515         SETB AL\r
5516         AND AL,AL\r
5517         JZ L_414\r
5518         MOV EAX,DWORD PTR [EBP-4]\r
5519         AND EAX,EAX\r
5520         SETZ AL\r
5521         AND AL,AL\r
5522 L_414:\r
5523         JZ L_413\r
5524         INC DWORD PTR [EBP-8]\r
5525         MOV EAX,DWORD PTR [EBP-8]\r
5526         MOV ECX,11\r
5527         MUL ECX\r
5528         MOV ESI,OFFSET _FileSpec\r
5529         ADD ESI,EAX\r
5530         PUSH ESI\r
5531         XOR EAX,EAX\r
5532         MOV AL,BYTE PTR [EBP-36]\r
5533         PUSH EAX\r
5534         MOVZX EAX,WORD PTR [EBP-30]\r
5535         PUSH EAX\r
5536         LEA EAX,DWORD PTR [EBP-24]\r
5537         PUSH EAX\r
5538         LEA EAX,DWORD PTR [EBP-28]\r
5539         PUSH EAX\r
5540         PUSH OFFSET _pDirEnt\r
5541         CALL _GetDirEnt\r
5542         MOV DWORD PTR [EBP-4], EAX\r
5543         MOV EAX,DWORD PTR [EBP-4]\r
5544         CMP EAX,203\r
5545         SETE AL\r
5546         AND AL,AL\r
5547         JZ L_415\r
5548         MOV EAX,DWORD PTR [EBP-8]\r
5549         XOR ECX,ECX\r
5550         MOV CL,_SpecDepth\r
5551         CMP EAX,ECX\r
5552         SETE AL\r
5553         AND AL,AL\r
5554         JZ L_416\r
5555         MOV EAX,203\r
5556         MOV DWORD PTR [EBP-4], EAX\r
5557         JMP L_417\r
5558 L_416:\r
5559         MOV EAX,204\r
5560         MOV DWORD PTR [EBP-4], EAX\r
5561 L_417:\r
5562         JMP L_418\r
5563 L_415:\r
5564         MOV EAX,DWORD PTR [EBP-4]\r
5565         AND EAX,EAX\r
5566         JZ L_419\r
5567         MOV EAX,DWORD PTR [EBP-4]\r
5568         JMP L_396\r
5569 L_419:\r
5570         MOV ESI,_pDirEnt\r
5571         MOVZX EAX,WORD PTR [ESI+26]\r
5572         MOV WORD PTR [EBP-30], AX\r
5573 L_420:\r
5574 L_418:\r
5575         JMP L_412\r
5576 L_413:\r
5577         MOV EAX,DWORD PTR [EBP-4]\r
5578         AND EAX,EAX\r
5579         JNZ L_421\r
5580         MOV ESI,_pDirEnt\r
5581         XOR EAX,EAX\r
5582         MOV AL,BYTE PTR [ESI+11]\r
5583         MOV ECX,24\r
5584         AND EAX,ECX\r
5585         JZ L_422\r
5586         MOV EAX,202\r
5587         JMP L_396\r
5588 L_422:\r
5589         XOR EAX,EAX\r
5590         MOV AL,BYTE PTR [EBP+20]\r
5591         AND EAX,EAX\r
5592         JZ L_423\r
5593         MOV ESI,_pDirEnt\r
5594         XOR EAX,EAX\r
5595         MOV AL,BYTE PTR [ESI+11]\r
5596         MOV ECX,1\r
5597         AND EAX,ECX\r
5598 L_423:\r
5599         JZ L_424\r
5600         MOV EAX,205\r
5601         JMP L_396\r
5602 L_424:\r
5603         XOR EAX,EAX\r
5604         MOV BYTE PTR [EBP-31], AL\r
5605         XOR EAX,EAX\r
5606         MOV DWORD PTR [EBP-12], EAX\r
5607 L_425:\r
5608         MOV EAX,DWORD PTR [EBP-12]\r
5609         CMP EAX,128\r
5610         SETB AL\r
5611         AND AL,AL\r
5612         JZ L_427\r
5613         XOR EAX,EAX\r
5614         MOV AL,BYTE PTR [EBP-31]\r
5615         AND EAX,EAX\r
5616         SETZ AL\r
5617         AND AL,AL\r
5618 L_427:\r
5619         JZ L_426\r
5620         MOV EAX,DWORD PTR [EBP-12]\r
5621         MOV ECX,64\r
5622         MUL ECX\r
5623         MOV ESI,_paFCB\r
5624         ADD ESI,EAX\r
5625         XOR EAX,EAX\r
5626         MOV AL,BYTE PTR [ESI+40]\r
5627         AND EAX,EAX\r
5628         JZ L_428\r
5629         MOV EAX,DWORD PTR [EBP-12]\r
5630         MOV ECX,64\r
5631         MUL ECX\r
5632         MOV ESI,_paFCB\r
5633         ADD ESI,EAX\r
5634         XOR EAX,EAX\r
5635         MOV AL,BYTE PTR [ESI+38]\r
5636         XOR ECX,ECX\r
5637         MOV CL,BYTE PTR [EBP-36]\r
5638         CMP EAX,ECX\r
5639         SETE AL\r
5640         AND AL,AL\r
5641         JZ L_429\r
5642         MOV EAX,DWORD PTR [EBP-12]\r
5643         MOV ECX,64\r
5644         MUL ECX\r
5645         MOV ESI,_paFCB\r
5646         ADD ESI,EAX\r
5647         MOV EBX,ESI\r
5648         MOV ESI,_pDirEnt\r
5649         MOVZX EAX,WORD PTR [EBX+26]\r
5650         MOVZX ECX,WORD PTR [ESI+26]\r
5651         CMP EAX,ECX\r
5652         SETE AL\r
5653         AND AL,AL\r
5654         JZ L_430\r
5655         MOV EAX,DWORD PTR [EBP-12]\r
5656         MOV ECX,64\r
5657         MUL ECX\r
5658         MOV ESI,_paFCB\r
5659         ADD ESI,EAX\r
5660         PUSH ESI\r
5661         XOR EAX,EAX\r
5662         MOV AL,_SpecDepth\r
5663         MOV ECX,11\r
5664         MUL ECX\r
5665         MOV ESI,OFFSET _FileSpec\r
5666         ADD ESI,EAX\r
5667         PUSH ESI\r
5668         PUSH 11\r
5669         CALL FWORD PTR _CompareNCS\r
5670         CMP EAX,-1\r
5671         SETE AL\r
5672         AND AL,AL\r
5673 L_430:\r
5674 L_429:\r
5675 L_428:\r
5676         JZ L_431\r
5677         MOV EAX,1\r
5678         MOV BYTE PTR [EBP-31], AL\r
5679         JMP L_432\r
5680 L_431:\r
5681         INC DWORD PTR [EBP-12]\r
5682         MOV EAX,DWORD PTR [EBP-12]\r
5683 L_432:\r
5684         JMP L_425\r
5685 L_426:\r
5686         XOR EAX,EAX\r
5687         MOV AL,BYTE PTR [EBP-31]\r
5688         AND EAX,EAX\r
5689         JZ L_433\r
5690         MOV EAX,DWORD PTR [EBP-12]\r
5691         MOV ECX,64\r
5692         MUL ECX\r
5693         MOV ESI,_paFCB\r
5694         ADD ESI,EAX\r
5695         XOR EAX,EAX\r
5696         MOV AL,BYTE PTR [ESI+39]\r
5697         AND EAX,EAX\r
5698         JZ L_434\r
5699         MOV EAX,208\r
5700         JMP L_396\r
5701 L_434:\r
5702         MOV EAX,DWORD PTR [EBP-12]\r
5703         MOV DWORD PTR [EBP-16], EAX\r
5704         MOV EAX,DWORD PTR [EBP-12]\r
5705         MOV ECX,64\r
5706         MUL ECX\r
5707         MOV ESI,_paFCB\r
5708         ADD ESI,EAX\r
5709         MOV EAX,ESI\r
5710         MOV _pFCB, EAX\r
5711         MOV ESI,_pFCB\r
5712         XOR EAX,EAX\r
5713         MOV AL,BYTE PTR [ESI+40]\r
5714         INC BYTE PTR [ESI+40]\r
5715 L_435:\r
5716         JMP L_436\r
5717 L_433:\r
5718         XOR EAX,EAX\r
5719         MOV DWORD PTR [EBP-12], EAX\r
5720 L_437:\r
5721         MOV EAX,DWORD PTR [EBP-12]\r
5722         CMP EAX,128\r
5723         SETB AL\r
5724         AND AL,AL\r
5725         JZ L_439\r
5726         MOV EAX,DWORD PTR [EBP-12]\r
5727         MOV ECX,64\r
5728         MUL ECX\r
5729         MOV ESI,_paFCB\r
5730         ADD ESI,EAX\r
5731         XOR EAX,EAX\r
5732         MOV AL,BYTE PTR [ESI+40]\r
5733 L_439:\r
5734         AND EAX,EAX\r
5735         JZ L_438\r
5736         INC DWORD PTR [EBP-12]\r
5737         MOV EAX,DWORD PTR [EBP-12]\r
5738         JMP L_437\r
5739 L_438:\r
5740         MOV EAX,DWORD PTR [EBP-12]\r
5741         CMP EAX,128\r
5742         SETE AL\r
5743         AND AL,AL\r
5744         JZ L_440\r
5745         MOV EAX,206\r
5746         JMP L_396\r
5747 L_440:\r
5748         MOV EAX,DWORD PTR [EBP-12]\r
5749         MOV DWORD PTR [EBP-16], EAX\r
5750         MOV EAX,DWORD PTR [EBP-12]\r
5751         MOV ECX,64\r
5752         MUL ECX\r
5753         MOV ESI,_paFCB\r
5754         ADD ESI,EAX\r
5755         MOV EAX,ESI\r
5756         MOV _pFCB, EAX\r
5757         PUSH _pDirEnt\r
5758         PUSH _pFCB\r
5759         PUSH 32\r
5760         CALL FWORD PTR _CopyData\r
5761         MOV ESI,_pFCB\r
5762         XOR EAX,EAX\r
5763         MOV AL,BYTE PTR [EBP-36]\r
5764         MOV BYTE PTR [ESI+38], AL\r
5765         MOV ESI,_pFCB\r
5766         XOR EAX,EAX\r
5767         MOV AL,BYTE PTR [ESI+40]\r
5768         INC BYTE PTR [ESI+40]\r
5769         MOV ESI,_pFCB\r
5770         XOR EAX,EAX\r
5771         MOV AL,BYTE PTR [EBP+20]\r
5772         MOV BYTE PTR [ESI+39], AL\r
5773         MOV ESI,_pFCB\r
5774         MOV EAX,DWORD PTR [EBP-24]\r
5775         MOV DWORD PTR [ESI+32], EAX\r
5776         MOV ESI,_pFCB\r
5777         MOV EAX,DWORD PTR [EBP-28]\r
5778         MOV WORD PTR [ESI+36], AX\r
5779 L_436:\r
5780         MOV EAX,4\r
5781         MOV DWORD PTR [EBP-12], EAX\r
5782 L_441:\r
5783         MOV EAX,DWORD PTR [EBP-12]\r
5784         CMP EAX,128\r
5785         SETB AL\r
5786         AND AL,AL\r
5787         JZ L_443\r
5788         MOV EAX,DWORD PTR [EBP-12]\r
5789         SHL EAX,5\r
5790         MOV ESI,_paFUB\r
5791         ADD ESI,EAX\r
5792         MOVZX EAX,WORD PTR [ESI]\r
5793 L_443:\r
5794         AND EAX,EAX\r
5795         JZ L_442\r
5796         INC DWORD PTR [EBP-12]\r
5797         MOV EAX,DWORD PTR [EBP-12]\r
5798         JMP L_441\r
5799 L_442:\r
5800         MOV EAX,DWORD PTR [EBP-12]\r
5801         CMP EAX,128\r
5802         SETE AL\r
5803         AND AL,AL\r
5804         JZ L_444\r
5805         MOV ESI,_pFCB\r
5806         XOR EAX,EAX\r
5807         MOV AL,BYTE PTR [ESI+40]\r
5808         DEC BYTE PTR [ESI+40]\r
5809         MOV EAX,209\r
5810         JMP L_396\r
5811 L_444:\r
5812         MOV EAX,DWORD PTR [EBP-12]\r
5813         MOV DWORD PTR [EBP-20], EAX\r
5814         MOV EAX,DWORD PTR [EBP-20]\r
5815         SHL EAX,5\r
5816         MOV ESI,_paFUB\r
5817         ADD ESI,EAX\r
5818         MOV EAX,DWORD PTR [EBP+8]\r
5819         MOV WORD PTR [ESI], AX\r
5820         MOV EAX,DWORD PTR [EBP-20]\r
5821         SHL EAX,5\r
5822         MOV ESI,_paFUB\r
5823         ADD ESI,EAX\r
5824         MOV EAX,DWORD PTR [EBP-16]\r
5825         MOV WORD PTR [ESI+2], AX\r
5826         MOV EAX,DWORD PTR [EBP-20]\r
5827         SHL EAX,5\r
5828         MOV ESI,_paFUB\r
5829         ADD ESI,EAX\r
5830         XOR EAX,EAX\r
5831         MOV DWORD PTR [ESI+4], EAX\r
5832         MOV EAX,DWORD PTR [EBP-20]\r
5833         SHL EAX,5\r
5834         MOV ESI,_paFUB\r
5835         ADD ESI,EAX\r
5836         XOR EAX,EAX\r
5837         MOV BYTE PTR [ESI+26], AL\r
5838         MOV EAX,DWORD PTR [EBP-20]\r
5839         SHL EAX,5\r
5840         MOV ESI,_paFUB\r
5841         ADD ESI,EAX\r
5842         XOR EAX,EAX\r
5843         MOV AL,BYTE PTR [EBP+16]\r
5844         MOV BYTE PTR [ESI+27], AL\r
5845         MOV EAX,DWORD PTR [EBP-20]\r
5846         SHL EAX,5\r
5847         MOV ESI,_paFUB\r
5848         ADD ESI,EAX\r
5849         MOV EBX,ESI\r
5850         MOV ESI,_pDirEnt\r
5851         MOVZX EAX,WORD PTR [ESI+26]\r
5852         MOV WORD PTR [EBX+24], AX\r
5853         MOV EAX,DWORD PTR [EBP-20]\r
5854         SHL EAX,5\r
5855         MOV ESI,_paFUB\r
5856         ADD ESI,EAX\r
5857         XOR EAX,EAX\r
5858         MOV DWORD PTR [ESI+20], EAX\r
5859         MOV EAX,DWORD PTR [EBP-20]\r
5860         SHL EAX,5\r
5861         MOV ESI,_paFUB\r
5862         ADD ESI,EAX\r
5863         XOR EAX,EAX\r
5864         MOV DWORD PTR [ESI+16], EAX\r
5865         MOV EAX,DWORD PTR [EBP-20]\r
5866         SHL EAX,5\r
5867         MOV ESI,_paFUB\r
5868         ADD ESI,EAX\r
5869         XOR EAX,EAX\r
5870         MOV DWORD PTR [ESI+12], EAX\r
5871         XOR EAX,EAX\r
5872         MOV AL,BYTE PTR [EBP+16]\r
5873         AND EAX,EAX\r
5874         JZ L_445\r
5875         PUSH 1\r
5876         LEA EAX,DWORD PTR [EBP-35]\r
5877         PUSH EAX\r
5878         CALL FWORD PTR _AllocOSPage\r
5879         MOV DWORD PTR [EBP-4], EAX\r
5880         MOV EAX,DWORD PTR [EBP-4]\r
5881         AND EAX,EAX\r
5882         JZ L_446\r
5883         MOV ESI,_pFCB\r
5884         XOR EAX,EAX\r
5885         MOV AL,BYTE PTR [ESI+40]\r
5886         DEC BYTE PTR [ESI+40]\r
5887         MOV EAX,DWORD PTR [EBP-20]\r
5888         SHL EAX,5\r
5889         MOV ESI,_paFUB\r
5890         ADD ESI,EAX\r
5891         XOR EAX,EAX\r
5892         MOV WORD PTR [ESI], AX\r
5893         MOV EAX,DWORD PTR [EBP-4]\r
5894         JMP L_396\r
5895 L_446:\r
5896         MOV EAX,DWORD PTR [EBP-20]\r
5897         SHL EAX,5\r
5898         MOV ESI,_paFUB\r
5899         ADD ESI,EAX\r
5900         MOV EAX,DWORD PTR [EBP-35]\r
5901         MOV DWORD PTR [ESI+8], EAX\r
5902         MOV EAX,DWORD PTR [EBP-20]\r
5903         SHL EAX,5\r
5904         MOV ESI,_paFUB\r
5905         ADD ESI,EAX\r
5906         MOV EAX,4096\r
5907         MOV DWORD PTR [ESI+12], EAX\r
5908         PUSH DWORD PTR [EBP-20]\r
5909         PUSH 1\r
5910         CALL _FillStreamBuff\r
5911         MOV DWORD PTR [EBP-4], EAX\r
5912         MOV EAX,DWORD PTR [EBP-4]\r
5913         AND EAX,EAX\r
5914         JZ L_447\r
5915         MOV ESI,_pFCB\r
5916         XOR EAX,EAX\r
5917         MOV AL,BYTE PTR [ESI+40]\r
5918         DEC BYTE PTR [ESI+40]\r
5919         MOV EAX,DWORD PTR [EBP-20]\r
5920         SHL EAX,5\r
5921         MOV ESI,_paFUB\r
5922         ADD ESI,EAX\r
5923         XOR EAX,EAX\r
5924         MOV WORD PTR [ESI], AX\r
5925         PUSH DWORD PTR [EBP-35]\r
5926         PUSH 1\r
5927         CALL FWORD PTR _DeAllocPage\r
5928         MOV EAX,DWORD PTR [EBP-4]\r
5929         JMP L_396\r
5930 L_447:\r
5931 L_445:\r
5932         MOV ESI,DWORD PTR [EBP+12]\r
5933         MOV EAX,DWORD PTR [EBP-20]\r
5934         MOV DWORD PTR [ESI], EAX\r
5935 L_421:\r
5936 L_406:\r
5937         MOV EAX,DWORD PTR [EBP-4]\r
5938 L_396:\r
5939         MOV ESP,EBP\r
5940         POP EBP\r
5941         RETN 24\r
5942 _CloseFileM:\r
5943         PUSH EBP\r
5944         MOV EBP,ESP\r
5945         SUB ESP,12\r
5946         PUSH DWORD PTR [EBP+8]\r
5947         LEA EAX,DWORD PTR [EBP-8]\r
5948         PUSH EAX\r
5949         CALL _ValidateHandle\r
5950         MOV DWORD PTR [EBP-4], EAX\r
5951         MOV EAX,DWORD PTR [EBP-4]\r
5952         AND EAX,EAX\r
5953         JZ L_448\r
5954         MOV EAX,DWORD PTR [EBP-4]\r
5955         JMP L_449\r
5956 L_448:\r
5957         MOV EAX,DWORD PTR [EBP-8]\r
5958         MOV ECX,64\r
5959         MUL ECX\r
5960         MOV ESI,_paFCB\r
5961         ADD ESI,EAX\r
5962         XOR EAX,EAX\r
5963         MOV AL,BYTE PTR [ESI+39]\r
5964         AND EAX,EAX\r
5965         JZ L_450\r
5966         MOV EAX,DWORD PTR [EBP+8]\r
5967         SHL EAX,5\r
5968         MOV ESI,_paFUB\r
5969         ADD ESI,EAX\r
5970         XOR EAX,EAX\r
5971         MOV AL,BYTE PTR [ESI+27]\r
5972         AND EAX,EAX\r
5973         JZ L_451\r
5974         PUSH DWORD PTR [EBP+8]\r
5975         CALL _FlushStreamBuff\r
5976         MOV DWORD PTR [EBP-4], EAX\r
5977 L_451:\r
5978         PUSH DWORD PTR [EBP-8]\r
5979         CALL _UpdateDirEnt\r
5980 L_450:\r
5981         MOV EAX,DWORD PTR [EBP+8]\r
5982         SHL EAX,5\r
5983         MOV ESI,_paFUB\r
5984         ADD ESI,EAX\r
5985         XOR EAX,EAX\r
5986         MOV AL,BYTE PTR [ESI+27]\r
5987         AND EAX,EAX\r
5988         JZ L_452\r
5989         MOV EAX,DWORD PTR [EBP+8]\r
5990         SHL EAX,5\r
5991         MOV ESI,_paFUB\r
5992         ADD ESI,EAX\r
5993         PUSH DWORD PTR [ESI+8]\r
5994         PUSH 1\r
5995         CALL FWORD PTR _DeAllocPage\r
5996 L_452:\r
5997         MOV EAX,DWORD PTR [EBP-8]\r
5998         MOV ECX,64\r
5999         MUL ECX\r
6000         MOV ESI,_paFCB\r
6001         ADD ESI,EAX\r
6002         XOR EAX,EAX\r
6003         MOV AL,BYTE PTR [ESI+40]\r
6004         AND EAX,EAX\r
6005         JNZ L_453\r
6006         MOV EAX,213\r
6007         MOV DWORD PTR [EBP-4], EAX\r
6008         JMP L_454\r
6009 L_453:\r
6010         MOV EAX,DWORD PTR [EBP-8]\r
6011         MOV ECX,64\r
6012         MUL ECX\r
6013         MOV ESI,_paFCB\r
6014         ADD ESI,EAX\r
6015         XOR EAX,EAX\r
6016         MOV AL,BYTE PTR [ESI+40]\r
6017         DEC BYTE PTR [ESI+40]\r
6018 L_454:\r
6019         MOV EAX,DWORD PTR [EBP+8]\r
6020         SHL EAX,5\r
6021         MOV ESI,_paFUB\r
6022         ADD ESI,EAX\r
6023         XOR EAX,EAX\r
6024         MOV WORD PTR [ESI], AX\r
6025         XOR EAX,EAX\r
6026         MOV DWORD PTR [EBP-12], EAX\r
6027 L_455:\r
6028         MOV EAX,DWORD PTR [EBP-12]\r
6029         CMP EAX,17\r
6030         SETB AL\r
6031         AND AL,AL\r
6032         JZ L_456\r
6033         JMP SHORT L_457\r
6034 L_458:\r
6035         MOV EAX,DWORD PTR [EBP-12]\r
6036         INC DWORD PTR [EBP-12]\r
6037         JMP SHORT L_455\r
6038 L_457:\r
6039         PUSH DWORD PTR [EBP-12]\r
6040         CALL _UpdateFAT\r
6041         JMP L_458\r
6042 L_456:\r
6043         MOV EAX,DWORD PTR [EBP-4]\r
6044 L_449:\r
6045         MOV ESP,EBP\r
6046         POP EBP\r
6047         RETN 4\r
6048 _CreateFileM:\r
6049         PUSH EBP\r
6050         MOV EBP,ESP\r
6051         SUB ESP,125\r
6052         MOV EAX,DWORD PTR [EBP+12]\r
6053         AND EAX,16\r
6054         JZ L_459\r
6055         MOV EAX,1\r
6056         MOV BYTE PTR [EBP-125], AL\r
6057         XOR EAX,EAX\r
6058         MOV DWORD PTR [EBP-20], EAX\r
6059         JMP L_460\r
6060 L_459:\r
6061         XOR EAX,EAX\r
6062         MOV BYTE PTR [EBP-125], AL\r
6063 L_460:\r
6064         PUSH DWORD PTR [EBP+20]\r
6065         PUSH DWORD PTR [EBP+16]\r
6066         XOR EAX,EAX\r
6067         PUSH EAX\r
6068         XOR EAX,EAX\r
6069         PUSH EAX\r
6070         LEA EAX,DWORD PTR [EBP-4]\r
6071         PUSH EAX\r
6072         PUSH DWORD PTR [EBP+8]\r
6073         CALL _OpenFileM\r
6074         MOV DWORD PTR [EBP-20], EAX\r
6075         MOV EAX,DWORD PTR [EBP-20]\r
6076         JMP L_462\r
6077 L_463:\r
6078         PUSH DWORD PTR [EBP-4]\r
6079         CALL _CloseFileM\r
6080         MOV EAX,226\r
6081         MOV DWORD PTR [EBP-20], EAX\r
6082         JMP L_461\r
6083 L_464:\r
6084         MOV EAX,226\r
6085         MOV DWORD PTR [EBP-20], EAX\r
6086         JMP L_461\r
6087 L_465:\r
6088         JMP L_461\r
6089 L_466:\r
6090         XOR EAX,EAX\r
6091         MOV DWORD PTR [EBP-20], EAX\r
6092         PUSH DWORD PTR [EBP+20]\r
6093         PUSH DWORD PTR [EBP+16]\r
6094         LEA EAX,DWORD PTR [EBP-98]\r
6095         PUSH EAX\r
6096         LEA EAX,DWORD PTR [EBP-102]\r
6097         PUSH EAX\r
6098         PUSH DWORD PTR [EBP+8]\r
6099         CALL _BuildSpec\r
6100         LEA EAX,DWORD PTR [EBP-98]\r
6101         PUSH EAX\r
6102         PUSH DWORD PTR [EBP-102]\r
6103         PUSH DWORD PTR [EBP+8]\r
6104         CALL _ParseName\r
6105         MOV DWORD PTR [EBP-20], EAX\r
6106         MOV EAX,DWORD PTR [EBP-20]\r
6107         AND EAX,EAX\r
6108         JZ L_467\r
6109         MOV EAX,DWORD PTR [EBP-20]\r
6110         JMP L_468\r
6111 L_467:\r
6112         XOR EAX,EAX\r
6113         MOV AL,_FDrive\r
6114         MOV ECX,65\r
6115         SUB EAX,ECX\r
6116         MOV BYTE PTR [EBP-124], AL\r
6117         XOR EAX,EAX\r
6118         MOV AL,_SpecDepth\r
6119         MOV ECX,11\r
6120         MUL ECX\r
6121         MOV ESI,OFFSET _FileSpec\r
6122         ADD ESI,EAX\r
6123         PUSH ESI\r
6124         LEA EAX,DWORD PTR [EBP-114]\r
6125         PUSH EAX\r
6126         PUSH 11\r
6127         CALL FWORD PTR _CopyData\r
6128         MOV EAX,11\r
6129         LEA ESI,BYTE PTR [EBP-114]\r
6130         ADD ESI,EAX\r
6131         XOR EAX,EAX\r
6132         MOV BYTE PTR [ESI], AL\r
6133 L_469:\r
6134         MOV EAX,DWORD PTR [EBP-102]\r
6135         AND EAX,EAX\r
6136         JZ L_471\r
6137         MOV EAX,DWORD PTR [EBP-102]\r
6138         SUB EAX,1\r
6139         LEA ESI,BYTE PTR [EBP-98]\r
6140         ADD ESI,EAX\r
6141         MOVSX EAX,BYTE PTR [ESI]\r
6142         CMP EAX,92\r
6143         SETNE AL\r
6144         AND AL,AL\r
6145 L_471:\r
6146         JZ L_470\r
6147         MOV EAX,DWORD PTR [EBP-102]\r
6148         DEC DWORD PTR [EBP-102]\r
6149         JMP L_469\r
6150 L_470:\r
6151         XOR EAX,EAX\r
6152         MOV BYTE PTR [EBP-123], AL\r
6153         XOR EAX,EAX\r
6154         MOV DWORD PTR [EBP-8], EAX\r
6155 L_472:\r
6156         XOR EAX,EAX\r
6157         MOV AL,BYTE PTR [EBP-123]\r
6158         AND EAX,EAX\r
6159         SETZ AL\r
6160         AND AL,AL\r
6161         JZ L_474\r
6162         MOV EAX,DWORD PTR [EBP-20]\r
6163         AND EAX,EAX\r
6164         SETZ AL\r
6165         AND AL,AL\r
6166 L_474:\r
6167         JZ L_473\r
6168         LEA EAX,DWORD PTR [EBP-98]\r
6169         PUSH EAX\r
6170         PUSH DWORD PTR [EBP-102]\r
6171         PUSH OFFSET _abTmpSector\r
6172         PUSH 512\r
6173         MOV EAX,DWORD PTR [EBP-8]\r
6174         INC DWORD PTR [EBP-8]\r
6175         PUSH EAX\r
6176         LEA EAX,DWORD PTR [EBP-24]\r
6177         PUSH EAX\r
6178         LEA EAX,WORD PTR [EBP-122]\r
6179         PUSH EAX\r
6180         PUSH DWORD PTR [EBP+8]\r
6181         CALL _GetDirSectorM\r
6182         MOV DWORD PTR [EBP-20], EAX\r
6183         MOV EAX,DWORD PTR [EBP-20]\r
6184         AND EAX,EAX\r
6185         JNZ L_475\r
6186         XOR EAX,EAX\r
6187         MOV DWORD PTR [EBP-16], EAX\r
6188         MOV EAX,OFFSET _abTmpSector\r
6189         MOV _pDirEnt, EAX\r
6190 L_476:\r
6191         MOV EAX,DWORD PTR [EBP-16]\r
6192         CMP EAX,16\r
6193         SETB AL\r
6194         AND AL,AL\r
6195         JZ L_477\r
6196         MOV ESI,_pDirEnt\r
6197         XOR EAX,EAX\r
6198         MOV AL,BYTE PTR [ESI]\r
6199         CMP EAX,229\r
6200         SETE AL\r
6201         AND AL,AL\r
6202         JNZ L_478\r
6203         MOV ESI,_pDirEnt\r
6204         XOR EAX,EAX\r
6205         MOV AL,BYTE PTR [ESI]\r
6206         AND EAX,EAX\r
6207         SETZ AL\r
6208         AND AL,AL\r
6209 L_478:\r
6210         JZ L_479\r
6211         MOV EAX,1\r
6212         MOV BYTE PTR [EBP-123], AL\r
6213         JMP L_477\r
6214 L_479:\r
6215         MOV EAX,_pDirEnt\r
6216         ADD EAX,32\r
6217         MOV _pDirEnt, EAX\r
6218         MOV EAX,DWORD PTR [EBP-16]\r
6219         INC DWORD PTR [EBP-16]\r
6220         JMP L_476\r
6221 L_477:\r
6222 L_475:\r
6223         JMP L_472\r
6224 L_473:\r
6225         MOV EAX,DWORD PTR [EBP-20]\r
6226         CMP EAX,224\r
6227         SETE AL\r
6228         AND AL,AL\r
6229         JZ L_480\r
6230         XOR EAX,EAX\r
6231         MOV AL,_SpecDepth\r
6232         AND EAX,EAX\r
6233         SETZ AL\r
6234         AND AL,AL\r
6235 L_480:\r
6236         JZ L_481\r
6237         MOV EAX,228\r
6238         JMP L_468\r
6239 L_481:\r
6240         MOV EAX,DWORD PTR [EBP-20]\r
6241         CMP EAX,1\r
6242         SETE AL\r
6243         AND AL,AL\r
6244         JZ L_483\r
6245         PUSH OFFSET _abTmpSector\r
6246         PUSH 512\r
6247         XOR EAX,EAX\r
6248         PUSH EAX\r
6249         CALL FWORD PTR _FillData\r
6250         XOR EAX,EAX\r
6251         MOV AL,BYTE PTR [EBP-124]\r
6252         SHL EAX,5\r
6253         MOV ESI,OFFSET _Ldrv\r
6254         ADD ESI,EAX\r
6255         XOR EAX,EAX\r
6256         MOV AL,BYTE PTR [ESI+29]\r
6257         MOV DWORD PTR [EBP-28], EAX\r
6258         XOR EAX,EAX\r
6259         MOV AL,BYTE PTR [EBP-124]\r
6260         PUSH EAX\r
6261         MOVZX EAX,WORD PTR [EBP-122]\r
6262         PUSH EAX\r
6263         LEA EAX,WORD PTR [EBP-122]\r
6264         PUSH EAX\r
6265         CALL _ExtendClstrChain\r
6266         MOV DWORD PTR [EBP-20], EAX\r
6267         MOV EAX,DWORD PTR [EBP-20]\r
6268         AND EAX,EAX\r
6269         JZ L_484\r
6270         MOV EAX,DWORD PTR [EBP-20]\r
6271         JMP L_468\r
6272 L_484:\r
6273         MOVZX EAX,WORD PTR [EBP-122]\r
6274         PUSH EAX\r
6275         XOR EAX,EAX\r
6276         MOV AL,BYTE PTR [EBP-124]\r
6277         PUSH EAX\r
6278         CALL _ClsToLBA\r
6279         MOV DWORD PTR [EBP-24], EAX\r
6280         MOV EAX,DWORD PTR [EBP-24]\r
6281         MOV DWORD PTR [EBP-12], EAX\r
6282         MOV EAX,DWORD PTR [EBP-28]\r
6283         MOV DWORD PTR [EBP-8], EAX\r
6284         XOR EAX,EAX\r
6285         MOV DWORD PTR [EBP-20], EAX\r
6286 L_485:\r
6287         MOV EAX,DWORD PTR [EBP-8]\r
6288         DEC DWORD PTR [EBP-8]\r
6289         AND EAX,EAX\r
6290         JZ L_487\r
6291         MOV EAX,DWORD PTR [EBP-20]\r
6292         AND EAX,EAX\r
6293         SETZ AL\r
6294         AND AL,AL\r
6295 L_487:\r
6296         JZ L_486\r
6297         XOR EAX,EAX\r
6298         MOV AL,BYTE PTR [EBP-124]\r
6299         SHL EAX,5\r
6300         MOV ESI,OFFSET _Ldrv\r
6301         ADD ESI,EAX\r
6302         XOR EAX,EAX\r
6303         MOV AL,BYTE PTR [ESI+28]\r
6304         PUSH EAX\r
6305         PUSH 2\r
6306         MOV EAX,DWORD PTR [EBP-12]\r
6307         INC DWORD PTR [EBP-12]\r
6308         PUSH EAX\r
6309         PUSH 1\r
6310         PUSH OFFSET _abTmpSector\r
6311         CALL FWORD PTR _DeviceOp\r
6312         MOV DWORD PTR [EBP-20], EAX\r
6313         JMP L_485\r
6314 L_486:\r
6315         MOV EAX,OFFSET _abTmpSector\r
6316         MOV _pDirEnt, EAX\r
6317         MOV EAX,1\r
6318         MOV BYTE PTR [EBP-123], AL\r
6319 L_483:\r
6320 L_482:\r
6321         MOV EAX,DWORD PTR [EBP-20]\r
6322         AND EAX,EAX\r
6323         SETZ AL\r
6324         AND AL,AL\r
6325         JZ L_488\r
6326         XOR EAX,EAX\r
6327         MOV AL,BYTE PTR [EBP-123]\r
6328 L_488:\r
6329         AND EAX,EAX\r
6330         JZ L_489\r
6331         XOR EAX,EAX\r
6332         MOV DWORD PTR [EBP-16], EAX\r
6333         XOR EAX,EAX\r
6334         MOV WORD PTR [EBP-116], AX\r
6335 L_490:\r
6336         MOV EAX,DWORD PTR [EBP-16]\r
6337         CMP EAX,17\r
6338         SETB AL\r
6339         AND AL,AL\r
6340         JZ L_492\r
6341         MOVZX EAX,WORD PTR [EBP-116]\r
6342         AND EAX,EAX\r
6343         SETZ AL\r
6344         AND AL,AL\r
6345 L_492:\r
6346         JZ L_491\r
6347         MOV EAX,DWORD PTR [EBP-16]\r
6348         SHL EAX,4\r
6349         MOV ESI,OFFSET _Fat\r
6350         ADD ESI,EAX\r
6351         XOR EAX,EAX\r
6352         MOV AL,BYTE PTR [EBP-124]\r
6353         XOR ECX,ECX\r
6354         MOV CL,BYTE PTR [ESI+14]\r
6355         CMP EAX,ECX\r
6356         SETE AL\r
6357         AND AL,AL\r
6358         JZ L_493\r
6359         MOV EAX,DWORD PTR [EBP-16]\r
6360         SHL EAX,4\r
6361         MOV ESI,OFFSET _Fat\r
6362         ADD ESI,EAX\r
6363         MOV EAX,DWORD PTR [ESI+4]\r
6364 L_493:\r
6365         AND EAX,EAX\r
6366         JZ L_494\r
6367         MOV EAX,DWORD PTR [EBP-16]\r
6368         SHL EAX,4\r
6369         MOV ESI,OFFSET _Fat\r
6370         ADD ESI,EAX\r
6371         MOVZX EAX,WORD PTR [ESI+12]\r
6372         MOV WORD PTR [EBP-116], AX\r
6373 L_494:\r
6374         MOV EAX,DWORD PTR [EBP-16]\r
6375         INC DWORD PTR [EBP-16]\r
6376         JMP L_490\r
6377 L_491:\r
6378         MOVZX EAX,WORD PTR [EBP-116]\r
6379         AND EAX,EAX\r
6380         JNZ L_495\r
6381         MOV EAX,2\r
6382         MOV WORD PTR [EBP-116], AX\r
6383 L_495:\r
6384         MOVZX EAX,WORD PTR [EBP-116]\r
6385         MOV WORD PTR [EBP-120], AX\r
6386         XOR EAX,EAX\r
6387         MOV BYTE PTR [EBP-123], AL\r
6388 L_496:\r
6389         XOR EAX,EAX\r
6390         MOV AL,BYTE PTR [EBP-123]\r
6391         AND EAX,EAX\r
6392         JNZ L_497\r
6393         INC WORD PTR [EBP-116]\r
6394         MOVZX EAX,WORD PTR [EBP-116]\r
6395         MOVZX EAX,WORD PTR [EBP-116]\r
6396         MOVZX ECX,WORD PTR [EBP-120]\r
6397         CMP EAX,ECX\r
6398         SETE AL\r
6399         AND AL,AL\r
6400         JZ L_498\r
6401         MOV EAX,230\r
6402         JMP L_468\r
6403 L_498:\r
6404         MOVZX EAX,WORD PTR [EBP-116]\r
6405         PUSH EAX\r
6406         XOR EAX,EAX\r
6407         MOV AL,BYTE PTR [EBP-124]\r
6408         PUSH EAX\r
6409         XOR EAX,EAX\r
6410         PUSH EAX\r
6411         LEA EAX,WORD PTR [EBP-118]\r
6412         PUSH EAX\r
6413         LEA EAX,DWORD PTR [EBP-12]\r
6414         PUSH EAX\r
6415         CALL _GetClstrValue\r
6416         MOV DWORD PTR [EBP-20], EAX\r
6417         MOV EAX,DWORD PTR [EBP-20]\r
6418         AND EAX,EAX\r
6419         SETZ AL\r
6420         AND AL,AL\r
6421         JZ L_499\r
6422         MOVZX EAX,WORD PTR [EBP-118]\r
6423         AND EAX,EAX\r
6424         SETZ AL\r
6425         AND AL,AL\r
6426 L_499:\r
6427         JZ L_500\r
6428         MOV EAX,1\r
6429         MOV BYTE PTR [EBP-123], AL\r
6430         JMP L_501\r
6431 L_500:\r
6432         MOV EAX,DWORD PTR [EBP-20]\r
6433         CMP EAX,220\r
6434         SETE AL\r
6435         AND AL,AL\r
6436         JZ L_502\r
6437         MOVZX EAX,WORD PTR [EBP-120]\r
6438         CMP EAX,2\r
6439         SETA AL\r
6440         AND AL,AL\r
6441         JZ L_503\r
6442         MOV EAX,2\r
6443         MOV WORD PTR [EBP-116], AX\r
6444         JMP L_504\r
6445 L_503:\r
6446         MOV EAX,230\r
6447         JMP L_468\r
6448 L_504:\r
6449         JMP L_505\r
6450 L_502:\r
6451         MOV EAX,DWORD PTR [EBP-20]\r
6452         AND EAX,EAX\r
6453         JZ L_506\r
6454         MOV EAX,DWORD PTR [EBP-20]\r
6455         JMP L_468\r
6456 L_506:\r
6457 L_505:\r
6458 L_501:\r
6459         JMP L_496\r
6460 L_497:\r
6461         LEA EAX,DWORD PTR [EBP-114]\r
6462         PUSH EAX\r
6463         PUSH _pDirEnt\r
6464         PUSH 11\r
6465         CALL FWORD PTR _CopyData\r
6466         XOR EAX,EAX\r
6467         MOV AL,BYTE PTR [EBP-125]\r
6468         AND EAX,EAX\r
6469         JNZ L_507\r
6470         MOV ESI,_pDirEnt\r
6471         MOV EAX,DWORD PTR [EBP+12]\r
6472         AND EAX,39\r
6473         MOV BYTE PTR [ESI+11], AL\r
6474         JMP L_508\r
6475 L_507:\r
6476         MOV ESI,_pDirEnt\r
6477         MOV EAX,DWORD PTR [EBP+12]\r
6478         MOV BYTE PTR [ESI+11], AL\r
6479 L_508:\r
6480         MOV EAX,_pDirEnt\r
6481         ADD EAX,22\r
6482         PUSH EAX\r
6483         MOV EAX,_pDirEnt\r
6484         ADD EAX,24\r
6485         PUSH EAX\r
6486         CALL _GetFATTime\r
6487         MOV ESI,_pDirEnt\r
6488         MOVZX EAX,WORD PTR [EBP-116]\r
6489         MOV WORD PTR [ESI+26], AX\r
6490         MOV ESI,_pDirEnt\r
6491         XOR EAX,EAX\r
6492         MOV DWORD PTR [ESI+28], EAX\r
6493         MOVZX EAX,WORD PTR [EBP-116]\r
6494         PUSH EAX\r
6495         PUSH 65535\r
6496         XOR EAX,EAX\r
6497         MOV AL,BYTE PTR [EBP-124]\r
6498         PUSH EAX\r
6499         LEA EAX,DWORD PTR [EBP-8]\r
6500         PUSH EAX\r
6501         CALL _SetClstrValue\r
6502         MOV DWORD PTR [EBP-20], EAX\r
6503         MOV EAX,DWORD PTR [EBP-20]\r
6504         AND EAX,EAX\r
6505         JNZ L_509\r
6506         XOR EAX,EAX\r
6507         MOV AL,BYTE PTR [EBP-124]\r
6508         SHL EAX,5\r
6509         MOV ESI,OFFSET _Ldrv\r
6510         ADD ESI,EAX\r
6511         XOR EAX,EAX\r
6512         MOV AL,BYTE PTR [ESI+28]\r
6513         PUSH EAX\r
6514         PUSH 2\r
6515         PUSH DWORD PTR [EBP-24]\r
6516         PUSH 1\r
6517         PUSH OFFSET _abTmpSector\r
6518         CALL FWORD PTR _DeviceOp\r
6519         MOV DWORD PTR [EBP-20], EAX\r
6520 L_509:\r
6521         XOR EAX,EAX\r
6522         MOV AL,BYTE PTR [EBP-125]\r
6523         AND EAX,EAX\r
6524         JZ L_510\r
6525         PUSH OFFSET _abTmpSector\r
6526         PUSH 512\r
6527         XOR EAX,EAX\r
6528         PUSH EAX\r
6529         CALL FWORD PTR _FillData\r
6530         MOV EAX,OFFSET _abTmpSector\r
6531         MOV _pDirEnt, EAX\r
6532         PUSH OFFSET L_lit+9\r
6533         PUSH _pDirEnt\r
6534         PUSH 11\r
6535         CALL FWORD PTR _CopyData\r
6536         MOV ESI,_pDirEnt\r
6537         MOV EAX,16\r
6538         MOV BYTE PTR [ESI+11], AL\r
6539         MOV EAX,_pDirEnt\r
6540         ADD EAX,22\r
6541         PUSH EAX\r
6542         MOV EAX,_pDirEnt\r
6543         ADD EAX,24\r
6544         PUSH EAX\r
6545         CALL _GetFATTime\r
6546         MOV ESI,_pDirEnt\r
6547         MOVZX EAX,WORD PTR [EBP-116]\r
6548         MOV WORD PTR [ESI+26], AX\r
6549         MOV ESI,_pDirEnt\r
6550         XOR EAX,EAX\r
6551         MOV DWORD PTR [ESI+28], EAX\r
6552         MOV EAX,_pDirEnt\r
6553         ADD EAX,32\r
6554         MOV _pDirEnt, EAX\r
6555         PUSH OFFSET L_lit+21\r
6556         PUSH _pDirEnt\r
6557         PUSH 11\r
6558         CALL FWORD PTR _CopyData\r
6559         MOV ESI,_pDirEnt\r
6560         MOV EAX,16\r
6561         MOV BYTE PTR [ESI+11], AL\r
6562         MOV EAX,_pDirEnt\r
6563         ADD EAX,22\r
6564         PUSH EAX\r
6565         MOV EAX,_pDirEnt\r
6566         ADD EAX,24\r
6567         PUSH EAX\r
6568         CALL _GetFATTime\r
6569         MOV ESI,_pDirEnt\r
6570         MOVZX EAX,WORD PTR [EBP-122]\r
6571         MOV WORD PTR [ESI+26], AX\r
6572         MOV ESI,_pDirEnt\r
6573         XOR EAX,EAX\r
6574         MOV DWORD PTR [ESI+28], EAX\r
6575         XOR EAX,EAX\r
6576         MOV AL,BYTE PTR [EBP-124]\r
6577         SHL EAX,5\r
6578         MOV ESI,OFFSET _Ldrv\r
6579         ADD ESI,EAX\r
6580         XOR EAX,EAX\r
6581         MOV AL,BYTE PTR [ESI+29]\r
6582         MOV DWORD PTR [EBP-28], EAX\r
6583         MOVZX EAX,WORD PTR [EBP-116]\r
6584         PUSH EAX\r
6585         XOR EAX,EAX\r
6586         MOV AL,BYTE PTR [EBP-124]\r
6587         PUSH EAX\r
6588         CALL _ClsToLBA\r
6589         MOV DWORD PTR [EBP-24], EAX\r
6590         MOV EAX,DWORD PTR [EBP-24]\r
6591         MOV DWORD PTR [EBP-12], EAX\r
6592         XOR EAX,EAX\r
6593         MOV AL,BYTE PTR [EBP-124]\r
6594         SHL EAX,5\r
6595         MOV ESI,OFFSET _Ldrv\r
6596         ADD ESI,EAX\r
6597         XOR EAX,EAX\r
6598         MOV AL,BYTE PTR [ESI+28]\r
6599         PUSH EAX\r
6600         PUSH 2\r
6601         MOV EAX,DWORD PTR [EBP-12]\r
6602         INC DWORD PTR [EBP-12]\r
6603         PUSH EAX\r
6604         PUSH 1\r
6605         PUSH OFFSET _abTmpSector\r
6606         CALL FWORD PTR _DeviceOp\r
6607         MOV DWORD PTR [EBP-20], EAX\r
6608         PUSH OFFSET _abTmpSector\r
6609         PUSH 512\r
6610         XOR EAX,EAX\r
6611         PUSH EAX\r
6612         CALL FWORD PTR _FillData\r
6613         XOR EAX,EAX\r
6614         MOV DWORD PTR [EBP-20], EAX\r
6615         MOV EAX,DWORD PTR [EBP-28]\r
6616         SUB EAX,1\r
6617         MOV DWORD PTR [EBP-8], EAX\r
6618 L_511:\r
6619         MOV EAX,DWORD PTR [EBP-8]\r
6620         DEC DWORD PTR [EBP-8]\r
6621         AND EAX,EAX\r
6622         JZ L_513\r
6623         MOV EAX,DWORD PTR [EBP-20]\r
6624         AND EAX,EAX\r
6625         SETZ AL\r
6626         AND AL,AL\r
6627 L_513:\r
6628         JZ L_512\r
6629         XOR EAX,EAX\r
6630         MOV AL,BYTE PTR [EBP-124]\r
6631         SHL EAX,5\r
6632         MOV ESI,OFFSET _Ldrv\r
6633         ADD ESI,EAX\r
6634         XOR EAX,EAX\r
6635         MOV AL,BYTE PTR [ESI+28]\r
6636         PUSH EAX\r
6637         PUSH 2\r
6638         MOV EAX,DWORD PTR [EBP-12]\r
6639         INC DWORD PTR [EBP-12]\r
6640         PUSH EAX\r
6641         PUSH 1\r
6642         PUSH OFFSET _abTmpSector\r
6643         CALL FWORD PTR _DeviceOp\r
6644         MOV DWORD PTR [EBP-20], EAX\r
6645         JMP L_511\r
6646 L_512:\r
6647 L_510:\r
6648         XOR EAX,EAX\r
6649         MOV DWORD PTR [EBP-8], EAX\r
6650 L_514:\r
6651         MOV EAX,DWORD PTR [EBP-8]\r
6652         CMP EAX,17\r
6653         SETB AL\r
6654         AND AL,AL\r
6655         JZ L_515\r
6656         JMP SHORT L_516\r
6657 L_517:\r
6658         MOV EAX,DWORD PTR [EBP-8]\r
6659         INC DWORD PTR [EBP-8]\r
6660         JMP SHORT L_514\r
6661 L_516:\r
6662         PUSH DWORD PTR [EBP-8]\r
6663         CALL _UpdateFAT\r
6664         JMP L_517\r
6665 L_515:\r
6666         MOV EAX,DWORD PTR [EBP-20]\r
6667         JMP L_468\r
6668 L_489:\r
6669         MOV EAX,DWORD PTR [EBP-20]\r
6670         JMP L_468\r
6671 L_518:\r
6672 L_519:\r
6673         JMP L_461\r
6674 L_462:\r
6675         CMP EAX,203\r
6676         JE L_466\r
6677         CMP EAX,202\r
6678         JE L_465\r
6679         CMP EAX,208\r
6680         JE L_464\r
6681         CMP EAX,0\r
6682         JE L_463\r
6683         JMP L_519\r
6684 L_461:\r
6685         MOV EAX,DWORD PTR [EBP-20]\r
6686 L_468:\r
6687         MOV ESP,EBP\r
6688         POP EBP\r
6689         RETN 16\r
6690 _DeleteFileM:\r
6691         PUSH EBP\r
6692         MOV EBP,ESP\r
6693         SUB ESP,15\r
6694         PUSH DWORD PTR [EBP+8]\r
6695         LEA EAX,DWORD PTR [EBP-8]\r
6696         PUSH EAX\r
6697         CALL _ValidateHandle\r
6698         MOV DWORD PTR [EBP-4], EAX\r
6699         MOV EAX,DWORD PTR [EBP-4]\r
6700         AND EAX,EAX\r
6701         JZ L_520\r
6702         MOV EAX,DWORD PTR [EBP-4]\r
6703         JMP L_521\r
6704 L_520:\r
6705         MOV EAX,DWORD PTR [EBP-8]\r
6706         MOV ECX,64\r
6707         MUL ECX\r
6708         MOV ESI,_paFCB\r
6709         ADD ESI,EAX\r
6710         XOR EAX,EAX\r
6711         MOV AL,BYTE PTR [ESI+38]\r
6712         MOV BYTE PTR [EBP-15], AL\r
6713         MOV EAX,DWORD PTR [EBP-8]\r
6714         MOV ECX,64\r
6715         MUL ECX\r
6716         MOV ESI,_paFCB\r
6717         ADD ESI,EAX\r
6718         XOR EAX,EAX\r
6719         MOV AL,BYTE PTR [ESI+39]\r
6720         AND EAX,EAX\r
6721         JNZ L_522\r
6722         PUSH DWORD PTR [EBP+8]\r
6723         CALL _CloseFileM\r
6724         MOV EAX,205\r
6725         JMP L_521\r
6726 L_522:\r
6727         MOV EAX,DWORD PTR [EBP+8]\r
6728         SHL EAX,5\r
6729         MOV ESI,_paFUB\r
6730         ADD ESI,EAX\r
6731         XOR EAX,EAX\r
6732         MOV AL,BYTE PTR [ESI+27]\r
6733         AND EAX,EAX\r
6734         JZ L_523\r
6735         MOV EAX,DWORD PTR [EBP+8]\r
6736         SHL EAX,5\r
6737         MOV ESI,_paFUB\r
6738         ADD ESI,EAX\r
6739         PUSH DWORD PTR [ESI+8]\r
6740         PUSH 1\r
6741         CALL FWORD PTR _DeAllocPage\r
6742 L_523:\r
6743         MOV EAX,DWORD PTR [EBP-8]\r
6744         MOV ECX,64\r
6745         MUL ECX\r
6746         MOV ESI,_paFCB\r
6747         ADD ESI,EAX\r
6748         MOVZX EAX,WORD PTR [ESI+26]\r
6749         MOV WORD PTR [EBP-14], AX\r
6750         MOVZX EAX,WORD PTR [EBP-14]\r
6751         AND EAX,EAX\r
6752         JZ L_524\r
6753         XOR EAX,EAX\r
6754         MOV AL,BYTE PTR [EBP-15]\r
6755         PUSH EAX\r
6756         MOVZX EAX,WORD PTR [EBP-14]\r
6757         PUSH EAX\r
6758         CALL _TruncClstrChain\r
6759         MOV DWORD PTR [EBP-4], EAX\r
6760         MOV EAX,DWORD PTR [EBP-4]\r
6761         AND EAX,EAX\r
6762         JNZ L_525\r
6763         MOVZX EAX,WORD PTR [EBP-14]\r
6764         PUSH EAX\r
6765         XOR EAX,EAX\r
6766         PUSH EAX\r
6767         XOR EAX,EAX\r
6768         MOV AL,BYTE PTR [EBP-15]\r
6769         PUSH EAX\r
6770         LEA EAX,DWORD PTR [EBP-12]\r
6771         PUSH EAX\r
6772         CALL _SetClstrValue\r
6773         MOV DWORD PTR [EBP-4], EAX\r
6774 L_525:\r
6775 L_524:\r
6776         MOV EAX,DWORD PTR [EBP-8]\r
6777         MOV ECX,64\r
6778         MUL ECX\r
6779         MOV ESI,_paFCB\r
6780         ADD ESI,EAX\r
6781         MOV EAX,229\r
6782         MOV BYTE PTR [ESI], AL\r
6783         PUSH DWORD PTR [EBP-8]\r
6784         CALL _UpdateDirEnt\r
6785         MOV EAX,DWORD PTR [EBP-8]\r
6786         MOV ECX,64\r
6787         MUL ECX\r
6788         MOV ESI,_paFCB\r
6789         ADD ESI,EAX\r
6790         XOR EAX,EAX\r
6791         MOV AL,BYTE PTR [ESI+40]\r
6792         AND EAX,EAX\r
6793         JNZ L_526\r
6794         MOV EAX,213\r
6795         MOV DWORD PTR [EBP-4], EAX\r
6796         JMP L_527\r
6797 L_526:\r
6798         MOV EAX,DWORD PTR [EBP-8]\r
6799         MOV ECX,64\r
6800         MUL ECX\r
6801         MOV ESI,_paFCB\r
6802         ADD ESI,EAX\r
6803         XOR EAX,EAX\r
6804         MOV AL,BYTE PTR [ESI+40]\r
6805         DEC BYTE PTR [ESI+40]\r
6806 L_527:\r
6807         MOV EAX,DWORD PTR [EBP+8]\r
6808         SHL EAX,5\r
6809         MOV ESI,_paFUB\r
6810         ADD ESI,EAX\r
6811         XOR EAX,EAX\r
6812         MOV WORD PTR [ESI], AX\r
6813         XOR EAX,EAX\r
6814         MOV DWORD PTR [EBP-12], EAX\r
6815 L_528:\r
6816         MOV EAX,DWORD PTR [EBP-12]\r
6817         CMP EAX,17\r
6818         SETB AL\r
6819         AND AL,AL\r
6820         JZ L_529\r
6821         JMP SHORT L_530\r
6822 L_531:\r
6823         MOV EAX,DWORD PTR [EBP-12]\r
6824         INC DWORD PTR [EBP-12]\r
6825         JMP SHORT L_528\r
6826 L_530:\r
6827         PUSH DWORD PTR [EBP-12]\r
6828         CALL _UpdateFAT\r
6829         JMP L_531\r
6830 L_529:\r
6831         MOV EAX,DWORD PTR [EBP-4]\r
6832 L_521:\r
6833         MOV ESP,EBP\r
6834         POP EBP\r
6835         RETN 4\r
6836 _RenameFileM:\r
6837         PUSH EBP\r
6838         MOV EBP,ESP\r
6839         SUB ESP,16\r
6840         PUSH DWORD PTR [EBP+24]\r
6841         PUSH DWORD PTR [EBP+20]\r
6842         PUSH 1\r
6843         XOR EAX,EAX\r
6844         PUSH EAX\r
6845         LEA EAX,DWORD PTR [EBP-4]\r
6846         PUSH EAX\r
6847         PUSH DWORD PTR [EBP+8]\r
6848         CALL _OpenFileM\r
6849         MOV DWORD PTR [EBP-8], EAX\r
6850         MOV EAX,DWORD PTR [EBP-8]\r
6851         AND EAX,EAX\r
6852         JNZ L_532\r
6853         XOR EAX,EAX\r
6854         MOV AL,_FDrive\r
6855         MOV _FDrive1, AL\r
6856         PUSH OFFSET _FileSpec\r
6857         PUSH OFFSET _FileSpec1\r
6858         PUSH 77\r
6859         CALL FWORD PTR _CopyData\r
6860         XOR EAX,EAX\r
6861         MOV AL,_SpecDepth\r
6862         MOV _SpecDepth1, AL\r
6863         PUSH DWORD PTR [EBP+16]\r
6864         PUSH DWORD PTR [EBP+12]\r
6865         PUSH DWORD PTR [EBP+8]\r
6866         CALL _ParseName\r
6867         MOV DWORD PTR [EBP-8], EAX\r
6868         MOV EAX,DWORD PTR [EBP-8]\r
6869         AND EAX,EAX\r
6870         JNZ L_533\r
6871         XOR EAX,EAX\r
6872         MOV AL,_FDrive1\r
6873         XOR ECX,ECX\r
6874         MOV CL,_FDrive\r
6875         CMP EAX,ECX\r
6876         SETNE AL\r
6877         AND AL,AL\r
6878         JNZ L_534\r
6879         XOR EAX,EAX\r
6880         MOV AL,_SpecDepth1\r
6881         XOR ECX,ECX\r
6882         MOV CL,_SpecDepth\r
6883         CMP EAX,ECX\r
6884         SETNE AL\r
6885         AND AL,AL\r
6886 L_534:\r
6887         JZ L_535\r
6888         MOV EAX,222\r
6889         MOV DWORD PTR [EBP-8], EAX\r
6890 L_535:\r
6891 L_533:\r
6892         MOV EAX,DWORD PTR [EBP-8]\r
6893         AND EAX,EAX\r
6894         JNZ L_536\r
6895         XOR EAX,EAX\r
6896         MOV AL,_SpecDepth\r
6897         AND EAX,EAX\r
6898         JZ L_537\r
6899         PUSH OFFSET _FileSpec\r
6900         PUSH OFFSET _FileSpec1\r
6901         XOR EAX,EAX\r
6902         MOV AL,_SpecDepth\r
6903         MOV ECX,11\r
6904         MUL ECX\r
6905         PUSH EAX\r
6906         CALL FWORD PTR _CompareNCS\r
6907         CMP EAX,-1\r
6908         SETNE AL\r
6909         AND AL,AL\r
6910         JZ L_538\r
6911         MOV EAX,223\r
6912         MOV DWORD PTR [EBP-8], EAX\r
6913 L_538:\r
6914 L_537:\r
6915 L_536:\r
6916         MOV EAX,DWORD PTR [EBP-8]\r
6917         AND EAX,EAX\r
6918         JNZ L_539\r
6919         MOV EAX,DWORD PTR [EBP-4]\r
6920         SHL EAX,5\r
6921         MOV ESI,_paFUB\r
6922         ADD ESI,EAX\r
6923         MOVZX EAX,WORD PTR [ESI+2]\r
6924         MOV DWORD PTR [EBP-16], EAX\r
6925         XOR EAX,EAX\r
6926         MOV AL,_SpecDepth\r
6927         MOV ECX,11\r
6928         MUL ECX\r
6929         MOV ESI,OFFSET _FileSpec\r
6930         ADD ESI,EAX\r
6931         PUSH ESI\r
6932         MOV EAX,DWORD PTR [EBP-16]\r
6933         MOV ECX,64\r
6934         MUL ECX\r
6935         MOV ESI,_paFCB\r
6936         ADD ESI,EAX\r
6937         PUSH ESI\r
6938         PUSH 11\r
6939         CALL FWORD PTR _CopyData\r
6940         PUSH DWORD PTR [EBP-16]\r
6941         CALL _UpdateDirEnt\r
6942         MOV DWORD PTR [EBP-8], EAX\r
6943 L_539:\r
6944         PUSH DWORD PTR [EBP-4]\r
6945         CALL _CloseFileM\r
6946         MOV DWORD PTR [EBP-12], EAX\r
6947         MOV EAX,DWORD PTR [EBP-8]\r
6948         AND EAX,EAX\r
6949         JNZ L_540\r
6950         MOV EAX,DWORD PTR [EBP-12]\r
6951         MOV DWORD PTR [EBP-8], EAX\r
6952 L_540:\r
6953 L_532:\r
6954         MOV EAX,DWORD PTR [EBP-8]\r
6955         MOV ESP,EBP\r
6956         POP EBP\r
6957         RETN 20\r
6958 _CreateDirM:\r
6959         PUSH EBP\r
6960         MOV EBP,ESP\r
6961         SUB ESP,4\r
6962         PUSH DWORD PTR [EBP+16]\r
6963         PUSH DWORD PTR [EBP+12]\r
6964         PUSH 16\r
6965         PUSH DWORD PTR [EBP+8]\r
6966         CALL _CreateFileM\r
6967         MOV DWORD PTR [EBP-4], EAX\r
6968         MOV EAX,DWORD PTR [EBP-4]\r
6969         MOV ESP,EBP\r
6970         POP EBP\r
6971         RETN 12\r
6972 _DeleteDirM:\r
6973         PUSH EBP\r
6974         MOV EBP,ESP\r
6975         XOR EAX,EAX\r
6976         MOV DWORD PTR [EBP+20], EAX\r
6977         XOR EAX,EAX\r
6978         MOV DWORD PTR [EBP+16], EAX\r
6979         XOR EAX,EAX\r
6980         MOV DWORD PTR [EBP+12], EAX\r
6981         XOR EAX,EAX\r
6982         MOV DWORD PTR [EBP+8], EAX\r
6983         POP EBP\r
6984         RETN 16\r
6985 _FSysTask:\r
6986         PUSH EBP\r
6987         MOV EBP,ESP\r
6988         SUB ESP,22\r
6989 L_543:\r
6990         MOV EAX,1\r
6991         AND EAX,EAX\r
6992         JZ L_544\r
6993         PUSH _FSysExch\r
6994         LEA EAX,DWORD PTR [EBP-8]\r
6995         PUSH EAX\r
6996         CALL FWORD PTR _WaitMsg\r
6997         MOV DWORD PTR [EBP-16], EAX\r
6998         MOV EAX,DWORD PTR [EBP-16]\r
6999         AND EAX,EAX\r
7000         JNZ L_545\r
7001         LEA ESI,DWORD PTR [EBP-8]\r
7002         MOV EAX,DWORD PTR [ESI]\r
7003         MOV _pRQB, EAX\r
7004         MOV ESI,_pRQB\r
7005         MOVSX EAX,WORD PTR [ESI+32]\r
7006         JMP L_547\r
7007 L_548:\r
7008         MOV EAX,4\r
7009         MOV DWORD PTR [EBP-20], EAX\r
7010 L_549:\r
7011         MOV EAX,DWORD PTR [EBP-20]\r
7012         CMP EAX,128\r
7013         SETB AL\r
7014         AND AL,AL\r
7015         JZ L_550\r
7016         MOV EAX,DWORD PTR [EBP-20]\r
7017         SHL EAX,5\r
7018         MOV ESI,_paFUB\r
7019         ADD ESI,EAX\r
7020         MOV EBX,ESI\r
7021         MOV ESI,_pRQB\r
7022         MOVZX EAX,WORD PTR [EBX]\r
7023         CMP EAX,DWORD PTR [ESI+20]\r
7024         SETE AL\r
7025         AND AL,AL\r
7026         JZ L_551\r
7027         PUSH DWORD PTR [EBP-20]\r
7028         CALL _CloseFileM\r
7029 L_551:\r
7030         INC DWORD PTR [EBP-20]\r
7031         MOV EAX,DWORD PTR [EBP-20]\r
7032         JMP L_549\r
7033 L_550:\r
7034         XOR EAX,EAX\r
7035         MOV DWORD PTR [EBP-16], EAX\r
7036         JMP L_546\r
7037 L_552:\r
7038         MOV ESI,_pRQB\r
7039         PUSH DWORD PTR [ESI+36]\r
7040         MOV ESI,_pRQB\r
7041         PUSH DWORD PTR [ESI+40]\r
7042         MOV ESI,_pRQB\r
7043         PUSH DWORD PTR [ESI+20]\r
7044         MOV ESI,_pRQB\r
7045         PUSH DWORD PTR [ESI+24]\r
7046         MOV ESI,_pRQB\r
7047         PUSH DWORD PTR [ESI+44]\r
7048         MOV ESI,_pRQB\r
7049         PUSH DWORD PTR [ESI+8]\r
7050         CALL _OpenFileM\r
7051         MOV DWORD PTR [EBP-16], EAX\r
7052         JMP L_546\r
7053 L_553:\r
7054         MOV ESI,_pRQB\r
7055         PUSH DWORD PTR [ESI+20]\r
7056         CALL _CloseFileM\r
7057         MOV DWORD PTR [EBP-16], EAX\r
7058         JMP L_546\r
7059 L_554:\r
7060         MOV ESI,_pRQB\r
7061         PUSH DWORD PTR [ESI+20]\r
7062         MOV ESI,_pRQB\r
7063         PUSH DWORD PTR [ESI+36]\r
7064         MOV ESI,_pRQB\r
7065         PUSH DWORD PTR [ESI+40]\r
7066         MOV ESI,_pRQB\r
7067         PUSH DWORD PTR [ESI+24]\r
7068         MOV ESI,_pRQB\r
7069         PUSH DWORD PTR [ESI+44]\r
7070         XOR EAX,EAX\r
7071         PUSH EAX\r
7072         CALL _ReadBlockM\r
7073         MOV DWORD PTR [EBP-16], EAX\r
7074         JMP L_546\r
7075 L_555:\r
7076         MOV ESI,_pRQB\r
7077         PUSH DWORD PTR [ESI+20]\r
7078         MOV ESI,_pRQB\r
7079         PUSH DWORD PTR [ESI+36]\r
7080         MOV ESI,_pRQB\r
7081         PUSH DWORD PTR [ESI+40]\r
7082         MOV ESI,_pRQB\r
7083         PUSH DWORD PTR [ESI+24]\r
7084         MOV ESI,_pRQB\r
7085         PUSH DWORD PTR [ESI+44]\r
7086         CALL _WriteBlockM\r
7087         MOV DWORD PTR [EBP-16], EAX\r
7088         JMP L_546\r
7089 L_556:\r
7090         MOV ESI,_pRQB\r
7091         PUSH DWORD PTR [ESI+20]\r
7092         MOV ESI,_pRQB\r
7093         PUSH DWORD PTR [ESI+36]\r
7094         MOV ESI,_pRQB\r
7095         PUSH DWORD PTR [ESI+40]\r
7096         MOV ESI,_pRQB\r
7097         PUSH DWORD PTR [ESI+44]\r
7098         CALL _ReadBytesM\r
7099         MOV DWORD PTR [EBP-16], EAX\r
7100         JMP L_546\r
7101 L_557:\r
7102         MOV ESI,_pRQB\r
7103         PUSH DWORD PTR [ESI+20]\r
7104         MOV ESI,_pRQB\r
7105         PUSH DWORD PTR [ESI+36]\r
7106         MOV ESI,_pRQB\r
7107         PUSH DWORD PTR [ESI+40]\r
7108         MOV ESI,_pRQB\r
7109         PUSH DWORD PTR [ESI+44]\r
7110         CALL _WriteBytesM\r
7111         MOV DWORD PTR [EBP-16], EAX\r
7112         JMP L_546\r
7113 L_558:\r
7114         MOV ESI,_pRQB\r
7115         PUSH DWORD PTR [ESI+20]\r
7116         MOV ESI,_pRQB\r
7117         PUSH DWORD PTR [ESI+36]\r
7118         CALL _GetFileLFAM\r
7119         MOV DWORD PTR [EBP-16], EAX\r
7120         JMP L_546\r
7121 L_559:\r
7122         MOV ESI,_pRQB\r
7123         PUSH DWORD PTR [ESI+20]\r
7124         MOV ESI,_pRQB\r
7125         PUSH DWORD PTR [ESI+24]\r
7126         CALL _SetFileLFAM\r
7127         MOV DWORD PTR [EBP-16], EAX\r
7128         JMP L_546\r
7129 L_560:\r
7130         MOV ESI,_pRQB\r
7131         PUSH DWORD PTR [ESI+20]\r
7132         MOV ESI,_pRQB\r
7133         PUSH DWORD PTR [ESI+36]\r
7134         CALL _GetFileSizeM\r
7135         MOV DWORD PTR [EBP-16], EAX\r
7136         JMP L_546\r
7137 L_561:\r
7138         MOV ESI,_pRQB\r
7139         PUSH DWORD PTR [ESI+20]\r
7140         MOV ESI,_pRQB\r
7141         PUSH DWORD PTR [ESI+24]\r
7142         CALL _SetFileSizeM\r
7143         MOV DWORD PTR [EBP-16], EAX\r
7144         JMP L_546\r
7145 L_562:\r
7146         MOV ESI,_pRQB\r
7147         PUSH DWORD PTR [ESI+36]\r
7148         MOV ESI,_pRQB\r
7149         PUSH DWORD PTR [ESI+40]\r
7150         MOV ESI,_pRQB\r
7151         PUSH DWORD PTR [ESI+20]\r
7152         MOV ESI,_pRQB\r
7153         PUSH DWORD PTR [ESI+8]\r
7154         CALL _CreateFileM\r
7155         MOV DWORD PTR [EBP-16], EAX\r
7156         JMP L_546\r
7157 L_563:\r
7158         MOV ESI,_pRQB\r
7159         PUSH DWORD PTR [ESI+36]\r
7160         MOV ESI,_pRQB\r
7161         PUSH DWORD PTR [ESI+40]\r
7162         MOV ESI,_pRQB\r
7163         PUSH DWORD PTR [ESI+44]\r
7164         MOV ESI,_pRQB\r
7165         PUSH DWORD PTR [ESI+48]\r
7166         MOV ESI,_pRQB\r
7167         PUSH DWORD PTR [ESI+8]\r
7168         CALL _RenameFileM\r
7169         MOV DWORD PTR [EBP-16], EAX\r
7170         JMP L_546\r
7171 L_564:\r
7172         MOV ESI,_pRQB\r
7173         PUSH DWORD PTR [ESI+20]\r
7174         CALL _DeleteFileM\r
7175         MOV DWORD PTR [EBP-16], EAX\r
7176         JMP L_546\r
7177 L_565:\r
7178         MOV ESI,_pRQB\r
7179         PUSH DWORD PTR [ESI+36]\r
7180         MOV ESI,_pRQB\r
7181         PUSH DWORD PTR [ESI+40]\r
7182         MOV ESI,_pRQB\r
7183         PUSH DWORD PTR [ESI+8]\r
7184         CALL _CreateDirM\r
7185         MOV DWORD PTR [EBP-16], EAX\r
7186         JMP L_546\r
7187 L_566:\r
7188         MOV ESI,_pRQB\r
7189         PUSH DWORD PTR [ESI+36]\r
7190         MOV ESI,_pRQB\r
7191         PUSH DWORD PTR [ESI+40]\r
7192         MOV ESI,_pRQB\r
7193         PUSH DWORD PTR [ESI+20]\r
7194         MOV ESI,_pRQB\r
7195         PUSH DWORD PTR [ESI+8]\r
7196         CALL _DeleteDirM\r
7197         MOV DWORD PTR [EBP-16], EAX\r
7198         JMP L_546\r
7199 L_567:\r
7200         MOV ESI,_pRQB\r
7201         PUSH DWORD PTR [ESI+36]\r
7202         MOV ESI,_pRQB\r
7203         PUSH DWORD PTR [ESI+40]\r
7204         MOV ESI,_pRQB\r
7205         PUSH DWORD PTR [ESI+44]\r
7206         MOV ESI,_pRQB\r
7207         PUSH DWORD PTR [ESI+48]\r
7208         MOV ESI,_pRQB\r
7209         PUSH DWORD PTR [ESI+20]\r
7210         LEA EAX,DWORD PTR [EBP-20]\r
7211         PUSH EAX\r
7212         LEA EAX,WORD PTR [EBP-22]\r
7213         PUSH EAX\r
7214         MOV ESI,_pRQB\r
7215         PUSH DWORD PTR [ESI+8]\r
7216         CALL _GetDirSectorM\r
7217         MOV DWORD PTR [EBP-16], EAX\r
7218         JMP L_546\r
7219 L_568:\r
7220         MOV EAX,32\r
7221         MOV DWORD PTR [EBP-16], EAX\r
7222         JMP L_546\r
7223 L_547:\r
7224         CMP EAX,16\r
7225         JE L_567\r
7226         CMP EAX,15\r
7227         JE L_566\r
7228         CMP EAX,14\r
7229         JE L_565\r
7230         CMP EAX,13\r
7231         JE L_564\r
7232         CMP EAX,12\r
7233         JE L_563\r
7234         CMP EAX,11\r
7235         JE L_562\r
7236         CMP EAX,10\r
7237         JE L_561\r
7238         CMP EAX,9\r
7239         JE L_560\r
7240         CMP EAX,8\r
7241         JE L_559\r
7242         CMP EAX,7\r
7243         JE L_558\r
7244         CMP EAX,6\r
7245         JE L_557\r
7246         CMP EAX,5\r
7247         JE L_556\r
7248         CMP EAX,4\r
7249         JE L_555\r
7250         CMP EAX,3\r
7251         JE L_554\r
7252         CMP EAX,2\r
7253         JE L_553\r
7254         CMP EAX,1\r
7255         JE L_552\r
7256         CMP EAX,0\r
7257         JE L_548\r
7258         JMP L_568\r
7259 L_546:\r
7260         LEA ESI,DWORD PTR [EBP-8]\r
7261         PUSH DWORD PTR [ESI]\r
7262         PUSH DWORD PTR [EBP-16]\r
7263         CALL FWORD PTR _Respond\r
7264         MOV DWORD PTR [EBP-12], EAX\r
7265 L_545:\r
7266         JMP L_543\r
7267 L_544:\r
7268         MOV ESP,EBP\r
7269         POP EBP\r
7270         RETN\r
7271 PUBLIC __OpenFile:\r
7272         PUSH EBP\r
7273         MOV EBP,ESP\r
7274         SUB ESP,24\r
7275         MOV EAX,DWORD PTR [EBP+24]\r
7276         CMP EAX,3\r
7277         SETE AL\r
7278         AND AL,AL\r
7279         JZ L_569\r
7280         PUSH DWORD PTR [EBP+28]\r
7281         PUSH OFFSET L_lit+33\r
7282         PUSH 3\r
7283         CALL FWORD PTR _CompareNCS\r
7284         CMP EAX,-1\r
7285         SETE AL\r
7286         AND AL,AL\r
7287         JZ L_570\r
7288         MOV ESI,DWORD PTR [EBP+12]\r
7289         XOR EAX,EAX\r
7290         MOV DWORD PTR [ESI], EAX\r
7291         XOR EAX,EAX\r
7292         JMP L_571\r
7293 L_570:\r
7294         PUSH DWORD PTR [EBP+28]\r
7295         PUSH OFFSET L_lit+37\r
7296         PUSH 3\r
7297         CALL FWORD PTR _CompareNCS\r
7298         CMP EAX,-1\r
7299         SETE AL\r
7300         AND AL,AL\r
7301         JZ L_573\r
7302         MOV ESI,DWORD PTR [EBP+12]\r
7303         MOV EAX,1\r
7304         MOV DWORD PTR [ESI], EAX\r
7305         XOR EAX,EAX\r
7306         JMP L_571\r
7307 L_573:\r
7308         PUSH DWORD PTR [EBP+28]\r
7309         PUSH OFFSET L_lit+41\r
7310         PUSH 3\r
7311         CALL FWORD PTR _CompareNCS\r
7312         CMP EAX,-1\r
7313         SETE AL\r
7314         AND AL,AL\r
7315         JZ L_575\r
7316         MOV ESI,DWORD PTR [EBP+12]\r
7317         MOV EAX,2\r
7318         MOV DWORD PTR [ESI], EAX\r
7319         XOR EAX,EAX\r
7320         JMP L_571\r
7321 L_575:\r
7322         PUSH DWORD PTR [EBP+28]\r
7323         PUSH OFFSET L_lit+45\r
7324         PUSH 3\r
7325         CALL FWORD PTR _CompareNCS\r
7326         CMP EAX,-1\r
7327         SETE AL\r
7328         AND AL,AL\r
7329         JZ L_577\r
7330         PUSH 3\r
7331         PUSH 10\r
7332         XOR EAX,EAX\r
7333         PUSH EAX\r
7334         XOR EAX,EAX\r
7335         PUSH EAX\r
7336         LEA EAX,DWORD PTR [EBP-16]\r
7337         PUSH EAX\r
7338         CALL FWORD PTR _DeviceOp\r
7339         MOV DWORD PTR [EBP-4], EAX\r
7340         MOV EAX,DWORD PTR [EBP-4]\r
7341         AND EAX,EAX\r
7342         JNZ L_578\r
7343         MOV ESI,DWORD PTR [EBP+12]\r
7344         MOV EAX,3\r
7345         MOV DWORD PTR [ESI], EAX\r
7346 L_578:\r
7347         MOV EAX,DWORD PTR [EBP-4]\r
7348         JMP L_571\r
7349 L_577:\r
7350 L_576:\r
7351 L_574:\r
7352 L_572:\r
7353 L_569:\r
7354         LEA EAX,DWORD PTR [EBP-8]\r
7355         PUSH EAX\r
7356         CALL FWORD PTR _GetTSSExch\r
7357         PUSH _fsysname\r
7358         PUSH 1\r
7359         PUSH DWORD PTR [EBP-8]\r
7360         LEA EAX,DWORD PTR [EBP-12]\r
7361         PUSH EAX\r
7362         PUSH 1\r
7363         PUSH DWORD PTR [EBP+28]\r
7364         PUSH DWORD PTR [EBP+24]\r
7365         PUSH DWORD PTR [EBP+12]\r
7366         PUSH 4\r
7367         PUSH DWORD PTR [EBP+20]\r
7368         PUSH DWORD PTR [EBP+16]\r
7369         XOR EAX,EAX\r
7370         PUSH EAX\r
7371         CALL FWORD PTR _Request\r
7372         MOV DWORD PTR [EBP-4], EAX\r
7373         MOV EAX,DWORD PTR [EBP-4]\r
7374         AND EAX,EAX\r
7375         JNZ L_579\r
7376         PUSH DWORD PTR [EBP-8]\r
7377         LEA EAX,DWORD PTR [EBP-24]\r
7378         PUSH EAX\r
7379         CALL FWORD PTR _WaitMsg\r
7380         MOV DWORD PTR [EBP-4], EAX\r
7381 L_579:\r
7382         MOV EAX,DWORD PTR [EBP-4]\r
7383         AND EAX,EAX\r
7384         JZ L_580\r
7385         MOV EAX,DWORD PTR [EBP-4]\r
7386         JMP L_571\r
7387 L_580:\r
7388         MOV EAX,4\r
7389         LEA ESI,DWORD PTR [EBP-24]\r
7390         ADD ESI,EAX\r
7391         MOV EAX,DWORD PTR [ESI]\r
7392 L_571:\r
7393         MOV ESP,EBP\r
7394         POP EBP\r
7395         RETF 20\r
7396 PUBLIC __CloseFile:\r
7397         PUSH EBP\r
7398         MOV EBP,ESP\r
7399         SUB ESP,24\r
7400         MOV EAX,DWORD PTR [EBP+12]\r
7401         CMP EAX,3\r
7402         SETB AL\r
7403         AND AL,AL\r
7404         JZ L_581\r
7405         XOR EAX,EAX\r
7406         JMP L_582\r
7407 L_581:\r
7408         MOV EAX,DWORD PTR [EBP+12]\r
7409         CMP EAX,3\r
7410         SETE AL\r
7411         AND AL,AL\r
7412         JZ L_584\r
7413         PUSH 3\r
7414         PUSH 11\r
7415         XOR EAX,EAX\r
7416         PUSH EAX\r
7417         XOR EAX,EAX\r
7418         PUSH EAX\r
7419         LEA EAX,DWORD PTR [EBP-16]\r
7420         PUSH EAX\r
7421         CALL FWORD PTR _DeviceOp\r
7422         MOV DWORD PTR [EBP-4], EAX\r
7423         MOV EAX,DWORD PTR [EBP-4]\r
7424         JMP L_582\r
7425 L_584:\r
7426 L_583:\r
7427         LEA EAX,DWORD PTR [EBP-8]\r
7428         PUSH EAX\r
7429         CALL FWORD PTR _GetTSSExch\r
7430         PUSH _fsysname\r
7431         PUSH 2\r
7432         PUSH DWORD PTR [EBP-8]\r
7433         LEA EAX,DWORD PTR [EBP-12]\r
7434         PUSH EAX\r
7435         XOR EAX,EAX\r
7436         PUSH EAX\r
7437         XOR EAX,EAX\r
7438         PUSH EAX\r
7439         XOR EAX,EAX\r
7440         PUSH EAX\r
7441         XOR EAX,EAX\r
7442         PUSH EAX\r
7443         XOR EAX,EAX\r
7444         PUSH EAX\r
7445         PUSH DWORD PTR [EBP+12]\r
7446         XOR EAX,EAX\r
7447         PUSH EAX\r
7448         XOR EAX,EAX\r
7449         PUSH EAX\r
7450         CALL FWORD PTR _Request\r
7451         MOV DWORD PTR [EBP-4], EAX\r
7452         MOV EAX,DWORD PTR [EBP-4]\r
7453         AND EAX,EAX\r
7454         JNZ L_585\r
7455         PUSH DWORD PTR [EBP-8]\r
7456         LEA EAX,DWORD PTR [EBP-24]\r
7457         PUSH EAX\r
7458         CALL FWORD PTR _WaitMsg\r
7459         MOV DWORD PTR [EBP-4], EAX\r
7460 L_585:\r
7461         MOV EAX,DWORD PTR [EBP-4]\r
7462         AND EAX,EAX\r
7463         JZ L_586\r
7464         MOV EAX,DWORD PTR [EBP-4]\r
7465         JMP L_582\r
7466 L_586:\r
7467         MOV EAX,4\r
7468         LEA ESI,DWORD PTR [EBP-24]\r
7469         ADD ESI,EAX\r
7470         MOV EAX,DWORD PTR [ESI]\r
7471 L_582:\r
7472         MOV ESP,EBP\r
7473         POP EBP\r
7474         RETF 4\r
7475 PUBLIC __ReadBlock:\r
7476         PUSH EBP\r
7477         MOV EBP,ESP\r
7478         SUB ESP,24\r
7479         MOV EAX,DWORD PTR [EBP+28]\r
7480         CMP EAX,4\r
7481         SETL AL\r
7482         AND AL,AL\r
7483         JZ L_587\r
7484         MOV EAX,227\r
7485         JMP L_588\r
7486 L_587:\r
7487         LEA EAX,DWORD PTR [EBP-8]\r
7488         PUSH EAX\r
7489         CALL FWORD PTR _GetTSSExch\r
7490         PUSH _fsysname\r
7491         PUSH 3\r
7492         PUSH DWORD PTR [EBP-8]\r
7493         LEA EAX,DWORD PTR [EBP-12]\r
7494         PUSH EAX\r
7495         PUSH 1\r
7496         PUSH DWORD PTR [EBP+24]\r
7497         PUSH DWORD PTR [EBP+20]\r
7498         PUSH DWORD PTR [EBP+12]\r
7499         PUSH 4\r
7500         PUSH DWORD PTR [EBP+28]\r
7501         PUSH DWORD PTR [EBP+16]\r
7502         XOR EAX,EAX\r
7503         PUSH EAX\r
7504         CALL FWORD PTR _Request\r
7505         MOV DWORD PTR [EBP-4], EAX\r
7506         MOV EAX,DWORD PTR [EBP-4]\r
7507         AND EAX,EAX\r
7508         JNZ L_589\r
7509         PUSH DWORD PTR [EBP-8]\r
7510         LEA EAX,DWORD PTR [EBP-20]\r
7511         PUSH EAX\r
7512         CALL FWORD PTR _WaitMsg\r
7513         MOV DWORD PTR [EBP-4], EAX\r
7514 L_589:\r
7515         MOV EAX,DWORD PTR [EBP-4]\r
7516         AND EAX,EAX\r
7517         JZ L_590\r
7518         MOV EAX,DWORD PTR [EBP-4]\r
7519         JMP L_588\r
7520 L_590:\r
7521         MOV EAX,4\r
7522         LEA ESI,DWORD PTR [EBP-20]\r
7523         ADD ESI,EAX\r
7524         MOV EAX,DWORD PTR [ESI]\r
7525         AND EAX,EAX\r
7526         JZ L_591\r
7527         PUSH 10\r
7528         PUSH OFFSET _FDDevStat\r
7529         PUSH 64\r
7530         LEA EAX,DWORD PTR [EBP-24]\r
7531         PUSH EAX\r
7532         CALL FWORD PTR _DeviceStat\r
7533 L_591:\r
7534         MOV EAX,4\r
7535         LEA ESI,DWORD PTR [EBP-20]\r
7536         ADD ESI,EAX\r
7537         MOV EAX,DWORD PTR [ESI]\r
7538 L_588:\r
7539         MOV ESP,EBP\r
7540         POP EBP\r
7541         RETF 20\r
7542 PUBLIC __WriteBlock:\r
7543         PUSH EBP\r
7544         MOV EBP,ESP\r
7545         SUB ESP,20\r
7546         MOV EAX,DWORD PTR [EBP+28]\r
7547         CMP EAX,4\r
7548         SETL AL\r
7549         AND AL,AL\r
7550         JZ L_592\r
7551         MOV EAX,227\r
7552         JMP L_593\r
7553 L_592:\r
7554         LEA EAX,DWORD PTR [EBP-8]\r
7555         PUSH EAX\r
7556         CALL FWORD PTR _GetTSSExch\r
7557         PUSH _fsysname\r
7558         PUSH 4\r
7559         PUSH DWORD PTR [EBP-8]\r
7560         LEA EAX,DWORD PTR [EBP-12]\r
7561         PUSH EAX\r
7562         PUSH 1\r
7563         PUSH DWORD PTR [EBP+24]\r
7564         PUSH DWORD PTR [EBP+20]\r
7565         PUSH DWORD PTR [EBP+12]\r
7566         PUSH 4\r
7567         PUSH DWORD PTR [EBP+28]\r
7568         PUSH DWORD PTR [EBP+16]\r
7569         XOR EAX,EAX\r
7570         PUSH EAX\r
7571         CALL FWORD PTR _Request\r
7572         MOV DWORD PTR [EBP-4], EAX\r
7573         MOV EAX,DWORD PTR [EBP-4]\r
7574         AND EAX,EAX\r
7575         JNZ L_594\r
7576         PUSH DWORD PTR [EBP-8]\r
7577         LEA EAX,DWORD PTR [EBP-20]\r
7578         PUSH EAX\r
7579         CALL FWORD PTR _WaitMsg\r
7580         MOV DWORD PTR [EBP-4], EAX\r
7581 L_594:\r
7582         MOV EAX,DWORD PTR [EBP-4]\r
7583         AND EAX,EAX\r
7584         JZ L_595\r
7585         MOV EAX,DWORD PTR [EBP-4]\r
7586         JMP L_593\r
7587 L_595:\r
7588         MOV EAX,4\r
7589         LEA ESI,DWORD PTR [EBP-20]\r
7590         ADD ESI,EAX\r
7591         MOV EAX,DWORD PTR [ESI]\r
7592 L_593:\r
7593         MOV ESP,EBP\r
7594         POP EBP\r
7595         RETF 20\r
7596 PUBLIC __ReadBytes:\r
7597         PUSH EBP\r
7598         MOV EBP,ESP\r
7599         SUB ESP,24\r
7600         MOV EAX,DWORD PTR [EBP+24]\r
7601         CMP EAX,0\r
7602         SETE AL\r
7603         AND AL,AL\r
7604         JZ L_596\r
7605         MOV ESI,DWORD PTR [EBP+12]\r
7606         XOR EAX,EAX\r
7607         MOV DWORD PTR [ESI], EAX\r
7608         XOR EAX,EAX\r
7609         JMP L_597\r
7610 L_596:\r
7611         MOV EAX,DWORD PTR [EBP+24]\r
7612         CMP EAX,1\r
7613         SETE AL\r
7614         AND AL,AL\r
7615         JZ L_599\r
7616         XOR EAX,EAX\r
7617         MOV DWORD PTR [EBP-24], EAX\r
7618 L_600:\r
7619         MOV EAX,DWORD PTR [EBP-24]\r
7620         CMP EAX,DWORD PTR [EBP+16]\r
7621         SETL AL\r
7622         AND AL,AL\r
7623         JZ L_601\r
7624         MOV ESI,DWORD PTR [EBP+20]\r
7625         INC DWORD PTR [EBP+20]\r
7626         MOVSX EAX,BYTE PTR [ESI]\r
7627         PUSH EAX\r
7628         PUSH 1\r
7629         CALL FWORD PTR _ReadKbd\r
7630         MOV EAX,DWORD PTR [EBP-24]\r
7631         INC DWORD PTR [EBP-24]\r
7632         JMP L_600\r
7633 L_601:\r
7634         MOV ESI,DWORD PTR [EBP+12]\r
7635         MOV EAX,DWORD PTR [EBP-24]\r
7636         MOV DWORD PTR [ESI], EAX\r
7637         XOR EAX,EAX\r
7638         JMP L_597\r
7639 L_599:\r
7640         MOV EAX,DWORD PTR [EBP+24]\r
7641         CMP EAX,2\r
7642         SETE AL\r
7643         AND AL,AL\r
7644         JNZ L_603\r
7645         MOV EAX,DWORD PTR [EBP+24]\r
7646         CMP EAX,3\r
7647         SETE AL\r
7648         AND AL,AL\r
7649 L_603:\r
7650         JZ L_604\r
7651         MOV ESI,DWORD PTR [EBP+12]\r
7652         XOR EAX,EAX\r
7653         MOV DWORD PTR [ESI], EAX\r
7654         MOV EAX,225\r
7655         JMP L_597\r
7656 L_604:\r
7657 L_602:\r
7658 L_598:\r
7659         LEA EAX,DWORD PTR [EBP-8]\r
7660         PUSH EAX\r
7661         CALL FWORD PTR _GetTSSExch\r
7662         PUSH _fsysname\r
7663         PUSH 5\r
7664         PUSH DWORD PTR [EBP-8]\r
7665         LEA EAX,DWORD PTR [EBP-12]\r
7666         PUSH EAX\r
7667         PUSH 1\r
7668         PUSH DWORD PTR [EBP+20]\r
7669         PUSH DWORD PTR [EBP+16]\r
7670         PUSH DWORD PTR [EBP+12]\r
7671         PUSH 4\r
7672         PUSH DWORD PTR [EBP+24]\r
7673         XOR EAX,EAX\r
7674         PUSH EAX\r
7675         XOR EAX,EAX\r
7676         PUSH EAX\r
7677         CALL FWORD PTR _Request\r
7678         MOV DWORD PTR [EBP-4], EAX\r
7679         MOV EAX,DWORD PTR [EBP-4]\r
7680         AND EAX,EAX\r
7681         JNZ L_605\r
7682         PUSH DWORD PTR [EBP-8]\r
7683         LEA EAX,DWORD PTR [EBP-20]\r
7684         PUSH EAX\r
7685         CALL FWORD PTR _WaitMsg\r
7686         MOV DWORD PTR [EBP-4], EAX\r
7687 L_605:\r
7688         MOV EAX,DWORD PTR [EBP-4]\r
7689         AND EAX,EAX\r
7690         JZ L_606\r
7691         MOV EAX,DWORD PTR [EBP-4]\r
7692         JMP L_597\r
7693 L_606:\r
7694         MOV EAX,4\r
7695         LEA ESI,DWORD PTR [EBP-20]\r
7696         ADD ESI,EAX\r
7697         MOV EAX,DWORD PTR [ESI]\r
7698 L_597:\r
7699         MOV ESP,EBP\r
7700         POP EBP\r
7701         RETF 16\r
7702 PUBLIC __WriteBytes:\r
7703         PUSH EBP\r
7704         MOV EBP,ESP\r
7705         SUB ESP,24\r
7706         MOV EAX,DWORD PTR [EBP+24]\r
7707         CMP EAX,0\r
7708         SETE AL\r
7709         AND AL,AL\r
7710         JZ L_607\r
7711         MOV ESI,DWORD PTR [EBP+12]\r
7712         MOV EAX,DWORD PTR [EBP+16]\r
7713         MOV DWORD PTR [ESI], EAX\r
7714         XOR EAX,EAX\r
7715         JMP L_608\r
7716 L_607:\r
7717         MOV EAX,DWORD PTR [EBP+24]\r
7718         CMP EAX,1\r
7719         SETE AL\r
7720         AND AL,AL\r
7721         JZ L_610\r
7722         MOV ESI,DWORD PTR [EBP+12]\r
7723         XOR EAX,EAX\r
7724         MOV DWORD PTR [ESI], EAX\r
7725         MOV EAX,205\r
7726         JMP L_608\r
7727 L_610:\r
7728         MOV EAX,DWORD PTR [EBP+24]\r
7729         CMP EAX,2\r
7730         SETE AL\r
7731         AND AL,AL\r
7732         JZ L_612\r
7733         LEA EAX,DWORD PTR [EBP-16]\r
7734         PUSH EAX\r
7735         CALL FWORD PTR _GetNormVid\r
7736         PUSH DWORD PTR [EBP+20]\r
7737         PUSH DWORD PTR [EBP+16]\r
7738         PUSH DWORD PTR [EBP-16]\r
7739         CALL FWORD PTR _TTYOut\r
7740         MOV ESI,DWORD PTR [EBP+12]\r
7741         MOV EAX,DWORD PTR [EBP+16]\r
7742         MOV DWORD PTR [ESI], EAX\r
7743         XOR EAX,EAX\r
7744         JMP L_608\r
7745 L_612:\r
7746         MOV EAX,DWORD PTR [EBP+24]\r
7747         CMP EAX,3\r
7748         SETE AL\r
7749         AND AL,AL\r
7750         JZ L_614\r
7751         PUSH 3\r
7752         PUSH 2\r
7753         XOR EAX,EAX\r
7754         PUSH EAX\r
7755         PUSH DWORD PTR [EBP+16]\r
7756         PUSH DWORD PTR [EBP+20]\r
7757         CALL FWORD PTR _DeviceOp\r
7758         MOV DWORD PTR [EBP-4], EAX\r
7759         MOV EAX,DWORD PTR [EBP-4]\r
7760         JMP L_608\r
7761 L_614:\r
7762 L_613:\r
7763 L_611:\r
7764 L_609:\r
7765         LEA EAX,DWORD PTR [EBP-8]\r
7766         PUSH EAX\r
7767         CALL FWORD PTR _GetTSSExch\r
7768         PUSH _fsysname\r
7769         PUSH 6\r
7770         PUSH DWORD PTR [EBP-8]\r
7771         LEA EAX,DWORD PTR [EBP-12]\r
7772         PUSH EAX\r
7773         PUSH 1\r
7774         PUSH DWORD PTR [EBP+20]\r
7775         PUSH DWORD PTR [EBP+16]\r
7776         PUSH DWORD PTR [EBP+12]\r
7777         PUSH 4\r
7778         PUSH DWORD PTR [EBP+24]\r
7779         XOR EAX,EAX\r
7780         PUSH EAX\r
7781         XOR EAX,EAX\r
7782         PUSH EAX\r
7783         CALL FWORD PTR _Request\r
7784         MOV DWORD PTR [EBP-4], EAX\r
7785         MOV EAX,DWORD PTR [EBP-4]\r
7786         AND EAX,EAX\r
7787         JNZ L_615\r
7788         PUSH DWORD PTR [EBP-8]\r
7789         LEA EAX,DWORD PTR [EBP-24]\r
7790         PUSH EAX\r
7791         CALL FWORD PTR _WaitMsg\r
7792         MOV DWORD PTR [EBP-4], EAX\r
7793 L_615:\r
7794         MOV EAX,DWORD PTR [EBP-4]\r
7795         AND EAX,EAX\r
7796         JZ L_616\r
7797         MOV EAX,DWORD PTR [EBP-4]\r
7798         JMP L_608\r
7799 L_616:\r
7800         MOV EAX,4\r
7801         LEA ESI,DWORD PTR [EBP-24]\r
7802         ADD ESI,EAX\r
7803         MOV EAX,DWORD PTR [ESI]\r
7804 L_608:\r
7805         MOV ESP,EBP\r
7806         POP EBP\r
7807         RETF 16\r
7808 PUBLIC __GetFileLFA:\r
7809         PUSH EBP\r
7810         MOV EBP,ESP\r
7811         SUB ESP,20\r
7812         MOV EAX,DWORD PTR [EBP+16]\r
7813         CMP EAX,4\r
7814         SETL AL\r
7815         AND AL,AL\r
7816         JZ L_617\r
7817         MOV EAX,1\r
7818         JMP L_618\r
7819 L_617:\r
7820         LEA EAX,DWORD PTR [EBP-8]\r
7821         PUSH EAX\r
7822         CALL FWORD PTR _GetTSSExch\r
7823         PUSH _fsysname\r
7824         PUSH 7\r
7825         PUSH DWORD PTR [EBP-8]\r
7826         LEA EAX,DWORD PTR [EBP-12]\r
7827         PUSH EAX\r
7828         XOR EAX,EAX\r
7829         PUSH EAX\r
7830         PUSH DWORD PTR [EBP+12]\r
7831         PUSH 4\r
7832         XOR EAX,EAX\r
7833         PUSH EAX\r
7834         XOR EAX,EAX\r
7835         PUSH EAX\r
7836         PUSH DWORD PTR [EBP+16]\r
7837         XOR EAX,EAX\r
7838         PUSH EAX\r
7839         XOR EAX,EAX\r
7840         PUSH EAX\r
7841         CALL FWORD PTR _Request\r
7842         MOV DWORD PTR [EBP-4], EAX\r
7843         MOV EAX,DWORD PTR [EBP-4]\r
7844         AND EAX,EAX\r
7845         JNZ L_619\r
7846         PUSH DWORD PTR [EBP-8]\r
7847         LEA EAX,DWORD PTR [EBP-20]\r
7848         PUSH EAX\r
7849         CALL FWORD PTR _WaitMsg\r
7850         MOV DWORD PTR [EBP-4], EAX\r
7851 L_619:\r
7852         MOV EAX,DWORD PTR [EBP-4]\r
7853         AND EAX,EAX\r
7854         JZ L_620\r
7855         MOV EAX,DWORD PTR [EBP-4]\r
7856         JMP L_618\r
7857 L_620:\r
7858         MOV EAX,4\r
7859         LEA ESI,DWORD PTR [EBP-20]\r
7860         ADD ESI,EAX\r
7861         MOV EAX,DWORD PTR [ESI]\r
7862 L_618:\r
7863         MOV ESP,EBP\r
7864         POP EBP\r
7865         RETF 8\r
7866 PUBLIC __SetFileLFA:\r
7867         PUSH EBP\r
7868         MOV EBP,ESP\r
7869         SUB ESP,20\r
7870         MOV EAX,DWORD PTR [EBP+16]\r
7871         CMP EAX,4\r
7872         SETL AL\r
7873         AND AL,AL\r
7874         JZ L_621\r
7875         MOV EAX,227\r
7876         JMP L_622\r
7877 L_621:\r
7878         LEA EAX,DWORD PTR [EBP-8]\r
7879         PUSH EAX\r
7880         CALL FWORD PTR _GetTSSExch\r
7881         PUSH _fsysname\r
7882         PUSH 8\r
7883         PUSH DWORD PTR [EBP-8]\r
7884         LEA EAX,DWORD PTR [EBP-12]\r
7885         PUSH EAX\r
7886         XOR EAX,EAX\r
7887         PUSH EAX\r
7888         XOR EAX,EAX\r
7889         PUSH EAX\r
7890         XOR EAX,EAX\r
7891         PUSH EAX\r
7892         XOR EAX,EAX\r
7893         PUSH EAX\r
7894         XOR EAX,EAX\r
7895         PUSH EAX\r
7896         PUSH DWORD PTR [EBP+16]\r
7897         PUSH DWORD PTR [EBP+12]\r
7898         XOR EAX,EAX\r
7899         PUSH EAX\r
7900         CALL FWORD PTR _Request\r
7901         MOV DWORD PTR [EBP-4], EAX\r
7902         MOV EAX,DWORD PTR [EBP-4]\r
7903         AND EAX,EAX\r
7904         JNZ L_623\r
7905         PUSH DWORD PTR [EBP-8]\r
7906         LEA EAX,DWORD PTR [EBP-20]\r
7907         PUSH EAX\r
7908         CALL FWORD PTR _WaitMsg\r
7909         MOV DWORD PTR [EBP-4], EAX\r
7910 L_623:\r
7911         MOV EAX,DWORD PTR [EBP-4]\r
7912         AND EAX,EAX\r
7913         JZ L_624\r
7914         MOV EAX,DWORD PTR [EBP-4]\r
7915         JMP L_622\r
7916 L_624:\r
7917         MOV EAX,4\r
7918         LEA ESI,DWORD PTR [EBP-20]\r
7919         ADD ESI,EAX\r
7920         MOV EAX,DWORD PTR [ESI]\r
7921 L_622:\r
7922         MOV ESP,EBP\r
7923         POP EBP\r
7924         RETF 8\r
7925 PUBLIC __GetFileSize:\r
7926         PUSH EBP\r
7927         MOV EBP,ESP\r
7928         SUB ESP,20\r
7929         MOV EAX,DWORD PTR [EBP+16]\r
7930         CMP EAX,4\r
7931         SETL AL\r
7932         AND AL,AL\r
7933         JZ L_625\r
7934         MOV EAX,227\r
7935         JMP L_626\r
7936 L_625:\r
7937         LEA EAX,DWORD PTR [EBP-8]\r
7938         PUSH EAX\r
7939         CALL FWORD PTR _GetTSSExch\r
7940         PUSH _fsysname\r
7941         PUSH 9\r
7942         PUSH DWORD PTR [EBP-8]\r
7943         LEA EAX,DWORD PTR [EBP-12]\r
7944         PUSH EAX\r
7945         XOR EAX,EAX\r
7946         PUSH EAX\r
7947         PUSH DWORD PTR [EBP+12]\r
7948         PUSH 4\r
7949         XOR EAX,EAX\r
7950         PUSH EAX\r
7951         XOR EAX,EAX\r
7952         PUSH EAX\r
7953         PUSH DWORD PTR [EBP+16]\r
7954         XOR EAX,EAX\r
7955         PUSH EAX\r
7956         XOR EAX,EAX\r
7957         PUSH EAX\r
7958         CALL FWORD PTR _Request\r
7959         MOV DWORD PTR [EBP-4], EAX\r
7960         MOV EAX,DWORD PTR [EBP-4]\r
7961         AND EAX,EAX\r
7962         JNZ L_627\r
7963         PUSH DWORD PTR [EBP-8]\r
7964         LEA EAX,DWORD PTR [EBP-20]\r
7965         PUSH EAX\r
7966         CALL FWORD PTR _WaitMsg\r
7967         MOV DWORD PTR [EBP-4], EAX\r
7968 L_627:\r
7969         MOV EAX,DWORD PTR [EBP-4]\r
7970         AND EAX,EAX\r
7971         JZ L_628\r
7972         MOV EAX,DWORD PTR [EBP-4]\r
7973         JMP L_626\r
7974 L_628:\r
7975         MOV EAX,4\r
7976         LEA ESI,DWORD PTR [EBP-20]\r
7977         ADD ESI,EAX\r
7978         MOV EAX,DWORD PTR [ESI]\r
7979 L_626:\r
7980         MOV ESP,EBP\r
7981         POP EBP\r
7982         RETF 8\r
7983 PUBLIC __SetFileSize:\r
7984         PUSH EBP\r
7985         MOV EBP,ESP\r
7986         SUB ESP,20\r
7987         MOV EAX,DWORD PTR [EBP+16]\r
7988         CMP EAX,4\r
7989         SETL AL\r
7990         AND AL,AL\r
7991         JZ L_629\r
7992         MOV EAX,227\r
7993         JMP L_630\r
7994 L_629:\r
7995         LEA EAX,DWORD PTR [EBP-8]\r
7996         PUSH EAX\r
7997         CALL FWORD PTR _GetTSSExch\r
7998         PUSH _fsysname\r
7999         PUSH 10\r
8000         PUSH DWORD PTR [EBP-8]\r
8001         LEA EAX,DWORD PTR [EBP-12]\r
8002         PUSH EAX\r
8003         XOR EAX,EAX\r
8004         PUSH EAX\r
8005         XOR EAX,EAX\r
8006         PUSH EAX\r
8007         XOR EAX,EAX\r
8008         PUSH EAX\r
8009         XOR EAX,EAX\r
8010         PUSH EAX\r
8011         XOR EAX,EAX\r
8012         PUSH EAX\r
8013         PUSH DWORD PTR [EBP+16]\r
8014         PUSH DWORD PTR [EBP+12]\r
8015         XOR EAX,EAX\r
8016         PUSH EAX\r
8017         CALL FWORD PTR _Request\r
8018         MOV DWORD PTR [EBP-4], EAX\r
8019         MOV EAX,DWORD PTR [EBP-4]\r
8020         AND EAX,EAX\r
8021         JNZ L_631\r
8022         PUSH DWORD PTR [EBP-8]\r
8023         LEA EAX,DWORD PTR [EBP-20]\r
8024         PUSH EAX\r
8025         CALL FWORD PTR _WaitMsg\r
8026         MOV DWORD PTR [EBP-4], EAX\r
8027 L_631:\r
8028         MOV EAX,DWORD PTR [EBP-4]\r
8029         AND EAX,EAX\r
8030         JZ L_632\r
8031         MOV EAX,DWORD PTR [EBP-4]\r
8032         JMP L_630\r
8033 L_632:\r
8034         MOV EAX,4\r
8035         LEA ESI,DWORD PTR [EBP-20]\r
8036         ADD ESI,EAX\r
8037         MOV EAX,DWORD PTR [ESI]\r
8038 L_630:\r
8039         MOV ESP,EBP\r
8040         POP EBP\r
8041         RETF 8\r
8042 PUBLIC __CreateFile:\r
8043         PUSH EBP\r
8044         MOV EBP,ESP\r
8045         SUB ESP,20\r
8046         LEA EAX,DWORD PTR [EBP-8]\r
8047         PUSH EAX\r
8048         CALL FWORD PTR _GetTSSExch\r
8049         PUSH _fsysname\r
8050         PUSH 11\r
8051         PUSH DWORD PTR [EBP-8]\r
8052         LEA EAX,DWORD PTR [EBP-12]\r
8053         PUSH EAX\r
8054         PUSH 1\r
8055         PUSH DWORD PTR [EBP+20]\r
8056         PUSH DWORD PTR [EBP+16]\r
8057         XOR EAX,EAX\r
8058         PUSH EAX\r
8059         XOR EAX,EAX\r
8060         PUSH EAX\r
8061         PUSH DWORD PTR [EBP+12]\r
8062         XOR EAX,EAX\r
8063         PUSH EAX\r
8064         XOR EAX,EAX\r
8065         PUSH EAX\r
8066         CALL FWORD PTR _Request\r
8067         MOV DWORD PTR [EBP-4], EAX\r
8068         MOV EAX,DWORD PTR [EBP-4]\r
8069         AND EAX,EAX\r
8070         JNZ L_633\r
8071         PUSH DWORD PTR [EBP-8]\r
8072         LEA EAX,DWORD PTR [EBP-20]\r
8073         PUSH EAX\r
8074         CALL FWORD PTR _WaitMsg\r
8075         MOV DWORD PTR [EBP-4], EAX\r
8076 L_633:\r
8077         MOV EAX,DWORD PTR [EBP-4]\r
8078         AND EAX,EAX\r
8079         JZ L_634\r
8080         MOV EAX,DWORD PTR [EBP-4]\r
8081         JMP L_635\r
8082 L_634:\r
8083         MOV EAX,4\r
8084         LEA ESI,DWORD PTR [EBP-20]\r
8085         ADD ESI,EAX\r
8086         MOV EAX,DWORD PTR [ESI]\r
8087 L_635:\r
8088         MOV ESP,EBP\r
8089         POP EBP\r
8090         RETF 12\r
8091 PUBLIC __RenameFile:\r
8092         PUSH EBP\r
8093         MOV EBP,ESP\r
8094         SUB ESP,20\r
8095         LEA EAX,DWORD PTR [EBP-8]\r
8096         PUSH EAX\r
8097         CALL FWORD PTR _GetTSSExch\r
8098         PUSH _fsysname\r
8099         PUSH 12\r
8100         PUSH DWORD PTR [EBP-8]\r
8101         LEA EAX,DWORD PTR [EBP-12]\r
8102         PUSH EAX\r
8103         PUSH 2\r
8104         PUSH DWORD PTR [EBP+24]\r
8105         PUSH DWORD PTR [EBP+20]\r
8106         PUSH DWORD PTR [EBP+16]\r
8107         PUSH DWORD PTR [EBP+12]\r
8108         XOR EAX,EAX\r
8109         PUSH EAX\r
8110         XOR EAX,EAX\r
8111         PUSH EAX\r
8112         XOR EAX,EAX\r
8113         PUSH EAX\r
8114         CALL FWORD PTR _Request\r
8115         MOV DWORD PTR [EBP-4], EAX\r
8116         MOV EAX,DWORD PTR [EBP-4]\r
8117         AND EAX,EAX\r
8118         JNZ L_636\r
8119         PUSH DWORD PTR [EBP-8]\r
8120         LEA EAX,DWORD PTR [EBP-20]\r
8121         PUSH EAX\r
8122         CALL FWORD PTR _WaitMsg\r
8123         MOV DWORD PTR [EBP-4], EAX\r
8124 L_636:\r
8125         MOV EAX,DWORD PTR [EBP-4]\r
8126         AND EAX,EAX\r
8127         JZ L_637\r
8128         MOV EAX,DWORD PTR [EBP-4]\r
8129         JMP L_638\r
8130 L_637:\r
8131         MOV EAX,4\r
8132         LEA ESI,DWORD PTR [EBP-20]\r
8133         ADD ESI,EAX\r
8134         MOV EAX,DWORD PTR [ESI]\r
8135 L_638:\r
8136         MOV ESP,EBP\r
8137         POP EBP\r
8138         RETF 16\r
8139 PUBLIC __DeleteFile:\r
8140         PUSH EBP\r
8141         MOV EBP,ESP\r
8142         SUB ESP,20\r
8143         MOV EAX,DWORD PTR [EBP+12]\r
8144         CMP EAX,4\r
8145         SETL AL\r
8146         AND AL,AL\r
8147         JZ L_639\r
8148         MOV EAX,227\r
8149         JMP L_640\r
8150 L_639:\r
8151         LEA EAX,DWORD PTR [EBP-8]\r
8152         PUSH EAX\r
8153         CALL FWORD PTR _GetTSSExch\r
8154         PUSH _fsysname\r
8155         PUSH 13\r
8156         PUSH DWORD PTR [EBP-8]\r
8157         LEA EAX,DWORD PTR [EBP-12]\r
8158         PUSH EAX\r
8159         XOR EAX,EAX\r
8160         PUSH EAX\r
8161         XOR EAX,EAX\r
8162         PUSH EAX\r
8163         XOR EAX,EAX\r
8164         PUSH EAX\r
8165         XOR EAX,EAX\r
8166         PUSH EAX\r
8167         XOR EAX,EAX\r
8168         PUSH EAX\r
8169         PUSH DWORD PTR [EBP+12]\r
8170         XOR EAX,EAX\r
8171         PUSH EAX\r
8172         XOR EAX,EAX\r
8173         PUSH EAX\r
8174         CALL FWORD PTR _Request\r
8175         MOV DWORD PTR [EBP-4], EAX\r
8176         MOV EAX,DWORD PTR [EBP-4]\r
8177         AND EAX,EAX\r
8178         JNZ L_641\r
8179         PUSH DWORD PTR [EBP-8]\r
8180         LEA EAX,DWORD PTR [EBP-20]\r
8181         PUSH EAX\r
8182         CALL FWORD PTR _WaitMsg\r
8183         MOV DWORD PTR [EBP-4], EAX\r
8184 L_641:\r
8185         MOV EAX,DWORD PTR [EBP-4]\r
8186         AND EAX,EAX\r
8187         JZ L_642\r
8188         MOV EAX,DWORD PTR [EBP-4]\r
8189         JMP L_640\r
8190 L_642:\r
8191         MOV EAX,4\r
8192         LEA ESI,DWORD PTR [EBP-20]\r
8193         ADD ESI,EAX\r
8194         MOV EAX,DWORD PTR [ESI]\r
8195 L_640:\r
8196         MOV ESP,EBP\r
8197         POP EBP\r
8198         RETF 4\r
8199 PUBLIC __CreateDir:\r
8200         PUSH EBP\r
8201         MOV EBP,ESP\r
8202         SUB ESP,20\r
8203         LEA EAX,DWORD PTR [EBP-8]\r
8204         PUSH EAX\r
8205         CALL FWORD PTR _GetTSSExch\r
8206         PUSH _fsysname\r
8207         PUSH 14\r
8208         PUSH DWORD PTR [EBP-8]\r
8209         LEA EAX,DWORD PTR [EBP-12]\r
8210         PUSH EAX\r
8211         PUSH 1\r
8212         PUSH DWORD PTR [EBP+16]\r
8213         PUSH DWORD PTR [EBP+12]\r
8214         XOR EAX,EAX\r
8215         PUSH EAX\r
8216         XOR EAX,EAX\r
8217         PUSH EAX\r
8218         XOR EAX,EAX\r
8219         PUSH EAX\r
8220         XOR EAX,EAX\r
8221         PUSH EAX\r
8222         XOR EAX,EAX\r
8223         PUSH EAX\r
8224         CALL FWORD PTR _Request\r
8225         MOV DWORD PTR [EBP-4], EAX\r
8226         MOV EAX,DWORD PTR [EBP-4]\r
8227         AND EAX,EAX\r
8228         JNZ L_643\r
8229         PUSH DWORD PTR [EBP-8]\r
8230         LEA EAX,DWORD PTR [EBP-20]\r
8231         PUSH EAX\r
8232         CALL FWORD PTR _WaitMsg\r
8233         MOV DWORD PTR [EBP-4], EAX\r
8234 L_643:\r
8235         MOV EAX,DWORD PTR [EBP-4]\r
8236         AND EAX,EAX\r
8237         JZ L_644\r
8238         MOV EAX,DWORD PTR [EBP-4]\r
8239         JMP L_645\r
8240 L_644:\r
8241         MOV EAX,4\r
8242         LEA ESI,DWORD PTR [EBP-20]\r
8243         ADD ESI,EAX\r
8244         MOV EAX,DWORD PTR [ESI]\r
8245 L_645:\r
8246         MOV ESP,EBP\r
8247         POP EBP\r
8248         RETF 8\r
8249 PUBLIC __DeleteDir:\r
8250         PUSH EBP\r
8251         MOV EBP,ESP\r
8252         SUB ESP,20\r
8253         LEA EAX,DWORD PTR [EBP-8]\r
8254         PUSH EAX\r
8255         CALL FWORD PTR _GetTSSExch\r
8256         PUSH _fsysname\r
8257         PUSH 15\r
8258         PUSH DWORD PTR [EBP-8]\r
8259         LEA EAX,DWORD PTR [EBP-12]\r
8260         PUSH EAX\r
8261         PUSH 1\r
8262         PUSH DWORD PTR [EBP+20]\r
8263         PUSH DWORD PTR [EBP+16]\r
8264         XOR EAX,EAX\r
8265         PUSH EAX\r
8266         XOR EAX,EAX\r
8267         PUSH EAX\r
8268         PUSH DWORD PTR [EBP+12]\r
8269         XOR EAX,EAX\r
8270         PUSH EAX\r
8271         XOR EAX,EAX\r
8272         PUSH EAX\r
8273         CALL FWORD PTR _Request\r
8274         MOV DWORD PTR [EBP-4], EAX\r
8275         MOV EAX,DWORD PTR [EBP-4]\r
8276         AND EAX,EAX\r
8277         JNZ L_646\r
8278         PUSH DWORD PTR [EBP-8]\r
8279         LEA EAX,DWORD PTR [EBP-20]\r
8280         PUSH EAX\r
8281         CALL FWORD PTR _WaitMsg\r
8282         MOV DWORD PTR [EBP-4], EAX\r
8283 L_646:\r
8284         MOV EAX,DWORD PTR [EBP-4]\r
8285         AND EAX,EAX\r
8286         JZ L_647\r
8287         MOV EAX,DWORD PTR [EBP-4]\r
8288         JMP L_648\r
8289 L_647:\r
8290         MOV EAX,4\r
8291         LEA ESI,DWORD PTR [EBP-20]\r
8292         ADD ESI,EAX\r
8293         MOV EAX,DWORD PTR [ESI]\r
8294 L_648:\r
8295         MOV ESP,EBP\r
8296         POP EBP\r
8297         RETF 12\r
8298 PUBLIC __GetDirSector:\r
8299         PUSH EBP\r
8300         MOV EBP,ESP\r
8301         SUB ESP,20\r
8302         LEA EAX,DWORD PTR [EBP-8]\r
8303         PUSH EAX\r
8304         CALL FWORD PTR _GetTSSExch\r
8305         PUSH _fsysname\r
8306         PUSH 16\r
8307         PUSH DWORD PTR [EBP-8]\r
8308         LEA EAX,DWORD PTR [EBP-12]\r
8309         PUSH EAX\r
8310         PUSH 1\r
8311         PUSH DWORD PTR [EBP+28]\r
8312         PUSH DWORD PTR [EBP+24]\r
8313         PUSH DWORD PTR [EBP+20]\r
8314         PUSH DWORD PTR [EBP+16]\r
8315         PUSH DWORD PTR [EBP+12]\r
8316         XOR EAX,EAX\r
8317         PUSH EAX\r
8318         XOR EAX,EAX\r
8319         PUSH EAX\r
8320         CALL FWORD PTR _Request\r
8321         MOV DWORD PTR [EBP-4], EAX\r
8322         MOV EAX,DWORD PTR [EBP-4]\r
8323         AND EAX,EAX\r
8324         JNZ L_649\r
8325         PUSH DWORD PTR [EBP-8]\r
8326         LEA EAX,DWORD PTR [EBP-20]\r
8327         PUSH EAX\r
8328         CALL FWORD PTR _WaitMsg\r
8329         MOV DWORD PTR [EBP-4], EAX\r
8330 L_649:\r
8331         MOV EAX,DWORD PTR [EBP-4]\r
8332         AND EAX,EAX\r
8333         JZ L_650\r
8334         MOV EAX,DWORD PTR [EBP-4]\r
8335         JMP L_651\r
8336 L_650:\r
8337         MOV EAX,4\r
8338         LEA ESI,DWORD PTR [EBP-20]\r
8339         ADD ESI,EAX\r
8340         MOV EAX,DWORD PTR [ESI]\r
8341 L_651:\r
8342         MOV ESP,EBP\r
8343         POP EBP\r
8344         RETF 20\r
8345 PUBLIC _InitFS:\r
8346         PUSH EBP\r
8347         MOV EBP,ESP\r
8348         SUB ESP,16\r
8349         MOV ESI,OFFSET _Fat\r
8350         MOV EBX,ESI\r
8351         MOV EAX,OFFSET _FatBufA\r
8352         MOV DWORD PTR [EBX], EAX\r
8353         PUSH 2\r
8354         LEA EAX,DWORD PTR [EBP-16]\r
8355         PUSH EAX\r
8356         CALL FWORD PTR _AllocOSPage\r
8357         MOV DWORD PTR [EBP-4], EAX\r
8358         MOV EAX,DWORD PTR [EBP-4]\r
8359         AND EAX,EAX\r
8360         JNZ L_652\r
8361         MOV EAX,1\r
8362         MOV DWORD PTR [EBP-8], EAX\r
8363 L_653:\r
8364         MOV EAX,DWORD PTR [EBP-8]\r
8365         CMP EAX,17\r
8366         SETB AL\r
8367         AND AL,AL\r
8368         JZ L_654\r
8369         JMP SHORT L_655\r
8370 L_656:\r
8371         MOV EAX,DWORD PTR [EBP-8]\r
8372         INC DWORD PTR [EBP-8]\r
8373         JMP SHORT L_653\r
8374 L_655:\r
8375         MOV EAX,DWORD PTR [EBP-8]\r
8376         SHL EAX,4\r
8377         MOV ESI,OFFSET _Fat\r
8378         ADD ESI,EAX\r
8379         MOV EAX,DWORD PTR [EBP-16]\r
8380         MOV DWORD PTR [ESI], EAX\r
8381         MOV EAX,DWORD PTR [EBP-16]\r
8382         ADD EAX,512\r
8383         MOV DWORD PTR [EBP-16], EAX\r
8384         JMP L_656\r
8385 L_654:\r
8386 L_652:\r
8387         MOV EAX,DWORD PTR [EBP-4]\r
8388         AND EAX,EAX\r
8389         JNZ L_657\r
8390         PUSH 2\r
8391         PUSH OFFSET _paFCB\r
8392         CALL FWORD PTR _AllocOSPage\r
8393         MOV DWORD PTR [EBP-4], EAX\r
8394 L_657:\r
8395         MOV EAX,DWORD PTR [EBP-4]\r
8396         AND EAX,EAX\r
8397         JNZ L_658\r
8398         PUSH _paFCB\r
8399         PUSH 8192\r
8400         XOR EAX,EAX\r
8401         PUSH EAX\r
8402         CALL FWORD PTR _FillData\r
8403 L_658:\r
8404         MOV EAX,DWORD PTR [EBP-4]\r
8405         AND EAX,EAX\r
8406         JNZ L_659\r
8407         PUSH 1\r
8408         PUSH OFFSET _paFUB\r
8409         CALL FWORD PTR _AllocOSPage\r
8410         MOV DWORD PTR [EBP-4], EAX\r
8411 L_659:\r
8412         MOV EAX,DWORD PTR [EBP-4]\r
8413         AND EAX,EAX\r
8414         JNZ L_660\r
8415         PUSH _paFUB\r
8416         PUSH 4096\r
8417         XOR EAX,EAX\r
8418         PUSH EAX\r
8419         CALL FWORD PTR _FillData\r
8420 L_660:\r
8421         MOV EAX,DWORD PTR [EBP-4]\r
8422         AND EAX,EAX\r
8423         JNZ L_661\r
8424         CALL _read_PE\r
8425         MOV DWORD PTR [EBP-4], EAX\r
8426 L_661:\r
8427         MOV EAX,DWORD PTR [EBP-4]\r
8428         AND EAX,EAX\r
8429         JNZ L_662\r
8430         PUSH 12\r
8431         CALL _SetDriveGeometry\r
8432         MOV DWORD PTR [EBP-4], EAX\r
8433 L_662:\r
8434         MOV EAX,DWORD PTR [EBP-4]\r
8435         AND EAX,EAX\r
8436         JNZ L_663\r
8437         PUSH 13\r
8438         CALL _SetDriveGeometry\r
8439         MOV DWORD PTR [EBP-4], EAX\r
8440         MOV EAX,DWORD PTR [EBP-4]\r
8441         CMP EAX,663\r
8442         SETE AL\r
8443         AND AL,AL\r
8444         JZ L_664\r
8445         XOR EAX,EAX\r
8446         MOV DWORD PTR [EBP-4], EAX\r
8447 L_664:\r
8448 L_663:\r
8449         XOR EAX,EAX\r
8450         PUSH EAX\r
8451         CALL _StatFloppy\r
8452         PUSH 1\r
8453         CALL _StatFloppy\r
8454         MOV EAX,DWORD PTR [EBP-4]\r
8455         AND EAX,EAX\r
8456         JNZ L_665\r
8457         XOR EAX,EAX\r
8458         MOV DWORD PTR [EBP-8], EAX\r
8459 L_666:\r
8460         MOV EAX,DWORD PTR [EBP-8]\r
8461         CMP EAX,10\r
8462         SETB AL\r
8463         AND AL,AL\r
8464         JZ L_667\r
8465         JMP SHORT L_668\r
8466 L_669:\r
8467         MOV EAX,DWORD PTR [EBP-8]\r
8468         INC DWORD PTR [EBP-8]\r
8469         JMP SHORT L_666\r
8470 L_668:\r
8471         MOV EAX,DWORD PTR [EBP-8]\r
8472         SHL EAX,5\r
8473         MOV ESI,OFFSET _Ldrv\r
8474         ADD ESI,EAX\r
8475         XOR EAX,EAX\r
8476         MOV AL,BYTE PTR [ESI+28]\r
8477         CMP EAX,255\r
8478         SETNE AL\r
8479         AND AL,AL\r
8480         JZ L_670\r
8481         PUSH DWORD PTR [EBP-8]\r
8482         CALL _read_BS\r
8483 L_670:\r
8484         JMP L_669\r
8485 L_667:\r
8486 L_665:\r
8487         XOR EAX,EAX\r
8488         MOV DWORD PTR [EBP-8], EAX\r
8489 L_671:\r
8490         MOV EAX,DWORD PTR [EBP-8]\r
8491         CMP EAX,10\r
8492         SETB AL\r
8493         AND AL,AL\r
8494         JZ L_672\r
8495         JMP SHORT L_673\r
8496 L_674:\r
8497         MOV EAX,DWORD PTR [EBP-8]\r
8498         INC DWORD PTR [EBP-8]\r
8499         JMP SHORT L_671\r
8500 L_673:\r
8501         MOV EAX,DWORD PTR [EBP-8]\r
8502         SHL EAX,5\r
8503         MOV ESI,OFFSET _Ldrv\r
8504         ADD ESI,EAX\r
8505         XOR EAX,EAX\r
8506         MOV AL,BYTE PTR [ESI+28]\r
8507         CMP EAX,255\r
8508         SETNE AL\r
8509         AND AL,AL\r
8510         JZ L_675\r
8511         MOV EAX,12\r
8512         MOV DWORD PTR [EBP-12], EAX\r
8513         MOV EAX,DWORD PTR [EBP-8]\r
8514         SHL EAX,5\r
8515         MOV ESI,OFFSET _Ldrv\r
8516         ADD ESI,EAX\r
8517         XOR EAX,EAX\r
8518         MOV AL,BYTE PTR [ESI+31]\r
8519         AND EAX,EAX\r
8520         JZ L_676\r
8521         MOV EAX,16\r
8522         MOV DWORD PTR [EBP-12], EAX\r
8523 L_676:\r
8524         PUSH OFFSET L_lit+49\r
8525         MOV EAX,DWORD PTR [EBP-8]\r
8526         ADD EAX,65\r
8527         PUSH EAX\r
8528         MOV EAX,DWORD PTR [EBP-8]\r
8529         SHL EAX,5\r
8530         MOV ESI,OFFSET _Ldrv\r
8531         ADD ESI,EAX\r
8532         MOVZX EAX,WORD PTR [ESI+20]\r
8533         PUSH EAX\r
8534         MOV EAX,DWORD PTR [EBP-8]\r
8535         SHL EAX,5\r
8536         MOV ESI,OFFSET _Ldrv\r
8537         ADD ESI,EAX\r
8538         MOVZX EAX,WORD PTR [ESI+22]\r
8539         PUSH EAX\r
8540         MOV EAX,DWORD PTR [EBP-8]\r
8541         SHL EAX,5\r
8542         MOV ESI,OFFSET _Ldrv\r
8543         ADD ESI,EAX\r
8544         XOR EAX,EAX\r
8545         MOV AL,BYTE PTR [ESI+29]\r
8546         PUSH EAX\r
8547         MOV EAX,DWORD PTR [EBP-8]\r
8548         SHL EAX,5\r
8549         MOV ESI,OFFSET _Ldrv\r
8550         ADD ESI,EAX\r
8551         XOR EAX,EAX\r
8552         MOV AL,BYTE PTR [ESI+28]\r
8553         PUSH EAX\r
8554         PUSH DWORD PTR [EBP-12]\r
8555         MOV EDI, 24\r
8556         CALL _xprintf\r
8557         ADD ESP,28\r
8558 L_675:\r
8559         JMP L_674\r
8560 L_672:\r
8561         MOV EAX,DWORD PTR [EBP-4]\r
8562         AND EAX,EAX\r
8563         JNZ L_677\r
8564         PUSH OFFSET _FSysExch\r
8565         CALL FWORD PTR _AllocExch\r
8566         MOV DWORD PTR [EBP-4], EAX\r
8567 L_677:\r
8568         MOV EAX,DWORD PTR [EBP-4]\r
8569         AND EAX,EAX\r
8570         JNZ L_678\r
8571         PUSH OFFSET _FSysTask\r
8572         PUSH 5\r
8573         XOR EAX,EAX\r
8574         PUSH EAX\r
8575         MOV EAX,2044\r
8576         MOV ESI,OFFSET _FSysStack\r
8577         ADD ESI,EAX\r
8578         PUSH ESI\r
8579         PUSH 1\r
8580         CALL FWORD PTR _SpawnTask\r
8581         MOV DWORD PTR [EBP-4], EAX\r
8582 L_678:\r
8583         MOV EAX,DWORD PTR [EBP-4]\r
8584         AND EAX,EAX\r
8585         JNZ L_679\r
8586         PUSH _fsysname\r
8587         PUSH _FSysExch\r
8588         CALL FWORD PTR _RegisterSvc\r
8589         MOV DWORD PTR [EBP-4], EAX\r
8590 L_679:\r
8591         MOV EAX,DWORD PTR [EBP-4]\r
8592         MOV ESP,EBP\r
8593         POP EBP\r
8594         RETN\r