.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