.text:00000000 ; .text:00000000 ; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» .text:00000000 ; º This file is generated by The Interactive Disassembler (IDA) º .text:00000000 ; º Copyright (c) 2006 by DataRescue sa/nv, º .text:00000000 ; º Licensed to: University of Wisconsin, 5 users std, edu, 09/2004 º .text:00000000 ; ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ .text:00000000 ; .text:00000000 ; File Name : H:\research\TSL\analyzer\TSLFiles\DASH\regression\019.driver\floppy\CancelSpinLock\floppy.obj .text:00000000 ; Format : COFF (X386MAGIC) .text:00000000 ; includelib "LIBCMT" .text:00000000 ; includelib "OLDNAMES"" .text:00000000 .text:00000000 .686p .text:00000000 .mmx .text:00000000 .model flat .text:00000000 .text:00000000 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ .text:00000000 .text:00000000 ; Segment type: Pure code .text:00000000 _text segment para public 'CODE' use32 .text:00000000 assume cs:_text .text:00000000 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing .text:00000000 .text:00000000 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000000 .text:00000000 ; Attributes: bp-based frame .text:00000000 .text:00000000 public _my_malloc .text:00000000 _my_malloc proc near ; CODE XREF: _ExAllocatePoolWithTag+8p .text:00000000 .text:00000000 var_4 = dword ptr -4 .text:00000000 arg_0 = dword ptr 8 .text:00000000 .text:00000000 push ebp .text:00000001 mov ebp, esp .text:00000003 push ecx .text:00000004 mov eax, dword ptr ds:_malloc_starting_addr .text:00000009 mov [ebp+var_4], eax .text:0000000C mov ecx, dword ptr ds:_malloc_starting_addr .text:00000012 add ecx, [ebp+arg_0] .text:00000015 mov dword ptr ds:_malloc_starting_addr, ecx .text:0000001B mov eax, [ebp+var_4] .text:0000001E mov esp, ebp .text:00000020 pop ebp .text:00000021 retn .text:00000021 _my_malloc endp .text:00000021 .text:00000021 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000022 align 10h .text:00000030 .text:00000030 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000030 .text:00000030 ; Attributes: bp-based frame .text:00000030 .text:00000030 public _SdvBuggyFunctionOnInitPageThatShouldNotBeCalledOutSideDriverEntry .text:00000030 _SdvBuggyFunctionOnInitPageThatShouldNotBeCalledOutSideDriverEntry proc near .text:00000030 push ebp .text:00000031 mov ebp, esp .text:00000033 pop ebp .text:00000034 retn .text:00000034 _SdvBuggyFunctionOnInitPageThatShouldNotBeCalledOutSideDriverEntry endp .text:00000034 .text:00000034 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000035 align 10h .text:00000040 .text:00000040 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000040 .text:00000040 ; Attributes: bp-based frame .text:00000040 .text:00000040 public _ExAllocatePoolWithTag .text:00000040 _ExAllocatePoolWithTag proc near .text:00000040 .text:00000040 var_4 = dword ptr -4 .text:00000040 arg_4 = dword ptr 0Ch .text:00000040 .text:00000040 push ebp .text:00000041 mov ebp, esp .text:00000043 push ecx .text:00000044 mov eax, [ebp+arg_4] .text:00000047 push eax .text:00000048 call _my_malloc .text:0000004D add esp, 4 .text:00000050 mov [ebp+var_4], eax .text:00000053 mov eax, [ebp+var_4] .text:00000056 mov esp, ebp .text:00000058 pop ebp .text:00000059 retn .text:00000059 _ExAllocatePoolWithTag endp .text:00000059 .text:00000059 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000005A align 10h .text:00000060 .text:00000060 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000060 .text:00000060 ; Attributes: bp-based frame .text:00000060 .text:00000060 public _MmPageEntireDriver .text:00000060 _MmPageEntireDriver proc near ; CODE XREF: _DriverEntry+17p .text:00000060 push ebp .text:00000061 mov ebp, esp .text:00000063 pop ebp .text:00000064 retn .text:00000064 _MmPageEntireDriver endp .text:00000064 .text:00000064 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000065 align 10h .text:00000070 .text:00000070 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000070 .text:00000070 ; Attributes: bp-based frame .text:00000070 .text:00000070 public _ExInitializeFastMutex .text:00000070 _ExInitializeFastMutex proc near .text:00000070 push ebp .text:00000071 mov ebp, esp .text:00000073 pop ebp .text:00000074 retn .text:00000074 _ExInitializeFastMutex endp .text:00000074 .text:00000074 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000075 align 10h .text:00000080 .text:00000080 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000080 .text:00000080 ; Attributes: bp-based frame .text:00000080 .text:00000080 public _InitializeObjectAttributes .text:00000080 _InitializeObjectAttributes proc near ; CODE XREF: _FlQueueIrpToThread+A9p .text:00000080 push ebp .text:00000081 mov ebp, esp .text:00000083 pop ebp .text:00000084 retn .text:00000084 _InitializeObjectAttributes endp .text:00000084 .text:00000084 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000085 align 10h .text:00000090 .text:00000090 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000090 .text:00000090 ; Attributes: bp-based frame .text:00000090 .text:00000090 public _PsCreateSystemThread .text:00000090 _PsCreateSystemThread proc near ; CODE XREF: _FlQueueIrpToThread+B1p .text:00000090 .text:00000090 var_8 = dword ptr -8 .text:00000090 var_4 = dword ptr -4 .text:00000090 .text:00000090 push ebp .text:00000091 mov ebp, esp .text:00000093 sub esp, 8 .text:00000096 call _SdvMakeChoice .text:0000009B and eax, 1 .text:0000009E mov [ebp+var_4], eax .text:000000A1 mov eax, [ebp+var_4] .text:000000A4 mov [ebp+var_8], eax .text:000000A7 cmp [ebp+var_8], 0 .text:000000AB jz short loc_AF .text:000000AD jmp short loc_B6 .text:000000AF ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000AF .text:000000AF loc_AF: ; CODE XREF: _PsCreateSystemThread+1Bj .text:000000AF mov eax, 1 .text:000000B4 jmp short loc_B9 .text:000000B6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000B6 .text:000000B6 loc_B6: ; CODE XREF: _PsCreateSystemThread+1Dj .text:000000B6 or eax, 0FFFFFFFFh .text:000000B9 .text:000000B9 loc_B9: ; CODE XREF: _PsCreateSystemThread+24j .text:000000B9 mov esp, ebp .text:000000BB pop ebp .text:000000BC retn .text:000000BC _PsCreateSystemThread endp .text:000000BC .text:000000BC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000BD align 10h .text:000000C0 .text:000000C0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000000C0 .text:000000C0 ; Attributes: bp-based frame .text:000000C0 .text:000000C0 public _ObReferenceObjectByHandle .text:000000C0 _ObReferenceObjectByHandle proc near ; CODE XREF: _FlQueueIrpToThread:loc_C25p .text:000000C0 .text:000000C0 var_8 = dword ptr -8 .text:000000C0 var_4 = dword ptr -4 .text:000000C0 .text:000000C0 push ebp .text:000000C1 mov ebp, esp .text:000000C3 sub esp, 8 .text:000000C6 call _SdvMakeChoice .text:000000CB and eax, 1 .text:000000CE mov [ebp+var_4], eax .text:000000D1 mov eax, [ebp+var_4] .text:000000D4 mov [ebp+var_8], eax .text:000000D7 cmp [ebp+var_8], 0 .text:000000DB jz short loc_DF .text:000000DD jmp short loc_E6 .text:000000DF ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000DF .text:000000DF loc_DF: ; CODE XREF: _ObReferenceObjectByHandle+1Bj .text:000000DF mov eax, 1 .text:000000E4 jmp short loc_E9 .text:000000E6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000E6 .text:000000E6 loc_E6: ; CODE XREF: _ObReferenceObjectByHandle+1Dj .text:000000E6 or eax, 0FFFFFFFFh .text:000000E9 .text:000000E9 loc_E9: ; CODE XREF: _ObReferenceObjectByHandle+24j .text:000000E9 mov esp, ebp .text:000000EB pop ebp .text:000000EC retn .text:000000EC _ObReferenceObjectByHandle endp .text:000000EC .text:000000EC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000ED align 10h .text:000000F0 .text:000000F0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000000F0 .text:000000F0 ; Attributes: bp-based frame .text:000000F0 .text:000000F0 public _ExInterlockedInsertTailList .text:000000F0 _ExInterlockedInsertTailList proc near ; CODE XREF: _FlQueueIrpToThread+156p .text:000000F0 ; _FloppyQueueRequest+7Fp .text:000000F0 push ebp .text:000000F1 mov ebp, esp .text:000000F3 xor eax, eax .text:000000F5 pop ebp .text:000000F6 retn .text:000000F6 _ExInterlockedInsertTailList endp .text:000000F6 .text:000000F6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000000F7 align 10h .text:00000100 .text:00000100 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000100 .text:00000100 ; Attributes: bp-based frame .text:00000100 .text:00000100 public _KeReleaseSemaphore .text:00000100 _KeReleaseSemaphore proc near ; CODE XREF: _FlQueueIrpToThread+163p .text:00000100 push ebp .text:00000101 mov ebp, esp .text:00000103 xor eax, eax .text:00000105 pop ebp .text:00000106 retn .text:00000106 _KeReleaseSemaphore endp .text:00000106 .text:00000106 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000107 align 10h .text:00000110 .text:00000110 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000110 .text:00000110 ; Attributes: bp-based frame .text:00000110 .text:00000110 public _ExAcquireFastMutex .text:00000110 _ExAcquireFastMutex proc near ; CODE XREF: _FloppyStartDevice+20Cp .text:00000110 ; _FloppyPower:loc_9BCp ... .text:00000110 push ebp .text:00000111 mov ebp, esp .text:00000113 pop ebp .text:00000114 retn .text:00000114 _ExAcquireFastMutex endp .text:00000114 .text:00000114 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000115 align 10h .text:00000120 .text:00000120 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000120 .text:00000120 ; Attributes: bp-based frame .text:00000120 .text:00000120 public _PsTerminateSystemThread .text:00000120 _PsTerminateSystemThread proc near .text:00000120 push ebp .text:00000121 mov ebp, esp .text:00000123 xor eax, eax .text:00000125 pop ebp .text:00000126 retn .text:00000126 _PsTerminateSystemThread endp .text:00000126 .text:00000126 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000127 align 10h .text:00000130 .text:00000130 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000130 .text:00000130 ; Attributes: bp-based frame .text:00000130 .text:00000130 public _IoSkipCurrentIrpStackLocation .text:00000130 _IoSkipCurrentIrpStackLocation proc near ; CODE XREF: _FloppyPower+1D5p .text:00000130 ; _FloppyDeviceControl+CEp .text:00000130 push ebp .text:00000131 mov ebp, esp .text:00000133 pop ebp .text:00000134 retn .text:00000134 _IoSkipCurrentIrpStackLocation endp .text:00000134 .text:00000134 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000135 align 10h .text:00000140 .text:00000140 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000140 .text:00000140 ; Attributes: bp-based frame .text:00000140 .text:00000140 public _error .text:00000140 _error proc near ; CODE XREF: _main+1BFp .text:00000140 push ebp .text:00000141 mov ebp, esp .text:00000143 pop ebp .text:00000144 retn .text:00000144 _error endp .text:00000144 .text:00000144 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000145 align 10h .text:00000150 .text:00000150 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000150 .text:00000150 ; Attributes: bp-based frame .text:00000150 .text:00000150 public _DriverEntry .text:00000150 _DriverEntry proc near ; CODE XREF: _main+56p .text:00000150 ; DATA XREF: _DriverEntry+12o .text:00000150 .text:00000150 var_4 = dword ptr -4 .text:00000150 .text:00000150 push ebp .text:00000151 mov ebp, esp .text:00000153 push ecx .text:00000154 mov [ebp+var_4], 1 .text:0000015B mov eax, 64h ; 'd' .text:00000160 jmp short loc_172 .text:00000162 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000162 push offset _DriverEntry .text:00000167 call _MmPageEntireDriver .text:0000016C add esp, 4 .text:0000016F mov eax, [ebp+var_4] .text:00000172 .text:00000172 loc_172: ; CODE XREF: _DriverEntry+10j .text:00000172 mov esp, ebp .text:00000174 pop ebp .text:00000175 retn .text:00000175 _DriverEntry endp .text:00000175 .text:00000175 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000176 align 10h .text:00000180 .text:00000180 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000180 .text:00000180 ; Attributes: bp-based frame .text:00000180 .text:00000180 public _IoGetCurrentIrpStackLocation .text:00000180 _IoGetCurrentIrpStackLocation proc near ; CODE XREF: _FloppyStartDevice+27p .text:00000180 ; _FloppyPnp+1Fp ... .text:00000180 .text:00000180 arg_0 = dword ptr 8 .text:00000180 .text:00000180 push ebp .text:00000181 mov ebp, esp .text:00000183 mov eax, [ebp+arg_0] .text:00000186 mov eax, [eax+28h] .text:00000189 pop ebp .text:0000018A retn .text:0000018A _IoGetCurrentIrpStackLocation endp .text:0000018A .text:0000018A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000018B align 10h .text:00000190 .text:00000190 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000190 .text:00000190 ; Attributes: bp-based frame .text:00000190 .text:00000190 public _IoGetConfigurationInformation .text:00000190 _IoGetConfigurationInformation proc near .text:00000190 push ebp .text:00000191 mov ebp, esp .text:00000193 push 2Ch ; ',' .text:00000195 call _malloc .text:0000019A add esp, 4 .text:0000019D pop ebp .text:0000019E retn .text:0000019E _IoGetConfigurationInformation endp .text:0000019E .text:0000019E ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000019F align 10h .text:000001A0 .text:000001A0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000001A0 .text:000001A0 ; Attributes: bp-based frame .text:000001A0 .text:000001A0 public _FloppyPageEntireDriver .text:000001A0 _FloppyPageEntireDriver proc near ; CODE XREF: _FloppyPnp:loc_8ECp .text:000001A0 ; _FlQueueIrpToThread+C9p ... .text:000001A0 push ebp .text:000001A1 mov ebp, esp .text:000001A3 pop ebp .text:000001A4 retn .text:000001A4 _FloppyPageEntireDriver endp .text:000001A4 .text:000001A4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001A5 align 10h .text:000001B0 .text:000001B0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000001B0 .text:000001B0 ; Attributes: bp-based frame .text:000001B0 .text:000001B0 public _ExFreePool .text:000001B0 _ExFreePool proc near .text:000001B0 push ebp .text:000001B1 mov ebp, esp .text:000001B3 pop ebp .text:000001B4 retn .text:000001B4 _ExFreePool endp .text:000001B4 .text:000001B4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001B5 align 10h .text:000001C0 .text:000001C0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000001C0 .text:000001C0 ; Attributes: bp-based frame .text:000001C0 .text:000001C0 public _IoDeleteDevice .text:000001C0 _IoDeleteDevice proc near .text:000001C0 push ebp .text:000001C1 mov ebp, esp .text:000001C3 pop ebp .text:000001C4 retn .text:000001C4 _IoDeleteDevice endp .text:000001C4 .text:000001C4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001C5 align 10h .text:000001D0 .text:000001D0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000001D0 .text:000001D0 ; Attributes: bp-based frame .text:000001D0 .text:000001D0 public _IoDeassignArcName .text:000001D0 _IoDeassignArcName proc near .text:000001D0 push ebp .text:000001D1 mov ebp, esp .text:000001D3 pop ebp .text:000001D4 retn .text:000001D4 _IoDeassignArcName endp .text:000001D4 .text:000001D4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001D5 align 10h .text:000001E0 .text:000001E0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000001E0 .text:000001E0 ; Attributes: bp-based frame .text:000001E0 .text:000001E0 public _RtlInitUnicodeString .text:000001E0 _RtlInitUnicodeString proc near .text:000001E0 push ebp .text:000001E1 mov ebp, esp .text:000001E3 pop ebp .text:000001E4 retn .text:000001E4 _RtlInitUnicodeString endp .text:000001E4 .text:000001E4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001E5 align 10h .text:000001F0 .text:000001F0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000001F0 .text:000001F0 ; Attributes: bp-based frame .text:000001F0 .text:000001F0 public _RtlFreeUnicodeString .text:000001F0 _RtlFreeUnicodeString proc near .text:000001F0 push ebp .text:000001F1 mov ebp, esp .text:000001F3 pop ebp .text:000001F4 retn .text:000001F4 _RtlFreeUnicodeString endp .text:000001F4 .text:000001F4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001F5 align 10h .text:00000200 .text:00000200 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000200 .text:00000200 ; Attributes: bp-based frame .text:00000200 .text:00000200 public _IoSetDeviceInterfaceState .text:00000200 _IoSetDeviceInterfaceState proc near ; CODE XREF: _FloppyStartDevice+1D3p .text:00000200 ; _FloppyStartDevice+1F7p .text:00000200 .text:00000200 var_8 = dword ptr -8 .text:00000200 var_4 = dword ptr -4 .text:00000200 .text:00000200 push ebp .text:00000201 mov ebp, esp .text:00000203 sub esp, 8 .text:00000206 call _SdvMakeChoice .text:0000020B and eax, 3 .text:0000020E mov [ebp+var_4], eax .text:00000211 mov eax, [ebp+var_4] .text:00000214 mov [ebp+var_8], eax .text:00000217 cmp [ebp+var_8], 0 .text:0000021B jz short loc_225 .text:0000021D cmp [ebp+var_8], 1 .text:00000221 jz short loc_22C .text:00000223 jmp short loc_230 .text:00000225 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000225 .text:00000225 loc_225: ; CODE XREF: _IoSetDeviceInterfaceState+1Bj .text:00000225 mov eax, 1 .text:0000022A jmp short loc_235 .text:0000022C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000022C .text:0000022C loc_22C: ; CODE XREF: _IoSetDeviceInterfaceState+21j .text:0000022C xor eax, eax .text:0000022E jmp short loc_235 .text:00000230 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000230 .text:00000230 loc_230: ; CODE XREF: _IoSetDeviceInterfaceState+23j .text:00000230 mov eax, 0FFFFFFDEh .text:00000235 .text:00000235 loc_235: ; CODE XREF: _IoSetDeviceInterfaceState+2Aj .text:00000235 ; _IoSetDeviceInterfaceState+2Ej .text:00000235 mov esp, ebp .text:00000237 pop ebp .text:00000238 retn .text:00000238 _IoSetDeviceInterfaceState endp .text:00000238 .text:00000238 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000239 align 10h .text:00000240 .text:00000240 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000240 .text:00000240 ; Attributes: bp-based frame .text:00000240 .text:00000240 public _IoBuildDeviceIoControlRequest .text:00000240 _IoBuildDeviceIoControlRequest proc near ; CODE XREF: _FlFdcDeviceIo+16p .text:00000240 .text:00000240 var_8 = dword ptr -8 .text:00000240 var_4 = dword ptr -4 .text:00000240 .text:00000240 push ebp .text:00000241 mov ebp, esp .text:00000243 sub esp, 8 .text:00000246 mov eax, [ebp+var_4] .text:00000249 mov [ebp+var_8], eax .text:0000024C cmp [ebp+var_8], 0 .text:00000250 jz short loc_254 .text:00000252 jmp short loc_260 .text:00000254 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000254 .text:00000254 loc_254: ; CODE XREF: _IoBuildDeviceIoControlRequest+10j .text:00000254 push 30h ; '0' .text:00000256 call _malloc .text:0000025B add esp, 4 .text:0000025E jmp short loc_262 .text:00000260 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000260 .text:00000260 loc_260: ; CODE XREF: _IoBuildDeviceIoControlRequest+12j .text:00000260 xor eax, eax .text:00000262 .text:00000262 loc_262: ; CODE XREF: _IoBuildDeviceIoControlRequest+1Ej .text:00000262 mov esp, ebp .text:00000264 pop ebp .text:00000265 retn .text:00000265 _IoBuildDeviceIoControlRequest endp .text:00000265 .text:00000265 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000266 align 10h .text:00000270 .text:00000270 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000270 .text:00000270 ; Attributes: bp-based frame .text:00000270 .text:00000270 public _FloppyResetDriverPaging .text:00000270 _FloppyResetDriverPaging proc near ; CODE XREF: _FloppyPnp+Dp .text:00000270 ; _FlQueueIrpToThread+98p ... .text:00000270 push ebp .text:00000271 mov ebp, esp .text:00000273 pop ebp .text:00000274 retn .text:00000274 _FloppyResetDriverPaging endp .text:00000274 .text:00000274 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000275 align 10h .text:00000280 .text:00000280 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000280 .text:00000280 ; Attributes: bp-based frame .text:00000280 .text:00000280 public _ExInterlockedRemoveHeadList .text:00000280 _ExInterlockedRemoveHeadList proc near ; CODE XREF: _FloppyProcessQueuedRequests+24p .text:00000280 push ebp .text:00000281 mov ebp, esp .text:00000283 xor eax, eax .text:00000285 pop ebp .text:00000286 retn .text:00000286 _ExInterlockedRemoveHeadList endp .text:00000286 .text:00000286 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000287 align 10h .text:00000290 .text:00000290 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000290 .text:00000290 ; Attributes: bp-based frame .text:00000290 .text:00000290 public _KeReleaseSpinLock .text:00000290 _KeReleaseSpinLock proc near ; CODE XREF: _FloppyProcessQueuedRequests+3Fp .text:00000290 ; _FloppyQueueRequest+45p ... .text:00000290 push ebp .text:00000291 mov ebp, esp .text:00000293 mov dword ptr ds:_lock, 0 .text:0000029D cmp dword ptr ds:_lock, 0 .text:000002A4 jz short loc_2B2 .text:000002A6 mov dword ptr ds:_yogi_error, 1 .text:000002B0 jmp short loc_2BC .text:000002B2 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002B2 .text:000002B2 loc_2B2: ; CODE XREF: _KeReleaseSpinLock+14j .text:000002B2 mov dword ptr ds:_lock, 0 .text:000002BC .text:000002BC loc_2BC: ; CODE XREF: _KeReleaseSpinLock+20j .text:000002BC pop ebp .text:000002BD retn .text:000002BD _KeReleaseSpinLock endp .text:000002BD .text:000002BD ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002BE align 10h .text:000002C0 .text:000002C0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000002C0 .text:000002C0 ; Attributes: bp-based frame .text:000002C0 .text:000002C0 public _KeAcquireSpinLock .text:000002C0 _KeAcquireSpinLock proc near ; CODE XREF: _FloppyProcessQueuedRequests+Ep .text:000002C0 ; _FloppyQueueRequest+13p .text:000002C0 push ebp .text:000002C1 mov ebp, esp .text:000002C3 cmp dword ptr ds:_lock, 1 .text:000002CA jnz short loc_2D8 .text:000002CC mov dword ptr ds:_yogi_error, 1 .text:000002D6 jmp short loc_2E2 .text:000002D8 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002D8 .text:000002D8 loc_2D8: ; CODE XREF: _KeAcquireSpinLock+Aj .text:000002D8 mov dword ptr ds:_lock, 1 .text:000002E2 .text:000002E2 loc_2E2: ; CODE XREF: _KeAcquireSpinLock+16j .text:000002E2 pop ebp .text:000002E3 retn .text:000002E3 _KeAcquireSpinLock endp .text:000002E3 .text:000002E3 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002E4 align 10h .text:000002F0 .text:000002F0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000002F0 .text:000002F0 ; Attributes: bp-based frame .text:000002F0 .text:000002F0 public _KeInitializeEvent .text:000002F0 _KeInitializeEvent proc near ; CODE XREF: _FlFdcDeviceIo+Ep .text:000002F0 ; _FloppyStartDevice+3Dp .text:000002F0 push ebp .text:000002F1 mov ebp, esp .text:000002F3 pop ebp .text:000002F4 retn .text:000002F4 _KeInitializeEvent endp .text:000002F4 .text:000002F4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002F5 align 10h .text:00000300 .text:00000300 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000300 .text:00000300 ; Attributes: bp-based frame .text:00000300 .text:00000300 public _ExReleaseFastMutex .text:00000300 _ExReleaseFastMutex proc near ; CODE XREF: _FloppyStartDevice+224p .text:00000300 ; _FloppyPower+91p ... .text:00000300 push ebp .text:00000301 mov ebp, esp .text:00000303 pop ebp .text:00000304 retn .text:00000304 _ExReleaseFastMutex endp .text:00000304 .text:00000304 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000305 align 10h .text:00000310 .text:00000310 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000310 .text:00000310 ; Attributes: bp-based frame .text:00000310 .text:00000310 public _IoCopyCurrentIrpStackLocationToNext .text:00000310 _IoCopyCurrentIrpStackLocationToNext proc near .text:00000310 ; CODE XREF: _FloppyStartDevice+49p .text:00000310 push ebp .text:00000311 mov ebp, esp .text:00000313 pop ebp .text:00000314 retn .text:00000314 _IoCopyCurrentIrpStackLocationToNext endp .text:00000314 .text:00000314 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000315 align 10h .text:00000320 .text:00000320 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000320 .text:00000320 ; Attributes: bp-based frame .text:00000320 .text:00000320 public _IoQueryDeviceDescription .text:00000320 _IoQueryDeviceDescription proc near ; CODE XREF: _FloppyStartDevice+181p .text:00000320 .text:00000320 var_8 = dword ptr -8 .text:00000320 var_4 = dword ptr -4 .text:00000320 .text:00000320 push ebp .text:00000321 mov ebp, esp .text:00000323 sub esp, 8 .text:00000326 mov eax, [ebp+var_4] .text:00000329 mov [ebp+var_8], eax .text:0000032C cmp [ebp+var_8], 0 .text:00000330 jz short loc_334 .text:00000332 jmp short loc_33B .text:00000334 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000334 .text:00000334 loc_334: ; CODE XREF: _IoQueryDeviceDescription+10j .text:00000334 mov eax, 1 .text:00000339 jmp short loc_33E .text:0000033B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000033B .text:0000033B loc_33B: ; CODE XREF: _IoQueryDeviceDescription+12j .text:0000033B or eax, 0FFFFFFFFh .text:0000033E .text:0000033E loc_33E: ; CODE XREF: _IoQueryDeviceDescription+19j .text:0000033E mov esp, ebp .text:00000340 pop ebp .text:00000341 retn .text:00000341 _IoQueryDeviceDescription endp .text:00000341 .text:00000341 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000342 align 10h .text:00000350 .text:00000350 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000350 .text:00000350 ; Attributes: bp-based frame .text:00000350 .text:00000350 public _KeWaitForSingleObject .text:00000350 _KeWaitForSingleObject proc near ; CODE XREF: _FlFdcDeviceIo+5Cp .text:00000350 ; _FloppyStartDevice+84p ... .text:00000350 .text:00000350 var_8 = dword ptr -8 .text:00000350 var_4 = dword ptr -4 .text:00000350 .text:00000350 push ebp .text:00000351 mov ebp, esp .text:00000353 sub esp, 8 .text:00000356 mov eax, [ebp+var_4] .text:00000359 mov [ebp+var_8], eax .text:0000035C cmp [ebp+var_8], 0 .text:00000360 jz short loc_364 .text:00000362 jmp short loc_36B .text:00000364 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000364 .text:00000364 loc_364: ; CODE XREF: _KeWaitForSingleObject+10j .text:00000364 mov eax, 1 .text:00000369 jmp short loc_36E .text:0000036B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000036B .text:0000036B loc_36B: ; CODE XREF: _KeWaitForSingleObject+12j .text:0000036B or eax, 0FFFFFFFFh .text:0000036E .text:0000036E loc_36E: ; CODE XREF: _KeWaitForSingleObject+19j .text:0000036E mov esp, ebp .text:00000370 pop ebp .text:00000371 retn .text:00000371 _KeWaitForSingleObject endp .text:00000371 .text:00000371 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000372 align 10h .text:00000380 .text:00000380 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000380 .text:00000380 ; Attributes: bp-based frame .text:00000380 .text:00000380 public _IoSetCompletionRoutine .text:00000380 _IoSetCompletionRoutine proc near ; CODE XREF: _FloppyStartDevice+51p .text:00000380 push ebp .text:00000381 mov ebp, esp .text:00000383 pop ebp .text:00000384 retn .text:00000384 _IoSetCompletionRoutine endp .text:00000384 .text:00000384 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000385 align 10h .text:00000390 .text:00000390 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000390 .text:00000390 ; Attributes: bp-based frame .text:00000390 .text:00000390 public _IoRegisterDeviceInterface .text:00000390 _IoRegisterDeviceInterface proc near ; CODE XREF: _FloppyStartDevice+1B9p .text:00000390 ; _FloppyStartDevice+1DEp .text:00000390 .text:00000390 var_8 = dword ptr -8 .text:00000390 var_4 = dword ptr -4 .text:00000390 .text:00000390 push ebp .text:00000391 mov ebp, esp .text:00000393 sub esp, 8 .text:00000396 mov eax, [ebp+var_4] .text:00000399 mov [ebp+var_8], eax .text:0000039C cmp [ebp+var_8], 0 .text:000003A0 jz short loc_3AA .text:000003A2 cmp [ebp+var_8], 1 .text:000003A6 jz short loc_3B1 .text:000003A8 jmp short loc_3B6 .text:000003AA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003AA .text:000003AA loc_3AA: ; CODE XREF: _IoRegisterDeviceInterface+10j .text:000003AA mov eax, 1 .text:000003AF jmp short loc_3BB .text:000003B1 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003B1 .text:000003B1 loc_3B1: ; CODE XREF: _IoRegisterDeviceInterface+16j .text:000003B1 or eax, 0FFFFFFFFh .text:000003B4 jmp short loc_3BB .text:000003B6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003B6 .text:000003B6 loc_3B6: ; CODE XREF: _IoRegisterDeviceInterface+18j .text:000003B6 mov eax, 0FFFFFFF6h .text:000003BB .text:000003BB loc_3BB: ; CODE XREF: _IoRegisterDeviceInterface+1Fj .text:000003BB ; _IoRegisterDeviceInterface+24j .text:000003BB mov esp, ebp .text:000003BD pop ebp .text:000003BE retn .text:000003BE _IoRegisterDeviceInterface endp .text:000003BE .text:000003BE ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003BF align 10h .text:000003C0 .text:000003C0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000003C0 .text:000003C0 ; Attributes: bp-based frame .text:000003C0 .text:000003C0 public _IoCompleteRequest .text:000003C0 _IoCompleteRequest proc near ; CODE XREF: _FloppyStartDevice+24Ap .text:000003C0 ; _FloppyPnp+4Dp ... .text:000003C0 push ebp .text:000003C1 mov ebp, esp .text:000003C3 pop ebp .text:000003C4 retn .text:000003C4 _IoCompleteRequest endp .text:000003C4 .text:000003C4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003C5 align 10h .text:000003D0 .text:000003D0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000003D0 .text:000003D0 ; Attributes: bp-based frame .text:000003D0 .text:000003D0 public _PoStartNextPowerIrp .text:000003D0 _PoStartNextPowerIrp proc near ; CODE XREF: _FloppyPower+9Dp .text:000003D0 ; _FloppyPower+1C9p .text:000003D0 push ebp .text:000003D1 mov ebp, esp .text:000003D3 pop ebp .text:000003D4 retn .text:000003D4 _PoStartNextPowerIrp endp .text:000003D4 .text:000003D4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003D5 align 10h .text:000003E0 .text:000003E0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000003E0 .text:000003E0 ; Attributes: bp-based frame .text:000003E0 .text:000003E0 public _FlTerminateFloppyThread .text:000003E0 _FlTerminateFloppyThread proc near .text:000003E0 push ebp .text:000003E1 mov ebp, esp .text:000003E3 pop ebp .text:000003E4 retn .text:000003E4 _FlTerminateFloppyThread endp .text:000003E4 .text:000003E4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003E5 align 10h .text:000003F0 .text:000003F0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000003F0 .text:000003F0 ; Attributes: bp-based frame .text:000003F0 .text:000003F0 public _FloppyProcessQueuedRequests .text:000003F0 _FloppyProcessQueuedRequests proc near ; CODE XREF: _FloppyStartDevice+230p .text:000003F0 .text:000003F0 var_8 = dword ptr -8 .text:000003F0 var_4 = dword ptr -4 .text:000003F0 arg_0 = dword ptr 8 .text:000003F0 .text:000003F0 push ebp .text:000003F1 mov ebp, esp .text:000003F3 sub esp, 10h .text:000003F6 lea eax, [ebp+var_8] .text:000003F9 push eax .text:000003FA mov ecx, [ebp+arg_0] .text:000003FD push ecx .text:000003FE call _KeAcquireSpinLock .text:00000403 add esp, 8 .text:00000406 .text:00000406 loc_406: ; CODE XREF: _FloppyProcessQueuedRequests+35j .text:00000406 mov edx, [ebp+arg_0] .text:00000409 add edx, 20h ; ' ' .text:0000040C push edx .text:0000040D mov eax, [ebp+arg_0] .text:00000410 add eax, 18h .text:00000413 push eax .text:00000414 call _ExInterlockedRemoveHeadList .text:00000419 add esp, 8 .text:0000041C mov [ebp+var_4], eax .text:0000041F cmp [ebp+var_4], 0 .text:00000423 jz short loc_427 .text:00000425 jmp short loc_406 .text:00000427 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000427 .text:00000427 loc_427: ; CODE XREF: _FloppyProcessQueuedRequests+33j .text:00000427 mov ecx, [ebp+var_8] .text:0000042A push ecx .text:0000042B mov edx, [ebp+arg_0] .text:0000042E push edx .text:0000042F call _KeReleaseSpinLock .text:00000434 add esp, 8 .text:00000437 mov esp, ebp .text:00000439 pop ebp .text:0000043A retn .text:0000043A _FloppyProcessQueuedRequests endp .text:0000043A .text:0000043A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000043B align 10h .text:00000440 .text:00000440 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000440 .text:00000440 ; Attributes: bp-based frame .text:00000440 .text:00000440 public _IoCallDriver .text:00000440 _IoCallDriver proc near ; CODE XREF: _FlFdcDeviceIo+3Fp .text:00000440 ; _FloppyStartDevice+61p ... .text:00000440 .text:00000440 var_14 = dword ptr -14h .text:00000440 var_10 = dword ptr -10h .text:00000440 var_C = dword ptr -0Ch .text:00000440 arg_4 = dword ptr 0Ch .text:00000440 .text:00000440 push ebp .text:00000441 mov ebp, esp .text:00000443 sub esp, 14h .text:00000446 mov eax, [ebp+var_10] .text:00000449 mov [ebp+var_14], eax .text:0000044C cmp [ebp+var_14], 0 .text:00000450 jz short loc_45A .text:00000452 cmp [ebp+var_14], 1 .text:00000456 jz short loc_477 .text:00000458 jmp short loc_494 .text:0000045A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000045A .text:0000045A loc_45A: ; CODE XREF: _IoCallDriver+10j .text:0000045A mov ecx, [ebp+arg_4] .text:0000045D mov dword ptr [ecx+0Ch], 1 .text:00000464 mov [ebp+var_C], 1 .text:0000046B mov edx, [ebp+arg_4] .text:0000046E mov dword ptr [edx+14h], 0 .text:00000475 jmp short loc_4A5 .text:00000477 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000477 .text:00000477 loc_477: ; CODE XREF: _IoCallDriver+16j .text:00000477 mov eax, [ebp+arg_4] .text:0000047A mov dword ptr [eax+0Ch], 0FFFFFFFFh .text:00000481 mov [ebp+var_C], 0FFFFFFFFh .text:00000488 mov ecx, [ebp+arg_4] .text:0000048B mov dword ptr [ecx+14h], 0 .text:00000492 jmp short loc_4A5 .text:00000494 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000494 .text:00000494 loc_494: ; CODE XREF: _IoCallDriver+18j .text:00000494 mov [ebp+var_C], 0FFFFFF99h .text:0000049B mov edx, [ebp+arg_4] .text:0000049E mov dword ptr [edx+14h], 1 .text:000004A5 .text:000004A5 loc_4A5: ; CODE XREF: _IoCallDriver+35j .text:000004A5 ; _IoCallDriver+52j .text:000004A5 mov eax, [ebp+var_C] .text:000004A8 mov esp, ebp .text:000004AA pop ebp .text:000004AB retn .text:000004AB _IoCallDriver endp .text:000004AB .text:000004AB ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000004AC align 10h .text:000004B0 .text:000004B0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000004B0 .text:000004B0 ; Attributes: bp-based frame .text:000004B0 .text:000004B0 public _PoCallDriver .text:000004B0 _PoCallDriver proc near ; CODE XREF: _FloppyPower+1E8p .text:000004B0 .text:000004B0 var_14 = dword ptr -14h .text:000004B0 var_10 = dword ptr -10h .text:000004B0 var_C = dword ptr -0Ch .text:000004B0 arg_4 = dword ptr 0Ch .text:000004B0 .text:000004B0 push ebp .text:000004B1 mov ebp, esp .text:000004B3 sub esp, 14h .text:000004B6 mov eax, [ebp+var_10] .text:000004B9 mov [ebp+var_14], eax .text:000004BC cmp [ebp+var_14], 0 .text:000004C0 jz short loc_4CA .text:000004C2 cmp [ebp+var_14], 1 .text:000004C6 jz short loc_4E7 .text:000004C8 jmp short loc_504 .text:000004CA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000004CA .text:000004CA loc_4CA: ; CODE XREF: _PoCallDriver+10j .text:000004CA mov ecx, [ebp+arg_4] .text:000004CD mov dword ptr [ecx+0Ch], 1 .text:000004D4 mov [ebp+var_C], 1 .text:000004DB mov edx, [ebp+arg_4] .text:000004DE mov dword ptr [edx+14h], 0 .text:000004E5 jmp short loc_515 .text:000004E7 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000004E7 .text:000004E7 loc_4E7: ; CODE XREF: _PoCallDriver+16j .text:000004E7 mov eax, [ebp+arg_4] .text:000004EA mov dword ptr [eax+0Ch], 0FFFFFFFFh .text:000004F1 mov [ebp+var_C], 0FFFFFFFFh .text:000004F8 mov ecx, [ebp+arg_4] .text:000004FB mov dword ptr [ecx+14h], 0 .text:00000502 jmp short loc_515 .text:00000504 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000504 .text:00000504 loc_504: ; CODE XREF: _PoCallDriver+18j .text:00000504 mov [ebp+var_C], 0FFFFFF99h .text:0000050B mov edx, [ebp+arg_4] .text:0000050E mov dword ptr [edx+14h], 1 .text:00000515 .text:00000515 loc_515: ; CODE XREF: _PoCallDriver+35j .text:00000515 ; _PoCallDriver+52j .text:00000515 mov eax, [ebp+var_C] .text:00000518 mov esp, ebp .text:0000051A pop ebp .text:0000051B retn .text:0000051B _PoCallDriver endp .text:0000051B .text:0000051B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000051C align 10h .text:00000520 .text:00000520 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000520 .text:00000520 ; Attributes: bp-based frame .text:00000520 .text:00000520 public _FlFdcDeviceIo .text:00000520 _FlFdcDeviceIo proc near ; CODE XREF: _FloppyStartDevice+BCp .text:00000520 .text:00000520 var_20 = dword ptr -20h .text:00000520 var_1C = dword ptr -1Ch .text:00000520 var_18 = dword ptr -18h .text:00000520 var_4 = dword ptr -4 .text:00000520 arg_0 = dword ptr 8 .text:00000520 .text:00000520 push ebp .text:00000521 mov ebp, esp .text:00000523 sub esp, 28h .text:00000526 push 0 .text:00000528 push 0 .text:0000052A lea eax, [ebp+var_18] .text:0000052D push eax .text:0000052E call _KeInitializeEvent .text:00000533 add esp, 0Ch .text:00000536 call _IoBuildDeviceIoControlRequest .text:0000053B mov [ebp+var_1C], eax .text:0000053E cmp [ebp+var_1C], 0 .text:00000542 jnz short loc_54B .text:00000544 mov eax, 64h ; 'd' .text:00000549 jmp short loc_589 .text:0000054B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000054B .text:0000054B loc_54B: ; CODE XREF: _FlFdcDeviceIo+22j .text:0000054B mov ecx, [ebp+var_1C] .text:0000054E mov edx, [ecx+28h] .text:00000551 sub edx, 34h ; '4' .text:00000554 mov [ebp+var_4], edx .text:00000557 mov eax, [ebp+var_1C] .text:0000055A push eax .text:0000055B mov ecx, [ebp+arg_0] .text:0000055E push ecx .text:0000055F call _IoCallDriver .text:00000564 add esp, 8 .text:00000567 mov [ebp+var_20], eax .text:0000056A cmp [ebp+var_20], 0FFFFFF99h .text:0000056E jnz short loc_584 .text:00000570 push 0 .text:00000572 push 0 .text:00000574 push 0 .text:00000576 push 0 .text:00000578 lea edx, [ebp+var_18] .text:0000057B push edx .text:0000057C call _KeWaitForSingleObject .text:00000581 add esp, 14h .text:00000584 .text:00000584 loc_584: ; CODE XREF: _FlFdcDeviceIo+4Ej .text:00000584 mov eax, 1 .text:00000589 .text:00000589 loc_589: ; CODE XREF: _FlFdcDeviceIo+29j .text:00000589 mov esp, ebp .text:0000058B pop ebp .text:0000058C retn .text:0000058C _FlFdcDeviceIo endp .text:0000058C .text:0000058C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000058D align 10h .text:00000590 .text:00000590 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000590 .text:00000590 ; Attributes: bp-based frame .text:00000590 .text:00000590 public _FloppyStartDevice .text:00000590 _FloppyStartDevice proc near .text:00000590 .text:00000590 var_A8 = dword ptr -0A8h .text:00000590 var_A4 = dword ptr -0A4h .text:00000590 var_A0 = dword ptr -0A0h .text:00000590 var_9C = dword ptr -9Ch .text:00000590 var_98 = dword ptr -98h .text:00000590 var_8C = dword ptr -8Ch .text:00000590 var_80 = dword ptr -80h .text:00000590 var_78 = dword ptr -78h .text:00000590 var_74 = dword ptr -74h .text:00000590 var_70 = dword ptr -70h .text:00000590 var_2C = dword ptr -2Ch .text:00000590 var_28 = dword ptr -28h .text:00000590 var_20 = dword ptr -20h .text:00000590 var_C = dword ptr -0Ch .text:00000590 var_8 = dword ptr -8 .text:00000590 var_4 = dword ptr -4 .text:00000590 arg_0 = dword ptr 8 .text:00000590 arg_4 = dword ptr 0Ch .text:00000590 .text:00000590 push ebp .text:00000591 mov ebp, esp .text:00000593 sub esp, 0A8h .text:00000599 mov [ebp+var_A4], 0Dh .text:000005A3 mov [ebp+var_4], 1Ah .text:000005AA mov eax, [ebp+arg_0] .text:000005AD mov ecx, [eax+24h] .text:000005B0 mov [ebp+var_8], ecx .text:000005B3 mov edx, [ebp+arg_4] .text:000005B6 push edx .text:000005B7 call _IoGetCurrentIrpStackLocation .text:000005BC add esp, 4 .text:000005BF mov [ebp+var_A0], eax .text:000005C5 push 0 .text:000005C7 push 0 .text:000005C9 lea eax, [ebp+var_20] .text:000005CC push eax .text:000005CD call _KeInitializeEvent .text:000005D2 add esp, 0Ch .text:000005D5 mov ecx, [ebp+arg_4] .text:000005D8 push ecx .text:000005D9 call _IoCopyCurrentIrpStackLocationToNext .text:000005DE add esp, 4 .text:000005E1 call _IoSetCompletionRoutine .text:000005E6 mov edx, [ebp+arg_4] .text:000005E9 push edx .text:000005EA mov eax, [ebp+var_8] .text:000005ED mov ecx, [eax+8] .text:000005F0 push ecx .text:000005F1 call _IoCallDriver .text:000005F6 add esp, 8 .text:000005F9 mov [ebp+var_9C], eax .text:000005FF cmp [ebp+var_9C], 0FFFFFF99h .text:00000606 jnz short loc_62E .text:00000608 push 0 .text:0000060A push 0 .text:0000060C push 0 .text:0000060E push 0 .text:00000610 lea edx, [ebp+var_20] .text:00000613 push edx .text:00000614 call _KeWaitForSingleObject .text:00000619 add esp, 14h .text:0000061C mov [ebp+var_9C], eax .text:00000622 mov eax, [ebp+arg_4] .text:00000625 mov ecx, [eax+0Ch] .text:00000628 mov [ebp+var_9C], ecx .text:0000062E .text:0000062E loc_62E: ; CODE XREF: _FloppyStartDevice+76j .text:0000062E mov [ebp+var_2C], 0 .text:00000635 mov [ebp+var_28], 0 .text:0000063C lea edx, [ebp+var_98] .text:00000642 push edx .text:00000643 push 0Ah .text:00000645 mov eax, [ebp+var_8] .text:00000648 mov ecx, [eax+8] .text:0000064B push ecx .text:0000064C call _FlFdcDeviceIo .text:00000651 add esp, 0Ch .text:00000654 mov [ebp+var_9C], eax .text:0000065A cmp [ebp+var_9C], 0 .text:00000661 jl loc_7C8 .text:00000667 mov edx, [ebp+var_8] .text:0000066A mov eax, [ebp+var_78] .text:0000066D mov [edx+48h], eax .text:00000670 cmp [ebp+var_74], 0 .text:00000674 jz short loc_6BC .text:00000676 cmp [ebp+var_70], 0 .text:0000067A jz short loc_6BC .text:0000067C lea ecx, [ebp+var_98] .text:00000682 push ecx .text:00000683 mov edx, [ebp+var_8] .text:00000686 push edx .text:00000687 call _FlAcpiConfigureFloppy .text:0000068C add esp, 8 .text:0000068F mov [ebp+var_9C], eax .text:00000695 mov eax, [ebp+var_8] .text:00000698 cmp dword ptr [eax+5Ch], 4 .text:0000069C jnz short loc_6BA .text:0000069E mov edx, 1 .text:000006A3 mov ecx, [ebp+var_80] .text:000006A6 shl edx, cl .text:000006A8 mov eax, [ebp+var_8] .text:000006AB or edx, [eax+0C0h] .text:000006B1 mov ecx, [ebp+var_8] .text:000006B4 mov [ecx+0C0h], edx .text:000006BA .text:000006BA loc_6BA: ; CODE XREF: _FloppyStartDevice+10Cj .text:000006BA jmp short loc_729 .text:000006BC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000006BC .text:000006BC loc_6BC: ; CODE XREF: _FloppyStartDevice+E4j .text:000006BC ; _FloppyStartDevice+EAj .text:000006BC mov edx, [ebp+var_8] .text:000006BF cmp dword ptr [edx+5Ch], 4 .text:000006C3 jnz short loc_6E1 .text:000006C5 mov eax, 1 .text:000006CA mov ecx, [ebp+var_80] .text:000006CD shl eax, cl .text:000006CF mov ecx, [ebp+var_8] .text:000006D2 or eax, [ecx+0C0h] .text:000006D8 mov edx, [ebp+var_8] .text:000006DB mov [edx+0C0h], eax .text:000006E1 .text:000006E1 loc_6E1: ; CODE XREF: _FloppyStartDevice+133j .text:000006E1 mov [ebp+var_A8], 0 .text:000006EB jmp short loc_6FC .text:000006ED ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000006ED .text:000006ED loc_6ED: ; CODE XREF: _FloppyStartDevice:loc_727j .text:000006ED mov eax, [ebp+var_A8] .text:000006F3 add eax, 1 .text:000006F6 mov [ebp+var_A8], eax .text:000006FC .text:000006FC loc_6FC: ; CODE XREF: _FloppyStartDevice+15Bj .text:000006FC cmp [ebp+var_A8], 10h .text:00000703 jge short loc_729 .text:00000705 mov ecx, [ebp+var_A8] .text:0000070B mov [ebp+var_8C], ecx .text:00000711 call _IoQueryDeviceDescription .text:00000716 mov [ebp+var_9C], eax .text:0000071C cmp [ebp+var_9C], 0 .text:00000723 jl short loc_727 .text:00000725 jmp short loc_729 .text:00000727 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000727 .text:00000727 loc_727: ; CODE XREF: _FloppyStartDevice+193j .text:00000727 jmp short loc_6ED .text:00000729 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000729 .text:00000729 loc_729: ; CODE XREF: _FloppyStartDevice:loc_6BAj .text:00000729 ; _FloppyStartDevice+173j ... .text:00000729 cmp [ebp+var_9C], 0 .text:00000730 jl loc_7C8 .text:00000736 mov edx, [ebp+var_8] .text:00000739 mov eax, [ebp+var_80] .text:0000073C mov [edx+68h], eax .text:0000073F mov ecx, [ebp+var_8] .text:00000742 mov dword ptr [ecx+6Ch], 0 .text:00000749 call _IoRegisterDeviceInterface .text:0000074E mov [ebp+var_C], eax .text:00000751 cmp [ebp+var_C], 0 .text:00000755 jl short loc_792 .text:00000757 push 1 .text:00000759 mov edx, [ebp+var_8] .text:0000075C add edx, 0D4h ; 'Ô' .text:00000762 push edx .text:00000763 call _IoSetDeviceInterfaceState .text:00000768 add esp, 8 .text:0000076B mov [ebp+var_C], eax .text:0000076E call _IoRegisterDeviceInterface .text:00000773 mov [ebp+var_C], eax .text:00000776 cmp [ebp+var_C], 0 .text:0000077A jl short loc_792 .text:0000077C push 1 .text:0000077E mov eax, [ebp+var_8] .text:00000781 add eax, 0E0h ; 'à' .text:00000786 push eax .text:00000787 call _IoSetDeviceInterfaceState .text:0000078C add esp, 8 .text:0000078F mov [ebp+var_C], eax .text:00000792 .text:00000792 loc_792: ; CODE XREF: _FloppyStartDevice+1C5j .text:00000792 ; _FloppyStartDevice+1EAj .text:00000792 mov ecx, [ebp+var_8] .text:00000795 mov dword ptr [ecx+0Ch], 1 .text:0000079C call _ExAcquireFastMutex .text:000007A1 mov edx, [ebp+var_8] .text:000007A4 mov dword ptr [edx+14h], 0 .text:000007AB mov eax, [ebp+var_8] .text:000007AE add eax, 10Ch .text:000007B3 push eax .text:000007B4 call _ExReleaseFastMutex .text:000007B9 add esp, 4 .text:000007BC mov ecx, [ebp+var_8] .text:000007BF push ecx .text:000007C0 call _FloppyProcessQueuedRequests .text:000007C5 add esp, 4 .text:000007C8 .text:000007C8 loc_7C8: ; CODE XREF: _FloppyStartDevice+D1j .text:000007C8 ; _FloppyStartDevice+1A0j .text:000007C8 mov edx, [ebp+arg_4] .text:000007CB mov eax, [ebp+var_9C] .text:000007D1 mov [edx+0Ch], eax .text:000007D4 push 0 .text:000007D6 mov ecx, [ebp+arg_4] .text:000007D9 push ecx .text:000007DA call _IoCompleteRequest .text:000007DF add esp, 8 .text:000007E2 mov eax, [ebp+var_9C] .text:000007E8 mov esp, ebp .text:000007EA pop ebp .text:000007EB retn .text:000007EB _FloppyStartDevice endp .text:000007EB .text:000007EB ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000007EC align 10h .text:000007F0 .text:000007F0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000007F0 .text:000007F0 ; Attributes: bp-based frame .text:000007F0 .text:000007F0 public _FlAcpiConfigureFloppy .text:000007F0 _FlAcpiConfigureFloppy proc near ; CODE XREF: _FloppyStartDevice+F7p .text:000007F0 .text:000007F0 var_C = dword ptr -0Ch .text:000007F0 var_8 = dword ptr -8 .text:000007F0 var_4 = dword ptr -4 .text:000007F0 arg_0 = dword ptr 8 .text:000007F0 arg_4 = dword ptr 0Ch .text:000007F0 .text:000007F0 push ebp .text:000007F1 mov ebp, esp .text:000007F3 sub esp, 0Ch .text:000007F6 mov eax, [ebp+arg_0] .text:000007F9 add eax, 74h ; 't' .text:000007FC mov [ebp+var_4], eax .text:000007FF mov ecx, [ebp+arg_4] .text:00000802 cmp dword ptr [ecx+28h], 0 .text:00000806 jnz short loc_80D .text:00000808 or eax, 0FFFFFFFFh .text:0000080B jmp short loc_871 .text:0000080D ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000080D .text:0000080D loc_80D: ; CODE XREF: _FlAcpiConfigureFloppy+16j .text:0000080D mov edx, [ebp+arg_4] .text:00000810 mov eax, [edx+30h] .text:00000813 mov [ebp+var_C], eax .text:00000816 mov ecx, [ebp+var_C] .text:00000819 sub ecx, 1 .text:0000081C mov [ebp+var_C], ecx .text:0000081F cmp [ebp+var_C], 4 .text:00000823 ja short loc_85C .text:00000825 mov edx, [ebp+var_C] .text:00000828 jmp ds:$LN12[edx*4] .text:0000082F .text:0000082F $LN6: ; DATA XREF: .text:$LN12o .text:0000082F mov [ebp+var_8], 0 .text:00000836 jmp short loc_863 .text:00000838 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000838 .text:00000838 $LN5: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:00000838 ; DATA XREF: .text:0000087Co .text:00000838 mov [ebp+var_8], 1 .text:0000083F jmp short loc_863 .text:00000841 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000841 .text:00000841 $LN4: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:00000841 ; DATA XREF: .text:00000880o .text:00000841 mov [ebp+var_8], 2 .text:00000848 jmp short loc_863 .text:0000084A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000084A .text:0000084A $LN3: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:0000084A ; DATA XREF: .text:00000884o .text:0000084A mov [ebp+var_8], 3 .text:00000851 jmp short loc_863 .text:00000853 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000853 .text:00000853 $LN2: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:00000853 ; DATA XREF: .text:00000888o .text:00000853 mov [ebp+var_8], 4 .text:0000085A jmp short loc_863 .text:0000085C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000085C .text:0000085C loc_85C: ; CODE XREF: _FlAcpiConfigureFloppy+33j .text:0000085C mov [ebp+var_8], 1 .text:00000863 .text:00000863 loc_863: ; CODE XREF: _FlAcpiConfigureFloppy+46j .text:00000863 ; _FlAcpiConfigureFloppy+4Fj ... .text:00000863 mov eax, [ebp+arg_0] .text:00000866 mov ecx, [ebp+var_8] .text:00000869 mov [eax+5Ch], ecx .text:0000086C mov eax, 1 .text:00000871 .text:00000871 loc_871: ; CODE XREF: _FlAcpiConfigureFloppy+1Bj .text:00000871 mov esp, ebp .text:00000873 pop ebp .text:00000874 retn .text:00000874 _FlAcpiConfigureFloppy endp .text:00000874 .text:00000874 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000875 align 4 .text:00000878 $LN12 dd offset $LN6 ; DATA XREF: _FlAcpiConfigureFloppy+38r .text:0000087C dd offset $LN5 .text:00000880 dd offset $LN4 .text:00000884 dd offset $LN3 .text:00000888 dd offset $LN2 .text:0000088C align 10h .text:00000890 .text:00000890 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000890 .text:00000890 ; Attributes: bp-based frame .text:00000890 .text:00000890 public _FloppyPnp .text:00000890 _FloppyPnp proc near ; CODE XREF: _main+186p .text:00000890 .text:00000890 var_10 = dword ptr -10h .text:00000890 var_C = dword ptr -0Ch .text:00000890 var_8 = dword ptr -8 .text:00000890 arg_0 = dword ptr 8 .text:00000890 arg_4 = dword ptr 0Ch .text:00000890 .text:00000890 push ebp .text:00000891 mov ebp, esp .text:00000893 sub esp, 10h .text:00000896 mov [ebp+var_C], 1 .text:0000089D call _FloppyResetDriverPaging .text:000008A2 mov eax, [ebp+arg_0] .text:000008A5 mov ecx, [eax+24h] .text:000008A8 mov [ebp+var_8], ecx .text:000008AB mov edx, [ebp+arg_4] .text:000008AE push edx .text:000008AF call _IoGetCurrentIrpStackLocation .text:000008B4 add esp, 4 .text:000008B7 mov [ebp+var_10], eax .text:000008BA mov eax, [ebp+var_8] .text:000008BD cmp dword ptr [eax+10h], 0 .text:000008C1 jz short loc_8EC .text:000008C3 mov ecx, [ebp+arg_4] .text:000008C6 mov dword ptr [ecx+10h], 0 .text:000008CD mov edx, [ebp+arg_4] .text:000008D0 mov dword ptr [edx+0Ch], 0FFFFFFC8h .text:000008D7 push 0 .text:000008D9 mov eax, [ebp+arg_4] .text:000008DC push eax .text:000008DD call _IoCompleteRequest .text:000008E2 add esp, 8 .text:000008E5 mov eax, 0FFFFFFC8h .text:000008EA jmp short loc_8F4 .text:000008EC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000008EC .text:000008EC loc_8EC: ; CODE XREF: _FloppyPnp+31j .text:000008EC call _FloppyPageEntireDriver .text:000008F1 mov eax, [ebp+var_C] .text:000008F4 .text:000008F4 loc_8F4: ; CODE XREF: _FloppyPnp+5Aj .text:000008F4 mov esp, ebp .text:000008F6 pop ebp .text:000008F7 retn .text:000008F7 _FloppyPnp endp .text:000008F7 .text:000008F7 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000008F8 align 10h .text:00000900 .text:00000900 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000900 .text:00000900 ; Attributes: bp-based frame .text:00000900 .text:00000900 public _FloppyUnload .text:00000900 _FloppyUnload proc near ; CODE XREF: _main+1A7p .text:00000900 push ebp .text:00000901 mov ebp, esp .text:00000903 pop ebp .text:00000904 retn .text:00000904 _FloppyUnload endp .text:00000904 .text:00000904 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000905 align 10h .text:00000910 .text:00000910 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000910 .text:00000910 ; Attributes: bp-based frame .text:00000910 .text:00000910 public _ZwClose .text:00000910 _ZwClose proc near .text:00000910 push ebp .text:00000911 mov ebp, esp .text:00000913 xor eax, eax .text:00000915 pop ebp .text:00000916 retn .text:00000916 _ZwClose endp .text:00000916 .text:00000916 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000917 align 10h .text:00000920 .text:00000920 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000920 .text:00000920 ; Attributes: bp-based frame .text:00000920 .text:00000920 public _IoSetCancelRoutine .text:00000920 _IoSetCancelRoutine proc near ; CODE XREF: _FloppyQueueRequest+1Bp .text:00000920 push ebp .text:00000921 mov ebp, esp .text:00000923 pop ebp .text:00000924 retn .text:00000924 _IoSetCancelRoutine endp .text:00000924 .text:00000924 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000925 align 10h .text:00000930 .text:00000930 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000930 .text:00000930 ; Attributes: bp-based frame .text:00000930 .text:00000930 public _IoMarkIrpPending .text:00000930 _IoMarkIrpPending proc near ; CODE XREF: _FlQueueIrpToThread+144p .text:00000930 ; _FloppyQueueRequest+77p .text:00000930 push ebp .text:00000931 mov ebp, esp .text:00000933 mov dword ptr ds:_markIrpPending, 1 .text:0000093D pop ebp .text:0000093E retn .text:0000093E _IoMarkIrpPending endp .text:0000093E .text:0000093E ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000093F align 10h .text:00000940 .text:00000940 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000940 .text:00000940 ; Attributes: bp-based frame .text:00000940 .text:00000940 public _FloppyPower .text:00000940 _FloppyPower proc near .text:00000940 .text:00000940 var_20 = dword ptr -20h .text:00000940 var_1C = dword ptr -1Ch .text:00000940 var_18 = dword ptr -18h .text:00000940 var_14 = dword ptr -14h .text:00000940 var_10 = dword ptr -10h .text:00000940 var_C = dword ptr -0Ch .text:00000940 var_8 = dword ptr -8 .text:00000940 var_4 = dword ptr -4 .text:00000940 arg_0 = dword ptr 8 .text:00000940 arg_4 = dword ptr 0Ch .text:00000940 .text:00000940 push ebp .text:00000941 mov ebp, esp .text:00000943 sub esp, 20h .text:00000946 mov eax, [ebp+arg_4] .text:00000949 mov ecx, [eax+0Ch] .text:0000094C mov [ebp+var_10], ecx .text:0000094F mov [ebp+var_C], 1 .text:00000956 mov edx, [ebp+arg_0] .text:00000959 mov eax, [edx+24h] .text:0000095C mov [ebp+var_4], eax .text:0000095F mov ecx, [ebp+arg_4] .text:00000962 push ecx .text:00000963 call _IoGetCurrentIrpStackLocation .text:00000968 add esp, 4 .text:0000096B mov [ebp+var_14], eax .text:0000096E mov edx, [ebp+var_14] .text:00000971 mov eax, [edx+20h] .text:00000974 mov [ebp+var_8], eax .text:00000977 mov ecx, [ebp+var_14] .text:0000097A mov edx, [ecx+24h] .text:0000097D mov eax, [ecx+28h] .text:00000980 mov [ebp+var_1C], edx .text:00000983 mov [ebp+var_18], eax .text:00000986 mov ecx, [ebp+var_14] .text:00000989 mov edx, [ecx+4] .text:0000098C mov [ebp+var_20], edx .text:0000098F cmp [ebp+var_20], 2 .text:00000993 jz loc_A8C .text:00000999 cmp [ebp+var_20], 3 .text:0000099D jz short loc_9A4 .text:0000099F jmp loc_B05 .text:000009A4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000009A4 .text:000009A4 loc_9A4: ; CODE XREF: _FloppyPower+5Dj .text:000009A4 cmp [ebp+var_8], 0 .text:000009A8 jnz short loc_9BC .text:000009AA cmp [ebp+var_1C], 5 .text:000009AE jle short loc_9BC .text:000009B0 mov [ebp+var_10], 1 .text:000009B7 jmp loc_B05 .text:000009BC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000009BC .text:000009BC loc_9BC: ; CODE XREF: _FloppyPower+68j .text:000009BC ; _FloppyPower+6Ej .text:000009BC call _ExAcquireFastMutex .text:000009C1 mov eax, [ebp+var_4] .text:000009C4 cmp dword ptr [eax+38h], 0 .text:000009C8 jle short loc_A13 .text:000009CA mov ecx, [ebp+var_4] .text:000009CD add ecx, 2Ch ; ',' .text:000009D0 push ecx .text:000009D1 call _ExReleaseFastMutex .text:000009D6 add esp, 4 .text:000009D9 mov edx, [ebp+arg_4] .text:000009DC push edx .text:000009DD call _PoStartNextPowerIrp .text:000009E2 add esp, 4 .text:000009E5 mov eax, [ebp+arg_4] .text:000009E8 mov dword ptr [eax+10h], 0 .text:000009EF mov ecx, [ebp+arg_4] .text:000009F2 mov dword ptr [ecx+0Ch], 0FFFFFFF5h .text:000009F9 push 0 .text:000009FB mov edx, [ebp+arg_4] .text:000009FE push edx .text:000009FF call _IoCompleteRequest .text:00000A04 add esp, 8 .text:00000A07 mov eax, 0FFFFFFF5h .text:00000A0C jmp loc_B36 .text:00000A11 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000A11 jmp short loc_A83 .text:00000A13 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000A13 .text:00000A13 loc_A13: ; CODE XREF: _FloppyPower+88j .text:00000A13 mov eax, [ebp+var_4] .text:00000A16 cmp dword ptr [eax+38h], 0 .text:00000A1A jnz short loc_A74 .text:00000A1C mov ecx, [ebp+var_4] .text:00000A1F cmp dword ptr [ecx+3Ch], 0 .text:00000A23 jz short loc_A74 .text:00000A25 mov edx, [ebp+var_4] .text:00000A28 add edx, 2Ch ; ',' .text:00000A2B push edx .text:00000A2C call _ExReleaseFastMutex .text:00000A31 add esp, 4 .text:00000A34 call _ExAcquireFastMutex .text:00000A39 mov eax, [ebp+var_4] .text:00000A3C mov dword ptr [eax+118h], 1 .text:00000A46 mov ecx, [ebp+var_4] .text:00000A49 add ecx, 100h .text:00000A4F push ecx .text:00000A50 call _ExReleaseFastMutex .text:00000A55 add esp, 4 .text:00000A58 push 0 .text:00000A5A push 0 .text:00000A5C push 0 .text:00000A5E push 0 .text:00000A60 mov edx, [ebp+var_4] .text:00000A63 add edx, 11Ch .text:00000A69 push edx .text:00000A6A call _KeWaitForSingleObject .text:00000A6F add esp, 14h .text:00000A72 jmp short loc_A83 .text:00000A74 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000A74 .text:00000A74 loc_A74: ; CODE XREF: _FloppyPower+DAj .text:00000A74 ; _FloppyPower+E3j .text:00000A74 mov eax, [ebp+var_4] .text:00000A77 add eax, 2Ch ; ',' .text:00000A7A push eax .text:00000A7B call _ExReleaseFastMutex .text:00000A80 add esp, 4 .text:00000A83 .text:00000A83 loc_A83: ; CODE XREF: _FloppyPower+D1j .text:00000A83 ; _FloppyPower+132j .text:00000A83 mov [ebp+var_10], 1 .text:00000A8A jmp short loc_B05 .text:00000A8C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000A8C .text:00000A8C loc_A8C: ; CODE XREF: _FloppyPower+53j .text:00000A8C cmp [ebp+var_8], 0 .text:00000A90 jnz short loc_AFE .text:00000A92 call _ExAcquireFastMutex .text:00000A97 cmp [ebp+var_1C], 1 .text:00000A9B jnz short loc_AB3 .text:00000A9D mov ecx, [ebp+var_4] .text:00000AA0 mov dword ptr [ecx+0FCh], 0 .text:00000AAA mov [ebp+var_C], 0 .text:00000AB1 jmp short loc_AC7 .text:00000AB3 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000AB3 .text:00000AB3 loc_AB3: ; CODE XREF: _FloppyPower+15Bj .text:00000AB3 mov [ebp+var_C], 1 .text:00000ABA mov edx, [ebp+var_4] .text:00000ABD mov dword ptr [edx+0FCh], 1 .text:00000AC7 .text:00000AC7 loc_AC7: ; CODE XREF: _FloppyPower+171j .text:00000AC7 mov eax, [ebp+var_4] .text:00000ACA add eax, 100h .text:00000ACF push eax .text:00000AD0 call _ExReleaseFastMutex .text:00000AD5 add esp, 4 .text:00000AD8 mov ecx, [ebp+var_4] .text:00000ADB cmp dword ptr [ecx+3Ch], 0 .text:00000ADF jz short loc_AFE .text:00000AE1 cmp [ebp+var_C], 1 .text:00000AE5 jnz short loc_AFE .text:00000AE7 push 0 .text:00000AE9 push 0 .text:00000AEB push 0 .text:00000AED push 0 .text:00000AEF mov edx, [ebp+var_4] .text:00000AF2 mov eax, [edx+3Ch] .text:00000AF5 push eax .text:00000AF6 call _KeWaitForSingleObject .text:00000AFB add esp, 14h .text:00000AFE .text:00000AFE loc_AFE: ; CODE XREF: _FloppyPower+150j .text:00000AFE ; _FloppyPower+19Fj ... .text:00000AFE mov [ebp+var_10], 1 .text:00000B05 .text:00000B05 loc_B05: ; CODE XREF: _FloppyPower+5Fj .text:00000B05 ; _FloppyPower+77j ... .text:00000B05 mov ecx, [ebp+arg_4] .text:00000B08 push ecx .text:00000B09 call _PoStartNextPowerIrp .text:00000B0E add esp, 4 .text:00000B11 mov edx, [ebp+arg_4] .text:00000B14 push edx .text:00000B15 call _IoSkipCurrentIrpStackLocation .text:00000B1A add esp, 4 .text:00000B1D mov eax, [ebp+arg_4] .text:00000B20 push eax .text:00000B21 mov ecx, [ebp+var_4] .text:00000B24 mov edx, [ecx+8] .text:00000B27 push edx .text:00000B28 call _PoCallDriver .text:00000B2D add esp, 8 .text:00000B30 mov [ebp+var_10], eax .text:00000B33 mov eax, [ebp+var_10] .text:00000B36 .text:00000B36 loc_B36: ; CODE XREF: _FloppyPower+CCj .text:00000B36 mov esp, ebp .text:00000B38 pop ebp .text:00000B39 retn .text:00000B39 _FloppyPower endp .text:00000B39 .text:00000B39 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000B3A align 10h .text:00000B40 .text:00000B40 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000B40 .text:00000B40 ; Attributes: bp-based frame .text:00000B40 .text:00000B40 public _FlQueueIrpToThread .text:00000B40 _FlQueueIrpToThread proc near .text:00000B40 .text:00000B40 var_28 = dword ptr -28h .text:00000B40 var_10 = dword ptr -10h .text:00000B40 var_8 = dword ptr -8 .text:00000B40 arg_0 = dword ptr 8 .text:00000B40 arg_4 = dword ptr 0Ch .text:00000B40 .text:00000B40 push ebp .text:00000B41 mov ebp, esp .text:00000B43 sub esp, 28h .text:00000B46 mov eax, [ebp+arg_0] .text:00000B49 push eax .text:00000B4A call _IoGetCurrentIrpStackLocation .text:00000B4F add esp, 4 .text:00000B52 mov [ebp+var_8], eax .text:00000B55 call _ExAcquireFastMutex .text:00000B5A mov ecx, [ebp+arg_4] .text:00000B5D cmp dword ptr [ecx+0FCh], 1 .text:00000B64 jnz short loc_B96 .text:00000B66 mov edx, [ebp+arg_4] .text:00000B69 add edx, 100h .text:00000B6F push edx .text:00000B70 call _ExReleaseFastMutex .text:00000B75 add esp, 4 .text:00000B78 mov eax, [ebp+arg_0] .text:00000B7B mov dword ptr [eax+0Ch], 0FFFFFFE9h .text:00000B82 mov ecx, [ebp+arg_0] .text:00000B85 mov dword ptr [ecx+10h], 0 .text:00000B8C mov eax, 0FFFFFFE9h .text:00000B91 jmp loc_CB0 .text:00000B96 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000B96 .text:00000B96 loc_B96: ; CODE XREF: _FlQueueIrpToThread+24j .text:00000B96 mov edx, [ebp+arg_4] .text:00000B99 add edx, 100h .text:00000B9F push edx .text:00000BA0 call _ExReleaseFastMutex .text:00000BA5 add esp, 4 .text:00000BA8 call _ExAcquireFastMutex .text:00000BAD mov eax, [ebp+arg_4] .text:00000BB0 mov ecx, [eax+38h] .text:00000BB3 add ecx, 1 .text:00000BB6 mov edx, [ebp+arg_4] .text:00000BB9 mov [edx+38h], ecx .text:00000BBC mov eax, [ebp+arg_4] .text:00000BBF cmp dword ptr [eax+38h], 0 .text:00000BC3 jnz loc_C71 .text:00000BC9 mov ecx, [ebp+arg_4] .text:00000BCC mov edx, [ecx+38h] .text:00000BCF add edx, 1 .text:00000BD2 mov eax, [ebp+arg_4] .text:00000BD5 mov [eax+38h], edx .text:00000BD8 call _FloppyResetDriverPaging .text:00000BDD push 0 .text:00000BDF push 0 .text:00000BE1 push 0 .text:00000BE3 push 0 .text:00000BE5 lea ecx, [ebp+var_28] .text:00000BE8 push ecx .text:00000BE9 call _InitializeObjectAttributes .text:00000BEE add esp, 14h .text:00000BF1 call _PsCreateSystemThread .text:00000BF6 mov [ebp+var_10], eax .text:00000BF9 cmp [ebp+var_10], 0 .text:00000BFD jge short loc_C25 .text:00000BFF mov edx, [ebp+arg_4] .text:00000C02 mov dword ptr [edx+38h], 0FFFFFFFFh .text:00000C09 call _FloppyPageEntireDriver .text:00000C0E mov eax, [ebp+arg_4] .text:00000C11 add eax, 2Ch ; ',' .text:00000C14 push eax .text:00000C15 call _ExReleaseFastMutex .text:00000C1A add esp, 4 .text:00000C1D mov eax, [ebp+var_10] .text:00000C20 jmp loc_CB0 .text:00000C25 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000C25 .text:00000C25 loc_C25: ; CODE XREF: _FlQueueIrpToThread+BDj .text:00000C25 call _ObReferenceObjectByHandle .text:00000C2A mov [ebp+var_10], eax .text:00000C2D cmp [ebp+var_10], 0 .text:00000C31 jge short loc_C60 .text:00000C33 mov ecx, [ebp+arg_4] .text:00000C36 mov dword ptr [ecx+38h], 0FFFFFFFFh .text:00000C3D mov edx, [ebp+arg_4] .text:00000C40 mov dword ptr [edx+3Ch], 0 .text:00000C47 call _FloppyPageEntireDriver .text:00000C4C mov eax, [ebp+arg_4] .text:00000C4F add eax, 2Ch ; ',' .text:00000C52 push eax .text:00000C53 call _ExReleaseFastMutex .text:00000C58 add esp, 4 .text:00000C5B mov eax, [ebp+var_10] .text:00000C5E jmp short loc_CB0 .text:00000C60 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000C60 .text:00000C60 loc_C60: ; CODE XREF: _FlQueueIrpToThread+F1j .text:00000C60 mov ecx, [ebp+arg_4] .text:00000C63 add ecx, 2Ch ; ',' .text:00000C66 push ecx .text:00000C67 call _ExReleaseFastMutex .text:00000C6C add esp, 4 .text:00000C6F jmp short loc_C80 .text:00000C71 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000C71 .text:00000C71 loc_C71: ; CODE XREF: _FlQueueIrpToThread+83j .text:00000C71 mov edx, [ebp+arg_4] .text:00000C74 add edx, 2Ch ; ',' .text:00000C77 push edx .text:00000C78 call _ExReleaseFastMutex .text:00000C7D add esp, 4 .text:00000C80 .text:00000C80 loc_C80: ; CODE XREF: _FlQueueIrpToThread+12Fj .text:00000C80 mov eax, [ebp+arg_0] .text:00000C83 push eax .text:00000C84 call _IoMarkIrpPending .text:00000C89 add esp, 4 .text:00000C8C mov dword ptr ds:_markIrpPending, 0 .text:00000C96 call _ExInterlockedInsertTailList .text:00000C9B push 0 .text:00000C9D push 1 .text:00000C9F push 0 .text:00000CA1 push 0 .text:00000CA3 call _KeReleaseSemaphore .text:00000CA8 add esp, 10h .text:00000CAB mov eax, 0FFFFFF99h .text:00000CB0 .text:00000CB0 loc_CB0: ; CODE XREF: _FlQueueIrpToThread+51j .text:00000CB0 ; _FlQueueIrpToThread+E0j ... .text:00000CB0 mov esp, ebp .text:00000CB2 pop ebp .text:00000CB3 retn .text:00000CB3 _FlQueueIrpToThread endp .text:00000CB3 .text:00000CB3 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000CB4 align 10h .text:00000CC0 .text:00000CC0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000CC0 .text:00000CC0 ; Attributes: bp-based frame .text:00000CC0 .text:00000CC0 public _FloppyQueueRequest .text:00000CC0 _FloppyQueueRequest proc near ; CODE XREF: _FloppyDeviceControl+47p .text:00000CC0 .text:00000CC0 var_8 = dword ptr -8 .text:00000CC0 var_4 = dword ptr -4 .text:00000CC0 arg_0 = dword ptr 8 .text:00000CC0 arg_4 = dword ptr 0Ch .text:00000CC0 .text:00000CC0 push ebp .text:00000CC1 mov ebp, esp .text:00000CC3 sub esp, 8 .text:00000CC6 call _FloppyResetDriverPaging .text:00000CCB lea eax, [ebp+var_4] .text:00000CCE push eax .text:00000CCF mov ecx, [ebp+arg_0] .text:00000CD2 push ecx .text:00000CD3 call _KeAcquireSpinLock .text:00000CD8 add esp, 8 .text:00000CDB call _IoSetCancelRoutine .text:00000CE0 mov edx, [ebp+arg_4] .text:00000CE3 cmp dword ptr [edx+20h], 0 .text:00000CE7 jz short loc_D29 .text:00000CE9 mov eax, [ebp+arg_4] .text:00000CEC mov dword ptr [eax+0Ch], 0FFFFFF88h .text:00000CF3 mov ecx, [ebp+arg_4] .text:00000CF6 mov dword ptr [ecx+10h], 0 .text:00000CFD mov edx, [ebp+var_4] .text:00000D00 push edx .text:00000D01 mov eax, [ebp+arg_0] .text:00000D04 push eax .text:00000D05 call _KeReleaseSpinLock .text:00000D0A add esp, 8 .text:00000D0D push 0 .text:00000D0F mov ecx, [ebp+arg_4] .text:00000D12 push ecx .text:00000D13 call _IoCompleteRequest .text:00000D18 add esp, 8 .text:00000D1B call _FloppyPageEntireDriver .text:00000D20 mov [ebp+var_8], 0FFFFFF88h .text:00000D27 jmp short loc_D5B .text:00000D29 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000D29 .text:00000D29 loc_D29: ; CODE XREF: _FloppyQueueRequest+27j .text:00000D29 mov edx, [ebp+arg_4] .text:00000D2C mov dword ptr [edx+0Ch], 0FFFFFF99h .text:00000D33 mov eax, [ebp+arg_4] .text:00000D36 push eax .text:00000D37 call _IoMarkIrpPending .text:00000D3C add esp, 4 .text:00000D3F call _ExInterlockedInsertTailList .text:00000D44 mov ecx, [ebp+var_4] .text:00000D47 push ecx .text:00000D48 mov edx, [ebp+arg_0] .text:00000D4B push edx .text:00000D4C call _KeReleaseSpinLock .text:00000D51 add esp, 8 .text:00000D54 mov [ebp+var_8], 0FFFFFF99h .text:00000D5B .text:00000D5B loc_D5B: ; CODE XREF: _FloppyQueueRequest+67j .text:00000D5B mov eax, [ebp+var_8] .text:00000D5E mov esp, ebp .text:00000D60 pop ebp .text:00000D61 retn .text:00000D61 _FloppyQueueRequest endp .text:00000D61 .text:00000D61 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000D62 align 10h .text:00000D70 .text:00000D70 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000D70 .text:00000D70 ; Attributes: bp-based frame .text:00000D70 .text:00000D70 public _FloppyDeviceControl .text:00000D70 _FloppyDeviceControl proc near ; CODE XREF: _main+16Cp .text:00000D70 .text:00000D70 var_28 = dword ptr -28h .text:00000D70 var_24 = dword ptr -24h .text:00000D70 var_10 = dword ptr -10h .text:00000D70 arg_0 = dword ptr 8 .text:00000D70 arg_4 = dword ptr 0Ch .text:00000D70 .text:00000D70 push ebp .text:00000D71 mov ebp, esp .text:00000D73 sub esp, 28h .text:00000D76 mov eax, [ebp+arg_0] .text:00000D79 mov ecx, [eax+24h] .text:00000D7C mov [ebp+var_10], ecx .text:00000D7F mov edx, [ebp+arg_4] .text:00000D82 push edx .text:00000D83 call _IoGetCurrentIrpStackLocation .text:00000D88 add esp, 4 .text:00000D8B mov [ebp+var_28], eax .text:00000D8E mov eax, [ebp+arg_4] .text:00000D91 mov dword ptr [eax+10h], 0 .text:00000D98 call _ExAcquireFastMutex .text:00000D9D mov ecx, [ebp+var_10] .text:00000DA0 cmp dword ptr [ecx+14h], 0 .text:00000DA4 jz short loc_DDC .text:00000DA6 mov edx, [ebp+var_28] .text:00000DA9 cmp dword ptr [edx+18h], 64h ; 'd' .text:00000DAD jz short loc_DDC .text:00000DAF mov eax, [ebp+arg_4] .text:00000DB2 push eax .text:00000DB3 mov ecx, [ebp+var_10] .text:00000DB6 push ecx .text:00000DB7 call _FloppyQueueRequest .text:00000DBC add esp, 8 .text:00000DBF mov [ebp+var_24], eax .text:00000DC2 mov edx, [ebp+var_10] .text:00000DC5 add edx, 10Ch .text:00000DCB push edx .text:00000DCC call _ExReleaseFastMutex .text:00000DD1 add esp, 4 .text:00000DD4 mov eax, [ebp+var_24] .text:00000DD7 jmp loc_E72 .text:00000DDC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000DDC .text:00000DDC loc_DDC: ; CODE XREF: _FloppyDeviceControl+34j .text:00000DDC ; _FloppyDeviceControl+3Dj .text:00000DDC mov eax, [ebp+var_10] .text:00000DDF cmp dword ptr [eax+10h], 0 .text:00000DE3 jz short loc_E20 .text:00000DE5 mov ecx, [ebp+var_10] .text:00000DE8 add ecx, 10Ch .text:00000DEE push ecx .text:00000DEF call _ExReleaseFastMutex .text:00000DF4 add esp, 4 .text:00000DF7 mov edx, [ebp+arg_4] .text:00000DFA mov dword ptr [edx+10h], 0 .text:00000E01 mov eax, [ebp+arg_4] .text:00000E04 mov dword ptr [eax+0Ch], 0FFFFFFC8h .text:00000E0B push 0 .text:00000E0D mov ecx, [ebp+arg_4] .text:00000E10 push ecx .text:00000E11 call _IoCompleteRequest .text:00000E16 add esp, 8 .text:00000E19 mov eax, 0FFFFFFC8h .text:00000E1E jmp short loc_E72 .text:00000E20 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E20 .text:00000E20 loc_E20: ; CODE XREF: _FloppyDeviceControl+73j .text:00000E20 mov edx, [ebp+var_10] .text:00000E23 cmp dword ptr [edx+0Ch], 0 .text:00000E27 jnz short loc_E5B .text:00000E29 mov eax, [ebp+var_10] .text:00000E2C add eax, 10Ch .text:00000E31 push eax .text:00000E32 call _ExReleaseFastMutex .text:00000E37 add esp, 4 .text:00000E3A mov ecx, [ebp+arg_4] .text:00000E3D push ecx .text:00000E3E call _IoSkipCurrentIrpStackLocation .text:00000E43 add esp, 4 .text:00000E46 mov edx, [ebp+arg_4] .text:00000E49 push edx .text:00000E4A mov eax, [ebp+var_10] .text:00000E4D mov ecx, [eax+8] .text:00000E50 push ecx .text:00000E51 call _IoCallDriver .text:00000E56 add esp, 8 .text:00000E59 jmp short loc_E72 .text:00000E5B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E5B .text:00000E5B loc_E5B: ; CODE XREF: _FloppyDeviceControl+B7j .text:00000E5B mov edx, [ebp+var_10] .text:00000E5E add edx, 10Ch .text:00000E64 push edx .text:00000E65 call _ExReleaseFastMutex .text:00000E6A add esp, 4 .text:00000E6D mov eax, 1 .text:00000E72 .text:00000E72 loc_E72: ; CODE XREF: _FloppyDeviceControl+67j .text:00000E72 ; _FloppyDeviceControl+AEj ... .text:00000E72 mov esp, ebp .text:00000E74 pop ebp .text:00000E75 retn .text:00000E75 _FloppyDeviceControl endp .text:00000E75 .text:00000E75 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E76 align 10h .text:00000E80 .text:00000E80 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000E80 .text:00000E80 ; Attributes: bp-based frame .text:00000E80 .text:00000E80 public _FloppyCreateClose .text:00000E80 _FloppyCreateClose proc near ; CODE XREF: _main+136p .text:00000E80 ; _main+151p .text:00000E80 .text:00000E80 arg_4 = dword ptr 0Ch .text:00000E80 .text:00000E80 push ebp .text:00000E81 mov ebp, esp .text:00000E83 mov eax, [ebp+arg_4] .text:00000E86 mov dword ptr [eax+0Ch], 1 .text:00000E8D mov ecx, [ebp+arg_4] .text:00000E90 mov dword ptr [ecx+10h], 1 .text:00000E97 mov eax, 1 .text:00000E9C pop ebp .text:00000E9D retn .text:00000E9D _FloppyCreateClose endp .text:00000E9D .text:00000E9D ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E9E align 10h .text:00000EA0 .text:00000EA0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000EA0 .text:00000EA0 ; Attributes: bp-based frame .text:00000EA0 .text:00000EA0 public __Yogi_init .text:00000EA0 __Yogi_init proc near ; CODE XREF: _main+3Dp .text:00000EA0 push ebp .text:00000EA1 mov ebp, esp .text:00000EA3 mov dword ptr ds:_markIrpPending, 0 .text:00000EAD mov dword ptr ds:_yogi_error, 0 .text:00000EB7 mov dword ptr ds:_lock, 0 .text:00000EC1 pop ebp .text:00000EC2 retn .text:00000EC2 __Yogi_init endp .text:00000EC2 .text:00000EC2 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000EC3 align 10h .text:00000ED0 .text:00000ED0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000ED0 .text:00000ED0 ; Attributes: bp-based frame .text:00000ED0 .text:00000ED0 public _main .text:00000ED0 _main proc near .text:00000ED0 .text:00000ED0 var_8D4 = dword ptr -8D4h .text:00000ED0 var_8D0 = dword ptr -8D0h .text:00000ED0 var_8AC = dword ptr -8ACh .text:00000ED0 var_884 = dword ptr -884h .text:00000ED0 var_880 = dword ptr -880h .text:00000ED0 var_AC = dword ptr -0ACh .text:00000ED0 var_A8 = dword ptr -0A8h .text:00000ED0 var_80 = dword ptr -80h .text:00000ED0 var_7C = dword ptr -7Ch .text:00000ED0 var_78 = dword ptr -78h .text:00000ED0 var_74 = dword ptr -74h .text:00000ED0 var_44 = dword ptr -44h .text:00000ED0 var_14 = dword ptr -14h .text:00000ED0 var_10 = dword ptr -10h .text:00000ED0 var_4 = dword ptr -4 .text:00000ED0 .text:00000ED0 push ebp .text:00000ED1 mov ebp, esp .text:00000ED3 sub esp, 8D4h .text:00000ED9 mov eax, dword ptr ds:___security_cookie .text:00000EDE xor eax, ebp .text:00000EE0 mov [ebp+var_AC], eax .text:00000EE6 push esi .text:00000EE7 push edi .text:00000EE8 lea eax, [ebp+var_880] .text:00000EEE mov dword ptr ds:_malloc_starting_addr, eax .text:00000EF3 mov ecx, 0Ch .text:00000EF8 lea esi, [ebp+var_44] .text:00000EFB lea edi, [ebp+var_74] .text:00000EFE rep movsd .text:00000F00 mov [ebp+var_7C], 0 .text:00000F07 mov ecx, [ebp+var_4] .text:00000F0A mov [ebp+var_14], ecx .text:00000F0D call __Yogi_init .text:00000F12 lea edx, [ebp+var_74] .text:00000F15 mov dword ptr ds:_pirp, edx .text:00000F1B lea eax, [ebp+var_10] .text:00000F1E push eax .text:00000F1F lea ecx, [ebp+var_A8] .text:00000F25 push ecx .text:00000F26 call _DriverEntry .text:00000F2B add esp, 8 .text:00000F2E mov [ebp+var_7C], eax .text:00000F31 cmp [ebp+var_7C], 0 .text:00000F35 jl loc_107F .text:00000F3B mov edx, [ebp+var_80] .text:00000F3E mov [ebp+var_884], edx .text:00000F44 push 130h .text:00000F49 call _malloc .text:00000F4E add esp, 4 .text:00000F51 mov [ebp+var_8AC], eax .text:00000F57 mov eax, [ebp+var_8AC] .text:00000F5D mov dword ptr [eax+14h], 1 .text:00000F64 mov ecx, [ebp+var_8AC] .text:00000F6A mov dword ptr [ecx+10h], 0 .text:00000F71 mov edx, [ebp+var_8AC] .text:00000F77 mov dword ptr [edx+0Ch], 0 .text:00000F7E mov eax, [ebp+var_8AC] .text:00000F84 mov dword ptr [eax], 0 .text:00000F8A mov ecx, dword ptr ds:_NP .text:00000F90 mov dword ptr ds:_s, ecx .text:00000F96 mov edx, dword ptr ds:_pirp .text:00000F9C mov dword ptr [edx+0Ch], 0 .text:00000FA3 mov dword ptr ds:_myStatus, 0 .text:00000FAD cmp [ebp+var_884], 0 .text:00000FB4 jnz short loc_FCC .text:00000FB6 mov eax, dword ptr ds:_pirp .text:00000FBB mov dword ptr [eax+0Ch], 0FFFFFFFFh .text:00000FC2 mov dword ptr ds:_myStatus, 0FFFFFFFFh .text:00000FCC .text:00000FCC loc_FCC: ; CODE XREF: _main+E4j .text:00000FCC cmp [ebp+var_7C], 0 .text:00000FD0 jge short loc_FDA .text:00000FD2 or eax, 0FFFFFFFFh .text:00000FD5 jmp loc_1097 .text:00000FDA ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000FDA .text:00000FDA loc_FDA: ; CODE XREF: _main+100j .text:00000FDA mov ecx, [ebp+var_78] .text:00000FDD mov [ebp+var_8D4], ecx .text:00000FE3 cmp [ebp+var_8D4], 4 .text:00000FEA ja short loc_1065 .text:00000FEC mov edx, [ebp+var_8D4] .text:00000FF2 jmp ds:$LN16[edx*4] .text:00000FF9 .text:00000FF9 $LN8: ; DATA XREF: .text:$LN16o .text:00000FF9 mov eax, dword ptr ds:_pirp .text:00000FFE push eax .text:00000FFF lea ecx, [ebp+var_8D0] .text:00001005 push ecx .text:00001006 call _FloppyCreateClose .text:0000100B add esp, 8 .text:0000100E mov [ebp+var_7C], eax .text:00001011 jmp short loc_106A .text:00001013 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00001013 .text:00001013 $LN7: ; CODE XREF: _main+122j .text:00001013 ; DATA XREF: .text:000010B0o .text:00001013 mov edx, dword ptr ds:_pirp .text:00001019 push edx .text:0000101A lea eax, [ebp+var_8D0] .text:00001020 push eax .text:00001021 call _FloppyCreateClose .text:00001026 add esp, 8 .text:00001029 mov [ebp+var_7C], eax .text:0000102C jmp short loc_106A .text:0000102E ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000102E .text:0000102E $LN6_0: ; CODE XREF: _main+122j .text:0000102E ; DATA XREF: .text:000010B4o .text:0000102E mov ecx, dword ptr ds:_pirp .text:00001034 push ecx .text:00001035 lea edx, [ebp+var_8D0] .text:0000103B push edx .text:0000103C call _FloppyDeviceControl .text:00001041 add esp, 8 .text:00001044 mov [ebp+var_7C], eax .text:00001047 jmp short loc_106A .text:00001049 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00001049 .text:00001049 $LN5_0: ; CODE XREF: _main+122j .text:00001049 ; DATA XREF: .text:000010B8o .text:00001049 mov eax, dword ptr ds:_pirp .text:0000104E push eax .text:0000104F lea ecx, [ebp+var_8D0] .text:00001055 push ecx .text:00001056 call _FloppyPnp .text:0000105B add esp, 8 .text:0000105E mov [ebp+var_7C], eax .text:00001061 jmp short loc_106A .text:00001063 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00001063 .text:00001063 $LN4_0: ; CODE XREF: _main+122j .text:00001063 ; DATA XREF: .text:000010BCo .text:00001063 jmp short loc_106A .text:00001065 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00001065 .text:00001065 loc_1065: ; CODE XREF: _main+11Aj .text:00001065 or eax, 0FFFFFFFFh .text:00001068 jmp short loc_1097 .text:0000106A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000106A .text:0000106A loc_106A: ; CODE XREF: _main+141j .text:0000106A ; _main+15Cj ... .text:0000106A cmp [ebp+var_14], 0 .text:0000106E jz short loc_107F .text:00001070 lea edx, [ebp+var_A8] .text:00001076 push edx .text:00001077 call _FloppyUnload .text:0000107C add esp, 4 .text:0000107F .text:0000107F loc_107F: ; CODE XREF: _main+65j .text:0000107F ; _main+19Ej .text:0000107F mov [ebp+var_7C], 0 .text:00001086 cmp dword ptr ds:_yogi_error, 1 .text:0000108D jnz short loc_1094 .text:0000108F call _error .text:00001094 .text:00001094 loc_1094: ; CODE XREF: _main+1BDj .text:00001094 mov eax, [ebp+var_7C] .text:00001097 .text:00001097 loc_1097: ; CODE XREF: _main+105j .text:00001097 ; _main+198j .text:00001097 pop edi .text:00001098 pop esi .text:00001099 mov ecx, [ebp+var_AC] .text:0000109F xor ecx, ebp .text:000010A1 call @__security_check_cookie@4 ; __security_check_cookie(x) .text:000010A6 mov esp, ebp .text:000010A8 pop ebp .text:000010A9 retn .text:000010A9 _main endp .text:000010A9 .text:000010A9 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000010AA align 4 .text:000010AC $LN16 dd offset $LN8 ; DATA XREF: _main+122r .text:000010B0 dd offset $LN7 .text:000010B4 dd offset $LN6_0 .text:000010B8 dd offset $LN5_0 .text:000010BC dd offset $LN4_0 .text:000010BC _text ends .text:000010BC UNDEF:000010C0 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ UNDEF:000010C0 UNDEF:000010C0 ; Segment type: Externs UNDEF:000010C0 ; UNDEF UNDEF:000010C0 extrn _SKIP2:near UNDEF:000010C4 extrn _yogi_error:near ; DATA XREF: _KeReleaseSpinLock+16w UNDEF:000010C4 ; _KeAcquireSpinLock+Cw ... UNDEF:000010C8 extrn _malloc_starting_addr:near ; DATA XREF: _my_malloc+4r UNDEF:000010C8 ; _my_malloc+Cr ... UNDEF:000010CC extrn _DriveMediaLimits:near UNDEF:000010D0 extrn _markIrpPending:near ; DATA XREF: _IoMarkIrpPending+3w UNDEF:000010D0 ; _FlQueueIrpToThread+14Cw ... UNDEF:000010D4 extrn _UNLOADED:near UNDEF:000010D8 extrn _DC:near UNDEF:000010DC extrn _lowerDriverReturn:near UNDEF:000010E0 extrn _s:near ; DATA XREF: _main+C0w UNDEF:000010E4 extrn _IPC:near UNDEF:000010E8 extrn _pended:near UNDEF:000010EC extrn _MPR3:near UNDEF:000010F0 extrn _NP:near ; DATA XREF: _main+BAr UNDEF:000010F4 extrn _lock:near ; DATA XREF: _KeReleaseSpinLock+3w UNDEF:000010F4 ; _KeReleaseSpinLock+Dr ... UNDEF:000010F8 extrn _myStatus:near ; DATA XREF: _main+D3w UNDEF:000010F8 ; _main+F2w UNDEF:000010FC extrn _pirp:near ; DATA XREF: _main+45w UNDEF:000010FC ; _main+C6r ... UNDEF:00001100 extrn _SdvMakeChoice:near UNDEF:00001100 ; CODE XREF: _PsCreateSystemThread+6p UNDEF:00001100 ; _ObReferenceObjectByHandle+6p ... UNDEF:00001104 extrn _malloc:near ; CODE XREF: _IoGetConfigurationInformation+5p UNDEF:00001104 ; _IoBuildDeviceIoControlRequest+16p ... UNDEF:00001108 extrn ___security_cookie:near ; DATA XREF: _main+9r UNDEF:0000110C ; __fastcall __security_check_cookie(x) UNDEF:0000110C extrn @__security_check_cookie@4:near ; CODE XREF: _main+1D1p UNDEF:0000110C UNDEF:0000110C UNDEF:0000110C end