From c8e326df71142294c94df0c847ab9782538c6a95 Mon Sep 17 00:00:00 2001 From: Richard Burgess <> Date: Thu, 9 Feb 1995 11:17:18 +0000 Subject: [PATCH] autocommit for file dated 1995-02-09 11:17:18 --- ossource/fsys.asm | 8594 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 8594 insertions(+) create mode 100644 ossource/fsys.asm diff --git a/ossource/fsys.asm b/ossource/fsys.asm new file mode 100644 index 0000000..0e36684 --- /dev/null +++ b/ossource/fsys.asm @@ -0,0 +1,8594 @@ + +.DATA +EXTRN _AllocExch FWORD +EXTRN _GetTSSExch FWORD +EXTRN _SpawnTask FWORD +EXTRN _WaitMsg FWORD +EXTRN _CheckMsg FWORD +EXTRN _Request FWORD +EXTRN _Respond FWORD +EXTRN _CopyData FWORD +EXTRN _FillData FWORD +EXTRN _CompareNCS FWORD +EXTRN _GetCMOSTime FWORD +EXTRN _GetCMOSDate FWORD +EXTRN _GetTimerTick FWORD +EXTRN _TTYOut FWORD +EXTRN _GetNormVid FWORD +EXTRN _ReadKbd FWORD +EXTRN _DeviceOp FWORD +EXTRN _DeviceStat FWORD +EXTRN _DeviceInit FWORD +EXTRN _AllocOSPage FWORD +EXTRN _DeAllocPage FWORD +EXTRN _GetPath FWORD +EXTRN _RegisterSvc FWORD +_fsysname DD OFFSET L_lit+0 +L_lit DB 70,73,76,69,83,89,83,77,0,46,32,32,32,32,32,32 + DB 32,32,32,32,0,46,46,32,32,32,32,32,32,32,32,32 + DB 0,78,85,76,0,75,66,68,0,86,73,68,0,76,80,84 + DB 0,37,99,58,32,72,101,97,100,115,32,37,100,44,32,83 + DB 101,99,47,84,114,107,32,37,100,44,32,83,101,99,47,67 + DB 108,115,116,114,32,37,100,44,32,68,101,118,32,37,100,44 + DB 32,70,65,84,37,100,32,13,10,0 +_Fat DB 272 DUP(0) +PUBLIC _FatBufA DB 1536 DUP(0) +_paFCB DD 0h +_pFCB DD 0h +_paFUB DD 0h +_pFUB DD 0h +_fsb DB 62 DUP(0) +_partab DB 64 DUP(0) +_partsig DW 0h +_dirent DB 32 DUP(0) +_pDirEnt DD 0h +_FDrive DB 0h +_FileSpec DB 77 DUP(0) +_SpecDepth DB 0h +_FDrive1 DB 0h +_FileSpec1 DB 77 DUP(0) +_SpecDepth1 DB 0h +_abRawSector DB 516 DUP(0) +_abTmpSector DB 516 DUP(0) +_abDirSectBuf DB 516 DUP(0) +_PDrvs DB 48 DUP(0) +_Ldrv DB 320 DUP(0) +_HDDevStat DB 64 DUP(0) +_FDDevStat DB 64 DUP(0) +_FSysStack DD 512 DUP(0) +_FSysExch DD 0h +_pRQB DD 0h +_keycode DD 0h + + +.CODE +EXTRN _xprintf: NEAR +EXTRN _Dump: NEAR +_GetBSInfo: + PUSH EBP + MOV EBP,ESP + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+1] + MOV BYTE PTR [EBX+10], AL + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+2] + MOV BYTE PTR [EBX+11], AL + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+3] + MOV WORD PTR [EBX+8], AX + MOV EAX,DWORD PTR [EBP+8] + AND EAX,EAX + JNZ L_1 + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+5] + MOV DWORD PTR [EBX], EAX + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + AND EAX,255 + MOV DWORD PTR [EBX+4], EAX +L_1: + POP EBP + RETN 8 +_StatFloppy: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + MOV ESI,OFFSET _Ldrv + MOV EAX,10 + MOV BYTE PTR [ESI+28], AL + MOV EAX,32 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,11 + MOV BYTE PTR [ESI+28], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + MOV ECX,10 + ADD EAX,ECX + PUSH EAX + PUSH OFFSET _FDDevStat + PUSH 64 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _DeviceStat + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_2 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _FDDevStat + MOV EAX,DWORD PTR [ESI+20] + MOV DWORD PTR [EBX], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + MOV ECX,12 + MUL ECX + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _FDDevStat + MOV EAX,DWORD PTR [ESI+24] + MOV DWORD PTR [EBX+4], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _FDDevStat + MOV EAX,DWORD PTR [ESI+8] + SUB EAX,1 + MOV DWORD PTR [EBX+8], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _FDDevStat + MOV EAX,DWORD PTR [ESI+20] + MOV WORD PTR [EBX+20], AX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _FDDevStat + MOV EAX,DWORD PTR [ESI+24] + MOV WORD PTR [EBX+22], AX + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + JMP L_3 +L_2: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,255 + MOV BYTE PTR [ESI+28], AL +L_3: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 4 +_read_PE: + PUSH EBP + MOV EBP,ESP + SUB ESP,22 + XOR EAX,EAX + MOV BYTE PTR [EBP-21], AL + XOR EAX,EAX + MOV BYTE PTR [EBP-22], AL + MOV EAX,2 + MOV DWORD PTR [EBP-16], EAX +L_5: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,10 + SETB AL + AND AL,AL + JZ L_6 + JMP SHORT L_7 +L_8: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] + JMP SHORT L_5 +L_7: + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,255 + MOV BYTE PTR [ESI+28], AL + JMP L_8 +L_6: + MOV EAX,2 + MOV DWORD PTR [EBP-16], EAX + MOV EAX,2 + MOV DWORD PTR [EBP-20], EAX +L_9: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,4 + SETB AL + AND AL,AL + JZ L_10 + JMP SHORT L_11 +L_12: + MOV EAX,DWORD PTR [EBP-20] + INC DWORD PTR [EBP-20] + JMP SHORT L_9 +L_11: + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,10 + PUSH EAX + PUSH 1 + XOR EAX,EAX + PUSH EAX + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,2 + SETE AL + AND AL,AL + JZ L_13 + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [EBP-8], EAX + JMP L_14 +L_13: + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [EBP-12], EAX +L_14: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_15 + MOV EAX,510 + MOV ESI,OFFSET _abRawSector + ADD ESI,EAX + PUSH ESI + PUSH OFFSET _partsig + PUSH 2 + CALL FWORD PTR _CopyData + MOVZX EAX,_partsig + CMP EAX,43605 + SETNE AL + AND AL,AL + JZ L_16 + MOV EAX,218 + JMP L_17 +L_16: + MOV EAX,446 + MOV ESI,OFFSET _abRawSector + ADD ESI,EAX + PUSH ESI + PUSH OFFSET _partab + PUSH 64 + CALL FWORD PTR _CopyData + MOV ESI,OFFSET _partab + MOV EAX,DWORD PTR [ESI+12] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_18 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _partab + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBX], EAX + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _partab + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBX+8], EAX + MOV ESI,OFFSET _partab + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+4] + CMP EAX,3 + SETA AL + AND AL,AL + JZ L_19 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,1 + MOV BYTE PTR [ESI+31], AL +L_19: + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,10 + MOV BYTE PTR [ESI+28], AL + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,2 + SETE AL + AND AL,AL + JZ L_20 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-21] + AND EAX,EAX + SETZ AL + AND AL,AL +L_20: + JZ L_21 + PUSH 2 + XOR EAX,EAX + PUSH EAX + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-21], AL +L_21: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_22 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-22] + AND EAX,EAX + SETZ AL + AND AL,AL +L_22: + JZ L_23 + PUSH 3 + XOR EAX,EAX + PUSH EAX + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-22], AL +L_23: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_18: + MOV EAX,16 + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_24 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,16 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBX], EAX + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,16 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBX+8], EAX + MOV EAX,16 + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+4] + CMP EAX,3 + SETA AL + AND AL,AL + JZ L_25 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,1 + MOV BYTE PTR [ESI+31], AL +L_25: + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,10 + MOV BYTE PTR [ESI+28], AL + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,2 + SETE AL + AND AL,AL + JZ L_26 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-21] + AND EAX,EAX + SETZ AL + AND AL,AL +L_26: + JZ L_27 + PUSH 2 + PUSH 1 + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-21], AL +L_27: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_28 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-22] + AND EAX,EAX + SETZ AL + AND AL,AL +L_28: + JZ L_29 + PUSH 3 + PUSH 1 + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-22], AL +L_29: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_24: + MOV EAX,32 + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_30 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,32 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBX], EAX + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,32 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBX+8], EAX + MOV EAX,32 + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+4] + CMP EAX,3 + SETA AL + AND AL,AL + JZ L_31 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,1 + MOV BYTE PTR [ESI+31], AL +L_31: + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,10 + MOV BYTE PTR [ESI+28], AL + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,2 + SETE AL + AND AL,AL + JZ L_32 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-21] + AND EAX,EAX + SETZ AL + AND AL,AL +L_32: + JZ L_33 + PUSH 2 + PUSH 2 + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-21], AL +L_33: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_34 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-22] + AND EAX,EAX + SETZ AL + AND AL,AL +L_34: + JZ L_35 + PUSH 3 + PUSH 2 + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-22], AL +L_35: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_30: + MOV EAX,48 + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_36 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,48 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBX], EAX + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,48 + MOV EBX,ESI + MOV ESI,OFFSET _partab + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBX+8], EAX + MOV EAX,48 + MOV ESI,OFFSET _partab + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+4] + CMP EAX,3 + SETA AL + AND AL,AL + JZ L_37 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,1 + MOV BYTE PTR [ESI+31], AL +L_37: + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,10 + MOV BYTE PTR [ESI+28], AL + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,2 + SETE AL + AND AL,AL + JZ L_38 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-21] + AND EAX,EAX + SETZ AL + AND AL,AL +L_38: + JZ L_39 + PUSH 2 + PUSH 3 + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-21], AL +L_39: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_40 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-22] + AND EAX,EAX + SETZ AL + AND AL,AL +L_40: + JZ L_41 + PUSH 3 + PUSH 3 + CALL _GetBSInfo + MOV EAX,1 + MOV BYTE PTR [EBP-22], AL +L_41: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] +L_36: +L_15: + JMP L_12 +L_10: + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_42 + MOV EAX,DWORD PTR [EBP-8] + JMP L_17 +L_42: + XOR EAX,EAX +L_43: +L_17: + MOV ESP,EBP + POP EBP + RETN +_SetDriveGeometry: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + MOV EAX,DWORD PTR [EBP+8] + CMP EAX,12 + SETE AL + AND AL,AL + JZ L_44 + PUSH 12 + PUSH OFFSET _HDDevStat + PUSH 64 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _DeviceStat + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_45 + MOV ESI,OFFSET _HDDevStat + MOV EAX,24 + MOV EBX,ESI + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + MOV DWORD PTR [EBX+20], EAX + MOV ESI,OFFSET _HDDevStat + MOV EAX,24 + MOV EBX,ESI + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBX+24], EAX + PUSH 12 + PUSH OFFSET _HDDevStat + PUSH 64 + CALL FWORD PTR _DeviceInit + MOV DWORD PTR [EBP-4], EAX +L_45: +L_44: + MOV EAX,DWORD PTR [EBP+8] + CMP EAX,13 + SETE AL + AND AL,AL + JZ L_46 + PUSH 13 + PUSH OFFSET _HDDevStat + PUSH 64 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _DeviceStat + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_47 + MOV ESI,OFFSET _HDDevStat + MOV EAX,36 + MOV EBX,ESI + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + MOV DWORD PTR [EBX+20], EAX + MOV ESI,OFFSET _HDDevStat + MOV EAX,36 + MOV EBX,ESI + MOV ESI,OFFSET _PDrvs + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBX+24], EAX + PUSH 13 + PUSH OFFSET _HDDevStat + PUSH 64 + CALL FWORD PTR _DeviceInit + MOV DWORD PTR [EBP-4], EAX +L_47: +L_46: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 4 +_read_BS: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + CMP EAX,255 + SETNE AL + AND AL,AL + JZ L_49 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + MOV DWORD PTR [EBP-8], EAX + PUSH DWORD PTR [EBP-8] + PUSH 1 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + PUSH DWORD PTR [ESI] + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,605 + SETE AL + AND AL,AL + JZ L_50 + MOV EAX,DWORD PTR [EBP+8] + CMP EAX,2 + SETB AL + AND AL,AL +L_50: + JZ L_51 + PUSH DWORD PTR [EBP-8] + PUSH 1 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + PUSH DWORD PTR [ESI] + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX +L_51: + PUSH OFFSET _abRawSector + PUSH OFFSET _fsb + PUSH 62 + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,0 + SETE AL + AND AL,AL + JZ L_52 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBX+14] + ADD EAX,DWORD PTR [ESI] + MOV EBX,EAX + MOV ESI,OFFSET _fsb + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + XOR EAX,EAX + MOV AL,BYTE PTR [EBX+16] + MOVZX ECX,WORD PTR [ESI+22] + MUL ECX + POP EDX + ADD EAX,EDX + POP EDX + MOV DWORD PTR [EDX+12], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOVZX EAX,WORD PTR [ESI+17] + MOV WORD PTR [EBX+24], AX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+13] + MOV BYTE PTR [EBX+29], AL + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBX+20], AX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOVZX EAX,WORD PTR [ESI+24] + MOV WORD PTR [EBX+22], AX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOVZX EAX,WORD PTR [ESI+22] + MOV WORD PTR [EBX+26], AX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+16] + MOV BYTE PTR [EBX+30], AL + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOV EAX,DWORD PTR [EBX] + MOVZX ECX,WORD PTR [ESI+14] + ADD EAX,ECX + POP EDX + MOV DWORD PTR [EDX+16], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _fsb + MOVZX EAX,WORD PTR [ESI+17] + MOV ECX,16 + XOR EDX,EDX + DIV ECX + ADD EAX,DWORD PTR [EBX+12] + POP EDX + MOV DWORD PTR [EDX+4], EAX + MOV ESI,OFFSET _fsb + MOV EAX,4 + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+54] + CMP EAX,50 + SETE AL + AND AL,AL + JZ L_53 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV BYTE PTR [ESI+31], AL +L_53: +L_52: +L_49: + XOR EAX,EAX + MOV ESP,EBP + POP EBP + RETN 4 +_GetFATTime: + PUSH EBP + MOV EBP,ESP + SUB ESP,14 + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetCMOSDate + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetCMOSTime + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,12 + SHR EAX,CL + AND EAX,15 + MOV ECX,10 + MUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,8 + SHR EAX,CL + AND EAX,15 + ADD EAX,EBX + MOV WORD PTR [EBP-10], AX + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,20 + SHR EAX,CL + AND EAX,15 + MOV ECX,10 + MUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,16 + SHR EAX,CL + AND EAX,15 + ADD EAX,EBX + ADD EAX,2 + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP-14] + MOV ECX,4 + SHL EAX,CL + AND EAX,0FFFFh + MOVZX ECX,WORD PTR [EBP-10] + OR EAX,ECX + MOV WORD PTR [EBP-10], AX + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,28 + SHR EAX,CL + AND EAX,15 + MOV ECX,10 + MUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-4] + MOV ECX,24 + SHR EAX,CL + AND EAX,15 + ADD EAX,EBX + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP-14] + MOV ECX,1900 + ADD EAX,ECX + MOV ECX,1980 + SUB EAX,ECX + MOV ECX,9 + SHL EAX,CL + AND EAX,0FFFFh + MOVZX ECX,WORD PTR [EBP-10] + OR EAX,ECX + MOV WORD PTR [EBP-10], AX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,4 + SHR EAX,CL + AND EAX,15 + MOV ECX,10 + MUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,15 + ADD EAX,EBX + MOV ECX,2 + XOR EDX,EDX + DIV ECX + MOV WORD PTR [EBP-12], AX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,12 + SHR EAX,CL + AND EAX,15 + MOV ECX,10 + MUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,8 + SHR EAX,CL + AND EAX,15 + ADD EAX,EBX + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP-14] + MOV ECX,5 + SHL EAX,CL + AND EAX,0FFFFh + MOVZX ECX,WORD PTR [EBP-12] + OR EAX,ECX + MOV WORD PTR [EBP-12], AX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,20 + SHR EAX,CL + AND EAX,15 + MOV ECX,10 + MUL ECX + MOV EBX,EAX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,16 + SHR EAX,CL + AND EAX,15 + ADD EAX,EBX + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP-14] + MOV ECX,11 + SHL EAX,CL + AND EAX,0FFFFh + MOVZX ECX,WORD PTR [EBP-12] + OR EAX,ECX + MOV WORD PTR [EBP-12], AX + MOV ESI,DWORD PTR [EBP+12] + MOVZX EAX,WORD PTR [EBP-12] + MOV WORD PTR [ESI], AX + MOV ESI,DWORD PTR [EBP+8] + MOVZX EAX,WORD PTR [EBP-10] + MOV WORD PTR [ESI], AX + MOV ESP,EBP + POP EBP + RETN 8 +_UpdateDirEnt: + PUSH EBP + MOV EBP,ESP + SUB ESP,13 + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + MOV BYTE PTR [EBP-13], AL + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+32] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+36] + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,22 + PUSH EAX + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,ESI + ADD EAX,24 + PUSH EAX + CALL _GetFATTime + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP-8] + PUSH 1 + PUSH OFFSET _abDirSectBuf + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_55 + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + PUSH ESI + MOV EAX,DWORD PTR [EBP-12] + MOV ESI,OFFSET _abDirSectBuf + ADD ESI,EAX + PUSH ESI + PUSH 32 + CALL FWORD PTR _CopyData + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + PUSH DWORD PTR [EBP-8] + PUSH 1 + PUSH OFFSET _abDirSectBuf + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX +L_55: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 4 +_ValidateHandle: + PUSH EBP + MOV EBP,ESP + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,4 + SETB AL + AND AL,AL + JZ L_57 + MOV EAX,210 + JMP L_58 +L_57: + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,128 + SETAE AL + AND AL,AL + JZ L_59 + MOV EAX,210 + JMP L_58 +L_59: + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI] + AND EAX,EAX + JNZ L_60 + MOV EAX,210 + JMP L_58 +L_60: + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV EBX,ESI + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+2] + MOV DWORD PTR [EBX], EAX + XOR EAX,EAX +L_58: + POP EBP + RETN 8 +_ClsToLBA: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + MOVZX EAX,WORD PTR [EBP+12] + MOV ECX,2 + SUB EAX,ECX + MOV WORD PTR [EBP+12], AX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOVZX ECX,WORD PTR [EBP+12] + MUL ECX + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 8 +_UpdateFAT: + PUSH EBP + MOV EBP,ESP + SUB ESP,13 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,1 + AND EAX,ECX + JZ L_62 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+14] + MOV BYTE PTR [EBP-13], AL + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP+8] + AND EAX,EAX + JNZ L_63 + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,2 + MOV EBX,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBX+26] + ADD EAX,DWORD PTR [ESI+16] + POP EDX + CMP EAX,EDX + SETA AL + AND AL,AL + JZ L_64 + MOV EAX,3 + MOV DWORD PTR [EBP-12], EAX + JMP L_65 +L_64: + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,1 + MOV EBX,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBX+26] + ADD EAX,DWORD PTR [ESI+16] + POP EDX + CMP EAX,EDX + SETA AL + AND AL,AL + JZ L_66 + MOV EAX,2 + MOV DWORD PTR [EBP-12], EAX + JMP L_67 +L_66: + MOV EAX,1 + MOV DWORD PTR [EBP-12], EAX +L_67: +L_65: + JMP L_68 +L_63: + MOV EAX,1 + MOV DWORD PTR [EBP-12], EAX +L_68: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + PUSH DWORD PTR [EBP-8] + PUSH DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + PUSH DWORD PTR [ESI] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_69 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,-2 + AND EAX,ECX + MOV BYTE PTR [ESI+15], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+30] + CMP EAX,1 + SETA AL + AND AL,AL + JZ L_70 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-8] + MOVZX ECX,WORD PTR [ESI+26] + ADD EAX,ECX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-13] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + PUSH DWORD PTR [EBP-8] + PUSH DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + PUSH DWORD PTR [ESI] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX +L_70: +L_69: +L_62: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 4 +_FindFatSect: + PUSH EBP + MOV EBP,ESP + SUB ESP,42 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_72 + MOV EAX,65528 + MOV WORD PTR [EBP-42], AX + JMP L_73 +L_72: + MOV EAX,4088 + MOV WORD PTR [EBP-42], AX +L_73: + MOVZX EAX,WORD PTR [EBP+16] + MOVZX ECX,WORD PTR [EBP-42] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_74 + MOV EAX,1 + JMP L_75 +L_74: + MOVZX EAX,WORD PTR [EBP+16] + CMP EAX,2 + SETB AL + AND AL,AL + JZ L_76 + MOV EAX,220 + JMP L_75 +L_76: + LEA EAX,DWORD PTR [EBP-40] + PUSH EAX + CALL FWORD PTR _GetTimerTick + XOR EAX,EAX + MOV DWORD PTR [EBP-24], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_77 + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,256 + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-20], EAX + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,256 + XOR EDX,EDX + DIV ECX + MOV ECX,EDX + MOVZX EAX,WORD PTR [EBP+16] + SUB EAX,ECX + MOV DWORD PTR [EBP-16], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,DWORD PTR [ESI+16] + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBX+26] + ADD EAX,DWORD PTR [ESI+16] + CMP EAX,DWORD PTR [EBP-4] + SETBE AL + AND AL,AL + JZ L_78 + MOV EAX,220 + JMP L_75 +L_78: + MOV EAX,-1 + MOV DWORD PTR [EBP-36], EAX + MOV EAX,-1 + MOV DWORD PTR [EBP-28], EAX + MOV EAX,1 + MOV DWORD PTR [EBP-32], EAX + MOV EAX,1 + MOV DWORD PTR [EBP-8], EAX +L_80: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,17 + SETB AL + AND AL,AL + JZ L_81 + JMP SHORT L_82 +L_83: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_80 +L_82: + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_84 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + MOVZX ECX,WORD PTR [ESI+12] + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_85 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + XOR ECX,ECX + MOV CL,BYTE PTR [ESI+14] + CMP EAX,ECX + SETE AL + AND AL,AL +L_85: + JZ L_86 + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-36], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + AND EAX,EAX + JZ L_87 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,2 + OR EAX,ECX + MOV BYTE PTR [ESI+15], AL +L_87: + JMP L_81 +L_86: +L_84: + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + CMP EAX,DWORD PTR [EBP-28] + SETB AL + AND AL,AL + JZ L_88 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-32], EAX +L_88: + JMP L_83 +L_81: + MOV EAX,DWORD PTR [EBP-36] + CMP EAX,-1 + SETNE AL + AND AL,AL + JZ L_89 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [ESI+4], EAX + JMP L_90 +L_89: + MOV EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,1 + AND EAX,ECX + JZ L_91 + PUSH DWORD PTR [EBP-8] + CALL _UpdateFAT + MOV DWORD PTR [EBP-24], EAX +L_91: + MOV EAX,DWORD PTR [EBP-24] + AND EAX,EAX + JNZ L_92 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP-4] + PUSH 1 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + PUSH DWORD PTR [ESI] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + MOV BYTE PTR [ESI+14], AL + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [ESI+4], EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + MOV WORD PTR [ESI+12], AX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [ESI+8], EAX +L_92: +L_90: +L_79: + JMP L_93 +L_77: + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,1024 + XOR EDX,EDX + DIV ECX + MOV ECX,3 + MUL ECX + MOV DWORD PTR [EBP-20], EAX + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,1024 + XOR EDX,EDX + DIV ECX + MOV ECX,EDX + MOVZX EAX,WORD PTR [EBP+16] + SUB EAX,ECX + MOV DWORD PTR [EBP-16], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,DWORD PTR [ESI+16] + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-4] + MOVZX ECX,WORD PTR [ESI+26] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_94 + MOV EAX,220 + JMP L_75 +L_94: + MOV EAX,-1 + MOV DWORD PTR [EBP-36], EAX + MOV ESI,OFFSET _Fat + MOV EAX,DWORD PTR [ESI+4] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_96 + MOV ESI,OFFSET _Fat + MOV EAX,DWORD PTR [EBP-16] + MOVZX ECX,WORD PTR [ESI+12] + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_97 + MOV ESI,OFFSET _Fat + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + XOR ECX,ECX + MOV CL,BYTE PTR [ESI+14] + CMP EAX,ECX + SETE AL + AND AL,AL +L_97: + JZ L_98 + XOR EAX,EAX + MOV DWORD PTR [EBP-36], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + AND EAX,EAX + JZ L_99 + MOV ESI,OFFSET _Fat + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,2 + OR EAX,ECX + MOV BYTE PTR [ESI+15], AL +L_99: +L_98: +L_96: + MOV EAX,DWORD PTR [EBP-36] + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_100 + MOV ESI,OFFSET _Fat + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,1 + AND EAX,ECX + JZ L_101 + XOR EAX,EAX + PUSH EAX + CALL _UpdateFAT + MOV DWORD PTR [EBP-24], EAX +L_101: + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,2 + MOV EBX,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBX+26] + ADD EAX,DWORD PTR [ESI+16] + POP EDX + CMP EAX,EDX + SETA AL + AND AL,AL + JZ L_102 + MOV EAX,3 + MOV DWORD PTR [EBP-12], EAX + JMP L_103 +L_102: + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,1 + MOV EBX,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + PUSH EBX + MOV EBX,ESI + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBX+26] + ADD EAX,DWORD PTR [ESI+16] + POP EDX + CMP EAX,EDX + SETA AL + AND AL,AL + JZ L_104 + MOV EAX,2 + MOV DWORD PTR [EBP-12], EAX + JMP L_105 +L_104: + MOV EAX,1 + MOV DWORD PTR [EBP-12], EAX +L_105: +L_103: + MOV EAX,DWORD PTR [EBP-24] + AND EAX,EAX + JNZ L_106 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP-4] + PUSH DWORD PTR [EBP-12] + MOV ESI,OFFSET _Fat + PUSH DWORD PTR [ESI] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-24], EAX + MOV ESI,OFFSET _Fat + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + MOV BYTE PTR [ESI+14], AL + MOV ESI,OFFSET _Fat + MOV EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [ESI+4], EAX + MOV ESI,OFFSET _Fat + MOV EAX,DWORD PTR [EBP-16] + MOV WORD PTR [ESI+12], AX + MOV ESI,OFFSET _Fat + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [ESI+8], EAX +L_106: +L_100: +L_95: +L_93: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-24] +L_75: + MOV ESP,EBP + POP EBP + RETN 16 +_GetClstrValue: + PUSH EBP + MOV EBP,ESP + SUB ESP,18 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + PUSH EAX + MOVZX EAX,WORD PTR [EBP+24] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + PUSH EAX + CALL _FindFatSect + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_107 + MOV ESI,DWORD PTR [EBP+12] + XOR EAX,EAX + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-4] + JMP L_108 +L_107: + MOV EAX,DWORD PTR [EBP-12] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + MOV DWORD PTR [EBP-18], EAX + MOV EAX,DWORD PTR [EBP-12] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBP+24] + MOVZX ECX,WORD PTR [ESI+12] + SUB EAX,ECX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_109 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,1 + ADD EAX,DWORD PTR [EBP-18] + MOV DWORD PTR [EBP-18], EAX + MOV ESI,DWORD PTR [EBP-18] + MOVZX EAX,WORD PTR [ESI] + MOV WORD PTR [EBP-14], AX + JMP L_110 +L_109: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,2 + XOR EDX,EDX + DIV ECX + ADD EAX,DWORD PTR [EBP-8] + ADD EAX,DWORD PTR [EBP-18] + MOV DWORD PTR [EBP-18], EAX + MOV ESI,DWORD PTR [EBP-18] + MOVZX EAX,WORD PTR [ESI] + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP+24] + MOV ECX,1 + AND EAX,ECX + JZ L_111 + MOVZX EAX,WORD PTR [EBP-14] + MOV ECX,4 + SHR AX,CL + MOV WORD PTR [EBP-14], AX +L_111: + MOVZX EAX,WORD PTR [EBP-14] + MOV ECX,4095 + AND EAX,ECX + MOV WORD PTR [EBP-14], AX +L_110: + MOV ESI,DWORD PTR [EBP+12] + MOVZX EAX,WORD PTR [EBP-14] + MOV WORD PTR [ESI], AX + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] +L_108: + MOV ESP,EBP + POP EBP + RETN 20 +_SetClstrValue: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + PUSH EAX + MOVZX EAX,WORD PTR [EBP+20] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL _FindFatSect + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_112 + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] + JMP L_113 +L_112: + MOV EAX,DWORD PTR [EBP-12] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + MOV DWORD PTR [EBP-18], EAX + MOV EAX,DWORD PTR [EBP-12] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBP+20] + MOVZX ECX,WORD PTR [ESI+12] + SUB EAX,ECX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_114 + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,1 + ADD EAX,DWORD PTR [EBP-18] + MOV DWORD PTR [EBP-18], EAX + MOV ESI,DWORD PTR [EBP-18] + MOVZX EAX,WORD PTR [EBP+16] + MOV WORD PTR [ESI], AX + JMP L_115 +L_114: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,2 + XOR EDX,EDX + DIV ECX + ADD EAX,DWORD PTR [EBP-8] + ADD EAX,DWORD PTR [EBP-18] + MOV DWORD PTR [EBP-18], EAX + MOV ESI,DWORD PTR [EBP-18] + MOVZX EAX,WORD PTR [ESI] + MOV WORD PTR [EBP-20], AX + MOVZX EAX,WORD PTR [EBP+20] + MOV ECX,1 + AND EAX,ECX + JZ L_116 + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,4 + SHL EAX,CL + AND EAX,0FFFFh + MOV WORD PTR [EBP+16], AX + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,65520 + AND EAX,ECX + MOV WORD PTR [EBP+16], AX + MOVZX EAX,WORD PTR [EBP-20] + MOV ECX,15 + AND EAX,ECX + MOVZX ECX,WORD PTR [EBP+16] + OR EAX,ECX + MOV WORD PTR [EBP-14], AX + JMP L_117 +L_116: + MOVZX EAX,WORD PTR [EBP+16] + MOV ECX,4095 + AND EAX,ECX + MOV WORD PTR [EBP+16], AX + MOVZX EAX,WORD PTR [EBP-20] + MOV ECX,61440 + AND EAX,ECX + MOVZX ECX,WORD PTR [EBP+16] + OR EAX,ECX + MOV WORD PTR [EBP-14], AX +L_117: + MOV ESI,DWORD PTR [EBP-18] + MOVZX EAX,WORD PTR [EBP-14] + MOV WORD PTR [ESI], AX +L_115: + MOV EAX,DWORD PTR [EBP-12] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,1 + OR EAX,ECX + MOV BYTE PTR [ESI+15], AL + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] +L_113: + MOV ESP,EBP + POP EBP + RETN 16 +_NextFATClstr: + PUSH EBP + MOV EBP,ESP + SUB ESP,10 + MOVZX EAX,WORD PTR [EBP+12] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,WORD PTR [EBP-10] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_118 + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-4] + JMP L_119 +L_118: + MOV ESI,DWORD PTR [EBP+8] + MOVZX EAX,WORD PTR [EBP-10] + MOV WORD PTR [ESI], AX + XOR EAX,EAX +L_119: + MOV ESP,EBP + POP EBP + RETN 12 +_ExtendClstrChain: + PUSH EBP + MOV EBP,ESP + SUB ESP,23 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_120 + MOV EAX,65528 + MOV WORD PTR [EBP-20], AX + JMP L_121 +L_120: + MOV EAX,4088 + MOV WORD PTR [EBP-20], AX +L_121: + MOVZX EAX,WORD PTR [EBP+12] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + PUSH EAX + PUSH 1 + LEA EAX,WORD PTR [EBP-18] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_122 + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-4] + JMP L_123 +L_122: + MOVZX EAX,WORD PTR [EBP-18] + MOVZX ECX,WORD PTR [EBP-20] + CMP EAX,ECX + SETB AL + AND AL,AL + JZ L_124 + MOV ESI,DWORD PTR [EBP+8] + MOVZX EAX,WORD PTR [EBP-18] + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,-3 + AND EAX,ECX + MOV BYTE PTR [ESI+15], AL + XOR EAX,EAX + JMP L_123 +L_124: + MOVZX EAX,WORD PTR [EBP+12] + MOV WORD PTR [EBP-22], AX + XOR EAX,EAX + MOV BYTE PTR [EBP-23], AL +L_125: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-23] + AND EAX,EAX + JNZ L_126 + INC WORD PTR [EBP-22] + MOVZX EAX,WORD PTR [EBP-22] + MOVZX EAX,WORD PTR [EBP-22] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,WORD PTR [EBP-18] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_127 + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,-3 + AND EAX,ECX + MOV BYTE PTR [ESI+15], AL + MOV EAX,DWORD PTR [EBP-4] + JMP L_123 +L_127: + MOVZX EAX,WORD PTR [EBP-18] + AND EAX,EAX + JNZ L_128 + MOV EAX,1 + MOV BYTE PTR [EBP-23], AL +L_128: + JMP L_125 +L_126: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-23] + AND EAX,EAX + JZ L_129 + MOVZX EAX,WORD PTR [EBP+12] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-22] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + PUSH EAX + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL _SetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_130 + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,-3 + AND EAX,ECX + MOV BYTE PTR [ESI+15], AL + MOV EAX,DWORD PTR [EBP-4] + JMP L_123 +L_130: + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+15] + MOV ECX,-3 + AND EAX,ECX + MOV BYTE PTR [ESI+15], AL + MOVZX EAX,WORD PTR [EBP-22] + PUSH EAX + PUSH 65535 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL _SetClstrValue + MOV DWORD PTR [EBP-4], EAX +L_129: + MOV ESI,DWORD PTR [EBP+8] + MOVZX EAX,WORD PTR [EBP-22] + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-4] +L_123: + MOV ESP,EBP + POP EBP + RETN 12 +_TruncClstrChain: + PUSH EBP + MOV EBP,ESP + SUB ESP,14 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_131 + MOV EAX,65528 + MOV WORD PTR [EBP-10], AX + JMP L_132 +L_131: + MOV EAX,4088 + MOV WORD PTR [EBP-10], AX +L_132: + MOVZX EAX,WORD PTR [EBP+8] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,WORD PTR [EBP-12] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_133 + MOV EAX,DWORD PTR [EBP-4] + JMP L_134 +L_133: + MOVZX EAX,WORD PTR [EBP-12] + MOVZX ECX,WORD PTR [EBP-10] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_135 + XOR EAX,EAX + JMP L_134 +L_135: + MOVZX EAX,WORD PTR [EBP+8] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,WORD PTR [EBP-12] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_136 + MOV EAX,DWORD PTR [EBP-4] + JMP L_134 +L_136: + MOVZX EAX,WORD PTR [EBP+8] + PUSH EAX + PUSH 65535 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _SetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_137 + MOV EAX,DWORD PTR [EBP-4] + JMP L_134 +L_137: +L_138: + MOVZX EAX,WORD PTR [EBP-12] + AND EAX,EAX + JZ L_140 + MOVZX EAX,WORD PTR [EBP-12] + MOVZX ECX,WORD PTR [EBP-10] + CMP EAX,ECX + SETB AL + AND AL,AL +L_140: + JZ L_139 + MOVZX EAX,WORD PTR [EBP-12] + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP-14] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,WORD PTR [EBP-12] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_141 + MOV EAX,DWORD PTR [EBP-4] + JMP L_134 +L_141: + MOVZX EAX,WORD PTR [EBP-14] + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+12] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _SetClstrValue + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_142 + MOV EAX,DWORD PTR [EBP-4] + JMP L_134 +L_142: + JMP L_138 +L_139: + XOR EAX,EAX +L_134: + MOV ESP,EBP + POP EBP + RETN 8 +_GetAbsoluteClstr: + PUSH EBP + MOV EBP,ESP + SUB ESP,29 + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+2] + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + MOV BYTE PTR [EBP-29], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-29] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [EBP-16], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-29] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_143 + MOV EAX,65528 + MOV WORD PTR [EBP-28], AX + JMP L_144 +L_143: + MOV EAX,4088 + MOV WORD PTR [EBP-28], AX +L_144: + MOV EAX,DWORD PTR [EBP+16] + MOV ECX,DWORD PTR [EBP-16] + XOR EDX,EDX + DIV ECX + MOV WORD PTR [EBP-22], AX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+20] + MOV ECX,DWORD PTR [EBP-16] + XOR EDX,EDX + DIV ECX + MOV WORD PTR [EBP-24], AX + MOVZX EAX,WORD PTR [EBP-22] + MOVZX ECX,WORD PTR [EBP-24] + CMP EAX,ECX + SETB AL + AND AL,AL + JZ L_145 + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBP-26], AX + XOR EAX,EAX + MOV WORD PTR [EBP-24], AX + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX + JMP L_146 +L_145: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+24] + MOV WORD PTR [EBP-26], AX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+20] + MOV DWORD PTR [EBP-20], EAX +L_146: +L_147: + MOVZX EAX,WORD PTR [EBP-24] + MOVZX ECX,WORD PTR [EBP-22] + CMP EAX,ECX + SETB AL + AND AL,AL + JZ L_149 + MOVZX EAX,WORD PTR [EBP-26] + MOVZX ECX,WORD PTR [EBP-28] + CMP EAX,ECX + SETB AL + AND AL,AL + JZ L_150 + MOVZX EAX,WORD PTR [EBP-26] +L_150: +L_149: + AND EAX,EAX + JZ L_148 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-29] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-26] + PUSH EAX + LEA EAX,WORD PTR [EBP-26] + PUSH EAX + CALL _NextFATClstr + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_151 + MOV EAX,DWORD PTR [EBP-4] + JMP L_152 +L_151: + INC WORD PTR [EBP-24] + MOVZX EAX,WORD PTR [EBP-24] + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [EBP-20], EAX + JMP L_147 +L_148: + MOVZX EAX,WORD PTR [EBP-24] + MOVZX ECX,WORD PTR [EBP-22] + CMP EAX,ECX + SETNE AL + AND AL,AL + JZ L_153 + MOV EAX,211 + JMP L_152 +L_153: + MOV ESI,DWORD PTR [EBP+12] + MOVZX EAX,WORD PTR [EBP-26] + MOV WORD PTR [ESI], AX + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-20] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX +L_152: + MOV ESP,EBP + POP EBP + RETN 16 +_SetFileSizeM: + PUSH EBP + MOV EBP,ESP + SUB ESP,43 + PUSH DWORD PTR [EBP+12] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_154 + MOV EAX,DWORD PTR [EBP-4] + JMP L_155 +L_154: + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JNZ L_156 + MOV EAX,205 + JMP L_155 +L_156: + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + MOV BYTE PTR [EBP-43], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-43] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP-32] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [EBP-36], EAX + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-24] + AND EAX,EAX + JZ L_157 + MOV EAX,DWORD PTR [EBP-24] + SUB EAX,1 + MOV DWORD PTR [EBP-20], EAX + JMP L_158 +L_157: + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX +L_158: + MOV EAX,DWORD PTR [EBP-24] + CMP EAX,DWORD PTR [EBP+8] + SETE AL + AND AL,AL + JZ L_159 + XOR EAX,EAX + JMP L_155 +L_159: + MOV EAX,DWORD PTR [EBP-24] + MOV ECX,DWORD PTR [EBP-36] + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-24] + MOV ECX,DWORD PTR [EBP-36] + XOR EDX,EDX + DIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_160 + MOV EAX,DWORD PTR [EBP-28] + INC DWORD PTR [EBP-28] +L_160: + MOV EAX,DWORD PTR [EBP-24] + AND EAX,EAX + JNZ L_161 + MOV EAX,1 + MOV DWORD PTR [EBP-28], EAX +L_161: + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,DWORD PTR [EBP-36] + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP+8] + MOV ECX,DWORD PTR [EBP-36] + XOR EDX,EDX + DIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_162 + MOV EAX,DWORD PTR [EBP-40] + INC DWORD PTR [EBP-40] +L_162: + MOV EAX,DWORD PTR [EBP+8] + AND EAX,EAX + JNZ L_163 + MOV EAX,1 + MOV DWORD PTR [EBP-40], EAX +L_163: + MOV EAX,DWORD PTR [EBP-40] + CMP EAX,DWORD PTR [EBP-28] + SETE AL + AND AL,AL + JZ L_164 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + JMP L_165 +L_164: + MOV EAX,DWORD PTR [EBP-40] + CMP EAX,DWORD PTR [EBP-28] + SETA AL + AND AL,AL + JZ L_166 + PUSH DWORD PTR [EBP+12] + PUSH DWORD PTR [EBP-20] + LEA EAX,WORD PTR [EBP-42] + PUSH EAX + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL _GetAbsoluteClstr + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-28] + MOV DWORD PTR [EBP-8], EAX +L_167: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_169 + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,DWORD PTR [EBP-40] + SETB AL + AND AL,AL +L_169: + JZ L_168 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-43] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-42] + PUSH EAX + LEA EAX,WORD PTR [EBP-42] + PUSH EAX + CALL _ExtendClstrChain + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP L_167 +L_168: + JMP L_170 +L_166: + MOV EAX,DWORD PTR [EBP-40] + CMP EAX,DWORD PTR [EBP-28] + SETB AL + AND AL,AL + JZ L_171 + MOV EAX,DWORD PTR [EBP+8] + AND EAX,EAX + JZ L_172 + MOV EAX,DWORD PTR [EBP+8] + SUB EAX,1 + MOV DWORD PTR [EBP-20], EAX + JMP L_173 +L_172: + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX +L_173: + PUSH DWORD PTR [EBP+12] + PUSH DWORD PTR [EBP-20] + LEA EAX,WORD PTR [EBP-42] + PUSH EAX + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL _GetAbsoluteClstr + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_174 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-43] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-42] + PUSH EAX + CALL _TruncClstrChain + MOV DWORD PTR [EBP-4], EAX +L_174: + MOV ESI,_paFUB + MOV EAX,DWORD PTR [ESI+20] + CMP EAX,DWORD PTR [EBP+8] + SETAE AL + AND AL,AL + JZ L_175 + MOV ESI,_paFUB + XOR EAX,EAX + MOV DWORD PTR [ESI+20], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV EBX,ESI + MOV ESI,_paFCB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBX+24], AX +L_175: +L_171: +L_170: +L_165: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_176 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + MOV DWORD PTR [ESI+28], EAX + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,1 + MOV BYTE PTR [ESI+41], AL +L_176: + MOV EAX,DWORD PTR [EBP-4] +L_155: + MOV ESP,EBP + POP EBP + RETN 8 +_GetDirEnt: + PUSH EBP + MOV EBP,ESP + SUB ESP,32 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+24] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-12], EAX + MOVZX EAX,WORD PTR [EBP+20] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+24] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+24] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_177 + MOV EAX,65528 + MOV WORD PTR [EBP-32], AX + JMP L_178 +L_177: + MOV EAX,4088 + MOV WORD PTR [EBP-32], AX +L_178: + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV BYTE PTR [EBP-22], AL + XOR EAX,EAX + MOV BYTE PTR [EBP-21], AL + XOR EAX,EAX + MOV BYTE PTR [EBP-21], AL +L_179: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-21] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_181 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-22] + AND EAX,EAX + SETZ AL + AND AL,AL +L_181: + JZ L_180 + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,DWORD PTR [EBP-12] + SETE AL + AND AL,AL + JZ L_182 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+24] + PUSH EAX + MOVZX EAX,WORD PTR [EBP+20] + PUSH EAX + LEA EAX,WORD PTR [EBP+20] + PUSH EAX + CALL _NextFATClstr + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_183 + MOVZX EAX,WORD PTR [EBP+20] + MOVZX ECX,WORD PTR [EBP-32] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_184 + MOV EAX,203 + JMP L_185 +L_184: + MOVZX EAX,WORD PTR [EBP+20] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+24] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + JMP L_186 +L_183: + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-20] + JMP L_185 +L_186: +L_182: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+24] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + MOV EAX,DWORD PTR [EBP-4] + INC DWORD PTR [EBP-4] + PUSH EAX + PUSH 1 + PUSH OFFSET _abDirSectBuf + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_187 + MOV EAX,DWORD PTR [EBP-20] + JMP L_185 +L_187: + INC DWORD PTR [EBP-8] + MOV EAX,DWORD PTR [EBP-8] + MOV EAX,OFFSET _abDirSectBuf + MOV DWORD PTR [EBP-26], EAX + MOV EAX,DWORD PTR [EBP-26] + MOV DWORD PTR [EBP-30], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX +L_188: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,16 + SETB AL + AND AL,AL + JZ L_189 + JMP SHORT L_190 +L_191: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] + JMP SHORT L_188 +L_190: + MOV ESI,DWORD PTR [EBP-26] + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + XOR ECX,ECX + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_192 + MOV EAX,1 + MOV BYTE PTR [EBP-22], AL + JMP L_189 +L_192: + PUSH DWORD PTR [EBP-26] + PUSH DWORD PTR [EBP+28] + PUSH 11 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_193 + MOV EAX,1 + MOV BYTE PTR [EBP-21], AL + MOV ESI,DWORD PTR [EBP+16] + MOV EAX,DWORD PTR [EBP-4] + SUB EAX,1 + MOV DWORD PTR [ESI], EAX + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-26] + SUB EAX,DWORD PTR [EBP-30] + MOV DWORD PTR [ESI], EAX + JMP L_189 +L_193: + MOV EAX,DWORD PTR [EBP-26] + ADD EAX,32 + MOV DWORD PTR [EBP-26], EAX + JMP L_191 +L_189: + JMP L_179 +L_180: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-21] + AND EAX,EAX + JZ L_194 + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-26] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_185 +L_194: + MOV EAX,203 +L_195: +L_185: + MOV ESP,EBP + POP EBP + RETN 24 +_GetRootEnt: + PUSH EBP + MOV EBP,ESP + SUB ESP,26 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+24] + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV BYTE PTR [EBP-17], AL + XOR EAX,EAX + MOV BYTE PTR [EBP-18], AL +L_196: + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_198 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_199 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-18] + AND EAX,EAX + SETZ AL + AND AL,AL +L_199: +L_198: + JZ L_197 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + MOV EAX,DWORD PTR [EBP-4] + INC DWORD PTR [EBP-4] + PUSH EAX + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-16] + AND EAX,EAX + JZ L_200 + MOV EAX,DWORD PTR [EBP-16] + JMP L_201 +L_200: + MOV EAX,OFFSET _abRawSector + MOV DWORD PTR [EBP-22], EAX + MOV EAX,DWORD PTR [EBP-22] + MOV DWORD PTR [EBP-26], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX +L_202: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,16 + SETB AL + AND AL,AL + JZ L_203 + JMP SHORT L_204 +L_205: + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + JMP SHORT L_202 +L_204: + MOV ESI,DWORD PTR [EBP-22] + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + XOR ECX,ECX + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_206 + MOV EAX,1 + MOV BYTE PTR [EBP-18], AL + JMP L_203 +L_206: + PUSH DWORD PTR [EBP-22] + PUSH DWORD PTR [EBP+24] + PUSH 11 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_207 + MOV EAX,1 + MOV BYTE PTR [EBP-17], AL + MOV ESI,DWORD PTR [EBP+16] + MOV EAX,DWORD PTR [EBP-4] + SUB EAX,1 + MOV DWORD PTR [ESI], EAX + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-22] + SUB EAX,DWORD PTR [EBP-26] + MOV DWORD PTR [ESI], EAX + JMP L_203 +L_207: + DEC DWORD PTR [EBP-8] + MOV EAX,DWORD PTR [EBP-22] + ADD EAX,32 + MOV DWORD PTR [EBP-22], EAX + JMP L_205 +L_203: + JMP L_196 +L_197: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + AND EAX,EAX + JZ L_208 + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-22] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_201 +L_208: + MOV EAX,203 +L_209: +L_201: + MOV ESP,EBP + POP EBP + RETN 20 +_BuildSpec: + PUSH EBP + MOV EBP,ESP + SUB ESP,74 + MOV EAX,DWORD PTR [EBP+20] + AND EAX,EAX + JZ L_210 + MOV EAX,DWORD PTR [EBP+24] + AND EAX,EAX + JZ L_211 + MOV EAX,1 + MOV ESI,DWORD PTR [EBP+24] + ADD ESI,EAX + MOVSX EAX,BYTE PTR [ESI] + CMP EAX,58 + SETE AL + AND AL,AL +L_211: +L_210: + JZ L_212 + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+20] + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP+20] + MOV DWORD PTR [EBP-4], EAX + JMP L_213 +L_212: + MOV EAX,DWORD PTR [EBP+20] + AND EAX,EAX + JZ L_214 + MOV EAX,DWORD PTR [EBP+24] + AND EAX,EAX + JZ L_215 + MOV ESI,DWORD PTR [EBP+24] + MOVSX EAX,BYTE PTR [ESI] + CMP EAX,92 + SETE AL + AND AL,AL +L_215: +L_214: + JZ L_216 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-74] + PUSH EAX + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetPath + MOV ESI,DWORD PTR [EBP+16] + MOV EBX,ESI + LEA ESI,BYTE PTR [EBP-74] + MOVSX EAX,BYTE PTR [ESI] + MOV BYTE PTR [EBX], AL + MOV EAX,1 + MOV ESI,DWORD PTR [EBP+16] + ADD ESI,EAX + MOV EAX,1 + MOV EBX,ESI + LEA ESI,BYTE PTR [EBP-74] + ADD ESI,EAX + MOVSX EAX,BYTE PTR [ESI] + MOV BYTE PTR [EBX], AL + MOV EAX,2 + MOV DWORD PTR [EBP-4], EAX + PUSH DWORD PTR [EBP+24] + MOV EAX,2 + MOV ESI,DWORD PTR [EBP+16] + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+20] + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,DWORD PTR [EBP+20] + MOV DWORD PTR [EBP-4], EAX + JMP L_217 +L_216: + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + PUSH DWORD PTR [EBP+8] + PUSH DWORD PTR [EBP+16] + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + CALL FWORD PTR _GetPath + MOV EAX,DWORD PTR [EBP+20] + AND EAX,EAX + JZ L_218 + MOV EAX,DWORD PTR [EBP+24] +L_218: + AND EAX,EAX + JZ L_219 + MOV EAX,DWORD PTR [EBP+24] + AND EAX,EAX + JZ L_220 + MOV EAX,DWORD PTR [EBP+20] +L_220: + AND EAX,EAX + JZ L_221 + PUSH DWORD PTR [EBP+24] + MOV EAX,DWORD PTR [EBP-4] + MOV ESI,DWORD PTR [EBP+16] + ADD ESI,EAX + PUSH ESI + PUSH DWORD PTR [EBP+20] + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,DWORD PTR [EBP+20] + MOV DWORD PTR [EBP-4], EAX +L_221: +L_219: +L_217: +L_213: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [ESI], EAX + MOV ESP,EBP + POP EBP + RETN 20 +_ParseName: + PUSH EBP + MOV EBP,ESP + SUB ESP,95 + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX + XOR EAX,EAX + MOV _FDrive, AL + PUSH OFFSET _FileSpec + PUSH 77 + PUSH 32 + CALL FWORD PTR _FillData + MOV EAX,DWORD PTR [EBP+12] + AND EAX,EAX + JZ L_222 + MOV ESI,DWORD PTR [EBP+16] + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,32 + SETE AL + AND AL,AL +L_222: + JZ L_223 + MOV EAX,200 + MOV DWORD PTR [EBP-16], EAX +L_223: + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + LEA EAX,DWORD PTR [EBP-91] + PUSH EAX + LEA EAX,DWORD PTR [EBP-95] + PUSH EAX + PUSH DWORD PTR [EBP+8] + CALL _BuildSpec + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX + LEA EAX,DWORD PTR [EBP-91] + MOV DWORD PTR [EBP-21], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX +L_224: + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,DWORD PTR [EBP-95] + SETB AL + AND AL,AL + JZ L_225 + JMP SHORT L_226 +L_227: + MOV EAX,DWORD PTR [EBP-4] + INC DWORD PTR [EBP-4] + JMP SHORT L_224 +L_226: + MOV ESI,DWORD PTR [EBP-21] + INC DWORD PTR [EBP-21] + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + MOV BYTE PTR [EBP-17], AL + JMP L_229 +L_230: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,0 + SETA AL + AND AL,AL + JZ L_231 + INC DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP-12] + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_231: + JMP L_228 +L_232: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,1 + SETE AL + AND AL,AL + JZ L_233 + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,0 + SETE AL + AND AL,AL + JZ L_234 + XOR EAX,EAX + MOV AL,_FDrive + XOR ECX,ECX + CMP EAX,ECX + SETE AL + AND AL,AL +L_234: +L_233: + JZ L_235 + MOV ESI,OFFSET _FileSpec + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + MOV ECX,223 + AND EAX,ECX + MOV _FDrive, AL + MOV ESI,OFFSET _FileSpec + MOV EAX,32 + MOV BYTE PTR [ESI], AL + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX + JMP L_236 +L_235: + MOV EAX,200 + MOV DWORD PTR [EBP-16], EAX +L_236: + JMP L_228 +L_237: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,8 + SETA AL + AND AL,AL + JZ L_238 + MOV EAX,200 + MOV DWORD PTR [EBP-16], EAX + JMP L_239 +L_238: + MOV EAX,8 + MOV DWORD PTR [EBP-8], EAX +L_239: + JMP L_228 +L_240: +L_241: +L_242: +L_243: +L_244: +L_245: +L_246: +L_247: +L_248: +L_249: +L_250: +L_251: + MOV EAX,200 + MOV DWORD PTR [EBP-16], EAX + JMP L_228 +L_252: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,10 + SETA AL + AND AL,AL + JZ L_253 + MOV EAX,200 + MOV DWORD PTR [EBP-16], EAX + JMP L_254 +L_253: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + CMP EAX,65 + SETAE AL + AND AL,AL + JZ L_255 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + CMP EAX,90 + SETBE AL + AND AL,AL +L_255: + JNZ L_256 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + CMP EAX,97 + SETAE AL + AND AL,AL + JZ L_257 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + CMP EAX,122 + SETBE AL + AND AL,AL +L_257: +L_256: + JZ L_258 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + MOV ECX,223 + AND EAX,ECX + MOV BYTE PTR [EBP-17], AL +L_258: + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,11 + MUL ECX + ADD EAX,DWORD PTR [EBP-8] + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-17] + MOV BYTE PTR [ESI], AL + INC DWORD PTR [EBP-8] + MOV EAX,DWORD PTR [EBP-8] +L_254: + JMP L_228 +L_229: + CMP EAX,63 + JE L_251 + CMP EAX,42 + JE L_250 + CMP EAX,64 + JE L_249 + CMP EAX,61 + JE L_248 + CMP EAX,43 + JE L_247 + CMP EAX,91 + JE L_246 + CMP EAX,93 + JE L_245 + CMP EAX,124 + JE L_244 + CMP EAX,43 + JE L_243 + CMP EAX,44 + JE L_242 + CMP EAX,60 + JE L_241 + CMP EAX,62 + JE L_240 + CMP EAX,46 + JE L_237 + CMP EAX,58 + JE L_232 + CMP EAX,92 + JE L_230 + JMP L_252 +L_228: + MOV EAX,DWORD PTR [EBP-16] + AND EAX,EAX + JNZ L_225 + JMP L_227 +L_225: + MOV EAX,DWORD PTR [EBP-12] + MOV _SpecDepth, AL + MOV EAX,DWORD PTR [EBP-16] +L_260: + MOV ESP,EBP + POP EBP + RETN 12 +_GetDirSectorM: + PUSH EBP + MOV EBP,ESP + SUB ESP,44 + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,512 + SETG AL + AND AL,AL + JZ L_261 + MOV EAX,512 + MOV DWORD PTR [EBP+24], EAX +L_261: + PUSH DWORD PTR [EBP+36] + PUSH DWORD PTR [EBP+32] + PUSH DWORD PTR [EBP+8] + CALL _ParseName + MOV DWORD PTR [EBP-20], EAX + XOR EAX,EAX + MOV AL,_FDrive + CMP EAX,64 + SETA AL + AND AL,AL + JZ L_262 + XOR EAX,EAX + MOV AL,_FDrive + CMP EAX,82 + SETB AL + AND AL,AL +L_262: + JZ L_263 + XOR EAX,EAX + MOV AL,_FDrive + MOV ECX,65 + SUB EAX,ECX + MOV BYTE PTR [EBP-44], AL + JMP L_264 +L_263: + MOV EAX,201 + JMP L_265 +L_264: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + CMP EAX,2 + SETB AL + AND AL,AL + JZ L_266 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + CALL _StatFloppy + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + CALL _read_BS + MOV DWORD PTR [EBP-20], EAX +L_266: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + CMP EAX,255 + SETE AL + AND AL,AL + JZ L_267 + MOV EAX,201 + JMP L_265 +L_267: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+24] + MOV DWORD PTR [EBP-12], EAX + MOV ESI,OFFSET _FileSpec + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,32 + SETE AL + AND AL,AL + JZ L_268 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,32 + XOR EDX,EDX + DIV ECX + CMP EAX,DWORD PTR [EBP+20] + SETB AL + AND AL,AL + JZ L_269 + MOV EAX,224 + JMP L_265 +L_269: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,DWORD PTR [EBP+20] + PUSH EAX + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_270 + MOV ESI,DWORD PTR [EBP+16] + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,DWORD PTR [EBP+20] + MOV DWORD PTR [ESI], EAX + PUSH OFFSET _abRawSector + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+24] + CALL FWORD PTR _CopyData +L_270: + MOV EAX,DWORD PTR [EBP-20] + JMP L_265 +L_268: + XOR EAX,EAX + MOV BYTE PTR [EBP-39], AL +L_271: + MOV EAX,DWORD PTR [EBP-12] + AND EAX,EAX + JZ L_273 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-39] + AND EAX,EAX + SETZ AL + AND AL,AL +L_273: + JZ L_272 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + PUSH EAX + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_274 + MOV EAX,DWORD PTR [EBP-20] + JMP L_265 +L_274: + MOV EAX,OFFSET _abRawSector + MOV DWORD PTR [EBP-43], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX +L_275: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,16 + SETB AL + AND AL,AL + JZ L_276 + JMP SHORT L_277 +L_278: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] + JMP SHORT L_275 +L_277: + PUSH DWORD PTR [EBP-43] + PUSH OFFSET _FileSpec + PUSH 11 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_279 + MOV EAX,1 + MOV BYTE PTR [EBP-39], AL + JMP L_276 +L_279: + DEC DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP-43] + ADD EAX,32 + MOV DWORD PTR [EBP-43], EAX + JMP L_278 +L_276: + JMP L_271 +L_272: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-39] + AND EAX,EAX + JNZ L_280 + MOV EAX,224 + JMP L_265 +L_280: + MOV EAX,DWORD PTR [EBP-43] + MOV _pDirEnt, EAX + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+11] + MOV ECX,16 + AND EAX,ECX + JNZ L_281 + MOV EAX,204 + JMP L_265 +L_281: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_282 + MOV EAX,65528 + MOV WORD PTR [EBP-34], AX + JMP L_283 +L_282: + MOV EAX,4088 + MOV WORD PTR [EBP-34], AX +L_283: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-24], EAX + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBP-36], AX + MOV EAX,1 + MOV DWORD PTR [EBP-28], EAX +L_284: + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_285 + MOV EAX,DWORD PTR [EBP-28] + MOV ECX,11 + MUL ECX + ADD EAX,0 + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,32 + SETE AL + AND AL,AL + JZ L_286 + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+11] + MOV ECX,16 + AND EAX,ECX + JNZ L_287 + MOV EAX,204 + JMP L_265 +L_287: + MOV EAX,DWORD PTR [EBP+20] + MOV ECX,DWORD PTR [EBP-24] + CDQ + IDIV ECX + MOV WORD PTR [EBP-38], AX + MOV EAX,DWORD PTR [EBP+20] + MOV ECX,DWORD PTR [EBP-24] + CDQ + IDIV ECX + MOV EAX,EDX + MOV DWORD PTR [EBP-32], EAX + MOVZX EAX,WORD PTR [EBP-36] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-4], EAX +L_288: + MOVZX EAX,WORD PTR [EBP-38] + DEC WORD PTR [EBP-38] + AND EAX,EAX + JZ L_290 + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + SETZ AL + AND AL,AL +L_290: + JZ L_289 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-36] + PUSH EAX + LEA EAX,WORD PTR [EBP-36] + PUSH EAX + CALL _NextFATClstr + MOV DWORD PTR [EBP-20], EAX + JMP L_288 +L_289: + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_291 + MOV EAX,DWORD PTR [EBP-20] + JMP L_265 +L_291: + MOVZX EAX,WORD PTR [EBP-36] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP-4] + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_292 + PUSH OFFSET _abRawSector + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+24] + CALL FWORD PTR _CopyData + MOV ESI,DWORD PTR [EBP+16] + MOV EAX,DWORD PTR [EBP-4] + MOV DWORD PTR [ESI], EAX + MOV ESI,DWORD PTR [EBP+12] + MOVZX EAX,WORD PTR [EBP-36] + MOV WORD PTR [ESI], AX +L_292: + MOV EAX,DWORD PTR [EBP-20] + JMP L_265 +L_286: + MOVZX EAX,WORD PTR [EBP-36] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV BYTE PTR [EBP-39], AL + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_294: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-39] + AND EAX,EAX + JNZ L_295 + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,DWORD PTR [EBP-24] + SETE AL + AND AL,AL + JZ L_296 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-36] + PUSH EAX + LEA EAX,WORD PTR [EBP-36] + PUSH EAX + CALL _NextFATClstr + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_297 + MOVZX EAX,WORD PTR [EBP-36] + MOVZX ECX,WORD PTR [EBP-34] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_298 + MOV EAX,203 + JMP L_265 +L_298: + MOVZX EAX,WORD PTR [EBP-36] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + JMP L_299 +L_297: + MOV EAX,DWORD PTR [EBP-20] + JMP L_265 +L_299: +L_296: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-44] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + MOV EAX,DWORD PTR [EBP-4] + INC DWORD PTR [EBP-4] + PUSH EAX + PUSH 1 + PUSH OFFSET _abRawSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_300 + MOV EAX,DWORD PTR [EBP-20] + JMP L_265 +L_300: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + MOV EAX,OFFSET _abRawSector + MOV DWORD PTR [EBP-43], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX +L_301: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,16 + SETB AL + AND AL,AL + JZ L_302 + JMP SHORT L_303 +L_304: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] + JMP SHORT L_301 +L_303: + PUSH DWORD PTR [EBP-43] + MOV EAX,DWORD PTR [EBP-28] + MOV ECX,11 + MUL ECX + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + PUSH ESI + PUSH 11 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_305 + MOV EAX,1 + MOV BYTE PTR [EBP-39], AL + JMP L_302 +L_305: + MOV EAX,DWORD PTR [EBP-43] + ADD EAX,32 + MOV DWORD PTR [EBP-43], EAX + JMP L_304 +L_302: + JMP L_294 +L_295: + MOV EAX,DWORD PTR [EBP-43] + MOV _pDirEnt, EAX + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBP-36], AX +L_293: + INC DWORD PTR [EBP-28] + MOV EAX,DWORD PTR [EBP-28] + JMP L_284 +L_285: + MOV EAX,DWORD PTR [EBP-20] +L_265: + MOV ESP,EBP + POP EBP + RETN 32 +_ReadBlockM: + PUSH EBP + MOV EBP,ESP + SUB ESP,47 + PUSH DWORD PTR [EBP+28] + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_306 + MOV EAX,DWORD PTR [EBP-4] + JMP L_307 +L_306: + MOV EAX,DWORD PTR [EBP+28] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JZ L_308 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + AND EAX,EAX + SETZ AL + AND AL,AL +L_308: + JZ L_309 + MOV ESI,DWORD PTR [EBP+12] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + MOV EAX,214 + JMP L_307 +L_309: + MOV EAX,DWORD PTR [EBP+20] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP-16] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + MOV BYTE PTR [EBP-47], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-47] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-24] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [EBP-20], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-47] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_310 + MOV EAX,65528 + MOV WORD PTR [EBP-44], AX + JMP L_311 +L_310: + MOV EAX,4088 + MOV WORD PTR [EBP-44], AX +L_311: + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+16] + LEA EAX,WORD PTR [EBP-42] + PUSH EAX + LEA EAX,DWORD PTR [EBP-32] + PUSH EAX + CALL _GetAbsoluteClstr + MOV DWORD PTR [EBP-4], EAX + MOVZX EAX,WORD PTR [EBP-42] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-47] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP+16] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV ECX,DWORD PTR [EBP-24] + XOR EDX,EDX + DIV ECX + MOV EAX,EDX + ADD EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP+16] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV ECX,DWORD PTR [EBP-24] + XOR EDX,EDX + DIV ECX + MOV ECX,EDX + MOV EAX,DWORD PTR [EBP-24] + SUB EAX,ECX + MOV DWORD PTR [EBP-36], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-28], EAX +L_312: + MOV EAX,DWORD PTR [EBP-40] + AND EAX,EAX + JZ L_314 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_314: + JZ L_313 + MOV EAX,DWORD PTR [EBP-40] + CMP EAX,DWORD PTR [EBP-36] + SETA AL + AND AL,AL + JZ L_315 + MOV EAX,DWORD PTR [EBP-36] + MOV DWORD PTR [EBP-8], EAX + JMP L_316 +L_315: + MOV EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [EBP-8], EAX +L_316: + MOV EAX,DWORD PTR [EBP+28] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBP-42] + MOV WORD PTR [ESI+24], AX + MOV EAX,DWORD PTR [EBP+28] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [ESI+20], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-47] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP-12] + PUSH DWORD PTR [EBP-8] + PUSH DWORD PTR [EBP+24] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_317 + JMP L_313 +L_317: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,512 + MUL ECX + ADD EAX,DWORD PTR [EBP+24] + MOV DWORD PTR [EBP+24], EAX + MOV EAX,DWORD PTR [EBP-40] + SUB EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP-36] + SUB EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-36], EAX + MOV EAX,DWORD PTR [EBP-28] + ADD EAX,DWORD PTR [EBP-8] + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-40] + AND EAX,EAX + JZ L_318 + MOV EAX,DWORD PTR [EBP-36] + AND EAX,EAX + SETZ AL + AND AL,AL +L_318: + JZ L_319 + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [EBP-36], EAX + MOVZX EAX,WORD PTR [EBP-42] + MOV WORD PTR [EBP-46], AX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-47] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-42] + PUSH EAX + LEA EAX,WORD PTR [EBP-42] + PUSH EAX + CALL _NextFATClstr + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_320 + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-28] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] + JMP L_307 +L_320: + MOV EAX,DWORD PTR [EBP-32] + ADD EAX,DWORD PTR [EBP-20] + MOV DWORD PTR [EBP-32], EAX + MOVZX EAX,WORD PTR [EBP-42] + MOVZX ECX,WORD PTR [EBP-44] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_321 + MOV EAX,1 + MOV DWORD PTR [EBP-4], EAX +L_321: + MOVZX EAX,WORD PTR [EBP-42] + AND EAX,EAX + JNZ L_322 + MOV EAX,211 + MOV DWORD PTR [EBP-4], EAX +L_322: + MOVZX EAX,WORD PTR [EBP-42] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-47] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-12], EAX +L_319: + JMP L_312 +L_313: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-28] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] +L_307: + MOV ESP,EBP + POP EBP + RETN 24 +_WriteBlockM: + PUSH EBP + MOV EBP,ESP + SUB ESP,61 + PUSH DWORD PTR [EBP+24] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_323 + MOV EAX,DWORD PTR [EBP-4] + JMP L_324 +L_323: + MOV EAX,DWORD PTR [EBP+16] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-44], EAX + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV ECX,512 + MUL ECX + MOV DWORD PTR [EBP+12], EAX + MOV EAX,DWORD PTR [EBP-20] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JNZ L_325 + MOV EAX,205 + JMP L_324 +L_325: + MOV EAX,DWORD PTR [EBP-20] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-20] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_326 + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] +L_326: + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + ADD EAX,DWORD PTR [EBP-44] + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,DWORD PTR [EBP-8] + SETA AL + AND AL,AL + JZ L_327 + MOV EAX,217 + JMP L_324 +L_327: + MOV EAX,DWORD PTR [EBP-20] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + MOV BYTE PTR [EBP-61], AL + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-61] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-28] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [EBP-24], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-61] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_328 + MOV EAX,65528 + MOV WORD PTR [EBP-60], AX + JMP L_329 +L_328: + MOV EAX,4088 + MOV WORD PTR [EBP-60], AX +L_329: + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+12] + LEA EAX,WORD PTR [EBP-58] + PUSH EAX + LEA EAX,DWORD PTR [EBP-36] + PUSH EAX + CALL _GetAbsoluteClstr + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_330 + MOV EAX,DWORD PTR [EBP-4] + JMP L_324 +L_330: + MOVZX EAX,WORD PTR [EBP-58] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-61] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV ECX,DWORD PTR [EBP-28] + XOR EDX,EDX + DIV ECX + MOV EAX,EDX + ADD EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [EBP-52], EAX + MOV EAX,DWORD PTR [EBP+12] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV ECX,DWORD PTR [EBP-28] + XOR EDX,EDX + DIV ECX + MOV ECX,EDX + MOV EAX,DWORD PTR [EBP-28] + SUB EAX,ECX + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [EBP-48], EAX + MOV EAX,DWORD PTR [EBP-44] + MOV DWORD PTR [EBP-56], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-32], EAX +L_331: + MOV EAX,DWORD PTR [EBP-44] + AND EAX,EAX + JZ L_333 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_333: + JZ L_332 + MOV EAX,DWORD PTR [EBP-44] + CMP EAX,DWORD PTR [EBP-40] + SETA AL + AND AL,AL + JZ L_334 + MOV EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [EBP-12], EAX + JMP L_335 +L_334: + MOV EAX,DWORD PTR [EBP-44] + MOV DWORD PTR [EBP-12], EAX +L_335: + MOV EAX,DWORD PTR [EBP+24] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [EBP-58] + MOV WORD PTR [ESI+24], AX + MOV EAX,DWORD PTR [EBP+24] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-36] + MOV DWORD PTR [ESI+20], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-61] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + PUSH DWORD PTR [EBP-16] + PUSH DWORD PTR [EBP-12] + PUSH DWORD PTR [EBP+20] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_336 + JMP L_332 +L_336: + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,512 + MUL ECX + ADD EAX,DWORD PTR [EBP+20] + MOV DWORD PTR [EBP+20], EAX + MOV EAX,DWORD PTR [EBP-32] + ADD EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP-44] + SUB EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-44], EAX + MOV EAX,DWORD PTR [EBP-40] + SUB EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP-44] + AND EAX,EAX + JZ L_337 + MOV EAX,DWORD PTR [EBP-40] + AND EAX,EAX + SETZ AL + AND AL,AL +L_337: + JZ L_338 + MOV EAX,DWORD PTR [EBP-28] + MOV DWORD PTR [EBP-40], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-61] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-58] + PUSH EAX + LEA EAX,WORD PTR [EBP-58] + PUSH EAX + CALL _NextFATClstr + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_339 + MOV EAX,DWORD PTR [EBP-4] + JMP L_324 +L_339: + MOV EAX,DWORD PTR [EBP-36] + ADD EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [EBP-36], EAX + MOVZX EAX,WORD PTR [EBP-58] + MOVZX ECX,WORD PTR [EBP-60] + CMP EAX,ECX + SETAE AL + AND AL,AL + JZ L_340 + MOV EAX,DWORD PTR [EBP-44] +L_340: + AND EAX,EAX + JZ L_341 + MOV EAX,217 + MOV DWORD PTR [EBP-4], EAX +L_341: + MOVZX EAX,WORD PTR [EBP-58] + AND EAX,EAX + JNZ L_342 + MOV EAX,211 + MOV DWORD PTR [EBP-4], EAX +L_342: + MOVZX EAX,WORD PTR [EBP-58] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-61] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-16], EAX +L_338: + JMP L_331 +L_332: + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-32] + MOV ECX,512 + MUL ECX + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] +L_324: + MOV ESP,EBP + POP EBP + RETN 20 +_FillStreamBuff: + PUSH EBP + MOV EBP,ESP + SUB ESP,32 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+16] + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+2] + MOV DWORD PTR [EBP-24], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+8] + AND EAX,EAX + JZ L_343 + PUSH DWORD PTR [EBP+12] + PUSH DWORD PTR [EBP-32] + PUSH DWORD PTR [EBP-28] + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 1 + CALL _ReadBlockM + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV DWORD PTR [ESI+16], EAX + JMP L_344 +L_343: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [EBP-20] + SETAE AL + AND AL,AL + JZ L_345 + MOV EAX,DWORD PTR [EBP-20] + ADD EAX,DWORD PTR [EBP-28] + CMP EAX,DWORD PTR [EBP-16] + SETA AL + AND AL,AL +L_345: + JZ L_346 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + JMP L_347 +L_346: + MOV EAX,DWORD PTR [EBP-16] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV ECX,512 + MUL ECX + MOV DWORD PTR [EBP-12], EAX + PUSH DWORD PTR [EBP+12] + PUSH DWORD PTR [EBP-32] + PUSH DWORD PTR [EBP-28] + PUSH DWORD PTR [EBP-12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + PUSH 1 + CALL _ReadBlockM + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [ESI+16], EAX +L_347: +L_344: + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,1 + SETE AL + AND AL,AL + JZ L_348 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX +L_348: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 8 +_ReadBytesM: + PUSH EBP + MOV EBP,ESP + SUB ESP,40 + PUSH DWORD PTR [EBP+20] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_350 + MOV EAX,DWORD PTR [EBP-4] + JMP L_351 +L_350: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JNZ L_352 + MOV EAX,215 + JMP L_351 +L_352: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [EBP-20] + SETAE AL + AND AL,AL + JZ L_353 + MOV ESI,DWORD PTR [EBP+8] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + MOV EAX,1 + JMP L_351 +L_353: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBP-12], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-24], EAX +L_354: + MOV EAX,DWORD PTR [EBP-24] + CMP EAX,DWORD PTR [EBP+12] + SETB AL + AND AL,AL + JZ L_356 + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [EBP-20] + SETB AL + AND AL,AL + JZ L_357 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_357: +L_356: + JZ L_355 + PUSH DWORD PTR [EBP+20] + XOR EAX,EAX + PUSH EAX + CALL _FillStreamBuff + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+16] + ADD EAX,DWORD PTR [EBP-12] + SUB EAX,1 + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-28] + CMP EAX,DWORD PTR [EBP-20] + SETA AL + AND AL,AL + JZ L_358 + MOV EAX,DWORD PTR [EBP-20] + SUB EAX,1 + MOV DWORD PTR [EBP-28], EAX +L_358: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + SUB EAX,DWORD PTR [ESI+16] + ADD EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [EBP-36], EAX + MOV EAX,DWORD PTR [EBP-28] + SUB EAX,DWORD PTR [EBP-16] + ADD EAX,1 + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP+12] + SUB EAX,DWORD PTR [EBP-24] + CMP EAX,DWORD PTR [EBP-32] + SETB AL + AND AL,AL + JZ L_359 + MOV EAX,DWORD PTR [EBP+12] + SUB EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [EBP-32], EAX +L_359: + PUSH DWORD PTR [EBP-36] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-32] + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP+16] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP+16], EAX + MOV EAX,DWORD PTR [EBP-24] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-16] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [ESI+4], EAX + JMP L_354 +L_355: + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_360 + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [EBP-20] + SETE AL + AND AL,AL + JZ L_361 + MOV EAX,1 + MOV DWORD PTR [EBP-4], EAX +L_361: +L_360: + MOV EAX,DWORD PTR [EBP-4] +L_351: + MOV ESP,EBP + POP EBP + RETN 16 +_FlushStreamBuff: + PUSH EBP + MOV EBP,ESP + SUB ESP,32 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+26] + AND EAX,EAX + JZ L_362 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+16] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+2] + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-28] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-24] + SUB EAX,DWORD PTR [EBP-16] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-24] + SUB EAX,DWORD PTR [EBP-16] + MOV ECX,512 + XOR EDX,EDX + DIV ECX + MOV EAX,EDX + AND EAX,EAX + JZ L_363 + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] +L_363: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,DWORD PTR [EBP-8] + SETB AL + AND AL,AL + JZ L_364 + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-8], EAX +L_364: + PUSH DWORD PTR [EBP+8] + PUSH DWORD PTR [EBP-32] + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,512 + MUL ECX + PUSH EAX + PUSH DWORD PTR [EBP-16] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _WriteBlockM + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV BYTE PTR [ESI+26], AL +L_362: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 4 +_WriteBytesM: + PUSH EBP + MOV EBP,ESP + SUB ESP,40 + PUSH DWORD PTR [EBP+20] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_366 + MOV EAX,DWORD PTR [EBP-4] + JMP L_367 +L_366: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JNZ L_368 + MOV EAX,215 + JMP L_367 +L_368: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JNZ L_369 + MOV EAX,205 + JMP L_367 +L_369: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+8] + MOV DWORD PTR [EBP-40], EAX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+12] + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-16] + ADD EAX,DWORD PTR [EBP+12] + CMP EAX,DWORD PTR [EBP-20] + SETA AL + AND AL,AL + JZ L_370 + PUSH DWORD PTR [EBP+20] + MOV EAX,DWORD PTR [EBP-16] + ADD EAX,DWORD PTR [EBP+12] + PUSH EAX + CALL _SetFileSizeM + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_371 + MOV EAX,DWORD PTR [EBP-4] + JMP L_367 +L_371: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBP-20], EAX +L_370: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+16] + ADD EAX,DWORD PTR [EBP-12] + SUB EAX,1 + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-28] + CMP EAX,DWORD PTR [EBP-20] + SETA AL + AND AL,AL + JZ L_372 + MOV EAX,DWORD PTR [EBP-20] + SUB EAX,1 + MOV DWORD PTR [EBP-28], EAX +L_372: + XOR EAX,EAX + MOV DWORD PTR [EBP-24], EAX +L_373: + MOV EAX,DWORD PTR [EBP-24] + CMP EAX,DWORD PTR [EBP+12] + SETB AL + AND AL,AL + JZ L_375 + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [EBP-20] + SETB AL + AND AL,AL + JZ L_376 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_376: +L_375: + JZ L_374 + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [EBP-28] + SETA AL + AND AL,AL + JNZ L_377 + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,DWORD PTR [ESI+16] + SETB AL + AND AL,AL +L_377: + JZ L_378 + PUSH DWORD PTR [EBP+20] + CALL _FlushStreamBuff + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_379 + MOV EAX,DWORD PTR [EBP-4] + JMP L_367 +L_379: + PUSH DWORD PTR [EBP+20] + XOR EAX,EAX + PUSH EAX + CALL _FillStreamBuff + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_380 + MOV EAX,DWORD PTR [EBP-4] + JMP L_367 +L_380: +L_378: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+16] + ADD EAX,DWORD PTR [EBP-12] + SUB EAX,1 + MOV DWORD PTR [EBP-28], EAX + MOV EAX,DWORD PTR [EBP-28] + CMP EAX,DWORD PTR [EBP-20] + SETA AL + AND AL,AL + JZ L_381 + MOV EAX,DWORD PTR [EBP-20] + SUB EAX,1 + MOV DWORD PTR [EBP-28], EAX +L_381: + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + SUB EAX,DWORD PTR [ESI+16] + ADD EAX,DWORD PTR [EBP-40] + MOV DWORD PTR [EBP-36], EAX + MOV EAX,DWORD PTR [EBP-28] + ADD EAX,1 + SUB EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [EBP-32], EAX + MOV EAX,DWORD PTR [EBP+12] + SUB EAX,DWORD PTR [EBP-24] + CMP EAX,DWORD PTR [EBP-32] + SETB AL + AND AL,AL + JZ L_382 + MOV EAX,DWORD PTR [EBP+12] + SUB EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [EBP-32], EAX +L_382: + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-36] + PUSH DWORD PTR [EBP-32] + CALL FWORD PTR _CopyData + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,1 + MOV BYTE PTR [ESI+26], AL + MOV EAX,DWORD PTR [EBP+16] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP+16], EAX + MOV EAX,DWORD PTR [EBP-24] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-16] + ADD EAX,DWORD PTR [EBP-32] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP+20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [ESI+4], EAX + JMP L_373 +L_374: + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-4] +L_367: + MOV ESP,EBP + POP EBP + RETN 16 +_GetFileSizeM: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + PUSH DWORD PTR [EBP+12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_383 + MOV EAX,DWORD PTR [EBP-4] + JMP L_384 +L_383: + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV EBX,ESI + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBX], EAX + XOR EAX,EAX +L_384: + MOV ESP,EBP + POP EBP + RETN 8 +_SetFileLFAM: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + PUSH DWORD PTR [EBP+12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_385 + MOV EAX,DWORD PTR [EBP-4] + JMP L_386 +L_385: + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JNZ L_387 + MOV EAX,215 + JMP L_386 +L_387: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JZ L_388 + PUSH DWORD PTR [EBP+12] + CALL _FlushStreamBuff + MOV DWORD PTR [EBP-4], EAX +L_388: + MOV EAX,DWORD PTR [EBP+8] + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_389 + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+28] + MOV DWORD PTR [EBP+8], EAX +L_389: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + CMP EAX,DWORD PTR [ESI+28] + SETA AL + AND AL,AL + JZ L_390 + MOV EAX,217 + MOV DWORD PTR [EBP-4], EAX +L_390: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_391 + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + MOV DWORD PTR [ESI+4], EAX + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + CALL _FillStreamBuff + MOV DWORD PTR [EBP-4], EAX +L_391: + MOV EAX,DWORD PTR [EBP-4] +L_386: + MOV ESP,EBP + POP EBP + RETN 8 +_GetFileLFAM: + PUSH EBP + MOV EBP,ESP + SUB ESP,8 + PUSH DWORD PTR [EBP+12] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_392 + MOV EAX,DWORD PTR [EBP-4] + JMP L_393 +L_392: + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JNZ L_394 + MOV EAX,215 + JMP L_393 +L_394: + MOV ESI,DWORD PTR [EBP+8] + MOV EAX,DWORD PTR [EBP+12] + SHL EAX,5 + MOV EBX,ESI + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] + MOV DWORD PTR [EBX], EAX + MOV EAX,DWORD PTR [EBP-4] +L_393: + MOV ESP,EBP + POP EBP + RETN 8 +_OpenFileM: + PUSH EBP + MOV EBP,ESP + SUB ESP,36 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + CMP EAX,1 + SETA AL + AND AL,AL + JZ L_395 + MOV EAX,207 + JMP L_396 +L_395: + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP+24] + AND EAX,EAX + JZ L_397 + MOV ESI,DWORD PTR [EBP+28] + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,32 + SETE AL + AND AL,AL +L_397: + JNZ L_398 + MOV EAX,DWORD PTR [EBP+24] + AND EAX,EAX + SETZ AL + AND AL,AL +L_398: + JZ L_399 + MOV EAX,200 + JMP L_396 +L_399: + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+8] + CALL _ParseName + MOV DWORD PTR [EBP-4], EAX + XOR EAX,EAX + MOV AL,_FDrive + CMP EAX,64 + SETA AL + AND AL,AL + JZ L_400 + XOR EAX,EAX + MOV AL,_FDrive + CMP EAX,82 + SETB AL + AND AL,AL +L_400: + JZ L_401 + XOR EAX,EAX + MOV AL,_FDrive + MOV ECX,65 + SUB EAX,ECX + MOV BYTE PTR [EBP-36], AL + JMP L_402 +L_401: + MOV EAX,201 + MOV DWORD PTR [EBP-4], EAX +L_402: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + CMP EAX,255 + SETE AL + AND AL,AL + JZ L_403 + MOV EAX,201 + MOV DWORD PTR [EBP-4], EAX +L_403: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + CMP EAX,2 + SETB AL + AND AL,AL + JZ L_404 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_404: + JZ L_405 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + PUSH EAX + CALL _StatFloppy + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + PUSH EAX + CALL _read_BS + MOV DWORD PTR [EBP-4], EAX +L_405: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_406 + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,11 + MUL ECX + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + PUSH ESI + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + PUSH EAX + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + LEA EAX,DWORD PTR [EBP-28] + PUSH EAX + PUSH OFFSET _pDirEnt + CALL _GetRootEnt + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,203 + SETE AL + AND AL,AL + JZ L_407 + MOV EAX,DWORD PTR [EBP-8] + XOR ECX,ECX + MOV CL,_SpecDepth + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_408 + MOV EAX,203 + MOV DWORD PTR [EBP-4], EAX + JMP L_409 +L_408: + MOV EAX,204 + MOV DWORD PTR [EBP-4], EAX +L_409: +L_407: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_410 + MOV EAX,DWORD PTR [EBP-4] + JMP L_396 +L_410: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_411 + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBP-30], AX +L_411: +L_412: + MOV EAX,DWORD PTR [EBP-8] + XOR ECX,ECX + MOV CL,_SpecDepth + CMP EAX,ECX + SETB AL + AND AL,AL + JZ L_414 + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + SETZ AL + AND AL,AL +L_414: + JZ L_413 + INC DWORD PTR [EBP-8] + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,11 + MUL ECX + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + PUSH ESI + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-30] + PUSH EAX + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + LEA EAX,DWORD PTR [EBP-28] + PUSH EAX + PUSH OFFSET _pDirEnt + CALL _GetDirEnt + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,203 + SETE AL + AND AL,AL + JZ L_415 + MOV EAX,DWORD PTR [EBP-8] + XOR ECX,ECX + MOV CL,_SpecDepth + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_416 + MOV EAX,203 + MOV DWORD PTR [EBP-4], EAX + JMP L_417 +L_416: + MOV EAX,204 + MOV DWORD PTR [EBP-4], EAX +L_417: + JMP L_418 +L_415: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_419 + MOV EAX,DWORD PTR [EBP-4] + JMP L_396 +L_419: + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBP-30], AX +L_420: +L_418: + JMP L_412 +L_413: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_421 + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+11] + MOV ECX,24 + AND EAX,ECX + JZ L_422 + MOV EAX,202 + JMP L_396 +L_422: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + AND EAX,EAX + JZ L_423 + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+11] + MOV ECX,1 + AND EAX,ECX +L_423: + JZ L_424 + MOV EAX,205 + JMP L_396 +L_424: + XOR EAX,EAX + MOV BYTE PTR [EBP-31], AL + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX +L_425: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,128 + SETB AL + AND AL,AL + JZ L_427 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-31] + AND EAX,EAX + SETZ AL + AND AL,AL +L_427: + JZ L_426 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + AND EAX,EAX + JZ L_428 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + XOR ECX,ECX + MOV CL,BYTE PTR [EBP-36] + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_429 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [EBX+26] + MOVZX ECX,WORD PTR [ESI+26] + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_430 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + PUSH ESI + XOR EAX,EAX + MOV AL,_SpecDepth + MOV ECX,11 + MUL ECX + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + PUSH ESI + PUSH 11 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL +L_430: +L_429: +L_428: + JZ L_431 + MOV EAX,1 + MOV BYTE PTR [EBP-31], AL + JMP L_432 +L_431: + INC DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP-12] +L_432: + JMP L_425 +L_426: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-31] + AND EAX,EAX + JZ L_433 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JZ L_434 + MOV EAX,208 + JMP L_396 +L_434: + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,ESI + MOV _pFCB, EAX + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + INC BYTE PTR [ESI+40] +L_435: + JMP L_436 +L_433: + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX +L_437: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,128 + SETB AL + AND AL,AL + JZ L_439 + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] +L_439: + AND EAX,EAX + JZ L_438 + INC DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP-12] + JMP L_437 +L_438: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,128 + SETE AL + AND AL,AL + JZ L_440 + MOV EAX,206 + JMP L_396 +L_440: + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-12] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,ESI + MOV _pFCB, EAX + PUSH _pDirEnt + PUSH _pFCB + PUSH 32 + CALL FWORD PTR _CopyData + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-36] + MOV BYTE PTR [ESI+38], AL + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + INC BYTE PTR [ESI+40] + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+20] + MOV BYTE PTR [ESI+39], AL + MOV ESI,_pFCB + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [ESI+32], EAX + MOV ESI,_pFCB + MOV EAX,DWORD PTR [EBP-28] + MOV WORD PTR [ESI+36], AX +L_436: + MOV EAX,4 + MOV DWORD PTR [EBP-12], EAX +L_441: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,128 + SETB AL + AND AL,AL + JZ L_443 + MOV EAX,DWORD PTR [EBP-12] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI] +L_443: + AND EAX,EAX + JZ L_442 + INC DWORD PTR [EBP-12] + MOV EAX,DWORD PTR [EBP-12] + JMP L_441 +L_442: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,128 + SETE AL + AND AL,AL + JZ L_444 + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + DEC BYTE PTR [ESI+40] + MOV EAX,209 + JMP L_396 +L_444: + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP+8] + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + MOV WORD PTR [ESI+2], AX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV DWORD PTR [ESI+4], EAX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV BYTE PTR [ESI+26], AL + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + MOV BYTE PTR [ESI+27], AL + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBX+24], AX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV DWORD PTR [ESI+20], EAX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV DWORD PTR [ESI+16], EAX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV DWORD PTR [ESI+12], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP+16] + AND EAX,EAX + JZ L_445 + PUSH 1 + LEA EAX,DWORD PTR [EBP-35] + PUSH EAX + CALL FWORD PTR _AllocOSPage + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_446 + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + DEC BYTE PTR [ESI+40] + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV WORD PTR [ESI], AX + MOV EAX,DWORD PTR [EBP-4] + JMP L_396 +L_446: + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-35] + MOV DWORD PTR [ESI+8], EAX + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EAX,4096 + MOV DWORD PTR [ESI+12], EAX + PUSH DWORD PTR [EBP-20] + PUSH 1 + CALL _FillStreamBuff + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_447 + MOV ESI,_pFCB + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + DEC BYTE PTR [ESI+40] + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV WORD PTR [ESI], AX + PUSH DWORD PTR [EBP-35] + PUSH 1 + CALL FWORD PTR _DeAllocPage + MOV EAX,DWORD PTR [EBP-4] + JMP L_396 +L_447: +L_445: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-20] + MOV DWORD PTR [ESI], EAX +L_421: +L_406: + MOV EAX,DWORD PTR [EBP-4] +L_396: + MOV ESP,EBP + POP EBP + RETN 24 +_CloseFileM: + PUSH EBP + MOV EBP,ESP + SUB ESP,12 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_448 + MOV EAX,DWORD PTR [EBP-4] + JMP L_449 +L_448: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JZ L_450 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JZ L_451 + PUSH DWORD PTR [EBP+8] + CALL _FlushStreamBuff + MOV DWORD PTR [EBP-4], EAX +L_451: + PUSH DWORD PTR [EBP-8] + CALL _UpdateDirEnt +L_450: + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JZ L_452 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + PUSH DWORD PTR [ESI+8] + PUSH 1 + CALL FWORD PTR _DeAllocPage +L_452: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + AND EAX,EAX + JNZ L_453 + MOV EAX,213 + MOV DWORD PTR [EBP-4], EAX + JMP L_454 +L_453: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + DEC BYTE PTR [ESI+40] +L_454: + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV WORD PTR [ESI], AX + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX +L_455: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,17 + SETB AL + AND AL,AL + JZ L_456 + JMP SHORT L_457 +L_458: + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + JMP SHORT L_455 +L_457: + PUSH DWORD PTR [EBP-12] + CALL _UpdateFAT + JMP L_458 +L_456: + MOV EAX,DWORD PTR [EBP-4] +L_449: + MOV ESP,EBP + POP EBP + RETN 4 +_CreateFileM: + PUSH EBP + MOV EBP,ESP + SUB ESP,125 + MOV EAX,DWORD PTR [EBP+12] + AND EAX,16 + JZ L_459 + MOV EAX,1 + MOV BYTE PTR [EBP-125], AL + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX + JMP L_460 +L_459: + XOR EAX,EAX + MOV BYTE PTR [EBP-125], AL +L_460: + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + PUSH DWORD PTR [EBP+8] + CALL _OpenFileM + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + JMP L_462 +L_463: + PUSH DWORD PTR [EBP-4] + CALL _CloseFileM + MOV EAX,226 + MOV DWORD PTR [EBP-20], EAX + JMP L_461 +L_464: + MOV EAX,226 + MOV DWORD PTR [EBP-20], EAX + JMP L_461 +L_465: + JMP L_461 +L_466: + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + LEA EAX,DWORD PTR [EBP-98] + PUSH EAX + LEA EAX,DWORD PTR [EBP-102] + PUSH EAX + PUSH DWORD PTR [EBP+8] + CALL _BuildSpec + LEA EAX,DWORD PTR [EBP-98] + PUSH EAX + PUSH DWORD PTR [EBP-102] + PUSH DWORD PTR [EBP+8] + CALL _ParseName + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_467 + MOV EAX,DWORD PTR [EBP-20] + JMP L_468 +L_467: + XOR EAX,EAX + MOV AL,_FDrive + MOV ECX,65 + SUB EAX,ECX + MOV BYTE PTR [EBP-124], AL + XOR EAX,EAX + MOV AL,_SpecDepth + MOV ECX,11 + MUL ECX + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + PUSH ESI + LEA EAX,DWORD PTR [EBP-114] + PUSH EAX + PUSH 11 + CALL FWORD PTR _CopyData + MOV EAX,11 + LEA ESI,BYTE PTR [EBP-114] + ADD ESI,EAX + XOR EAX,EAX + MOV BYTE PTR [ESI], AL +L_469: + MOV EAX,DWORD PTR [EBP-102] + AND EAX,EAX + JZ L_471 + MOV EAX,DWORD PTR [EBP-102] + SUB EAX,1 + LEA ESI,BYTE PTR [EBP-98] + ADD ESI,EAX + MOVSX EAX,BYTE PTR [ESI] + CMP EAX,92 + SETNE AL + AND AL,AL +L_471: + JZ L_470 + MOV EAX,DWORD PTR [EBP-102] + DEC DWORD PTR [EBP-102] + JMP L_469 +L_470: + XOR EAX,EAX + MOV BYTE PTR [EBP-123], AL + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_472: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-123] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_474 + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + SETZ AL + AND AL,AL +L_474: + JZ L_473 + LEA EAX,DWORD PTR [EBP-98] + PUSH EAX + PUSH DWORD PTR [EBP-102] + PUSH OFFSET _abTmpSector + PUSH 512 + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + PUSH EAX + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + LEA EAX,WORD PTR [EBP-122] + PUSH EAX + PUSH DWORD PTR [EBP+8] + CALL _GetDirSectorM + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_475 + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX + MOV EAX,OFFSET _abTmpSector + MOV _pDirEnt, EAX +L_476: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,16 + SETB AL + AND AL,AL + JZ L_477 + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + CMP EAX,229 + SETE AL + AND AL,AL + JNZ L_478 + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV AL,BYTE PTR [ESI] + AND EAX,EAX + SETZ AL + AND AL,AL +L_478: + JZ L_479 + MOV EAX,1 + MOV BYTE PTR [EBP-123], AL + JMP L_477 +L_479: + MOV EAX,_pDirEnt + ADD EAX,32 + MOV _pDirEnt, EAX + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] + JMP L_476 +L_477: +L_475: + JMP L_472 +L_473: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,224 + SETE AL + AND AL,AL + JZ L_480 + XOR EAX,EAX + MOV AL,_SpecDepth + AND EAX,EAX + SETZ AL + AND AL,AL +L_480: + JZ L_481 + MOV EAX,228 + JMP L_468 +L_481: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,1 + SETE AL + AND AL,AL + JZ L_483 + PUSH OFFSET _abTmpSector + PUSH 512 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-28], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-122] + PUSH EAX + LEA EAX,WORD PTR [EBP-122] + PUSH EAX + CALL _ExtendClstrChain + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_484 + MOV EAX,DWORD PTR [EBP-20] + JMP L_468 +L_484: + MOVZX EAX,WORD PTR [EBP-122] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-28] + MOV DWORD PTR [EBP-8], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX +L_485: + MOV EAX,DWORD PTR [EBP-8] + DEC DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_487 + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + SETZ AL + AND AL,AL +L_487: + JZ L_486 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH OFFSET _abTmpSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + JMP L_485 +L_486: + MOV EAX,OFFSET _abTmpSector + MOV _pDirEnt, EAX + MOV EAX,1 + MOV BYTE PTR [EBP-123], AL +L_483: +L_482: + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_488 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-123] +L_488: + AND EAX,EAX + JZ L_489 + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX + XOR EAX,EAX + MOV WORD PTR [EBP-116], AX +L_490: + MOV EAX,DWORD PTR [EBP-16] + CMP EAX,17 + SETB AL + AND AL,AL + JZ L_492 + MOVZX EAX,WORD PTR [EBP-116] + AND EAX,EAX + SETZ AL + AND AL,AL +L_492: + JZ L_491 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + XOR ECX,ECX + MOV CL,BYTE PTR [ESI+14] + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_493 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI+4] +L_493: + AND EAX,EAX + JZ L_494 + MOV EAX,DWORD PTR [EBP-16] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+12] + MOV WORD PTR [EBP-116], AX +L_494: + MOV EAX,DWORD PTR [EBP-16] + INC DWORD PTR [EBP-16] + JMP L_490 +L_491: + MOVZX EAX,WORD PTR [EBP-116] + AND EAX,EAX + JNZ L_495 + MOV EAX,2 + MOV WORD PTR [EBP-116], AX +L_495: + MOVZX EAX,WORD PTR [EBP-116] + MOV WORD PTR [EBP-120], AX + XOR EAX,EAX + MOV BYTE PTR [EBP-123], AL +L_496: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-123] + AND EAX,EAX + JNZ L_497 + INC WORD PTR [EBP-116] + MOVZX EAX,WORD PTR [EBP-116] + MOVZX EAX,WORD PTR [EBP-116] + MOVZX ECX,WORD PTR [EBP-120] + CMP EAX,ECX + SETE AL + AND AL,AL + JZ L_498 + MOV EAX,230 + JMP L_468 +L_498: + MOVZX EAX,WORD PTR [EBP-116] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,WORD PTR [EBP-118] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL _GetClstrValue + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + SETZ AL + AND AL,AL + JZ L_499 + MOVZX EAX,WORD PTR [EBP-118] + AND EAX,EAX + SETZ AL + AND AL,AL +L_499: + JZ L_500 + MOV EAX,1 + MOV BYTE PTR [EBP-123], AL + JMP L_501 +L_500: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,220 + SETE AL + AND AL,AL + JZ L_502 + MOVZX EAX,WORD PTR [EBP-120] + CMP EAX,2 + SETA AL + AND AL,AL + JZ L_503 + MOV EAX,2 + MOV WORD PTR [EBP-116], AX + JMP L_504 +L_503: + MOV EAX,230 + JMP L_468 +L_504: + JMP L_505 +L_502: + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JZ L_506 + MOV EAX,DWORD PTR [EBP-20] + JMP L_468 +L_506: +L_505: +L_501: + JMP L_496 +L_497: + LEA EAX,DWORD PTR [EBP-114] + PUSH EAX + PUSH _pDirEnt + PUSH 11 + CALL FWORD PTR _CopyData + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-125] + AND EAX,EAX + JNZ L_507 + MOV ESI,_pDirEnt + MOV EAX,DWORD PTR [EBP+12] + AND EAX,39 + MOV BYTE PTR [ESI+11], AL + JMP L_508 +L_507: + MOV ESI,_pDirEnt + MOV EAX,DWORD PTR [EBP+12] + MOV BYTE PTR [ESI+11], AL +L_508: + MOV EAX,_pDirEnt + ADD EAX,22 + PUSH EAX + MOV EAX,_pDirEnt + ADD EAX,24 + PUSH EAX + CALL _GetFATTime + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [EBP-116] + MOV WORD PTR [ESI+26], AX + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV DWORD PTR [ESI+28], EAX + MOVZX EAX,WORD PTR [EBP-116] + PUSH EAX + PUSH 65535 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + PUSH EAX + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _SetClstrValue + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + JNZ L_509 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + PUSH DWORD PTR [EBP-24] + PUSH 1 + PUSH OFFSET _abTmpSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX +L_509: + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-125] + AND EAX,EAX + JZ L_510 + PUSH OFFSET _abTmpSector + PUSH 512 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + MOV EAX,OFFSET _abTmpSector + MOV _pDirEnt, EAX + PUSH OFFSET L_lit+9 + PUSH _pDirEnt + PUSH 11 + CALL FWORD PTR _CopyData + MOV ESI,_pDirEnt + MOV EAX,16 + MOV BYTE PTR [ESI+11], AL + MOV EAX,_pDirEnt + ADD EAX,22 + PUSH EAX + MOV EAX,_pDirEnt + ADD EAX,24 + PUSH EAX + CALL _GetFATTime + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [EBP-116] + MOV WORD PTR [ESI+26], AX + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV DWORD PTR [ESI+28], EAX + MOV EAX,_pDirEnt + ADD EAX,32 + MOV _pDirEnt, EAX + PUSH OFFSET L_lit+21 + PUSH _pDirEnt + PUSH 11 + CALL FWORD PTR _CopyData + MOV ESI,_pDirEnt + MOV EAX,16 + MOV BYTE PTR [ESI+11], AL + MOV EAX,_pDirEnt + ADD EAX,22 + PUSH EAX + MOV EAX,_pDirEnt + ADD EAX,24 + PUSH EAX + CALL _GetFATTime + MOV ESI,_pDirEnt + MOVZX EAX,WORD PTR [EBP-122] + MOV WORD PTR [ESI+26], AX + MOV ESI,_pDirEnt + XOR EAX,EAX + MOV DWORD PTR [ESI+28], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + MOV DWORD PTR [EBP-28], EAX + MOVZX EAX,WORD PTR [EBP-116] + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + PUSH EAX + CALL _ClsToLBA + MOV DWORD PTR [EBP-24], EAX + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [EBP-12], EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH OFFSET _abTmpSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + PUSH OFFSET _abTmpSector + PUSH 512 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData + XOR EAX,EAX + MOV DWORD PTR [EBP-20], EAX + MOV EAX,DWORD PTR [EBP-28] + SUB EAX,1 + MOV DWORD PTR [EBP-8], EAX +L_511: + MOV EAX,DWORD PTR [EBP-8] + DEC DWORD PTR [EBP-8] + AND EAX,EAX + JZ L_513 + MOV EAX,DWORD PTR [EBP-20] + AND EAX,EAX + SETZ AL + AND AL,AL +L_513: + JZ L_512 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-124] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH 2 + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH OFFSET _abTmpSector + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-20], EAX + JMP L_511 +L_512: +L_510: + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_514: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,17 + SETB AL + AND AL,AL + JZ L_515 + JMP SHORT L_516 +L_517: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_514 +L_516: + PUSH DWORD PTR [EBP-8] + CALL _UpdateFAT + JMP L_517 +L_515: + MOV EAX,DWORD PTR [EBP-20] + JMP L_468 +L_489: + MOV EAX,DWORD PTR [EBP-20] + JMP L_468 +L_518: +L_519: + JMP L_461 +L_462: + CMP EAX,203 + JE L_466 + CMP EAX,202 + JE L_465 + CMP EAX,208 + JE L_464 + CMP EAX,0 + JE L_463 + JMP L_519 +L_461: + MOV EAX,DWORD PTR [EBP-20] +L_468: + MOV ESP,EBP + POP EBP + RETN 16 +_DeleteFileM: + PUSH EBP + MOV EBP,ESP + SUB ESP,15 + PUSH DWORD PTR [EBP+8] + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL _ValidateHandle + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_520 + MOV EAX,DWORD PTR [EBP-4] + JMP L_521 +L_520: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+38] + MOV BYTE PTR [EBP-15], AL + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+39] + AND EAX,EAX + JNZ L_522 + PUSH DWORD PTR [EBP+8] + CALL _CloseFileM + MOV EAX,205 + JMP L_521 +L_522: + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+27] + AND EAX,EAX + JZ L_523 + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + PUSH DWORD PTR [ESI+8] + PUSH 1 + CALL FWORD PTR _DeAllocPage +L_523: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+26] + MOV WORD PTR [EBP-14], AX + MOVZX EAX,WORD PTR [EBP-14] + AND EAX,EAX + JZ L_524 + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-15] + PUSH EAX + MOVZX EAX,WORD PTR [EBP-14] + PUSH EAX + CALL _TruncClstrChain + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_525 + MOVZX EAX,WORD PTR [EBP-14] + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + MOV AL,BYTE PTR [EBP-15] + PUSH EAX + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + CALL _SetClstrValue + MOV DWORD PTR [EBP-4], EAX +L_525: +L_524: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + MOV EAX,229 + MOV BYTE PTR [ESI], AL + PUSH DWORD PTR [EBP-8] + CALL _UpdateDirEnt + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + AND EAX,EAX + JNZ L_526 + MOV EAX,213 + MOV DWORD PTR [EBP-4], EAX + JMP L_527 +L_526: + MOV EAX,DWORD PTR [EBP-8] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+40] + DEC BYTE PTR [ESI+40] +L_527: + MOV EAX,DWORD PTR [EBP+8] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + XOR EAX,EAX + MOV WORD PTR [ESI], AX + XOR EAX,EAX + MOV DWORD PTR [EBP-12], EAX +L_528: + MOV EAX,DWORD PTR [EBP-12] + CMP EAX,17 + SETB AL + AND AL,AL + JZ L_529 + JMP SHORT L_530 +L_531: + MOV EAX,DWORD PTR [EBP-12] + INC DWORD PTR [EBP-12] + JMP SHORT L_528 +L_530: + PUSH DWORD PTR [EBP-12] + CALL _UpdateFAT + JMP L_531 +L_529: + MOV EAX,DWORD PTR [EBP-4] +L_521: + MOV ESP,EBP + POP EBP + RETN 4 +_RenameFileM: + PUSH EBP + MOV EBP,ESP + SUB ESP,16 + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+20] + PUSH 1 + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-4] + PUSH EAX + PUSH DWORD PTR [EBP+8] + CALL _OpenFileM + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JNZ L_532 + XOR EAX,EAX + MOV AL,_FDrive + MOV _FDrive1, AL + PUSH OFFSET _FileSpec + PUSH OFFSET _FileSpec1 + PUSH 77 + CALL FWORD PTR _CopyData + XOR EAX,EAX + MOV AL,_SpecDepth + MOV _SpecDepth1, AL + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + PUSH DWORD PTR [EBP+8] + CALL _ParseName + MOV DWORD PTR [EBP-8], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JNZ L_533 + XOR EAX,EAX + MOV AL,_FDrive1 + XOR ECX,ECX + MOV CL,_FDrive + CMP EAX,ECX + SETNE AL + AND AL,AL + JNZ L_534 + XOR EAX,EAX + MOV AL,_SpecDepth1 + XOR ECX,ECX + MOV CL,_SpecDepth + CMP EAX,ECX + SETNE AL + AND AL,AL +L_534: + JZ L_535 + MOV EAX,222 + MOV DWORD PTR [EBP-8], EAX +L_535: +L_533: + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JNZ L_536 + XOR EAX,EAX + MOV AL,_SpecDepth + AND EAX,EAX + JZ L_537 + PUSH OFFSET _FileSpec + PUSH OFFSET _FileSpec1 + XOR EAX,EAX + MOV AL,_SpecDepth + MOV ECX,11 + MUL ECX + PUSH EAX + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETNE AL + AND AL,AL + JZ L_538 + MOV EAX,223 + MOV DWORD PTR [EBP-8], EAX +L_538: +L_537: +L_536: + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JNZ L_539 + MOV EAX,DWORD PTR [EBP-4] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+2] + MOV DWORD PTR [EBP-16], EAX + XOR EAX,EAX + MOV AL,_SpecDepth + MOV ECX,11 + MUL ECX + MOV ESI,OFFSET _FileSpec + ADD ESI,EAX + PUSH ESI + MOV EAX,DWORD PTR [EBP-16] + MOV ECX,64 + MUL ECX + MOV ESI,_paFCB + ADD ESI,EAX + PUSH ESI + PUSH 11 + CALL FWORD PTR _CopyData + PUSH DWORD PTR [EBP-16] + CALL _UpdateDirEnt + MOV DWORD PTR [EBP-8], EAX +L_539: + PUSH DWORD PTR [EBP-4] + CALL _CloseFileM + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-8] + AND EAX,EAX + JNZ L_540 + MOV EAX,DWORD PTR [EBP-12] + MOV DWORD PTR [EBP-8], EAX +L_540: +L_532: + MOV EAX,DWORD PTR [EBP-8] + MOV ESP,EBP + POP EBP + RETN 20 +_CreateDirM: + PUSH EBP + MOV EBP,ESP + SUB ESP,4 + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + PUSH 16 + PUSH DWORD PTR [EBP+8] + CALL _CreateFileM + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN 12 +_DeleteDirM: + PUSH EBP + MOV EBP,ESP + XOR EAX,EAX + MOV DWORD PTR [EBP+20], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP+16], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP+12], EAX + XOR EAX,EAX + MOV DWORD PTR [EBP+8], EAX + POP EBP + RETN 16 +_FSysTask: + PUSH EBP + MOV EBP,ESP + SUB ESP,22 +L_543: + MOV EAX,1 + AND EAX,EAX + JZ L_544 + PUSH _FSysExch + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-16], EAX + MOV EAX,DWORD PTR [EBP-16] + AND EAX,EAX + JNZ L_545 + LEA ESI,DWORD PTR [EBP-8] + MOV EAX,DWORD PTR [ESI] + MOV _pRQB, EAX + MOV ESI,_pRQB + MOVSX EAX,WORD PTR [ESI+32] + JMP L_547 +L_548: + MOV EAX,4 + MOV DWORD PTR [EBP-20], EAX +L_549: + MOV EAX,DWORD PTR [EBP-20] + CMP EAX,128 + SETB AL + AND AL,AL + JZ L_550 + MOV EAX,DWORD PTR [EBP-20] + SHL EAX,5 + MOV ESI,_paFUB + ADD ESI,EAX + MOV EBX,ESI + MOV ESI,_pRQB + MOVZX EAX,WORD PTR [EBX] + CMP EAX,DWORD PTR [ESI+20] + SETE AL + AND AL,AL + JZ L_551 + PUSH DWORD PTR [EBP-20] + CALL _CloseFileM +L_551: + INC DWORD PTR [EBP-20] + MOV EAX,DWORD PTR [EBP-20] + JMP L_549 +L_550: + XOR EAX,EAX + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_552: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+24] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+8] + CALL _OpenFileM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_553: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + CALL _CloseFileM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_554: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+24] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + XOR EAX,EAX + PUSH EAX + CALL _ReadBlockM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_555: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+24] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + CALL _WriteBlockM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_556: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + CALL _ReadBytesM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_557: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + CALL _WriteBytesM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_558: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + CALL _GetFileLFAM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_559: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+24] + CALL _SetFileLFAM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_560: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + CALL _GetFileSizeM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_561: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+24] + CALL _SetFileSizeM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_562: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+8] + CALL _CreateFileM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_563: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+48] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+8] + CALL _RenameFileM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_564: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + CALL _DeleteFileM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_565: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+8] + CALL _CreateDirM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_566: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+8] + CALL _DeleteDirM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_567: + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+36] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+40] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+44] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+48] + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+20] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + LEA EAX,WORD PTR [EBP-22] + PUSH EAX + MOV ESI,_pRQB + PUSH DWORD PTR [ESI+8] + CALL _GetDirSectorM + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_568: + MOV EAX,32 + MOV DWORD PTR [EBP-16], EAX + JMP L_546 +L_547: + CMP EAX,16 + JE L_567 + CMP EAX,15 + JE L_566 + CMP EAX,14 + JE L_565 + CMP EAX,13 + JE L_564 + CMP EAX,12 + JE L_563 + CMP EAX,11 + JE L_562 + CMP EAX,10 + JE L_561 + CMP EAX,9 + JE L_560 + CMP EAX,8 + JE L_559 + CMP EAX,7 + JE L_558 + CMP EAX,6 + JE L_557 + CMP EAX,5 + JE L_556 + CMP EAX,4 + JE L_555 + CMP EAX,3 + JE L_554 + CMP EAX,2 + JE L_553 + CMP EAX,1 + JE L_552 + CMP EAX,0 + JE L_548 + JMP L_568 +L_546: + LEA ESI,DWORD PTR [EBP-8] + PUSH DWORD PTR [ESI] + PUSH DWORD PTR [EBP-16] + CALL FWORD PTR _Respond + MOV DWORD PTR [EBP-12], EAX +L_545: + JMP L_543 +L_544: + MOV ESP,EBP + POP EBP + RETN +PUBLIC __OpenFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_569 + PUSH DWORD PTR [EBP+28] + PUSH OFFSET L_lit+33 + PUSH 3 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_570 + MOV ESI,DWORD PTR [EBP+12] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_571 +L_570: + PUSH DWORD PTR [EBP+28] + PUSH OFFSET L_lit+37 + PUSH 3 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_573 + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,1 + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_571 +L_573: + PUSH DWORD PTR [EBP+28] + PUSH OFFSET L_lit+41 + PUSH 3 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_575 + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,2 + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_571 +L_575: + PUSH DWORD PTR [EBP+28] + PUSH OFFSET L_lit+45 + PUSH 3 + CALL FWORD PTR _CompareNCS + CMP EAX,-1 + SETE AL + AND AL,AL + JZ L_577 + PUSH 3 + PUSH 10 + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_578 + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,3 + MOV DWORD PTR [ESI], EAX +L_578: + MOV EAX,DWORD PTR [EBP-4] + JMP L_571 +L_577: +L_576: +L_574: +L_572: +L_569: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 1 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+12] + PUSH 4 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_579 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_579: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_580 + MOV EAX,DWORD PTR [EBP-4] + JMP L_571 +L_580: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-24] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_571: + MOV ESP,EBP + POP EBP + RETF 20 +PUBLIC __CloseFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,3 + SETB AL + AND AL,AL + JZ L_581 + XOR EAX,EAX + JMP L_582 +L_581: + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_584 + PUSH 3 + PUSH 11 + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + JMP L_582 +L_584: +L_583: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 2 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_585 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_585: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_586 + MOV EAX,DWORD PTR [EBP-4] + JMP L_582 +L_586: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-24] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_582: + MOV ESP,EBP + POP EBP + RETF 4 +PUBLIC __ReadBlock: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,DWORD PTR [EBP+28] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_587 + MOV EAX,227 + JMP L_588 +L_587: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 3 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+12] + PUSH 4 + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_589 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_589: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_590 + MOV EAX,DWORD PTR [EBP-4] + JMP L_588 +L_590: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] + AND EAX,EAX + JZ L_591 + PUSH 10 + PUSH OFFSET _FDDevStat + PUSH 64 + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + CALL FWORD PTR _DeviceStat +L_591: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_588: + MOV ESP,EBP + POP EBP + RETF 20 +PUBLIC __WriteBlock: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+28] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_592 + MOV EAX,227 + JMP L_593 +L_592: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 4 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+12] + PUSH 4 + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_594 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_594: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_595 + MOV EAX,DWORD PTR [EBP-4] + JMP L_593 +L_595: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_593: + MOV ESP,EBP + POP EBP + RETF 20 +PUBLIC __ReadBytes: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,0 + SETE AL + AND AL,AL + JZ L_596 + MOV ESI,DWORD PTR [EBP+12] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_597 +L_596: + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,1 + SETE AL + AND AL,AL + JZ L_599 + XOR EAX,EAX + MOV DWORD PTR [EBP-24], EAX +L_600: + MOV EAX,DWORD PTR [EBP-24] + CMP EAX,DWORD PTR [EBP+16] + SETL AL + AND AL,AL + JZ L_601 + MOV ESI,DWORD PTR [EBP+20] + INC DWORD PTR [EBP+20] + MOVSX EAX,BYTE PTR [ESI] + PUSH EAX + PUSH 1 + CALL FWORD PTR _ReadKbd + MOV EAX,DWORD PTR [EBP-24] + INC DWORD PTR [EBP-24] + JMP L_600 +L_601: + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP-24] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_597 +L_599: + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,2 + SETE AL + AND AL,AL + JNZ L_603 + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,3 + SETE AL + AND AL,AL +L_603: + JZ L_604 + MOV ESI,DWORD PTR [EBP+12] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + MOV EAX,225 + JMP L_597 +L_604: +L_602: +L_598: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 5 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + PUSH 4 + PUSH DWORD PTR [EBP+24] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_605 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_605: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_606 + MOV EAX,DWORD PTR [EBP-4] + JMP L_597 +L_606: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_597: + MOV ESP,EBP + POP EBP + RETF 16 +PUBLIC __WriteBytes: + PUSH EBP + MOV EBP,ESP + SUB ESP,24 + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,0 + SETE AL + AND AL,AL + JZ L_607 + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP+16] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_608 +L_607: + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,1 + SETE AL + AND AL,AL + JZ L_610 + MOV ESI,DWORD PTR [EBP+12] + XOR EAX,EAX + MOV DWORD PTR [ESI], EAX + MOV EAX,205 + JMP L_608 +L_610: + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,2 + SETE AL + AND AL,AL + JZ L_612 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _GetNormVid + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP-16] + CALL FWORD PTR _TTYOut + MOV ESI,DWORD PTR [EBP+12] + MOV EAX,DWORD PTR [EBP+16] + MOV DWORD PTR [ESI], EAX + XOR EAX,EAX + JMP L_608 +L_612: + MOV EAX,DWORD PTR [EBP+24] + CMP EAX,3 + SETE AL + AND AL,AL + JZ L_614 + PUSH 3 + PUSH 2 + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+20] + CALL FWORD PTR _DeviceOp + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + JMP L_608 +L_614: +L_613: +L_611: +L_609: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 6 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + PUSH 4 + PUSH DWORD PTR [EBP+24] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_615 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-24] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_615: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_616 + MOV EAX,DWORD PTR [EBP-4] + JMP L_608 +L_616: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-24] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_608: + MOV ESP,EBP + POP EBP + RETF 16 +PUBLIC __GetFileLFA: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+16] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_617 + MOV EAX,1 + JMP L_618 +L_617: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 7 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+12] + PUSH 4 + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_619 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_619: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_620 + MOV EAX,DWORD PTR [EBP-4] + JMP L_618 +L_620: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_618: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetFileLFA: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+16] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_621 + MOV EAX,227 + JMP L_622 +L_621: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 8 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_623 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_623: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_624 + MOV EAX,DWORD PTR [EBP-4] + JMP L_622 +L_624: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_622: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __GetFileSize: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+16] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_625 + MOV EAX,227 + JMP L_626 +L_625: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 9 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+12] + PUSH 4 + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_627 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_627: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_628 + MOV EAX,DWORD PTR [EBP-4] + JMP L_626 +L_628: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_626: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __SetFileSize: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+16] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_629 + MOV EAX,227 + JMP L_630 +L_629: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 10 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_631 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_631: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_632 + MOV EAX,DWORD PTR [EBP-4] + JMP L_630 +L_632: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_630: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __CreateFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 11 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_633 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_633: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_634 + MOV EAX,DWORD PTR [EBP-4] + JMP L_635 +L_634: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_635: + MOV ESP,EBP + POP EBP + RETF 12 +PUBLIC __RenameFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 12 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 2 + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_636 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_636: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_637 + MOV EAX,DWORD PTR [EBP-4] + JMP L_638 +L_637: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_638: + MOV ESP,EBP + POP EBP + RETF 16 +PUBLIC __DeleteFile: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + MOV EAX,DWORD PTR [EBP+12] + CMP EAX,4 + SETL AL + AND AL,AL + JZ L_639 + MOV EAX,227 + JMP L_640 +L_639: + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 13 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_641 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_641: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_642 + MOV EAX,DWORD PTR [EBP-4] + JMP L_640 +L_642: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_640: + MOV ESP,EBP + POP EBP + RETF 4 +PUBLIC __CreateDir: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 14 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_643 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_643: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_644 + MOV EAX,DWORD PTR [EBP-4] + JMP L_645 +L_644: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_645: + MOV ESP,EBP + POP EBP + RETF 8 +PUBLIC __DeleteDir: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 15 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_646 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_646: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_647 + MOV EAX,DWORD PTR [EBP-4] + JMP L_648 +L_647: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_648: + MOV ESP,EBP + POP EBP + RETF 12 +PUBLIC __GetDirSector: + PUSH EBP + MOV EBP,ESP + SUB ESP,20 + LEA EAX,DWORD PTR [EBP-8] + PUSH EAX + CALL FWORD PTR _GetTSSExch + PUSH _fsysname + PUSH 16 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-12] + PUSH EAX + PUSH 1 + PUSH DWORD PTR [EBP+28] + PUSH DWORD PTR [EBP+24] + PUSH DWORD PTR [EBP+20] + PUSH DWORD PTR [EBP+16] + PUSH DWORD PTR [EBP+12] + XOR EAX,EAX + PUSH EAX + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _Request + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_649 + PUSH DWORD PTR [EBP-8] + LEA EAX,DWORD PTR [EBP-20] + PUSH EAX + CALL FWORD PTR _WaitMsg + MOV DWORD PTR [EBP-4], EAX +L_649: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JZ L_650 + MOV EAX,DWORD PTR [EBP-4] + JMP L_651 +L_650: + MOV EAX,4 + LEA ESI,DWORD PTR [EBP-20] + ADD ESI,EAX + MOV EAX,DWORD PTR [ESI] +L_651: + MOV ESP,EBP + POP EBP + RETF 20 +PUBLIC _InitFS: + PUSH EBP + MOV EBP,ESP + SUB ESP,16 + MOV ESI,OFFSET _Fat + MOV EBX,ESI + MOV EAX,OFFSET _FatBufA + MOV DWORD PTR [EBX], EAX + PUSH 2 + LEA EAX,DWORD PTR [EBP-16] + PUSH EAX + CALL FWORD PTR _AllocOSPage + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_652 + MOV EAX,1 + MOV DWORD PTR [EBP-8], EAX +L_653: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,17 + SETB AL + AND AL,AL + JZ L_654 + JMP SHORT L_655 +L_656: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_653 +L_655: + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,4 + MOV ESI,OFFSET _Fat + ADD ESI,EAX + MOV EAX,DWORD PTR [EBP-16] + MOV DWORD PTR [ESI], EAX + MOV EAX,DWORD PTR [EBP-16] + ADD EAX,512 + MOV DWORD PTR [EBP-16], EAX + JMP L_656 +L_654: +L_652: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_657 + PUSH 2 + PUSH OFFSET _paFCB + CALL FWORD PTR _AllocOSPage + MOV DWORD PTR [EBP-4], EAX +L_657: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_658 + PUSH _paFCB + PUSH 8192 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData +L_658: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_659 + PUSH 1 + PUSH OFFSET _paFUB + CALL FWORD PTR _AllocOSPage + MOV DWORD PTR [EBP-4], EAX +L_659: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_660 + PUSH _paFUB + PUSH 4096 + XOR EAX,EAX + PUSH EAX + CALL FWORD PTR _FillData +L_660: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_661 + CALL _read_PE + MOV DWORD PTR [EBP-4], EAX +L_661: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_662 + PUSH 12 + CALL _SetDriveGeometry + MOV DWORD PTR [EBP-4], EAX +L_662: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_663 + PUSH 13 + CALL _SetDriveGeometry + MOV DWORD PTR [EBP-4], EAX + MOV EAX,DWORD PTR [EBP-4] + CMP EAX,663 + SETE AL + AND AL,AL + JZ L_664 + XOR EAX,EAX + MOV DWORD PTR [EBP-4], EAX +L_664: +L_663: + XOR EAX,EAX + PUSH EAX + CALL _StatFloppy + PUSH 1 + CALL _StatFloppy + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_665 + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_666: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,10 + SETB AL + AND AL,AL + JZ L_667 + JMP SHORT L_668 +L_669: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_666 +L_668: + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + CMP EAX,255 + SETNE AL + AND AL,AL + JZ L_670 + PUSH DWORD PTR [EBP-8] + CALL _read_BS +L_670: + JMP L_669 +L_667: +L_665: + XOR EAX,EAX + MOV DWORD PTR [EBP-8], EAX +L_671: + MOV EAX,DWORD PTR [EBP-8] + CMP EAX,10 + SETB AL + AND AL,AL + JZ L_672 + JMP SHORT L_673 +L_674: + MOV EAX,DWORD PTR [EBP-8] + INC DWORD PTR [EBP-8] + JMP SHORT L_671 +L_673: + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + CMP EAX,255 + SETNE AL + AND AL,AL + JZ L_675 + MOV EAX,12 + MOV DWORD PTR [EBP-12], EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+31] + AND EAX,EAX + JZ L_676 + MOV EAX,16 + MOV DWORD PTR [EBP-12], EAX +L_676: + PUSH OFFSET L_lit+49 + MOV EAX,DWORD PTR [EBP-8] + ADD EAX,65 + PUSH EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+20] + PUSH EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + MOVZX EAX,WORD PTR [ESI+22] + PUSH EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+29] + PUSH EAX + MOV EAX,DWORD PTR [EBP-8] + SHL EAX,5 + MOV ESI,OFFSET _Ldrv + ADD ESI,EAX + XOR EAX,EAX + MOV AL,BYTE PTR [ESI+28] + PUSH EAX + PUSH DWORD PTR [EBP-12] + MOV EDI, 24 + CALL _xprintf + ADD ESP,28 +L_675: + JMP L_674 +L_672: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_677 + PUSH OFFSET _FSysExch + CALL FWORD PTR _AllocExch + MOV DWORD PTR [EBP-4], EAX +L_677: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_678 + PUSH OFFSET _FSysTask + PUSH 5 + XOR EAX,EAX + PUSH EAX + MOV EAX,2044 + MOV ESI,OFFSET _FSysStack + ADD ESI,EAX + PUSH ESI + PUSH 1 + CALL FWORD PTR _SpawnTask + MOV DWORD PTR [EBP-4], EAX +L_678: + MOV EAX,DWORD PTR [EBP-4] + AND EAX,EAX + JNZ L_679 + PUSH _fsysname + PUSH _FSysExch + CALL FWORD PTR _RegisterSvc + MOV DWORD PTR [EBP-4], EAX +L_679: + MOV EAX,DWORD PTR [EBP-4] + MOV ESP,EBP + POP EBP + RETN -- 2.40.0