.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\MarkingInterlockedQueuedIrps\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 .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 _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_B75p .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+150p .text:000000F0 ; _FloppyQueueRequest+83p .text:000000F0 .text:000000F0 arg_0 = dword ptr 8 .text:000000F0 .text:000000F0 push ebp .text:000000F1 mov ebp, esp .text:000000F3 mov eax, [ebp+arg_0] .text:000000F6 cmp dword ptr [eax+14h], 1 .text:000000FA jz short loc_106 .text:000000FC mov dword ptr ds:_queuedWithoutMarking, 1 .text:00000106 .text:00000106 loc_106: ; CODE XREF: _ExInterlockedInsertTailList+Aj .text:00000106 xor eax, eax .text:00000108 pop ebp .text:00000109 retn .text:00000109 _ExInterlockedInsertTailList endp .text:00000109 .text:00000109 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000010A 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 _KeReleaseSemaphore .text:00000110 _KeReleaseSemaphore proc near ; CODE XREF: _FlQueueIrpToThread+160p .text:00000110 push ebp .text:00000111 mov ebp, esp .text:00000113 xor eax, eax .text:00000115 pop ebp .text:00000116 retn .text:00000116 _KeReleaseSemaphore endp .text:00000116 .text:00000116 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000117 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 _ExAcquireFastMutex .text:00000120 _ExAcquireFastMutex proc near ; CODE XREF: _FloppyStartDevice+3Fp .text:00000120 ; _FloppyPower:loc_90Cp ... .text:00000120 push ebp .text:00000121 mov ebp, esp .text:00000123 pop ebp .text:00000124 retn .text:00000124 _ExAcquireFastMutex endp .text:00000124 .text:00000124 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000125 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 _PsTerminateSystemThread .text:00000130 _PsTerminateSystemThread proc near .text:00000130 push ebp .text:00000131 mov ebp, esp .text:00000133 xor eax, eax .text:00000135 pop ebp .text:00000136 retn .text:00000136 _PsTerminateSystemThread endp .text:00000136 .text:00000136 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000137 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 _IoSkipCurrentIrpStackLocation .text:00000140 _IoSkipCurrentIrpStackLocation proc near ; CODE XREF: _FloppyPower+1D5p .text:00000140 ; _FloppyDeviceControl+CEp .text:00000140 push ebp .text:00000141 mov ebp, esp .text:00000143 pop ebp .text:00000144 retn .text:00000144 _IoSkipCurrentIrpStackLocation 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 _error .text:00000150 _error proc near ; CODE XREF: _main+1EAp .text:00000150 push ebp .text:00000151 mov ebp, esp .text:00000153 pop ebp .text:00000154 retn .text:00000154 _error endp .text:00000154 .text:00000154 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000155 align 10h .text:00000160 .text:00000160 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000160 .text:00000160 ; Attributes: bp-based frame .text:00000160 .text:00000160 public _DriverEntry .text:00000160 _DriverEntry proc near ; CODE XREF: _main+5Fp .text:00000160 ; DATA XREF: _DriverEntry+12o .text:00000160 .text:00000160 var_4 = dword ptr -4 .text:00000160 .text:00000160 push ebp .text:00000161 mov ebp, esp .text:00000163 push ecx .text:00000164 mov [ebp+var_4], 1 .text:0000016B mov eax, 64h ; 'd' .text:00000170 jmp short loc_182 .text:00000172 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000172 push offset _DriverEntry .text:00000177 call _MmPageEntireDriver .text:0000017C add esp, 4 .text:0000017F mov eax, [ebp+var_4] .text:00000182 .text:00000182 loc_182: ; CODE XREF: _DriverEntry+10j .text:00000182 mov esp, ebp .text:00000184 pop ebp .text:00000185 retn .text:00000185 _DriverEntry endp .text:00000185 .text:00000185 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000186 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 _IoGetCurrentIrpStackLocation .text:00000190 _IoGetCurrentIrpStackLocation proc near ; CODE XREF: _FloppyProcessQueuedRequests+46p .text:00000190 ; _FloppyStartDevice+27p ... .text:00000190 .text:00000190 arg_0 = dword ptr 8 .text:00000190 .text:00000190 push ebp .text:00000191 mov ebp, esp .text:00000193 mov eax, [ebp+arg_0] .text:00000196 mov eax, [eax+30h] .text:00000199 pop ebp .text:0000019A retn .text:0000019A _IoGetCurrentIrpStackLocation endp .text:0000019A .text:0000019A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000019B 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 _IoGetConfigurationInformation .text:000001A0 _IoGetConfigurationInformation proc near .text:000001A0 push ebp .text:000001A1 mov ebp, esp .text:000001A3 push 2Ch ; ',' .text:000001A5 call _malloc .text:000001AA add esp, 4 .text:000001AD pop ebp .text:000001AE retn .text:000001AE _IoGetConfigurationInformation endp .text:000001AE .text:000001AE ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000001AF 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 _FloppyPageEntireDriver .text:000001B0 _FloppyPageEntireDriver proc near ; CODE XREF: _FloppyProcessQueuedRequests+106p .text:000001B0 ; _FlQueueIrpToThread+C9p ... .text:000001B0 push ebp .text:000001B1 mov ebp, esp .text:000001B3 pop ebp .text:000001B4 retn .text:000001B4 _FloppyPageEntireDriver 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 _ExFreePool .text:000001C0 _ExFreePool proc near .text:000001C0 push ebp .text:000001C1 mov ebp, esp .text:000001C3 pop ebp .text:000001C4 retn .text:000001C4 _ExFreePool 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 _IoDeleteDevice .text:000001D0 _IoDeleteDevice proc near .text:000001D0 push ebp .text:000001D1 mov ebp, esp .text:000001D3 pop ebp .text:000001D4 retn .text:000001D4 _IoDeleteDevice 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 _IoDeassignArcName .text:000001E0 _IoDeassignArcName proc near .text:000001E0 push ebp .text:000001E1 mov ebp, esp .text:000001E3 pop ebp .text:000001E4 retn .text:000001E4 _IoDeassignArcName 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 _RtlInitUnicodeString .text:000001F0 _RtlInitUnicodeString proc near .text:000001F0 push ebp .text:000001F1 mov ebp, esp .text:000001F3 pop ebp .text:000001F4 retn .text:000001F4 _RtlInitUnicodeString 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 _RtlFreeUnicodeString .text:00000200 _RtlFreeUnicodeString proc near .text:00000200 push ebp .text:00000201 mov ebp, esp .text:00000203 pop ebp .text:00000204 retn .text:00000204 _RtlFreeUnicodeString endp .text:00000204 .text:00000204 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000205 align 10h .text:00000210 .text:00000210 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000210 .text:00000210 ; Attributes: bp-based frame .text:00000210 .text:00000210 public _IoSetDeviceInterfaceState .text:00000210 _IoSetDeviceInterfaceState proc near .text:00000210 .text:00000210 var_8 = dword ptr -8 .text:00000210 var_4 = dword ptr -4 .text:00000210 .text:00000210 push ebp .text:00000211 mov ebp, esp .text:00000213 sub esp, 8 .text:00000216 call _SdvMakeChoice .text:0000021B and eax, 3 .text:0000021E mov [ebp+var_4], eax .text:00000221 mov eax, [ebp+var_4] .text:00000224 mov [ebp+var_8], eax .text:00000227 cmp [ebp+var_8], 0 .text:0000022B jz short loc_235 .text:0000022D cmp [ebp+var_8], 1 .text:00000231 jz short loc_23C .text:00000233 jmp short loc_240 .text:00000235 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000235 .text:00000235 loc_235: ; CODE XREF: _IoSetDeviceInterfaceState+1Bj .text:00000235 mov eax, 1 .text:0000023A jmp short loc_245 .text:0000023C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000023C .text:0000023C loc_23C: ; CODE XREF: _IoSetDeviceInterfaceState+21j .text:0000023C xor eax, eax .text:0000023E jmp short loc_245 .text:00000240 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000240 .text:00000240 loc_240: ; CODE XREF: _IoSetDeviceInterfaceState+23j .text:00000240 mov eax, 0FFFFFFDEh .text:00000245 .text:00000245 loc_245: ; CODE XREF: _IoSetDeviceInterfaceState+2Aj .text:00000245 ; _IoSetDeviceInterfaceState+2Ej .text:00000245 mov esp, ebp .text:00000247 pop ebp .text:00000248 retn .text:00000248 _IoSetDeviceInterfaceState endp .text:00000248 .text:00000248 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000249 align 10h .text:00000250 .text:00000250 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000250 .text:00000250 ; Attributes: bp-based frame .text:00000250 .text:00000250 public _IoBuildDeviceIoControlRequest .text:00000250 _IoBuildDeviceIoControlRequest proc near ; CODE XREF: _FlFdcDeviceIo+16p .text:00000250 .text:00000250 var_8 = dword ptr -8 .text:00000250 var_4 = dword ptr -4 .text:00000250 .text:00000250 push ebp .text:00000251 mov ebp, esp .text:00000253 sub esp, 8 .text:00000256 call _SdvMakeChoice .text:0000025B and eax, 1 .text:0000025E mov [ebp+var_4], eax .text:00000261 mov eax, [ebp+var_4] .text:00000264 mov [ebp+var_8], eax .text:00000267 cmp [ebp+var_8], 0 .text:0000026B jz short loc_26F .text:0000026D jmp short loc_27B .text:0000026F ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000026F .text:0000026F loc_26F: ; CODE XREF: _IoBuildDeviceIoControlRequest+1Bj .text:0000026F push 38h ; '8' .text:00000271 call _malloc .text:00000276 add esp, 4 .text:00000279 jmp short loc_27D .text:0000027B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000027B .text:0000027B loc_27B: ; CODE XREF: _IoBuildDeviceIoControlRequest+1Dj .text:0000027B xor eax, eax .text:0000027D .text:0000027D loc_27D: ; CODE XREF: _IoBuildDeviceIoControlRequest+29j .text:0000027D mov esp, ebp .text:0000027F pop ebp .text:00000280 retn .text:00000280 _IoBuildDeviceIoControlRequest endp .text:00000280 .text:00000280 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000281 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 _FloppyResetDriverPaging .text:00000290 _FloppyResetDriverPaging proc near ; CODE XREF: _FloppyPnp+Dp .text:00000290 ; _FlQueueIrpToThread+98p ... .text:00000290 push ebp .text:00000291 mov ebp, esp .text:00000293 pop ebp .text:00000294 retn .text:00000294 _FloppyResetDriverPaging endp .text:00000294 .text:00000294 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000295 align 10h .text:000002A0 .text:000002A0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000002A0 .text:000002A0 ; Attributes: bp-based frame .text:000002A0 .text:000002A0 public _ExInterlockedRemoveHeadList .text:000002A0 _ExInterlockedRemoveHeadList proc near ; CODE XREF: _FloppyProcessQueuedRequests+24p .text:000002A0 push ebp .text:000002A1 mov ebp, esp .text:000002A3 xor eax, eax .text:000002A5 pop ebp .text:000002A6 retn .text:000002A6 _ExInterlockedRemoveHeadList endp .text:000002A6 .text:000002A6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002A7 align 10h .text:000002B0 .text:000002B0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000002B0 .text:000002B0 ; Attributes: bp-based frame .text:000002B0 .text:000002B0 public _KeReleaseSpinLock .text:000002B0 _KeReleaseSpinLock proc near ; CODE XREF: _FloppyProcessQueuedRequests+6Cp .text:000002B0 ; _FloppyProcessQueuedRequests+128p ... .text:000002B0 push ebp .text:000002B1 mov ebp, esp .text:000002B3 pop ebp .text:000002B4 retn .text:000002B4 _KeReleaseSpinLock endp .text:000002B4 .text:000002B4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002B5 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 ; _FloppyProcessQueuedRequests+113p ... .text:000002C0 push ebp .text:000002C1 mov ebp, esp .text:000002C3 pop ebp .text:000002C4 retn .text:000002C4 _KeAcquireSpinLock endp .text:000002C4 .text:000002C4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002C5 align 10h .text:000002D0 .text:000002D0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000002D0 .text:000002D0 ; Attributes: bp-based frame .text:000002D0 .text:000002D0 public _KeInitializeEvent .text:000002D0 _KeInitializeEvent proc near ; CODE XREF: _FlFdcDeviceIo+Ep .text:000002D0 push ebp .text:000002D1 mov ebp, esp .text:000002D3 pop ebp .text:000002D4 retn .text:000002D4 _KeInitializeEvent endp .text:000002D4 .text:000002D4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002D5 align 10h .text:000002E0 .text:000002E0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000002E0 .text:000002E0 ; Attributes: bp-based frame .text:000002E0 .text:000002E0 public _ExReleaseFastMutex .text:000002E0 _ExReleaseFastMutex proc near ; CODE XREF: _FloppyStartDevice+58p .text:000002E0 ; _FloppyPower+91p ... .text:000002E0 push ebp .text:000002E1 mov ebp, esp .text:000002E3 pop ebp .text:000002E4 retn .text:000002E4 _ExReleaseFastMutex endp .text:000002E4 .text:000002E4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000002E5 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 _IoCopyCurrentIrpStackLocationToNext .text:000002F0 _IoCopyCurrentIrpStackLocationToNext proc near .text:000002F0 push ebp .text:000002F1 mov ebp, esp .text:000002F3 pop ebp .text:000002F4 retn .text:000002F4 _IoCopyCurrentIrpStackLocationToNext 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 _IoQueryDeviceDescription .text:00000300 _IoQueryDeviceDescription proc near .text:00000300 .text:00000300 var_8 = dword ptr -8 .text:00000300 var_4 = dword ptr -4 .text:00000300 .text:00000300 push ebp .text:00000301 mov ebp, esp .text:00000303 sub esp, 8 .text:00000306 call _SdvMakeChoice .text:0000030B and eax, 1 .text:0000030E mov [ebp+var_4], eax .text:00000311 mov eax, [ebp+var_4] .text:00000314 mov [ebp+var_8], eax .text:00000317 cmp [ebp+var_8], 0 .text:0000031B jz short loc_31F .text:0000031D jmp short loc_326 .text:0000031F ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000031F .text:0000031F loc_31F: ; CODE XREF: _IoQueryDeviceDescription+1Bj .text:0000031F mov eax, 1 .text:00000324 jmp short loc_329 .text:00000326 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000326 .text:00000326 loc_326: ; CODE XREF: _IoQueryDeviceDescription+1Dj .text:00000326 or eax, 0FFFFFFFFh .text:00000329 .text:00000329 loc_329: ; CODE XREF: _IoQueryDeviceDescription+24j .text:00000329 mov esp, ebp .text:0000032B pop ebp .text:0000032C retn .text:0000032C _IoQueryDeviceDescription endp .text:0000032C .text:0000032C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000032D align 10h .text:00000330 .text:00000330 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000330 .text:00000330 ; Attributes: bp-based frame .text:00000330 .text:00000330 public _KeWaitForSingleObject .text:00000330 _KeWaitForSingleObject proc near ; CODE XREF: _FlFdcDeviceIo+5Cp .text:00000330 ; _FloppyPower+12Ap ... .text:00000330 .text:00000330 var_8 = dword ptr -8 .text:00000330 var_4 = dword ptr -4 .text:00000330 .text:00000330 push ebp .text:00000331 mov ebp, esp .text:00000333 sub esp, 8 .text:00000336 call _SdvMakeChoice .text:0000033B and eax, 1 .text:0000033E mov [ebp+var_4], eax .text:00000341 mov eax, [ebp+var_4] .text:00000344 mov [ebp+var_8], eax .text:00000347 cmp [ebp+var_8], 0 .text:0000034B jz short loc_34F .text:0000034D jmp short loc_356 .text:0000034F ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000034F .text:0000034F loc_34F: ; CODE XREF: _KeWaitForSingleObject+1Bj .text:0000034F mov eax, 1 .text:00000354 jmp short loc_359 .text:00000356 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000356 .text:00000356 loc_356: ; CODE XREF: _KeWaitForSingleObject+1Dj .text:00000356 or eax, 0FFFFFFFFh .text:00000359 .text:00000359 loc_359: ; CODE XREF: _KeWaitForSingleObject+24j .text:00000359 mov esp, ebp .text:0000035B pop ebp .text:0000035C retn .text:0000035C _KeWaitForSingleObject endp .text:0000035C .text:0000035C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000035D align 10h .text:00000360 .text:00000360 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000360 .text:00000360 ; Attributes: bp-based frame .text:00000360 .text:00000360 public _IoSetCompletionRoutine .text:00000360 _IoSetCompletionRoutine proc near .text:00000360 push ebp .text:00000361 mov ebp, esp .text:00000363 pop ebp .text:00000364 retn .text:00000364 _IoSetCompletionRoutine endp .text:00000364 .text:00000364 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000365 align 10h .text:00000370 .text:00000370 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000370 .text:00000370 ; Attributes: bp-based frame .text:00000370 .text:00000370 public _IoRegisterDeviceInterface .text:00000370 _IoRegisterDeviceInterface proc near .text:00000370 .text:00000370 var_8 = dword ptr -8 .text:00000370 var_4 = dword ptr -4 .text:00000370 .text:00000370 push ebp .text:00000371 mov ebp, esp .text:00000373 sub esp, 8 .text:00000376 call _SdvMakeChoice .text:0000037B and eax, 3 .text:0000037E mov [ebp+var_4], eax .text:00000381 mov eax, [ebp+var_4] .text:00000384 mov [ebp+var_8], eax .text:00000387 cmp [ebp+var_8], 0 .text:0000038B jz short loc_395 .text:0000038D cmp [ebp+var_8], 1 .text:00000391 jz short loc_39C .text:00000393 jmp short loc_3A1 .text:00000395 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000395 .text:00000395 loc_395: ; CODE XREF: _IoRegisterDeviceInterface+1Bj .text:00000395 mov eax, 1 .text:0000039A jmp short loc_3A6 .text:0000039C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000039C .text:0000039C loc_39C: ; CODE XREF: _IoRegisterDeviceInterface+21j .text:0000039C or eax, 0FFFFFFFFh .text:0000039F jmp short loc_3A6 .text:000003A1 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003A1 .text:000003A1 loc_3A1: ; CODE XREF: _IoRegisterDeviceInterface+23j .text:000003A1 mov eax, 0FFFFFFF6h .text:000003A6 .text:000003A6 loc_3A6: ; CODE XREF: _IoRegisterDeviceInterface+2Aj .text:000003A6 ; _IoRegisterDeviceInterface+2Fj .text:000003A6 mov esp, ebp .text:000003A8 pop ebp .text:000003A9 retn .text:000003A9 _IoRegisterDeviceInterface endp .text:000003A9 .text:000003A9 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003AA align 10h .text:000003B0 .text:000003B0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000003B0 .text:000003B0 ; Attributes: bp-based frame .text:000003B0 .text:000003B0 public _IoCompleteRequest .text:000003B0 _IoCompleteRequest proc near ; CODE XREF: _FloppyProcessQueuedRequests+A1p .text:000003B0 ; _FloppyProcessQueuedRequests+F8p ... .text:000003B0 push ebp .text:000003B1 mov ebp, esp .text:000003B3 pop ebp .text:000003B4 retn .text:000003B4 _IoCompleteRequest endp .text:000003B4 .text:000003B4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000003B5 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 _PoStartNextPowerIrp .text:000003C0 _PoStartNextPowerIrp proc near ; CODE XREF: _FloppyPower+9Dp .text:000003C0 ; _FloppyPower+1C9p .text:000003C0 push ebp .text:000003C1 mov ebp, esp .text:000003C3 pop ebp .text:000003C4 retn .text:000003C4 _PoStartNextPowerIrp 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 _FlTerminateFloppyThread .text:000003D0 _FlTerminateFloppyThread proc near .text:000003D0 push ebp .text:000003D1 mov ebp, esp .text:000003D3 pop ebp .text:000003D4 retn .text:000003D4 _FlTerminateFloppyThread 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 _FloppyProcessQueuedRequests .text:000003E0 _FloppyProcessQueuedRequests proc near ; CODE XREF: _FloppyStartDevice+64p .text:000003E0 .text:000003E0 var_14 = dword ptr -14h .text:000003E0 var_10 = dword ptr -10h .text:000003E0 var_C = dword ptr -0Ch .text:000003E0 var_8 = dword ptr -8 .text:000003E0 var_4 = dword ptr -4 .text:000003E0 arg_0 = dword ptr 8 .text:000003E0 .text:000003E0 push ebp .text:000003E1 mov ebp, esp .text:000003E3 sub esp, 14h .text:000003E6 lea eax, [ebp+var_8] .text:000003E9 push eax .text:000003EA mov ecx, [ebp+arg_0] .text:000003ED push ecx .text:000003EE call _KeAcquireSpinLock .text:000003F3 add esp, 8 .text:000003F6 .text:000003F6 loc_3F6: ; CODE XREF: _FloppyProcessQueuedRequests+11Bj .text:000003F6 mov edx, [ebp+arg_0] .text:000003F9 add edx, 20h ; ' ' .text:000003FC push edx .text:000003FD mov eax, [ebp+arg_0] .text:00000400 add eax, 18h .text:00000403 push eax .text:00000404 call _ExInterlockedRemoveHeadList .text:00000409 add esp, 8 .text:0000040C mov [ebp+var_4], eax .text:0000040F cmp [ebp+var_4], 0 .text:00000413 jz loc_500 .text:00000419 mov ecx, [ebp+var_C] .text:0000041C cmp dword ptr [ecx+20h], 0 .text:00000420 jz short loc_433 .text:00000422 mov edx, [ebp+var_C] .text:00000425 push edx .text:00000426 call _IoGetCurrentIrpStackLocation .text:0000042B add esp, 4 .text:0000042E mov [ebp+var_10], eax .text:00000431 jmp short loc_444 .text:00000433 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000433 .text:00000433 loc_433: ; CODE XREF: _FloppyProcessQueuedRequests+40j .text:00000433 mov eax, [ebp+var_C] .text:00000436 mov dword ptr [eax+28h], 0 .text:0000043D mov [ebp+var_C], 0 .text:00000444 .text:00000444 loc_444: ; CODE XREF: _FloppyProcessQueuedRequests+51j .text:00000444 mov ecx, [ebp+var_8] .text:00000447 push ecx .text:00000448 mov edx, [ebp+arg_0] .text:0000044B push edx .text:0000044C call _KeReleaseSpinLock .text:00000451 add esp, 8 .text:00000454 cmp [ebp+var_C], 0 .text:00000458 jz loc_4E0 .text:0000045E mov eax, [ebp+arg_0] .text:00000461 cmp dword ptr [eax+10h], 0 .text:00000465 jz short loc_48B .text:00000467 mov ecx, [ebp+var_C] .text:0000046A mov dword ptr [ecx+10h], 0 .text:00000471 mov edx, [ebp+var_C] .text:00000474 mov dword ptr [edx+0Ch], 0FFFFFFC8h .text:0000047B push 0 .text:0000047D mov eax, [ebp+var_C] .text:00000480 push eax .text:00000481 call _IoCompleteRequest .text:00000486 add esp, 8 .text:00000489 jmp short loc_4E0 .text:0000048B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000048B .text:0000048B loc_48B: ; CODE XREF: _FloppyProcessQueuedRequests+85j .text:0000048B mov ecx, [ebp+var_10] .text:0000048E mov edx, [ecx] .text:00000490 mov [ebp+var_14], edx .text:00000493 cmp [ebp+var_14], 3 .text:00000497 jl short loc_4BE .text:00000499 cmp [ebp+var_14], 4 .text:0000049D jle short loc_4A7 .text:0000049F cmp [ebp+var_14], 0Eh .text:000004A3 jz short loc_4A9 .text:000004A5 jmp short loc_4BE .text:000004A7 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000004A7 .text:000004A7 loc_4A7: ; CODE XREF: _FloppyProcessQueuedRequests+BDj .text:000004A7 jmp short loc_4E0 .text:000004A9 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000004A9 .text:000004A9 loc_4A9: ; CODE XREF: _FloppyProcessQueuedRequests+C3j .text:000004A9 mov eax, [ebp+var_C] .text:000004AC push eax .text:000004AD mov ecx, [ebp+arg_0] .text:000004B0 mov edx, [ecx+24h] .text:000004B3 push edx .text:000004B4 call _FloppyDeviceControl .text:000004B9 add esp, 8 .text:000004BC jmp short loc_4E0 .text:000004BE ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000004BE .text:000004BE loc_4BE: ; CODE XREF: _FloppyProcessQueuedRequests+B7j .text:000004BE ; _FloppyProcessQueuedRequests+C5j .text:000004BE mov eax, [ebp+var_C] .text:000004C1 mov dword ptr [eax+10h], 0 .text:000004C8 mov ecx, [ebp+var_C] .text:000004CB mov dword ptr [ecx+0Ch], 0FFFFFFFFh .text:000004D2 push 0 .text:000004D4 mov edx, [ebp+var_C] .text:000004D7 push edx .text:000004D8 call _IoCompleteRequest .text:000004DD add esp, 8 .text:000004E0 .text:000004E0 loc_4E0: ; CODE XREF: _FloppyProcessQueuedRequests+78j .text:000004E0 ; _FloppyProcessQueuedRequests+A9j ... .text:000004E0 cmp [ebp+var_C], 0 .text:000004E4 jz short loc_4EB .text:000004E6 call _FloppyPageEntireDriver .text:000004EB .text:000004EB loc_4EB: ; CODE XREF: _FloppyProcessQueuedRequests+104j .text:000004EB lea eax, [ebp+var_8] .text:000004EE push eax .text:000004EF mov ecx, [ebp+arg_0] .text:000004F2 push ecx .text:000004F3 call _KeAcquireSpinLock .text:000004F8 add esp, 8 .text:000004FB jmp loc_3F6 .text:00000500 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000500 .text:00000500 loc_500: ; CODE XREF: _FloppyProcessQueuedRequests+33j .text:00000500 mov edx, [ebp+var_8] .text:00000503 push edx .text:00000504 mov eax, [ebp+arg_0] .text:00000507 push eax .text:00000508 call _KeReleaseSpinLock .text:0000050D add esp, 8 .text:00000510 mov esp, ebp .text:00000512 pop ebp .text:00000513 retn .text:00000513 _FloppyProcessQueuedRequests endp .text:00000513 .text:00000513 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000514 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 _IoCallDriver .text:00000520 _IoCallDriver proc near ; CODE XREF: _FlFdcDeviceIo+3Fp .text:00000520 ; _FloppyDeviceControl+E1p .text:00000520 .text:00000520 var_14 = dword ptr -14h .text:00000520 var_10 = dword ptr -10h .text:00000520 var_C = dword ptr -0Ch .text:00000520 arg_4 = dword ptr 0Ch .text:00000520 .text:00000520 push ebp .text:00000521 mov ebp, esp .text:00000523 sub esp, 14h .text:00000526 call _SdvMakeChoice .text:0000052B and eax, 3 .text:0000052E mov [ebp+var_10], eax .text:00000531 mov eax, [ebp+var_10] .text:00000534 mov [ebp+var_14], eax .text:00000537 cmp [ebp+var_14], 0 .text:0000053B jz short loc_545 .text:0000053D cmp [ebp+var_14], 1 .text:00000541 jz short loc_562 .text:00000543 jmp short loc_57F .text:00000545 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000545 .text:00000545 loc_545: ; CODE XREF: _IoCallDriver+1Bj .text:00000545 mov ecx, [ebp+arg_4] .text:00000548 mov dword ptr [ecx+0Ch], 1 .text:0000054F mov [ebp+var_C], 1 .text:00000556 mov edx, [ebp+arg_4] .text:00000559 mov dword ptr [edx+14h], 0 .text:00000560 jmp short loc_590 .text:00000562 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000562 .text:00000562 loc_562: ; CODE XREF: _IoCallDriver+21j .text:00000562 mov eax, [ebp+arg_4] .text:00000565 mov dword ptr [eax+0Ch], 0FFFFFFFFh .text:0000056C mov [ebp+var_C], 0FFFFFFFFh .text:00000573 mov ecx, [ebp+arg_4] .text:00000576 mov dword ptr [ecx+14h], 0 .text:0000057D jmp short loc_590 .text:0000057F ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000057F .text:0000057F loc_57F: ; CODE XREF: _IoCallDriver+23j .text:0000057F mov [ebp+var_C], 0FFFFFF99h .text:00000586 mov edx, [ebp+arg_4] .text:00000589 mov dword ptr [edx+14h], 1 .text:00000590 .text:00000590 loc_590: ; CODE XREF: _IoCallDriver+40j .text:00000590 ; _IoCallDriver+5Dj .text:00000590 mov eax, [ebp+var_C] .text:00000593 mov esp, ebp .text:00000595 pop ebp .text:00000596 retn .text:00000596 _IoCallDriver endp .text:00000596 .text:00000596 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000597 align 10h .text:000005A0 .text:000005A0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000005A0 .text:000005A0 ; Attributes: bp-based frame .text:000005A0 .text:000005A0 public _PoCallDriver .text:000005A0 _PoCallDriver proc near ; CODE XREF: _FloppyPower+1E8p .text:000005A0 .text:000005A0 var_14 = dword ptr -14h .text:000005A0 var_10 = dword ptr -10h .text:000005A0 var_C = dword ptr -0Ch .text:000005A0 arg_4 = dword ptr 0Ch .text:000005A0 .text:000005A0 push ebp .text:000005A1 mov ebp, esp .text:000005A3 sub esp, 14h .text:000005A6 call _SdvMakeChoice .text:000005AB and eax, 3 .text:000005AE mov [ebp+var_10], eax .text:000005B1 mov eax, [ebp+var_10] .text:000005B4 mov [ebp+var_14], eax .text:000005B7 cmp [ebp+var_14], 0 .text:000005BB jz short loc_5C5 .text:000005BD cmp [ebp+var_14], 1 .text:000005C1 jz short loc_5E2 .text:000005C3 jmp short loc_5FF .text:000005C5 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000005C5 .text:000005C5 loc_5C5: ; CODE XREF: _PoCallDriver+1Bj .text:000005C5 mov ecx, [ebp+arg_4] .text:000005C8 mov dword ptr [ecx+0Ch], 1 .text:000005CF mov [ebp+var_C], 1 .text:000005D6 mov edx, [ebp+arg_4] .text:000005D9 mov dword ptr [edx+14h], 0 .text:000005E0 jmp short loc_610 .text:000005E2 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000005E2 .text:000005E2 loc_5E2: ; CODE XREF: _PoCallDriver+21j .text:000005E2 mov eax, [ebp+arg_4] .text:000005E5 mov dword ptr [eax+0Ch], 0FFFFFFFFh .text:000005EC mov [ebp+var_C], 0FFFFFFFFh .text:000005F3 mov ecx, [ebp+arg_4] .text:000005F6 mov dword ptr [ecx+14h], 0 .text:000005FD jmp short loc_610 .text:000005FF ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000005FF .text:000005FF loc_5FF: ; CODE XREF: _PoCallDriver+23j .text:000005FF mov [ebp+var_C], 0FFFFFF99h .text:00000606 mov edx, [ebp+arg_4] .text:00000609 mov dword ptr [edx+14h], 1 .text:00000610 .text:00000610 loc_610: ; CODE XREF: _PoCallDriver+40j .text:00000610 ; _PoCallDriver+5Dj .text:00000610 mov eax, [ebp+var_C] .text:00000613 mov esp, ebp .text:00000615 pop ebp .text:00000616 retn .text:00000616 _PoCallDriver endp .text:00000616 .text:00000616 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000617 align 10h .text:00000620 .text:00000620 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000620 .text:00000620 ; Attributes: bp-based frame .text:00000620 .text:00000620 public _FlFdcDeviceIo .text:00000620 _FlFdcDeviceIo proc near .text:00000620 .text:00000620 var_20 = dword ptr -20h .text:00000620 var_1C = dword ptr -1Ch .text:00000620 var_18 = dword ptr -18h .text:00000620 var_4 = dword ptr -4 .text:00000620 arg_0 = dword ptr 8 .text:00000620 .text:00000620 push ebp .text:00000621 mov ebp, esp .text:00000623 sub esp, 28h .text:00000626 push 0 .text:00000628 push 0 .text:0000062A lea eax, [ebp+var_18] .text:0000062D push eax .text:0000062E call _KeInitializeEvent .text:00000633 add esp, 0Ch .text:00000636 call _IoBuildDeviceIoControlRequest .text:0000063B mov [ebp+var_1C], eax .text:0000063E cmp [ebp+var_1C], 0 .text:00000642 jnz short loc_64B .text:00000644 mov eax, 64h ; 'd' .text:00000649 jmp short loc_689 .text:0000064B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000064B .text:0000064B loc_64B: ; CODE XREF: _FlFdcDeviceIo+22j .text:0000064B mov ecx, [ebp+var_1C] .text:0000064E mov edx, [ecx+30h] .text:00000651 sub edx, 34h ; '4' .text:00000654 mov [ebp+var_4], edx .text:00000657 mov eax, [ebp+var_1C] .text:0000065A push eax .text:0000065B mov ecx, [ebp+arg_0] .text:0000065E push ecx .text:0000065F call _IoCallDriver .text:00000664 add esp, 8 .text:00000667 mov [ebp+var_20], eax .text:0000066A cmp [ebp+var_20], 0FFFFFF99h .text:0000066E jnz short loc_684 .text:00000670 push 0 .text:00000672 push 0 .text:00000674 push 0 .text:00000676 push 0 .text:00000678 lea edx, [ebp+var_18] .text:0000067B push edx .text:0000067C call _KeWaitForSingleObject .text:00000681 add esp, 14h .text:00000684 .text:00000684 loc_684: ; CODE XREF: _FlFdcDeviceIo+4Ej .text:00000684 mov eax, 1 .text:00000689 .text:00000689 loc_689: ; CODE XREF: _FlFdcDeviceIo+29j .text:00000689 mov esp, ebp .text:0000068B pop ebp .text:0000068C retn .text:0000068C _FlFdcDeviceIo endp .text:0000068C .text:0000068C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000068D align 10h .text:00000690 .text:00000690 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000690 .text:00000690 ; Attributes: bp-based frame .text:00000690 .text:00000690 public _FloppyStartDevice .text:00000690 _FloppyStartDevice proc near ; CODE XREF: _FloppyPnp+64p .text:00000690 .text:00000690 var_A4 = dword ptr -0A4h .text:00000690 var_A0 = dword ptr -0A0h .text:00000690 var_9C = dword ptr -9Ch .text:00000690 var_8 = dword ptr -8 .text:00000690 var_4 = dword ptr -4 .text:00000690 arg_0 = dword ptr 8 .text:00000690 arg_4 = dword ptr 0Ch .text:00000690 .text:00000690 push ebp .text:00000691 mov ebp, esp .text:00000693 sub esp, 0A4h .text:00000699 mov [ebp+var_A4], 0Dh .text:000006A3 mov [ebp+var_4], 1Ah .text:000006AA mov eax, [ebp+arg_0] .text:000006AD mov ecx, [eax+24h] .text:000006B0 mov [ebp+var_8], ecx .text:000006B3 mov edx, [ebp+arg_4] .text:000006B6 push edx .text:000006B7 call _IoGetCurrentIrpStackLocation .text:000006BC add esp, 4 .text:000006BF mov [ebp+var_A0], eax .text:000006C5 mov eax, [ebp+var_8] .text:000006C8 mov dword ptr [eax+0Ch], 1 .text:000006CF call _ExAcquireFastMutex .text:000006D4 mov ecx, [ebp+var_8] .text:000006D7 mov dword ptr [ecx+14h], 0 .text:000006DE mov edx, [ebp+var_8] .text:000006E1 add edx, 10Ch .text:000006E7 push edx .text:000006E8 call _ExReleaseFastMutex .text:000006ED add esp, 4 .text:000006F0 mov eax, [ebp+var_8] .text:000006F3 push eax .text:000006F4 call _FloppyProcessQueuedRequests .text:000006F9 add esp, 4 .text:000006FC mov ecx, [ebp+arg_4] .text:000006FF mov edx, [ebp+var_9C] .text:00000705 mov [ecx+0Ch], edx .text:00000708 push 0 .text:0000070A mov eax, [ebp+arg_4] .text:0000070D push eax .text:0000070E call _IoCompleteRequest .text:00000713 add esp, 8 .text:00000716 mov eax, [ebp+var_9C] .text:0000071C mov esp, ebp .text:0000071E pop ebp .text:0000071F retn .text:0000071F _FloppyStartDevice endp .text:0000071F .text:00000720 .text:00000720 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000720 .text:00000720 ; Attributes: bp-based frame .text:00000720 .text:00000720 public _FlAcpiConfigureFloppy .text:00000720 _FlAcpiConfigureFloppy proc near .text:00000720 .text:00000720 var_C = dword ptr -0Ch .text:00000720 var_8 = dword ptr -8 .text:00000720 var_4 = dword ptr -4 .text:00000720 arg_0 = dword ptr 8 .text:00000720 arg_4 = dword ptr 0Ch .text:00000720 .text:00000720 push ebp .text:00000721 mov ebp, esp .text:00000723 sub esp, 0Ch .text:00000726 mov eax, [ebp+arg_0] .text:00000729 add eax, 74h ; 't' .text:0000072C mov [ebp+var_4], eax .text:0000072F mov ecx, [ebp+arg_4] .text:00000732 cmp dword ptr [ecx+28h], 0 .text:00000736 jnz short loc_73D .text:00000738 or eax, 0FFFFFFFFh .text:0000073B jmp short loc_7A1 .text:0000073D ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000073D .text:0000073D loc_73D: ; CODE XREF: _FlAcpiConfigureFloppy+16j .text:0000073D mov edx, [ebp+arg_4] .text:00000740 mov eax, [edx+30h] .text:00000743 mov [ebp+var_C], eax .text:00000746 mov ecx, [ebp+var_C] .text:00000749 sub ecx, 1 .text:0000074C mov [ebp+var_C], ecx .text:0000074F cmp [ebp+var_C], 4 .text:00000753 ja short loc_78C .text:00000755 mov edx, [ebp+var_C] .text:00000758 jmp ds:$LN12[edx*4] .text:0000075F .text:0000075F $LN6: ; DATA XREF: .text:$LN12o .text:0000075F mov [ebp+var_8], 0 .text:00000766 jmp short loc_793 .text:00000768 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000768 .text:00000768 $LN5: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:00000768 ; DATA XREF: .text:000007ACo .text:00000768 mov [ebp+var_8], 1 .text:0000076F jmp short loc_793 .text:00000771 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000771 .text:00000771 $LN4: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:00000771 ; DATA XREF: .text:000007B0o .text:00000771 mov [ebp+var_8], 2 .text:00000778 jmp short loc_793 .text:0000077A ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000077A .text:0000077A $LN3: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:0000077A ; DATA XREF: .text:000007B4o .text:0000077A mov [ebp+var_8], 3 .text:00000781 jmp short loc_793 .text:00000783 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000783 .text:00000783 $LN2: ; CODE XREF: _FlAcpiConfigureFloppy+38j .text:00000783 ; DATA XREF: .text:000007B8o .text:00000783 mov [ebp+var_8], 4 .text:0000078A jmp short loc_793 .text:0000078C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000078C .text:0000078C loc_78C: ; CODE XREF: _FlAcpiConfigureFloppy+33j .text:0000078C mov [ebp+var_8], 1 .text:00000793 .text:00000793 loc_793: ; CODE XREF: _FlAcpiConfigureFloppy+46j .text:00000793 ; _FlAcpiConfigureFloppy+4Fj ... .text:00000793 mov eax, [ebp+arg_0] .text:00000796 mov ecx, [ebp+var_8] .text:00000799 mov [eax+5Ch], ecx .text:0000079C mov eax, 1 .text:000007A1 .text:000007A1 loc_7A1: ; CODE XREF: _FlAcpiConfigureFloppy+1Bj .text:000007A1 mov esp, ebp .text:000007A3 pop ebp .text:000007A4 retn .text:000007A4 _FlAcpiConfigureFloppy endp .text:000007A4 .text:000007A4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000007A5 align 4 .text:000007A8 $LN12 dd offset $LN6 ; DATA XREF: _FlAcpiConfigureFloppy+38r .text:000007AC dd offset $LN5 .text:000007B0 dd offset $LN4 .text:000007B4 dd offset $LN3 .text:000007B8 dd offset $LN2 .text:000007BC align 10h .text:000007C0 .text:000007C0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:000007C0 .text:000007C0 ; Attributes: bp-based frame .text:000007C0 .text:000007C0 public _FloppyPnp .text:000007C0 _FloppyPnp proc near ; CODE XREF: _main+1ABp .text:000007C0 .text:000007C0 var_10 = dword ptr -10h .text:000007C0 var_C = dword ptr -0Ch .text:000007C0 var_8 = dword ptr -8 .text:000007C0 arg_0 = dword ptr 8 .text:000007C0 arg_4 = dword ptr 0Ch .text:000007C0 .text:000007C0 push ebp .text:000007C1 mov ebp, esp .text:000007C3 sub esp, 10h .text:000007C6 mov [ebp+var_C], 1 .text:000007CD call _FloppyResetDriverPaging .text:000007D2 mov eax, [ebp+arg_0] .text:000007D5 mov ecx, [eax+24h] .text:000007D8 mov [ebp+var_8], ecx .text:000007DB mov edx, [ebp+arg_4] .text:000007DE push edx .text:000007DF call _IoGetCurrentIrpStackLocation .text:000007E4 add esp, 4 .text:000007E7 mov [ebp+var_10], eax .text:000007EA mov eax, [ebp+var_8] .text:000007ED cmp dword ptr [eax+10h], 0 .text:000007F1 jz short loc_81C .text:000007F3 mov ecx, [ebp+arg_4] .text:000007F6 mov dword ptr [ecx+10h], 0 .text:000007FD mov edx, [ebp+arg_4] .text:00000800 mov dword ptr [edx+0Ch], 0FFFFFFC8h .text:00000807 push 0 .text:00000809 mov eax, [ebp+arg_4] .text:0000080C push eax .text:0000080D call _IoCompleteRequest .text:00000812 add esp, 8 .text:00000815 mov eax, 0FFFFFFC8h .text:0000081A jmp short loc_832 .text:0000081C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000081C .text:0000081C loc_81C: ; CODE XREF: _FloppyPnp+31j .text:0000081C mov ecx, [ebp+arg_4] .text:0000081F push ecx .text:00000820 mov edx, [ebp+arg_0] .text:00000823 push edx .text:00000824 call _FloppyStartDevice .text:00000829 add esp, 8 .text:0000082C mov [ebp+var_C], eax .text:0000082F mov eax, [ebp+var_C] .text:00000832 .text:00000832 loc_832: ; CODE XREF: _FloppyPnp+5Aj .text:00000832 mov esp, ebp .text:00000834 pop ebp .text:00000835 retn .text:00000835 _FloppyPnp endp .text:00000835 .text:00000835 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000836 align 10h .text:00000840 .text:00000840 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000840 .text:00000840 ; Attributes: bp-based frame .text:00000840 .text:00000840 public _FloppyUnload .text:00000840 _FloppyUnload proc near ; CODE XREF: _main+1CFp .text:00000840 push ebp .text:00000841 mov ebp, esp .text:00000843 pop ebp .text:00000844 retn .text:00000844 _FloppyUnload endp .text:00000844 .text:00000844 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000845 align 10h .text:00000850 .text:00000850 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000850 .text:00000850 ; Attributes: bp-based frame .text:00000850 .text:00000850 public _ZwClose .text:00000850 _ZwClose proc near .text:00000850 push ebp .text:00000851 mov ebp, esp .text:00000853 xor eax, eax .text:00000855 pop ebp .text:00000856 retn .text:00000856 _ZwClose endp .text:00000856 .text:00000856 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000857 align 10h .text:00000860 .text:00000860 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000860 .text:00000860 ; Attributes: bp-based frame .text:00000860 .text:00000860 public _IoSetCancelRoutine .text:00000860 _IoSetCancelRoutine proc near ; CODE XREF: _FloppyQueueRequest+1Bp .text:00000860 push ebp .text:00000861 mov ebp, esp .text:00000863 pop ebp .text:00000864 retn .text:00000864 _IoSetCancelRoutine endp .text:00000864 .text:00000864 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000865 align 10h .text:00000870 .text:00000870 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000870 .text:00000870 ; Attributes: bp-based frame .text:00000870 .text:00000870 public _IoMarkIrpPending .text:00000870 _IoMarkIrpPending proc near ; CODE XREF: _FlQueueIrpToThread+144p .text:00000870 ; _FloppyQueueRequest+77p .text:00000870 .text:00000870 arg_0 = dword ptr 8 .text:00000870 .text:00000870 push ebp .text:00000871 mov ebp, esp .text:00000873 mov dword ptr ds:_markIrpPending, 1 .text:0000087D mov eax, [ebp+arg_0] .text:00000880 mov dword ptr [eax+14h], 1 .text:00000887 pop ebp .text:00000888 retn .text:00000888 _IoMarkIrpPending endp .text:00000888 .text:00000888 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000889 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 _FloppyPower .text:00000890 _FloppyPower proc near .text:00000890 .text:00000890 var_20 = dword ptr -20h .text:00000890 var_1C = dword ptr -1Ch .text:00000890 var_18 = dword ptr -18h .text:00000890 var_14 = dword ptr -14h .text:00000890 var_10 = dword ptr -10h .text:00000890 var_C = dword ptr -0Ch .text:00000890 var_8 = dword ptr -8 .text:00000890 var_4 = dword ptr -4 .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, 20h .text:00000896 mov eax, [ebp+arg_4] .text:00000899 mov ecx, [eax+0Ch] .text:0000089C mov [ebp+var_10], ecx .text:0000089F mov [ebp+var_C], 1 .text:000008A6 mov edx, [ebp+arg_0] .text:000008A9 mov eax, [edx+24h] .text:000008AC mov [ebp+var_4], eax .text:000008AF mov ecx, [ebp+arg_4] .text:000008B2 push ecx .text:000008B3 call _IoGetCurrentIrpStackLocation .text:000008B8 add esp, 4 .text:000008BB mov [ebp+var_14], eax .text:000008BE mov edx, [ebp+var_14] .text:000008C1 mov eax, [edx+20h] .text:000008C4 mov [ebp+var_8], eax .text:000008C7 mov ecx, [ebp+var_14] .text:000008CA mov edx, [ecx+24h] .text:000008CD mov eax, [ecx+28h] .text:000008D0 mov [ebp+var_1C], edx .text:000008D3 mov [ebp+var_18], eax .text:000008D6 mov ecx, [ebp+var_14] .text:000008D9 mov edx, [ecx+4] .text:000008DC mov [ebp+var_20], edx .text:000008DF cmp [ebp+var_20], 2 .text:000008E3 jz loc_9DC .text:000008E9 cmp [ebp+var_20], 3 .text:000008ED jz short loc_8F4 .text:000008EF jmp loc_A55 .text:000008F4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000008F4 .text:000008F4 loc_8F4: ; CODE XREF: _FloppyPower+5Dj .text:000008F4 cmp [ebp+var_8], 0 .text:000008F8 jnz short loc_90C .text:000008FA cmp [ebp+var_1C], 5 .text:000008FE jle short loc_90C .text:00000900 mov [ebp+var_10], 1 .text:00000907 jmp loc_A55 .text:0000090C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000090C .text:0000090C loc_90C: ; CODE XREF: _FloppyPower+68j .text:0000090C ; _FloppyPower+6Ej .text:0000090C call _ExAcquireFastMutex .text:00000911 mov eax, [ebp+var_4] .text:00000914 cmp dword ptr [eax+38h], 0 .text:00000918 jle short loc_963 .text:0000091A mov ecx, [ebp+var_4] .text:0000091D add ecx, 2Ch ; ',' .text:00000920 push ecx .text:00000921 call _ExReleaseFastMutex .text:00000926 add esp, 4 .text:00000929 mov edx, [ebp+arg_4] .text:0000092C push edx .text:0000092D call _PoStartNextPowerIrp .text:00000932 add esp, 4 .text:00000935 mov eax, [ebp+arg_4] .text:00000938 mov dword ptr [eax+10h], 0 .text:0000093F mov ecx, [ebp+arg_4] .text:00000942 mov dword ptr [ecx+0Ch], 0FFFFFFF5h .text:00000949 push 0 .text:0000094B mov edx, [ebp+arg_4] .text:0000094E push edx .text:0000094F call _IoCompleteRequest .text:00000954 add esp, 8 .text:00000957 mov eax, 0FFFFFFF5h .text:0000095C jmp loc_A86 .text:00000961 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000961 jmp short loc_9D3 .text:00000963 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000963 .text:00000963 loc_963: ; CODE XREF: _FloppyPower+88j .text:00000963 mov eax, [ebp+var_4] .text:00000966 cmp dword ptr [eax+38h], 0 .text:0000096A jnz short loc_9C4 .text:0000096C mov ecx, [ebp+var_4] .text:0000096F cmp dword ptr [ecx+3Ch], 0 .text:00000973 jz short loc_9C4 .text:00000975 mov edx, [ebp+var_4] .text:00000978 add edx, 2Ch ; ',' .text:0000097B push edx .text:0000097C call _ExReleaseFastMutex .text:00000981 add esp, 4 .text:00000984 call _ExAcquireFastMutex .text:00000989 mov eax, [ebp+var_4] .text:0000098C mov dword ptr [eax+118h], 1 .text:00000996 mov ecx, [ebp+var_4] .text:00000999 add ecx, 100h .text:0000099F push ecx .text:000009A0 call _ExReleaseFastMutex .text:000009A5 add esp, 4 .text:000009A8 push 0 .text:000009AA push 0 .text:000009AC push 0 .text:000009AE push 0 .text:000009B0 mov edx, [ebp+var_4] .text:000009B3 add edx, 11Ch .text:000009B9 push edx .text:000009BA call _KeWaitForSingleObject .text:000009BF add esp, 14h .text:000009C2 jmp short loc_9D3 .text:000009C4 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000009C4 .text:000009C4 loc_9C4: ; CODE XREF: _FloppyPower+DAj .text:000009C4 ; _FloppyPower+E3j .text:000009C4 mov eax, [ebp+var_4] .text:000009C7 add eax, 2Ch ; ',' .text:000009CA push eax .text:000009CB call _ExReleaseFastMutex .text:000009D0 add esp, 4 .text:000009D3 .text:000009D3 loc_9D3: ; CODE XREF: _FloppyPower+D1j .text:000009D3 ; _FloppyPower+132j .text:000009D3 mov [ebp+var_10], 1 .text:000009DA jmp short loc_A55 .text:000009DC ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:000009DC .text:000009DC loc_9DC: ; CODE XREF: _FloppyPower+53j .text:000009DC cmp [ebp+var_8], 0 .text:000009E0 jnz short loc_A4E .text:000009E2 call _ExAcquireFastMutex .text:000009E7 cmp [ebp+var_1C], 1 .text:000009EB jnz short loc_A03 .text:000009ED mov ecx, [ebp+var_4] .text:000009F0 mov dword ptr [ecx+0FCh], 0 .text:000009FA mov [ebp+var_C], 0 .text:00000A01 jmp short loc_A17 .text:00000A03 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000A03 .text:00000A03 loc_A03: ; CODE XREF: _FloppyPower+15Bj .text:00000A03 mov [ebp+var_C], 1 .text:00000A0A mov edx, [ebp+var_4] .text:00000A0D mov dword ptr [edx+0FCh], 1 .text:00000A17 .text:00000A17 loc_A17: ; CODE XREF: _FloppyPower+171j .text:00000A17 mov eax, [ebp+var_4] .text:00000A1A add eax, 100h .text:00000A1F push eax .text:00000A20 call _ExReleaseFastMutex .text:00000A25 add esp, 4 .text:00000A28 mov ecx, [ebp+var_4] .text:00000A2B cmp dword ptr [ecx+3Ch], 0 .text:00000A2F jz short loc_A4E .text:00000A31 cmp [ebp+var_C], 1 .text:00000A35 jnz short loc_A4E .text:00000A37 push 0 .text:00000A39 push 0 .text:00000A3B push 0 .text:00000A3D push 0 .text:00000A3F mov edx, [ebp+var_4] .text:00000A42 mov eax, [edx+3Ch] .text:00000A45 push eax .text:00000A46 call _KeWaitForSingleObject .text:00000A4B add esp, 14h .text:00000A4E .text:00000A4E loc_A4E: ; CODE XREF: _FloppyPower+150j .text:00000A4E ; _FloppyPower+19Fj ... .text:00000A4E mov [ebp+var_10], 1 .text:00000A55 .text:00000A55 loc_A55: ; CODE XREF: _FloppyPower+5Fj .text:00000A55 ; _FloppyPower+77j ... .text:00000A55 mov ecx, [ebp+arg_4] .text:00000A58 push ecx .text:00000A59 call _PoStartNextPowerIrp .text:00000A5E add esp, 4 .text:00000A61 mov edx, [ebp+arg_4] .text:00000A64 push edx .text:00000A65 call _IoSkipCurrentIrpStackLocation .text:00000A6A add esp, 4 .text:00000A6D mov eax, [ebp+arg_4] .text:00000A70 push eax .text:00000A71 mov ecx, [ebp+var_4] .text:00000A74 mov edx, [ecx+8] .text:00000A77 push edx .text:00000A78 call _PoCallDriver .text:00000A7D add esp, 8 .text:00000A80 mov [ebp+var_10], eax .text:00000A83 mov eax, [ebp+var_10] .text:00000A86 .text:00000A86 loc_A86: ; CODE XREF: _FloppyPower+CCj .text:00000A86 mov esp, ebp .text:00000A88 pop ebp .text:00000A89 retn .text:00000A89 _FloppyPower endp .text:00000A89 .text:00000A89 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000A8A align 10h .text:00000A90 .text:00000A90 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000A90 .text:00000A90 ; Attributes: bp-based frame .text:00000A90 .text:00000A90 public _FlQueueIrpToThread .text:00000A90 _FlQueueIrpToThread proc near ; CODE XREF: _FloppyDeviceControl+F3p .text:00000A90 .text:00000A90 var_28 = dword ptr -28h .text:00000A90 var_10 = dword ptr -10h .text:00000A90 var_8 = dword ptr -8 .text:00000A90 arg_0 = dword ptr 8 .text:00000A90 arg_4 = dword ptr 0Ch .text:00000A90 .text:00000A90 push ebp .text:00000A91 mov ebp, esp .text:00000A93 sub esp, 28h .text:00000A96 mov eax, [ebp+arg_0] .text:00000A99 push eax .text:00000A9A call _IoGetCurrentIrpStackLocation .text:00000A9F add esp, 4 .text:00000AA2 mov [ebp+var_8], eax .text:00000AA5 call _ExAcquireFastMutex .text:00000AAA mov ecx, [ebp+arg_4] .text:00000AAD cmp dword ptr [ecx+0FCh], 1 .text:00000AB4 jnz short loc_AE6 .text:00000AB6 mov edx, [ebp+arg_4] .text:00000AB9 add edx, 100h .text:00000ABF push edx .text:00000AC0 call _ExReleaseFastMutex .text:00000AC5 add esp, 4 .text:00000AC8 mov eax, [ebp+arg_0] .text:00000ACB mov dword ptr [eax+0Ch], 0FFFFFFE9h .text:00000AD2 mov ecx, [ebp+arg_0] .text:00000AD5 mov dword ptr [ecx+10h], 0 .text:00000ADC mov eax, 0FFFFFFE9h .text:00000AE1 jmp loc_BFD .text:00000AE6 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000AE6 .text:00000AE6 loc_AE6: ; CODE XREF: _FlQueueIrpToThread+24j .text:00000AE6 mov edx, [ebp+arg_4] .text:00000AE9 add edx, 100h .text:00000AEF push edx .text:00000AF0 call _ExReleaseFastMutex .text:00000AF5 add esp, 4 .text:00000AF8 call _ExAcquireFastMutex .text:00000AFD mov eax, [ebp+arg_4] .text:00000B00 mov ecx, [eax+38h] .text:00000B03 add ecx, 1 .text:00000B06 mov edx, [ebp+arg_4] .text:00000B09 mov [edx+38h], ecx .text:00000B0C mov eax, [ebp+arg_4] .text:00000B0F cmp dword ptr [eax+38h], 0 .text:00000B13 jnz loc_BC1 .text:00000B19 mov ecx, [ebp+arg_4] .text:00000B1C mov edx, [ecx+38h] .text:00000B1F add edx, 1 .text:00000B22 mov eax, [ebp+arg_4] .text:00000B25 mov [eax+38h], edx .text:00000B28 call _FloppyResetDriverPaging .text:00000B2D push 0 .text:00000B2F push 0 .text:00000B31 push 0 .text:00000B33 push 0 .text:00000B35 lea ecx, [ebp+var_28] .text:00000B38 push ecx .text:00000B39 call _InitializeObjectAttributes .text:00000B3E add esp, 14h .text:00000B41 call _PsCreateSystemThread .text:00000B46 mov [ebp+var_10], eax .text:00000B49 cmp [ebp+var_10], 0 .text:00000B4D jge short loc_B75 .text:00000B4F mov edx, [ebp+arg_4] .text:00000B52 mov dword ptr [edx+38h], 0FFFFFFFFh .text:00000B59 call _FloppyPageEntireDriver .text:00000B5E mov eax, [ebp+arg_4] .text:00000B61 add eax, 2Ch ; ',' .text:00000B64 push eax .text:00000B65 call _ExReleaseFastMutex .text:00000B6A add esp, 4 .text:00000B6D mov eax, [ebp+var_10] .text:00000B70 jmp loc_BFD .text:00000B75 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000B75 .text:00000B75 loc_B75: ; CODE XREF: _FlQueueIrpToThread+BDj .text:00000B75 call _ObReferenceObjectByHandle .text:00000B7A mov [ebp+var_10], eax .text:00000B7D cmp [ebp+var_10], 0 .text:00000B81 jge short loc_BB0 .text:00000B83 mov ecx, [ebp+arg_4] .text:00000B86 mov dword ptr [ecx+38h], 0FFFFFFFFh .text:00000B8D mov edx, [ebp+arg_4] .text:00000B90 mov dword ptr [edx+3Ch], 0 .text:00000B97 call _FloppyPageEntireDriver .text:00000B9C mov eax, [ebp+arg_4] .text:00000B9F add eax, 2Ch ; ',' .text:00000BA2 push eax .text:00000BA3 call _ExReleaseFastMutex .text:00000BA8 add esp, 4 .text:00000BAB mov eax, [ebp+var_10] .text:00000BAE jmp short loc_BFD .text:00000BB0 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000BB0 .text:00000BB0 loc_BB0: ; CODE XREF: _FlQueueIrpToThread+F1j .text:00000BB0 mov ecx, [ebp+arg_4] .text:00000BB3 add ecx, 2Ch ; ',' .text:00000BB6 push ecx .text:00000BB7 call _ExReleaseFastMutex .text:00000BBC add esp, 4 .text:00000BBF jmp short loc_BD0 .text:00000BC1 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000BC1 .text:00000BC1 loc_BC1: ; CODE XREF: _FlQueueIrpToThread+83j .text:00000BC1 mov edx, [ebp+arg_4] .text:00000BC4 add edx, 2Ch ; ',' .text:00000BC7 push edx .text:00000BC8 call _ExReleaseFastMutex .text:00000BCD add esp, 4 .text:00000BD0 .text:00000BD0 loc_BD0: ; CODE XREF: _FlQueueIrpToThread+12Fj .text:00000BD0 mov eax, [ebp+arg_0] .text:00000BD3 push eax .text:00000BD4 call _IoMarkIrpPending .text:00000BD9 add esp, 4 .text:00000BDC mov ecx, [ebp+arg_0] .text:00000BDF push ecx .text:00000BE0 call _ExInterlockedInsertTailList .text:00000BE5 add esp, 4 .text:00000BE8 push 0 .text:00000BEA push 1 .text:00000BEC push 0 .text:00000BEE push 0 .text:00000BF0 call _KeReleaseSemaphore .text:00000BF5 add esp, 10h .text:00000BF8 mov eax, 0FFFFFF99h .text:00000BFD .text:00000BFD loc_BFD: ; CODE XREF: _FlQueueIrpToThread+51j .text:00000BFD ; _FlQueueIrpToThread+E0j ... .text:00000BFD mov esp, ebp .text:00000BFF pop ebp .text:00000C00 retn .text:00000C00 _FlQueueIrpToThread endp .text:00000C00 .text:00000C00 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000C01 align 10h .text:00000C10 .text:00000C10 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000C10 .text:00000C10 ; Attributes: bp-based frame .text:00000C10 .text:00000C10 public _FloppyQueueRequest .text:00000C10 _FloppyQueueRequest proc near ; CODE XREF: _FloppyDeviceControl+47p .text:00000C10 .text:00000C10 var_8 = dword ptr -8 .text:00000C10 var_4 = dword ptr -4 .text:00000C10 arg_0 = dword ptr 8 .text:00000C10 arg_4 = dword ptr 0Ch .text:00000C10 .text:00000C10 push ebp .text:00000C11 mov ebp, esp .text:00000C13 sub esp, 8 .text:00000C16 call _FloppyResetDriverPaging .text:00000C1B lea eax, [ebp+var_4] .text:00000C1E push eax .text:00000C1F mov ecx, [ebp+arg_0] .text:00000C22 push ecx .text:00000C23 call _KeAcquireSpinLock .text:00000C28 add esp, 8 .text:00000C2B call _IoSetCancelRoutine .text:00000C30 mov edx, [ebp+arg_4] .text:00000C33 cmp dword ptr [edx+20h], 0 .text:00000C37 jz short loc_C79 .text:00000C39 mov eax, [ebp+arg_4] .text:00000C3C mov dword ptr [eax+0Ch], 0FFFFFF88h .text:00000C43 mov ecx, [ebp+arg_4] .text:00000C46 mov dword ptr [ecx+10h], 0 .text:00000C4D mov edx, [ebp+var_4] .text:00000C50 push edx .text:00000C51 mov eax, [ebp+arg_0] .text:00000C54 push eax .text:00000C55 call _KeReleaseSpinLock .text:00000C5A add esp, 8 .text:00000C5D push 0 .text:00000C5F mov ecx, [ebp+arg_4] .text:00000C62 push ecx .text:00000C63 call _IoCompleteRequest .text:00000C68 add esp, 8 .text:00000C6B call _FloppyPageEntireDriver .text:00000C70 mov [ebp+var_8], 0FFFFFF88h .text:00000C77 jmp short loc_CB2 .text:00000C79 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000C79 .text:00000C79 loc_C79: ; CODE XREF: _FloppyQueueRequest+27j .text:00000C79 mov edx, [ebp+arg_4] .text:00000C7C mov dword ptr [edx+0Ch], 0FFFFFF99h .text:00000C83 mov eax, [ebp+arg_4] .text:00000C86 push eax .text:00000C87 call _IoMarkIrpPending .text:00000C8C add esp, 4 .text:00000C8F mov ecx, [ebp+arg_4] .text:00000C92 push ecx .text:00000C93 call _ExInterlockedInsertTailList .text:00000C98 add esp, 4 .text:00000C9B mov edx, [ebp+var_4] .text:00000C9E push edx .text:00000C9F mov eax, [ebp+arg_0] .text:00000CA2 push eax .text:00000CA3 call _KeReleaseSpinLock .text:00000CA8 add esp, 8 .text:00000CAB mov [ebp+var_8], 0FFFFFF99h .text:00000CB2 .text:00000CB2 loc_CB2: ; CODE XREF: _FloppyQueueRequest+67j .text:00000CB2 cmp [ebp+var_8], 0FFFFFF99h .text:00000CB6 jnz short loc_CC1 .text:00000CB8 cmp dword ptr ds:_queuedWithoutMarking, 1 .text:00000CBF jz short loc_CD0 .text:00000CC1 .text:00000CC1 loc_CC1: ; CODE XREF: _FloppyQueueRequest+A6j .text:00000CC1 cmp [ebp+var_8], 0FFFFFF99h .text:00000CC5 jz short loc_CDA .text:00000CC7 cmp dword ptr ds:_markIrpPending, 1 .text:00000CCE jnz short loc_CDA .text:00000CD0 .text:00000CD0 loc_CD0: ; CODE XREF: _FloppyQueueRequest+AFj .text:00000CD0 mov dword ptr ds:_yogi_error, 1 .text:00000CDA .text:00000CDA loc_CDA: ; CODE XREF: _FloppyQueueRequest+B5j .text:00000CDA ; _FloppyQueueRequest+BEj .text:00000CDA mov eax, [ebp+var_8] .text:00000CDD mov esp, ebp .text:00000CDF pop ebp .text:00000CE0 retn .text:00000CE0 _FloppyQueueRequest endp .text:00000CE0 .text:00000CE0 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000CE1 align 10h .text:00000CF0 .text:00000CF0 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000CF0 .text:00000CF0 ; Attributes: bp-based frame .text:00000CF0 .text:00000CF0 public _FloppyDeviceControl .text:00000CF0 _FloppyDeviceControl proc near ; CODE XREF: _FloppyProcessQueuedRequests+D4p .text:00000CF0 ; _main+18Ep .text:00000CF0 .text:00000CF0 var_28 = dword ptr -28h .text:00000CF0 var_24 = dword ptr -24h .text:00000CF0 var_10 = dword ptr -10h .text:00000CF0 arg_0 = dword ptr 8 .text:00000CF0 arg_4 = dword ptr 0Ch .text:00000CF0 .text:00000CF0 push ebp .text:00000CF1 mov ebp, esp .text:00000CF3 sub esp, 28h .text:00000CF6 mov eax, [ebp+arg_0] .text:00000CF9 mov ecx, [eax+24h] .text:00000CFC mov [ebp+var_10], ecx .text:00000CFF mov edx, [ebp+arg_4] .text:00000D02 push edx .text:00000D03 call _IoGetCurrentIrpStackLocation .text:00000D08 add esp, 4 .text:00000D0B mov [ebp+var_28], eax .text:00000D0E mov eax, [ebp+arg_4] .text:00000D11 mov dword ptr [eax+10h], 0 .text:00000D18 call _ExAcquireFastMutex .text:00000D1D mov ecx, [ebp+var_10] .text:00000D20 cmp dword ptr [ecx+14h], 0 .text:00000D24 jz short loc_D5C .text:00000D26 mov edx, [ebp+var_28] .text:00000D29 cmp dword ptr [edx+18h], 64h ; 'd' .text:00000D2D jz short loc_D5C .text:00000D2F mov eax, [ebp+arg_4] .text:00000D32 push eax .text:00000D33 mov ecx, [ebp+var_10] .text:00000D36 push ecx .text:00000D37 call _FloppyQueueRequest .text:00000D3C add esp, 8 .text:00000D3F mov [ebp+var_24], eax .text:00000D42 mov edx, [ebp+var_10] .text:00000D45 add edx, 10Ch .text:00000D4B push edx .text:00000D4C call _ExReleaseFastMutex .text:00000D51 add esp, 4 .text:00000D54 mov eax, [ebp+var_24] .text:00000D57 jmp loc_E03 .text:00000D5C ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000D5C .text:00000D5C loc_D5C: ; CODE XREF: _FloppyDeviceControl+34j .text:00000D5C ; _FloppyDeviceControl+3Dj .text:00000D5C mov eax, [ebp+var_10] .text:00000D5F cmp dword ptr [eax+10h], 0 .text:00000D63 jz short loc_DA0 .text:00000D65 mov ecx, [ebp+var_10] .text:00000D68 add ecx, 10Ch .text:00000D6E push ecx .text:00000D6F call _ExReleaseFastMutex .text:00000D74 add esp, 4 .text:00000D77 mov edx, [ebp+arg_4] .text:00000D7A mov dword ptr [edx+10h], 0 .text:00000D81 mov eax, [ebp+arg_4] .text:00000D84 mov dword ptr [eax+0Ch], 0FFFFFFC8h .text:00000D8B push 0 .text:00000D8D mov ecx, [ebp+arg_4] .text:00000D90 push ecx .text:00000D91 call _IoCompleteRequest .text:00000D96 add esp, 8 .text:00000D99 mov eax, 0FFFFFFC8h .text:00000D9E jmp short loc_E03 .text:00000DA0 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000DA0 .text:00000DA0 loc_DA0: ; CODE XREF: _FloppyDeviceControl+73j .text:00000DA0 mov edx, [ebp+var_10] .text:00000DA3 cmp dword ptr [edx+0Ch], 0 .text:00000DA7 jnz short loc_DDB .text:00000DA9 mov eax, [ebp+var_10] .text:00000DAC add eax, 10Ch .text:00000DB1 push eax .text:00000DB2 call _ExReleaseFastMutex .text:00000DB7 add esp, 4 .text:00000DBA mov ecx, [ebp+arg_4] .text:00000DBD push ecx .text:00000DBE call _IoSkipCurrentIrpStackLocation .text:00000DC3 add esp, 4 .text:00000DC6 mov edx, [ebp+arg_4] .text:00000DC9 push edx .text:00000DCA mov eax, [ebp+var_10] .text:00000DCD mov ecx, [eax+8] .text:00000DD0 push ecx .text:00000DD1 call _IoCallDriver .text:00000DD6 add esp, 8 .text:00000DD9 jmp short loc_E03 .text:00000DDB ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000DDB .text:00000DDB loc_DDB: ; CODE XREF: _FloppyDeviceControl+B7j .text:00000DDB mov edx, [ebp+var_10] .text:00000DDE push edx .text:00000DDF mov eax, [ebp+arg_4] .text:00000DE2 push eax .text:00000DE3 call _FlQueueIrpToThread .text:00000DE8 add esp, 8 .text:00000DEB mov [ebp+var_24], eax .text:00000DEE mov ecx, [ebp+var_10] .text:00000DF1 add ecx, 10Ch .text:00000DF7 push ecx .text:00000DF8 call _ExReleaseFastMutex .text:00000DFD add esp, 4 .text:00000E00 mov eax, [ebp+var_24] .text:00000E03 .text:00000E03 loc_E03: ; CODE XREF: _FloppyDeviceControl+67j .text:00000E03 ; _FloppyDeviceControl+AEj ... .text:00000E03 mov esp, ebp .text:00000E05 pop ebp .text:00000E06 retn .text:00000E06 _FloppyDeviceControl endp .text:00000E06 .text:00000E06 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E07 align 10h .text:00000E10 .text:00000E10 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000E10 .text:00000E10 ; Attributes: bp-based frame .text:00000E10 .text:00000E10 public _FloppyCreateClose .text:00000E10 _FloppyCreateClose proc near ; CODE XREF: _main+152p .text:00000E10 ; _main+170p .text:00000E10 .text:00000E10 arg_4 = dword ptr 0Ch .text:00000E10 .text:00000E10 push ebp .text:00000E11 mov ebp, esp .text:00000E13 mov eax, [ebp+arg_4] .text:00000E16 mov dword ptr [eax+0Ch], 1 .text:00000E1D mov ecx, [ebp+arg_4] .text:00000E20 mov dword ptr [ecx+10h], 1 .text:00000E27 mov eax, 1 .text:00000E2C pop ebp .text:00000E2D retn .text:00000E2D _FloppyCreateClose endp .text:00000E2D .text:00000E2D ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E2E align 10h .text:00000E30 .text:00000E30 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000E30 .text:00000E30 ; Attributes: bp-based frame .text:00000E30 .text:00000E30 public __Yogi_init .text:00000E30 __Yogi_init proc near ; CODE XREF: _main+43p .text:00000E30 push ebp .text:00000E31 mov ebp, esp .text:00000E33 mov dword ptr ds:_markIrpPending, 0 .text:00000E3D mov dword ptr ds:_queuedWithoutMarking, 0 .text:00000E47 mov dword ptr ds:_yogi_error, 0 .text:00000E51 pop ebp .text:00000E52 retn .text:00000E52 __Yogi_init endp .text:00000E52 .text:00000E52 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000E53 align 10h .text:00000E60 .text:00000E60 ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ .text:00000E60 .text:00000E60 ; Attributes: bp-based frame .text:00000E60 .text:00000E60 public _main .text:00000E60 _main proc near .text:00000E60 .text:00000E60 var_8E4 = dword ptr -8E4h .text:00000E60 var_8E0 = dword ptr -8E0h .text:00000E60 var_8BC = dword ptr -8BCh .text:00000E60 var_894 = dword ptr -894h .text:00000E60 var_890 = dword ptr -890h .text:00000E60 var_BC = dword ptr -0BCh .text:00000E60 var_B8 = dword ptr -0B8h .text:00000E60 var_90 = dword ptr -90h .text:00000E60 var_8C = dword ptr -8Ch .text:00000E60 var_88 = dword ptr -88h .text:00000E60 var_84 = dword ptr -84h .text:00000E60 var_4C = dword ptr -4Ch .text:00000E60 var_14 = dword ptr -14h .text:00000E60 var_10 = dword ptr -10h .text:00000E60 var_4 = dword ptr -4 .text:00000E60 .text:00000E60 push ebp .text:00000E61 mov ebp, esp .text:00000E63 sub esp, 8E4h .text:00000E69 mov eax, dword ptr ds:___security_cookie .text:00000E6E xor eax, ebp .text:00000E70 mov [ebp+var_BC], eax .text:00000E76 push esi .text:00000E77 push edi .text:00000E78 lea eax, [ebp+var_890] .text:00000E7E mov dword ptr ds:_malloc_starting_addr, eax .text:00000E83 mov ecx, 0Eh .text:00000E88 lea esi, [ebp+var_4C] .text:00000E8B lea edi, [ebp+var_84] .text:00000E91 rep movsd .text:00000E93 mov [ebp+var_8C], 0 .text:00000E9D mov ecx, [ebp+var_4] .text:00000EA0 mov [ebp+var_14], ecx .text:00000EA3 call __Yogi_init .text:00000EA8 lea edx, [ebp+var_84] .text:00000EAE mov dword ptr ds:_pirp, edx .text:00000EB4 lea eax, [ebp+var_10] .text:00000EB7 push eax .text:00000EB8 lea ecx, [ebp+var_B8] .text:00000EBE push ecx .text:00000EBF call _DriverEntry .text:00000EC4 add esp, 8 .text:00000EC7 mov [ebp+var_8C], eax .text:00000ECD cmp [ebp+var_8C], 0 .text:00000ED4 jl loc_1037 .text:00000EDA mov edx, [ebp+var_90] .text:00000EE0 mov [ebp+var_894], edx .text:00000EE6 push 130h .text:00000EEB call _malloc .text:00000EF0 add esp, 4 .text:00000EF3 mov [ebp+var_8BC], eax .text:00000EF9 mov eax, [ebp+var_8BC] .text:00000EFF mov dword ptr [eax+14h], 1 .text:00000F06 mov ecx, [ebp+var_8BC] .text:00000F0C mov dword ptr [ecx+10h], 0 .text:00000F13 mov edx, [ebp+var_8BC] .text:00000F19 mov dword ptr [edx+0Ch], 0 .text:00000F20 mov eax, [ebp+var_8BC] .text:00000F26 mov dword ptr [eax], 0 .text:00000F2C mov ecx, dword ptr ds:_NP .text:00000F32 mov dword ptr ds:_s, ecx .text:00000F38 mov edx, dword ptr ds:_pirp .text:00000F3E mov dword ptr [edx+0Ch], 0 .text:00000F45 mov dword ptr ds:_myStatus, 0 .text:00000F4F cmp [ebp+var_894], 0 .text:00000F56 jnz short loc_F6E .text:00000F58 mov eax, dword ptr ds:_pirp .text:00000F5D mov dword ptr [eax+0Ch], 0FFFFFFFFh .text:00000F64 mov dword ptr ds:_myStatus, 0FFFFFFFFh .text:00000F6E .text:00000F6E loc_F6E: ; CODE XREF: _main+F6j .text:00000F6E cmp [ebp+var_8C], 0 .text:00000F75 jge short loc_F7F .text:00000F77 or eax, 0FFFFFFFFh .text:00000F7A jmp loc_1055 .text:00000F7F ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000F7F .text:00000F7F loc_F7F: ; CODE XREF: _main+115j .text:00000F7F mov ecx, [ebp+var_88] .text:00000F85 mov [ebp+var_8E4], ecx .text:00000F8B cmp [ebp+var_8E4], 4 .text:00000F92 ja loc_101D .text:00000F98 mov edx, [ebp+var_8E4] .text:00000F9E jmp ds:$LN16[edx*4] .text:00000FA5 .text:00000FA5 $LN8: ; DATA XREF: .text:$LN16o .text:00000FA5 mov eax, dword ptr ds:_pirp .text:00000FAA push eax .text:00000FAB lea ecx, [ebp+var_8E0] .text:00000FB1 push ecx .text:00000FB2 call _FloppyCreateClose .text:00000FB7 add esp, 8 .text:00000FBA mov [ebp+var_8C], eax .text:00000FC0 jmp short loc_1022 .text:00000FC2 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000FC2 .text:00000FC2 $LN7: ; CODE XREF: _main+13Ej .text:00000FC2 ; DATA XREF: .text:0000106Co .text:00000FC2 mov edx, dword ptr ds:_pirp .text:00000FC8 push edx .text:00000FC9 lea eax, [ebp+var_8E0] .text:00000FCF push eax .text:00000FD0 call _FloppyCreateClose .text:00000FD5 add esp, 8 .text:00000FD8 mov [ebp+var_8C], eax .text:00000FDE jmp short loc_1022 .text:00000FE0 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000FE0 .text:00000FE0 $LN6_0: ; CODE XREF: _main+13Ej .text:00000FE0 ; DATA XREF: .text:00001070o .text:00000FE0 mov ecx, dword ptr ds:_pirp .text:00000FE6 push ecx .text:00000FE7 lea edx, [ebp+var_8E0] .text:00000FED push edx .text:00000FEE call _FloppyDeviceControl .text:00000FF3 add esp, 8 .text:00000FF6 mov [ebp+var_8C], eax .text:00000FFC jmp short loc_1022 .text:00000FFE ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00000FFE .text:00000FFE $LN5_0: ; CODE XREF: _main+13Ej .text:00000FFE ; DATA XREF: .text:00001074o .text:00000FFE mov eax, dword ptr ds:_pirp .text:00001003 push eax .text:00001004 lea ecx, [ebp+var_8E0] .text:0000100A push ecx .text:0000100B call _FloppyPnp .text:00001010 add esp, 8 .text:00001013 mov [ebp+var_8C], eax .text:00001019 jmp short loc_1022 .text:0000101B ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000101B .text:0000101B $LN4_0: ; CODE XREF: _main+13Ej .text:0000101B ; DATA XREF: .text:00001078o .text:0000101B jmp short loc_1022 .text:0000101D ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:0000101D .text:0000101D loc_101D: ; CODE XREF: _main+132j .text:0000101D or eax, 0FFFFFFFFh .text:00001020 jmp short loc_1055 .text:00001022 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00001022 .text:00001022 loc_1022: ; CODE XREF: _main+160j .text:00001022 ; _main+17Ej ... .text:00001022 cmp [ebp+var_14], 0 .text:00001026 jz short loc_1037 .text:00001028 lea edx, [ebp+var_B8] .text:0000102E push edx .text:0000102F call _FloppyUnload .text:00001034 add esp, 4 .text:00001037 .text:00001037 loc_1037: ; CODE XREF: _main+74j .text:00001037 ; _main+1C6j .text:00001037 mov [ebp+var_8C], 0 .text:00001041 cmp dword ptr ds:_yogi_error, 1 .text:00001048 jnz short loc_104F .text:0000104A call _error .text:0000104F .text:0000104F loc_104F: ; CODE XREF: _main+1E8j .text:0000104F mov eax, [ebp+var_8C] .text:00001055 .text:00001055 loc_1055: ; CODE XREF: _main+11Aj .text:00001055 ; _main+1C0j .text:00001055 pop edi .text:00001056 pop esi .text:00001057 mov ecx, [ebp+var_BC] .text:0000105D xor ecx, ebp .text:0000105F call @__security_check_cookie@4 ; __security_check_cookie(x) .text:00001064 mov esp, ebp .text:00001066 pop ebp .text:00001067 retn .text:00001067 _main endp .text:00001067 .text:00001067 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ .text:00001068 $LN16 dd offset $LN8 ; DATA XREF: _main+13Er .text:0000106C dd offset $LN7 .text:00001070 dd offset $LN6_0 .text:00001074 dd offset $LN5_0 .text:00001078 dd offset $LN4_0 .text:00001078 _text ends .text:00001078 UNDEF:00001080 ; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ UNDEF:00001080 UNDEF:00001080 ; Segment type: Externs UNDEF:00001080 ; UNDEF UNDEF:00001080 extrn _SKIP2:near UNDEF:00001084 extrn _yogi_error:near ; DATA XREF: _FloppyQueueRequest:loc_CD0w UNDEF:00001084 ; __Yogi_init+17w ... UNDEF:00001088 extrn _malloc_starting_addr:near ; DATA XREF: _my_malloc+4r UNDEF:00001088 ; _my_malloc+Cr ... UNDEF:0000108C extrn _DriveMediaLimits:near UNDEF:00001090 extrn _markIrpPending:near ; DATA XREF: _IoMarkIrpPending+3w UNDEF:00001090 ; _FloppyQueueRequest+B7r ... UNDEF:00001094 extrn _UNLOADED:near UNDEF:00001098 extrn _DC:near UNDEF:0000109C extrn _lowerDriverReturn:near UNDEF:000010A0 extrn _s:near ; DATA XREF: _main+D2w UNDEF:000010A4 extrn _IPC:near UNDEF:000010A8 extrn _pended:near UNDEF:000010AC extrn _MPR3:near UNDEF:000010B0 extrn _queuedWithoutMarking:near UNDEF:000010B0 ; DATA XREF: _ExInterlockedInsertTailList+Cw UNDEF:000010B0 ; _FloppyQueueRequest+A8r ... UNDEF:000010B4 extrn _NP:near ; DATA XREF: _main+CCr UNDEF:000010B8 extrn _myStatus:near ; DATA XREF: _main+E5w UNDEF:000010B8 ; _main+104w UNDEF:000010BC extrn _pirp:near ; DATA XREF: _main+4Ew UNDEF:000010BC ; _main+D8r ... UNDEF:000010C0 extrn _malloc:near ; CODE XREF: _ExAllocatePoolWithTag+8p UNDEF:000010C0 ; _IoGetConfigurationInformation+5p ... UNDEF:000010C4 extrn _SdvMakeChoice:near UNDEF:000010C4 ; CODE XREF: _PsCreateSystemThread+6p UNDEF:000010C4 ; _ObReferenceObjectByHandle+6p ... UNDEF:000010C8 extrn ___security_cookie:near ; DATA XREF: _main+9r UNDEF:000010CC ; __fastcall __security_check_cookie(x) UNDEF:000010CC extrn @__security_check_cookie@4:near ; CODE XREF: _main+1FFp UNDEF:000010CC UNDEF:000010CC UNDEF:000010CC end