
ndis.nostrip.sys:     file format pei-i386

Disassembly of section .text:

00011000 <_MainUnload@4>:
 * FUNCTION: Unloads the driver
 * ARGUMENTS:
 *     DriverObject = Pointer to driver object created by the system
 */
{
   11000:	55                   	push   %ebp
   11001:	89 e5                	mov    %esp,%ebp
   11003:	5d                   	pop    %ebp
   11004:	c2 04 00             	ret    $0x4
   11007:	89 f6                	mov    %esi,%esi
   11009:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011010 <_DriverEntry@8>:
  NDIS_DbgPrint(MAX_TRACE, ("Leaving.\n"));
}


NTSTATUS
STDCALL
DriverEntry(
    PDRIVER_OBJECT DriverObject,
    PUNICODE_STRING RegistryPath)
/*
 * FUNCTION: Main driver entry point
 * ARGUMENTS:
 *     DriverObject = Pointer to a driver object for this driver
 *     RegistryPath = Registry node for configuration parameters
 * RETURNS:
 *     Status of driver initialization
 */
{
   11010:	55                   	push   %ebp
   11011:	89 e5                	mov    %esp,%ebp
   11013:	83 ec 14             	sub    $0x14,%esp
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   11016:	c7 05 44 90 01 00 40 	movl   $0x19040,0x19044
   1101d:	90 01 00 
   11020:	c7 05 40 90 01 00 40 	movl   $0x19040,0x19040
   11027:	90 01 00 
  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  InitializeListHead(&ProtocolListHead);
  KeInitializeSpinLock(&ProtocolListLock);
   1102a:	68 50 90 01 00       	push   $0x19050
   1102f:	ff 15 78 e2 01 00    	call   *0x1e278
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   11035:	c7 05 24 90 01 00 20 	movl   $0x19020,0x19024
   1103c:	90 01 00 
   1103f:	c7 05 20 90 01 00 20 	movl   $0x19020,0x19020
   11046:	90 01 00 

  InitializeListHead(&MiniportListHead);
  KeInitializeSpinLock(&MiniportListLock);
   11049:	68 10 90 01 00       	push   $0x19010
   1104e:	ff 15 78 e2 01 00    	call   *0x1e278
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   11054:	c7 05 04 90 01 00 00 	movl   $0x19000,0x19004
   1105b:	90 01 00 
   1105e:	c7 05 00 90 01 00 00 	movl   $0x19000,0x19000
   11065:	90 01 00 

  InitializeListHead(&AdapterListHead);
  KeInitializeSpinLock(&AdapterListLock);
   11068:	68 30 90 01 00       	push   $0x19030
   1106d:	ff 15 78 e2 01 00    	call   *0x1e278

  DriverObject->DriverUnload = MainUnload;
   11073:	8b 45 08             	mov    0x8(%ebp),%eax
   11076:	c7 40 34 00 10 01 00 	movl   $0x11000,0x34(%eax)

  return STATUS_SUCCESS;
}
   1107d:	31 c0                	xor    %eax,%eax
   1107f:	c9                   	leave  
   11080:	c2 08 00             	ret    $0x8
   11083:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   11089:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011090 <_NdisWriteErrorLogEntry>:


/*
 * @implemented
 */
VOID
CDECL
NdisWriteErrorLogEntry(
    IN  NDIS_HANDLE     NdisAdapterHandle,
    IN  NDIS_ERROR_CODE ErrorCode,
    IN  ULONG           NumberOfErrorValues,
    ...) 
/*
 * FUNCTION: Write a syslog error
 * ARGUMENTS:
 *     NdisAdapterHandle:  Handle passed into MiniportInitialize
 *     ErrorCode:  32-bit error code to be logged
 *     NumberOfErrorValues: number of errors to log
 *     Variable: list of log items
 * NOTES:
 *     - THIS IS >CDECL<
 *     - This needs to be fixed to do var args
 *     - FIXME - this needs to be properly implemented once we have an event log
 */
{
   11090:	55                   	push   %ebp
   11091:	89 e5                	mov    %esp,%ebp
   11093:	5d                   	pop    %ebp
   11094:	c3                   	ret    
   11095:	8d 74 26 00          	lea    0x0(%esi),%esi
   11099:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000110a0 <_NdisInitializeReadWriteLock@4>:
  NDIS_DbgPrint(MIN_TRACE, ("ERROR: ErrorCode 0x%x\n", ErrorCode));
  /* ASSERT(0); */
}


/*
 * @implemented
 */
VOID
EXPORT
NdisInitializeReadWriteLock(
    IN  PNDIS_RW_LOCK   Lock)
/*
 * FUNCTION: Initialize a NDIS_RW_LOCK
 * ARGUMENTS:
 *     Lock: pointer to the lock to initialize
 * NOTES:
 *    NDIS 5.0
 */
{
   110a0:	55                   	push   %ebp
   110a1:	89 e5                	mov    %esp,%ebp
   110a3:	83 ec 0c             	sub    $0xc,%esp
  memset(Lock,0,sizeof(NDIS_RW_LOCK));
   110a6:	8b 45 08             	mov    0x8(%ebp),%eax
   110a9:	68 10 02 00 00       	push   $0x210
   110ae:	6a 00                	push   $0x0
   110b0:	50                   	push   %eax
   110b1:	e8 ba 55 00 00       	call   16670 <_memset>
   110b6:	c9                   	leave  
   110b7:	c2 04 00             	ret    $0x4
   110ba:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000110c0 <_NdisWriteEventLogEntry@28>:
}


/*
 * @implemented
 */
NDIS_STATUS
EXPORT
NdisWriteEventLogEntry(
    IN  PVOID       LogHandle,
    IN  NDIS_STATUS EventCode,
    IN  ULONG       UniqueEventValue,
    IN  USHORT      NumStrings,
    IN  PVOID       StringsList OPTIONAL,
    IN  ULONG       DataSize,
    IN  PVOID       Data        OPTIONAL)
/*
 * FUNCTION: Log an event in the system event log
 * ARGUMENTS:
 *     LogHandle: pointer to the driver object of the protocol logging the event
 *     EventCode: NDIS_STATUS_XXX describing the event
 *     UniqueEventValue: identifiees this instance of the error value
 *     NumStrings: number of strings in StringList
 *     StringList: list of strings to log
 *     DataSize: number of bytes in Data
 *     Data: binary dump data to help analyzing the event
 * NOTES:
 *     - STDCALL, not CDECL like WriteError...
 *     - FIXME Needs to use the real log interface, once there is one
 */
{
   110c0:	55                   	push   %ebp
  /*
   * just returning true until we have an event log
   */
  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
  return NDIS_STATUS_SUCCESS;
}
   110c1:	31 c0                	xor    %eax,%eax
   110c3:	89 e5                	mov    %esp,%ebp
   110c5:	5d                   	pop    %ebp
   110c6:	c2 1c 00             	ret    $0x1c
   110c9:	90                   	nop    
   110ca:	90                   	nop    
   110cb:	90                   	nop    
   110cc:	90                   	nop    
   110cd:	90                   	nop    
   110ce:	90                   	nop    
   110cf:	90                   	nop    

000110d0 <_ArcFilterDprIndicateReceive@16>:
    IN  PARC_FILTER Filter,
    IN  PUCHAR      pRawHeader,
    IN  PUCHAR      pData,
    IN  UINT        Length)
{
   110d0:	55                   	push   %ebp
   110d1:	89 e5                	mov    %esp,%ebp
   110d3:	5d                   	pop    %ebp
   110d4:	c2 10 00             	ret    $0x10
   110d7:	89 f6                	mov    %esi,%esi
   110d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000110e0 <_ArcFilterDprIndicateReceiveComplete@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
ArcFilterDprIndicateReceiveComplete(
    IN  PARC_FILTER Filter)
{
   110e0:	55                   	push   %ebp
   110e1:	89 e5                	mov    %esp,%ebp
   110e3:	5d                   	pop    %ebp
   110e4:	c2 04 00             	ret    $0x4
   110e7:	89 f6                	mov    %esi,%esi
   110e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000110f0 <_FddiFilterDprIndicateReceive@36>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
FddiFilterDprIndicateReceive(
    IN  PFDDI_FILTER    Filter,
    IN  NDIS_HANDLE     MacReceiveContext,
    IN  PCHAR           Address,
    IN  UINT            AddressLength,
    IN  PVOID           HeaderBuffer,
    IN  UINT            HeaderBufferSize,
    IN  PVOID           LookaheadBuffer,
    IN  UINT            LookaheadBufferSize,
    IN  UINT            PacketSize)
{
   110f0:	55                   	push   %ebp
   110f1:	89 e5                	mov    %esp,%ebp
   110f3:	5d                   	pop    %ebp
   110f4:	c2 24 00             	ret    $0x24
   110f7:	89 f6                	mov    %esi,%esi
   110f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011100 <_FddiFilterDprIndicateReceiveComplete@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
FddiFilterDprIndicateReceiveComplete(
    IN  PFDDI_FILTER    Filter)
{
   11100:	55                   	push   %ebp
   11101:	89 e5                	mov    %esp,%ebp
   11103:	5d                   	pop    %ebp
   11104:	c2 04 00             	ret    $0x4
   11107:	89 f6                	mov    %esi,%esi
   11109:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011110 <_NdisAllocateDmaChannel@20>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisAllocateDmaChannel(
    OUT PNDIS_STATUS            Status,
    OUT PNDIS_HANDLE            NdisDmaHandle,
    IN  NDIS_HANDLE             NdisAdapterHandle,
    IN  PNDIS_DMA_DESCRIPTION   DmaDescription,
    IN  ULONG                   MaximumLength)
{
   11110:	55                   	push   %ebp
   11111:	89 e5                	mov    %esp,%ebp
   11113:	5d                   	pop    %ebp
   11114:	c2 14 00             	ret    $0x14
   11117:	89 f6                	mov    %esi,%esi
   11119:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011120 <_NdisAllocateSharedMemory@20>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisAllocateSharedMemory(
    IN  NDIS_HANDLE             NdisAdapterHandle,
    IN  ULONG                   Length,
    IN  BOOLEAN                 Cached,
    OUT PVOID                   *VirtualAddress,
    OUT PNDIS_PHYSICAL_ADDRESS  PhysicalAddress)
{
   11120:	55                   	push   %ebp
   11121:	89 e5                	mov    %esp,%ebp
   11123:	5d                   	pop    %ebp
   11124:	c2 14 00             	ret    $0x14
   11127:	89 f6                	mov    %esi,%esi
   11129:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011130 <_NdisCompleteBufferPhysicalMapping@12>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisCompleteBufferPhysicalMapping(
    IN  NDIS_HANDLE     NdisAdapterHandle,
    IN  PNDIS_BUFFER    Buffer,
    IN  ULONG           PhysicalMapRegister)
{
   11130:	55                   	push   %ebp
   11131:	89 e5                	mov    %esp,%ebp
   11133:	5d                   	pop    %ebp
   11134:	c2 0c 00             	ret    $0xc
   11137:	89 f6                	mov    %esi,%esi
   11139:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011140 <_NdisCompleteRequest@12>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisCompleteRequest(
    IN  NDIS_HANDLE     NdisBindingContext,
    IN  PNDIS_REQUEST   NdisRequest,
    IN  NDIS_STATUS     Status)
{
   11140:	55                   	push   %ebp
   11141:	89 e5                	mov    %esp,%ebp
   11143:	5d                   	pop    %ebp
   11144:	c2 0c 00             	ret    $0xc
   11147:	89 f6                	mov    %esi,%esi
   11149:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011150 <_NdisCompleteReset@8>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisCompleteReset(
    IN  NDIS_HANDLE NdisBindingContext,
    IN  NDIS_STATUS Status)
{
   11150:	55                   	push   %ebp
   11151:	89 e5                	mov    %esp,%ebp
   11153:	5d                   	pop    %ebp
   11154:	c2 08 00             	ret    $0x8
   11157:	89 f6                	mov    %esi,%esi
   11159:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011160 <_NdisCompleteSend@12>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisCompleteSend(
    IN  NDIS_HANDLE     NdisBindingContext,
    IN  PNDIS_PACKET    Packet,
    IN  NDIS_STATUS     Status)
{
   11160:	55                   	push   %ebp
   11161:	89 e5                	mov    %esp,%ebp
   11163:	5d                   	pop    %ebp
   11164:	c2 0c 00             	ret    $0xc
   11167:	89 f6                	mov    %esi,%esi
   11169:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011170 <_NdisCompleteTransferData@16>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisCompleteTransferData(
    IN  NDIS_HANDLE     NdisBindingContext,
    IN  PNDIS_PACKET    Packet,
    IN  NDIS_STATUS     Status,
    IN  UINT            BytesTransferred)
{
   11170:	55                   	push   %ebp
   11171:	89 e5                	mov    %esp,%ebp
   11173:	5d                   	pop    %ebp
   11174:	c2 10 00             	ret    $0x10
   11177:	89 f6                	mov    %esi,%esi
   11179:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011180 <_NdisIndicateReceive@32>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisIndicateReceive(
    OUT PNDIS_STATUS    Status,
    IN  NDIS_HANDLE     NdisBindingContext,
    IN  NDIS_HANDLE     MacReceiveContext,
    IN  PVOID           HeaderBuffer,
    IN  UINT            HeaderBufferSize,
    IN  PVOID           LookaheadBuffer,
    IN  UINT            LookaheadBufferSize,
    IN  UINT            PacketSize)
{
   11180:	55                   	push   %ebp
   11181:	89 e5                	mov    %esp,%ebp
   11183:	5d                   	pop    %ebp
   11184:	c2 20 00             	ret    $0x20
   11187:	89 f6                	mov    %esi,%esi
   11189:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011190 <_NdisIndicateReceiveComplete@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisIndicateReceiveComplete(
    IN  NDIS_HANDLE NdisBindingContext)
{
   11190:	55                   	push   %ebp
   11191:	89 e5                	mov    %esp,%ebp
   11193:	5d                   	pop    %ebp
   11194:	c2 04 00             	ret    $0x4
   11197:	89 f6                	mov    %esi,%esi
   11199:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000111a0 <_NdisIndicateStatus@16>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisIndicateStatus(
    IN  NDIS_HANDLE NdisBindingContext,
    IN  NDIS_STATUS GeneralStatus,
    IN  PVOID       StatusBuffer,
    IN  UINT        StatusBufferSize)
{
   111a0:	55                   	push   %ebp
   111a1:	89 e5                	mov    %esp,%ebp
   111a3:	5d                   	pop    %ebp
   111a4:	c2 10 00             	ret    $0x10
   111a7:	89 f6                	mov    %esi,%esi
   111a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000111b0 <_NdisIndicateStatusComplete@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisIndicateStatusComplete(
    IN  NDIS_HANDLE NdisBindingContext)
{
   111b0:	55                   	push   %ebp
   111b1:	89 e5                	mov    %esp,%ebp
   111b3:	5d                   	pop    %ebp
   111b4:	c2 04 00             	ret    $0x4
   111b7:	89 f6                	mov    %esi,%esi
   111b9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000111c0 <_NdisPciAssignResources@20>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
NDIS_STATUS
EXPORT
NdisPciAssignResources(
    IN  NDIS_HANDLE         NdisMacHandle,
    IN  NDIS_HANDLE         NdisWrapperHandle,
    IN  NDIS_HANDLE         WrapperConfigurationContext,
    IN  ULONG               SlotNumber,
    OUT PNDIS_RESOURCE_LIST *AssignedResources)
{
   111c0:	55                   	push   %ebp
    UNIMPLEMENTED

	return NDIS_STATUS_FAILURE;
}
   111c1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   111c6:	89 e5                	mov    %esp,%ebp
   111c8:	5d                   	pop    %ebp
   111c9:	c2 14 00             	ret    $0x14
   111cc:	8d 74 26 00          	lea    0x0(%esi),%esi

000111d0 <_NdisReadBindingInformation@12>:


/*
 * @unimplemented
 */
VOID
EXPORT
NdisReadBindingInformation (
    OUT PNDIS_STATUS    Status,
    OUT PNDIS_STRING    * Binding,
    IN  NDIS_HANDLE     ConfigurationHandle)
{
   111d0:	55                   	push   %ebp
   111d1:	89 e5                	mov    %esp,%ebp
   111d3:	5d                   	pop    %ebp
   111d4:	c2 0c 00             	ret    $0xc
   111d7:	89 f6                	mov    %esi,%esi
   111d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000111e0 <_NdisReadDmaCounter@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
ULONG
EXPORT
NdisReadDmaCounter(
    IN  NDIS_HANDLE NdisDmaHandle)
{
   111e0:	55                   	push   %ebp
    UNIMPLEMENTED

    return 0;
}
   111e1:	31 c0                	xor    %eax,%eax
   111e3:	89 e5                	mov    %esp,%ebp
   111e5:	5d                   	pop    %ebp
   111e6:	c2 04 00             	ret    $0x4
   111e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000111f0 <_NdisStartBufferPhysicalMapping@24>:


/*
 * @unimplemented
 */
VOID
EXPORT
NdisStartBufferPhysicalMapping(
    IN  NDIS_HANDLE                 NdisAdapterHandle,
    IN  PNDIS_BUFFER                Buffer,
    IN  ULONG                       PhysicalMapRegister,
    IN  BOOLEAN                     WriteToDevice,
    OUT PNDIS_PHYSICAL_ADDRESS_UNIT PhysicalAddressArray,
    OUT PUINT                       ArraySize)
{
   111f0:	55                   	push   %ebp
   111f1:	89 e5                	mov    %esp,%ebp
   111f3:	5d                   	pop    %ebp
   111f4:	c2 18 00             	ret    $0x18
   111f7:	89 f6                	mov    %esi,%esi
   111f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011200 <_NdisSynchronizeWithInterrupt@12>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
BOOLEAN
EXPORT
NdisSynchronizeWithInterrupt(
    IN  PNDIS_INTERRUPT Interrupt,
    IN  PVOID           SynchronizeFunction,
    IN  PVOID           SynchronizeContext)
{
   11200:	55                   	push   %ebp
    UNIMPLEMENTED

    return FALSE;
}
   11201:	31 c0                	xor    %eax,%eax
   11203:	89 e5                	mov    %esp,%ebp
   11205:	5d                   	pop    %ebp
   11206:	c2 0c 00             	ret    $0xc
   11209:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011210 <_NdisUnmapIoSpace@12>:


/*
 * @unimplemented
 */
VOID
EXPORT
NdisUnmapIoSpace(
    IN  NDIS_HANDLE NdisAdapterHandle,
    IN  PVOID       VirtualAddress,
    IN  UINT        Length)
{
   11210:	55                   	push   %ebp
   11211:	89 e5                	mov    %esp,%ebp
   11213:	5d                   	pop    %ebp
   11214:	c2 0c 00             	ret    $0xc
   11217:	89 f6                	mov    %esi,%esi
   11219:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011220 <_TrFilterDprIndicateReceive@28>:
    UNIMPLEMENTED
}
/*
 * @unimplemented
 */
VOID
EXPORT
TrFilterDprIndicateReceive(
    IN  PTR_FILTER  Filter,
    IN  NDIS_HANDLE MacReceiveContext,
    IN  PVOID       HeaderBuffer,
    IN  UINT        HeaderBufferSize,
    IN  PVOID       LookaheadBuffer,
    IN  UINT        LookaheadBufferSize,
    IN  UINT        PacketSize)
{
   11220:	55                   	push   %ebp
   11221:	89 e5                	mov    %esp,%ebp
   11223:	5d                   	pop    %ebp
   11224:	c2 1c 00             	ret    $0x1c
   11227:	89 f6                	mov    %esi,%esi
   11229:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011230 <_TrFilterDprIndicateReceiveComplete@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
TrFilterDprIndicateReceiveComplete(
    IN  PTR_FILTER  Filter)
{
   11230:	55                   	push   %ebp
   11231:	89 e5                	mov    %esp,%ebp
   11233:	5d                   	pop    %ebp
   11234:	c2 04 00             	ret    $0x4
   11237:	90                   	nop    
   11238:	90                   	nop    
   11239:	90                   	nop    
   1123a:	90                   	nop    
   1123b:	90                   	nop    
   1123c:	90                   	nop    
   1123d:	90                   	nop    
   1123e:	90                   	nop    
   1123f:	90                   	nop    

00011240 <_NdisCompleteCloseAdapter@8>:
   11240:	55                   	push   %ebp
   11241:	89 e5                	mov    %esp,%ebp
   11243:	5d                   	pop    %ebp
   11244:	c2 08 00             	ret    $0x8
   11247:	89 f6                	mov    %esi,%esi
   11249:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011250 <_NdisCompleteOpenAdapter@12>:
   11250:	55                   	push   %ebp
   11251:	89 e5                	mov    %esp,%ebp
   11253:	5d                   	pop    %ebp
   11254:	c2 0c 00             	ret    $0xc
   11257:	89 f6                	mov    %esi,%esi
   11259:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011260 <_NdisDeregisterAdapter@4>:
   11260:	55                   	push   %ebp
   11261:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11266:	89 e5                	mov    %esp,%ebp
   11268:	5d                   	pop    %ebp
   11269:	c2 04 00             	ret    $0x4
   1126c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011270 <_NdisDeregisterAdapterShutdownHandler@4>:
   11270:	55                   	push   %ebp
   11271:	89 e5                	mov    %esp,%ebp
   11273:	5d                   	pop    %ebp
   11274:	c2 04 00             	ret    $0x4
   11277:	89 f6                	mov    %esi,%esi
   11279:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011280 <_NdisDeregisterMac@8>:
   11280:	55                   	push   %ebp
   11281:	89 e5                	mov    %esp,%ebp
   11283:	5d                   	pop    %ebp
   11284:	c2 08 00             	ret    $0x8
   11287:	89 f6                	mov    %esi,%esi
   11289:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011290 <_NdisFreeDmaChannel@4>:
   11290:	55                   	push   %ebp
   11291:	89 e5                	mov    %esp,%ebp
   11293:	5d                   	pop    %ebp
   11294:	c2 04 00             	ret    $0x4
   11297:	89 f6                	mov    %esi,%esi
   11299:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000112a0 <_NdisFreeSharedMemory@24>:
   112a0:	55                   	push   %ebp
   112a1:	89 e5                	mov    %esp,%ebp
   112a3:	5d                   	pop    %ebp
   112a4:	c2 18 00             	ret    $0x18
   112a7:	89 f6                	mov    %esi,%esi
   112a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000112b0 <_NdisIMQueueMiniportCallback@12>:
   112b0:	55                   	push   %ebp
   112b1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   112b6:	89 e5                	mov    %esp,%ebp
   112b8:	5d                   	pop    %ebp
   112b9:	c2 0c 00             	ret    $0xc
   112bc:	8d 74 26 00          	lea    0x0(%esi),%esi

000112c0 <_NdisIMRevertBack@8>:
   112c0:	55                   	push   %ebp
   112c1:	89 e5                	mov    %esp,%ebp
   112c3:	5d                   	pop    %ebp
   112c4:	c2 08 00             	ret    $0x8
   112c7:	89 f6                	mov    %esi,%esi
   112c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000112d0 <_NdisIMSwitchToMiniport@8>:
   112d0:	55                   	push   %ebp
   112d1:	31 c0                	xor    %eax,%eax
   112d3:	89 e5                	mov    %esp,%ebp
   112d5:	5d                   	pop    %ebp
   112d6:	c2 08 00             	ret    $0x8
   112d9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000112e0 <_NdisInitializeInterrupt@40>:
   112e0:	55                   	push   %ebp
   112e1:	89 e5                	mov    %esp,%ebp
   112e3:	5d                   	pop    %ebp
   112e4:	c2 28 00             	ret    $0x28
   112e7:	89 f6                	mov    %esi,%esi
   112e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000112f0 <_NdisMapIoSpace@24>:
   112f0:	55                   	push   %ebp
   112f1:	89 e5                	mov    %esp,%ebp
   112f3:	5d                   	pop    %ebp
   112f4:	c2 18 00             	ret    $0x18
   112f7:	89 f6                	mov    %esi,%esi
   112f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011300 <_NdisOverrideBusNumber@12>:
   11300:	55                   	push   %ebp
   11301:	89 e5                	mov    %esp,%ebp
   11303:	5d                   	pop    %ebp
   11304:	c2 0c 00             	ret    $0xc
   11307:	89 f6                	mov    %esi,%esi
   11309:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011310 <_NdisQueryReceiveInformation@28>:
   11310:	55                   	push   %ebp
   11311:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11316:	89 e5                	mov    %esp,%ebp
   11318:	5d                   	pop    %ebp
   11319:	c2 1c 00             	ret    $0x1c
   1131c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011320 <_NdisReadMcaPosInformation@16>:
   11320:	55                   	push   %ebp
   11321:	89 e5                	mov    %esp,%ebp
   11323:	5d                   	pop    %ebp
   11324:	c2 10 00             	ret    $0x10
   11327:	89 f6                	mov    %esi,%esi
   11329:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011330 <_NdisRegisterAdapter@24>:
   11330:	55                   	push   %ebp
    UNIMPLEMENTED
   11331:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11336:	89 e5                	mov    %esp,%ebp
   11338:	5d                   	pop    %ebp
   11339:	c2 18 00             	ret    $0x18
   1133c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011340 <_NdisRegisterAdapterShutdownHandler@12>:
}

/* EOF */
   11340:	55                   	push   %ebp
   11341:	89 e5                	mov    %esp,%ebp
   11343:	5d                   	pop    %ebp
   11344:	c2 0c 00             	ret    $0xc
   11347:	89 f6                	mov    %esi,%esi
   11349:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011350 <_NdisRegisterMac@24>:
   11350:	55                   	push   %ebp
   11351:	89 e5                	mov    %esp,%ebp
   11353:	5d                   	pop    %ebp
   11354:	c2 18 00             	ret    $0x18
   11357:	89 f6                	mov    %esi,%esi
   11359:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011360 <_NdisReleaseAdapterResources@4>:
   11360:	55                   	push   %ebp
   11361:	89 e5                	mov    %esp,%ebp
   11363:	5d                   	pop    %ebp
   11364:	c2 04 00             	ret    $0x4
   11367:	89 f6                	mov    %esi,%esi
   11369:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011370 <_NdisRemoveInterrupt@4>:
   11370:	55                   	push   %ebp
   11371:	89 e5                	mov    %esp,%ebp
   11373:	5d                   	pop    %ebp
   11374:	c2 04 00             	ret    $0x4
   11377:	89 f6                	mov    %esi,%esi
   11379:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011380 <_NdisSetupDmaTransfer@24>:
   11380:	55                   	push   %ebp
   11381:	89 e5                	mov    %esp,%ebp
   11383:	5d                   	pop    %ebp
   11384:	c2 18 00             	ret    $0x18
   11387:	89 f6                	mov    %esi,%esi
   11389:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011390 <_NdisUpdateSharedMemory@20>:
   11390:	55                   	push   %ebp
   11391:	89 e5                	mov    %esp,%ebp
   11393:	5d                   	pop    %ebp
   11394:	c2 14 00             	ret    $0x14
   11397:	90                   	nop    
   11398:	90                   	nop    
   11399:	90                   	nop    
   1139a:	90                   	nop    
   1139b:	90                   	nop    
   1139c:	90                   	nop    
   1139d:	90                   	nop    
   1139e:	90                   	nop    
   1139f:	90                   	nop    

000113a0 <_NdisGetFirstBufferFromPacket@20>:
   113a0:	55                   	push   %ebp
   113a1:	89 e5                	mov    %esp,%ebp
   113a3:	53                   	push   %ebx
   113a4:	8b 45 08             	mov    0x8(%ebp),%eax
   113a7:	8b 5d 14             	mov    0x14(%ebp),%ebx
   113aa:	8b 48 08             	mov    0x8(%eax),%ecx
   113ad:	8b 45 0c             	mov    0xc(%ebp),%eax
   113b0:	8b 51 10             	mov    0x10(%ecx),%edx
   113b3:	89 08                	mov    %ecx,(%eax)
   113b5:	8b 41 18             	mov    0x18(%ecx),%eax
   113b8:	01 d0                	add    %edx,%eax
   113ba:	8b 55 10             	mov    0x10(%ebp),%edx
   113bd:	85 c9                	test   %ecx,%ecx
   113bf:	89 02                	mov    %eax,(%edx)
   113c1:	74 24                	je     113e7 <_NdisGetFirstBufferFromPacket@20+0x47>
   113c3:	8b 41 14             	mov    0x14(%ecx),%eax
   113c6:	8b 09                	mov    (%ecx),%ecx
   113c8:	89 03                	mov    %eax,(%ebx)
   113ca:	8b 13                	mov    (%ebx),%edx
   113cc:	89 d0                	mov    %edx,%eax
   113ce:	eb 09                	jmp    113d9 <_NdisGetFirstBufferFromPacket@20+0x39>
   113d0:	8b 51 14             	mov    0x14(%ecx),%edx
   113d3:	8b 09                	mov    (%ecx),%ecx
   113d5:	01 d0                	add    %edx,%eax
   113d7:	89 c2                	mov    %eax,%edx
   113d9:	85 c9                	test   %ecx,%ecx
   113db:	75 f3                	jne    113d0 <_NdisGetFirstBufferFromPacket@20+0x30>
   113dd:	8b 45 18             	mov    0x18(%ebp),%eax
   113e0:	89 10                	mov    %edx,(%eax)
   113e2:	5b                   	pop    %ebx
   113e3:	5d                   	pop    %ebp
   113e4:	c2 14 00             	ret    $0x14
   113e7:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
   113ed:	eb db                	jmp    113ca <_NdisGetFirstBufferFromPacket@20+0x2a>
   113ef:	90                   	nop    

000113f0 <_NdisAdjustBufferLength@8>:
   113f0:	55                   	push   %ebp
   113f1:	89 e5                	mov    %esp,%ebp
   113f3:	8b 45 08             	mov    0x8(%ebp),%eax
   113f6:	8b 55 0c             	mov    0xc(%ebp),%edx
   113f9:	89 50 14             	mov    %edx,0x14(%eax)
   113fc:	5d                   	pop    %ebp
   113fd:	c2 08 00             	ret    $0x8

00011400 <_NDIS_BUFFER_TO_SPAN_PAGES@4>:
   11400:	55                   	push   %ebp
   11401:	b8 01 00 00 00       	mov    $0x1,%eax
   11406:	89 e5                	mov    %esp,%ebp
   11408:	8b 55 08             	mov    0x8(%ebp),%edx
   1140b:	8b 4a 14             	mov    0x14(%edx),%ecx
   1140e:	85 c9                	test   %ecx,%ecx
   11410:	74 15                	je     11427 <_NDIS_BUFFER_TO_SPAN_PAGES@4+0x27>
   11412:	8b 42 18             	mov    0x18(%edx),%eax
   11415:	03 42 10             	add    0x10(%edx),%eax
   11418:	25 ff 0f 00 00       	and    $0xfff,%eax
   1141d:	8d 84 08 ff 0f 00 00 	lea    0xfff(%eax,%ecx,1),%eax
   11424:	c1 e8 0c             	shr    $0xc,%eax
   11427:	5d                   	pop    %ebp
   11428:	c2 04 00             	ret    $0x4
   1142b:	90                   	nop    
   1142c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011430 <_NdisAllocateBuffer@20>:
   11430:	55                   	push   %ebp
   11431:	89 e5                	mov    %esp,%ebp
   11433:	57                   	push   %edi
   11434:	56                   	push   %esi
   11435:	53                   	push   %ebx
   11436:	83 ec 0c             	sub    $0xc,%esp
   11439:	8b 7d 14             	mov    0x14(%ebp),%edi
   1143c:	8b 75 18             	mov    0x18(%ebp),%esi
   1143f:	85 ff                	test   %edi,%edi
   11441:	0f 94 c2             	sete   %dl
   11444:	85 f6                	test   %esi,%esi
   11446:	0f 94 c0             	sete   %al
   11449:	25 ff 00 00 00       	and    $0xff,%eax
   1144e:	85 c2                	test   %eax,%edx
   11450:	74 0e                	je     11460 <_NdisAllocateBuffer@20+0x30>
   11452:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11455:	5b                   	pop    %ebx
   11456:	5e                   	pop    %esi
   11457:	5f                   	pop    %edi
   11458:	5d                   	pop    %ebp
   11459:	c2 14 00             	ret    $0x14
   1145c:	8d 74 26 00          	lea    0x0(%esi),%esi
   11460:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   11463:	53                   	push   %ebx
   11464:	53                   	push   %ebx
   11465:	50                   	push   %eax
   11466:	8b 4d 10             	mov    0x10(%ebp),%ecx
   11469:	51                   	push   %ecx
   1146a:	ff 15 dc e1 01 00    	call   *0x1e1dc
   11470:	58                   	pop    %eax
   11471:	8b 45 10             	mov    0x10(%ebp),%eax
   11474:	5a                   	pop    %edx
   11475:	8b 58 04             	mov    0x4(%eax),%ebx
   11478:	85 db                	test   %ebx,%ebx
   1147a:	74 7b                	je     114f7 <_NdisAllocateBuffer@20+0xc7>
   1147c:	8b 55 10             	mov    0x10(%ebp),%edx
   1147f:	8b 43 1c             	mov    0x1c(%ebx),%eax
   11482:	89 42 04             	mov    %eax,0x4(%edx)
   11485:	50                   	push   %eax
   11486:	50                   	push   %eax
   11487:	31 c0                	xor    %eax,%eax
   11489:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   1148c:	50                   	push   %eax
   1148d:	52                   	push   %edx
   1148e:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   11494:	89 fa                	mov    %edi,%edx
   11496:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
   1149c:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
   114a2:	89 53 18             	mov    %edx,0x18(%ebx)
   114a5:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
   114ac:	8d 84 32 ff 0f 00 00 	lea    0xfff(%edx,%esi,1),%eax
   114b3:	8b 55 08             	mov    0x8(%ebp),%edx
   114b6:	c1 e8 0c             	shr    $0xc,%eax
   114b9:	89 73 14             	mov    %esi,0x14(%ebx)
   114bc:	66 c7 43 06 0c 00    	movw   $0xc,0x6(%ebx)
   114c2:	89 7b 0c             	mov    %edi,0xc(%ebx)
   114c5:	8d 04 85 1c 00 00 00 	lea    0x1c(,%eax,4),%eax
   114cc:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   114d2:	66 89 43 04          	mov    %ax,0x4(%ebx)
   114d6:	89 f8                	mov    %edi,%eax
   114d8:	25 00 f0 ff ff       	and    $0xfffff000,%eax
   114dd:	89 43 10             	mov    %eax,0x10(%ebx)
   114e0:	8b 45 10             	mov    0x10(%ebp),%eax
   114e3:	89 43 20             	mov    %eax,0x20(%ebx)
   114e6:	8b 45 0c             	mov    0xc(%ebp),%eax
   114e9:	89 18                	mov    %ebx,(%eax)
   114eb:	5b                   	pop    %ebx
   114ec:	5e                   	pop    %esi
   114ed:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   114f0:	5b                   	pop    %ebx
   114f1:	5e                   	pop    %esi
   114f2:	5f                   	pop    %edi
   114f3:	5d                   	pop    %ebp
   114f4:	c2 14 00             	ret    $0x14
   114f7:	31 c0                	xor    %eax,%eax
   114f9:	51                   	push   %ecx
   114fa:	51                   	push   %ecx
   114fb:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   114fe:	50                   	push   %eax
   114ff:	8b 55 10             	mov    0x10(%ebp),%edx
   11502:	52                   	push   %edx
   11503:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   11509:	8b 45 08             	mov    0x8(%ebp),%eax
   1150c:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   11512:	50                   	push   %eax
   11513:	6a 00                	push   $0x0
   11515:	ff 15 64 e2 01 00    	call   *0x1e264
   1151b:	83 c4 0c             	add    $0xc,%esp
   1151e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11521:	5b                   	pop    %ebx
   11522:	5e                   	pop    %esi
   11523:	5f                   	pop    %edi
   11524:	5d                   	pop    %ebp
   11525:	c2 14 00             	ret    $0x14
   11528:	90                   	nop    
   11529:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011530 <_NdisAllocateBufferPool@12>:
   11530:	55                   	push   %ebp
   11531:	89 e5                	mov    %esp,%ebp
   11533:	57                   	push   %edi
   11534:	56                   	push   %esi
   11535:	53                   	push   %ebx
   11536:	83 ec 14             	sub    $0x14,%esp
   11539:	8b 75 10             	mov    0x10(%ebp),%esi
   1153c:	8b 7d 08             	mov    0x8(%ebp),%edi
   1153f:	8d 04 f6             	lea    (%esi,%esi,8),%eax
   11542:	8d 04 85 08 00 00 00 	lea    0x8(,%eax,4),%eax
   11549:	50                   	push   %eax
   1154a:	6a 00                	push   $0x0
   1154c:	ff 15 24 e2 01 00    	call   *0x1e224
   11552:	89 c3                	mov    %eax,%ebx
   11554:	58                   	pop    %eax
   11555:	85 db                	test   %ebx,%ebx
   11557:	5a                   	pop    %edx
   11558:	74 56                	je     115b0 <_NdisAllocateBufferPool@12+0x80>
   1155a:	83 ec 0c             	sub    $0xc,%esp
   1155d:	53                   	push   %ebx
   1155e:	ff 15 78 e2 01 00    	call   *0x1e278
   11564:	83 c4 0c             	add    $0xc,%esp
   11567:	85 f6                	test   %esi,%esi
   11569:	74 29                	je     11594 <_NdisAllocateBufferPool@12+0x64>
   1156b:	8d 4b 08             	lea    0x8(%ebx),%ecx
   1156e:	83 fe 01             	cmp    $0x1,%esi
   11571:	89 4b 04             	mov    %ecx,0x4(%ebx)
   11574:	76 15                	jbe    1158b <_NdisAllocateBufferPool@12+0x5b>
   11576:	8d 53 2c             	lea    0x2c(%ebx),%edx
   11579:	8d 46 ff             	lea    0xffffffff(%esi),%eax
   1157c:	8d 74 26 00          	lea    0x0(%esi),%esi
   11580:	48                   	dec    %eax
   11581:	89 51 1c             	mov    %edx,0x1c(%ecx)
   11584:	89 d1                	mov    %edx,%ecx
   11586:	8d 52 24             	lea    0x24(%edx),%edx
   11589:	75 f5                	jne    11580 <_NdisAllocateBufferPool@12+0x50>
   1158b:	c7 41 1c 00 00 00 00 	movl   $0x0,0x1c(%ecx)
   11592:	eb 07                	jmp    1159b <_NdisAllocateBufferPool@12+0x6b>
   11594:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
   1159b:	8b 45 0c             	mov    0xc(%ebp),%eax
   1159e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
   115a4:	89 18                	mov    %ebx,(%eax)
   115a6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   115a9:	5b                   	pop    %ebx
   115aa:	5e                   	pop    %esi
   115ab:	5f                   	pop    %edi
   115ac:	5d                   	pop    %ebp
   115ad:	c2 0c 00             	ret    $0xc
   115b0:	c7 07 9a 00 00 c0    	movl   $0xc000009a,(%edi)
   115b6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   115b9:	5b                   	pop    %ebx
   115ba:	5e                   	pop    %esi
   115bb:	5f                   	pop    %edi
   115bc:	5d                   	pop    %ebp
   115bd:	c2 0c 00             	ret    $0xc

000115c0 <_NdisAllocatePacket@12>:
   115c0:	55                   	push   %ebp
   115c1:	89 e5                	mov    %esp,%ebp
   115c3:	57                   	push   %edi
   115c4:	56                   	push   %esi
   115c5:	53                   	push   %ebx
   115c6:	83 ec 14             	sub    $0x14,%esp
   115c9:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   115cc:	8b 75 10             	mov    0x10(%ebp),%esi
   115cf:	50                   	push   %eax
   115d0:	56                   	push   %esi
   115d1:	ff 15 dc e1 01 00    	call   *0x1e1dc
   115d7:	8b 5e 08             	mov    0x8(%esi),%ebx
   115da:	58                   	pop    %eax
   115db:	85 db                	test   %ebx,%ebx
   115dd:	5a                   	pop    %edx
   115de:	74 40                	je     11620 <_NdisAllocatePacket@12+0x60>
   115e0:	8b 43 08             	mov    0x8(%ebx),%eax
   115e3:	89 df                	mov    %ebx,%edi
   115e5:	89 46 08             	mov    %eax,0x8(%esi)
   115e8:	50                   	push   %eax
   115e9:	50                   	push   %eax
   115ea:	31 c0                	xor    %eax,%eax
   115ec:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   115ef:	50                   	push   %eax
   115f0:	56                   	push   %esi
   115f1:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   115f7:	31 c0                	xor    %eax,%eax
   115f9:	fc                   	cld    
   115fa:	b9 08 00 00 00       	mov    $0x8,%ecx
   115ff:	f3 ab                	repz stos %eax,%es:(%edi)
   11601:	8b 45 0c             	mov    0xc(%ebp),%eax
   11604:	89 73 10             	mov    %esi,0x10(%ebx)
   11607:	89 18                	mov    %ebx,(%eax)
   11609:	8b 45 08             	mov    0x8(%ebp),%eax
   1160c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   11612:	59                   	pop    %ecx
   11613:	5b                   	pop    %ebx
   11614:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11617:	5b                   	pop    %ebx
   11618:	5e                   	pop    %esi
   11619:	5f                   	pop    %edi
   1161a:	5d                   	pop    %ebp
   1161b:	c2 0c 00             	ret    $0xc
   1161e:	89 f6                	mov    %esi,%esi
   11620:	8b 45 08             	mov    0x8(%ebp),%eax
   11623:	c7 00 9a 00 00 c0    	movl   $0xc000009a,(%eax)
   11629:	57                   	push   %edi
   1162a:	31 c0                	xor    %eax,%eax
   1162c:	57                   	push   %edi
   1162d:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   11630:	50                   	push   %eax
   11631:	56                   	push   %esi
   11632:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   11638:	59                   	pop    %ecx
   11639:	5b                   	pop    %ebx
   1163a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1163d:	5b                   	pop    %ebx
   1163e:	5e                   	pop    %esi
   1163f:	5f                   	pop    %edi
   11640:	5d                   	pop    %ebp
   11641:	c2 0c 00             	ret    $0xc
   11644:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1164a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00011650 <_NdisAllocatePacketPool@16>:
   11650:	55                   	push   %ebp
   11651:	89 e5                	mov    %esp,%ebp
   11653:	57                   	push   %edi
   11654:	56                   	push   %esi
   11655:	53                   	push   %ebx
   11656:	83 ec 14             	sub    $0x14,%esp
   11659:	8b 75 14             	mov    0x14(%ebp),%esi
   1165c:	8b 7d 10             	mov    0x10(%ebp),%edi
   1165f:	83 c6 3c             	add    $0x3c,%esi
   11662:	89 f0                	mov    %esi,%eax
   11664:	0f af c7             	imul   %edi,%eax
   11667:	83 c0 14             	add    $0x14,%eax
   1166a:	50                   	push   %eax
   1166b:	6a 00                	push   $0x0
   1166d:	ff 15 24 e2 01 00    	call   *0x1e224
   11673:	89 c3                	mov    %eax,%ebx
   11675:	59                   	pop    %ecx
   11676:	85 db                	test   %ebx,%ebx
   11678:	58                   	pop    %eax
   11679:	74 58                	je     116d3 <_NdisAllocatePacketPool@16+0x83>
   1167b:	83 ec 0c             	sub    $0xc,%esp
   1167e:	53                   	push   %ebx
   1167f:	ff 15 78 e2 01 00    	call   *0x1e278
   11685:	89 73 0c             	mov    %esi,0xc(%ebx)
   11688:	83 c4 0c             	add    $0xc,%esp
   1168b:	85 ff                	test   %edi,%edi
   1168d:	74 25                	je     116b4 <_NdisAllocatePacketPool@16+0x64>
   1168f:	8d 4b 10             	lea    0x10(%ebx),%ecx
   11692:	83 ff 01             	cmp    $0x1,%edi
   11695:	89 4b 08             	mov    %ecx,0x8(%ebx)
   11698:	8d 14 31             	lea    (%ecx,%esi,1),%edx
   1169b:	76 0e                	jbe    116ab <_NdisAllocatePacketPool@16+0x5b>
   1169d:	8d 47 ff             	lea    0xffffffff(%edi),%eax
   116a0:	48                   	dec    %eax
   116a1:	89 51 08             	mov    %edx,0x8(%ecx)
   116a4:	89 d1                	mov    %edx,%ecx
   116a6:	8d 14 32             	lea    (%edx,%esi,1),%edx
   116a9:	75 f5                	jne    116a0 <_NdisAllocatePacketPool@16+0x50>
   116ab:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
   116b2:	eb 07                	jmp    116bb <_NdisAllocatePacketPool@16+0x6b>
   116b4:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
   116bb:	8b 45 08             	mov    0x8(%ebp),%eax
   116be:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   116c4:	8b 45 0c             	mov    0xc(%ebp),%eax
   116c7:	89 18                	mov    %ebx,(%eax)
   116c9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   116cc:	5b                   	pop    %ebx
   116cd:	5e                   	pop    %esi
   116ce:	5f                   	pop    %edi
   116cf:	5d                   	pop    %ebp
   116d0:	c2 10 00             	ret    $0x10
   116d3:	8b 45 08             	mov    0x8(%ebp),%eax
   116d6:	c7 00 9a 00 00 c0    	movl   $0xc000009a,(%eax)
   116dc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   116df:	5b                   	pop    %ebx
   116e0:	5e                   	pop    %esi
   116e1:	5f                   	pop    %edi
   116e2:	5d                   	pop    %ebp
   116e3:	c2 10 00             	ret    $0x10
   116e6:	8d 76 00             	lea    0x0(%esi),%esi
   116e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000116f0 <_NdisAllocatePacketPoolEx@20>:
   116f0:	55                   	push   %ebp
   116f1:	89 e5                	mov    %esp,%ebp
   116f3:	5d                   	pop    %ebp
   116f4:	c2 14 00             	ret    $0x14
   116f7:	89 f6                	mov    %esi,%esi
   116f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011700 <_NdisBufferLength@4>:
   11700:	55                   	push   %ebp
   11701:	89 e5                	mov    %esp,%ebp
   11703:	8b 45 08             	mov    0x8(%ebp),%eax
   11706:	5d                   	pop    %ebp
   11707:	8b 40 14             	mov    0x14(%eax),%eax
   1170a:	c2 04 00             	ret    $0x4
   1170d:	8d 76 00             	lea    0x0(%esi),%esi

00011710 <_NdisBufferVirtualAddress@4>:
   11710:	55                   	push   %ebp
   11711:	31 c0                	xor    %eax,%eax
   11713:	89 e5                	mov    %esp,%ebp
   11715:	5d                   	pop    %ebp
   11716:	c2 04 00             	ret    $0x4
   11719:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011720 <_NdisCopyBuffer@24>:
   11720:	55                   	push   %ebp
   11721:	89 e5                	mov    %esp,%ebp
   11723:	8b 45 08             	mov    0x8(%ebp),%eax
   11726:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   1172c:	5d                   	pop    %ebp
   1172d:	c2 18 00             	ret    $0x18

00011730 <_NdisDprAllocatePacket@12>:
   11730:	55                   	push   %ebp
   11731:	89 e5                	mov    %esp,%ebp
   11733:	5d                   	pop    %ebp
   11734:	c2 0c 00             	ret    $0xc
   11737:	89 f6                	mov    %esi,%esi
   11739:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011740 <_NdisDprAllocatePacketNonInterlocked@12>:
   11740:	55                   	push   %ebp
   11741:	89 e5                	mov    %esp,%ebp
   11743:	8b 45 08             	mov    0x8(%ebp),%eax
   11746:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   1174c:	5d                   	pop    %ebp
   1174d:	c2 0c 00             	ret    $0xc

00011750 <_NdisDprFreePacket@4>:
   11750:	55                   	push   %ebp
   11751:	89 e5                	mov    %esp,%ebp
   11753:	5d                   	pop    %ebp
   11754:	c2 04 00             	ret    $0x4
   11757:	89 f6                	mov    %esi,%esi
   11759:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011760 <_NdisDprFreePacketNonInterlocked@4>:
   11760:	55                   	push   %ebp
   11761:	89 e5                	mov    %esp,%ebp
   11763:	5d                   	pop    %ebp
   11764:	c2 04 00             	ret    $0x4
   11767:	89 f6                	mov    %esi,%esi
   11769:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011770 <_NdisFreeBufferPool@4>:
   11770:	55                   	push   %ebp
   11771:	89 e5                	mov    %esp,%ebp
   11773:	c9                   	leave  
   11774:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   1177a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00011780 <_NdisFreePacketPool@4>:
   11780:	55                   	push   %ebp
   11781:	89 e5                	mov    %esp,%ebp
   11783:	c9                   	leave  
   11784:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   1178a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00011790 <_NdisFreeBuffer@4>:
   11790:	55                   	push   %ebp
   11791:	89 e5                	mov    %esp,%ebp
   11793:	56                   	push   %esi
   11794:	53                   	push   %ebx
   11795:	83 ec 18             	sub    $0x18,%esp
   11798:	8d 45 f7             	lea    0xfffffff7(%ebp),%eax
   1179b:	8b 75 08             	mov    0x8(%ebp),%esi
   1179e:	8b 5e 20             	mov    0x20(%esi),%ebx
   117a1:	50                   	push   %eax
   117a2:	53                   	push   %ebx
   117a3:	ff 15 dc e1 01 00    	call   *0x1e1dc
   117a9:	8b 43 04             	mov    0x4(%ebx),%eax
   117ac:	89 46 1c             	mov    %eax,0x1c(%esi)
   117af:	31 c0                	xor    %eax,%eax
   117b1:	89 73 04             	mov    %esi,0x4(%ebx)
   117b4:	8a 45 f7             	mov    0xfffffff7(%ebp),%al
   117b7:	50                   	push   %eax
   117b8:	53                   	push   %ebx
   117b9:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   117bf:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   117c2:	5b                   	pop    %ebx
   117c3:	5e                   	pop    %esi
   117c4:	5d                   	pop    %ebp
   117c5:	c2 04 00             	ret    $0x4
   117c8:	90                   	nop    
   117c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000117d0 <_NdisFreePacket@4>:
   117d0:	55                   	push   %ebp
   117d1:	89 e5                	mov    %esp,%ebp
   117d3:	53                   	push   %ebx
   117d4:	83 ec 0c             	sub    $0xc,%esp
   117d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
   117da:	8d 45 fb             	lea    0xfffffffb(%ebp),%eax
   117dd:	50                   	push   %eax
   117de:	8b 43 10             	mov    0x10(%ebx),%eax
   117e1:	50                   	push   %eax
   117e2:	ff 15 dc e1 01 00    	call   *0x1e1dc
   117e8:	8b 53 10             	mov    0x10(%ebx),%edx
   117eb:	8b 42 08             	mov    0x8(%edx),%eax
   117ee:	89 5a 08             	mov    %ebx,0x8(%edx)
   117f1:	89 43 08             	mov    %eax,0x8(%ebx)
   117f4:	31 c0                	xor    %eax,%eax
   117f6:	8a 45 fb             	mov    0xfffffffb(%ebp),%al
   117f9:	50                   	push   %eax
   117fa:	52                   	push   %edx
   117fb:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   11801:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   11804:	c9                   	leave  
   11805:	c2 04 00             	ret    $0x4
   11808:	90                   	nop    
   11809:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011810 <_NdisGetBufferPhysicalArraySize@8>:
   11810:	55                   	push   %ebp
   11811:	89 e5                	mov    %esp,%ebp
   11813:	8b 45 08             	mov    0x8(%ebp),%eax
   11816:	50                   	push   %eax
   11817:	e8 e4 fb ff ff       	call   11400 <_NDIS_BUFFER_TO_SPAN_PAGES@4>
   1181c:	8b 55 0c             	mov    0xc(%ebp),%edx
   1181f:	89 02                	mov    %eax,(%edx)
   11821:	c9                   	leave  
   11822:	c2 08 00             	ret    $0x8
   11825:	8d 74 26 00          	lea    0x0(%esi),%esi
   11829:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011830 <_NdisReturnPackets@8>:
   11830:	55                   	push   %ebp
   11831:	89 e5                	mov    %esp,%ebp
   11833:	5d                   	pop    %ebp
   11834:	c2 08 00             	ret    $0x8
   11837:	89 f6                	mov    %esi,%esi
   11839:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011840 <_NdisPacketPoolUsage@4>:
   11840:	55                   	push   %ebp
   11841:	31 c0                	xor    %eax,%eax
   11843:	89 e5                	mov    %esp,%ebp
   11845:	5d                   	pop    %ebp
   11846:	c2 04 00             	ret    $0x4
   11849:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011850 <_NdisQueryBuffer@12>:
   11850:	55                   	push   %ebp
   11851:	89 e5                	mov    %esp,%ebp
   11853:	56                   	push   %esi
   11854:	53                   	push   %ebx
   11855:	8b 75 0c             	mov    0xc(%ebp),%esi
   11858:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1185b:	85 f6                	test   %esi,%esi
   1185d:	74 0d                	je     1186c <_NdisQueryBuffer@12+0x1c>
   1185f:	0f bf 43 06          	movswl 0x6(%ebx),%eax
   11863:	a8 05                	test   $0x5,%al
   11865:	74 19                	je     11880 <_NdisQueryBuffer@12+0x30>
   11867:	8b 43 0c             	mov    0xc(%ebx),%eax
   1186a:	89 06                	mov    %eax,(%esi)
   1186c:	8b 45 10             	mov    0x10(%ebp),%eax
   1186f:	8b 53 14             	mov    0x14(%ebx),%edx
   11872:	89 10                	mov    %edx,(%eax)
   11874:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11877:	5b                   	pop    %ebx
   11878:	5e                   	pop    %esi
   11879:	5d                   	pop    %ebp
   1187a:	c2 0c 00             	ret    $0xc
   1187d:	8d 76 00             	lea    0x0(%esi),%esi
   11880:	50                   	push   %eax
   11881:	50                   	push   %eax
   11882:	6a 00                	push   $0x0
   11884:	53                   	push   %ebx
   11885:	ff 15 b8 e2 01 00    	call   *0x1e2b8
   1188b:	5a                   	pop    %edx
   1188c:	59                   	pop    %ecx
   1188d:	eb db                	jmp    1186a <_NdisQueryBuffer@12+0x1a>
   1188f:	90                   	nop    

00011890 <_SkipToOffset>:
   11890:	55                   	push   %ebp
   11891:	89 e5                	mov    %esp,%ebp
   11893:	57                   	push   %edi
   11894:	56                   	push   %esi
   11895:	53                   	push   %ebx
   11896:	83 ec 0c             	sub    $0xc,%esp
   11899:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1189c:	8b 75 0c             	mov    0xc(%ebp),%esi
   1189f:	8b 7d 14             	mov    0x14(%ebp),%edi
   118a2:	eb 17                	jmp    118bb <_SkipToOffset+0x2b>
   118a4:	50                   	push   %eax
   118a5:	57                   	push   %edi
   118a6:	8b 4d 10             	mov    0x10(%ebp),%ecx
   118a9:	51                   	push   %ecx
   118aa:	53                   	push   %ebx
   118ab:	e8 a0 ff ff ff       	call   11850 <_NdisQueryBuffer@12>
   118b0:	8b 07                	mov    (%edi),%eax
   118b2:	5a                   	pop    %edx
   118b3:	39 f0                	cmp    %esi,%eax
   118b5:	77 13                	ja     118ca <_SkipToOffset+0x3a>
   118b7:	29 c6                	sub    %eax,%esi
   118b9:	8b 1b                	mov    (%ebx),%ebx
   118bb:	85 db                	test   %ebx,%ebx
   118bd:	75 e5                	jne    118a4 <_SkipToOffset+0x14>
   118bf:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   118c2:	83 c8 ff             	or     $0xffffffff,%eax
   118c5:	5b                   	pop    %ebx
   118c6:	5e                   	pop    %esi
   118c7:	5f                   	pop    %edi
   118c8:	5d                   	pop    %ebp
   118c9:	c3                   	ret    
   118ca:	8b 55 10             	mov    0x10(%ebp),%edx
   118cd:	29 f0                	sub    %esi,%eax
   118cf:	89 07                	mov    %eax,(%edi)
   118d1:	89 f0                	mov    %esi,%eax
   118d3:	8b 0a                	mov    (%edx),%ecx
   118d5:	01 f1                	add    %esi,%ecx
   118d7:	89 0a                	mov    %ecx,(%edx)
   118d9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   118dc:	5b                   	pop    %ebx
   118dd:	5e                   	pop    %esi
   118de:	5f                   	pop    %edi
   118df:	5d                   	pop    %ebp
   118e0:	c3                   	ret    
   118e1:	eb 0d                	jmp    118f0 <_NdisCopyFromPacketToPacket@24>
   118e3:	90                   	nop    
   118e4:	90                   	nop    
   118e5:	90                   	nop    
   118e6:	90                   	nop    
   118e7:	90                   	nop    
   118e8:	90                   	nop    
   118e9:	90                   	nop    
   118ea:	90                   	nop    
   118eb:	90                   	nop    
   118ec:	90                   	nop    
   118ed:	90                   	nop    
   118ee:	90                   	nop    
   118ef:	90                   	nop    

000118f0 <_NdisCopyFromPacketToPacket@24>:
   118f0:	55                   	push   %ebp
   118f1:	89 e5                	mov    %esp,%ebp
   118f3:	57                   	push   %edi
   118f4:	56                   	push   %esi
   118f5:	53                   	push   %ebx
   118f6:	83 ec 1c             	sub    $0x1c,%esp
   118f9:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   118fc:	8b 45 1c             	mov    0x1c(%ebp),%eax
   118ff:	8d 7d ec             	lea    0xffffffec(%ebp),%edi
   11902:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   11908:	8d 45 e8             	lea    0xffffffe8(%ebp),%eax
   1190b:	52                   	push   %edx
   1190c:	57                   	push   %edi
   1190d:	50                   	push   %eax
   1190e:	8d 45 e4             	lea    0xffffffe4(%ebp),%eax
   11911:	50                   	push   %eax
   11912:	8b 45 08             	mov    0x8(%ebp),%eax
   11915:	50                   	push   %eax
   11916:	e8 85 fa ff ff       	call   113a0 <_NdisGetFirstBufferFromPacket@20>
   1191b:	8b 5d e4             	mov    0xffffffe4(%ebp),%ebx
   1191e:	8b 75 0c             	mov    0xc(%ebp),%esi
   11921:	eb 17                	jmp    1193a <_NdisCopyFromPacketToPacket@24+0x4a>
   11923:	8d 55 e8             	lea    0xffffffe8(%ebp),%edx
   11926:	50                   	push   %eax
   11927:	57                   	push   %edi
   11928:	52                   	push   %edx
   11929:	53                   	push   %ebx
   1192a:	e8 21 ff ff ff       	call   11850 <_NdisQueryBuffer@12>
   1192f:	8b 07                	mov    (%edi),%eax
   11931:	59                   	pop    %ecx
   11932:	39 f0                	cmp    %esi,%eax
   11934:	77 12                	ja     11948 <_NdisCopyFromPacketToPacket@24+0x58>
   11936:	29 c6                	sub    %eax,%esi
   11938:	8b 1b                	mov    (%ebx),%ebx
   1193a:	85 db                	test   %ebx,%ebx
   1193c:	75 e5                	jne    11923 <_NdisCopyFromPacketToPacket@24+0x33>
   1193e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11941:	5b                   	pop    %ebx
   11942:	5e                   	pop    %esi
   11943:	5f                   	pop    %edi
   11944:	5d                   	pop    %ebp
   11945:	c2 18 00             	ret    $0x18
   11948:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   1194b:	29 f0                	sub    %esi,%eax
   1194d:	01 f2                	add    %esi,%edx
   1194f:	89 07                	mov    %eax,(%edi)
   11951:	89 55 e8             	mov    %edx,0xffffffe8(%ebp)
   11954:	46                   	inc    %esi
   11955:	74 e7                	je     1193e <_NdisCopyFromPacketToPacket@24+0x4e>
   11957:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   1195a:	8d 55 e0             	lea    0xffffffe0(%ebp),%edx
   1195d:	50                   	push   %eax
   1195e:	8d 45 dc             	lea    0xffffffdc(%ebp),%eax
   11961:	52                   	push   %edx
   11962:	50                   	push   %eax
   11963:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   11966:	50                   	push   %eax
   11967:	8b 45 14             	mov    0x14(%ebp),%eax
   1196a:	50                   	push   %eax
   1196b:	e8 30 fa ff ff       	call   113a0 <_NdisGetFirstBufferFromPacket@20>
   11970:	8b 5d d8             	mov    0xffffffd8(%ebp),%ebx
   11973:	8b 75 18             	mov    0x18(%ebp),%esi
   11976:	eb 1b                	jmp    11993 <_NdisCopyFromPacketToPacket@24+0xa3>
   11978:	8d 55 e0             	lea    0xffffffe0(%ebp),%edx
   1197b:	50                   	push   %eax
   1197c:	8d 45 dc             	lea    0xffffffdc(%ebp),%eax
   1197f:	52                   	push   %edx
   11980:	50                   	push   %eax
   11981:	53                   	push   %ebx
   11982:	e8 c9 fe ff ff       	call   11850 <_NdisQueryBuffer@12>
   11987:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   1198a:	59                   	pop    %ecx
   1198b:	39 f0                	cmp    %esi,%eax
   1198d:	77 0a                	ja     11999 <_NdisCopyFromPacketToPacket@24+0xa9>
   1198f:	29 c6                	sub    %eax,%esi
   11991:	8b 1b                	mov    (%ebx),%ebx
   11993:	85 db                	test   %ebx,%ebx
   11995:	75 e1                	jne    11978 <_NdisCopyFromPacketToPacket@24+0x88>
   11997:	eb a5                	jmp    1193e <_NdisCopyFromPacketToPacket@24+0x4e>
   11999:	8b 55 dc             	mov    0xffffffdc(%ebp),%edx
   1199c:	29 f0                	sub    %esi,%eax
   1199e:	01 f2                	add    %esi,%edx
   119a0:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   119a3:	89 55 dc             	mov    %edx,0xffffffdc(%ebp)
   119a6:	46                   	inc    %esi
   119a7:	74 95                	je     1193e <_NdisCopyFromPacketToPacket@24+0x4e>
   119a9:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   119b0:	8b 5d 10             	mov    0x10(%ebp),%ebx
   119b3:	39 c3                	cmp    %eax,%ebx
   119b5:	72 02                	jb     119b9 <_NdisCopyFromPacketToPacket@24+0xc9>
   119b7:	89 c3                	mov    %eax,%ebx
   119b9:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   119bc:	39 d8                	cmp    %ebx,%eax
   119be:	73 02                	jae    119c2 <_NdisCopyFromPacketToPacket@24+0xd2>
   119c0:	89 c3                	mov    %eax,%ebx
   119c2:	50                   	push   %eax
   119c3:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   119c6:	53                   	push   %ebx
   119c7:	50                   	push   %eax
   119c8:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   119cb:	50                   	push   %eax
   119cc:	e8 ff 4c 00 00       	call   166d0 <_memcpy>
   119d1:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   119d4:	83 c4 10             	add    $0x10,%esp
   119d7:	01 d8                	add    %ebx,%eax
   119d9:	29 5d 10             	sub    %ebx,0x10(%ebp)
   119dc:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   119df:	74 5c                	je     11a3d <_NdisCopyFromPacketToPacket@24+0x14d>
   119e1:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   119e4:	29 d8                	sub    %ebx,%eax
   119e6:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   119e9:	85 c0                	test   %eax,%eax
   119eb:	75 19                	jne    11a06 <_NdisCopyFromPacketToPacket@24+0x116>
   119ed:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   119f0:	8b 00                	mov    (%eax),%eax
   119f2:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   119f5:	85 c0                	test   %eax,%eax
   119f7:	74 44                	je     11a3d <_NdisCopyFromPacketToPacket@24+0x14d>
   119f9:	8d 55 e8             	lea    0xffffffe8(%ebp),%edx
   119fc:	56                   	push   %esi
   119fd:	57                   	push   %edi
   119fe:	52                   	push   %edx
   119ff:	50                   	push   %eax
   11a00:	e8 4b fe ff ff       	call   11850 <_NdisQueryBuffer@12>
   11a05:	59                   	pop    %ecx
   11a06:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   11a09:	29 d8                	sub    %ebx,%eax
   11a0b:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   11a0e:	85 c0                	test   %eax,%eax
   11a10:	75 9e                	jne    119b0 <_NdisCopyFromPacketToPacket@24+0xc0>
   11a12:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
   11a15:	8b 00                	mov    (%eax),%eax
   11a17:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
   11a1a:	85 c0                	test   %eax,%eax
   11a1c:	74 1f                	je     11a3d <_NdisCopyFromPacketToPacket@24+0x14d>
   11a1e:	52                   	push   %edx
   11a1f:	8d 55 e0             	lea    0xffffffe0(%ebp),%edx
   11a22:	52                   	push   %edx
   11a23:	8d 55 dc             	lea    0xffffffdc(%ebp),%edx
   11a26:	52                   	push   %edx
   11a27:	50                   	push   %eax
   11a28:	e8 23 fe ff ff       	call   11850 <_NdisQueryBuffer@12>
   11a2d:	58                   	pop    %eax
   11a2e:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   11a31:	8b 5d 10             	mov    0x10(%ebp),%ebx
   11a34:	39 c3                	cmp    %eax,%ebx
   11a36:	72 81                	jb     119b9 <_NdisCopyFromPacketToPacket@24+0xc9>
   11a38:	e9 7a ff ff ff       	jmp    119b7 <_NdisCopyFromPacketToPacket@24+0xc7>
   11a3d:	8b 55 1c             	mov    0x1c(%ebp),%edx
   11a40:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11a43:	89 02                	mov    %eax,(%edx)
   11a45:	e9 f4 fe ff ff       	jmp    1193e <_NdisCopyFromPacketToPacket@24+0x4e>
   11a4a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00011a50 <_CopyPacketToBufferChain>:
   11a50:	55                   	push   %ebp
   11a51:	89 e5                	mov    %esp,%ebp
   11a53:	57                   	push   %edi
   11a54:	56                   	push   %esi
   11a55:	53                   	push   %ebx
   11a56:	83 ec 20             	sub    $0x20,%esp
   11a59:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11a5c:	8b 45 08             	mov    0x8(%ebp),%eax
   11a5f:	8d 7d f0             	lea    0xfffffff0(%ebp),%edi
   11a62:	57                   	push   %edi
   11a63:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
   11a66:	52                   	push   %edx
   11a67:	50                   	push   %eax
   11a68:	e8 e3 fd ff ff       	call   11850 <_NdisQueryBuffer@12>
   11a6d:	8b 5d d8             	mov    0xffffffd8(%ebp),%ebx
   11a70:	58                   	pop    %eax
   11a71:	8b 75 0c             	mov    0xc(%ebp),%esi
   11a74:	eb 17                	jmp    11a8d <_CopyPacketToBufferChain+0x3d>
   11a76:	50                   	push   %eax
   11a77:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   11a7a:	57                   	push   %edi
   11a7b:	50                   	push   %eax
   11a7c:	53                   	push   %ebx
   11a7d:	e8 ce fd ff ff       	call   11850 <_NdisQueryBuffer@12>
   11a82:	8b 07                	mov    (%edi),%eax
   11a84:	59                   	pop    %ecx
   11a85:	39 f0                	cmp    %esi,%eax
   11a87:	77 12                	ja     11a9b <_CopyPacketToBufferChain+0x4b>
   11a89:	29 c6                	sub    %eax,%esi
   11a8b:	8b 1b                	mov    (%ebx),%ebx
   11a8d:	85 db                	test   %ebx,%ebx
   11a8f:	75 e5                	jne    11a76 <_CopyPacketToBufferChain+0x26>
   11a91:	31 c0                	xor    %eax,%eax
   11a93:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11a96:	5b                   	pop    %ebx
   11a97:	5e                   	pop    %esi
   11a98:	5f                   	pop    %edi
   11a99:	5d                   	pop    %ebp
   11a9a:	c3                   	ret    
   11a9b:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   11a9e:	29 f0                	sub    %esi,%eax
   11aa0:	01 f2                	add    %esi,%edx
   11aa2:	89 07                	mov    %eax,(%edi)
   11aa4:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
   11aa7:	46                   	inc    %esi
   11aa8:	74 e7                	je     11a91 <_CopyPacketToBufferChain+0x41>
   11aaa:	8d 45 e8             	lea    0xffffffe8(%ebp),%eax
   11aad:	8d 55 e4             	lea    0xffffffe4(%ebp),%edx
   11ab0:	50                   	push   %eax
   11ab1:	8d 45 e0             	lea    0xffffffe0(%ebp),%eax
   11ab4:	52                   	push   %edx
   11ab5:	50                   	push   %eax
   11ab6:	8d 45 dc             	lea    0xffffffdc(%ebp),%eax
   11ab9:	50                   	push   %eax
   11aba:	8b 45 10             	mov    0x10(%ebp),%eax
   11abd:	50                   	push   %eax
   11abe:	e8 dd f8 ff ff       	call   113a0 <_NdisGetFirstBufferFromPacket@20>
   11ac3:	8b 5d dc             	mov    0xffffffdc(%ebp),%ebx
   11ac6:	8b 75 14             	mov    0x14(%ebp),%esi
   11ac9:	eb 20                	jmp    11aeb <_CopyPacketToBufferChain+0x9b>
   11acb:	90                   	nop    
   11acc:	8d 74 26 00          	lea    0x0(%esi),%esi
   11ad0:	8d 55 e4             	lea    0xffffffe4(%ebp),%edx
   11ad3:	50                   	push   %eax
   11ad4:	8d 45 e0             	lea    0xffffffe0(%ebp),%eax
   11ad7:	52                   	push   %edx
   11ad8:	50                   	push   %eax
   11ad9:	53                   	push   %ebx
   11ada:	e8 71 fd ff ff       	call   11850 <_NdisQueryBuffer@12>
   11adf:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   11ae2:	59                   	pop    %ecx
   11ae3:	39 f0                	cmp    %esi,%eax
   11ae5:	77 0a                	ja     11af1 <_CopyPacketToBufferChain+0xa1>
   11ae7:	29 c6                	sub    %eax,%esi
   11ae9:	8b 1b                	mov    (%ebx),%ebx
   11aeb:	85 db                	test   %ebx,%ebx
   11aed:	75 e1                	jne    11ad0 <_CopyPacketToBufferChain+0x80>
   11aef:	eb a0                	jmp    11a91 <_CopyPacketToBufferChain+0x41>
   11af1:	8b 55 e0             	mov    0xffffffe0(%ebp),%edx
   11af4:	29 f0                	sub    %esi,%eax
   11af6:	01 f2                	add    %esi,%edx
   11af8:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   11afb:	89 55 e0             	mov    %edx,0xffffffe0(%ebp)
   11afe:	46                   	inc    %esi
   11aff:	74 90                	je     11a91 <_CopyPacketToBufferChain+0x41>
   11b01:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   11b08:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   11b0b:	8b 5d 18             	mov    0x18(%ebp),%ebx
   11b0e:	39 c3                	cmp    %eax,%ebx
   11b10:	72 02                	jb     11b14 <_CopyPacketToBufferChain+0xc4>
   11b12:	89 c3                	mov    %eax,%ebx
   11b14:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11b17:	39 d8                	cmp    %ebx,%eax
   11b19:	73 02                	jae    11b1d <_CopyPacketToBufferChain+0xcd>
   11b1b:	89 c3                	mov    %eax,%ebx
   11b1d:	50                   	push   %eax
   11b1e:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   11b21:	53                   	push   %ebx
   11b22:	50                   	push   %eax
   11b23:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11b26:	50                   	push   %eax
   11b27:	e8 a4 4b 00 00       	call   166d0 <_memcpy>
   11b2c:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   11b2f:	83 c4 10             	add    $0x10,%esp
   11b32:	01 d8                	add    %ebx,%eax
   11b34:	29 5d 18             	sub    %ebx,0x18(%ebp)
   11b37:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   11b3a:	74 52                	je     11b8e <_CopyPacketToBufferChain+0x13e>
   11b3c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11b3f:	29 d8                	sub    %ebx,%eax
   11b41:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   11b44:	85 c0                	test   %eax,%eax
   11b46:	75 19                	jne    11b61 <_CopyPacketToBufferChain+0x111>
   11b48:	8b 55 d8             	mov    0xffffffd8(%ebp),%edx
   11b4b:	8b 02                	mov    (%edx),%eax
   11b4d:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
   11b50:	85 c0                	test   %eax,%eax
   11b52:	74 3a                	je     11b8e <_CopyPacketToBufferChain+0x13e>
   11b54:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11b57:	56                   	push   %esi
   11b58:	57                   	push   %edi
   11b59:	52                   	push   %edx
   11b5a:	50                   	push   %eax
   11b5b:	e8 f0 fc ff ff       	call   11850 <_NdisQueryBuffer@12>
   11b60:	59                   	pop    %ecx
   11b61:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   11b64:	29 d8                	sub    %ebx,%eax
   11b66:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   11b69:	85 c0                	test   %eax,%eax
   11b6b:	75 9e                	jne    11b0b <_CopyPacketToBufferChain+0xbb>
   11b6d:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   11b70:	8b 00                	mov    (%eax),%eax
   11b72:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
   11b75:	85 c0                	test   %eax,%eax
   11b77:	74 15                	je     11b8e <_CopyPacketToBufferChain+0x13e>
   11b79:	52                   	push   %edx
   11b7a:	8d 55 e4             	lea    0xffffffe4(%ebp),%edx
   11b7d:	52                   	push   %edx
   11b7e:	8d 55 e0             	lea    0xffffffe0(%ebp),%edx
   11b81:	52                   	push   %edx
   11b82:	50                   	push   %eax
   11b83:	e8 c8 fc ff ff       	call   11850 <_NdisQueryBuffer@12>
   11b88:	58                   	pop    %eax
   11b89:	e9 7a ff ff ff       	jmp    11b08 <_CopyPacketToBufferChain+0xb8>
   11b8e:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   11b91:	e9 fd fe ff ff       	jmp    11a93 <_CopyPacketToBufferChain+0x43>
   11b96:	8d 76 00             	lea    0x0(%esi),%esi
   11b99:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011ba0 <_CopyBufferChainToBuffer>:
   11ba0:	55                   	push   %ebp
   11ba1:	89 e5                	mov    %esp,%ebp
   11ba3:	57                   	push   %edi
   11ba4:	56                   	push   %esi
   11ba5:	53                   	push   %ebx
   11ba6:	83 ec 0c             	sub    $0xc,%esp
   11ba9:	8b 45 0c             	mov    0xc(%ebp),%eax
   11bac:	8b 7d 14             	mov    0x14(%ebp),%edi
   11baf:	89 c3                	mov    %eax,%ebx
   11bb1:	8b 75 10             	mov    0x10(%ebp),%esi
   11bb4:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   11bb7:	eb 22                	jmp    11bdb <_CopyBufferChainToBuffer+0x3b>
   11bb9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   11bc0:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11bc3:	50                   	push   %eax
   11bc4:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   11bc7:	52                   	push   %edx
   11bc8:	50                   	push   %eax
   11bc9:	53                   	push   %ebx
   11bca:	e8 81 fc ff ff       	call   11850 <_NdisQueryBuffer@12>
   11bcf:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11bd2:	59                   	pop    %ecx
   11bd3:	39 f0                	cmp    %esi,%eax
   11bd5:	77 12                	ja     11be9 <_CopyBufferChainToBuffer+0x49>
   11bd7:	29 c6                	sub    %eax,%esi
   11bd9:	8b 1b                	mov    (%ebx),%ebx
   11bdb:	85 db                	test   %ebx,%ebx
   11bdd:	75 e1                	jne    11bc0 <_CopyBufferChainToBuffer+0x20>
   11bdf:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11be2:	31 c0                	xor    %eax,%eax
   11be4:	5b                   	pop    %ebx
   11be5:	5e                   	pop    %esi
   11be6:	5f                   	pop    %edi
   11be7:	5d                   	pop    %ebp
   11be8:	c3                   	ret    
   11be9:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   11bec:	29 f0                	sub    %esi,%eax
   11bee:	01 f2                	add    %esi,%edx
   11bf0:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11bf3:	89 55 f0             	mov    %edx,0xfffffff0(%ebp)
   11bf6:	46                   	inc    %esi
   11bf7:	74 e6                	je     11bdf <_CopyBufferChainToBuffer+0x3f>
   11bf9:	31 f6                	xor    %esi,%esi
   11bfb:	90                   	nop    
   11bfc:	8d 74 26 00          	lea    0x0(%esi),%esi
   11c00:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11c03:	89 fb                	mov    %edi,%ebx
   11c05:	39 c7                	cmp    %eax,%edi
   11c07:	76 02                	jbe    11c0b <_CopyBufferChainToBuffer+0x6b>
   11c09:	89 c3                	mov    %eax,%ebx
   11c0b:	50                   	push   %eax
   11c0c:	53                   	push   %ebx
   11c0d:	01 de                	add    %ebx,%esi
   11c0f:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11c12:	50                   	push   %eax
   11c13:	8b 45 08             	mov    0x8(%ebp),%eax
   11c16:	50                   	push   %eax
   11c17:	e8 b4 4a 00 00       	call   166d0 <_memcpy>
   11c1c:	8b 4d 08             	mov    0x8(%ebp),%ecx
   11c1f:	83 c4 10             	add    $0x10,%esp
   11c22:	01 d9                	add    %ebx,%ecx
   11c24:	29 df                	sub    %ebx,%edi
   11c26:	89 4d 08             	mov    %ecx,0x8(%ebp)
   11c29:	74 2a                	je     11c55 <_CopyBufferChainToBuffer+0xb5>
   11c2b:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11c2e:	29 d8                	sub    %ebx,%eax
   11c30:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11c33:	85 c0                	test   %eax,%eax
   11c35:	75 cc                	jne    11c03 <_CopyBufferChainToBuffer+0x63>
   11c37:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   11c3a:	8b 02                	mov    (%edx),%eax
   11c3c:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   11c3f:	85 c0                	test   %eax,%eax
   11c41:	74 12                	je     11c55 <_CopyBufferChainToBuffer+0xb5>
   11c43:	52                   	push   %edx
   11c44:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11c47:	52                   	push   %edx
   11c48:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   11c4b:	52                   	push   %edx
   11c4c:	50                   	push   %eax
   11c4d:	e8 fe fb ff ff       	call   11850 <_NdisQueryBuffer@12>
   11c52:	58                   	pop    %eax
   11c53:	eb ab                	jmp    11c00 <_CopyBufferChainToBuffer+0x60>
   11c55:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11c58:	89 f0                	mov    %esi,%eax
   11c5a:	5b                   	pop    %ebx
   11c5b:	5e                   	pop    %esi
   11c5c:	5f                   	pop    %edi
   11c5d:	5d                   	pop    %ebp
   11c5e:	c3                   	ret    
   11c5f:	90                   	nop    

00011c60 <_CopyPacketToBuffer>:
   11c60:	55                   	push   %ebp
   11c61:	89 e5                	mov    %esp,%ebp
   11c63:	83 ec 18             	sub    $0x18,%esp
   11c66:	8d 45 fc             	lea    0xfffffffc(%ebp),%eax
   11c69:	50                   	push   %eax
   11c6a:	8d 45 f8             	lea    0xfffffff8(%ebp),%eax
   11c6d:	50                   	push   %eax
   11c6e:	8d 45 f4             	lea    0xfffffff4(%ebp),%eax
   11c71:	50                   	push   %eax
   11c72:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   11c75:	50                   	push   %eax
   11c76:	8b 45 0c             	mov    0xc(%ebp),%eax
   11c79:	50                   	push   %eax
   11c7a:	e8 21 f7 ff ff       	call   113a0 <_NdisGetFirstBufferFromPacket@20>
   11c7f:	8b 45 14             	mov    0x14(%ebp),%eax
   11c82:	50                   	push   %eax
   11c83:	8b 45 10             	mov    0x10(%ebp),%eax
   11c86:	50                   	push   %eax
   11c87:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11c8a:	50                   	push   %eax
   11c8b:	8b 45 08             	mov    0x8(%ebp),%eax
   11c8e:	50                   	push   %eax
   11c8f:	e8 0c ff ff ff       	call   11ba0 <_CopyBufferChainToBuffer>
   11c94:	c9                   	leave  
   11c95:	c3                   	ret    
   11c96:	8d 76 00             	lea    0x0(%esi),%esi
   11c99:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011ca0 <_CopyBufferToBufferChain>:
   11ca0:	55                   	push   %ebp
   11ca1:	89 e5                	mov    %esp,%ebp
   11ca3:	57                   	push   %edi
   11ca4:	56                   	push   %esi
   11ca5:	53                   	push   %ebx
   11ca6:	83 ec 0c             	sub    $0xc,%esp
   11ca9:	8b 45 08             	mov    0x8(%ebp),%eax
   11cac:	8b 7d 14             	mov    0x14(%ebp),%edi
   11caf:	89 c3                	mov    %eax,%ebx
   11cb1:	8b 75 0c             	mov    0xc(%ebp),%esi
   11cb4:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   11cb7:	eb 22                	jmp    11cdb <_CopyBufferToBufferChain+0x3b>
   11cb9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   11cc0:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11cc3:	50                   	push   %eax
   11cc4:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   11cc7:	52                   	push   %edx
   11cc8:	50                   	push   %eax
   11cc9:	53                   	push   %ebx
   11cca:	e8 81 fb ff ff       	call   11850 <_NdisQueryBuffer@12>
   11ccf:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11cd2:	59                   	pop    %ecx
   11cd3:	39 f0                	cmp    %esi,%eax
   11cd5:	77 12                	ja     11ce9 <_CopyBufferToBufferChain+0x49>
   11cd7:	29 c6                	sub    %eax,%esi
   11cd9:	8b 1b                	mov    (%ebx),%ebx
   11cdb:	85 db                	test   %ebx,%ebx
   11cdd:	75 e1                	jne    11cc0 <_CopyBufferToBufferChain+0x20>
   11cdf:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11ce2:	31 c0                	xor    %eax,%eax
   11ce4:	5b                   	pop    %ebx
   11ce5:	5e                   	pop    %esi
   11ce6:	5f                   	pop    %edi
   11ce7:	5d                   	pop    %ebp
   11ce8:	c3                   	ret    
   11ce9:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   11cec:	29 f0                	sub    %esi,%eax
   11cee:	01 f2                	add    %esi,%edx
   11cf0:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11cf3:	89 55 f0             	mov    %edx,0xfffffff0(%ebp)
   11cf6:	46                   	inc    %esi
   11cf7:	74 e6                	je     11cdf <_CopyBufferToBufferChain+0x3f>
   11cf9:	31 f6                	xor    %esi,%esi
   11cfb:	90                   	nop    
   11cfc:	8d 74 26 00          	lea    0x0(%esi),%esi
   11d00:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11d03:	89 fb                	mov    %edi,%ebx
   11d05:	39 c7                	cmp    %eax,%edi
   11d07:	76 02                	jbe    11d0b <_CopyBufferToBufferChain+0x6b>
   11d09:	89 c3                	mov    %eax,%ebx
   11d0b:	50                   	push   %eax
   11d0c:	53                   	push   %ebx
   11d0d:	01 de                	add    %ebx,%esi
   11d0f:	8b 45 10             	mov    0x10(%ebp),%eax
   11d12:	50                   	push   %eax
   11d13:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11d16:	50                   	push   %eax
   11d17:	e8 b4 49 00 00       	call   166d0 <_memcpy>
   11d1c:	8b 45 10             	mov    0x10(%ebp),%eax
   11d1f:	83 c4 10             	add    $0x10,%esp
   11d22:	01 d8                	add    %ebx,%eax
   11d24:	29 df                	sub    %ebx,%edi
   11d26:	89 45 10             	mov    %eax,0x10(%ebp)
   11d29:	74 2a                	je     11d55 <_CopyBufferToBufferChain+0xb5>
   11d2b:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11d2e:	29 d8                	sub    %ebx,%eax
   11d30:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11d33:	85 c0                	test   %eax,%eax
   11d35:	75 cc                	jne    11d03 <_CopyBufferToBufferChain+0x63>
   11d37:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   11d3a:	8b 02                	mov    (%edx),%eax
   11d3c:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   11d3f:	85 c0                	test   %eax,%eax
   11d41:	74 12                	je     11d55 <_CopyBufferToBufferChain+0xb5>
   11d43:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11d46:	51                   	push   %ecx
   11d47:	52                   	push   %edx
   11d48:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   11d4b:	52                   	push   %edx
   11d4c:	50                   	push   %eax
   11d4d:	e8 fe fa ff ff       	call   11850 <_NdisQueryBuffer@12>
   11d52:	5a                   	pop    %edx
   11d53:	eb ab                	jmp    11d00 <_CopyBufferToBufferChain+0x60>
   11d55:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11d58:	89 f0                	mov    %esi,%eax
   11d5a:	5b                   	pop    %ebx
   11d5b:	5e                   	pop    %esi
   11d5c:	5f                   	pop    %edi
   11d5d:	5d                   	pop    %ebp
   11d5e:	c3                   	ret    
   11d5f:	90                   	nop    

00011d60 <_NdisQueryBufferSafe@16>:
   11d60:	55                   	push   %ebp
   11d61:	89 e5                	mov    %esp,%ebp
   11d63:	56                   	push   %esi
   11d64:	53                   	push   %ebx
   11d65:	8b 75 0c             	mov    0xc(%ebp),%esi
   11d68:	8b 5d 08             	mov    0x8(%ebp),%ebx
   11d6b:	85 f6                	test   %esi,%esi
   11d6d:	74 0d                	je     11d7c <_NdisQueryBufferSafe@16+0x1c>
   11d6f:	0f bf 43 06          	movswl 0x6(%ebx),%eax
   11d73:	a8 05                	test   $0x5,%al
   11d75:	74 19                	je     11d90 <_NdisQueryBufferSafe@16+0x30>
   11d77:	8b 43 0c             	mov    0xc(%ebx),%eax
   11d7a:	89 06                	mov    %eax,(%esi)
   11d7c:	8b 45 10             	mov    0x10(%ebp),%eax
   11d7f:	8b 53 14             	mov    0x14(%ebx),%edx
   11d82:	89 10                	mov    %edx,(%eax)
   11d84:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11d87:	5b                   	pop    %ebx
   11d88:	5e                   	pop    %esi
   11d89:	5d                   	pop    %ebp
   11d8a:	c2 10 00             	ret    $0x10
   11d8d:	8d 76 00             	lea    0x0(%esi),%esi
   11d90:	50                   	push   %eax
   11d91:	50                   	push   %eax
   11d92:	8b 45 14             	mov    0x14(%ebp),%eax
   11d95:	50                   	push   %eax
   11d96:	6a 00                	push   $0x0
   11d98:	6a 00                	push   $0x0
   11d9a:	6a 01                	push   $0x1
   11d9c:	6a 00                	push   $0x0
   11d9e:	53                   	push   %ebx
   11d9f:	ff 15 bc e2 01 00    	call   *0x1e2bc
   11da5:	5a                   	pop    %edx
   11da6:	59                   	pop    %ecx
   11da7:	eb d1                	jmp    11d7a <_NdisQueryBufferSafe@16+0x1a>
   11da9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011db0 <_NdisQueryBufferOffset@12>:
   11db0:	55                   	push   %ebp
   11db1:	89 e5                	mov    %esp,%ebp
   11db3:	8b 4d 08             	mov    0x8(%ebp),%ecx
   11db6:	8b 45 0c             	mov    0xc(%ebp),%eax
   11db9:	8b 51 18             	mov    0x18(%ecx),%edx
   11dbc:	89 10                	mov    %edx,(%eax)
   11dbe:	8b 45 10             	mov    0x10(%ebp),%eax
   11dc1:	8b 51 14             	mov    0x14(%ecx),%edx
   11dc4:	89 10                	mov    %edx,(%eax)
   11dc6:	5d                   	pop    %ebp
   11dc7:	c2 0c 00             	ret    $0xc
   11dca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00011dd0 <_NdisUnchainBufferAtBack@8>:
   11dd0:	55                   	push   %ebp
   11dd1:	89 e5                	mov    %esp,%ebp
   11dd3:	53                   	push   %ebx
   11dd4:	8b 4d 08             	mov    0x8(%ebp),%ecx
   11dd7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   11dda:	8b 41 08             	mov    0x8(%ecx),%eax
   11ddd:	85 c0                	test   %eax,%eax
   11ddf:	75 0f                	jne    11df0 <_NdisUnchainBufferAtBack@8+0x20>
   11de1:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
   11de7:	5b                   	pop    %ebx
   11de8:	5d                   	pop    %ebp
   11de9:	c2 08 00             	ret    $0x8
   11dec:	8d 74 26 00          	lea    0x0(%esi),%esi
   11df0:	8b 10                	mov    (%eax),%edx
   11df2:	85 d2                	test   %edx,%edx
   11df4:	74 18                	je     11e0e <_NdisUnchainBufferAtBack@8+0x3e>
   11df6:	89 c2                	mov    %eax,%edx
   11df8:	8b 00                	mov    (%eax),%eax
   11dfa:	83 38 00             	cmpl   $0x0,(%eax)
   11dfd:	75 f7                	jne    11df6 <_NdisUnchainBufferAtBack@8+0x26>
   11dff:	85 d2                	test   %edx,%edx
   11e01:	74 0b                	je     11e0e <_NdisUnchainBufferAtBack@8+0x3e>
   11e03:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   11e09:	89 51 0c             	mov    %edx,0xc(%ecx)
   11e0c:	eb 0e                	jmp    11e1c <_NdisUnchainBufferAtBack@8+0x4c>
   11e0e:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
   11e15:	c7 41 0c 00 00 00 00 	movl   $0x0,0xc(%ecx)
   11e1c:	c6 41 1c 00          	movb   $0x0,0x1c(%ecx)
   11e20:	89 03                	mov    %eax,(%ebx)
   11e22:	5b                   	pop    %ebx
   11e23:	5d                   	pop    %ebp
   11e24:	c2 08 00             	ret    $0x8
   11e27:	89 f6                	mov    %esi,%esi
   11e29:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011e30 <_NdisUnchainBufferAtFront@8>:
   11e30:	55                   	push   %ebp
   11e31:	89 e5                	mov    %esp,%ebp
   11e33:	53                   	push   %ebx
   11e34:	8b 4d 08             	mov    0x8(%ebp),%ecx
   11e37:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   11e3a:	8b 51 08             	mov    0x8(%ecx),%edx
   11e3d:	85 d2                	test   %edx,%edx
   11e3f:	75 0f                	jne    11e50 <_NdisUnchainBufferAtFront@8+0x20>
   11e41:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
   11e47:	5b                   	pop    %ebx
   11e48:	5d                   	pop    %ebp
   11e49:	c2 08 00             	ret    $0x8
   11e4c:	8d 74 26 00          	lea    0x0(%esi),%esi
   11e50:	8b 02                	mov    (%edx),%eax
   11e52:	89 41 08             	mov    %eax,0x8(%ecx)
   11e55:	8b 02                	mov    (%edx),%eax
   11e57:	85 c0                	test   %eax,%eax
   11e59:	75 07                	jne    11e62 <_NdisUnchainBufferAtFront@8+0x32>
   11e5b:	c7 41 0c 00 00 00 00 	movl   $0x0,0xc(%ecx)
   11e62:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   11e68:	c6 41 1c 00          	movb   $0x0,0x1c(%ecx)
   11e6c:	89 13                	mov    %edx,(%ebx)
   11e6e:	5b                   	pop    %ebx
   11e6f:	5d                   	pop    %ebp
   11e70:	c2 08 00             	ret    $0x8
   11e73:	90                   	nop    
   11e74:	90                   	nop    
   11e75:	90                   	nop    
   11e76:	90                   	nop    
   11e77:	90                   	nop    
   11e78:	90                   	nop    
   11e79:	90                   	nop    
   11e7a:	90                   	nop    
   11e7b:	90                   	nop    
   11e7c:	90                   	nop    
   11e7d:	90                   	nop    
   11e7e:	90                   	nop    
   11e7f:	90                   	nop    

00011e80 <_NdisClAddParty@16>:
   11e80:	55                   	push   %ebp
   11e81:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11e86:	89 e5                	mov    %esp,%ebp
   11e88:	5d                   	pop    %ebp
   11e89:	c2 10 00             	ret    $0x10
   11e8c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011e90 <_NdisClCloseAddressFamily@4>:
   11e90:	55                   	push   %ebp
   11e91:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11e96:	89 e5                	mov    %esp,%ebp
   11e98:	5d                   	pop    %ebp
   11e99:	c2 04 00             	ret    $0x4
   11e9c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011ea0 <_NdisClCloseCall@16>:
   11ea0:	55                   	push   %ebp
   11ea1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11ea6:	89 e5                	mov    %esp,%ebp
   11ea8:	5d                   	pop    %ebp
   11ea9:	c2 10 00             	ret    $0x10
   11eac:	8d 74 26 00          	lea    0x0(%esi),%esi

00011eb0 <_NdisClDeregisterSap@4>:
   11eb0:	55                   	push   %ebp
   11eb1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11eb6:	89 e5                	mov    %esp,%ebp
   11eb8:	5d                   	pop    %ebp
   11eb9:	c2 04 00             	ret    $0x4
   11ebc:	8d 74 26 00          	lea    0x0(%esi),%esi

00011ec0 <_NdisClDropParty@12>:
   11ec0:	55                   	push   %ebp
   11ec1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11ec6:	89 e5                	mov    %esp,%ebp
   11ec8:	5d                   	pop    %ebp
   11ec9:	c2 0c 00             	ret    $0xc
   11ecc:	8d 74 26 00          	lea    0x0(%esi),%esi

00011ed0 <_NdisClIncomingCallComplete@12>:
   11ed0:	55                   	push   %ebp
   11ed1:	89 e5                	mov    %esp,%ebp
   11ed3:	5d                   	pop    %ebp
   11ed4:	c2 0c 00             	ret    $0xc
   11ed7:	89 f6                	mov    %esi,%esi
   11ed9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011ee0 <_NdisClMakeCall@16>:
    OUT     PNDIS_HANDLE        NdisPartyHandle         OPTIONAL)
/*
 * FUNCTION:
 * ARGUMENTS:
 * NOTES:
 *    NDIS 5.0
 */
{
   11ee0:	55                   	push   %ebp
    UNIMPLEMENTED

    return NDIS_STATUS_FAILURE;
}
   11ee1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11ee6:	89 e5                	mov    %esp,%ebp
   11ee8:	5d                   	pop    %ebp
   11ee9:	c2 10 00             	ret    $0x10
   11eec:	8d 74 26 00          	lea    0x0(%esi),%esi

00011ef0 <_NdisClModifyCallQoS@8>:


/*
 * @unimplemented
 */
NDIS_STATUS 
DDKAPI
NdisClModifyCallQoS(
    IN  NDIS_HANDLE         NdisVcHandle,
    IN  PCO_CALL_PARAMETERS CallParameters)
/*
 * FUNCTION:
 * ARGUMENTS:
 * NOTES:
 *    NDIS 5.0
 */
{
   11ef0:	55                   	push   %ebp
    UNIMPLEMENTED

    return NDIS_STATUS_FAILURE;
}
   11ef1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11ef6:	89 e5                	mov    %esp,%ebp
   11ef8:	5d                   	pop    %ebp
   11ef9:	c2 08 00             	ret    $0x8
   11efc:	8d 74 26 00          	lea    0x0(%esi),%esi

00011f00 <_NdisClOpenAddressFamily@24>:


/*
 * @unimplemented
 */
NDIS_STATUS
DDKAPI
NdisClOpenAddressFamily(
    IN  NDIS_HANDLE                     NdisBindingHandle,
    IN  PCO_ADDRESS_FAMILY              AddressFamily,
    IN  NDIS_HANDLE                     ProtocolAfContext,
    IN  PNDIS_CLIENT_CHARACTERISTICS    ClCharacteristics,
    IN  UINT                            SizeOfClCharacteristics,
    OUT PNDIS_HANDLE                    NdisAfHandle)
/*
 * FUNCTION:
 * ARGUMENTS:
 * NOTES:
 *    NDIS 5.0
 */
{
   11f00:	55                   	push   %ebp
    UNIMPLEMENTED

    return NDIS_STATUS_FAILURE;
}
   11f01:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11f06:	89 e5                	mov    %esp,%ebp
   11f08:	5d                   	pop    %ebp
   11f09:	c2 18 00             	ret    $0x18
   11f0c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011f10 <_NdisClRegisterSap@16>:


/*
 * @unimplemented
 */
NDIS_STATUS
DDKAPI
NdisClRegisterSap(
    IN  NDIS_HANDLE     NdisAfHandle,
    IN  NDIS_HANDLE     ProtocolSapContext,
    IN  PCO_SAP         Sap,
    OUT PNDIS_HANDLE    NdisSapHandle)
/*
 * FUNCTION:
 * ARGUMENTS:
 * NOTES:
 *    NDIS 5.0
 */
{
   11f10:	55                   	push   %ebp
    UNIMPLEMENTED

    return NDIS_STATUS_FAILURE;
}
   11f11:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11f16:	89 e5                	mov    %esp,%ebp
   11f18:	5d                   	pop    %ebp
   11f19:	c2 10 00             	ret    $0x10
   11f1c:	90                   	nop    
   11f1d:	90                   	nop    
   11f1e:	90                   	nop    
   11f1f:	90                   	nop    

00011f20 <_NdisCmActivateVc@8>:
   11f20:	55                   	push   %ebp
   11f21:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11f26:	89 e5                	mov    %esp,%ebp
   11f28:	5d                   	pop    %ebp
   11f29:	c2 08 00             	ret    $0x8
   11f2c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011f30 <_NdisCmAddPartyComplete@16>:
   11f30:	55                   	push   %ebp
   11f31:	89 e5                	mov    %esp,%ebp
   11f33:	5d                   	pop    %ebp
   11f34:	c2 10 00             	ret    $0x10
   11f37:	89 f6                	mov    %esi,%esi
   11f39:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011f40 <_NdisCmCloseAddressFamilyComplete@8>:
   11f40:	55                   	push   %ebp
   11f41:	89 e5                	mov    %esp,%ebp
   11f43:	5d                   	pop    %ebp
   11f44:	c2 08 00             	ret    $0x8
   11f47:	89 f6                	mov    %esi,%esi
   11f49:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011f50 <_NdisCmCloseCallComplete@12>:
   11f50:	55                   	push   %ebp
   11f51:	89 e5                	mov    %esp,%ebp
   11f53:	5d                   	pop    %ebp
   11f54:	c2 0c 00             	ret    $0xc
   11f57:	89 f6                	mov    %esi,%esi
   11f59:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011f60 <_NdisCmDeactivateVc@4>:
   11f60:	55                   	push   %ebp
   11f61:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11f66:	89 e5                	mov    %esp,%ebp
   11f68:	5d                   	pop    %ebp
   11f69:	c2 04 00             	ret    $0x4
   11f6c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011f70 <_NdisCmDeregisterSapComplete@8>:
   11f70:	55                   	push   %ebp
   11f71:	89 e5                	mov    %esp,%ebp
   11f73:	5d                   	pop    %ebp
   11f74:	c2 08 00             	ret    $0x8
   11f77:	89 f6                	mov    %esi,%esi
   11f79:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011f80 <_NdisCmDispatchCallConnected@4>:
   11f80:	55                   	push   %ebp
   11f81:	89 e5                	mov    %esp,%ebp
   11f83:	5d                   	pop    %ebp
   11f84:	c2 04 00             	ret    $0x4
   11f87:	89 f6                	mov    %esi,%esi
   11f89:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011f90 <_NdisCmDispatchIncomingCall@12>:
   11f90:	55                   	push   %ebp
   11f91:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   11f96:	89 e5                	mov    %esp,%ebp
   11f98:	5d                   	pop    %ebp
   11f99:	c2 0c 00             	ret    $0xc
   11f9c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011fa0 <_NdisCmDispatchIncomingCallQoSChange@8>:
   11fa0:	55                   	push   %ebp
   11fa1:	89 e5                	mov    %esp,%ebp
   11fa3:	5d                   	pop    %ebp
   11fa4:	c2 08 00             	ret    $0x8
   11fa7:	89 f6                	mov    %esi,%esi
   11fa9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011fb0 <_NdisCmDispatchIncomingCloseCall@16>:
   11fb0:	55                   	push   %ebp
   11fb1:	89 e5                	mov    %esp,%ebp
   11fb3:	5d                   	pop    %ebp
   11fb4:	c2 10 00             	ret    $0x10
   11fb7:	89 f6                	mov    %esi,%esi
   11fb9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011fc0 <_NdisCmDispatchIncomingDropParty@16>:
   11fc0:	55                   	push   %ebp
   11fc1:	89 e5                	mov    %esp,%ebp
   11fc3:	5d                   	pop    %ebp
   11fc4:	c2 10 00             	ret    $0x10
   11fc7:	89 f6                	mov    %esi,%esi
   11fc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011fd0 <_NdisCmDropPartyComplete@8>:

/* EOF */
   11fd0:	55                   	push   %ebp
   11fd1:	89 e5                	mov    %esp,%ebp
   11fd3:	5d                   	pop    %ebp
   11fd4:	c2 08 00             	ret    $0x8
   11fd7:	89 f6                	mov    %esi,%esi
   11fd9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011fe0 <_NdisCmMakeCallComplete@20>:
   11fe0:	55                   	push   %ebp
   11fe1:	89 e5                	mov    %esp,%ebp
   11fe3:	5d                   	pop    %ebp
   11fe4:	c2 14 00             	ret    $0x14
   11fe7:	89 f6                	mov    %esi,%esi
   11fe9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011ff0 <_NdisCmModifyCallQoSComplete@12>:
   11ff0:	55                   	push   %ebp
   11ff1:	89 e5                	mov    %esp,%ebp
   11ff3:	5d                   	pop    %ebp
   11ff4:	c2 0c 00             	ret    $0xc
   11ff7:	89 f6                	mov    %esi,%esi
   11ff9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012000 <_NdisCmOpenAddressFamilyComplete@12>:
   12000:	55                   	push   %ebp
   12001:	89 e5                	mov    %esp,%ebp
   12003:	5d                   	pop    %ebp
   12004:	c2 0c 00             	ret    $0xc
   12007:	89 f6                	mov    %esi,%esi
   12009:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012010 <_NdisCmRegisterAddressFamily@16>:
   12010:	55                   	push   %ebp
   12011:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12016:	89 e5                	mov    %esp,%ebp
   12018:	5d                   	pop    %ebp
   12019:	c2 10 00             	ret    $0x10
   1201c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012020 <_NdisCmRegisterSapComplete@12>:
   12020:	55                   	push   %ebp
   12021:	89 e5                	mov    %esp,%ebp
   12023:	5d                   	pop    %ebp
   12024:	c2 0c 00             	ret    $0xc
   12027:	89 f6                	mov    %esi,%esi
   12029:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012030 <_NdisMCmActivateVc@8>:
   12030:	55                   	push   %ebp
   12031:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12036:	89 e5                	mov    %esp,%ebp
   12038:	5d                   	pop    %ebp
   12039:	c2 08 00             	ret    $0x8
   1203c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012040 <_NdisMCmCreateVc@16>:
   12040:	55                   	push   %ebp
   12041:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12046:	89 e5                	mov    %esp,%ebp
   12048:	5d                   	pop    %ebp
   12049:	c2 10 00             	ret    $0x10
   1204c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012050 <_NdisMCmDeactivateVc@4>:
   12050:	55                   	push   %ebp
   12051:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12056:	89 e5                	mov    %esp,%ebp
   12058:	5d                   	pop    %ebp
   12059:	c2 04 00             	ret    $0x4
   1205c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012060 <_NdisMCmDeleteVc@4>:
   12060:	55                   	push   %ebp
   12061:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12066:	89 e5                	mov    %esp,%ebp
   12068:	5d                   	pop    %ebp
   12069:	c2 04 00             	ret    $0x4
   1206c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012070 <_NdisMCmRegisterAddressFamily@16>:
   12070:	55                   	push   %ebp
   12071:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12076:	89 e5                	mov    %esp,%ebp
   12078:	5d                   	pop    %ebp
   12079:	c2 10 00             	ret    $0x10
   1207c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012080 <_NdisMCmRequest@16>:
   12080:	55                   	push   %ebp
   12081:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12086:	89 e5                	mov    %esp,%ebp
   12088:	5d                   	pop    %ebp
   12089:	c2 10 00             	ret    $0x10
   1208c:	90                   	nop    
   1208d:	90                   	nop    
   1208e:	90                   	nop    
   1208f:	90                   	nop    

00012090 <_NdisCoCreateVc@16>:
   12090:	55                   	push   %ebp
   12091:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12096:	89 e5                	mov    %esp,%ebp
   12098:	5d                   	pop    %ebp
   12099:	c2 10 00             	ret    $0x10
   1209c:	8d 74 26 00          	lea    0x0(%esi),%esi

000120a0 <_NdisCoDeleteVc@4>:
   120a0:	55                   	push   %ebp
   120a1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   120a6:	89 e5                	mov    %esp,%ebp
   120a8:	5d                   	pop    %ebp
   120a9:	c2 04 00             	ret    $0x4
   120ac:	8d 74 26 00          	lea    0x0(%esi),%esi

000120b0 <_NdisCoRequest@20>:
   120b0:	55                   	push   %ebp
   120b1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   120b6:	89 e5                	mov    %esp,%ebp
   120b8:	5d                   	pop    %ebp
   120b9:	c2 14 00             	ret    $0x14
   120bc:	8d 74 26 00          	lea    0x0(%esi),%esi

000120c0 <_NdisCoRequestComplete@20>:
   120c0:	55                   	push   %ebp
   120c1:	89 e5                	mov    %esp,%ebp
   120c3:	5d                   	pop    %ebp
   120c4:	c2 14 00             	ret    $0x14
   120c7:	89 f6                	mov    %esi,%esi
   120c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000120d0 <_NdisCoSendPackets@12>:
   120d0:	55                   	push   %ebp
   120d1:	89 e5                	mov    %esp,%ebp
   120d3:	5d                   	pop    %ebp
   120d4:	c2 0c 00             	ret    $0xc
   120d7:	89 f6                	mov    %esi,%esi
   120d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000120e0 <_NdisMCoActivateVcComplete@12>:
   120e0:	55                   	push   %ebp
   120e1:	89 e5                	mov    %esp,%ebp
   120e3:	5d                   	pop    %ebp
   120e4:	c2 0c 00             	ret    $0xc
   120e7:	89 f6                	mov    %esi,%esi
   120e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000120f0 <_NdisMCoDeactivateVcComplete@8>:
   120f0:	55                   	push   %ebp
   120f1:	89 e5                	mov    %esp,%ebp
   120f3:	5d                   	pop    %ebp
   120f4:	c2 08 00             	ret    $0x8
   120f7:	89 f6                	mov    %esi,%esi
   120f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012100 <_NdisMCoIndicateReceivePacket@12>:
   12100:	55                   	push   %ebp
   12101:	89 e5                	mov    %esp,%ebp
   12103:	5d                   	pop    %ebp
   12104:	c2 0c 00             	ret    $0xc
   12107:	89 f6                	mov    %esi,%esi
   12109:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012110 <_NdisMCoIndicateStatus@20>:
   12110:	55                   	push   %ebp
   12111:	89 e5                	mov    %esp,%ebp
   12113:	5d                   	pop    %ebp
   12114:	c2 14 00             	ret    $0x14
   12117:	89 f6                	mov    %esi,%esi
   12119:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012120 <_NdisMCoReceiveComplete@4>:
   12120:	55                   	push   %ebp
   12121:	89 e5                	mov    %esp,%ebp
   12123:	5d                   	pop    %ebp
   12124:	c2 04 00             	ret    $0x4
   12127:	89 f6                	mov    %esi,%esi
   12129:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012130 <_NdisMCoRequestComplete@12>:
   12130:	55                   	push   %ebp
   12131:	89 e5                	mov    %esp,%ebp
   12133:	5d                   	pop    %ebp
   12134:	c2 0c 00             	ret    $0xc
   12137:	89 f6                	mov    %esi,%esi
   12139:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012140 <_NdisMCoSendComplete@12>:
   12140:	55                   	push   %ebp
   12141:	89 e5                	mov    %esp,%ebp
   12143:	5d                   	pop    %ebp
   12144:	c2 0c 00             	ret    $0xc
   12147:	90                   	nop    
   12148:	90                   	nop    
   12149:	90                   	nop    
   1214a:	90                   	nop    
   1214b:	90                   	nop    
   1214c:	90                   	nop    
   1214d:	90                   	nop    
   1214e:	90                   	nop    
   1214f:	90                   	nop    

00012150 <_NdisWriteConfiguration@16>:
   12150:	55                   	push   %ebp
   12151:	89 e5                	mov    %esp,%ebp
   12153:	53                   	push   %ebx
   12154:	50                   	push   %eax
   12155:	8b 45 14             	mov    0x14(%ebp),%eax
   12158:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1215b:	8b 10                	mov    (%eax),%edx
   1215d:	83 fa 04             	cmp    $0x4,%edx
   12160:	76 0e                	jbe    12170 <_NdisWriteConfiguration@16+0x20>
   12162:	c7 03 bb 00 00 c0    	movl   $0xc00000bb,(%ebx)
   12168:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1216b:	c9                   	leave  
   1216c:	c2 10 00             	ret    $0x10
   1216f:	90                   	nop    
   12170:	ff 24 95 00 80 01 00 	jmp    *0x18000(,%edx,4)
   12177:	ba 03 00 00 00       	mov    $0x3,%edx
   1217c:	8b 48 08             	mov    0x8(%eax),%ecx
   1217f:	66 8b 40 04          	mov    0x4(%eax),%ax
   12183:	25 ff ff 00 00       	and    $0xffff,%eax
   12188:	83 ec 08             	sub    $0x8,%esp
   1218b:	50                   	push   %eax
   1218c:	51                   	push   %ecx
   1218d:	52                   	push   %edx
   1218e:	6a 00                	push   $0x0
   12190:	8b 45 10             	mov    0x10(%ebp),%eax
   12193:	50                   	push   %eax
   12194:	8b 45 0c             	mov    0xc(%ebp),%eax
   12197:	8b 00                	mov    (%eax),%eax
   12199:	50                   	push   %eax
   1219a:	ff 15 18 e3 01 00    	call   *0x1e318
   121a0:	83 f8 01             	cmp    $0x1,%eax
   121a3:	5a                   	pop    %edx
   121a4:	19 c0                	sbb    %eax,%eax
   121a6:	59                   	pop    %ecx
   121a7:	83 f0 ff             	xor    $0xffffffff,%eax
   121aa:	25 01 00 00 c0       	and    $0xc0000001,%eax
   121af:	89 03                	mov    %eax,(%ebx)
   121b1:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   121b4:	c9                   	leave  
   121b5:	c2 10 00             	ret    $0x10
   121b8:	8d 48 04             	lea    0x4(%eax),%ecx
   121bb:	ba 01 00 00 00       	mov    $0x1,%edx
   121c0:	b8 04 00 00 00       	mov    $0x4,%eax
   121c5:	eb c1                	jmp    12188 <_NdisWriteConfiguration@16+0x38>
   121c7:	ba 01 00 00 00       	mov    $0x1,%edx
   121cc:	eb ae                	jmp    1217c <_NdisWriteConfiguration@16+0x2c>
   121ce:	89 f6                	mov    %esi,%esi

000121d0 <_NdisCloseConfiguration@4>:
   121d0:	55                   	push   %ebp
   121d1:	89 e5                	mov    %esp,%ebp
   121d3:	57                   	push   %edi
   121d4:	56                   	push   %esi
   121d5:	53                   	push   %ebx
   121d6:	83 ec 0c             	sub    $0xc,%esp
   121d9:	8b 7d 08             	mov    0x8(%ebp),%edi
   121dc:	8d 77 04             	lea    0x4(%edi),%esi
   121df:	eb 0d                	jmp    121ee <_NdisCloseConfiguration@4+0x1e>
   121e1:	83 ec 0c             	sub    $0xc,%esp
   121e4:	53                   	push   %ebx
   121e5:	ff 15 2c e2 01 00    	call   *0x1e22c
   121eb:	83 c4 0c             	add    $0xc,%esp
   121ee:	39 77 04             	cmp    %esi,0x4(%edi)
   121f1:	74 24                	je     12217 <_NdisCloseConfiguration@4+0x47>
{
  PLIST_ENTRY Blink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Blink;
   121f3:	8b 5e 04             	mov    0x4(%esi),%ebx
  Blink = Entry->Blink;
   121f6:	8b 43 04             	mov    0x4(%ebx),%eax
   121f9:	8b 4b 08             	mov    0x8(%ebx),%ecx
  PLIST_ENTRY Entry;

  Entry = ListHead->Blink;
  Blink = Entry->Blink;
  ListHead->Blink = Blink;
   121fc:	89 46 04             	mov    %eax,0x4(%esi)
   121ff:	85 c9                	test   %ecx,%ecx

  Entry = ListHead->Blink;
  Blink = Entry->Blink;
  ListHead->Blink = Blink;
  Blink->Flink = ListHead;
   12201:	89 30                	mov    %esi,(%eax)
   12203:	75 dc                	jne    121e1 <_NdisCloseConfiguration@4+0x11>
   12205:	83 ec 0c             	sub    $0xc,%esp
   12208:	8b 53 0c             	mov    0xc(%ebx),%edx
   1220b:	52                   	push   %edx
   1220c:	ff 15 2c e2 01 00    	call   *0x1e22c
   12212:	83 c4 0c             	add    $0xc,%esp
   12215:	eb ca                	jmp    121e1 <_NdisCloseConfiguration@4+0x11>
   12217:	8b 07                	mov    (%edi),%eax
   12219:	89 45 08             	mov    %eax,0x8(%ebp)
   1221c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1221f:	5b                   	pop    %ebx
   12220:	5e                   	pop    %esi
   12221:	5f                   	pop    %edi
   12222:	5d                   	pop    %ebp
   12223:	ff 25 00 e3 01 00    	jmp    *0x1e300
   12229:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012230 <_NdisOpenConfiguration@12>:
   12230:	55                   	push   %ebp
   12231:	89 e5                	mov    %esp,%ebp
   12233:	57                   	push   %edi
   12234:	56                   	push   %esi
   12235:	53                   	push   %ebx
   12236:	83 ec 10             	sub    $0x10,%esp
   12239:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   1223c:	8b 75 08             	mov    0x8(%ebp),%esi
   1223f:	8b 7d 0c             	mov    0xc(%ebp),%edi
   12242:	6a 02                	push   $0x2
   12244:	6a 00                	push   $0x0
   12246:	6a 00                	push   $0x0
   12248:	50                   	push   %eax
   12249:	6a ff                	push   $0xffffffff
   1224b:	8b 45 10             	mov    0x10(%ebp),%eax
   1224e:	8b 00                	mov    (%eax),%eax
   12250:	50                   	push   %eax
   12251:	6a ff                	push   $0xffffffff
   12253:	ff 15 08 e3 01 00    	call   *0x1e308
   12259:	5b                   	pop    %ebx
   1225a:	85 c0                	test   %eax,%eax
   1225c:	78 46                	js     122a4 <_NdisOpenConfiguration@12+0x74>
   1225e:	89 06                	mov    %eax,(%esi)
   12260:	51                   	push   %ecx
   12261:	51                   	push   %ecx
   12262:	6a 10                	push   $0x10
   12264:	6a 01                	push   $0x1
   12266:	ff 15 24 e2 01 00    	call   *0x1e224
   1226c:	89 c3                	mov    %eax,%ebx
   1226e:	58                   	pop    %eax
   1226f:	85 db                	test   %ebx,%ebx
   12271:	5a                   	pop    %edx
   12272:	74 4c                	je     122c0 <_NdisOpenConfiguration@12+0x90>
   12274:	83 ec 0c             	sub    $0xc,%esp
   12277:	8d 43 0c             	lea    0xc(%ebx),%eax
   1227a:	50                   	push   %eax
   1227b:	ff 15 78 e2 01 00    	call   *0x1e278

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   12281:	8d 43 04             	lea    0x4(%ebx),%eax
   12284:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   1228a:	89 43 04             	mov    %eax,0x4(%ebx)
   1228d:	83 c4 0c             	add    $0xc,%esp
   12290:	89 40 04             	mov    %eax,0x4(%eax)
   12293:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   12296:	89 03                	mov    %eax,(%ebx)
   12298:	89 1f                	mov    %ebx,(%edi)
   1229a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1229d:	5b                   	pop    %ebx
   1229e:	5e                   	pop    %esi
   1229f:	5f                   	pop    %edi
   122a0:	5d                   	pop    %ebp
   122a1:	c2 0c 00             	ret    $0xc
   122a4:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
   122aa:	c7 06 01 00 00 c0    	movl   $0xc0000001,(%esi)
   122b0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   122b3:	5b                   	pop    %ebx
   122b4:	5e                   	pop    %esi
   122b5:	5f                   	pop    %edi
   122b6:	5d                   	pop    %ebp
   122b7:	c2 0c 00             	ret    $0xc
   122ba:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   122c0:	83 ec 0c             	sub    $0xc,%esp
   122c3:	8b 5d f0             	mov    0xfffffff0(%ebp),%ebx
   122c6:	53                   	push   %ebx
   122c7:	ff 15 00 e3 01 00    	call   *0x1e300
   122cd:	c7 06 9a 00 00 c0    	movl   $0xc000009a,(%esi)
   122d3:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   122d6:	5b                   	pop    %ebx
   122d7:	5e                   	pop    %esi
   122d8:	5f                   	pop    %edi
   122d9:	5d                   	pop    %ebp
   122da:	c2 0c 00             	ret    $0xc
   122dd:	8d 76 00             	lea    0x0(%esi),%esi

000122e0 <_NdisOpenProtocolConfiguration@12>:
   122e0:	55                   	push   %ebp
   122e1:	89 e5                	mov    %esp,%ebp
   122e3:	57                   	push   %edi
   122e4:	56                   	push   %esi
   122e5:	53                   	push   %ebx
   122e6:	83 ec 44             	sub    $0x44,%esp
   122e9:	8b 5d 10             	mov    0x10(%ebp),%ebx
   122ec:	8b 7d 08             	mov    0x8(%ebp),%edi
   122ef:	66 8b 03             	mov    (%ebx),%ax
   122f2:	25 ff ff 00 00       	and    $0xffff,%eax
   122f7:	83 c0 18             	add    $0x18,%eax
   122fa:	50                   	push   %eax
   122fb:	6a 01                	push   $0x1
   122fd:	ff 15 24 e2 01 00    	call   *0x1e224
   12303:	89 c6                	mov    %eax,%esi
   12305:	58                   	pop    %eax
   12306:	85 f6                	test   %esi,%esi
   12308:	5a                   	pop    %edx
   12309:	0f 84 8b 00 00 00    	je     1239a <_NdisOpenProtocolConfiguration@12+0xba>
   1230f:	50                   	push   %eax
   12310:	66 8b 03             	mov    (%ebx),%ax
   12313:	66 d1 e8             	shr    %ax
   12316:	25 ff ff 00 00       	and    $0xffff,%eax
   1231b:	50                   	push   %eax
   1231c:	8b 43 04             	mov    0x4(%ebx),%eax
   1231f:	50                   	push   %eax
   12320:	56                   	push   %esi
   12321:	e8 7a 44 00 00       	call   167a0 <_wcsncpy>
   12326:	59                   	pop    %ecx
   12327:	58                   	pop    %eax
   12328:	68 14 80 01 00       	push   $0x18014
   1232d:	66 8b 03             	mov    (%ebx),%ax
   12330:	8d 5d c0             	lea    0xffffffc0(%ebp),%ebx
   12333:	25 ff ff 00 00       	and    $0xffff,%eax
   12338:	8d 04 46             	lea    (%esi,%eax,2),%eax
   1233b:	50                   	push   %eax
   1233c:	e8 4f 44 00 00       	call   16790 <_wcscpy>
   12341:	58                   	pop    %eax
   12342:	5a                   	pop    %edx
   12343:	56                   	push   %esi
   12344:	53                   	push   %ebx
   12345:	ff 15 ec e2 01 00    	call   *0x1e2ec
   1234b:	8d 45 c8             	lea    0xffffffc8(%ebp),%eax
   1234e:	89 5d d0             	mov    %ebx,0xffffffd0(%ebp)
   12351:	c7 45 c8 18 00 00 00 	movl   $0x18,0xffffffc8(%ebp)
   12358:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)
   1235f:	c7 45 d4 40 00 00 00 	movl   $0x40,0xffffffd4(%ebp)
   12366:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
   1236d:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   12374:	89 04 24             	mov    %eax,(%esp)
   12377:	8d 45 bc             	lea    0xffffffbc(%ebp),%eax
   1237a:	68 3f 00 0f 00       	push   $0xf003f
   1237f:	50                   	push   %eax
   12380:	ff 15 10 e3 01 00    	call   *0x1e310
   12386:	89 07                	mov    %eax,(%edi)
   12388:	50                   	push   %eax
   12389:	50                   	push   %eax
   1238a:	56                   	push   %esi
   1238b:	ff 15 2c e2 01 00    	call   *0x1e22c
   12391:	8b 1f                	mov    (%edi),%ebx
   12393:	83 c4 0c             	add    $0xc,%esp
   12396:	85 db                	test   %ebx,%ebx
   12398:	74 19                	je     123b3 <_NdisOpenProtocolConfiguration@12+0xd3>
   1239a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1239d:	c7 07 01 00 00 c0    	movl   $0xc0000001,(%edi)
   123a3:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   123a9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   123ac:	5b                   	pop    %ebx
   123ad:	5e                   	pop    %esi
   123ae:	5f                   	pop    %edi
   123af:	5d                   	pop    %ebp
   123b0:	c2 0c 00             	ret    $0xc
   123b3:	51                   	push   %ecx
   123b4:	51                   	push   %ecx
   123b5:	6a 10                	push   $0x10
   123b7:	6a 01                	push   $0x1
   123b9:	ff 15 24 e2 01 00    	call   *0x1e224
   123bf:	89 c3                	mov    %eax,%ebx
   123c1:	58                   	pop    %eax
   123c2:	85 db                	test   %ebx,%ebx
   123c4:	5a                   	pop    %edx
   123c5:	74 d3                	je     1239a <_NdisOpenProtocolConfiguration@12+0xba>
   123c7:	83 ec 0c             	sub    $0xc,%esp
   123ca:	8d 43 0c             	lea    0xc(%ebx),%eax
   123cd:	50                   	push   %eax
   123ce:	ff 15 78 e2 01 00    	call   *0x1e278

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   123d4:	8d 43 04             	lea    0x4(%ebx),%eax
   123d7:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   123dd:	89 43 04             	mov    %eax,0x4(%ebx)
   123e0:	83 c4 0c             	add    $0xc,%esp
   123e3:	89 40 04             	mov    %eax,0x4(%eax)
   123e6:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   123e9:	89 03                	mov    %eax,(%ebx)
   123eb:	8b 45 0c             	mov    0xc(%ebp),%eax
   123ee:	89 18                	mov    %ebx,(%eax)
   123f0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   123f3:	5b                   	pop    %ebx
   123f4:	5e                   	pop    %esi
   123f5:	5f                   	pop    %edi
   123f6:	5d                   	pop    %ebp
   123f7:	c2 0c 00             	ret    $0xc
   123fa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012400 <_NdisReadConfiguration@20>:
   12400:	55                   	push   %ebp
   12401:	89 e5                	mov    %esp,%ebp
   12403:	57                   	push   %edi
   12404:	56                   	push   %esi
   12405:	53                   	push   %ebx
   12406:	83 ec 1c             	sub    $0x1c,%esp
   12409:	8b 75 0c             	mov    0xc(%ebp),%esi
   1240c:	8b 45 08             	mov    0x8(%ebp),%eax
   1240f:	8b 5d 14             	mov    0x14(%ebp),%ebx
   12412:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   12418:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   1241e:	83 7d 18 04          	cmpl   $0x4,0x18(%ebp)
   12422:	76 0c                	jbe    12430 <_NdisReadConfiguration@20+0x30>
        MiniportResource->ResourceType = 0;
        MiniportResource->Resource = *ParameterValue;

        NDIS_DbgPrint(MID_TRACE,("inserting 0x%x into the resource list\n", 
            MiniportResource->Resource));

        ExInterlockedInsertTailList(&ConfigurationContext->ResourceListHead, 
            &MiniportResource->ListEntry, &ConfigurationContext->ResourceLock);

        (*ParameterValue)->ParameterType = NdisParameterInteger;
        (*ParameterValue)->ParameterData.IntegerData = NdisEnvironmentWindowsNt;
        *Status = NDIS_STATUS_SUCCESS;

        return;
    }

    if(
        !wcsncmp(Keyword->Buffer, L"ProcessorType", Keyword->Length/sizeof(WCHAR)) &&
        wcslen(L"ProcessorType") == Keyword->Length/sizeof(WCHAR)
    )
    {
        *ParameterValue = ExAllocatePool(PagedPool, sizeof(NDIS_CONFIGURATION_PARAMETER));
        if(!*ParameterValue)
        {
            NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
            *Status = NDIS_STATUS_RESOURCES;
            return;
        }

        MiniportResource = ExAllocatePool(PagedPool, sizeof(MINIPORT_RESOURCE));
        if(!MiniportResource)
        {
            NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
            ExFreePool(*ParameterValue);
            *ParameterValue = NULL;
            *Status = NDIS_STATUS_RESOURCES;
            return;
        }

        MiniportResource->ResourceType = 0;
        MiniportResource->Resource = *ParameterValue;
        NDIS_DbgPrint(MID_TRACE,("inserting 0x%x into the resource list\n", MiniportResource->Resource));
        ExInterlockedInsertTailList(&ConfigurationContext->ResourceListHead, 
            &MiniportResource->ListEntry, &ConfigurationContext->ResourceLock);

        (*ParameterValue)->ParameterType = NdisParameterInteger;
        (*ParameterValue)->ParameterData.IntegerData = NdisProcessorX86;    /* XXX non-portable */
        *Status = NDIS_STATUS_SUCCESS;

        return;
    }

    if(
        !wcsncmp(Keyword->Buffer, L"NdisVersion", Keyword->Length/sizeof(WCHAR)) &&
        wcslen(L"NdisVersion") == Keyword->Length/sizeof(WCHAR)
    )
    {
        *ParameterValue = ExAllocatePool(PagedPool, sizeof(NDIS_CONFIGURATION_PARAMETER));
        if(!*ParameterValue)
        {
            NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
            *Status = NDIS_STATUS_RESOURCES;
            return;
        }

        MiniportResource = ExAllocatePool(PagedPool, sizeof(MINIPORT_RESOURCE));
        if(!MiniportResource)
        {
            NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
            ExFreePool(*ParameterValue);
            *ParameterValue = NULL;
            *Status = NDIS_STATUS_RESOURCES;
            return;
        }

        MiniportResource->ResourceType = 0;
        MiniportResource->Resource = *ParameterValue;
        NDIS_DbgPrint(MID_TRACE,("inserting 0x%x into the resource list\n", MiniportResource->Resource));
        ExInterlockedInsertTailList(&ConfigurationContext->ResourceListHead, 
            &MiniportResource->ListEntry, &ConfigurationContext->ResourceLock);

        (*ParameterValue)->ParameterType = NdisParameterInteger;
        (*ParameterValue)->ParameterData.IntegerData = NDIS_VERSION;
        *Status = NDIS_STATUS_SUCCESS;

        NDIS_DbgPrint(MAX_TRACE,("ParameterType = %0x%x, ParameterValue = 0x%x\n",
            (*ParameterValue)->ParameterType, (*ParameterValue)->ParameterData.IntegerData));
        return;
    }

    /* figure out how much buffer i should allocate */
    *Status = ZwQueryValueKey(ConfigurationContext->Handle, Keyword, KeyValuePartialInformation, NULL, 0, &KeyDataLength);
    if(*Status != STATUS_BUFFER_OVERFLOW && *Status != STATUS_BUFFER_TOO_SMALL && *Status != STATUS_SUCCESS)
    {
        NDIS_DbgPrint(MID_TRACE,("ZwQueryValueKey #1 failed for %wZ, status 0x%x\n", Keyword, *Status));
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    /* allocate it */
    KeyInformation = ExAllocatePool(PagedPool, KeyDataLength + sizeof(KEY_VALUE_PARTIAL_INFORMATION));
    if(!KeyInformation)
    {
        NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
        *Status = NDIS_STATUS_RESOURCES;
        return;
    }

    /* grab the value */
    *Status = ZwQueryValueKey(ConfigurationContext->Handle, Keyword, KeyValuePartialInformation, 
        KeyInformation, KeyDataLength + sizeof(KEY_VALUE_PARTIAL_INFORMATION), &KeyDataLength);
    if(*Status != STATUS_SUCCESS)
    {
        ExFreePool(KeyInformation);
        NDIS_DbgPrint(MID_TRACE,("ZwQueryValueKey #2 failed for %wZ, status 0x%x\n", Keyword, *Status));
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    switch(ParameterType)
    {
        case NdisParameterInteger:
        case NdisParameterHexInteger:
        {
            UNICODE_STRING str;

            *ParameterValue = ExAllocatePool(PagedPool, sizeof(NDIS_CONFIGURATION_PARAMETER));
            if(!*ParameterValue)
            {
                NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
                ExFreePool(KeyInformation);
                *Status = NDIS_STATUS_RESOURCES;
                return;
            }

            str.Length = str.MaximumLength = KeyInformation->DataLength;
            str.Buffer = (PWCHAR)KeyInformation->Data;

            (*ParameterValue)->ParameterType = ParameterType;
            *Status = RtlUnicodeStringToInteger(&str, 16, &(*ParameterValue)->ParameterData.IntegerData);

            ExFreePool(KeyInformation);

            if(*Status != STATUS_SUCCESS)
                *Status = NDIS_STATUS_FAILURE;
            else
                *Status = NDIS_STATUS_SUCCESS;

            return;
        }

        case NdisParameterString:
        case NdisParameterMultiString:
        {
            PMINIPORT_RESOURCE MiniportResource = 0;
            PWCHAR RegData = 0;

            if(KeyInformation->Type != REG_SZ && KeyInformation->Type != REG_MULTI_SZ)
            {
                NDIS_DbgPrint(MID_TRACE,("requested type does not match actual value type\n"));
                ExFreePool(KeyInformation);
                *ParameterValue = NULL;
                *Status = NDIS_STATUS_FAILURE;
                return;
            }

            *ParameterValue = ExAllocatePool(PagedPool, sizeof(NDIS_CONFIGURATION_PARAMETER));
            if(!*ParameterValue)
            {
                NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
                ExFreePool(KeyInformation);
                *Status = NDIS_STATUS_RESOURCES;
                return;
            }

            RegData = ExAllocatePool(PagedPool, KeyInformation->DataLength);
            if(!RegData)
            {
                NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
                ExFreePool(KeyInformation);
                ExFreePool(*ParameterValue);
                *ParameterValue = NULL;
                *Status = NDIS_STATUS_FAILURE;
                return;
            }

            MiniportResource = ExAllocatePool(PagedPool, sizeof(MINIPORT_RESOURCE));
            if(!MiniportResource)
            {
                NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
                ExFreePool(KeyInformation);
                ExFreePool(*ParameterValue);
                *ParameterValue = NULL;
                *Status = NDIS_STATUS_RESOURCES;
                return;
            }

            MiniportResource->ResourceType = 0;
            MiniportResource->Resource = *ParameterValue;
            NDIS_DbgPrint(MID_TRACE,("inserting 0x%x into the resource list\n", MiniportResource->Resource));
            ExInterlockedInsertTailList(&ConfigurationContext->ResourceListHead, &MiniportResource->ListEntry, &ConfigurationContext->ResourceLock);

            memcpy(RegData, KeyInformation->Data, KeyInformation->DataLength);

            (*ParameterValue)->ParameterType = ParameterType;
            (*ParameterValue)->ParameterData.StringData.Length = KeyInformation->DataLength;
            (*ParameterValue)->ParameterData.StringData.Buffer = RegData;

            ExFreePool(KeyInformation);

            *Status = NDIS_STATUS_SUCCESS;

            return;
        }

        case NdisParameterBinary:
        {
            PMINIPORT_RESOURCE MiniportResource;

            if(KeyInformation->Type != REG_BINARY)
            {
                NDIS_DbgPrint(MIN_TRACE,("requested type does not match actual value type\n"));
                *Status = NDIS_STATUS_FAILURE;
                ExFreePool(KeyInformation);
                return;
            }

            *ParameterValue = ExAllocatePool(PagedPool, sizeof(NDIS_CONFIGURATION_PARAMETER) + KeyInformation->DataLength);
            if(!*ParameterValue)
            {
                NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
                ExFreePool(KeyInformation);
                *Status = NDIS_STATUS_RESOURCES;
                return;
            }

            MiniportResource = ExAllocatePool(PagedPool, sizeof(MINIPORT_RESOURCE));
            if(!MiniportResource)
            {
                NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
                ExFreePool(KeyInformation);
                ExFreePool(*ParameterValue);
                *ParameterValue = NULL;
                *Status = NDIS_STATUS_RESOURCES;
                return;
            }

            MiniportResource->ResourceType = 0;
            MiniportResource->Resource = *ParameterValue;
            NDIS_DbgPrint(MID_TRACE,("inserting 0x%x into the resource list\n", MiniportResource->Resource));
            ExInterlockedInsertTailList(&ConfigurationContext->ResourceListHead, &MiniportResource->ListEntry, &ConfigurationContext->ResourceLock);

            (*ParameterValue)->ParameterType = ParameterType;
            memcpy(&((*ParameterValue)->ParameterData.BinaryData), KeyInformation->Data, KeyInformation->DataLength);

            ExFreePool(KeyInformation);

            *Status = NDIS_STATUS_SUCCESS;

            return;
        }
    }
}
   12424:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12427:	5b                   	pop    %ebx
   12428:	5e                   	pop    %esi
   12429:	5f                   	pop    %edi
   1242a:	5d                   	pop    %ebp
   1242b:	c2 14 00             	ret    $0x14
   1242e:	89 f6                	mov    %esi,%esi
   12430:	50                   	push   %eax
   12431:	66 8b 03             	mov    (%ebx),%ax
   12434:	66 d1 e8             	shr    %ax
   12437:	25 ff ff 00 00       	and    $0xffff,%eax
   1243c:	50                   	push   %eax
   1243d:	68 2a 80 01 00       	push   $0x1802a
   12442:	8b 7b 04             	mov    0x4(%ebx),%edi
   12445:	57                   	push   %edi
   12446:	e8 35 43 00 00       	call   16780 <_wcsncmp>
   1244b:	83 c4 10             	add    $0x10,%esp
   1244e:	85 c0                	test   %eax,%eax
   12450:	0f 84 44 01 00 00    	je     1259a <_NdisReadConfiguration@20+0x19a>
   12456:	66 8b 0b             	mov    (%ebx),%cx
   12459:	66 d1 e9             	shr    %cx
   1245c:	50                   	push   %eax
   1245d:	89 c8                	mov    %ecx,%eax
   1245f:	25 ff ff 00 00       	and    $0xffff,%eax
   12464:	50                   	push   %eax
   12465:	68 42 80 01 00       	push   $0x18042
   1246a:	8b 7b 04             	mov    0x4(%ebx),%edi
   1246d:	57                   	push   %edi
   1246e:	e8 0d 43 00 00       	call   16780 <_wcsncmp>
   12473:	83 c4 10             	add    $0x10,%esp
   12476:	85 c0                	test   %eax,%eax
   12478:	0f 84 8f 01 00 00    	je     1260d <_NdisReadConfiguration@20+0x20d>
   1247e:	66 8b 0b             	mov    (%ebx),%cx
   12481:	66 d1 e9             	shr    %cx
   12484:	50                   	push   %eax
   12485:	89 c8                	mov    %ecx,%eax
   12487:	25 ff ff 00 00       	and    $0xffff,%eax
   1248c:	50                   	push   %eax
   1248d:	68 5e 80 01 00       	push   $0x1805e
   12492:	8b 7b 04             	mov    0x4(%ebx),%edi
   12495:	57                   	push   %edi
   12496:	e8 e5 42 00 00       	call   16780 <_wcsncmp>
   1249b:	83 c4 10             	add    $0x10,%esp
   1249e:	85 c0                	test   %eax,%eax
   124a0:	0f 84 aa 00 00 00    	je     12550 <_NdisReadConfiguration@20+0x150>
   124a6:	8d 4d ec             	lea    0xffffffec(%ebp),%ecx
   124a9:	57                   	push   %edi
   124aa:	57                   	push   %edi
   124ab:	8b 7d 10             	mov    0x10(%ebp),%edi
   124ae:	51                   	push   %ecx
   124af:	6a 00                	push   $0x0
   124b1:	6a 00                	push   $0x0
   124b3:	6a 02                	push   $0x2
   124b5:	53                   	push   %ebx
   124b6:	8b 0f                	mov    (%edi),%ecx
   124b8:	51                   	push   %ecx
   124b9:	ff 15 14 e3 01 00    	call   *0x1e314
   124bf:	89 c1                	mov    %eax,%ecx
   124c1:	58                   	pop    %eax
   124c2:	81 f9 05 00 00 80    	cmp    $0x80000005,%ecx
   124c8:	5a                   	pop    %edx
   124c9:	0f 95 c2             	setne  %dl
   124cc:	81 f9 23 00 00 c0    	cmp    $0xc0000023,%ecx
   124d2:	0f 95 c0             	setne  %al
   124d5:	25 ff 00 00 00       	and    $0xff,%eax
   124da:	85 c2                	test   %eax,%edx
   124dc:	74 08                	je     124e6 <_NdisReadConfiguration@20+0xe6>
   124de:	85 c9                	test   %ecx,%ecx
   124e0:	0f 85 19 01 00 00    	jne    125ff <_NdisReadConfiguration@20+0x1ff>
   124e6:	8b 55 08             	mov    0x8(%ebp),%edx
   124e9:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   124ec:	83 c0 10             	add    $0x10,%eax
   124ef:	89 0a                	mov    %ecx,(%edx)
   124f1:	57                   	push   %edi
   124f2:	57                   	push   %edi
   124f3:	50                   	push   %eax
   124f4:	6a 01                	push   $0x1
   124f6:	ff 15 24 e2 01 00    	call   *0x1e224
   124fc:	5a                   	pop    %edx
   124fd:	85 c0                	test   %eax,%eax
   124ff:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
   12502:	59                   	pop    %ecx
   12503:	0f 84 75 01 00 00    	je     1267e <_NdisReadConfiguration@20+0x27e>
   12509:	50                   	push   %eax
   1250a:	50                   	push   %eax
   1250b:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   1250e:	83 c0 10             	add    $0x10,%eax
   12511:	8d 7d ec             	lea    0xffffffec(%ebp),%edi
   12514:	57                   	push   %edi
   12515:	50                   	push   %eax
   12516:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   12519:	50                   	push   %eax
   1251a:	8b 45 10             	mov    0x10(%ebp),%eax
   1251d:	6a 02                	push   $0x2
   1251f:	53                   	push   %ebx
   12520:	8b 00                	mov    (%eax),%eax
   12522:	50                   	push   %eax
   12523:	ff 15 14 e3 01 00    	call   *0x1e314
   12529:	89 c1                	mov    %eax,%ecx
   1252b:	5f                   	pop    %edi
   1252c:	85 c9                	test   %ecx,%ecx
   1252e:	58                   	pop    %eax
   1252f:	0f 85 4a 02 00 00    	jne    1277f <_NdisReadConfiguration@20+0x37f>
   12535:	83 7d 18 04          	cmpl   $0x4,0x18(%ebp)
   12539:	0f 87 96 01 00 00    	ja     126d5 <_NdisReadConfiguration@20+0x2d5>
   1253f:	8b 7d 18             	mov    0x18(%ebp),%edi
   12542:	ff 24 bd 78 80 01 00 	jmp    *0x18078(,%edi,4)
   12549:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12550:	83 ec 0c             	sub    $0xc,%esp
   12553:	68 5e 80 01 00       	push   $0x1805e
   12558:	e8 13 42 00 00       	call   16770 <_wcslen>
   1255d:	66 8b 13             	mov    (%ebx),%dx
   12560:	83 c4 10             	add    $0x10,%esp
   12563:	66 d1 ea             	shr    %dx
   12566:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   1256c:	39 d0                	cmp    %edx,%eax
   1256e:	0f 85 32 ff ff ff    	jne    124a6 <_NdisReadConfiguration@20+0xa6>
   12574:	51                   	push   %ecx
   12575:	51                   	push   %ecx
   12576:	6a 0c                	push   $0xc
   12578:	6a 01                	push   $0x1
   1257a:	ff 15 24 e2 01 00    	call   *0x1e224
   12580:	85 c0                	test   %eax,%eax
   12582:	89 06                	mov    %eax,(%esi)
   12584:	5f                   	pop    %edi
   12585:	5a                   	pop    %edx
   12586:	0f 85 00 01 00 00    	jne    1268c <_NdisReadConfiguration@20+0x28c>
   1258c:	8b 7d 08             	mov    0x8(%ebp),%edi
   1258f:	c7 07 9a 00 00 c0    	movl   $0xc000009a,(%edi)
   12595:	e9 8a fe ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   1259a:	83 ec 0c             	sub    $0xc,%esp
   1259d:	68 2a 80 01 00       	push   $0x1802a
   125a2:	e8 c9 41 00 00       	call   16770 <_wcslen>
   125a7:	66 8b 0b             	mov    (%ebx),%cx
   125aa:	83 c4 10             	add    $0x10,%esp
   125ad:	89 ca                	mov    %ecx,%edx
   125af:	66 d1 ea             	shr    %dx
   125b2:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   125b8:	39 d0                	cmp    %edx,%eax
   125ba:	0f 85 99 fe ff ff    	jne    12459 <_NdisReadConfiguration@20+0x59>
   125c0:	51                   	push   %ecx
   125c1:	51                   	push   %ecx
   125c2:	6a 0c                	push   $0xc
   125c4:	6a 01                	push   $0x1
   125c6:	ff 15 24 e2 01 00    	call   *0x1e224
   125cc:	85 c0                	test   %eax,%eax
   125ce:	89 06                	mov    %eax,(%esi)
   125d0:	5f                   	pop    %edi
   125d1:	5a                   	pop    %edx
   125d2:	0f 85 20 02 00 00    	jne    127f8 <_NdisReadConfiguration@20+0x3f8>
   125d8:	8b 55 08             	mov    0x8(%ebp),%edx
   125db:	c7 02 9a 00 00 c0    	movl   $0xc000009a,(%edx)
   125e1:	e9 3e fe ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   125e6:	83 ec 0c             	sub    $0xc,%esp
   125e9:	57                   	push   %edi
   125ea:	ff 15 2c e2 01 00    	call   *0x1e22c
   125f0:	8b 06                	mov    (%esi),%eax
   125f2:	50                   	push   %eax
   125f3:	ff 15 2c e2 01 00    	call   *0x1e22c
   125f9:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   125ff:	8b 45 08             	mov    0x8(%ebp),%eax
   12602:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   12608:	e9 17 fe ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   1260d:	83 ec 0c             	sub    $0xc,%esp
   12610:	68 42 80 01 00       	push   $0x18042
   12615:	e8 56 41 00 00       	call   16770 <_wcslen>
   1261a:	66 8b 0b             	mov    (%ebx),%cx
   1261d:	83 c4 10             	add    $0x10,%esp
   12620:	89 ca                	mov    %ecx,%edx
   12622:	66 d1 ea             	shr    %dx
   12625:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   1262b:	39 d0                	cmp    %edx,%eax
   1262d:	0f 85 4e fe ff ff    	jne    12481 <_NdisReadConfiguration@20+0x81>
   12633:	51                   	push   %ecx
   12634:	51                   	push   %ecx
   12635:	6a 0c                	push   $0xc
   12637:	6a 01                	push   $0x1
   12639:	ff 15 24 e2 01 00    	call   *0x1e224
   1263f:	85 c0                	test   %eax,%eax
   12641:	89 06                	mov    %eax,(%esi)
   12643:	5f                   	pop    %edi
   12644:	5a                   	pop    %edx
   12645:	0f 85 04 02 00 00    	jne    1284f <_NdisReadConfiguration@20+0x44f>
   1264b:	8b 45 08             	mov    0x8(%ebp),%eax
   1264e:	c7 00 9a 00 00 c0    	movl   $0xc000009a,(%eax)
   12654:	e9 cb fd ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   12659:	51                   	push   %ecx
   1265a:	51                   	push   %ecx
   1265b:	6a 0c                	push   $0xc
   1265d:	6a 01                	push   $0x1
   1265f:	ff 15 24 e2 01 00    	call   *0x1e224
   12665:	85 c0                	test   %eax,%eax
   12667:	89 06                	mov    %eax,(%esi)
   12669:	5f                   	pop    %edi
   1266a:	5a                   	pop    %edx
   1266b:	0f 85 6d 02 00 00    	jne    128de <_NdisReadConfiguration@20+0x4de>
   12671:	83 ec 0c             	sub    $0xc,%esp
   12674:	8b 75 dc             	mov    0xffffffdc(%ebp),%esi
   12677:	56                   	push   %esi
   12678:	ff 15 2c e2 01 00    	call   *0x1e22c
   1267e:	8b 4d 08             	mov    0x8(%ebp),%ecx
   12681:	c7 01 9a 00 00 c0    	movl   $0xc000009a,(%ecx)
   12687:	e9 98 fd ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   1268c:	53                   	push   %ebx
   1268d:	53                   	push   %ebx
   1268e:	6a 10                	push   $0x10
   12690:	6a 01                	push   $0x1
   12692:	ff 15 24 e2 01 00    	call   *0x1e224
   12698:	89 c2                	mov    %eax,%edx
   1269a:	58                   	pop    %eax
   1269b:	85 d2                	test   %edx,%edx
   1269d:	59                   	pop    %ecx
   1269e:	0f 84 58 03 00 00    	je     129fc <_NdisReadConfiguration@20+0x5fc>
   126a4:	8b 06                	mov    (%esi),%eax
   126a6:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
   126ad:	89 42 0c             	mov    %eax,0xc(%edx)
   126b0:	50                   	push   %eax
   126b1:	8b 45 10             	mov    0x10(%ebp),%eax
   126b4:	83 c0 0c             	add    $0xc,%eax
   126b7:	50                   	push   %eax
   126b8:	8b 45 10             	mov    0x10(%ebp),%eax
   126bb:	83 c0 04             	add    $0x4,%eax
   126be:	52                   	push   %edx
   126bf:	50                   	push   %eax
   126c0:	ff 15 38 e2 01 00    	call   *0x1e238
   126c6:	8b 06                	mov    (%esi),%eax
   126c8:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   126ce:	c7 40 04 00 00 04 00 	movl   $0x40000,0x4(%eax)
   126d5:	8b 55 08             	mov    0x8(%ebp),%edx
   126d8:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   126de:	e9 41 fd ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   126e3:	8b 55 dc             	mov    0xffffffdc(%ebp),%edx
   126e6:	8b 7d 08             	mov    0x8(%ebp),%edi
   126e9:	8b 42 04             	mov    0x4(%edx),%eax
   126ec:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
   126f2:	83 f8 01             	cmp    $0x1,%eax
   126f5:	0f 95 c2             	setne  %dl
   126f8:	83 f8 07             	cmp    $0x7,%eax
   126fb:	0f 95 c0             	setne  %al
   126fe:	25 ff 00 00 00       	and    $0xff,%eax
   12703:	85 c2                	test   %eax,%edx
   12705:	0f 84 4e ff ff ff    	je     12659 <_NdisReadConfiguration@20+0x259>
   1270b:	83 ec 0c             	sub    $0xc,%esp
   1270e:	8b 5d dc             	mov    0xffffffdc(%ebp),%ebx
   12711:	53                   	push   %ebx
   12712:	ff 15 2c e2 01 00    	call   *0x1e22c
   12718:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   1271e:	c7 07 01 00 00 c0    	movl   $0xc0000001,(%edi)
   12724:	e9 fb fc ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   12729:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   1272c:	83 78 04 03          	cmpl   $0x3,0x4(%eax)
   12730:	0f 84 70 01 00 00    	je     128a6 <_NdisReadConfiguration@20+0x4a6>
   12736:	8b 55 08             	mov    0x8(%ebp),%edx
   12739:	83 ec 0c             	sub    $0xc,%esp
   1273c:	c7 02 01 00 00 c0    	movl   $0xc0000001,(%edx)
   12742:	50                   	push   %eax
   12743:	ff 15 2c e2 01 00    	call   *0x1e22c
   12749:	e9 d6 fc ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   1274e:	8b 45 08             	mov    0x8(%ebp),%eax
   12751:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   12757:	53                   	push   %ebx
   12758:	53                   	push   %ebx
   12759:	6a 0c                	push   $0xc
   1275b:	6a 01                	push   $0x1
   1275d:	ff 15 24 e2 01 00    	call   *0x1e224
   12763:	89 c2                	mov    %eax,%edx
   12765:	89 06                	mov    %eax,(%esi)
   12767:	85 d2                	test   %edx,%edx
   12769:	58                   	pop    %eax
   1276a:	59                   	pop    %ecx
   1276b:	75 32                	jne    1279f <_NdisReadConfiguration@20+0x39f>
   1276d:	83 ec 0c             	sub    $0xc,%esp
   12770:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   12773:	50                   	push   %eax
   12774:	ff 15 2c e2 01 00    	call   *0x1e22c
   1277a:	e9 59 fe ff ff       	jmp    125d8 <_NdisReadConfiguration@20+0x1d8>
   1277f:	8b 55 08             	mov    0x8(%ebp),%edx
   12782:	83 ec 0c             	sub    $0xc,%esp
   12785:	8b 75 dc             	mov    0xffffffdc(%ebp),%esi
   12788:	89 0a                	mov    %ecx,(%edx)
   1278a:	56                   	push   %esi
   1278b:	ff 15 2c e2 01 00    	call   *0x1e22c
   12791:	8b 4d 08             	mov    0x8(%ebp),%ecx
   12794:	c7 01 01 00 00 c0    	movl   $0xc0000001,(%ecx)
   1279a:	e9 85 fc ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   1279f:	8b 4d dc             	mov    0xffffffdc(%ebp),%ecx
   127a2:	8b 7d 18             	mov    0x18(%ebp),%edi
   127a5:	89 3a                	mov    %edi,(%edx)
   127a7:	8b 41 08             	mov    0x8(%ecx),%eax
   127aa:	66 89 45 e2          	mov    %ax,0xffffffe2(%ebp)
   127ae:	66 89 45 e0          	mov    %ax,0xffffffe0(%ebp)
   127b2:	89 c8                	mov    %ecx,%eax
   127b4:	83 c0 0c             	add    $0xc,%eax
   127b7:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   127ba:	50                   	push   %eax
   127bb:	8d 42 04             	lea    0x4(%edx),%eax
   127be:	50                   	push   %eax
   127bf:	8d 45 e0             	lea    0xffffffe0(%ebp),%eax
   127c2:	6a 10                	push   $0x10
   127c4:	50                   	push   %eax
   127c5:	ff 15 f8 e2 01 00    	call   *0x1e2f8
   127cb:	8b 55 08             	mov    0x8(%ebp),%edx
   127ce:	8b 75 dc             	mov    0xffffffdc(%ebp),%esi
   127d1:	89 02                	mov    %eax,(%edx)
   127d3:	57                   	push   %edi
   127d4:	57                   	push   %edi
   127d5:	56                   	push   %esi
   127d6:	ff 15 2c e2 01 00    	call   *0x1e22c
   127dc:	8b 4d 08             	mov    0x8(%ebp),%ecx
   127df:	8b 01                	mov    (%ecx),%eax
   127e1:	83 c4 0c             	add    $0xc,%esp
   127e4:	83 f8 01             	cmp    $0x1,%eax
   127e7:	19 c0                	sbb    %eax,%eax
   127e9:	83 f0 ff             	xor    $0xffffffff,%eax
   127ec:	25 01 00 00 c0       	and    $0xc0000001,%eax
   127f1:	89 01                	mov    %eax,(%ecx)
   127f3:	e9 2c fc ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   127f8:	53                   	push   %ebx
   127f9:	53                   	push   %ebx
   127fa:	6a 10                	push   $0x10
   127fc:	6a 01                	push   $0x1
   127fe:	ff 15 24 e2 01 00    	call   *0x1e224
   12804:	89 c2                	mov    %eax,%edx
   12806:	58                   	pop    %eax
   12807:	85 d2                	test   %edx,%edx
   12809:	59                   	pop    %ecx
   1280a:	0f 84 03 02 00 00    	je     12a13 <_NdisReadConfiguration@20+0x613>
   12810:	8b 06                	mov    (%esi),%eax
   12812:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
   12819:	89 42 0c             	mov    %eax,0xc(%edx)
   1281c:	50                   	push   %eax
   1281d:	8b 45 10             	mov    0x10(%ebp),%eax
   12820:	83 c0 0c             	add    $0xc,%eax
   12823:	50                   	push   %eax
   12824:	8b 45 10             	mov    0x10(%ebp),%eax
   12827:	83 c0 04             	add    $0x4,%eax
   1282a:	52                   	push   %edx
   1282b:	50                   	push   %eax
   1282c:	ff 15 38 e2 01 00    	call   *0x1e238
   12832:	8b 06                	mov    (%esi),%eax
   12834:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   1283a:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
   12841:	8b 7d 08             	mov    0x8(%ebp),%edi
   12844:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
   1284a:	e9 d5 fb ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   1284f:	53                   	push   %ebx
   12850:	53                   	push   %ebx
   12851:	6a 10                	push   $0x10
   12853:	6a 01                	push   $0x1
   12855:	ff 15 24 e2 01 00    	call   *0x1e224
   1285b:	89 c2                	mov    %eax,%edx
   1285d:	58                   	pop    %eax
   1285e:	85 d2                	test   %edx,%edx
   12860:	59                   	pop    %ecx
   12861:	0f 84 e4 01 00 00    	je     12a4b <_NdisReadConfiguration@20+0x64b>
   12867:	8b 06                	mov    (%esi),%eax
   12869:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
   12870:	89 42 0c             	mov    %eax,0xc(%edx)
   12873:	50                   	push   %eax
   12874:	8b 45 10             	mov    0x10(%ebp),%eax
   12877:	83 c0 0c             	add    $0xc,%eax
   1287a:	50                   	push   %eax
   1287b:	8b 45 10             	mov    0x10(%ebp),%eax
   1287e:	83 c0 04             	add    $0x4,%eax
   12881:	52                   	push   %edx
   12882:	50                   	push   %eax
   12883:	ff 15 38 e2 01 00    	call   *0x1e238
   12889:	8b 06                	mov    (%esi),%eax
   1288b:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1288e:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
   12895:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   1289b:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
   128a1:	e9 7e fb ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   128a6:	8b 4d 08             	mov    0x8(%ebp),%ecx
   128a9:	8b 7d dc             	mov    0xffffffdc(%ebp),%edi
   128ac:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
   128b2:	53                   	push   %ebx
   128b3:	53                   	push   %ebx
   128b4:	8b 47 08             	mov    0x8(%edi),%eax
   128b7:	83 c0 0c             	add    $0xc,%eax
   128ba:	50                   	push   %eax
   128bb:	6a 01                	push   $0x1
   128bd:	ff 15 24 e2 01 00    	call   *0x1e224
   128c3:	85 c0                	test   %eax,%eax
   128c5:	89 06                	mov    %eax,(%esi)
   128c7:	5a                   	pop    %edx
   128c8:	59                   	pop    %ecx
   128c9:	0f 85 9e 00 00 00    	jne    1296d <_NdisReadConfiguration@20+0x56d>
   128cf:	83 ec 0c             	sub    $0xc,%esp
   128d2:	57                   	push   %edi
   128d3:	ff 15 2c e2 01 00    	call   *0x1e22c
   128d9:	e9 6d fd ff ff       	jmp    1264b <_NdisReadConfiguration@20+0x24b>
   128de:	8b 7d dc             	mov    0xffffffdc(%ebp),%edi
   128e1:	53                   	push   %ebx
   128e2:	53                   	push   %ebx
   128e3:	8b 4f 08             	mov    0x8(%edi),%ecx
   128e6:	51                   	push   %ecx
   128e7:	6a 01                	push   $0x1
   128e9:	ff 15 24 e2 01 00    	call   *0x1e224
   128ef:	89 c3                	mov    %eax,%ebx
   128f1:	58                   	pop    %eax
   128f2:	85 db                	test   %ebx,%ebx
   128f4:	5a                   	pop    %edx
   128f5:	0f 84 eb fc ff ff    	je     125e6 <_NdisReadConfiguration@20+0x1e6>
   128fb:	57                   	push   %edi
   128fc:	57                   	push   %edi
   128fd:	6a 10                	push   $0x10
   128ff:	6a 01                	push   $0x1
   12901:	ff 15 24 e2 01 00    	call   *0x1e224
   12907:	89 c2                	mov    %eax,%edx
   12909:	58                   	pop    %eax
   1290a:	85 d2                	test   %edx,%edx
   1290c:	59                   	pop    %ecx
   1290d:	0f 84 17 01 00 00    	je     12a2a <_NdisReadConfiguration@20+0x62a>
   12913:	8b 06                	mov    (%esi),%eax
   12915:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
   1291c:	89 42 0c             	mov    %eax,0xc(%edx)
   1291f:	50                   	push   %eax
   12920:	8b 45 10             	mov    0x10(%ebp),%eax
   12923:	83 c0 0c             	add    $0xc,%eax
   12926:	50                   	push   %eax
   12927:	8b 45 10             	mov    0x10(%ebp),%eax
   1292a:	83 c0 04             	add    $0x4,%eax
   1292d:	52                   	push   %edx
   1292e:	50                   	push   %eax
   1292f:	ff 15 38 e2 01 00    	call   *0x1e238
   12935:	8b 4d dc             	mov    0xffffffdc(%ebp),%ecx
   12938:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   1293b:	83 c0 0c             	add    $0xc,%eax
   1293e:	8b 79 08             	mov    0x8(%ecx),%edi
   12941:	57                   	push   %edi
   12942:	50                   	push   %eax
   12943:	53                   	push   %ebx
   12944:	e8 87 3d 00 00       	call   166d0 <_memcpy>
   12949:	8b 4d dc             	mov    0xffffffdc(%ebp),%ecx
   1294c:	8b 16                	mov    (%esi),%edx
   1294e:	8b 7d 18             	mov    0x18(%ebp),%edi
   12951:	8b 41 08             	mov    0x8(%ecx),%eax
   12954:	89 3a                	mov    %edi,(%edx)
   12956:	66 89 42 04          	mov    %ax,0x4(%edx)
   1295a:	8b 06                	mov    (%esi),%eax
   1295c:	89 58 08             	mov    %ebx,0x8(%eax)
   1295f:	89 0c 24             	mov    %ecx,(%esp)
   12962:	ff 15 2c e2 01 00    	call   *0x1e22c
   12968:	e9 d4 fe ff ff       	jmp    12841 <_NdisReadConfiguration@20+0x441>
   1296d:	53                   	push   %ebx
   1296e:	53                   	push   %ebx
   1296f:	6a 10                	push   $0x10
   12971:	6a 01                	push   $0x1
   12973:	ff 15 24 e2 01 00    	call   *0x1e224
   12979:	89 c2                	mov    %eax,%edx
   1297b:	58                   	pop    %eax
   1297c:	85 d2                	test   %edx,%edx
   1297e:	59                   	pop    %ecx
   1297f:	0f 84 a5 00 00 00    	je     12a2a <_NdisReadConfiguration@20+0x62a>
   12985:	8b 06                	mov    (%esi),%eax
   12987:	c7 42 08 00 00 00 00 	movl   $0x0,0x8(%edx)
   1298e:	89 42 0c             	mov    %eax,0xc(%edx)
   12991:	8b 45 10             	mov    0x10(%ebp),%eax
   12994:	83 c0 0c             	add    $0xc,%eax
   12997:	57                   	push   %edi
   12998:	50                   	push   %eax
   12999:	8b 45 10             	mov    0x10(%ebp),%eax
   1299c:	52                   	push   %edx
   1299d:	83 c0 04             	add    $0x4,%eax
   129a0:	50                   	push   %eax
   129a1:	ff 15 38 e2 01 00    	call   *0x1e238
   129a7:	8b 7d dc             	mov    0xffffffdc(%ebp),%edi
   129aa:	8b 06                	mov    (%esi),%eax
   129ac:	8b 4d 18             	mov    0x18(%ebp),%ecx
   129af:	89 fe                	mov    %edi,%esi
   129b1:	8b 5f 08             	mov    0x8(%edi),%ebx
   129b4:	89 08                	mov    %ecx,(%eax)
   129b6:	8d 50 04             	lea    0x4(%eax),%edx
   129b9:	89 d9                	mov    %ebx,%ecx
   129bb:	fc                   	cld    
   129bc:	83 c6 0c             	add    $0xc,%esi
   129bf:	89 d7                	mov    %edx,%edi
   129c1:	c1 e9 02             	shr    $0x2,%ecx
   129c4:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   129c6:	f6 c3 02             	test   $0x2,%bl
   129c9:	89 fa                	mov    %edi,%edx
   129cb:	74 0c                	je     129d9 <_NdisReadConfiguration@20+0x5d9>
   129cd:	66 8b 06             	mov    (%esi),%ax
   129d0:	83 c2 02             	add    $0x2,%edx
   129d3:	66 89 07             	mov    %ax,(%edi)
   129d6:	83 c6 02             	add    $0x2,%esi
   129d9:	83 e3 01             	and    $0x1,%ebx
   129dc:	74 04                	je     129e2 <_NdisReadConfiguration@20+0x5e2>
   129de:	8a 06                	mov    (%esi),%al
   129e0:	88 02                	mov    %al,(%edx)
   129e2:	8b 4d dc             	mov    0xffffffdc(%ebp),%ecx
   129e5:	53                   	push   %ebx
   129e6:	53                   	push   %ebx
   129e7:	51                   	push   %ecx
   129e8:	ff 15 2c e2 01 00    	call   *0x1e22c
   129ee:	8b 45 08             	mov    0x8(%ebp),%eax
   129f1:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   129f7:	e9 28 fa ff ff       	jmp    12424 <_NdisReadConfiguration@20+0x24>
   129fc:	83 ec 0c             	sub    $0xc,%esp
   129ff:	8b 06                	mov    (%esi),%eax
   12a01:	50                   	push   %eax
   12a02:	ff 15 2c e2 01 00    	call   *0x1e22c
   12a08:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   12a0e:	e9 38 fc ff ff       	jmp    1264b <_NdisReadConfiguration@20+0x24b>
   12a13:	83 ec 0c             	sub    $0xc,%esp
   12a16:	8b 06                	mov    (%esi),%eax
   12a18:	50                   	push   %eax
   12a19:	ff 15 2c e2 01 00    	call   *0x1e22c
   12a1f:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   12a25:	e9 54 fc ff ff       	jmp    1267e <_NdisReadConfiguration@20+0x27e>
   12a2a:	83 ec 0c             	sub    $0xc,%esp
   12a2d:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   12a30:	50                   	push   %eax
   12a31:	ff 15 2c e2 01 00    	call   *0x1e22c
   12a37:	8b 06                	mov    (%esi),%eax
   12a39:	50                   	push   %eax
   12a3a:	ff 15 2c e2 01 00    	call   *0x1e22c
   12a40:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   12a46:	e9 8d fb ff ff       	jmp    125d8 <_NdisReadConfiguration@20+0x1d8>
   12a4b:	83 ec 0c             	sub    $0xc,%esp
   12a4e:	8b 06                	mov    (%esi),%eax
   12a50:	50                   	push   %eax
   12a51:	ff 15 2c e2 01 00    	call   *0x1e22c
   12a57:	eb e7                	jmp    12a40 <_NdisReadConfiguration@20+0x640>
   12a59:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012a60 <_UnicodeToHexByte>:


UCHAR UnicodeToHexByte(WCHAR chr)
/*
 * FUNCTION: Converts a unicode hex character to its numerical value
 * ARGUMENTS:
 *     chr: Unicode character to convert
 * RETURNS:
 *     The numerical value of chr
 */
{
   12a60:	55                   	push   %ebp
   12a61:	89 e5                	mov    %esp,%ebp
    switch(chr)
   12a63:	8b 45 08             	mov    0x8(%ebp),%eax
   12a66:	25 ff ff 00 00       	and    $0xffff,%eax
   12a6b:	83 e8 30             	sub    $0x30,%eax
   12a6e:	83 f8 36             	cmp    $0x36,%eax
   12a71:	77 0d                	ja     12a80 <_UnicodeToHexByte+0x20>
   12a73:	ff 24 85 8c 80 01 00 	jmp    *0x1808c(,%eax,4)
   12a7a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
    {
        case L'0': return 0; 
        case L'1': return 1; 
        case L'2': return 2; 
        case L'3': return 3; 
        case L'4': return 4; 
        case L'5': return 5; 
        case L'6': return 6;
        case L'7': return 7;
        case L'8': return 8;
        case L'9': return 9;
        case L'A': 
        case L'a': 
            return 10;
        case L'B':
        case L'b':
            return 11;
        case L'C':
        case L'c':
            return 12;
        case L'D':
        case L'd':
            return 13;
        case L'E':
        case L'e':
            return 14;
        case L'F':
        case L'f':
            return 15;
    }
    return -1;
   12a80:	b8 ff 00 00 00       	mov    $0xff,%eax
}
   12a85:	5d                   	pop    %ebp
   12a86:	c3                   	ret    
   12a87:	31 c0                	xor    %eax,%eax
   12a89:	5d                   	pop    %ebp
   12a8a:	c3                   	ret    
   12a8b:	b8 01 00 00 00       	mov    $0x1,%eax
   12a90:	5d                   	pop    %ebp
   12a91:	c3                   	ret    
   12a92:	b8 02 00 00 00       	mov    $0x2,%eax
   12a97:	5d                   	pop    %ebp
   12a98:	c3                   	ret    
   12a99:	b8 03 00 00 00       	mov    $0x3,%eax
   12a9e:	5d                   	pop    %ebp
   12a9f:	c3                   	ret    
   12aa0:	b8 04 00 00 00       	mov    $0x4,%eax
   12aa5:	5d                   	pop    %ebp
   12aa6:	c3                   	ret    
   12aa7:	b8 05 00 00 00       	mov    $0x5,%eax
   12aac:	5d                   	pop    %ebp
   12aad:	c3                   	ret    
   12aae:	b8 06 00 00 00       	mov    $0x6,%eax
   12ab3:	5d                   	pop    %ebp
   12ab4:	c3                   	ret    
   12ab5:	b8 07 00 00 00       	mov    $0x7,%eax
   12aba:	5d                   	pop    %ebp
   12abb:	c3                   	ret    
   12abc:	b8 08 00 00 00       	mov    $0x8,%eax
   12ac1:	5d                   	pop    %ebp
   12ac2:	c3                   	ret    
   12ac3:	b8 09 00 00 00       	mov    $0x9,%eax
   12ac8:	5d                   	pop    %ebp
   12ac9:	c3                   	ret    
   12aca:	b8 0a 00 00 00       	mov    $0xa,%eax
   12acf:	5d                   	pop    %ebp
   12ad0:	c3                   	ret    
   12ad1:	b8 0b 00 00 00       	mov    $0xb,%eax
   12ad6:	5d                   	pop    %ebp
   12ad7:	c3                   	ret    
   12ad8:	b8 0c 00 00 00       	mov    $0xc,%eax
   12add:	5d                   	pop    %ebp
   12ade:	c3                   	ret    
   12adf:	b8 0d 00 00 00       	mov    $0xd,%eax
   12ae4:	5d                   	pop    %ebp
   12ae5:	c3                   	ret    
   12ae6:	b8 0e 00 00 00       	mov    $0xe,%eax
   12aeb:	5d                   	pop    %ebp
   12aec:	c3                   	ret    
   12aed:	b8 0f 00 00 00       	mov    $0xf,%eax
   12af2:	5d                   	pop    %ebp
   12af3:	c3                   	ret    
   12af4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   12afa:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00012b00 <_NdisReadNetworkAddress@16>:


/*
 * @implemented
 */
VOID
EXPORT
NdisReadNetworkAddress(
    OUT PNDIS_STATUS    Status,
    OUT PVOID           * NetworkAddress,
    OUT PUINT           NetworkAddressLength,
    IN  NDIS_HANDLE     ConfigurationHandle)
/*
 * FUNCTION: Reads the network address from the registry
 * ARGUMENTS:
 *     Status - variable to receive status
 *     NetworkAddress - pointer to a buffered network address array
 *     NetworkAddressLength - length of the NetworkAddress array
 *     ConfigurationHandle: handle passed back from one of the open routines
 * RETURNS:
 *     NDIS_STATUS_SUCCESS on success
 *     NDIS_STATUS_FAILURE on failure
 *     The network address is placed in the NetworkAddress buffer
 */
{
   12b00:	55                   	push   %ebp
   12b01:	89 e5                	mov    %esp,%ebp
    PMINIPORT_CONFIGURATION_CONTEXT ConfigurationContext = (PMINIPORT_CONFIGURATION_CONTEXT)ConfigurationHandle;
    PMINIPORT_RESOURCE MiniportResource = NULL;
    PNDIS_CONFIGURATION_PARAMETER ParameterValue = NULL;
    NDIS_STRING Keyword;
    UINT *IntArray = 0;
    int i;

    /* FIXME - We don't quite support this yet due to buggy code below */
      {
        *Status = NDIS_STATUS_FAILURE;
   12b03:	8b 45 08             	mov    0x8(%ebp),%eax
   12b06:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
        return;
      }

    *NetworkAddress = NULL;
    *NetworkAddressLength = 6;/* XXX magic constant */

    NdisInitUnicodeString(&Keyword, L"NetworkAddress");
    NdisReadConfiguration(Status, &ParameterValue, ConfigurationHandle, &Keyword, NdisParameterString);
    if(*Status != NDIS_STATUS_SUCCESS)
    {
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    /* 6 bytes for ethernet, tokenring, fddi, everything else? */
    IntArray = ExAllocatePool(PagedPool, 6*sizeof(UINT));
    if(!IntArray)
    {
        NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
        *Status = NDIS_STATUS_RESOURCES;
        return;
    }

    MiniportResource = ExAllocatePool(PagedPool, sizeof(MINIPORT_RESOURCE));
    if(!MiniportResource)
    {
        NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    MiniportResource->ResourceType = 0;
    MiniportResource->Resource = IntArray;
    NDIS_DbgPrint(MID_TRACE,("inserting 0x%x into the resource list\n", MiniportResource->Resource));
    ExInterlockedInsertTailList(&ConfigurationContext->ResourceListHead, &MiniportResource->ListEntry, &ConfigurationContext->ResourceLock);

    /* convert from string to bytes */
    for(i=0; i<6; i++)
    {
        IntArray[i] = (UnicodeToHexByte((ParameterValue->ParameterData.StringData.Buffer)[2*i]) << 4) +
                UnicodeToHexByte((ParameterValue->ParameterData.StringData.Buffer)[2*i+1]);
    }

    *NetworkAddress = IntArray;

    *Status = NDIS_STATUS_SUCCESS;
   12b0c:	5d                   	pop    %ebp
   12b0d:	c2 10 00             	ret    $0x10

00012b10 <_NdisOpenConfigurationKeyByIndex@20>:
}


/*
 * @implemented
 */
VOID
EXPORT
NdisOpenConfigurationKeyByIndex(
    OUT PNDIS_STATUS    Status,
    IN  NDIS_HANDLE     ConfigurationHandle,
    IN  ULONG           Index,
    OUT PNDIS_STRING    KeyName,
    OUT PNDIS_HANDLE    KeyHandle)
/*
 * FUNCTION: Opens a configuration subkey by index number
 * ARGUMENTS:
 *     Status: pointer to an NDIS_STATUS to receive status info
 *     ConfigurationHandle: the handle passed back from a previous open function
 *     Index: the zero-based index of the subkey to open
 *     KeyName: the name of the key that was opened
 *     KeyHandle: a handle to the key that was opened
 * RETURNS:
 *     NDIS_STATUS_SUCCESS on success
 *     NDIS_STATUS_FAILURE on failure
 *     KeyName holds the name of the opened key
 *     KeyHandle holds a handle to the new key
 */
{
   12b10:	55                   	push   %ebp
   12b11:	89 e5                	mov    %esp,%ebp
   12b13:	57                   	push   %edi
   12b14:	56                   	push   %esi
   12b15:	53                   	push   %ebx
   12b16:	83 ec 44             	sub    $0x44,%esp
    KEY_BASIC_INFORMATION *KeyInformation;
    ULONG KeyInformationLength;
    OBJECT_ATTRIBUTES KeyAttributes;
    NDIS_HANDLE RegKeyHandle;
    PMINIPORT_CONFIGURATION_CONTEXT ConfigurationContext;

    *Status = ZwEnumerateKey(ConfigurationHandle, Index, KeyBasicInformation, NULL, 0, &KeyInformationLength);
   12b19:	8d 45 c4             	lea    0xffffffc4(%ebp),%eax
   12b1c:	8b 7d 0c             	mov    0xc(%ebp),%edi
   12b1f:	8b 75 08             	mov    0x8(%ebp),%esi
   12b22:	50                   	push   %eax
   12b23:	8b 45 10             	mov    0x10(%ebp),%eax
   12b26:	6a 00                	push   $0x0
   12b28:	6a 00                	push   $0x0
   12b2a:	6a 00                	push   $0x0
   12b2c:	50                   	push   %eax
   12b2d:	57                   	push   %edi
   12b2e:	ff 15 0c e3 01 00    	call   *0x1e30c
   12b34:	89 c1                	mov    %eax,%ecx
    if(*Status != STATUS_BUFFER_TOO_SMALL && *Status != STATUS_BUFFER_OVERFLOW && *Status != STATUS_SUCCESS)
   12b36:	5b                   	pop    %ebx
   12b37:	81 f9 23 00 00 c0    	cmp    $0xc0000023,%ecx
   12b3d:	58                   	pop    %eax
   12b3e:	0f 95 c2             	setne  %dl
   12b41:	81 f9 05 00 00 80    	cmp    $0x80000005,%ecx
   12b47:	0f 95 c0             	setne  %al
   12b4a:	25 ff 00 00 00       	and    $0xff,%eax
   12b4f:	85 c2                	test   %eax,%edx
   12b51:	74 04                	je     12b57 <_NdisOpenConfigurationKeyByIndex@20+0x47>
   12b53:	85 c9                	test   %ecx,%ecx
   12b55:	75 49                	jne    12ba0 <_NdisOpenConfigurationKeyByIndex@20+0x90>
    {
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    KeyInformation = ExAllocatePool(PagedPool, KeyInformationLength + sizeof(KEY_BASIC_INFORMATION));
   12b57:	8b 45 c4             	mov    0xffffffc4(%ebp),%eax
   12b5a:	89 0e                	mov    %ecx,(%esi)
   12b5c:	83 c0 18             	add    $0x18,%eax
   12b5f:	51                   	push   %ecx
   12b60:	51                   	push   %ecx
   12b61:	50                   	push   %eax
   12b62:	6a 01                	push   $0x1
   12b64:	ff 15 24 e2 01 00    	call   *0x1e224
   12b6a:	89 c3                	mov    %eax,%ebx
    if(!KeyInformation)
   12b6c:	58                   	pop    %eax
   12b6d:	85 db                	test   %ebx,%ebx
   12b6f:	5a                   	pop    %edx
   12b70:	74 2e                	je     12ba0 <_NdisOpenConfigurationKeyByIndex@20+0x90>
    {
        NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    *Status = ZwEnumerateKey(ConfigurationHandle, Index, KeyBasicInformation, KeyInformation, 
   12b72:	50                   	push   %eax
   12b73:	50                   	push   %eax
   12b74:	8b 45 c4             	mov    0xffffffc4(%ebp),%eax
   12b77:	8d 55 c4             	lea    0xffffffc4(%ebp),%edx
   12b7a:	83 c0 18             	add    $0x18,%eax
   12b7d:	52                   	push   %edx
   12b7e:	50                   	push   %eax
   12b7f:	8b 45 10             	mov    0x10(%ebp),%eax
   12b82:	53                   	push   %ebx
   12b83:	6a 00                	push   $0x0
   12b85:	50                   	push   %eax
   12b86:	57                   	push   %edi
   12b87:	ff 15 0c e3 01 00    	call   *0x1e30c
        KeyInformationLength + sizeof(KEY_BASIC_INFORMATION), &KeyInformationLength);

    if(*Status != STATUS_SUCCESS)
   12b8d:	85 c0                	test   %eax,%eax
   12b8f:	89 06                	mov    %eax,(%esi)
   12b91:	5a                   	pop    %edx
   12b92:	59                   	pop    %ecx
   12b93:	74 1b                	je     12bb0 <_NdisOpenConfigurationKeyByIndex@20+0xa0>
    {
        ExFreePool(KeyInformation);
   12b95:	83 ec 0c             	sub    $0xc,%esp
   12b98:	53                   	push   %ebx
   12b99:	ff 15 2c e2 01 00    	call   *0x1e22c
   12b9f:	90                   	nop    
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    /* should i fail instead if the passed-in string isn't long enough? */
    wcsncpy(KeyName->Buffer, KeyInformation->Name, KeyName->MaximumLength/sizeof(WCHAR));
    KeyName->Length = KeyInformation->NameLength;

    InitializeObjectAttributes(&KeyAttributes, KeyName, OBJ_CASE_INSENSITIVE, ConfigurationHandle, NULL);

    *Status = ZwOpenKey(&RegKeyHandle, KEY_ALL_ACCESS, &KeyAttributes);

    ExFreePool(KeyInformation);

    if(*Status != STATUS_SUCCESS)
    {
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    ConfigurationContext = ExAllocatePool(PagedPool, sizeof(MINIPORT_CONFIGURATION_CONTEXT));
    if(!ConfigurationContext)
    {
        NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
        *Status = NDIS_STATUS_FAILURE;
   12ba0:	c7 06 01 00 00 c0    	movl   $0xc0000001,(%esi)
        return;
    }

    KeInitializeSpinLock(&ConfigurationContext->ResourceLock);
    InitializeListHead(&ConfigurationContext->ResourceListHead);

    ConfigurationContext->Handle = RegKeyHandle;

    *KeyHandle = (NDIS_HANDLE)ConfigurationContext;

    *Status = NDIS_STATUS_SUCCESS;
}
   12ba6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12ba9:	5b                   	pop    %ebx
   12baa:	5e                   	pop    %esi
   12bab:	5f                   	pop    %edi
   12bac:	5d                   	pop    %ebp
   12bad:	c2 14 00             	ret    $0x14
   12bb0:	8b 55 14             	mov    0x14(%ebp),%edx
   12bb3:	50                   	push   %eax
   12bb4:	66 8b 42 02          	mov    0x2(%edx),%ax
   12bb8:	66 d1 e8             	shr    %ax
   12bbb:	25 ff ff 00 00       	and    $0xffff,%eax
   12bc0:	50                   	push   %eax
   12bc1:	8d 43 10             	lea    0x10(%ebx),%eax
   12bc4:	50                   	push   %eax
   12bc5:	8b 42 04             	mov    0x4(%edx),%eax
   12bc8:	50                   	push   %eax
   12bc9:	e8 d2 3b 00 00       	call   167a0 <_wcsncpy>
   12bce:	8b 55 14             	mov    0x14(%ebp),%edx
   12bd1:	8b 43 0c             	mov    0xc(%ebx),%eax
   12bd4:	83 c4 0c             	add    $0xc,%esp
   12bd7:	89 7d cc             	mov    %edi,0xffffffcc(%ebp)
   12bda:	66 89 02             	mov    %ax,(%edx)
   12bdd:	8d 45 c8             	lea    0xffffffc8(%ebp),%eax
   12be0:	50                   	push   %eax
   12be1:	89 55 d0             	mov    %edx,0xffffffd0(%ebp)
   12be4:	8d 45 c0             	lea    0xffffffc0(%ebp),%eax
   12be7:	c7 45 c8 18 00 00 00 	movl   $0x18,0xffffffc8(%ebp)
   12bee:	c7 45 d4 40 00 00 00 	movl   $0x40,0xffffffd4(%ebp)
   12bf5:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
   12bfc:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   12c03:	68 3f 00 0f 00       	push   $0xf003f
   12c08:	50                   	push   %eax
   12c09:	ff 15 10 e3 01 00    	call   *0x1e310
   12c0f:	89 06                	mov    %eax,(%esi)
   12c11:	57                   	push   %edi
   12c12:	57                   	push   %edi
   12c13:	53                   	push   %ebx
   12c14:	ff 15 2c e2 01 00    	call   *0x1e22c
   12c1a:	8b 1e                	mov    (%esi),%ebx
   12c1c:	83 c4 0c             	add    $0xc,%esp
   12c1f:	85 db                	test   %ebx,%ebx
   12c21:	0f 85 79 ff ff ff    	jne    12ba0 <_NdisOpenConfigurationKeyByIndex@20+0x90>
   12c27:	51                   	push   %ecx
   12c28:	51                   	push   %ecx
   12c29:	6a 10                	push   $0x10
   12c2b:	6a 01                	push   $0x1
   12c2d:	ff 15 24 e2 01 00    	call   *0x1e224
   12c33:	89 c3                	mov    %eax,%ebx
   12c35:	58                   	pop    %eax
   12c36:	85 db                	test   %ebx,%ebx
   12c38:	5a                   	pop    %edx
   12c39:	0f 84 61 ff ff ff    	je     12ba0 <_NdisOpenConfigurationKeyByIndex@20+0x90>
   12c3f:	83 ec 0c             	sub    $0xc,%esp
   12c42:	8d 43 0c             	lea    0xc(%ebx),%eax
   12c45:	50                   	push   %eax
   12c46:	ff 15 78 e2 01 00    	call   *0x1e278

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   12c4c:	8d 43 04             	lea    0x4(%ebx),%eax
   12c4f:	83 c4 0c             	add    $0xc,%esp
  ListHead->Flink = ListHead->Blink = ListHead;
   12c52:	89 43 04             	mov    %eax,0x4(%ebx)
   12c55:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   12c5b:	89 40 04             	mov    %eax,0x4(%eax)
   12c5e:	8b 45 c0             	mov    0xffffffc0(%ebp),%eax
   12c61:	89 03                	mov    %eax,(%ebx)
   12c63:	8b 45 18             	mov    0x18(%ebp),%eax
   12c66:	89 18                	mov    %ebx,(%eax)
   12c68:	e9 39 ff ff ff       	jmp    12ba6 <_NdisOpenConfigurationKeyByIndex@20+0x96>
   12c6d:	8d 76 00             	lea    0x0(%esi),%esi

00012c70 <_NdisOpenConfigurationKeyByName@16>:


/*
 * @implemented
 */
VOID
EXPORT
NdisOpenConfigurationKeyByName(
    OUT PNDIS_STATUS    Status,
    IN  NDIS_HANDLE     ConfigurationHandle,
    IN  PNDIS_STRING    KeyName,
    OUT PNDIS_HANDLE    KeyHandle)
/*
 * FUNCTION: Opens a configuration subkey by name
 * ARGUMENTS:
 *     Status: points to an NDIS_STATUS where status is returned
 *     ConfigurationHandle: handle returned by a previous open call
 *     KeyName: the name of the key to open
 *     KeyHandle: a handle to the opened key
 * RETURNS:
 *     NDIS_STATUS_SUCCESS on success
 *     NDIS_STATUS_FAILURE on failure
 *     KeyHandle holds a handle to the newly-opened key
 * NOTES:
 */
{
   12c70:	55                   	push   %ebp
   12c71:	89 e5                	mov    %esp,%ebp
   12c73:	56                   	push   %esi
   12c74:	53                   	push   %ebx
   12c75:	83 ec 34             	sub    $0x34,%esp
    PMINIPORT_CONFIGURATION_CONTEXT ConfigurationContext;
    OBJECT_ATTRIBUTES KeyAttributes;
    NDIS_HANDLE RegKeyHandle;

    InitializeObjectAttributes(&KeyAttributes, KeyName, OBJ_CASE_INSENSITIVE, ConfigurationHandle, 0);
   12c78:	c7 45 d8 18 00 00 00 	movl   $0x18,0xffffffd8(%ebp)
   12c7f:	8b 45 0c             	mov    0xc(%ebp),%eax
   12c82:	8b 75 08             	mov    0x8(%ebp),%esi
   12c85:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
   12c88:	8b 45 10             	mov    0x10(%ebp),%eax
   12c8b:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
    *Status = ZwOpenKey(&RegKeyHandle, KEY_ALL_ACCESS, &KeyAttributes);
   12c8e:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   12c91:	c7 45 e4 40 00 00 00 	movl   $0x40,0xffffffe4(%ebp)
   12c98:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   12c9f:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   12ca6:	50                   	push   %eax
   12ca7:	8d 45 d4             	lea    0xffffffd4(%ebp),%eax
   12caa:	68 3f 00 0f 00       	push   $0xf003f
   12caf:	50                   	push   %eax
   12cb0:	ff 15 10 e3 01 00    	call   *0x1e310

    if(*Status != STATUS_SUCCESS)
   12cb6:	5b                   	pop    %ebx
   12cb7:	85 c0                	test   %eax,%eax
   12cb9:	74 15                	je     12cd0 <_NdisOpenConfigurationKeyByName@16+0x60>
    {
        *Status = NDIS_STATUS_FAILURE;
        return;
    }

    ConfigurationContext = ExAllocatePool(PagedPool, sizeof(MINIPORT_CONFIGURATION_CONTEXT));
    if(!ConfigurationContext)
    {
        NDIS_DbgPrint(MIN_TRACE,("Insufficient resources.\n"));
        *Status = NDIS_STATUS_FAILURE;
   12cbb:	c7 06 01 00 00 c0    	movl   $0xc0000001,(%esi)
        return;
    }

    KeInitializeSpinLock(&ConfigurationContext->ResourceLock);
    InitializeListHead(&ConfigurationContext->ResourceListHead);

    ConfigurationContext->Handle = RegKeyHandle;

    *KeyHandle = (NDIS_HANDLE)ConfigurationContext;

    *Status = NDIS_STATUS_SUCCESS;
}
   12cc1:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12cc4:	5b                   	pop    %ebx
   12cc5:	5e                   	pop    %esi
   12cc6:	5d                   	pop    %ebp
   12cc7:	c2 10 00             	ret    $0x10
   12cca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   12cd0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   12cd6:	51                   	push   %ecx
   12cd7:	51                   	push   %ecx
   12cd8:	6a 10                	push   $0x10
   12cda:	6a 01                	push   $0x1
   12cdc:	ff 15 24 e2 01 00    	call   *0x1e224
   12ce2:	89 c3                	mov    %eax,%ebx
   12ce4:	58                   	pop    %eax
   12ce5:	85 db                	test   %ebx,%ebx
   12ce7:	5a                   	pop    %edx
   12ce8:	74 d1                	je     12cbb <_NdisOpenConfigurationKeyByName@16+0x4b>
   12cea:	83 ec 0c             	sub    $0xc,%esp
   12ced:	8d 43 0c             	lea    0xc(%ebx),%eax
   12cf0:	50                   	push   %eax
   12cf1:	ff 15 78 e2 01 00    	call   *0x1e278

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   12cf7:	8d 43 04             	lea    0x4(%ebx),%eax
   12cfa:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   12d00:	89 43 04             	mov    %eax,0x4(%ebx)
   12d03:	83 c4 0c             	add    $0xc,%esp
   12d06:	89 40 04             	mov    %eax,0x4(%eax)
   12d09:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   12d0c:	89 03                	mov    %eax,(%ebx)
   12d0e:	8b 45 14             	mov    0x14(%ebp),%eax
   12d11:	89 18                	mov    %ebx,(%eax)
   12d13:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12d16:	5b                   	pop    %ebx
   12d17:	5e                   	pop    %esi
   12d18:	5d                   	pop    %ebp
   12d19:	c2 10 00             	ret    $0x10
   12d1c:	90                   	nop    
   12d1d:	90                   	nop    
   12d1e:	90                   	nop    
   12d1f:	90                   	nop    

00012d20 <_NdisReinitializePacket@4>:
   12d20:	55                   	push   %ebp
   12d21:	89 e5                	mov    %esp,%ebp
   12d23:	8b 45 08             	mov    0x8(%ebp),%eax
   12d26:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
   12d2d:	c6 40 1c 00          	movb   $0x0,0x1c(%eax)
   12d31:	5d                   	pop    %ebp
   12d32:	c2 04 00             	ret    $0x4
   12d35:	8d 74 26 00          	lea    0x0(%esi),%esi
   12d39:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012d40 <_NdisAcquireReadWriteLock@12>:
   12d40:	55                   	push   %ebp
   12d41:	89 e5                	mov    %esp,%ebp
   12d43:	5d                   	pop    %ebp
   12d44:	c2 0c 00             	ret    $0xc
   12d47:	89 f6                	mov    %esi,%esi
   12d49:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012d50 <_NdisAcquireSpinLock@4>:
   12d50:	55                   	push   %ebp
   12d51:	89 e5                	mov    %esp,%ebp
   12d53:	83 ec 10             	sub    $0x10,%esp
   12d56:	8b 55 08             	mov    0x8(%ebp),%edx
   12d59:	8d 42 04             	lea    0x4(%edx),%eax
   12d5c:	50                   	push   %eax
   12d5d:	52                   	push   %edx
   12d5e:	ff 15 dc e1 01 00    	call   *0x1e1dc
   12d64:	c9                   	leave  
   12d65:	c2 04 00             	ret    $0x4
   12d68:	90                   	nop    
   12d69:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012d70 <_NdisAllocateSpinLock@4>:
   12d70:	55                   	push   %ebp
   12d71:	89 e5                	mov    %esp,%ebp
   12d73:	c9                   	leave  
   12d74:	ff 25 78 e2 01 00    	jmp    *0x1e278
   12d7a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012d80 <_NdisDprAcquireSpinLock@4>:
   12d80:	55                   	push   %ebp
   12d81:	89 e5                	mov    %esp,%ebp
   12d83:	53                   	push   %ebx
   12d84:	52                   	push   %edx
   12d85:	8b 5d 08             	mov    0x8(%ebp),%ebx
   12d88:	89 d9                	mov    %ebx,%ecx
   12d8a:	ff 15 1c e2 01 00    	call   *0x1e21c
   12d90:	c6 43 04 02          	movb   $0x2,0x4(%ebx)
   12d94:	58                   	pop    %eax
   12d95:	5b                   	pop    %ebx
   12d96:	5d                   	pop    %ebp
   12d97:	c2 04 00             	ret    $0x4
   12d9a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012da0 <_NdisDprReleaseSpinLock@4>:
   12da0:	55                   	push   %ebp
   12da1:	89 e5                	mov    %esp,%ebp
   12da3:	51                   	push   %ecx
   12da4:	51                   	push   %ecx
   12da5:	8b 4d 08             	mov    0x8(%ebp),%ecx
   12da8:	ff 15 20 e2 01 00    	call   *0x1e220
   12dae:	c9                   	leave  
   12daf:	c2 04 00             	ret    $0x4
   12db2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12db9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012dc0 <_NdisFreeSpinLock@4>:
   12dc0:	55                   	push   %ebp
   12dc1:	89 e5                	mov    %esp,%ebp
   12dc3:	5d                   	pop    %ebp
   12dc4:	c2 04 00             	ret    $0x4
   12dc7:	89 f6                	mov    %esi,%esi
   12dc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012dd0 <_NdisGetCurrentProcessorCpuUsage@4>:
   12dd0:	55                   	push   %ebp
   12dd1:	89 e5                	mov    %esp,%ebp
   12dd3:	5d                   	pop    %ebp
   12dd4:	c2 04 00             	ret    $0x4
   12dd7:	89 f6                	mov    %esi,%esi
   12dd9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012de0 <_NdisInitializeEvent@4>:
   12de0:	55                   	push   %ebp
   12de1:	89 e5                	mov    %esp,%ebp
   12de3:	83 ec 0c             	sub    $0xc,%esp
   12de6:	8b 45 08             	mov    0x8(%ebp),%eax
   12de9:	6a 00                	push   $0x0
   12deb:	6a 00                	push   $0x0
   12ded:	50                   	push   %eax
   12dee:	ff 15 74 e2 01 00    	call   *0x1e274
   12df4:	c9                   	leave  
   12df5:	c2 04 00             	ret    $0x4
   12df8:	90                   	nop    
   12df9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012e00 <_NdisReleaseSpinLock@4>:
   12e00:	55                   	push   %ebp
   12e01:	31 c0                	xor    %eax,%eax
   12e03:	89 e5                	mov    %esp,%ebp
   12e05:	83 ec 10             	sub    $0x10,%esp
   12e08:	8b 55 08             	mov    0x8(%ebp),%edx
   12e0b:	8a 42 04             	mov    0x4(%edx),%al
   12e0e:	50                   	push   %eax
   12e0f:	52                   	push   %edx
   12e10:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   12e16:	c9                   	leave  
   12e17:	c2 04 00             	ret    $0x4
   12e1a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012e20 <_NdisResetEvent@4>:
   12e20:	55                   	push   %ebp
   12e21:	89 e5                	mov    %esp,%ebp
   12e23:	c9                   	leave  
   12e24:	ff 25 8c e2 01 00    	jmp    *0x1e28c
   12e2a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012e30 <_NdisSetEvent@4>:
   12e30:	55                   	push   %ebp
   12e31:	89 e5                	mov    %esp,%ebp
   12e33:	83 ec 0c             	sub    $0xc,%esp
   12e36:	8b 45 08             	mov    0x8(%ebp),%eax
   12e39:	6a 00                	push   $0x0
   12e3b:	6a 00                	push   $0x0
   12e3d:	50                   	push   %eax
   12e3e:	ff 15 90 e2 01 00    	call   *0x1e290
   12e44:	c9                   	leave  
   12e45:	c2 04 00             	ret    $0x4
   12e48:	90                   	nop    
   12e49:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012e50 <_NdisWaitEvent@8>:
   12e50:	55                   	push   %ebp
   12e51:	b8 f0 d8 ff ff       	mov    $0xffffd8f0,%eax
   12e56:	89 e5                	mov    %esp,%ebp
   12e58:	56                   	push   %esi
   12e59:	53                   	push   %ebx
   12e5a:	31 db                	xor    %ebx,%ebx
   12e5c:	83 ec 1c             	sub    $0x1c,%esp
   12e5f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   12e62:	f7 e1                	mul    %ecx
   12e64:	89 d6                	mov    %edx,%esi
   12e66:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   12e69:	29 ce                	sub    %ecx,%esi
   12e6b:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   12e6e:	69 cb f0 d8 ff ff    	imul   $0xffffd8f0,%ebx,%ecx
   12e74:	50                   	push   %eax
   12e75:	8b 45 08             	mov    0x8(%ebp),%eax
   12e78:	8d 14 0e             	lea    (%esi,%ecx,1),%edx
   12e7b:	6a 01                	push   $0x1
   12e7d:	89 55 f4             	mov    %edx,0xfffffff4(%ebp)
   12e80:	6a 00                	push   $0x0
   12e82:	6a 00                	push   $0x0
   12e84:	50                   	push   %eax
   12e85:	ff 15 a0 e2 01 00    	call   *0x1e2a0
   12e8b:	83 c4 0c             	add    $0xc,%esp
   12e8e:	85 c0                	test   %eax,%eax
   12e90:	0f 94 c0             	sete   %al
   12e93:	25 ff 00 00 00       	and    $0xff,%eax
   12e98:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12e9b:	5b                   	pop    %ebx
   12e9c:	5e                   	pop    %esi
   12e9d:	5d                   	pop    %ebp
   12e9e:	c2 08 00             	ret    $0x8
   12ea1:	90                   	nop    
   12ea2:	90                   	nop    
   12ea3:	90                   	nop    
   12ea4:	90                   	nop    
   12ea5:	90                   	nop    
   12ea6:	90                   	nop    
   12ea7:	90                   	nop    
   12ea8:	90                   	nop    
   12ea9:	90                   	nop    
   12eaa:	90                   	nop    
   12eab:	90                   	nop    
   12eac:	90                   	nop    
   12ead:	90                   	nop    
   12eae:	90                   	nop    
   12eaf:	90                   	nop    

00012eb0 <_NdisImmediateReadPciSlotInformation@20>:
   12eb0:	55                   	push   %ebp
   12eb1:	89 e5                	mov    %esp,%ebp
   12eb3:	83 ec 10             	sub    $0x10,%esp
   12eb6:	8b 45 18             	mov    0x18(%ebp),%eax
   12eb9:	8b 4d 14             	mov    0x14(%ebp),%ecx
   12ebc:	50                   	push   %eax
   12ebd:	8b 45 10             	mov    0x10(%ebp),%eax
   12ec0:	50                   	push   %eax
   12ec1:	8b 55 0c             	mov    0xc(%ebp),%edx
   12ec4:	8b 45 08             	mov    0x8(%ebp),%eax
   12ec7:	51                   	push   %ecx
   12ec8:	52                   	push   %edx
   12ec9:	8b 40 08             	mov    0x8(%eax),%eax
   12ecc:	50                   	push   %eax
   12ecd:	6a 04                	push   $0x4
   12ecf:	ff 15 cc e1 01 00    	call   *0x1e1cc
   12ed5:	c9                   	leave  
   12ed6:	c2 14 00             	ret    $0x14
   12ed9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012ee0 <_NdisImmediateWritePciSlotInformation@20>:
   12ee0:	55                   	push   %ebp
   12ee1:	89 e5                	mov    %esp,%ebp
   12ee3:	83 ec 10             	sub    $0x10,%esp
   12ee6:	8b 45 10             	mov    0x10(%ebp),%eax
   12ee9:	8b 55 18             	mov    0x18(%ebp),%edx
   12eec:	52                   	push   %edx
   12eed:	50                   	push   %eax
   12eee:	8b 45 14             	mov    0x14(%ebp),%eax
   12ef1:	50                   	push   %eax
   12ef2:	8b 45 0c             	mov    0xc(%ebp),%eax
   12ef5:	50                   	push   %eax
   12ef6:	8b 45 08             	mov    0x8(%ebp),%eax
   12ef9:	8b 40 08             	mov    0x8(%eax),%eax
   12efc:	50                   	push   %eax
   12efd:	6a 04                	push   $0x4
   12eff:	ff 15 d4 e1 01 00    	call   *0x1e1d4
   12f05:	c9                   	leave  
   12f06:	c2 14 00             	ret    $0x14
   12f09:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012f10 <_NdisMPciAssignResources@12>:
   12f10:	55                   	push   %ebp
   12f11:	89 e5                	mov    %esp,%ebp
   12f13:	8b 45 08             	mov    0x8(%ebp),%eax
   12f16:	8b 55 10             	mov    0x10(%ebp),%edx
   12f19:	83 b8 00 01 00 00 05 	cmpl   $0x5,0x100(%eax)
   12f20:	75 0a                	jne    12f2c <_NdisMPciAssignResources@12+0x1c>
   12f22:	8b 80 e8 01 00 00    	mov    0x1e8(%eax),%eax
   12f28:	85 c0                	test   %eax,%eax
   12f2a:	75 14                	jne    12f40 <_NdisMPciAssignResources@12+0x30>
   12f2c:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   12f32:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12f37:	5d                   	pop    %ebp
   12f38:	c2 0c 00             	ret    $0xc
   12f3b:	90                   	nop    
   12f3c:	8d 74 26 00          	lea    0x0(%esi),%esi
   12f40:	83 c0 0c             	add    $0xc,%eax
   12f43:	89 02                	mov    %eax,(%edx)
   12f45:	31 c0                	xor    %eax,%eax
   12f47:	5d                   	pop    %ebp
   12f48:	c2 0c 00             	ret    $0xc
   12f4b:	90                   	nop    
   12f4c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012f50 <_NdisMQueryAdapterResources@16>:
   12f50:	55                   	push   %ebp
   12f51:	89 e5                	mov    %esp,%ebp
   12f53:	57                   	push   %edi
   12f54:	56                   	push   %esi
   12f55:	53                   	push   %ebx
   12f56:	83 ec 0c             	sub    $0xc,%esp
   12f59:	8b 45 0c             	mov    0xc(%ebp),%eax
   12f5c:	8b 7d 08             	mov    0x8(%ebp),%edi
   12f5f:	8b 75 14             	mov    0x14(%ebp),%esi
   12f62:	8b 40 04             	mov    0x4(%eax),%eax
   12f65:	8b 40 28             	mov    0x28(%eax),%eax
   12f68:	8b 90 e8 01 00 00    	mov    0x1e8(%eax),%edx
   12f6e:	85 d2                	test   %edx,%edx
   12f70:	75 10                	jne    12f82 <_NdisMQueryAdapterResources@16+0x32>
   12f72:	c7 07 01 00 00 c0    	movl   $0xc0000001,(%edi)
   12f78:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12f7b:	5b                   	pop    %ebx
   12f7c:	5e                   	pop    %esi
   12f7d:	5f                   	pop    %edi
   12f7e:	5d                   	pop    %ebp
   12f7f:	c2 10 00             	ret    $0x10
   12f82:	8b 42 10             	mov    0x10(%edx),%eax
   12f85:	c1 e0 04             	shl    $0x4,%eax
   12f88:	8d 58 08             	lea    0x8(%eax),%ebx
   12f8b:	39 1e                	cmp    %ebx,(%esi)
   12f8d:	73 12                	jae    12fa1 <_NdisMQueryAdapterResources@16+0x51>
   12f8f:	89 1e                	mov    %ebx,(%esi)
   12f91:	c7 07 9a 00 00 c0    	movl   $0xc000009a,(%edi)
   12f97:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12f9a:	5b                   	pop    %ebx
   12f9b:	5e                   	pop    %esi
   12f9c:	5f                   	pop    %edi
   12f9d:	5d                   	pop    %ebp
   12f9e:	c2 10 00             	ret    $0x10
   12fa1:	8d 42 0c             	lea    0xc(%edx),%eax
   12fa4:	52                   	push   %edx
   12fa5:	53                   	push   %ebx
   12fa6:	50                   	push   %eax
   12fa7:	8b 4d 10             	mov    0x10(%ebp),%ecx
   12faa:	51                   	push   %ecx
   12fab:	e8 20 37 00 00       	call   166d0 <_memcpy>
   12fb0:	89 1e                	mov    %ebx,(%esi)
   12fb2:	83 c4 10             	add    $0x10,%esp
   12fb5:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
   12fbb:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12fbe:	5b                   	pop    %ebx
   12fbf:	5e                   	pop    %esi
   12fc0:	5f                   	pop    %edi
   12fc1:	5d                   	pop    %ebp
   12fc2:	c2 10 00             	ret    $0x10
   12fc5:	8d 74 26 00          	lea    0x0(%esi),%esi
   12fc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012fd0 <_NdisQueryMapRegisterCount@8>:
   12fd0:	55                   	push   %ebp
   12fd1:	b8 bb 00 00 c0       	mov    $0xc00000bb,%eax
   12fd6:	89 e5                	mov    %esp,%ebp
   12fd8:	5d                   	pop    %ebp
   12fd9:	c2 08 00             	ret    $0x8
   12fdc:	8d 74 26 00          	lea    0x0(%esi),%esi

00012fe0 <_NdisReadEisaSlotInformation@16>:
   12fe0:	55                   	push   %ebp
   12fe1:	89 e5                	mov    %esp,%ebp
   12fe3:	5d                   	pop    %ebp
   12fe4:	c2 10 00             	ret    $0x10
   12fe7:	89 f6                	mov    %esi,%esi
   12fe9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012ff0 <_NdisReadEisaSlotInformationEx@20>:
   12ff0:	55                   	push   %ebp
   12ff1:	89 e5                	mov    %esp,%ebp
   12ff3:	5d                   	pop    %ebp
   12ff4:	c2 14 00             	ret    $0x14
   12ff7:	89 f6                	mov    %esi,%esi
   12ff9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013000 <_NdisReadPciSlotInformation@20>:
   13000:	55                   	push   %ebp
   13001:	89 e5                	mov    %esp,%ebp
   13003:	83 ec 10             	sub    $0x10,%esp
   13006:	8b 4d 18             	mov    0x18(%ebp),%ecx
   13009:	8b 45 08             	mov    0x8(%ebp),%eax
   1300c:	51                   	push   %ecx
   1300d:	8b 55 10             	mov    0x10(%ebp),%edx
   13010:	8b 4d 14             	mov    0x14(%ebp),%ecx
   13013:	52                   	push   %edx
   13014:	51                   	push   %ecx
   13015:	8b 90 e4 01 00 00    	mov    0x1e4(%eax),%edx
   1301b:	52                   	push   %edx
   1301c:	8b 88 fc 00 00 00    	mov    0xfc(%eax),%ecx
   13022:	51                   	push   %ecx
   13023:	6a 04                	push   $0x4
   13025:	ff 15 cc e1 01 00    	call   *0x1e1cc
   1302b:	c9                   	leave  
   1302c:	c2 14 00             	ret    $0x14
   1302f:	90                   	nop    

00013030 <_NdisWritePciSlotInformation@20>:
   13030:	55                   	push   %ebp
   13031:	89 e5                	mov    %esp,%ebp
   13033:	83 ec 10             	sub    $0x10,%esp
   13036:	8b 4d 18             	mov    0x18(%ebp),%ecx
   13039:	8b 45 08             	mov    0x8(%ebp),%eax
   1303c:	51                   	push   %ecx
   1303d:	8b 55 10             	mov    0x10(%ebp),%edx
   13040:	8b 4d 14             	mov    0x14(%ebp),%ecx
   13043:	52                   	push   %edx
   13044:	51                   	push   %ecx
   13045:	8b 90 e4 01 00 00    	mov    0x1e4(%eax),%edx
   1304b:	52                   	push   %edx
   1304c:	8b 80 fc 00 00 00    	mov    0xfc(%eax),%eax
   13052:	50                   	push   %eax
   13053:	6a 04                	push   $0x4
   13055:	ff 15 d4 e1 01 00    	call   *0x1e1d4
   1305b:	c9                   	leave  
   1305c:	c2 14 00             	ret    $0x14
   1305f:	90                   	nop    

00013060 <_HandleDeferredProcessing@16>:
   13060:	55                   	push   %ebp
   13061:	89 e5                	mov    %esp,%ebp
   13063:	56                   	push   %esi
   13064:	53                   	push   %ebx
   13065:	83 ec 10             	sub    $0x10,%esp
   13068:	8b 75 0c             	mov    0xc(%ebp),%esi
   1306b:	8d 5e 30             	lea    0x30(%esi),%ebx
   1306e:	89 d9                	mov    %ebx,%ecx
   13070:	ff 15 1c e2 01 00    	call   *0x1e21c
   13076:	8a 86 90 04 00 00    	mov    0x490(%esi),%al
   1307c:	88 45 f7             	mov    %al,0xfffffff7(%ebp)
   1307f:	89 d9                	mov    %ebx,%ecx
   13081:	c6 86 90 04 00 00 01 	movb   $0x1,0x490(%esi)
   13088:	ff 15 20 e2 01 00    	call   *0x1e220
   1308e:	83 ec 0c             	sub    $0xc,%esp
   13091:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   13097:	8b 56 0c             	mov    0xc(%esi),%edx
   1309a:	52                   	push   %edx
   1309b:	ff 50 28             	call   *0x28(%eax)
   1309e:	89 d9                	mov    %ebx,%ecx
   130a0:	83 c4 0c             	add    $0xc,%esp
   130a3:	ff 15 1c e2 01 00    	call   *0x1e21c
   130a9:	80 7d f7 00          	cmpb   $0x0,0xfffffff7(%ebp)
   130ad:	75 0a                	jne    130b9 <_HandleDeferredProcessing@16+0x59>
   130af:	8b 86 10 05 00 00    	mov    0x510(%esi),%eax
   130b5:	85 c0                	test   %eax,%eax
   130b7:	75 3d                	jne    130f6 <_HandleDeferredProcessing@16+0x96>
   130b9:	8a 45 f7             	mov    0xfffffff7(%ebp),%al
   130bc:	88 86 90 04 00 00    	mov    %al,0x490(%esi)
   130c2:	8d 4e 30             	lea    0x30(%esi),%ecx
   130c5:	ff 15 20 e2 01 00    	call   *0x1e220
   130cb:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   130d1:	8b 40 20             	mov    0x20(%eax),%eax
   130d4:	85 c0                	test   %eax,%eax
   130d6:	75 09                	jne    130e1 <_HandleDeferredProcessing@16+0x81>
   130d8:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   130db:	5b                   	pop    %ebx
   130dc:	5e                   	pop    %esi
   130dd:	5d                   	pop    %ebp
   130de:	c2 10 00             	ret    $0x10
   130e1:	83 ec 0c             	sub    $0xc,%esp
   130e4:	8b 56 0c             	mov    0xc(%esi),%edx
   130e7:	52                   	push   %edx
   130e8:	ff d0                	call   *%eax
   130ea:	83 c4 0c             	add    $0xc,%esp
   130ed:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   130f0:	5b                   	pop    %ebx
   130f1:	5e                   	pop    %esi
   130f2:	5d                   	pop    %ebp
   130f3:	c2 10 00             	ret    $0x10
   130f6:	8d 86 70 04 00 00    	lea    0x470(%esi),%eax
   130fc:	53                   	push   %ebx
   130fd:	6a 00                	push   $0x0
   130ff:	6a 00                	push   $0x0
   13101:	50                   	push   %eax
   13102:	ff 15 80 e2 01 00    	call   *0x1e280
   13108:	59                   	pop    %ecx
   13109:	eb b7                	jmp    130c2 <_HandleDeferredProcessing@16+0x62>
   1310b:	90                   	nop    
   1310c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013110 <_ServiceRoutine@8>:
   13110:	55                   	push   %ebp
   13111:	89 e5                	mov    %esp,%ebp
   13113:	53                   	push   %ebx
   13114:	51                   	push   %ecx
   13115:	51                   	push   %ecx
   13116:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   13119:	8b 53 0c             	mov    0xc(%ebx),%edx
   1311c:	8b 83 34 05 00 00    	mov    0x534(%ebx),%eax
   13122:	52                   	push   %edx
   13123:	8d 55 fb             	lea    0xfffffffb(%ebp),%edx
   13126:	52                   	push   %edx
   13127:	8d 55 fa             	lea    0xfffffffa(%ebp),%edx
   1312a:	52                   	push   %edx
   1312b:	ff 50 30             	call   *0x30(%eax)
   1312e:	80 7d fb 00          	cmpb   $0x0,0xfffffffb(%ebp)
   13132:	58                   	pop    %eax
   13133:	75 0c                	jne    13141 <_ServiceRoutine@8+0x31>
   13135:	31 c0                	xor    %eax,%eax
   13137:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1313a:	8a 45 fa             	mov    0xfffffffa(%ebp),%al
   1313d:	c9                   	leave  
   1313e:	c2 08 00             	ret    $0x8
   13141:	50                   	push   %eax
   13142:	6a 00                	push   $0x0
   13144:	6a 00                	push   $0x0
   13146:	8b 43 38             	mov    0x38(%ebx),%eax
   13149:	83 c0 14             	add    $0x14,%eax
   1314c:	50                   	push   %eax
   1314d:	ff 15 80 e2 01 00    	call   *0x1e280
   13153:	31 c0                	xor    %eax,%eax
   13155:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13158:	8a 45 fa             	mov    0xfffffffa(%ebp),%al
   1315b:	59                   	pop    %ecx
   1315c:	c9                   	leave  
   1315d:	c2 08 00             	ret    $0x8

00013160 <_NdisCompleteDmaTransfer@24>:
   13160:	55                   	push   %ebp
   13161:	89 e5                	mov    %esp,%ebp
   13163:	5d                   	pop    %ebp
   13164:	c2 18 00             	ret    $0x18
   13167:	89 f6                	mov    %esi,%esi
   13169:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013170 <_NdisFlushBuffer@8>:
   13170:	55                   	push   %ebp
   13171:	89 e5                	mov    %esp,%ebp
   13173:	5d                   	pop    %ebp
   13174:	c2 08 00             	ret    $0x8
   13177:	89 f6                	mov    %esi,%esi
   13179:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013180 <_NdisGetCacheFillSize@0>:
   13180:	55                   	push   %ebp
   13181:	31 c0                	xor    %eax,%eax
   13183:	89 e5                	mov    %esp,%ebp
   13185:	5d                   	pop    %ebp
   13186:	c3                   	ret    
   13187:	89 f6                	mov    %esi,%esi
   13189:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013190 <_NdisImmediateReadPortUchar@12>:
   13190:	55                   	push   %ebp
   13191:	89 e5                	mov    %esp,%ebp
   13193:	83 ec 14             	sub    $0x14,%esp
   13196:	8b 45 0c             	mov    0xc(%ebp),%eax
   13199:	50                   	push   %eax
   1319a:	ff 15 e4 e1 01 00    	call   *0x1e1e4
   131a0:	8b 55 10             	mov    0x10(%ebp),%edx
   131a3:	88 02                	mov    %al,(%edx)
   131a5:	c9                   	leave  
   131a6:	c2 0c 00             	ret    $0xc
   131a9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000131b0 <_NdisImmediateReadPortUlong@12>:
   131b0:	55                   	push   %ebp
   131b1:	89 e5                	mov    %esp,%ebp
   131b3:	83 ec 14             	sub    $0x14,%esp
   131b6:	8b 45 0c             	mov    0xc(%ebp),%eax
   131b9:	50                   	push   %eax
   131ba:	ff 15 e8 e1 01 00    	call   *0x1e1e8
   131c0:	8b 55 10             	mov    0x10(%ebp),%edx
   131c3:	89 02                	mov    %eax,(%edx)
   131c5:	c9                   	leave  
   131c6:	c2 0c 00             	ret    $0xc
   131c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000131d0 <_NdisImmediateReadPortUshort@12>:
   131d0:	55                   	push   %ebp
   131d1:	89 e5                	mov    %esp,%ebp
   131d3:	83 ec 14             	sub    $0x14,%esp
   131d6:	8b 45 0c             	mov    0xc(%ebp),%eax
   131d9:	50                   	push   %eax
   131da:	ff 15 ec e1 01 00    	call   *0x1e1ec
   131e0:	8b 55 10             	mov    0x10(%ebp),%edx
   131e3:	66 89 02             	mov    %ax,(%edx)
   131e6:	c9                   	leave  
   131e7:	c2 0c 00             	ret    $0xc
   131ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000131f0 <_NdisImmediateWritePortUchar@12>:
   131f0:	55                   	push   %ebp
   131f1:	31 c0                	xor    %eax,%eax
   131f3:	89 e5                	mov    %esp,%ebp
   131f5:	83 ec 10             	sub    $0x10,%esp
   131f8:	8a 45 10             	mov    0x10(%ebp),%al
   131fb:	50                   	push   %eax
   131fc:	8b 45 0c             	mov    0xc(%ebp),%eax
   131ff:	50                   	push   %eax
   13200:	ff 15 f0 e1 01 00    	call   *0x1e1f0
   13206:	c9                   	leave  
   13207:	c2 0c 00             	ret    $0xc
   1320a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00013210 <_NdisImmediateWritePortUlong@12>:
   13210:	55                   	push   %ebp
   13211:	89 e5                	mov    %esp,%ebp
   13213:	83 ec 10             	sub    $0x10,%esp
   13216:	8b 45 10             	mov    0x10(%ebp),%eax
   13219:	50                   	push   %eax
   1321a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1321d:	50                   	push   %eax
   1321e:	ff 15 f4 e1 01 00    	call   *0x1e1f4
   13224:	c9                   	leave  
   13225:	c2 0c 00             	ret    $0xc
   13228:	90                   	nop    
   13229:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013230 <_NdisImmediateWritePortUshort@12>:
    IN  ULONG       Port,
    IN  USHORT      Data)
{
   13230:	55                   	push   %ebp
   13231:	89 e5                	mov    %esp,%ebp
   13233:	83 ec 10             	sub    $0x10,%esp
  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
  WRITE_PORT_USHORT((PUSHORT)Port, Data); // FIXME: What to do with WrapperConfigurationContext?
   13236:	8b 45 10             	mov    0x10(%ebp),%eax
   13239:	8b 55 0c             	mov    0xc(%ebp),%edx
   1323c:	25 ff ff 00 00       	and    $0xffff,%eax
   13241:	50                   	push   %eax
   13242:	52                   	push   %edx
   13243:	ff 15 f8 e1 01 00    	call   *0x1e1f8
   13249:	c9                   	leave  
   1324a:	c2 0c 00             	ret    $0xc
   1324d:	8d 76 00             	lea    0x0(%esi),%esi

00013250 <_NdisMapRegisterCallback@16>:
}


IO_ALLOCATION_ACTION STDCALL NdisMapRegisterCallback (
    IN PDEVICE_OBJECT  DeviceObject,
    IN PIRP            Irp,
    IN PVOID           MapRegisterBase,
    IN PVOID           Context)
/*
 * FUNCTION: Called back during reservation of map registers
 * ARGUMENTS:
 *     DeviceObject: Device object of the deivce setting up DMA
 *     Irp: Reserved; must be ignored
 *     MapRegisterBase: Map registers assigned for transfer
 *     Context: LOGICAL_ADAPTER object of the requesting miniport
 * NOTES:       
 *     - Called once per BaseMapRegister (see NdisMAllocateMapRegisters)
 *     - Called at IRQL = DISPATCH_LEVEL
 */
{
   13250:	55                   	push   %ebp
   13251:	89 e5                	mov    %esp,%ebp
   13253:	53                   	push   %ebx
   13254:	51                   	push   %ecx
   13255:	51                   	push   %ecx
   13256:	8b 4d 14             	mov    0x14(%ebp),%ecx
  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)Context;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  Adapter->NdisMiniportBlock.MapRegisters[Adapter->NdisMiniportBlock.CurrentMapRegister].MapRegister = MapRegisterBase;
   13259:	8b 55 10             	mov    0x10(%ebp),%edx
   1325c:	66 8b 81 7a 02 00 00 	mov    0x27a(%ecx),%ax
   13263:	8b 99 14 01 00 00    	mov    0x114(%ecx),%ebx
   13269:	25 ff ff 00 00       	and    $0xffff,%eax

  NDIS_DbgPrint(MAX_TRACE, ("setting event and leaving.\n"));

  KeSetEvent(&Adapter->DmaEvent, 0, FALSE);
   1326e:	81 c1 70 05 00 00    	add    $0x570,%ecx
   13274:	89 14 c3             	mov    %edx,(%ebx,%eax,8)
   13277:	6a 00                	push   $0x0
   13279:	6a 00                	push   $0x0
   1327b:	51                   	push   %ecx
   1327c:	ff 15 90 e2 01 00    	call   *0x1e290

  /* this is only the thing to do for busmaster NICs */
  return DeallocateObjectKeepRegisters;
}
   13282:	b8 03 00 00 00       	mov    $0x3,%eax
   13287:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1328a:	c9                   	leave  
   1328b:	c2 10 00             	ret    $0x10
   1328e:	89 f6                	mov    %esi,%esi

00013290 <_NdisMAllocateMapRegisters@20>:


/*
 * @implemented
 */
NDIS_STATUS
EXPORT
NdisMAllocateMapRegisters(
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  UINT        DmaChannel,
    IN  BOOLEAN     DmaSize,
    IN  ULONG       BaseMapRegistersNeeded,
    IN  ULONG       MaximumBufferSize)
/*
 * FUNCTION: Allocate map registers for use in DMA transfers
 * ARGUMENTS:
 *     MiniportAdapterHandle: Passed in to MiniportInitialize
 *     DmaChannel: DMA channel to use
 *     DmaSize: bit width of DMA transfers
 *     BaseMapRegistersNeeded: number of base map registers requested
 *     MaximumBufferSize: largest single buffer transferred
 * RETURNS:
 *     NDIS_STATUS_SUCCESS on success
 *     NDIS_STATUS_RESOURCES on failure
 * NOTES: 
 *     - the win2k ddk and the nt4 ddk have conflicting prototypes for this.
 *       I'm implementing the 2k one.
 *     - do not confuse a "base map register" with a "map register" - they
 *       are different.  Only NDIS seems to use the base concept.  The idea
 *       is that a miniport supplies the number of base map registers it will
 *       need, which is equal to the number of DMA send buffers it manages.
 *       NDIS then allocates a number of map registers to go with each base
 *       map register, so that a driver just has to send the base map register
 *       number during dma operations and NDIS can find the group of real
 *       map registers that represent the transfer.
 *     - Because of the above sillyness, you can only specify a few base map
 *       registers at most.  a 1514-byte packet is two map registers at 4k
 *       page size.  
 *     - NDIS limits the total number of allocated map registers to 64,
 *       which (in the case of the above example) limits the number of base
 *       map registers to 32.
 */
{
   13290:	55                   	push   %ebp
  DEVICE_DESCRIPTION Description;
  PDMA_ADAPTER       AdapterObject = 0;
  UINT               MapRegistersPerBaseRegister = 0;
  ULONG              AvailableMapRegisters;
  NTSTATUS           NtStatus;
  PLOGICAL_ADAPTER   Adapter = 0;
  PDEVICE_OBJECT     DeviceObject = 0;
  KIRQL              OldIrql;

  NDIS_DbgPrint(MAX_TRACE, ("called: Handle 0x%x, DmaChannel 0x%x, DmaSize 0x%x, BaseMapRegsNeeded: 0x%x, MaxBuffer: 0x%x.\n",
                            MiniportAdapterHandle, DmaChannel, DmaSize, BaseMapRegistersNeeded, MaximumBufferSize));

  memset(&Description,0,sizeof(Description));
   13291:	31 c0                	xor    %eax,%eax
   13293:	89 e5                	mov    %esp,%ebp
   13295:	b9 0a 00 00 00       	mov    $0xa,%ecx
   1329a:	fc                   	cld    
   1329b:	57                   	push   %edi
   1329c:	8d 7d b8             	lea    0xffffffb8(%ebp),%edi
   1329f:	56                   	push   %esi
   132a0:	53                   	push   %ebx
   132a1:	83 ec 5c             	sub    $0x5c,%esp
   132a4:	c7 45 b0 00 00 00 00 	movl   $0x0,0xffffffb0(%ebp)
   132ab:	f3 ab                	repz stos %eax,%es:(%edi)

  Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;

  ASSERT(Adapter);

  /* only bus masters may call this routine */
  ASSERT(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER);
  if(!(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER))
   132ad:	8b 4d 08             	mov    0x8(%ebp),%ecx
    return NDIS_STATUS_SUCCESS;
   132b0:	31 d2                	xor    %edx,%edx
   132b2:	8b 5d 10             	mov    0x10(%ebp),%ebx
   132b5:	8b 75 14             	mov    0x14(%ebp),%esi
   132b8:	f6 41 3c 08          	testb  $0x8,0x3c(%ecx)
   132bc:	75 12                	jne    132d0 <_NdisMAllocateMapRegisters@20+0x40>

  DeviceObject = Adapter->NdisMiniportBlock.DeviceObject;

  KeInitializeEvent(&Adapter->DmaEvent, NotificationEvent, FALSE);
  KeInitializeSpinLock(&Adapter->DmaLock);

  /*
  * map registers correlate to physical pages.  ndis documents a
  * maximum of 64 map registers that it will return.  
  * at 4k pages, a 1514-byte buffer can span not more than 2 pages.
  *
  * the number of registers required for a given physical mapping
  * is (first register + last register + one per page size), 
  * given that physical mapping is > 2.
  */

  /* unhandled corner case: {1,2}-byte max buffer size */
  ASSERT(MaximumBufferSize > 2);
  MapRegistersPerBaseRegister = ((MaximumBufferSize-2) / (2*PAGE_SIZE)) + 2;

  Description.Version = DEVICE_DESCRIPTION_VERSION;
  Description.Master = TRUE;                         /* implied by calling this function */
  Description.ScatterGather = TRUE;                  /* XXX UNTRUE: All BM DMA are S/G (ms seems to do this) */
  Description.Dma32BitAddresses = DmaSize;
  Description.BusNumber = Adapter->NdisMiniportBlock.BusNumber;
  Description.InterfaceType = Adapter->NdisMiniportBlock.BusType;
  Description.DmaChannel = DmaChannel;
  Description.MaximumLength = MaximumBufferSize;

  if(Adapter->NdisMiniportBlock.AdapterType == Isa)
    {
      /* system dma */
      if(DmaChannel < 4)
        Description.DmaWidth = Width8Bits;
      else
        Description.DmaWidth = Width16Bits;

      Description.DmaSpeed = Compatible;
    }
  else if(Adapter->NdisMiniportBlock.AdapterType == PCIBus)
    {
      if(DmaSize == NDIS_DMA_64BITS)
        Description.Dma64BitAddresses = TRUE;
      else
        Description.Dma32BitAddresses = TRUE;
    }
  else
    {
      NDIS_DbgPrint(MIN_TRACE, ("Unsupported bus type\n"));
      ASSERT(0);
    }

  AdapterObject = IoGetDmaAdapter(
    Adapter->NdisMiniportBlock.PhysicalDeviceObject,
    &Description, &AvailableMapRegisters);

  if(!AdapterObject)
    {
      NDIS_DbgPrint(MIN_TRACE, ("Unable to allocate an adapter object; bailing out\n"));
      return NDIS_STATUS_RESOURCES;
    }

  Adapter->NdisMiniportBlock.SystemAdapterObject = AdapterObject;

  if(AvailableMapRegisters < MapRegistersPerBaseRegister)
    {
      NDIS_DbgPrint(MIN_TRACE, ("Didn't get enough map registers from hal - requested 0x%x, got 0x%x\n", 
          MapRegistersPerBaseRegister, AvailableMapRegisters));

      return NDIS_STATUS_RESOURCES;
    }

  /* allocate & zero space in the miniport block for the registers */
  Adapter->NdisMiniportBlock.MapRegisters = ExAllocatePool(NonPagedPool, BaseMapRegistersNeeded * sizeof(MAP_REGISTER_ENTRY));
  if(!Adapter->NdisMiniportBlock.MapRegisters)
    {
      NDIS_DbgPrint(MIN_TRACE, ("insufficient resources.\n"));
      return NDIS_STATUS_RESOURCES;
    }

  memset(Adapter->NdisMiniportBlock.MapRegisters, 0, BaseMapRegistersNeeded * sizeof(MAP_REGISTER_ENTRY));
  Adapter->NdisMiniportBlock.BaseMapRegistersNeeded = BaseMapRegistersNeeded;

  while(BaseMapRegistersNeeded)
    {
      NDIS_DbgPrint(MAX_TRACE, ("iterating, basemapregistersneeded = %d\n", BaseMapRegistersNeeded));

      BaseMapRegistersNeeded--;
      Adapter->NdisMiniportBlock.CurrentMapRegister = BaseMapRegistersNeeded;
      KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
        {
          NtStatus = AdapterObject->DmaOperations->AllocateAdapterChannel(
              AdapterObject, DeviceObject, MapRegistersPerBaseRegister,
              NdisMapRegisterCallback, Adapter);
        }
      KeLowerIrql(OldIrql);

      if(!NT_SUCCESS(NtStatus))
        {
          NDIS_DbgPrint(MIN_TRACE, ("IoAllocateAdapterChannel failed: 0x%x\n", NtStatus));
          return NDIS_STATUS_RESOURCES;
        }

      NDIS_DbgPrint(MAX_TRACE, ("waiting on event\n"));

      NtStatus = KeWaitForSingleObject(&Adapter->DmaEvent, Executive, KernelMode, FALSE, 0);

      if(!NT_SUCCESS(NtStatus))
        {
          NDIS_DbgPrint(MIN_TRACE, ("KeWaitForSingleObject failed: 0x%x\n", NtStatus));
          return NDIS_STATUS_RESOURCES;
        }

      NDIS_DbgPrint(MAX_TRACE, ("resetting event\n"));

      KeResetEvent(&Adapter->DmaEvent);
    }

  NDIS_DbgPrint(MAX_TRACE, ("returning success\n"));
  return NDIS_STATUS_SUCCESS;
}
   132be:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   132c1:	89 d0                	mov    %edx,%eax
   132c3:	5b                   	pop    %ebx
   132c4:	5e                   	pop    %esi
   132c5:	5f                   	pop    %edi
   132c6:	5d                   	pop    %ebp
   132c7:	c2 14 00             	ret    $0x14
   132ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   132d0:	8b 81 08 01 00 00    	mov    0x108(%ecx),%eax
   132d6:	81 c1 70 05 00 00    	add    $0x570,%ecx
   132dc:	89 45 a8             	mov    %eax,0xffffffa8(%ebp)
   132df:	50                   	push   %eax
   132e0:	6a 00                	push   $0x0
   132e2:	6a 00                	push   $0x0
   132e4:	89 4d a4             	mov    %ecx,0xffffffa4(%ebp)
   132e7:	51                   	push   %ecx
   132e8:	ff 15 74 e2 01 00    	call   *0x1e274
   132ee:	50                   	push   %eax
   132ef:	50                   	push   %eax
   132f0:	8b 45 08             	mov    0x8(%ebp),%eax
   132f3:	05 80 05 00 00       	add    $0x580,%eax
   132f8:	50                   	push   %eax
   132f9:	ff 15 78 e2 01 00    	call   *0x1e278
   132ff:	8b 45 18             	mov    0x18(%ebp),%eax
   13302:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13305:	83 e8 02             	sub    $0x2,%eax
   13308:	c6 45 bc 01          	movb   $0x1,0xffffffbc(%ebp)
   1330c:	c1 e8 0d             	shr    $0xd,%eax
   1330f:	c6 45 bd 01          	movb   $0x1,0xffffffbd(%ebp)
   13313:	83 c0 02             	add    $0x2,%eax
   13316:	c7 45 b8 00 00 00 00 	movl   $0x0,0xffffffb8(%ebp)
   1331d:	89 45 ac             	mov    %eax,0xffffffac(%ebp)
   13320:	8b 81 fc 00 00 00    	mov    0xfc(%ecx),%eax
   13326:	89 45 c4             	mov    %eax,0xffffffc4(%ebp)
   13329:	8b 81 00 01 00 00    	mov    0x100(%ecx),%eax
   1332f:	8b 4d 18             	mov    0x18(%ebp),%ecx
   13332:	89 45 cc             	mov    %eax,0xffffffcc(%ebp)
   13335:	89 4d d8             	mov    %ecx,0xffffffd8(%ebp)
   13338:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1333b:	8b 45 0c             	mov    0xc(%ebp),%eax
   1333e:	83 c4 0c             	add    $0xc,%esp
   13341:	89 45 c8             	mov    %eax,0xffffffc8(%ebp)
   13344:	8b 81 04 01 00 00    	mov    0x104(%ecx),%eax
   1334a:	83 f8 01             	cmp    $0x1,%eax
   1334d:	0f 84 24 01 00 00    	je     13477 <_NdisMAllocateMapRegisters@20+0x1e7>
   13353:	83 f8 05             	cmp    $0x5,%eax
   13356:	0f 84 0d 01 00 00    	je     13469 <_NdisMAllocateMapRegisters@20+0x1d9>
   1335c:	88 5d c0             	mov    %bl,0xffffffc0(%ebp)
   1335f:	50                   	push   %eax
   13360:	8d 45 b4             	lea    0xffffffb4(%ebp),%eax
   13363:	50                   	push   %eax
   13364:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   13367:	50                   	push   %eax
   13368:	8b 55 08             	mov    0x8(%ebp),%edx
   1336b:	8b ba 0c 01 00 00    	mov    0x10c(%edx),%edi
   13371:	57                   	push   %edi
   13372:	ff 15 58 e2 01 00    	call   *0x1e258
   13378:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   1337d:	85 c0                	test   %eax,%eax
   1337f:	89 45 b0             	mov    %eax,0xffffffb0(%ebp)
   13382:	5b                   	pop    %ebx
   13383:	0f 84 35 ff ff ff    	je     132be <_NdisMAllocateMapRegisters@20+0x2e>
   13389:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1338c:	89 81 f0 03 00 00    	mov    %eax,0x3f0(%ecx)
   13392:	8b 45 ac             	mov    0xffffffac(%ebp),%eax
   13395:	39 45 b4             	cmp    %eax,0xffffffb4(%ebp)
   13398:	0f 82 20 ff ff ff    	jb     132be <_NdisMAllocateMapRegisters@20+0x2e>
   1339e:	8d 1c f5 00 00 00 00 	lea    0x0(,%esi,8),%ebx
   133a5:	51                   	push   %ecx
   133a6:	51                   	push   %ecx
   133a7:	53                   	push   %ebx
   133a8:	6a 00                	push   $0x0
   133aa:	ff 15 24 e2 01 00    	call   *0x1e224
   133b0:	8b 55 08             	mov    0x8(%ebp),%edx
   133b3:	85 c0                	test   %eax,%eax
   133b5:	89 82 14 01 00 00    	mov    %eax,0x114(%edx)
   133bb:	5f                   	pop    %edi
   133bc:	5a                   	pop    %edx
   133bd:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   133c2:	0f 84 f6 fe ff ff    	je     132be <_NdisMAllocateMapRegisters@20+0x2e>
   133c8:	fc                   	cld    
   133c9:	89 d9                	mov    %ebx,%ecx
   133cb:	89 c7                	mov    %eax,%edi
   133cd:	c1 e9 02             	shr    $0x2,%ecx
   133d0:	31 c0                	xor    %eax,%eax
   133d2:	f3 ab                	repz stos %eax,%es:(%edi)
   133d4:	8b 4d 08             	mov    0x8(%ebp),%ecx
   133d7:	85 f6                	test   %esi,%esi
   133d9:	66 89 b1 80 02 00 00 	mov    %si,0x280(%ecx)
   133e0:	74 79                	je     1345b <_NdisMAllocateMapRegisters@20+0x1cb>
   133e2:	8b 45 08             	mov    0x8(%ebp),%eax
   133e5:	4e                   	dec    %esi
   133e6:	b9 02 00 00 00       	mov    $0x2,%ecx
   133eb:	66 89 b0 7a 02 00 00 	mov    %si,0x27a(%eax)
   133f2:	ff 15 c8 e1 01 00    	call   *0x1e1c8
   133f8:	8b 55 b0             	mov    0xffffffb0(%ebp),%edx
   133fb:	83 ec 0c             	sub    $0xc,%esp
   133fe:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13401:	88 c3                	mov    %al,%bl
   13403:	8b 42 04             	mov    0x4(%edx),%eax
   13406:	51                   	push   %ecx
   13407:	68 50 32 01 00       	push   $0x13250
   1340c:	8b 7d ac             	mov    0xffffffac(%ebp),%edi
   1340f:	57                   	push   %edi
   13410:	8b 4d a8             	mov    0xffffffa8(%ebp),%ecx
   13413:	51                   	push   %ecx
   13414:	52                   	push   %edx
   13415:	ff 50 10             	call   *0x10(%eax)
   13418:	31 c9                	xor    %ecx,%ecx
   1341a:	89 c7                	mov    %eax,%edi
   1341c:	83 c4 0c             	add    $0xc,%esp
   1341f:	88 d9                	mov    %bl,%cl
   13421:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   13427:	85 ff                	test   %edi,%edi
   13429:	78 77                	js     134a2 <_NdisMAllocateMapRegisters@20+0x212>
   1342b:	83 ec 0c             	sub    $0xc,%esp
   1342e:	6a 00                	push   $0x0
   13430:	6a 00                	push   $0x0
   13432:	6a 00                	push   $0x0
   13434:	6a 00                	push   $0x0
   13436:	8b 7d a4             	mov    0xffffffa4(%ebp),%edi
   13439:	57                   	push   %edi
   1343a:	ff 15 a0 e2 01 00    	call   *0x1e2a0
   13440:	83 c4 0c             	add    $0xc,%esp
   13443:	85 c0                	test   %eax,%eax
   13445:	78 5b                	js     134a2 <_NdisMAllocateMapRegisters@20+0x212>
   13447:	83 ec 0c             	sub    $0xc,%esp
   1344a:	8b 5d a4             	mov    0xffffffa4(%ebp),%ebx
   1344d:	53                   	push   %ebx
   1344e:	ff 15 8c e2 01 00    	call   *0x1e28c
   13454:	83 c4 0c             	add    $0xc,%esp
   13457:	85 f6                	test   %esi,%esi
   13459:	75 87                	jne    133e2 <_NdisMAllocateMapRegisters@20+0x152>
   1345b:	31 d2                	xor    %edx,%edx
   1345d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13460:	89 d0                	mov    %edx,%eax
   13462:	5b                   	pop    %ebx
   13463:	5e                   	pop    %esi
   13464:	5f                   	pop    %edi
   13465:	5d                   	pop    %ebp
   13466:	c2 14 00             	ret    $0x14
   13469:	80 fb 02             	cmp    $0x2,%bl
   1346c:	74 27                	je     13495 <_NdisMAllocateMapRegisters@20+0x205>
   1346e:	c6 45 c0 01          	movb   $0x1,0xffffffc0(%ebp)
   13472:	e9 e8 fe ff ff       	jmp    1335f <_NdisMAllocateMapRegisters@20+0xcf>
   13477:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
   1347b:	0f 97 c0             	seta   %al
   1347e:	25 ff 00 00 00       	and    $0xff,%eax
   13483:	88 5d c0             	mov    %bl,0xffffffc0(%ebp)
   13486:	89 45 d0             	mov    %eax,0xffffffd0(%ebp)
   13489:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
   13490:	e9 ca fe ff ff       	jmp    1335f <_NdisMAllocateMapRegisters@20+0xcf>
   13495:	c6 45 c0 02          	movb   $0x2,0xffffffc0(%ebp)
   13499:	c6 45 c3 01          	movb   $0x1,0xffffffc3(%ebp)
   1349d:	e9 bd fe ff ff       	jmp    1335f <_NdisMAllocateMapRegisters@20+0xcf>
   134a2:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   134a7:	e9 12 fe ff ff       	jmp    132be <_NdisMAllocateMapRegisters@20+0x2e>
   134ac:	8d 74 26 00          	lea    0x0(%esi),%esi

000134b0 <_NdisMStartBufferPhysicalMapping@24>:


/*
 * @implemented
 */
VOID
EXPORT
NdisMStartBufferPhysicalMapping(
    IN  NDIS_HANDLE                 MiniportAdapterHandle,
    IN  PNDIS_BUFFER                Buffer,
    IN  ULONG                       PhysicalMapRegister,
    IN  BOOLEAN                     WriteToDevice,
    OUT PNDIS_PHYSICAL_ADDRESS_UNIT	PhysicalAddressArray,
    OUT PUINT                       ArraySize)
/*
 * FUNCTION: Sets up map registers for a bus-master DMA transfer
 * ARGUMENTS:
 *     MiniportAdapterHandle: handle originally input to MiniportInitialize
 *     Buffer: data to be transferred 
 *     PhysicalMapRegister: specifies the map register to set up
 *     WriteToDevice: if true, data is being written to the device; else it is being read
 *     PhysicalAddressArray: list of mapped ranges suitable for DMA with the device
 *     ArraySize: number of elements in PhysicalAddressArray
 * NOTES:
 *     - Must be called at IRQL <= DISPATCH_LEVEL
 *     - The basic idea:  call IoMapTransfer() in a loop as many times as it takes
 *       in order to map all of the virtual memory to physical memoroy readable
 *       by the device
 *     - The caller supplies storage for the physical address array.  
 */
{
   134b0:	55                   	push   %ebp
   134b1:	89 e5                	mov    %esp,%ebp
   134b3:	57                   	push   %edi
   134b4:	56                   	push   %esi
   134b5:	53                   	push   %ebx
   134b6:	83 ec 2c             	sub    $0x2c,%esp
  PLOGICAL_ADAPTER Adapter = 0;
  VOID *CurrentVa;
  ULONG TotalLength;
  PHYSICAL_ADDRESS ReturnedAddress;
  UINT LoopCount =  0;
   134b9:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)

  ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
  ASSERT(MiniportAdapterHandle && Buffer && PhysicalAddressArray && ArraySize);

  Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
  CurrentVa = MmGetMdlVirtualAddress(Buffer);
   134c0:	8b 55 0c             	mov    0xc(%ebp),%edx
   134c3:	8a 45 14             	mov    0x14(%ebp),%al
   134c6:	88 45 eb             	mov    %al,0xffffffeb(%ebp)
   134c9:	8b 72 18             	mov    0x18(%edx),%esi
   134cc:	8b 42 10             	mov    0x10(%edx),%eax
  TotalLength = MmGetMdlByteCount(Buffer);
   134cf:	8b 5a 14             	mov    0x14(%edx),%ebx
   134d2:	01 c6                	add    %eax,%esi

  while(TotalLength)
    {
      ULONG Length = TotalLength;

      ReturnedAddress = Adapter->NdisMiniportBlock.SystemAdapterObject->DmaOperations->MapTransfer(
          Adapter->NdisMiniportBlock.SystemAdapterObject, Buffer, 
          Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].MapRegister, 
          CurrentVa, &Length, WriteToDevice);

      Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].WriteToDevice = WriteToDevice;

      PhysicalAddressArray[LoopCount].PhysicalAddress = ReturnedAddress;
      PhysicalAddressArray[LoopCount].Length = Length;

      TotalLength -= Length;
      CurrentVa += Length;

      LoopCount++;
   134d4:	85 db                	test   %ebx,%ebx
   134d6:	eb 7d                	jmp    13555 <_NdisMStartBufferPhysicalMapping@24+0xa5>
   134d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
   134db:	50                   	push   %eax
   134dc:	50                   	push   %eax
   134dd:	8b 91 f0 03 00 00    	mov    0x3f0(%ecx),%edx
   134e3:	31 c0                	xor    %eax,%eax
   134e5:	8a 45 eb             	mov    0xffffffeb(%ebp),%al
   134e8:	89 5d ec             	mov    %ebx,0xffffffec(%ebp)
   134eb:	8b 7a 04             	mov    0x4(%edx),%edi
   134ee:	50                   	push   %eax
   134ef:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   134f2:	89 7d d4             	mov    %edi,0xffffffd4(%ebp)
   134f5:	50                   	push   %eax
   134f6:	56                   	push   %esi
   134f7:	8b 89 14 01 00 00    	mov    0x114(%ecx),%ecx
   134fd:	8b 7d 10             	mov    0x10(%ebp),%edi
   13500:	8b 04 f9             	mov    (%ecx,%edi,8),%eax
   13503:	8b 4d d4             	mov    0xffffffd4(%ebp),%ecx
   13506:	50                   	push   %eax
   13507:	8b 45 0c             	mov    0xc(%ebp),%eax
   1350a:	50                   	push   %eax
   1350b:	52                   	push   %edx
   1350c:	ff 51 20             	call   *0x20(%ecx)
   1350f:	8b 7d 08             	mov    0x8(%ebp),%edi
   13512:	8b 8f 14 01 00 00    	mov    0x114(%edi),%ecx
   13518:	89 55 e4             	mov    %edx,0xffffffe4(%ebp)
   1351b:	8b 55 10             	mov    0x10(%ebp),%edx
   1351e:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   13521:	8a 45 eb             	mov    0xffffffeb(%ebp),%al
   13524:	88 44 d1 04          	mov    %al,0x4(%ecx,%edx,8)
   13528:	8b 4d cc             	mov    0xffffffcc(%ebp),%ecx
   1352b:	8b 7d 18             	mov    0x18(%ebp),%edi
   1352e:	c1 e1 04             	shl    $0x4,%ecx
   13531:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   13534:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   13537:	89 4d d4             	mov    %ecx,0xffffffd4(%ebp)
   1353a:	89 04 39             	mov    %eax,(%ecx,%edi,1)
   1353d:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13540:	89 54 39 04          	mov    %edx,0x4(%ecx,%edi,1)
   13544:	89 44 39 08          	mov    %eax,0x8(%ecx,%edi,1)
   13548:	8b 7d cc             	mov    0xffffffcc(%ebp),%edi
   1354b:	01 c6                	add    %eax,%esi
   1354d:	47                   	inc    %edi
   1354e:	5a                   	pop    %edx
   1354f:	89 7d cc             	mov    %edi,0xffffffcc(%ebp)
   13552:	59                   	pop    %ecx
   13553:	29 c3                	sub    %eax,%ebx
   13555:	75 81                	jne    134d8 <_NdisMStartBufferPhysicalMapping@24+0x28>
    }

  *ArraySize = LoopCount;
   13557:	8b 45 1c             	mov    0x1c(%ebp),%eax
   1355a:	8b 55 cc             	mov    0xffffffcc(%ebp),%edx
   1355d:	89 10                	mov    %edx,(%eax)
   1355f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13562:	5b                   	pop    %ebx
   13563:	5e                   	pop    %esi
   13564:	5f                   	pop    %edi
   13565:	5d                   	pop    %ebp
   13566:	c2 18 00             	ret    $0x18
   13569:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013570 <_NdisMCompleteBufferPhysicalMapping@12>:
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMCompleteBufferPhysicalMapping(
    IN  NDIS_HANDLE     MiniportAdapterHandle,
    IN  PNDIS_BUFFER    Buffer,
    IN  ULONG           PhysicalMapRegister)
/*
 * FUNCTION: Complete dma action started by NdisMStartBufferPhysicalMapping
 * ARGUMENTS:
 *     - MiniportAdapterHandle: handle originally input to MiniportInitialize
 *     - Buffer: NDIS_BUFFER to complete the mapping on
 *     - PhyscialMapRegister: the chosen map register
 * NOTES:
 *     - May be called at IRQL <= DISPATCH_LEVEL
 */
{
   13570:	55                   	push   %ebp
   13571:	89 e5                	mov    %esp,%ebp
   13573:	57                   	push   %edi
   13574:	56                   	push   %esi
   13575:	53                   	push   %ebx
   13576:	83 ec 14             	sub    $0x14,%esp
   13579:	8b 45 08             	mov    0x8(%ebp),%eax
   1357c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
  PLOGICAL_ADAPTER Adapter = 0;
  VOID *CurrentVa;
  ULONG Length;

  ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
  ASSERT(MiniportAdapterHandle && Buffer);

  Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
  CurrentVa = MmGetMdlVirtualAddress(Buffer);
  Length = MmGetMdlByteCount(Buffer);

  Adapter->NdisMiniportBlock.SystemAdapterObject->DmaOperations->FlushAdapterBuffers(
   1357f:	8b 7d 10             	mov    0x10(%ebp),%edi
   13582:	8b b0 f0 03 00 00    	mov    0x3f0(%eax),%esi
   13588:	8b 59 10             	mov    0x10(%ecx),%ebx
   1358b:	8b 51 18             	mov    0x18(%ecx),%edx
   1358e:	01 da                	add    %ebx,%edx
   13590:	8b 5e 04             	mov    0x4(%esi),%ebx
   13593:	89 5d ec             	mov    %ebx,0xffffffec(%ebp)
   13596:	8b 98 14 01 00 00    	mov    0x114(%eax),%ebx
   1359c:	31 c0                	xor    %eax,%eax
   1359e:	8a 44 fb 04          	mov    0x4(%ebx,%edi,8),%al
   135a2:	50                   	push   %eax
   135a3:	8b 41 14             	mov    0x14(%ecx),%eax
   135a6:	50                   	push   %eax
   135a7:	52                   	push   %edx
   135a8:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   135ab:	8b 04 fb             	mov    (%ebx,%edi,8),%eax
   135ae:	50                   	push   %eax
   135af:	51                   	push   %ecx
   135b0:	56                   	push   %esi
   135b1:	ff 52 14             	call   *0x14(%edx)
   135b4:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   135b7:	5b                   	pop    %ebx
   135b8:	5e                   	pop    %esi
   135b9:	5f                   	pop    %edi
   135ba:	5d                   	pop    %ebp
   135bb:	c2 0c 00             	ret    $0xc
   135be:	89 f6                	mov    %esi,%esi

000135c0 <_NdisMCompleteDmaTransfer@24>:
      Adapter->NdisMiniportBlock.SystemAdapterObject, Buffer, 
      Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].MapRegister,
      CurrentVa, Length, 
      Adapter->NdisMiniportBlock.MapRegisters[PhysicalMapRegister].WriteToDevice);
}



/*
 * @unimplemented
 */
VOID
EXPORT
NdisMCompleteDmaTransfer(
    OUT PNDIS_STATUS    Status,
    IN  PNDIS_HANDLE    MiniportDmaHandle,
    IN  PNDIS_BUFFER    Buffer,
    IN  ULONG           Offset,
    IN  ULONG           Length,
    IN  BOOLEAN         WriteToDevice)
{
   135c0:	55                   	push   %ebp
   135c1:	89 e5                	mov    %esp,%ebp
   135c3:	5d                   	pop    %ebp
   135c4:	c2 18 00             	ret    $0x18
   135c7:	89 f6                	mov    %esi,%esi
   135c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000135d0 <_NdisMDeregisterDmaChannel@4>:
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisMDeregisterDmaChannel(
    IN  PNDIS_HANDLE    MiniportDmaHandle)
{
   135d0:	55                   	push   %ebp
   135d1:	89 e5                	mov    %esp,%ebp
   135d3:	5d                   	pop    %ebp
   135d4:	c2 04 00             	ret    $0x4
   135d7:	89 f6                	mov    %esi,%esi
   135d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000135e0 <_NdisMDeregisterInterrupt@4>:
    UNIMPLEMENTED
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMDeregisterInterrupt(
    IN  PNDIS_MINIPORT_INTERRUPT    Interrupt)
/*
 * FUNCTION: Releases an interrupt vector
 * ARGUMENTS:
 *     Interrupt = Pointer to interrupt object
 */
{
   135e0:	55                   	push   %ebp
   135e1:	89 e5                	mov    %esp,%ebp
    NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
    IoDisconnectInterrupt(Interrupt->InterruptObject);
   135e3:	8b 45 08             	mov    0x8(%ebp),%eax
   135e6:	8b 00                	mov    (%eax),%eax
   135e8:	89 45 08             	mov    %eax,0x8(%ebp)
   135eb:	c9                   	leave  
   135ec:	ff 25 50 e2 01 00    	jmp    *0x1e250
   135f2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   135f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013600 <_NdisMDeregisterIoPortRange@16>:
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisMDeregisterIoPortRange(
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  UINT        InitialPort,
    IN  UINT        NumberOfPorts,
    IN  PVOID       PortOffset)
/*
 * FUNCTION: Releases a register mapping to I/O ports
 * ARGUMENTS:
 *     MiniportAdapterHandle = Specifies handle input to MiniportInitialize
 *     InitialPort           = Bus-relative base port address of a range to be mapped
 *     NumberOfPorts         = Specifies number of ports to be mapped
 *     PortOffset            = Pointer to mapped base port address
 */
{
   13600:	55                   	push   %ebp
   13601:	89 e5                	mov    %esp,%ebp
   13603:	5d                   	pop    %ebp
   13604:	c2 10 00             	ret    $0x10
   13607:	89 f6                	mov    %esi,%esi
   13609:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013610 <_NdisMFreeMapRegisters@4>:
  NDIS_DbgPrint(MAX_TRACE, ("called - IMPLEMENT ME.\n"));
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMFreeMapRegisters(
    IN  NDIS_HANDLE MiniportAdapterHandle)
/*
 * FUNCTION: Free previously allocated map registers
 * ARGUMENTS:
 *     MiniportAdapterHandle:  Handle originally passed in to MiniportInitialize
 * NOTES:
 */
{
   13610:	55                   	push   %ebp
   13611:	89 e5                	mov    %esp,%ebp
   13613:	57                   	push   %edi
   13614:	56                   	push   %esi
   13615:	53                   	push   %ebx
   13616:	83 ec 0c             	sub    $0xc,%esp
   13619:	8b 5d 08             	mov    0x8(%ebp),%ebx
  KIRQL            OldIrql;
  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)MiniportAdapterHandle;
  PDMA_ADAPTER     AdapterObject;
  UINT             MapRegistersPerBaseRegister;
  UINT             i;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  ASSERT(Adapter);

  /* only bus masters may call this routine */
  ASSERT(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER);
  if(!(Adapter->NdisMiniportBlock.Flags & NDIS_ATTRIBUTE_BUS_MASTER) ||
   1361c:	f6 43 3c 08          	testb  $0x8,0x3c(%ebx)
   13620:	74 0a                	je     1362c <_NdisMFreeMapRegisters@4+0x1c>
   13622:	8b b3 f0 03 00 00    	mov    0x3f0(%ebx),%esi
   13628:	85 f6                	test   %esi,%esi
   1362a:	75 0a                	jne    13636 <_NdisMFreeMapRegisters@4+0x26>
     Adapter->NdisMiniportBlock.SystemAdapterObject == NULL)
    return;

  MapRegistersPerBaseRegister = ((Adapter->NdisMiniportBlock.MaximumPhysicalMapping - 2) / PAGE_SIZE) + 2;

  AdapterObject = Adapter->NdisMiniportBlock.SystemAdapterObject;

  KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
    {
      for(i = 0; i < Adapter->NdisMiniportBlock.BaseMapRegistersNeeded; i++)
        {
          AdapterObject->DmaOperations->FreeMapRegisters(
              Adapter->NdisMiniportBlock.SystemAdapterObject, 
              Adapter->NdisMiniportBlock.MapRegisters[i].MapRegister,
              MapRegistersPerBaseRegister);
        }
    }
 KeLowerIrql(OldIrql);

 AdapterObject->DmaOperations->PutDmaAdapter(AdapterObject);
 Adapter->NdisMiniportBlock.SystemAdapterObject = NULL;

 ExFreePool(Adapter->NdisMiniportBlock.MapRegisters);
}
   1362c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1362f:	5b                   	pop    %ebx
   13630:	5e                   	pop    %esi
   13631:	5f                   	pop    %edi
   13632:	5d                   	pop    %ebp
   13633:	c2 04 00             	ret    $0x4
   13636:	8b 83 84 02 00 00    	mov    0x284(%ebx),%eax
   1363c:	b9 02 00 00 00       	mov    $0x2,%ecx
   13641:	83 e8 02             	sub    $0x2,%eax
   13644:	31 ff                	xor    %edi,%edi
   13646:	c1 e8 0c             	shr    $0xc,%eax
   13649:	83 c0 02             	add    $0x2,%eax
   1364c:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   1364f:	ff 15 c8 e1 01 00    	call   *0x1e1c8
   13655:	66 83 bb 80 02 00 00 	cmpw   $0x0,0x280(%ebx)
   1365c:	00 
   1365d:	88 45 ef             	mov    %al,0xffffffef(%ebp)
   13660:	75 3e                	jne    136a0 <_NdisMFreeMapRegisters@4+0x90>
   13662:	31 c9                	xor    %ecx,%ecx
   13664:	8a 4d ef             	mov    0xffffffef(%ebp),%cl
   13667:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   1366d:	8b 46 04             	mov    0x4(%esi),%eax
   13670:	83 ec 0c             	sub    $0xc,%esp
   13673:	56                   	push   %esi
   13674:	ff 50 04             	call   *0x4(%eax)
   13677:	8b 83 14 01 00 00    	mov    0x114(%ebx),%eax
   1367d:	c7 83 f0 03 00 00 00 	movl   $0x0,0x3f0(%ebx)
   13684:	00 00 00 
   13687:	83 c4 0c             	add    $0xc,%esp
   1368a:	89 45 08             	mov    %eax,0x8(%ebp)
   1368d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13690:	5b                   	pop    %ebx
   13691:	5e                   	pop    %esi
   13692:	5f                   	pop    %edi
   13693:	5d                   	pop    %ebp
   13694:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   1369a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   136a0:	50                   	push   %eax
   136a1:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   136a4:	8b 56 04             	mov    0x4(%esi),%edx
   136a7:	50                   	push   %eax
   136a8:	8b 83 14 01 00 00    	mov    0x114(%ebx),%eax
   136ae:	8b 04 f8             	mov    (%eax,%edi,8),%eax
   136b1:	47                   	inc    %edi
   136b2:	50                   	push   %eax
   136b3:	8b 83 f0 03 00 00    	mov    0x3f0(%ebx),%eax
   136b9:	50                   	push   %eax
   136ba:	ff 52 1c             	call   *0x1c(%edx)
   136bd:	58                   	pop    %eax
   136be:	66 8b 83 80 02 00 00 	mov    0x280(%ebx),%ax
   136c5:	25 ff ff 00 00       	and    $0xffff,%eax
   136ca:	39 f8                	cmp    %edi,%eax
   136cc:	77 d2                	ja     136a0 <_NdisMFreeMapRegisters@4+0x90>
   136ce:	eb 92                	jmp    13662 <_NdisMFreeMapRegisters@4+0x52>

000136d0 <_NdisMMapIoSpace@20>:


/*
 * @implemented
 */
NDIS_STATUS
EXPORT
NdisMMapIoSpace(
    OUT PVOID                   *VirtualAddress,
    IN  NDIS_HANDLE             MiniportAdapterHandle,
    IN  NDIS_PHYSICAL_ADDRESS   PhysicalAddress,
    IN  UINT                    Length)
/*
 * FUNCTION: Maps a bus-relative address to a system-wide virtual address
 * ARGUMENTS:
 *     VirtualAddress: receives virtual address of mapping
 *     MiniportAdapterHandle: Handle originally input to MiniportInitialize
 *     PhysicalAddress: bus-relative address to map
 *     Length: Number of bytes to map
 * RETURNS:
 *     NDIS_STATUS_SUCCESS: the operation completed successfully
 *     NDIS_STATUS_RESOURCE_CONFLICT: the physical address range is already claimed
 *     NDIS_STATUS_RESOURCES: insufficient resources to complete the mapping
 *     NDIS_STATUS_FAILURE: a general failure has occured
 * NOTES:
 *     - Must be called at IRQL = PASSIVE_LEVEL
 * BUGS:
 *     - Only supports things that MmMapIoSpace internally supports - what
 *       about considering bus type, etc?
 *     - doesn't track resources allocated...
 */
{
   136d0:	55                   	push   %ebp
   136d1:	89 e5                	mov    %esp,%ebp
   136d3:	50                   	push   %eax
   136d4:	50                   	push   %eax
  PAGED_CODE();
  ASSERT(VirtualAddress && MiniportAdapterHandle);

  *VirtualAddress = MmMapIoSpace(PhysicalAddress, Length, MmNonCached);
   136d5:	6a 00                	push   $0x0
   136d7:	8b 55 14             	mov    0x14(%ebp),%edx
   136da:	8b 4d 18             	mov    0x18(%ebp),%ecx
   136dd:	8b 45 10             	mov    0x10(%ebp),%eax
   136e0:	51                   	push   %ecx
   136e1:	52                   	push   %edx
   136e2:	50                   	push   %eax
   136e3:	ff 15 b4 e2 01 00    	call   *0x1e2b4
   136e9:	8b 55 08             	mov    0x8(%ebp),%edx

  if(!*VirtualAddress)
    return NDIS_STATUS_RESOURCES;
   136ec:	83 f8 01             	cmp    $0x1,%eax
   136ef:	89 02                	mov    %eax,(%edx)
   136f1:	19 c0                	sbb    %eax,%eax

  return NDIS_STATUS_SUCCESS;
}
   136f3:	c9                   	leave  
   136f4:	25 9a 00 00 c0       	and    $0xc000009a,%eax
   136f9:	c2 14 00             	ret    $0x14
   136fc:	8d 74 26 00          	lea    0x0(%esi),%esi

00013700 <_NdisMReadDmaCounter@4>:


/*
 * @implemented
 */
ULONG
EXPORT
NdisMReadDmaCounter(
    IN  NDIS_HANDLE MiniportDmaHandle)
{
   13700:	55                   	push   %ebp
   13701:	89 e5                	mov    %esp,%ebp
  PNDIS_MINIPORT_BLOCK MiniportBlock = (PNDIS_MINIPORT_BLOCK)MiniportDmaHandle;
  PDMA_ADAPTER AdapterObject = MiniportBlock->SystemAdapterObject;
   13703:	8b 45 08             	mov    0x8(%ebp),%eax
   13706:	8b 90 f0 03 00 00    	mov    0x3f0(%eax),%edx

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  if (AdapterObject == NULL)
   1370c:	85 d2                	test   %edx,%edx
   1370e:	74 10                	je     13720 <_NdisMReadDmaCounter@4+0x20>
    return 0;
    
  return AdapterObject->DmaOperations->ReadDmaCounter(AdapterObject);
   13710:	8b 42 04             	mov    0x4(%edx),%eax
   13713:	89 55 08             	mov    %edx,0x8(%ebp)
}
   13716:	c9                   	leave  
   13717:	ff 60 28             	jmp    *0x28(%eax)
   1371a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13720:	31 c0                	xor    %eax,%eax
   13722:	c9                   	leave  
   13723:	c2 04 00             	ret    $0x4
   13726:	8d 76 00             	lea    0x0(%esi),%esi
   13729:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013730 <_NdisMGetDmaAlignment@4>:


/*
 * @implemented
 */
ULONG
EXPORT
NdisMGetDmaAlignment(
    IN  NDIS_HANDLE MiniportDmaHandle)
{
   13730:	55                   	push   %ebp
   13731:	89 e5                	mov    %esp,%ebp
  PNDIS_MINIPORT_BLOCK MiniportBlock = (PNDIS_MINIPORT_BLOCK)MiniportDmaHandle;
  PDMA_ADAPTER AdapterObject = MiniportBlock->SystemAdapterObject;
   13733:	8b 45 08             	mov    0x8(%ebp),%eax
   13736:	8b 90 f0 03 00 00    	mov    0x3f0(%eax),%edx

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  if (AdapterObject == NULL)
   1373c:	85 d2                	test   %edx,%edx
   1373e:	74 10                	je     13750 <_NdisMGetDmaAlignment@4+0x20>
    return 0;
    
  return AdapterObject->DmaOperations->GetDmaAlignment(AdapterObject);
   13740:	8b 42 04             	mov    0x4(%edx),%eax
   13743:	89 55 08             	mov    %edx,0x8(%ebp)
}
   13746:	c9                   	leave  
   13747:	ff 60 24             	jmp    *0x24(%eax)
   1374a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13750:	31 c0                	xor    %eax,%eax
   13752:	c9                   	leave  
   13753:	c2 04 00             	ret    $0x4
   13756:	8d 76 00             	lea    0x0(%esi),%esi
   13759:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013760 <_NdisMRegisterDmaChannel@24>:


/*
 * @unimplemented
 */
NDIS_STATUS
EXPORT
NdisMRegisterDmaChannel(
    OUT PNDIS_HANDLE            MiniportDmaHandle,
    IN  NDIS_HANDLE             MiniportAdapterHandle,
    IN  UINT                    DmaChannel,
    IN  BOOLEAN                 Dma32BitAddresses,
    IN  PNDIS_DMA_DESCRIPTION   DmaDescription,
    IN  ULONG                   MaximumLength)
{
   13760:	55                   	push   %ebp
    UNIMPLEMENTED

  return NDIS_STATUS_FAILURE;
}
   13761:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   13766:	89 e5                	mov    %esp,%ebp
   13768:	5d                   	pop    %ebp
   13769:	c2 18 00             	ret    $0x18
   1376c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013770 <_NdisMRegisterInterrupt@28>:


/*
 * @implemented
 */
NDIS_STATUS
EXPORT
NdisMRegisterInterrupt(
    OUT PNDIS_MINIPORT_INTERRUPT    Interrupt,
    IN  NDIS_HANDLE                 MiniportAdapterHandle,
    IN  UINT                        InterruptVector,
    IN  UINT                        InterruptLevel,
    IN  BOOLEAN	                    RequestIsr,
    IN  BOOLEAN                     SharedInterrupt,
    IN  NDIS_INTERRUPT_MODE         InterruptMode)
/*
 * FUNCTION: Claims access to an interrupt vector
 * ARGUMENTS:
 *     Interrupt             = Address of interrupt object to initialize
 *     MiniportAdapterHandle = Specifies handle input to MiniportInitialize
 *     InterruptVector       = Specifies bus-relative vector to register
 *     InterruptLevel        = Specifies bus-relative DIRQL vector for interrupt
 *     RequestIsr            = TRUE if MiniportISR should always be called
 *     SharedInterrupt       = TRUE if other devices may use the same interrupt
 *     InterruptMode         = Specifies type of interrupt
 * RETURNS:
 *     Status of operation
 */
{
   13770:	55                   	push   %ebp
   13771:	89 e5                	mov    %esp,%ebp
   13773:	57                   	push   %edi
   13774:	56                   	push   %esi
   13775:	53                   	push   %ebx
   13776:	83 ec 10             	sub    $0x10,%esp
   13779:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
  NTSTATUS Status;
  ULONG MappedIRQ;
  KIRQL DIrql;
  KAFFINITY Affinity;
  PLOGICAL_ADAPTER Adapter = GET_LOGICAL_ADAPTER(MiniportAdapterHandle);

  NDIS_DbgPrint(MAX_TRACE, ("Called. InterruptVector (0x%X)  InterruptLevel (0x%X)  "
      "SharedInterrupt (%d)  InterruptMode (0x%X)\n",
      InterruptVector, InterruptLevel, SharedInterrupt, InterruptMode));

  RtlZeroMemory(Interrupt, sizeof(NDIS_MINIPORT_INTERRUPT));
   1377c:	6a 50                	push   $0x50
   1377e:	6a 00                	push   $0x0
   13780:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13783:	89 df                	mov    %ebx,%edi
   13785:	51                   	push   %ecx
   13786:	e8 e5 2e 00 00       	call   16670 <_memset>

  KeInitializeSpinLock(&Interrupt->DpcCountLock);
   1378b:	8b 75 08             	mov    0x8(%ebp),%esi

  KeInitializeDpc(&Interrupt->InterruptDpc, HandleDeferredProcessing, Adapter);

  KeInitializeEvent(&Interrupt->DpcsCompletedEvent, NotificationEvent, FALSE);

  Interrupt->SharedInterrupt = SharedInterrupt;

  Adapter->NdisMiniportBlock.Interrupt = Interrupt;

  MappedIRQ = HalGetInterruptVector(Adapter->NdisMiniportBlock.BusType,
                                    Adapter->NdisMiniportBlock.BusNumber,
                                    InterruptLevel, InterruptVector, &DIrql,
                                    &Affinity);

  NDIS_DbgPrint(MAX_TRACE, ("Connecting to interrupt vector (0x%X)  Affinity (0x%X).\n", MappedIRQ, Affinity));

  Status = IoConnectInterrupt(&Interrupt->InterruptObject, ServiceRoutine, Adapter, &Interrupt->DpcCountLock, MappedIRQ,
   1378e:	81 e7 ff 00 00 00    	and    $0xff,%edi
   13794:	83 c6 04             	add    $0x4,%esi
   13797:	89 34 24             	mov    %esi,(%esp)
   1379a:	ff 15 78 e2 01 00    	call   *0x1e278
   137a0:	58                   	pop    %eax
   137a1:	8b 45 0c             	mov    0xc(%ebp),%eax
   137a4:	5a                   	pop    %edx
   137a5:	50                   	push   %eax
   137a6:	68 60 30 01 00       	push   $0x13060
   137ab:	8b 45 08             	mov    0x8(%ebp),%eax
   137ae:	83 c0 14             	add    $0x14,%eax
   137b1:	50                   	push   %eax
   137b2:	ff 15 70 e2 01 00    	call   *0x1e270
   137b8:	6a 00                	push   $0x0
   137ba:	6a 00                	push   $0x0
   137bc:	8b 45 08             	mov    0x8(%ebp),%eax
   137bf:	83 c0 3c             	add    $0x3c,%eax
   137c2:	50                   	push   %eax
   137c3:	ff 15 74 e2 01 00    	call   *0x1e274
   137c9:	8b 45 08             	mov    0x8(%ebp),%eax
   137cc:	88 58 4c             	mov    %bl,0x4c(%eax)
   137cf:	8b 55 0c             	mov    0xc(%ebp),%edx
   137d2:	89 42 38             	mov    %eax,0x38(%edx)
   137d5:	50                   	push   %eax
   137d6:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   137d9:	50                   	push   %eax
   137da:	8d 45 ef             	lea    0xffffffef(%ebp),%eax
   137dd:	50                   	push   %eax
   137de:	8b 45 10             	mov    0x10(%ebp),%eax
   137e1:	50                   	push   %eax
   137e2:	8b 45 14             	mov    0x14(%ebp),%eax
   137e5:	50                   	push   %eax
   137e6:	8b 82 fc 00 00 00    	mov    0xfc(%edx),%eax
   137ec:	50                   	push   %eax
   137ed:	8b 9a 00 01 00 00    	mov    0x100(%edx),%ebx
   137f3:	53                   	push   %ebx
   137f4:	ff 15 d0 e1 01 00    	call   *0x1e1d0
   137fa:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
   13801:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   13804:	51                   	push   %ecx
   13805:	57                   	push   %edi
   13806:	8b 55 20             	mov    0x20(%ebp),%edx
   13809:	52                   	push   %edx
   1380a:	31 d2                	xor    %edx,%edx
   1380c:	8a 55 ef             	mov    0xffffffef(%ebp),%dl
   1380f:	52                   	push   %edx
   13810:	52                   	push   %edx
   13811:	50                   	push   %eax
   13812:	56                   	push   %esi
   13813:	8b 45 0c             	mov    0xc(%ebp),%eax
   13816:	50                   	push   %eax
   13817:	68 10 31 01 00       	push   $0x13110
   1381c:	8b 45 08             	mov    0x8(%ebp),%eax
   1381f:	50                   	push   %eax
   13820:	ff 15 48 e2 01 00    	call   *0x1e248
   13826:	89 c2                	mov    %eax,%edx
      DIrql, DIrql, InterruptMode, SharedInterrupt, Affinity, FALSE);

  NDIS_DbgPrint(MAX_TRACE, ("Leaving. Status (0x%X).\n", Status));

  if (NT_SUCCESS(Status))
   13828:	58                   	pop    %eax
    return NDIS_STATUS_SUCCESS;
   13829:	31 c0                	xor    %eax,%eax
   1382b:	85 d2                	test   %edx,%edx
   1382d:	78 11                	js     13840 <_NdisMRegisterInterrupt@28+0xd0>

  if (Status == STATUS_INSUFFICIENT_RESOURCES) 
    {
        /* FIXME: Log error */
      NDIS_DbgPrint(MIN_TRACE, ("Resource conflict!\n"));
      return NDIS_STATUS_RESOURCE_CONFLICT;
    }

  NDIS_DbgPrint(MIN_TRACE, ("Function failed\n"));
  return NDIS_STATUS_FAILURE;
}
   1382f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13832:	5b                   	pop    %ebx
   13833:	5e                   	pop    %esi
   13834:	5f                   	pop    %edi
   13835:	5d                   	pop    %ebp
   13836:	c2 1c 00             	ret    $0x1c
   13839:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13840:	81 fa 9a 00 00 c0    	cmp    $0xc000009a,%edx
   13846:	0f 94 c0             	sete   %al
   13849:	25 ff 00 00 00       	and    $0xff,%eax
   1384e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13851:	48                   	dec    %eax
   13852:	5b                   	pop    %ebx
   13853:	25 e3 ff fe ff       	and    $0xfffeffe3,%eax
   13858:	5e                   	pop    %esi
   13859:	2d e2 ff fe 3f       	sub    $0x3ffeffe2,%eax
   1385e:	5f                   	pop    %edi
   1385f:	5d                   	pop    %ebp
   13860:	c2 1c 00             	ret    $0x1c
   13863:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13869:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013870 <_NdisMRegisterIoPortRange@16>:


/*
 * @unimplemented
 */
NDIS_STATUS
EXPORT
NdisMRegisterIoPortRange(
    OUT PVOID       *PortOffset,
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  UINT        InitialPort,
    IN  UINT        NumberOfPorts)
/*
 * FUNCTION: Sets up driver access to device I/O ports
 * ARGUMENTS:
 *     PortOffset            = Address of buffer to place mapped base port address
 *     MiniportAdapterHandle = Specifies handle input to MiniportInitialize
 *     InitialPort           = Bus-relative base port address of a range to be mapped
 *     NumberOfPorts         = Specifies number of ports to be mapped
 * RETURNS:
 *     Status of operation
 */
{
   13870:	55                   	push   %ebp
   13871:	89 e5                	mov    %esp,%ebp
   13873:	56                   	push   %esi
   13874:	53                   	push   %ebx
   13875:	83 ec 20             	sub    $0x20,%esp
  PHYSICAL_ADDRESS PortAddress, TranslatedAddress;
  PLOGICAL_ADAPTER Adapter  = GET_LOGICAL_ADAPTER(MiniportAdapterHandle);
  ULONG            AddressSpace = 1;    /* FIXME The HAL handles this wrong atm */
   13878:	c7 45 e4 01 00 00 00 	movl   $0x1,0xffffffe4(%ebp)
   1387f:	8b 45 10             	mov    0x10(%ebp),%eax
   13882:	8b 75 08             	mov    0x8(%ebp),%esi
   13885:	8b 5d 0c             	mov    0xc(%ebp),%ebx

  NDIS_DbgPrint(MAX_TRACE, ("Called - InitialPort 0x%x, NumberOfPorts 0x%x\n", InitialPort, NumberOfPorts));

  memset(&PortAddress, 0, sizeof(PortAddress));
   13888:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   1388f:	c7 45 f4 00 00 00 00 	movl   $0x0,0xfffffff4(%ebp)

  /*
   * FIXME: NDIS 5+ completely ignores the InitialPort parameter, but
   * we don't have a way to get the I/O base address yet (see
   * NDIS_MINIPORT_BLOCK->AllocatedResources and
   * NDIS_MINIPORT_BLOCK->AllocatedResourcesTranslated).
   */
  if(InitialPort)
   13896:	85 c0                	test   %eax,%eax
   13898:	75 4a                	jne    138e4 <_NdisMRegisterIoPortRange@16+0x74>
      PortAddress = RtlConvertUlongToLargeInteger(InitialPort);
  else
      ASSERT(FALSE);

  NDIS_DbgPrint(MAX_TRACE, ("Translating address 0x%x 0x%x\n", PortAddress.u.HighPart, PortAddress.u.LowPart));

  if(!HalTranslateBusAddress(Adapter->NdisMiniportBlock.BusType,
   1389a:	50                   	push   %eax
   1389b:	50                   	push   %eax
   1389c:	8d 45 e8             	lea    0xffffffe8(%ebp),%eax
   1389f:	50                   	push   %eax
   138a0:	8d 45 e4             	lea    0xffffffe4(%ebp),%eax
   138a3:	50                   	push   %eax
   138a4:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
   138a7:	50                   	push   %eax
   138a8:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   138ab:	50                   	push   %eax
   138ac:	8b 83 fc 00 00 00    	mov    0xfc(%ebx),%eax
   138b2:	50                   	push   %eax
   138b3:	8b 9b 00 01 00 00    	mov    0x100(%ebx),%ebx
   138b9:	53                   	push   %ebx
   138ba:	ff 15 d8 e1 01 00    	call   *0x1e1d8
   138c0:	5a                   	pop    %edx
   138c1:	84 c0                	test   %al,%al
   138c3:	59                   	pop    %ecx
                             Adapter->NdisMiniportBlock.BusNumber,
                             PortAddress, &AddressSpace, &TranslatedAddress))
    {
      NDIS_DbgPrint(MIN_TRACE, ("Unable to translate address\n"));
      return NDIS_STATUS_RESOURCES;
   138c4:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   138c9:	74 0e                	je     138d9 <_NdisMRegisterIoPortRange@16+0x69>
    }

  NDIS_DbgPrint(MAX_TRACE, ("Hal returned AddressSpace=0x%x TranslatedAddress=0x%x 0x%x\n",
                            AddressSpace, TranslatedAddress.u.HighPart, TranslatedAddress.u.LowPart));

  if(AddressSpace)
   138cb:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   138ce:	85 c0                	test   %eax,%eax
   138d0:	74 2e                	je     13900 <_NdisMRegisterIoPortRange@16+0x90>
    {
      ASSERT(TranslatedAddress.u.HighPart == 0);
      *PortOffset = (PVOID) TranslatedAddress.u.LowPart;
   138d2:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
      NDIS_DbgPrint(MAX_TRACE, ("Returning 0x%x\n", *PortOffset));
      return NDIS_STATUS_SUCCESS;
   138d5:	31 d2                	xor    %edx,%edx
   138d7:	89 06                	mov    %eax,(%esi)
    }

  NDIS_DbgPrint(MAX_TRACE, ("calling MmMapIoSpace\n"));

  *PortOffset = 0;
  *PortOffset = MmMapIoSpace(TranslatedAddress, NumberOfPorts, MmNonCached);
  NDIS_DbgPrint(MAX_TRACE, ("Returning 0x%x for port range\n", *PortOffset));

  if(!*PortOffset)
    return NDIS_STATUS_RESOURCES;

  return NDIS_STATUS_SUCCESS;
}
   138d9:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   138dc:	89 d0                	mov    %edx,%eax
   138de:	5b                   	pop    %ebx
   138df:	5e                   	pop    %esi
   138e0:	5d                   	pop    %ebp
   138e1:	c2 10 00             	ret    $0x10
   138e4:	83 ec 0c             	sub    $0xc,%esp
   138e7:	50                   	push   %eax
   138e8:	ff 15 d8 e2 01 00    	call   *0x1e2d8
   138ee:	83 c4 0c             	add    $0xc,%esp
   138f1:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   138f4:	89 55 f4             	mov    %edx,0xfffffff4(%ebp)
   138f7:	eb a1                	jmp    1389a <_NdisMRegisterIoPortRange@16+0x2a>
   138f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13900:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   13906:	6a 00                	push   $0x0
   13908:	8b 45 14             	mov    0x14(%ebp),%eax
   1390b:	50                   	push   %eax
   1390c:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   1390f:	50                   	push   %eax
   13910:	8b 5d e8             	mov    0xffffffe8(%ebp),%ebx
   13913:	53                   	push   %ebx
   13914:	ff 15 b4 e2 01 00    	call   *0x1e2b4
   1391a:	83 f8 01             	cmp    $0x1,%eax
   1391d:	19 d2                	sbb    %edx,%edx
   1391f:	89 06                	mov    %eax,(%esi)
   13921:	81 e2 9a 00 00 c0    	and    $0xc000009a,%edx
   13927:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1392a:	89 d0                	mov    %edx,%eax
   1392c:	5b                   	pop    %ebx
   1392d:	5e                   	pop    %esi
   1392e:	5d                   	pop    %ebp
   1392f:	c2 10 00             	ret    $0x10
   13932:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13939:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013940 <_NdisMSetupDmaTransfer@24>:

/*
 * @unimplemented
 */
VOID
EXPORT
NdisMSetupDmaTransfer(
    OUT	PNDIS_STATUS    Status,
    IN	PNDIS_HANDLE    MiniportDmaHandle,
    IN	PNDIS_BUFFER    Buffer,
    IN	ULONG           Offset,
    IN	ULONG           Length,
    IN	BOOLEAN         WriteToDevice)
{
   13940:	55                   	push   %ebp
   13941:	89 e5                	mov    %esp,%ebp
   13943:	5d                   	pop    %ebp
   13944:	c2 18 00             	ret    $0x18
   13947:	89 f6                	mov    %esi,%esi
   13949:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013950 <_NdisMUnmapIoSpace@12>:
    UNIMPLEMENTED
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMUnmapIoSpace(
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  PVOID       VirtualAddress,
    IN  UINT        Length)
/*
 * FUNCTION: Un-maps space previously mapped with NdisMMapIoSpace
 * ARGUMENTS:
 *     MiniportAdapterHandle: handle originally passed into MiniportInitialize
 *     VirtualAddress: Address to un-map
 *     Length: length of the mapped memory space
 * NOTES:
 *     - Must be called at IRQL = PASSIVE_LEVEL
 *     - Must only be called from MiniportInitialize and MiniportHalt
 *     - See also: NdisMMapIoSpace
 * BUGS:
 *     - Depends on MmUnmapIoSpace to Do The Right Thing in all cases
 */
{
   13950:	55                   	push   %ebp
   13951:	89 e5                	mov    %esp,%ebp
   13953:	83 ec 10             	sub    $0x10,%esp
  PAGED_CODE();

  ASSERT(MiniportAdapterHandle);

  MmUnmapIoSpace(VirtualAddress, Length);
   13956:	8b 45 10             	mov    0x10(%ebp),%eax
   13959:	50                   	push   %eax
   1395a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1395d:	50                   	push   %eax
   1395e:	ff 15 c0 e2 01 00    	call   *0x1e2c0
   13964:	c9                   	leave  
   13965:	c2 0c 00             	ret    $0xc
   13968:	90                   	nop    
   13969:	90                   	nop    
   1396a:	90                   	nop    
   1396b:	90                   	nop    
   1396c:	90                   	nop    
   1396d:	90                   	nop    
   1396e:	90                   	nop    
   1396f:	90                   	nop    

00013970 <_NdisAllocateMemoryWithTag@12>:
   13970:	55                   	push   %ebp
   13971:	89 e5                	mov    %esp,%ebp
   13973:	83 ec 0c             	sub    $0xc,%esp
   13976:	8b 45 10             	mov    0x10(%ebp),%eax
   13979:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1397c:	50                   	push   %eax
   1397d:	51                   	push   %ecx
   1397e:	6a 00                	push   $0x0
   13980:	ff 15 28 e2 01 00    	call   *0x1e228
   13986:	8b 55 08             	mov    0x8(%ebp),%edx
   13989:	83 f8 01             	cmp    $0x1,%eax
   1398c:	89 02                	mov    %eax,(%edx)
   1398e:	19 c0                	sbb    %eax,%eax
   13990:	5a                   	pop    %edx
   13991:	25 01 00 00 c0       	and    $0xc0000001,%eax
   13996:	c9                   	leave  
   13997:	c2 0c 00             	ret    $0xc
   1399a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000139a0 <_NdisCreateLookaheadBufferFromSharedMemory@12>:
   139a0:	55                   	push   %ebp
   139a1:	89 e5                	mov    %esp,%ebp
   139a3:	5d                   	pop    %ebp
   139a4:	c2 0c 00             	ret    $0xc
   139a7:	89 f6                	mov    %esi,%esi
   139a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000139b0 <_NdisDestroyLookaheadBufferFromSharedMemory@4>:
   139b0:	55                   	push   %ebp
   139b1:	89 e5                	mov    %esp,%ebp
   139b3:	5d                   	pop    %ebp
   139b4:	c2 04 00             	ret    $0x4
   139b7:	89 f6                	mov    %esi,%esi
   139b9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000139c0 <_NdisAllocateMemory@20>:
   139c0:	55                   	push   %ebp
   139c1:	89 e5                	mov    %esp,%ebp
   139c3:	53                   	push   %ebx
   139c4:	50                   	push   %eax
   139c5:	8b 45 10             	mov    0x10(%ebp),%eax
   139c8:	8b 5d 08             	mov    0x8(%ebp),%ebx
   139cb:	8b 55 0c             	mov    0xc(%ebp),%edx
   139ce:	a8 02                	test   $0x2,%al
   139d0:	75 4e                	jne    13a20 <_NdisAllocateMemory@20+0x60>
   139d2:	a8 01                	test   $0x1,%al
   139d4:	75 20                	jne    139f6 <_NdisAllocateMemory@20+0x36>
   139d6:	50                   	push   %eax
   139d7:	50                   	push   %eax
   139d8:	52                   	push   %edx
   139d9:	6a 00                	push   $0x0
   139db:	ff 15 24 e2 01 00    	call   *0x1e224
   139e1:	83 f8 01             	cmp    $0x1,%eax
   139e4:	89 03                	mov    %eax,(%ebx)
   139e6:	19 c0                	sbb    %eax,%eax
   139e8:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   139eb:	25 01 00 00 c0       	and    $0xc0000001,%eax
   139f0:	5a                   	pop    %edx
   139f1:	59                   	pop    %ecx
   139f2:	c9                   	leave  
   139f3:	c2 14 00             	ret    $0x14
   139f6:	50                   	push   %eax
   139f7:	8b 45 18             	mov    0x18(%ebp),%eax
   139fa:	50                   	push   %eax
   139fb:	8b 4d 14             	mov    0x14(%ebp),%ecx
   139fe:	51                   	push   %ecx
   139ff:	52                   	push   %edx
   13a00:	ff 15 a4 e2 01 00    	call   *0x1e2a4
   13a06:	83 f8 01             	cmp    $0x1,%eax
   13a09:	89 03                	mov    %eax,(%ebx)
   13a0b:	19 c0                	sbb    %eax,%eax
   13a0d:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13a10:	25 01 00 00 c0       	and    $0xc0000001,%eax
   13a15:	5a                   	pop    %edx
   13a16:	c9                   	leave  
   13a17:	c2 14 00             	ret    $0x14
   13a1a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13a20:	83 ec 0c             	sub    $0xc,%esp
   13a23:	52                   	push   %edx
   13a24:	ff 15 a8 e2 01 00    	call   *0x1e2a8
   13a2a:	83 c4 0c             	add    $0xc,%esp
   13a2d:	83 f8 01             	cmp    $0x1,%eax
   13a30:	89 03                	mov    %eax,(%ebx)
   13a32:	19 c0                	sbb    %eax,%eax
   13a34:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13a37:	25 01 00 00 c0       	and    $0xc0000001,%eax
   13a3c:	c9                   	leave  
   13a3d:	c2 14 00             	ret    $0x14

00013a40 <_NdisFreeMemory@12>:
   13a40:	55                   	push   %ebp
   13a41:	89 e5                	mov    %esp,%ebp
   13a43:	50                   	push   %eax
   13a44:	50                   	push   %eax
   13a45:	8b 45 10             	mov    0x10(%ebp),%eax
   13a48:	8b 55 08             	mov    0x8(%ebp),%edx
   13a4b:	a8 02                	test   $0x2,%al
   13a4d:	75 21                	jne    13a70 <_NdisFreeMemory@12+0x30>
   13a4f:	a8 01                	test   $0x1,%al
   13a51:	74 0e                	je     13a61 <_NdisFreeMemory@12+0x21>
   13a53:	83 ec 0c             	sub    $0xc,%esp
   13a56:	52                   	push   %edx
   13a57:	ff 15 ac e2 01 00    	call   *0x1e2ac
   13a5d:	c9                   	leave  
   13a5e:	c2 0c 00             	ret    $0xc
   13a61:	83 ec 0c             	sub    $0xc,%esp
   13a64:	52                   	push   %edx
   13a65:	ff 15 2c e2 01 00    	call   *0x1e22c
   13a6b:	c9                   	leave  
   13a6c:	c2 0c 00             	ret    $0xc
   13a6f:	90                   	nop    
   13a70:	50                   	push   %eax
   13a71:	50                   	push   %eax
   13a72:	8b 45 0c             	mov    0xc(%ebp),%eax
   13a75:	50                   	push   %eax
   13a76:	52                   	push   %edx
   13a77:	ff 15 b0 e2 01 00    	call   *0x1e2b0
   13a7d:	c9                   	leave  
   13a7e:	c2 0c 00             	ret    $0xc
   13a81:	eb 0d                	jmp    13a90 <_NdisImmediateReadSharedMemory@16>
   13a83:	90                   	nop    
   13a84:	90                   	nop    
   13a85:	90                   	nop    
   13a86:	90                   	nop    
   13a87:	90                   	nop    
   13a88:	90                   	nop    
   13a89:	90                   	nop    
   13a8a:	90                   	nop    
   13a8b:	90                   	nop    
   13a8c:	90                   	nop    
   13a8d:	90                   	nop    
   13a8e:	90                   	nop    
   13a8f:	90                   	nop    

00013a90 <_NdisImmediateReadSharedMemory@16>:
   13a90:	55                   	push   %ebp
   13a91:	89 e5                	mov    %esp,%ebp
   13a93:	5d                   	pop    %ebp
   13a94:	c2 10 00             	ret    $0x10
   13a97:	89 f6                	mov    %esi,%esi
   13a99:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013aa0 <_NdisImmediateWriteSharedMemory@16>:
   13aa0:	55                   	push   %ebp
   13aa1:	89 e5                	mov    %esp,%ebp
   13aa3:	5d                   	pop    %ebp
   13aa4:	c2 10 00             	ret    $0x10
   13aa7:	89 f6                	mov    %esi,%esi
   13aa9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013ab0 <_NdisMAllocateSharedMemory@20>:
   13ab0:	55                   	push   %ebp
   13ab1:	89 e5                	mov    %esp,%ebp
   13ab3:	50                   	push   %eax
   13ab4:	50                   	push   %eax
   13ab5:	8b 45 08             	mov    0x8(%ebp),%eax
   13ab8:	8b 90 f0 03 00 00    	mov    0x3f0(%eax),%edx
   13abe:	31 c0                	xor    %eax,%eax
   13ac0:	8a 45 10             	mov    0x10(%ebp),%al
   13ac3:	8b 4a 04             	mov    0x4(%edx),%ecx
   13ac6:	50                   	push   %eax
   13ac7:	8b 45 18             	mov    0x18(%ebp),%eax
   13aca:	50                   	push   %eax
   13acb:	8b 45 0c             	mov    0xc(%ebp),%eax
   13ace:	50                   	push   %eax
   13acf:	52                   	push   %edx
   13ad0:	ff 51 08             	call   *0x8(%ecx)
   13ad3:	8b 55 14             	mov    0x14(%ebp),%edx
   13ad6:	89 02                	mov    %eax,(%edx)
   13ad8:	c9                   	leave  
   13ad9:	c2 14 00             	ret    $0x14
   13adc:	8d 74 26 00          	lea    0x0(%esi),%esi

00013ae0 <_NdisMAllocateSharedMemoryAsync@16>:
   13ae0:	55                   	push   %ebp
   13ae1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   13ae6:	89 e5                	mov    %esp,%ebp
   13ae8:	5d                   	pop    %ebp
   13ae9:	c2 10 00             	ret    $0x10
   13aec:	8d 74 26 00          	lea    0x0(%esi),%esi

00013af0 <_NdisMFreeSharedMemoryPassive@4>:
   13af0:	55                   	push   %ebp
   13af1:	31 c0                	xor    %eax,%eax
   13af3:	89 e5                	mov    %esp,%ebp
   13af5:	53                   	push   %ebx
   13af6:	83 ec 0c             	sub    $0xc,%esp
   13af9:	8b 5d 08             	mov    0x8(%ebp),%ebx
   13afc:	8b 13                	mov    (%ebx),%edx
   13afe:	8a 43 14             	mov    0x14(%ebx),%al
   13b01:	8b 4a 04             	mov    0x4(%edx),%ecx
   13b04:	50                   	push   %eax
   13b05:	8b 43 10             	mov    0x10(%ebx),%eax
   13b08:	50                   	push   %eax
   13b09:	8b 43 0c             	mov    0xc(%ebx),%eax
   13b0c:	50                   	push   %eax
   13b0d:	8b 43 08             	mov    0x8(%ebx),%eax
   13b10:	50                   	push   %eax
   13b11:	8b 43 04             	mov    0x4(%ebx),%eax
   13b14:	50                   	push   %eax
   13b15:	52                   	push   %edx
   13b16:	ff 51 0c             	call   *0xc(%ecx)
   13b19:	58                   	pop    %eax
   13b1a:	5a                   	pop    %edx
   13b1b:	89 5d 08             	mov    %ebx,0x8(%ebp)
   13b1e:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13b21:	c9                   	leave  
   13b22:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   13b28:	90                   	nop    
   13b29:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013b30 <_NdisMFreeSharedMemory@24>:
   13b30:	55                   	push   %ebp
   13b31:	89 e5                	mov    %esp,%ebp
   13b33:	53                   	push   %ebx
   13b34:	83 ec 0c             	sub    $0xc,%esp
   13b37:	8b 5d 10             	mov    0x10(%ebp),%ebx
   13b3a:	6a 18                	push   $0x18
   13b3c:	6a 00                	push   $0x0
   13b3e:	ff 15 24 e2 01 00    	call   *0x1e224
   13b44:	89 c1                	mov    %eax,%ecx
   13b46:	58                   	pop    %eax
   13b47:	85 c9                	test   %ecx,%ecx
   13b49:	5a                   	pop    %edx
   13b4a:	74 4e                	je     13b9a <_NdisMFreeSharedMemory@24+0x6a>
   13b4c:	8b 45 08             	mov    0x8(%ebp),%eax
   13b4f:	8b 80 f0 03 00 00    	mov    0x3f0(%eax),%eax
   13b55:	89 01                	mov    %eax,(%ecx)
   13b57:	8b 45 0c             	mov    0xc(%ebp),%eax
   13b5a:	89 41 04             	mov    %eax,0x4(%ecx)
   13b5d:	8b 45 18             	mov    0x18(%ebp),%eax
   13b60:	8b 55 1c             	mov    0x1c(%ebp),%edx
   13b63:	89 41 08             	mov    %eax,0x8(%ecx)
   13b66:	8b 45 14             	mov    0x14(%ebp),%eax
   13b69:	89 51 0c             	mov    %edx,0xc(%ecx)
   13b6c:	89 41 10             	mov    %eax,0x10(%ecx)
   13b6f:	88 59 14             	mov    %bl,0x14(%ecx)
   13b72:	8d 45 f8             	lea    0xfffffff8(%ebp),%eax
   13b75:	52                   	push   %edx
   13b76:	51                   	push   %ecx
   13b77:	68 f0 3a 01 00       	push   $0x13af0
   13b7c:	6a 00                	push   $0x0
   13b7e:	6a 00                	push   $0x0
   13b80:	6a 00                	push   $0x0
   13b82:	68 ff 03 1f 00       	push   $0x1f03ff
   13b87:	50                   	push   %eax
   13b88:	ff 15 c4 e2 01 00    	call   *0x1e2c4
   13b8e:	50                   	push   %eax
   13b8f:	50                   	push   %eax
   13b90:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
   13b93:	50                   	push   %eax
   13b94:	ff 15 00 e3 01 00    	call   *0x1e300
   13b9a:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13b9d:	c9                   	leave  
   13b9e:	c2 18 00             	ret    $0x18
   13ba1:	90                   	nop    
   13ba2:	90                   	nop    
   13ba3:	90                   	nop    
   13ba4:	90                   	nop    
   13ba5:	90                   	nop    
   13ba6:	90                   	nop    
   13ba7:	90                   	nop    
   13ba8:	90                   	nop    
   13ba9:	90                   	nop    
   13baa:	90                   	nop    
   13bab:	90                   	nop    
   13bac:	90                   	nop    
   13bad:	90                   	nop    
   13bae:	90                   	nop    
   13baf:	90                   	nop    

00013bb0 <_MiniDisplayPacket>:
   13bb0:	55                   	push   %ebp
   13bb1:	89 e5                	mov    %esp,%ebp
   13bb3:	5d                   	pop    %ebp
   13bb4:	c3                   	ret    
   13bb5:	8d 74 26 00          	lea    0x0(%esi),%esi
   13bb9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013bc0 <_MiniDisplayPacket2>:
   13bc0:	55                   	push   %ebp
   13bc1:	89 e5                	mov    %esp,%ebp
   13bc3:	5d                   	pop    %ebp
   13bc4:	c3                   	ret    
   13bc5:	8d 74 26 00          	lea    0x0(%esi),%esi
   13bc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013bd0 <_MiniIndicateData>:
   13bd0:	55                   	push   %ebp
   13bd1:	89 e5                	mov    %esp,%ebp
   13bd3:	57                   	push   %edi
   13bd4:	56                   	push   %esi
   13bd5:	53                   	push   %ebx
   13bd6:	83 ec 0c             	sub    $0xc,%esp
   13bd9:	8b 45 08             	mov    0x8(%ebp),%eax
   13bdc:	8b 7d 20             	mov    0x20(%ebp),%edi
   13bdf:	8b 98 28 05 00 00    	mov    0x528(%eax),%ebx
   13be5:	8d b0 28 05 00 00    	lea    0x528(%eax),%esi
   13beb:	eb 2f                	jmp    13c1c <_MiniIndicateData+0x4c>
   13bed:	8d 76 00             	lea    0x0(%esi),%esi
   13bf0:	8d 83 44 ff ff ff    	lea    0xffffff44(%ebx),%eax
   13bf6:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
   13bf9:	52                   	push   %edx
   13bfa:	8b 90 cc 00 00 00    	mov    0xcc(%eax),%edx
   13c00:	57                   	push   %edi
   13c01:	51                   	push   %ecx
   13c02:	8b 4d 18             	mov    0x18(%ebp),%ecx
   13c05:	51                   	push   %ecx
   13c06:	8b 4d 14             	mov    0x14(%ebp),%ecx
   13c09:	51                   	push   %ecx
   13c0a:	8b 4d 10             	mov    0x10(%ebp),%ecx
   13c0d:	51                   	push   %ecx
   13c0e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   13c11:	51                   	push   %ecx
   13c12:	8b 48 10             	mov    0x10(%eax),%ecx
   13c15:	51                   	push   %ecx
   13c16:	ff 52 30             	call   *0x30(%edx)
   13c19:	8b 1b                	mov    (%ebx),%ebx
   13c1b:	58                   	pop    %eax
   13c1c:	39 de                	cmp    %ebx,%esi
   13c1e:	75 d0                	jne    13bf0 <_MiniIndicateData+0x20>
   13c20:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13c23:	5b                   	pop    %ebx
   13c24:	5e                   	pop    %esi
   13c25:	5f                   	pop    %edi
   13c26:	5d                   	pop    %ebp
   13c27:	c3                   	ret    
   13c28:	90                   	nop    
   13c29:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013c30 <_MiniIndicateReceivePacket@12>:
   13c30:	55                   	push   %ebp
   13c31:	89 e5                	mov    %esp,%ebp
   13c33:	57                   	push   %edi
   13c34:	56                   	push   %esi
   13c35:	53                   	push   %ebx
   13c36:	83 ec 0c             	sub    $0xc,%esp
   13c39:	31 ff                	xor    %edi,%edi
   13c3b:	3b 7d 10             	cmp    0x10(%ebp),%edi
   13c3e:	73 61                	jae    13ca1 <_MiniIndicateReceivePacket@12+0x71>
   13c40:	50                   	push   %eax
   13c41:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   13c44:	68 4e 44 50 6b       	push   $0x6b50444e
   13c49:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   13c50:	68 ee 05 00 00       	push   $0x5ee
   13c55:	50                   	push   %eax
   13c56:	e8 15 fd ff ff       	call   13970 <_NdisAllocateMemoryWithTag@12>
   13c5b:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   13c5e:	31 f6                	xor    %esi,%esi
   13c60:	5b                   	pop    %ebx
   13c61:	85 d2                	test   %edx,%edx
   13c63:	74 3c                	je     13ca1 <_MiniIndicateReceivePacket@12+0x71>
   13c65:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   13c68:	8b 04 b9             	mov    (%ecx,%edi,4),%eax
   13c6b:	8b 58 08             	mov    0x8(%eax),%ebx
   13c6e:	85 db                	test   %ebx,%ebx
   13c70:	75 3e                	jne    13cb0 <_MiniIndicateReceivePacket@12+0x80>
   13c72:	50                   	push   %eax
   13c73:	8d 46 f2             	lea    0xfffffff2(%esi),%eax
   13c76:	8b 75 08             	mov    0x8(%ebp),%esi
   13c79:	50                   	push   %eax
   13c7a:	50                   	push   %eax
   13c7b:	8d 42 0e             	lea    0xe(%edx),%eax
   13c7e:	47                   	inc    %edi
   13c7f:	50                   	push   %eax
   13c80:	6a 0e                	push   $0xe
   13c82:	52                   	push   %edx
   13c83:	6a 00                	push   $0x0
   13c85:	56                   	push   %esi
   13c86:	e8 45 ff ff ff       	call   13bd0 <_MiniIndicateData>
   13c8b:	83 c4 1c             	add    $0x1c,%esp
   13c8e:	8b 5d f0             	mov    0xfffffff0(%ebp),%ebx
   13c91:	6a 00                	push   $0x0
   13c93:	6a 00                	push   $0x0
   13c95:	53                   	push   %ebx
   13c96:	e8 a5 fd ff ff       	call   13a40 <_NdisFreeMemory@12>
   13c9b:	59                   	pop    %ecx
   13c9c:	3b 7d 10             	cmp    0x10(%ebp),%edi
   13c9f:	72 9f                	jb     13c40 <_MiniIndicateReceivePacket@12+0x10>
   13ca1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13ca4:	5b                   	pop    %ebx
   13ca5:	5e                   	pop    %esi
   13ca6:	5f                   	pop    %edi
   13ca7:	5d                   	pop    %ebp
   13ca8:	c2 0c 00             	ret    $0xc
   13cab:	90                   	nop    
   13cac:	8d 74 26 00          	lea    0x0(%esi),%esi
   13cb0:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   13cb3:	51                   	push   %ecx
   13cb4:	8d 4d e8             	lea    0xffffffe8(%ebp),%ecx
   13cb7:	50                   	push   %eax
   13cb8:	51                   	push   %ecx
   13cb9:	53                   	push   %ebx
   13cba:	e8 91 db ff ff       	call   11850 <_NdisQueryBuffer@12>
   13cbf:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   13cc2:	89 f0                	mov    %esi,%eax
   13cc4:	01 d0                	add    %edx,%eax
   13cc6:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   13cc9:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   13ccc:	51                   	push   %ecx
   13ccd:	52                   	push   %edx
   13cce:	50                   	push   %eax
   13ccf:	e8 fc 29 00 00       	call   166d0 <_memcpy>
   13cd4:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13cd7:	01 c6                	add    %eax,%esi
   13cd9:	8b 03                	mov    (%ebx),%eax
   13cdb:	83 c4 10             	add    $0x10,%esp
   13cde:	89 c3                	mov    %eax,%ebx
   13ce0:	85 c0                	test   %eax,%eax
   13ce2:	75 cc                	jne    13cb0 <_MiniIndicateReceivePacket@12+0x80>
   13ce4:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   13ce7:	eb 89                	jmp    13c72 <_MiniIndicateReceivePacket@12+0x42>
   13ce9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013cf0 <_MiniResetComplete@12>:
   13cf0:	55                   	push   %ebp
   13cf1:	89 e5                	mov    %esp,%ebp
   13cf3:	5d                   	pop    %ebp
   13cf4:	c2 0c 00             	ret    $0xc
   13cf7:	89 f6                	mov    %esi,%esi
   13cf9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013d00 <_MiniSendComplete@12>:
   13d00:	55                   	push   %ebp
   13d01:	89 e5                	mov    %esp,%ebp
   13d03:	8b 45 0c             	mov    0xc(%ebp),%eax
   13d06:	8b 50 30             	mov    0x30(%eax),%edx
   13d09:	8b 8a cc 00 00 00    	mov    0xcc(%edx),%ecx
   13d0f:	8b 42 10             	mov    0x10(%edx),%eax
   13d12:	89 45 08             	mov    %eax,0x8(%ebp)
   13d15:	c9                   	leave  
   13d16:	ff 61 20             	jmp    *0x20(%ecx)
   13d19:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013d20 <_MiniSendResourcesAvailable@4>:
   13d20:	55                   	push   %ebp
   13d21:	89 e5                	mov    %esp,%ebp
   13d23:	5d                   	pop    %ebp
   13d24:	c2 04 00             	ret    $0x4
   13d27:	89 f6                	mov    %esi,%esi
   13d29:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013d30 <_MiniTransferDataComplete@16>:
   13d30:	55                   	push   %ebp
   13d31:	89 e5                	mov    %esp,%ebp
   13d33:	83 ec 0c             	sub    $0xc,%esp
   13d36:	8b 45 0c             	mov    0xc(%ebp),%eax
   13d39:	8b 50 30             	mov    0x30(%eax),%edx
   13d3c:	8b 8a cc 00 00 00    	mov    0xcc(%edx),%ecx
   13d42:	ff 75 10             	pushl  0x10(%ebp)
   13d45:	50                   	push   %eax
   13d46:	8b 42 10             	mov    0x10(%edx),%eax
   13d49:	50                   	push   %eax
   13d4a:	ff 51 20             	call   *0x20(%ecx)
   13d4d:	c9                   	leave  
   13d4e:	c2 10 00             	ret    $0x10
   13d51:	eb 0d                	jmp    13d60 <_MiniAdapterHasAddress>
   13d53:	90                   	nop    
   13d54:	90                   	nop    
   13d55:	90                   	nop    
   13d56:	90                   	nop    
   13d57:	90                   	nop    
   13d58:	90                   	nop    
   13d59:	90                   	nop    
   13d5a:	90                   	nop    
   13d5b:	90                   	nop    
   13d5c:	90                   	nop    
   13d5d:	90                   	nop    
   13d5e:	90                   	nop    
   13d5f:	90                   	nop    

00013d60 <_MiniAdapterHasAddress>:
   13d60:	55                   	push   %ebp
   13d61:	89 e5                	mov    %esp,%ebp
   13d63:	53                   	push   %ebx
   13d64:	83 ec 14             	sub    $0x14,%esp
   13d67:	8b 45 0c             	mov    0xc(%ebp),%eax
   13d6a:	8b 5d 08             	mov    0x8(%ebp),%ebx
   13d6d:	8b 50 08             	mov    0x8(%eax),%edx
   13d70:	31 c0                	xor    %eax,%eax
   13d72:	85 d2                	test   %edx,%edx
   13d74:	75 0a                	jne    13d80 <_MiniAdapterHasAddress+0x20>
   13d76:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13d79:	c9                   	leave  
   13d7a:	c3                   	ret    
   13d7b:	90                   	nop    
   13d7c:	8d 74 26 00          	lea    0x0(%esi),%esi
   13d80:	50                   	push   %eax
   13d81:	8d 45 f8             	lea    0xfffffff8(%ebp),%eax
   13d84:	50                   	push   %eax
   13d85:	8d 45 f4             	lea    0xfffffff4(%ebp),%eax
   13d88:	50                   	push   %eax
   13d89:	52                   	push   %edx
   13d8a:	e8 c1 da ff ff       	call   11850 <_NdisQueryBuffer@12>
   13d8f:	8b 93 f8 00 00 00    	mov    0xf8(%ebx),%edx
   13d95:	31 c0                	xor    %eax,%eax
   13d97:	59                   	pop    %ecx
   13d98:	85 d2                	test   %edx,%edx
   13d9a:	75 da                	jne    13d76 <_MiniAdapterHasAddress+0x16>
   13d9c:	83 7d f8 05          	cmpl   $0x5,0xfffffff8(%ebp)
   13da0:	76 d4                	jbe    13d76 <_MiniAdapterHasAddress+0x16>
   13da2:	8d 83 4c 05 00 00    	lea    0x54c(%ebx),%eax
   13da8:	53                   	push   %ebx
   13da9:	6a 06                	push   $0x6
   13dab:	8b 4d f4             	mov    0xfffffff4(%ebp),%ecx
   13dae:	51                   	push   %ecx
   13daf:	50                   	push   %eax
   13db0:	ff 15 d0 e2 01 00    	call   *0x1e2d0
   13db6:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13db9:	83 f8 06             	cmp    $0x6,%eax
   13dbc:	5a                   	pop    %edx
   13dbd:	0f 94 c0             	sete   %al
   13dc0:	25 ff 00 00 00       	and    $0xff,%eax
   13dc5:	c9                   	leave  
   13dc6:	c3                   	ret    
   13dc7:	89 f6                	mov    %esi,%esi
   13dc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013dd0 <_MiniLocateDevice>:
   13dd0:	55                   	push   %ebp
   13dd1:	31 c0                	xor    %eax,%eax
   13dd3:	89 e5                	mov    %esp,%ebp
   13dd5:	57                   	push   %edi
   13dd6:	56                   	push   %esi
   13dd7:	53                   	push   %ebx
   13dd8:	83 ec 0c             	sub    $0xc,%esp
   13ddb:	31 f6                	xor    %esi,%esi
   13ddd:	8b 7d 08             	mov    0x8(%ebp),%edi
   13de0:	81 3d 00 90 01 00 00 	cmpl   $0x19000,0x19000
   13de7:	90 01 00 
   13dea:	74 5a                	je     13e46 <_MiniLocateDevice+0x76>
   13dec:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   13def:	51                   	push   %ecx
   13df0:	51                   	push   %ecx
   13df1:	50                   	push   %eax
   13df2:	68 30 90 01 00       	push   $0x19030
   13df7:	ff 15 dc e1 01 00    	call   *0x1e1dc
   13dfd:	8b 1d 00 90 01 00    	mov    0x19000,%ebx
   13e03:	58                   	pop    %eax
   13e04:	5a                   	pop    %edx
   13e05:	eb 20                	jmp    13e27 <_MiniLocateDevice+0x57>
   13e07:	8d 83 f8 fa ff ff    	lea    0xfffffaf8(%ebx),%eax
   13e0d:	51                   	push   %ecx
   13e0e:	6a 01                	push   $0x1
   13e10:	50                   	push   %eax
   13e11:	57                   	push   %edi
   13e12:	ff 15 d4 e2 01 00    	call   *0x1e2d4
   13e18:	8d b3 e8 fa ff ff    	lea    0xfffffae8(%ebx),%esi
   13e1e:	5a                   	pop    %edx
   13e1f:	85 c0                	test   %eax,%eax
   13e21:	74 2b                	je     13e4e <_MiniLocateDevice+0x7e>
   13e23:	31 f6                	xor    %esi,%esi
   13e25:	8b 1b                	mov    (%ebx),%ebx
   13e27:	81 fb 00 90 01 00    	cmp    $0x19000,%ebx
   13e2d:	75 d8                	jne    13e07 <_MiniLocateDevice+0x37>
   13e2f:	31 c0                	xor    %eax,%eax
   13e31:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   13e34:	51                   	push   %ecx
   13e35:	51                   	push   %ecx
   13e36:	50                   	push   %eax
   13e37:	68 30 90 01 00       	push   $0x19030
   13e3c:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   13e42:	58                   	pop    %eax
   13e43:	89 f0                	mov    %esi,%eax
   13e45:	5a                   	pop    %edx
   13e46:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13e49:	5b                   	pop    %ebx
   13e4a:	5e                   	pop    %esi
   13e4b:	5f                   	pop    %edi
   13e4c:	5d                   	pop    %ebp
   13e4d:	c3                   	ret    
   13e4e:	8d 4b 18             	lea    0x18(%ebx),%ecx
   13e51:	ff 15 08 e2 01 00    	call   *0x1e208
   13e57:	eb d6                	jmp    13e2f <_MiniLocateDevice+0x5f>
   13e59:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013e60 <_MiniQueryInformation>:
   13e60:	55                   	push   %ebp
   13e61:	89 e5                	mov    %esp,%ebp
   13e63:	57                   	push   %edi
   13e64:	56                   	push   %esi
   13e65:	53                   	push   %ebx
   13e66:	83 ec 0c             	sub    $0xc,%esp
   13e69:	8b 75 08             	mov    0x8(%ebp),%esi
   13e6c:	8b 5d 10             	mov    0x10(%ebp),%ebx
   13e6f:	8b 7d 14             	mov    0x14(%ebp),%edi
   13e72:	8b 86 44 05 00 00    	mov    0x544(%esi),%eax
   13e78:	85 c0                	test   %eax,%eax
   13e7a:	75 33                	jne    13eaf <_MiniQueryInformation+0x4f>
   13e7c:	85 db                	test   %ebx,%ebx
   13e7e:	50                   	push   %eax
   13e7f:	50                   	push   %eax
   13e80:	89 d8                	mov    %ebx,%eax
   13e82:	74 74                	je     13ef8 <_MiniQueryInformation+0x98>
   13e84:	50                   	push   %eax
   13e85:	6a 00                	push   $0x0
   13e87:	ff 15 24 e2 01 00    	call   *0x1e224
   13e8d:	85 c0                	test   %eax,%eax
   13e8f:	89 86 40 05 00 00    	mov    %eax,0x540(%esi)
   13e95:	5a                   	pop    %edx
   13e96:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   13e9b:	59                   	pop    %ecx
   13e9c:	74 42                	je     13ee0 <_MiniQueryInformation+0x80>
   13e9e:	89 d8                	mov    %ebx,%eax
   13ea0:	85 db                	test   %ebx,%ebx
   13ea2:	75 05                	jne    13ea9 <_MiniQueryInformation+0x49>
   13ea4:	b8 20 00 00 00       	mov    $0x20,%eax
   13ea9:	89 86 44 05 00 00    	mov    %eax,0x544(%esi)
   13eaf:	89 da                	mov    %ebx,%edx
   13eb1:	85 db                	test   %ebx,%ebx
   13eb3:	74 3b                	je     13ef0 <_MiniQueryInformation+0x90>
   13eb5:	89 55 f0             	mov    %edx,0xfffffff0(%ebp)
   13eb8:	8d 5d f0             	lea    0xfffffff0(%ebp),%ebx
   13ebb:	51                   	push   %ecx
   13ebc:	51                   	push   %ecx
   13ebd:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   13ec3:	53                   	push   %ebx
   13ec4:	57                   	push   %edi
   13ec5:	52                   	push   %edx
   13ec6:	8b 96 40 05 00 00    	mov    0x540(%esi),%edx
   13ecc:	52                   	push   %edx
   13ecd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   13ed0:	51                   	push   %ecx
   13ed1:	8b 56 0c             	mov    0xc(%esi),%edx
   13ed4:	52                   	push   %edx
   13ed5:	ff 50 34             	call   *0x34(%eax)
   13ed8:	5a                   	pop    %edx
   13ed9:	85 c0                	test   %eax,%eax
   13edb:	59                   	pop    %ecx
   13edc:	89 c2                	mov    %eax,%edx
   13ede:	78 20                	js     13f00 <_MiniQueryInformation+0xa0>
   13ee0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13ee3:	89 d0                	mov    %edx,%eax
   13ee5:	5b                   	pop    %ebx
   13ee6:	5e                   	pop    %esi
   13ee7:	5f                   	pop    %edi
   13ee8:	5d                   	pop    %ebp
   13ee9:	c3                   	ret    
   13eea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13ef0:	8b 96 44 05 00 00    	mov    0x544(%esi),%edx
   13ef6:	eb bd                	jmp    13eb5 <_MiniQueryInformation+0x55>
   13ef8:	b8 20 00 00 00       	mov    $0x20,%eax
   13efd:	eb 85                	jmp    13e84 <_MiniQueryInformation+0x24>
   13eff:	90                   	nop    
   13f00:	3d 14 00 01 c0       	cmp    $0xc0010014,%eax
   13f05:	74 0c                	je     13f13 <_MiniQueryInformation+0xb3>
   13f07:	89 c2                	mov    %eax,%edx
   13f09:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13f0c:	89 d0                	mov    %edx,%eax
   13f0e:	5b                   	pop    %ebx
   13f0f:	5e                   	pop    %esi
   13f10:	5f                   	pop    %edi
   13f11:	5d                   	pop    %ebp
   13f12:	c3                   	ret    
   13f13:	83 ec 0c             	sub    $0xc,%esp
   13f16:	8b 86 40 05 00 00    	mov    0x540(%esi),%eax
   13f1c:	50                   	push   %eax
   13f1d:	ff 15 2c e2 01 00    	call   *0x1e22c
   13f23:	8b 8e 44 05 00 00    	mov    0x544(%esi),%ecx
   13f29:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   13f2c:	01 c8                	add    %ecx,%eax
   13f2e:	89 86 44 05 00 00    	mov    %eax,0x544(%esi)
   13f34:	89 04 24             	mov    %eax,(%esp)
   13f37:	6a 00                	push   $0x0
   13f39:	ff 15 24 e2 01 00    	call   *0x1e224
   13f3f:	89 c1                	mov    %eax,%ecx
   13f41:	89 86 40 05 00 00    	mov    %eax,0x540(%esi)
   13f47:	85 c9                	test   %ecx,%ecx
   13f49:	58                   	pop    %eax
   13f4a:	5a                   	pop    %edx
   13f4b:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   13f50:	74 8e                	je     13ee0 <_MiniQueryInformation+0x80>
   13f52:	50                   	push   %eax
   13f53:	50                   	push   %eax
   13f54:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   13f5a:	53                   	push   %ebx
   13f5b:	57                   	push   %edi
   13f5c:	8b 9e 44 05 00 00    	mov    0x544(%esi),%ebx
   13f62:	53                   	push   %ebx
   13f63:	51                   	push   %ecx
   13f64:	8b 55 0c             	mov    0xc(%ebp),%edx
   13f67:	52                   	push   %edx
   13f68:	8b 7e 0c             	mov    0xc(%esi),%edi
   13f6b:	57                   	push   %edi
   13f6c:	ff 50 34             	call   *0x34(%eax)
   13f6f:	5b                   	pop    %ebx
   13f70:	89 c2                	mov    %eax,%edx
   13f72:	5e                   	pop    %esi
   13f73:	eb 94                	jmp    13f09 <_MiniQueryInformation+0xa9>
   13f75:	8d 74 26 00          	lea    0x0(%esi),%esi
   13f79:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013f80 <@MiniQueueWorkItem@12>:
   13f80:	55                   	push   %ebp
   13f81:	89 e5                	mov    %esp,%ebp
   13f83:	56                   	push   %esi
   13f84:	89 d6                	mov    %edx,%esi
   13f86:	53                   	push   %ebx
   13f87:	89 cb                	mov    %ecx,%ebx
   13f89:	50                   	push   %eax
   13f8a:	50                   	push   %eax
   13f8b:	6a 0c                	push   $0xc
   13f8d:	6a 00                	push   $0x0
   13f8f:	ff 15 24 e2 01 00    	call   *0x1e224
   13f95:	89 c2                	mov    %eax,%edx
   13f97:	58                   	pop    %eax
   13f98:	85 d2                	test   %edx,%edx
   13f9a:	59                   	pop    %ecx
   13f9b:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   13fa0:	74 3b                	je     13fdd <@MiniQueueWorkItem@12+0x5d>
   13fa2:	8b 45 08             	mov    0x8(%ebp),%eax
   13fa5:	89 72 04             	mov    %esi,0x4(%edx)
   13fa8:	89 42 08             	mov    %eax,0x8(%edx)
   13fab:	8b 83 10 05 00 00    	mov    0x510(%ebx),%eax
   13fb1:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   13fb7:	85 c0                	test   %eax,%eax
   13fb9:	74 2b                	je     13fe6 <@MiniQueueWorkItem@12+0x66>
   13fbb:	8b 83 14 05 00 00    	mov    0x514(%ebx),%eax
   13fc1:	89 10                	mov    %edx,(%eax)
   13fc3:	89 93 14 05 00 00    	mov    %edx,0x514(%ebx)
   13fc9:	50                   	push   %eax
   13fca:	8d 83 70 04 00 00    	lea    0x470(%ebx),%eax
   13fd0:	6a 00                	push   $0x0
   13fd2:	6a 00                	push   $0x0
   13fd4:	50                   	push   %eax
   13fd5:	ff 15 80 e2 01 00    	call   *0x1e280
   13fdb:	31 c0                	xor    %eax,%eax
   13fdd:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   13fe0:	5b                   	pop    %ebx
   13fe1:	5e                   	pop    %esi
   13fe2:	5d                   	pop    %ebp
   13fe3:	c2 04 00             	ret    $0x4
   13fe6:	89 93 10 05 00 00    	mov    %edx,0x510(%ebx)
   13fec:	eb d5                	jmp    13fc3 <@MiniQueueWorkItem@12+0x43>
   13fee:	89 f6                	mov    %esi,%esi

00013ff0 <@MiniDequeueWorkItem@12>:
   13ff0:	55                   	push   %ebp
   13ff1:	89 e5                	mov    %esp,%ebp
   13ff3:	53                   	push   %ebx
   13ff4:	50                   	push   %eax
   13ff5:	89 cb                	mov    %ecx,%ebx
   13ff7:	8b 89 10 05 00 00    	mov    0x510(%ecx),%ecx
   13ffd:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   14002:	85 c9                	test   %ecx,%ecx
   14004:	74 29                	je     1402f <@MiniDequeueWorkItem@12+0x3f>
   14006:	8b 01                	mov    (%ecx),%eax
   14008:	39 8b 14 05 00 00    	cmp    %ecx,0x514(%ebx)
   1400e:	89 83 10 05 00 00    	mov    %eax,0x510(%ebx)
   14014:	74 20                	je     14036 <@MiniDequeueWorkItem@12+0x46>
   14016:	8b 41 04             	mov    0x4(%ecx),%eax
   14019:	83 ec 0c             	sub    $0xc,%esp
   1401c:	89 02                	mov    %eax,(%edx)
   1401e:	8b 45 08             	mov    0x8(%ebp),%eax
   14021:	8b 51 08             	mov    0x8(%ecx),%edx
   14024:	89 10                	mov    %edx,(%eax)
   14026:	51                   	push   %ecx
   14027:	ff 15 2c e2 01 00    	call   *0x1e22c
   1402d:	31 c0                	xor    %eax,%eax
   1402f:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   14032:	c9                   	leave  
   14033:	c2 04 00             	ret    $0x4
   14036:	c7 83 14 05 00 00 00 	movl   $0x0,0x514(%ebx)
   1403d:	00 00 00 
   14040:	eb d4                	jmp    14016 <@MiniDequeueWorkItem@12+0x26>
   14042:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   14049:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014050 <_MiniDoRequest>:
   14050:	55                   	push   %ebp
   14051:	89 e5                	mov    %esp,%ebp
   14053:	53                   	push   %ebx
   14054:	50                   	push   %eax
   14055:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   14058:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1405b:	8b 41 10             	mov    0x10(%ecx),%eax
   1405e:	89 4b 34             	mov    %ecx,0x34(%ebx)
   14061:	85 c0                	test   %eax,%eax
   14063:	74 2b                	je     14090 <_MiniDoRequest+0x40>
   14065:	48                   	dec    %eax
   14066:	75 50                	jne    140b8 <_MiniDoRequest+0x68>
   14068:	8d 51 24             	lea    0x24(%ecx),%edx
   1406b:	50                   	push   %eax
   1406c:	50                   	push   %eax
   1406d:	8b 83 34 05 00 00    	mov    0x534(%ebx),%eax
   14073:	52                   	push   %edx
   14074:	8d 51 20             	lea    0x20(%ecx),%edx
   14077:	52                   	push   %edx
   14078:	8b 51 1c             	mov    0x1c(%ecx),%edx
   1407b:	52                   	push   %edx
   1407c:	8b 51 18             	mov    0x18(%ecx),%edx
   1407f:	52                   	push   %edx
   14080:	8b 49 14             	mov    0x14(%ecx),%ecx
   14083:	51                   	push   %ecx
   14084:	8b 53 0c             	mov    0xc(%ebx),%edx
   14087:	52                   	push   %edx
   14088:	ff 50 44             	call   *0x44(%eax)
   1408b:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1408e:	c9                   	leave  
   1408f:	c3                   	ret    
   14090:	8d 51 24             	lea    0x24(%ecx),%edx
   14093:	50                   	push   %eax
   14094:	50                   	push   %eax
   14095:	8b 83 34 05 00 00    	mov    0x534(%ebx),%eax
   1409b:	52                   	push   %edx
   1409c:	8d 51 20             	lea    0x20(%ecx),%edx
   1409f:	52                   	push   %edx
   140a0:	8b 51 1c             	mov    0x1c(%ecx),%edx
   140a3:	52                   	push   %edx
   140a4:	8b 51 18             	mov    0x18(%ecx),%edx
   140a7:	52                   	push   %edx
   140a8:	8b 49 14             	mov    0x14(%ecx),%ecx
   140ab:	51                   	push   %ecx
   140ac:	8b 53 0c             	mov    0xc(%ebx),%edx
   140af:	52                   	push   %edx
   140b0:	ff 50 34             	call   *0x34(%eax)
   140b3:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   140b6:	c9                   	leave  
   140b7:	c3                   	ret    
   140b8:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   140bd:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   140c0:	c9                   	leave  
   140c1:	c3                   	ret    
   140c2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   140c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000140d0 <_NdisMQueryInformationComplete@8>:
   140d0:	55                   	push   %ebp
   140d1:	89 e5                	mov    %esp,%ebp
   140d3:	8b 55 08             	mov    0x8(%ebp),%edx
   140d6:	8b 82 88 01 00 00    	mov    0x188(%edx),%eax
   140dc:	85 c0                	test   %eax,%eax
   140de:	75 04                	jne    140e4 <_NdisMQueryInformationComplete@8+0x14>
   140e0:	c9                   	leave  
   140e1:	c2 08 00             	ret    $0x8
   140e4:	c9                   	leave  
   140e5:	ff e0                	jmp    *%eax
   140e7:	89 f6                	mov    %esi,%esi
   140e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000140f0 <_NdisMSendComplete@12>:
   140f0:	55                   	push   %ebp
   140f1:	89 e5                	mov    %esp,%ebp
   140f3:	c9                   	leave  
   140f4:	e9 07 fc ff ff       	jmp    13d00 <_MiniSendComplete@12>
   140f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014100 <_MiniportDpc@16>:
   14100:	55                   	push   %ebp
   14101:	89 e5                	mov    %esp,%ebp
   14103:	56                   	push   %esi
   14104:	53                   	push   %ebx
   14105:	83 ec 1c             	sub    $0x1c,%esp
   14108:	8d 5d f4             	lea    0xfffffff4(%ebp),%ebx
   1410b:	8b 75 0c             	mov    0xc(%ebp),%esi
   1410e:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   14111:	89 f1                	mov    %esi,%ecx
   14113:	53                   	push   %ebx
   14114:	e8 d7 fe ff ff       	call   13ff0 <@MiniDequeueWorkItem@12>
   14119:	83 c4 0c             	add    $0xc,%esp
   1411c:	85 c0                	test   %eax,%eax
   1411e:	75 13                	jne    14133 <_MiniportDpc@16+0x33>
   14120:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   14123:	83 f8 01             	cmp    $0x1,%eax
   14126:	74 18                	je     14140 <_MiniportDpc@16+0x40>
   14128:	72 66                	jb     14190 <_MiniportDpc@16+0x90>
   1412a:	83 f8 06             	cmp    $0x6,%eax
   1412d:	0f 84 a9 00 00 00    	je     141dc <_MiniportDpc@16+0xdc>
   14133:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   14136:	5b                   	pop    %ebx
   14137:	5e                   	pop    %esi
   14138:	5d                   	pop    %ebp
   14139:	c2 10 00             	ret    $0x10
   1413c:	8d 74 26 00          	lea    0x0(%esi),%esi
   14140:	8b 96 34 05 00 00    	mov    0x534(%esi),%edx
   14146:	8b 42 50             	mov    0x50(%edx),%eax
   14149:	85 c0                	test   %eax,%eax
   1414b:	74 7d                	je     141ca <_MiniportDpc@16+0xca>
   1414d:	51                   	push   %ecx
   1414e:	6a 01                	push   $0x1
   14150:	53                   	push   %ebx
   14151:	8b 56 0c             	mov    0xc(%esi),%edx
   14154:	52                   	push   %edx
   14155:	ff d0                	call   *%eax
   14157:	8b 55 f4             	mov    0xfffffff4(%ebp),%edx
   1415a:	66 8b 42 1e          	mov    0x1e(%edx),%ax
   1415e:	25 ff ff 00 00       	and    $0xffff,%eax
   14163:	8b 54 02 1c          	mov    0x1c(%edx,%eax,1),%edx
   14167:	5b                   	pop    %ebx
   14168:	81 fa 03 01 00 00    	cmp    $0x103,%edx
   1416e:	74 c3                	je     14133 <_MiniportDpc@16+0x33>
   14170:	51                   	push   %ecx
   14171:	52                   	push   %edx
   14172:	8b 55 f4             	mov    0xfffffff4(%ebp),%edx
   14175:	52                   	push   %edx
   14176:	56                   	push   %esi
   14177:	e8 74 ff ff ff       	call   140f0 <_NdisMSendComplete@12>
   1417c:	c6 86 90 04 00 00 00 	movb   $0x0,0x490(%esi)
   14183:	58                   	pop    %eax
   14184:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   14187:	5b                   	pop    %ebx
   14188:	5e                   	pop    %esi
   14189:	5d                   	pop    %ebp
   1418a:	c2 10 00             	ret    $0x10
   1418d:	8d 76 00             	lea    0x0(%esi),%esi
   14190:	50                   	push   %eax
   14191:	50                   	push   %eax
   14192:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
   14195:	50                   	push   %eax
   14196:	56                   	push   %esi
   14197:	e8 b4 fe ff ff       	call   14050 <_MiniDoRequest>
   1419c:	83 c4 10             	add    $0x10,%esp
   1419f:	89 c2                	mov    %eax,%edx
   141a1:	3d 03 01 00 00       	cmp    $0x103,%eax
   141a6:	74 8b                	je     14133 <_MiniportDpc@16+0x33>
   141a8:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
   141ab:	8b 40 10             	mov    0x10(%eax),%eax
   141ae:	85 c0                	test   %eax,%eax
   141b0:	74 47                	je     141f9 <_MiniportDpc@16+0xf9>
   141b2:	48                   	dec    %eax
   141b3:	0f 85 7a ff ff ff    	jne    14133 <_MiniportDpc@16+0x33>
   141b9:	51                   	push   %ecx
   141ba:	51                   	push   %ecx
   141bb:	52                   	push   %edx
   141bc:	56                   	push   %esi
   141bd:	ff 96 8c 01 00 00    	call   *0x18c(%esi)
   141c3:	58                   	pop    %eax
   141c4:	5a                   	pop    %edx
   141c5:	e9 69 ff ff ff       	jmp    14133 <_MiniportDpc@16+0x33>
   141ca:	50                   	push   %eax
   141cb:	6a 00                	push   $0x0
   141cd:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
   141d0:	50                   	push   %eax
   141d1:	8b 46 0c             	mov    0xc(%esi),%eax
   141d4:	50                   	push   %eax
   141d5:	ff 52 40             	call   *0x40(%edx)
   141d8:	89 c2                	mov    %eax,%edx
   141da:	eb 8b                	jmp    14167 <_MiniportDpc@16+0x67>
   141dc:	50                   	push   %eax
   141dd:	50                   	push   %eax
   141de:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
   141e1:	50                   	push   %eax
   141e2:	56                   	push   %esi
   141e3:	e8 48 0f 00 00       	call   15130 <_ProIndicatePacket>
   141e8:	83 c4 0c             	add    $0xc,%esp
   141eb:	50                   	push   %eax
   141ec:	8b 45 f4             	mov    0xfffffff4(%ebp),%eax
   141ef:	50                   	push   %eax
   141f0:	56                   	push   %esi
   141f1:	e8 0a fb ff ff       	call   13d00 <_MiniSendComplete@12>
   141f6:	58                   	pop    %eax
   141f7:	eb 8b                	jmp    14184 <_MiniportDpc@16+0x84>
   141f9:	53                   	push   %ebx
   141fa:	53                   	push   %ebx
   141fb:	52                   	push   %edx
   141fc:	56                   	push   %esi
   141fd:	e8 ce fe ff ff       	call   140d0 <_NdisMQueryInformationComplete@8>
   14202:	58                   	pop    %eax
   14203:	5a                   	pop    %edx
   14204:	e9 2a ff ff ff       	jmp    14133 <_MiniportDpc@16+0x33>
   14209:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014210 <_NdisMCloseLog@4>:
   14210:	55                   	push   %ebp
   14211:	89 e5                	mov    %esp,%ebp
   14213:	5d                   	pop    %ebp
   14214:	c2 04 00             	ret    $0x4
   14217:	89 f6                	mov    %esi,%esi
   14219:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014220 <_NdisMCreateLog@12>:
   14220:	55                   	push   %ebp
   14221:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   14226:	89 e5                	mov    %esp,%ebp
   14228:	5d                   	pop    %ebp
   14229:	c2 0c 00             	ret    $0xc
   1422c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014230 <_NdisMDeregisterAdapterShutdownHandler@4>:
   14230:	55                   	push   %ebp
   14231:	89 e5                	mov    %esp,%ebp
   14233:	8b 45 08             	mov    0x8(%ebp),%eax
   14236:	8b 80 6c 05 00 00    	mov    0x56c(%eax),%eax
   1423c:	8b 50 04             	mov    0x4(%eax),%edx
   1423f:	85 d2                	test   %edx,%edx
   14241:	75 04                	jne    14247 <_NdisMDeregisterAdapterShutdownHandler@4+0x17>
   14243:	c9                   	leave  
   14244:	c2 04 00             	ret    $0x4
   14247:	8b 40 08             	mov    0x8(%eax),%eax
   1424a:	89 45 08             	mov    %eax,0x8(%ebp)
   1424d:	c9                   	leave  
   1424e:	ff 25 6c e2 01 00    	jmp    *0x1e26c
   14254:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1425a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00014260 <_NdisMFlushLog@4>:
   14260:	55                   	push   %ebp
   14261:	89 e5                	mov    %esp,%ebp
   14263:	5d                   	pop    %ebp
   14264:	c2 04 00             	ret    $0x4
   14267:	89 f6                	mov    %esi,%esi
   14269:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014270 <_NdisMIndicateStatus@16>:
   14270:	55                   	push   %ebp
   14271:	89 e5                	mov    %esp,%ebp
   14273:	5d                   	pop    %ebp
   14274:	c2 10 00             	ret    $0x10
   14277:	89 f6                	mov    %esi,%esi
   14279:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014280 <_NdisMIndicateStatusComplete@4>:
   14280:	55                   	push   %ebp
   14281:	89 e5                	mov    %esp,%ebp
   14283:	5d                   	pop    %ebp
   14284:	c2 04 00             	ret    $0x4
   14287:	89 f6                	mov    %esi,%esi
   14289:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014290 <_NdisInitializeWrapper@16>:
   14290:	55                   	push   %ebp
   14291:	89 e5                	mov    %esp,%ebp
   14293:	57                   	push   %edi
   14294:	56                   	push   %esi
   14295:	53                   	push   %ebx
   14296:	83 ec 14             	sub    $0x14,%esp
   14299:	8b 45 08             	mov    0x8(%ebp),%eax
   1429c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   142a2:	68 90 00 00 00       	push   $0x90
   142a7:	6a 00                	push   $0x0
   142a9:	ff 15 24 e2 01 00    	call   *0x1e224
   142af:	89 c6                	mov    %eax,%esi
   142b1:	58                   	pop    %eax
   142b2:	85 f6                	test   %esi,%esi
   142b4:	5a                   	pop    %edx
   142b5:	0f 84 c6 00 00 00    	je     14381 <_NdisInitializeWrapper@16+0xf1>
   142bb:	50                   	push   %eax
   142bc:	68 90 00 00 00       	push   $0x90
   142c1:	6a 00                	push   $0x0
   142c3:	56                   	push   %esi
   142c4:	e8 a7 23 00 00       	call   16670 <_memset>
   142c9:	8d 46 08             	lea    0x8(%esi),%eax
   142cc:	89 04 24             	mov    %eax,(%esp)
   142cf:	ff 15 78 e2 01 00    	call   *0x1e278
   142d5:	8b 45 0c             	mov    0xc(%ebp),%eax
   142d8:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
   142df:	89 86 80 00 00 00    	mov    %eax,0x80(%esi)
   142e5:	c7 04 24 08 00 00 00 	movl   $0x8,(%esp)
   142ec:	6a 01                	push   $0x1
   142ee:	ff 15 24 e2 01 00    	call   *0x1e224
   142f4:	59                   	pop    %ecx
   142f5:	89 c3                	mov    %eax,%ebx
   142f7:	5f                   	pop    %edi
   142f8:	85 c0                	test   %eax,%eax
   142fa:	0f 84 81 00 00 00    	je     14381 <_NdisInitializeWrapper@16+0xf1>
   14300:	8b 55 10             	mov    0x10(%ebp),%edx
   14303:	66 8b 02             	mov    (%edx),%ax
   14306:	66 89 03             	mov    %ax,(%ebx)
   14309:	83 c0 02             	add    $0x2,%eax
   1430c:	66 89 43 02          	mov    %ax,0x2(%ebx)
   14310:	25 ff ff 00 00       	and    $0xffff,%eax
   14315:	52                   	push   %edx
   14316:	52                   	push   %edx
   14317:	50                   	push   %eax
   14318:	6a 01                	push   $0x1
   1431a:	ff 15 24 e2 01 00    	call   *0x1e224
   14320:	89 c7                	mov    %eax,%edi
   14322:	59                   	pop    %ecx
   14323:	85 ff                	test   %edi,%edi
   14325:	58                   	pop    %eax
   14326:	74 59                	je     14381 <_NdisInitializeWrapper@16+0xf1>
   14328:	66 8b 03             	mov    (%ebx),%ax
   1432b:	25 ff ff 00 00       	and    $0xffff,%eax
   14330:	52                   	push   %edx
   14331:	50                   	push   %eax
   14332:	8b 45 10             	mov    0x10(%ebp),%eax
   14335:	8b 48 04             	mov    0x4(%eax),%ecx
   14338:	51                   	push   %ecx
   14339:	57                   	push   %edi
   1433a:	e8 91 23 00 00       	call   166d0 <_memcpy>
   1433f:	66 8b 03             	mov    (%ebx),%ax
   14342:	66 d1 e8             	shr    %ax

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   14345:	83 c4 0c             	add    $0xc,%esp
    UNIMPLEMENTED
}


VOID STDCALL
MiniSendComplete(
    IN  NDIS_HANDLE     MiniportAdapterHandle,
    IN  PNDIS_PACKET    Packet,
    IN  NDIS_STATUS     Status)
/*
 * FUNCTION: Forwards a message to the initiating protocol saying
 *           that a packet was handled
 * ARGUMENTS:
 *     NdisAdapterHandle = Handle input to MiniportInitialize
 *     Packet            = Pointer to NDIS packet that was sent
 *     Status            = Status of send operation
 */
{
    PADAPTER_BINDING AdapterBinding;

    NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

    AdapterBinding = (PADAPTER_BINDING)Packet->Reserved[0];

    (*AdapterBinding->ProtocolBinding->Chars.SendCompleteHandler)(
        AdapterBinding->NdisOpenBlock.NdisCommonOpenBlock.ProtocolBindingContext,
        Packet,
        Status);
}


VOID STDCALL
MiniSendResourcesAvailable(
    IN  NDIS_HANDLE MiniportAdapterHandle)
{
    UNIMPLEMENTED
}


VOID STDCALL
MiniTransferDataComplete(
    IN  NDIS_HANDLE     MiniportAdapterHandle,
    IN  PNDIS_PACKET    Packet,
    IN  NDIS_STATUS     Status,
    IN  UINT            BytesTransferred)
{
    PADAPTER_BINDING AdapterBinding;

    NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

    AdapterBinding = (PADAPTER_BINDING)Packet->Reserved[0];

    (*AdapterBinding->ProtocolBinding->Chars.SendCompleteHandler)(
        AdapterBinding->NdisOpenBlock.NdisCommonOpenBlock.ProtocolBindingContext,
        Packet,
        Status);
}


BOOLEAN
MiniAdapterHasAddress(
    PLOGICAL_ADAPTER Adapter,
    PNDIS_PACKET Packet)
/*
 * FUNCTION: Determines whether a packet has the same destination address as an adapter
 * ARGUMENTS:
 *     Adapter = Pointer to logical adapter object
 *     Packet  = Pointer to NDIS packet
 * RETURNS:
 *     TRUE if the destination address is that of the adapter, FALSE if not
 */
{
  UINT Length;
  PUCHAR Start1;
  PUCHAR Start2;
  PNDIS_BUFFER NdisBuffer;
  UINT BufferLength;

  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

#ifdef DBG
  if(!Adapter)
    {
      NDIS_DbgPrint(MID_TRACE, ("Adapter object was null\n"));
      return FALSE;
    }

  if(!Packet)
    {
      NDIS_DbgPrint(MID_TRACE, ("Packet was null\n"));
      return FALSE;
    }
#endif

  NdisQueryPacket(Packet, NULL, NULL, &NdisBuffer, NULL);

  if (!NdisBuffer) 
    {
      NDIS_DbgPrint(MID_TRACE, ("Packet contains no buffers.\n"));
      return FALSE;
    }

  NdisQueryBuffer(NdisBuffer, (PVOID)&Start2, &BufferLength);

  /* FIXME: Should handle fragmented packets */

  switch (Adapter->NdisMiniportBlock.MediaType) 
    {
      case NdisMedium802_3:
        Length = ETH_LENGTH_OF_ADDRESS;
        /* Destination address is the first field */
        break;

      default:
        NDIS_DbgPrint(MIN_TRACE, ("Adapter has unsupported media type (0x%X).\n", Adapter->NdisMiniportBlock.MediaType));
        return FALSE;
    }

  if (BufferLength < Length) 
    {
        NDIS_DbgPrint(MID_TRACE, ("Buffer is too small.\n"));
        return FALSE;
    }

  Start1 = (PUCHAR)&Adapter->Address;
  NDIS_DbgPrint(MAX_TRACE, ("packet address: %x:%x:%x:%x:%x:%x adapter address: %x:%x:%x:%x:%x:%x\n",
      *((char *)Start1), *(((char *)Start1)+1), *(((char *)Start1)+2), *(((char *)Start1)+3), *(((char *)Start1)+4), *(((char *)Start1)+5),
      *((char *)Start2), *(((char *)Start2)+1), *(((char *)Start2)+2), *(((char *)Start2)+3), *(((char *)Start2)+4), *(((char *)Start2)+5))
  );

  return (RtlCompareMemory((PVOID)Start1, (PVOID)Start2, Length) == Length);
}


PLOGICAL_ADAPTER
MiniLocateDevice(
    PNDIS_STRING AdapterName)
/*
 * FUNCTION: Finds an adapter object by name
 * ARGUMENTS:
 *     AdapterName = Pointer to name of adapter
 * RETURNS:
 *     Pointer to logical adapter object, or NULL if none was found.
 *     If found, the adapter is referenced for the caller. The caller
 *     is responsible for dereferencing after use
 */
{
  KIRQL OldIrql;
  PLIST_ENTRY CurrentEntry;
  PLOGICAL_ADAPTER Adapter = 0;

  ASSERT(AdapterName);

  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

  if(IsListEmpty(&AdapterListHead))
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("No registered miniports for protocol to bind to\n"));
      return NULL;
    }

  KeAcquireSpinLock(&AdapterListLock, &OldIrql);
    {
      do
        {
          CurrentEntry = AdapterListHead.Flink;

          while (CurrentEntry != &AdapterListHead) 
            {
              Adapter = CONTAINING_RECORD(CurrentEntry, LOGICAL_ADAPTER, ListEntry);

              ASSERT(Adapter);

              NDIS_DbgPrint(DEBUG_MINIPORT, ("AdapterName = %wZ\n", AdapterName));
              NDIS_DbgPrint(DEBUG_MINIPORT, ("DeviceName = %wZ\n", &Adapter->NdisMiniportBlock.MiniportName));

              if (RtlCompareUnicodeString(AdapterName, &Adapter->NdisMiniportBlock.MiniportName, TRUE) == 0) 
                {
                  ReferenceObject(Adapter);
                  break;
                }

              Adapter = NULL;
              CurrentEntry = CurrentEntry->Flink;
            }
        } while (0);
    }
  KeReleaseSpinLock(&AdapterListLock, OldIrql);

  if(Adapter)
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Leaving. Adapter found at 0x%x\n", Adapter)); 
    }
  else
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Leaving (adapter not found).\n"));
    }

  return Adapter;
}


NDIS_STATUS
MiniQueryInformation(
    PLOGICAL_ADAPTER    Adapter,
    NDIS_OID            Oid,
    ULONG               Size,
    PULONG              BytesWritten)
/*
 * FUNCTION: Queries a logical adapter for properties
 * ARGUMENTS:
 *     Adapter      = Pointer to the logical adapter object to query
 *     Oid          = Specifies the Object ID to query for
 *     Size         = If non-zero overrides the length in the adapter object
 *     BytesWritten = Address of buffer to place number of bytes written
 * NOTES:
 *     If the specified buffer is too small, a new buffer is allocated,
 *     and the query is attempted again
 * RETURNS:
 *     Status of operation
 * TODO:
 *     Is there any way to use the buffer provided by the protocol?
 */
{
  NDIS_STATUS NdisStatus;
  ULONG BytesNeeded;

  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

  if (Adapter->QueryBufferLength == 0) 
    {
      /* XXX is 32 the right number? */
      Adapter->QueryBuffer = ExAllocatePool(NonPagedPool, (Size == 0)? 32 : Size);

      if (!Adapter->QueryBuffer) 
        {
          NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
          return NDIS_STATUS_RESOURCES;
        }

      /* ditto */
      Adapter->QueryBufferLength = (Size == 0)? 32 : Size;
    }

  /* this is the third time i've seen this conditional */
  BytesNeeded = (Size == 0)? Adapter->QueryBufferLength : Size;

  /* call the miniport's queryinfo handler */
  NdisStatus = (*Adapter->Miniport->Chars.QueryInformationHandler)(
      Adapter->NdisMiniportBlock.MiniportAdapterContext,
      Oid,
      Adapter->QueryBuffer,
      BytesNeeded,
      BytesWritten,
      &BytesNeeded);

  /* XXX is status_pending part of success macro? */
  if ((NT_SUCCESS(NdisStatus)) || (NdisStatus == NDIS_STATUS_PENDING)) 
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Miniport returned status (0x%X).\n", NdisStatus));
      return NdisStatus;
    }

  if (NdisStatus == NDIS_STATUS_INVALID_LENGTH) 
    {
      ExFreePool(Adapter->QueryBuffer);

      Adapter->QueryBufferLength += BytesNeeded;
      Adapter->QueryBuffer = ExAllocatePool(NonPagedPool, Adapter->QueryBufferLength);

      if (!Adapter->QueryBuffer) 
        {
          NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
          return NDIS_STATUS_RESOURCES;
        }

      NdisStatus = (*Adapter->Miniport->Chars.QueryInformationHandler)(
          Adapter->NdisMiniportBlock.MiniportAdapterContext,
          Oid,
          Adapter->QueryBuffer,
          Adapter->QueryBufferLength,
          BytesWritten,
          &BytesNeeded);
    }

  return NdisStatus;
}


NDIS_STATUS
FASTCALL
MiniQueueWorkItem(
    PLOGICAL_ADAPTER    Adapter,
    NDIS_WORK_ITEM_TYPE WorkItemType,
    PVOID               WorkItemContext)
/*
 * FUNCTION: Queues a work item for execution at a later time
 * ARGUMENTS:
 *     Adapter         = Pointer to the logical adapter object to queue work item on
 *     WorkItemType    = Type of work item to queue
 *     WorkItemContext = Pointer to context information for work item
 * NOTES:
 *     Adapter lock must be held when called
 * RETURNS:
 *     Status of operation
 */
{
  PNDIS_MINIPORT_WORK_ITEM Item;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  ASSERT(Adapter);
  ASSERT(KeGetCurrentIrql() >= DISPATCH_LEVEL);

#if 0
  if (Adapter->WorkQueueLevel < NDIS_MINIPORT_WORK_QUEUE_SIZE - 1) 
    {
      Item = &Adapter->WorkQueue[Adapter->WorkQueueLevel];
      Adapter->WorkQueueLevel++;
    } 
  else 
#endif
    {
      Item = ExAllocatePool(NonPagedPool, sizeof(NDIS_MINIPORT_WORK_ITEM));
      if (Item == NULL) 
        {
          NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
          return NDIS_STATUS_RESOURCES;
        }
    }

  Item->WorkItemType    = WorkItemType;
  Item->WorkItemContext = WorkItemContext;

  /* safe due to adapter lock held */
  Item->Link.Next = NULL;
  if (!Adapter->WorkQueueHead) 
    {
      Adapter->WorkQueueHead = Item;
      Adapter->WorkQueueTail = Item;
    } 
  else 
    {
      Adapter->WorkQueueTail->Link.Next = (PSINGLE_LIST_ENTRY)Item;
      Adapter->WorkQueueTail = Item;
    }

  KeInsertQueueDpc(&Adapter->MiniportDpc, NULL, NULL);

  return NDIS_STATUS_SUCCESS;
}


NDIS_STATUS
FASTCALL
MiniDequeueWorkItem(
    PLOGICAL_ADAPTER    Adapter,
    NDIS_WORK_ITEM_TYPE *WorkItemType,
    PVOID               *WorkItemContext)
/*
 * FUNCTION: Dequeues a work item from the work queue of a logical adapter
 * ARGUMENTS:
 *     Adapter         = Pointer to the logical adapter object to dequeue work item from
 *     WorkItemType    = Address of buffer for work item type
 *     WorkItemContext = Address of buffer for pointer to context information
 * NOTES:
 *     Adapter lock must be held when called
 * RETURNS:
 *     Status of operation
 */
{
  PNDIS_MINIPORT_WORK_ITEM Item;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  Item = Adapter->WorkQueueHead;

  if (Item) 
    {
      /* safe due to adapter lock held */
      Adapter->WorkQueueHead = (PNDIS_MINIPORT_WORK_ITEM)Item->Link.Next;

      if (Item == Adapter->WorkQueueTail)
        Adapter->WorkQueueTail = NULL;

      *WorkItemType    = Item->WorkItemType;
      *WorkItemContext = Item->WorkItemContext;

      ExFreePool(Item);

      return NDIS_STATUS_SUCCESS;
    }

  return NDIS_STATUS_FAILURE;
}


NDIS_STATUS
MiniDoRequest(
    PLOGICAL_ADAPTER Adapter,
    PNDIS_REQUEST NdisRequest)
/*
 * FUNCTION: Sends a request to a miniport
 * ARGUMENTS:
 *     Adapter     = Pointer to logical adapter object
 *     NdisRequest = Pointer to NDIS request structure describing request
 * RETURNS:
 *     Status of operation
 */
{
  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

  Adapter->NdisMiniportBlock.MediaRequest = NdisRequest;

  switch (NdisRequest->RequestType) 
    {
      case NdisRequestQueryInformation:
        return (*Adapter->Miniport->Chars.QueryInformationHandler)(
            Adapter->NdisMiniportBlock.MiniportAdapterContext,
            NdisRequest->DATA.QUERY_INFORMATION.Oid,
            NdisRequest->DATA.QUERY_INFORMATION.InformationBuffer,
            NdisRequest->DATA.QUERY_INFORMATION.InformationBufferLength,
            (PULONG)&NdisRequest->DATA.QUERY_INFORMATION.BytesWritten,
            (PULONG)&NdisRequest->DATA.QUERY_INFORMATION.BytesNeeded);
        break;

      case NdisRequestSetInformation:
        return (*Adapter->Miniport->Chars.SetInformationHandler)(
            Adapter->NdisMiniportBlock.MiniportAdapterContext,
            NdisRequest->DATA.SET_INFORMATION.Oid,
            NdisRequest->DATA.SET_INFORMATION.InformationBuffer,
            NdisRequest->DATA.SET_INFORMATION.InformationBufferLength,
            (PULONG)&NdisRequest->DATA.SET_INFORMATION.BytesRead,
            (PULONG)&NdisRequest->DATA.SET_INFORMATION.BytesNeeded);
        break;

      default:
        return NDIS_STATUS_FAILURE;
    }
}


#undef NdisMQueryInformationComplete
/*
 * @implemented
 */
VOID
EXPORT
NdisMQueryInformationComplete(
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  NDIS_STATUS Status)
{
    PNDIS_MINIPORT_BLOCK MiniportBlock = 
	(PNDIS_MINIPORT_BLOCK)MiniportAdapterHandle;
    ASSERT(MiniportBlock);
    if( MiniportBlock->QueryCompleteHandler )
	(MiniportBlock->QueryCompleteHandler)(MiniportAdapterHandle, Status);
}


VOID STDCALL MiniportDpc(
    IN PKDPC Dpc,
    IN PVOID DeferredContext,
    IN PVOID SystemArgument1,
    IN PVOID SystemArgument2)
/*
 * FUNCTION: Deferred routine to handle serialization
 * ARGUMENTS:
 *     Dpc             = Pointer to DPC object
 *     DeferredContext = Pointer to context information (LOGICAL_ADAPTER)
 *     SystemArgument1 = Unused
 *     SystemArgument2 = Unused
 */
{
  NDIS_STATUS NdisStatus;
  PVOID WorkItemContext;
  NDIS_WORK_ITEM_TYPE WorkItemType;
  PLOGICAL_ADAPTER Adapter = GET_LOGICAL_ADAPTER(DeferredContext);

  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

  NdisStatus = MiniDequeueWorkItem(Adapter, &WorkItemType, &WorkItemContext);

  if (NdisStatus == NDIS_STATUS_SUCCESS) 
    {
      switch (WorkItemType) 
        {
          case NdisWorkItemSend:
            /*
             * called by ProSend when protocols want to send packets to the miniport
             */
#ifdef DBG
            MiniDisplayPacket((PNDIS_PACKET)WorkItemContext);
#endif
            if(Adapter->Miniport->Chars.SendPacketsHandler)
              {
                NDIS_DbgPrint(MAX_TRACE, ("Calling miniport's SendPackets handler\n"));

                /*
                 * XXX assumes single-packet - prolly OK since we'll call something
                 * different on multi-packet sends
                 */
                (*Adapter->Miniport->Chars.SendPacketsHandler)(
                    Adapter->NdisMiniportBlock.MiniportAdapterContext, (PPNDIS_PACKET)&WorkItemContext, 1);
		NdisStatus = 
		    NDIS_GET_PACKET_STATUS((PNDIS_PACKET)WorkItemContext);

                NDIS_DbgPrint(MAX_TRACE, ("back from miniport's SendPackets handler\n"));
              }
            else
              {
                NDIS_DbgPrint(MAX_TRACE, ("Calling miniport's Send handler\n"));

                NdisStatus = (*Adapter->Miniport->Chars.SendHandler)(
                    Adapter->NdisMiniportBlock.MiniportAdapterContext, (PNDIS_PACKET)WorkItemContext, 0);

                NDIS_DbgPrint(MAX_TRACE, ("back from miniport's Send handler\n"));
              }
	    if( NdisStatus != NDIS_STATUS_PENDING ) {
		NdisMSendComplete
		    ( Adapter, (PNDIS_PACKET)WorkItemContext, NdisStatus );
		Adapter->MiniportBusy = FALSE;
	    }
            break;

          case NdisWorkItemSendLoopback:
            /*
             * called by ProSend when protocols want to send loopback packets
             */
            /* XXX atm ProIndicatePacket sends a packet up via the loopback adapter only */
            NdisStatus = ProIndicatePacket(Adapter, (PNDIS_PACKET)WorkItemContext);
            MiniSendComplete((NDIS_HANDLE)Adapter, (PNDIS_PACKET)WorkItemContext, NdisStatus);
            break;

          case NdisWorkItemReturnPackets:
            break;

          case NdisWorkItemResetRequested:
            break;

          case NdisWorkItemResetInProgress:
            break;

          case NdisWorkItemHalt:
            break;

          case NdisWorkItemMiniportCallback:
            break;

          case NdisWorkItemRequest:
            NdisStatus = MiniDoRequest(Adapter, (PNDIS_REQUEST)WorkItemContext);

            if (NdisStatus == NDIS_STATUS_PENDING)
              break;

            switch (((PNDIS_REQUEST)WorkItemContext)->RequestType) 
              {
                case NdisRequestQueryInformation:
		  NdisMQueryInformationComplete((NDIS_HANDLE)Adapter, NdisStatus);
                  break;

                case NdisRequestSetInformation:
                  NdisMSetInformationComplete((NDIS_HANDLE)Adapter, NdisStatus);
                  break;

                default:
                  NDIS_DbgPrint(MIN_TRACE, ("Unknown NDIS request type.\n"));
                  break;
              }
            break;

          default:
            NDIS_DbgPrint(MIN_TRACE, ("Unknown NDIS work item type (%d).\n", WorkItemType));
            break;
        }
    }
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisMCloseLog(
    IN  NDIS_HANDLE LogHandle)
{
    UNIMPLEMENTED
}


/*
 * @unimplemented
 */
NDIS_STATUS
EXPORT
NdisMCreateLog(
    IN  NDIS_HANDLE     MiniportAdapterHandle,
    IN  UINT            Size,
    OUT PNDIS_HANDLE    LogHandle)
{
    UNIMPLEMENTED

  return NDIS_STATUS_FAILURE;
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMDeregisterAdapterShutdownHandler(
    IN  NDIS_HANDLE MiniportHandle)
/*
 * FUNCTION: de-registers a shutdown handler
 * ARGUMENTS:  MiniportHandle:  Handle passed into MiniportInitialize
 */
{
  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));
  PLOGICAL_ADAPTER  Adapter = (PLOGICAL_ADAPTER)MiniportHandle;

  if(Adapter->BugcheckContext->ShutdownHandler)
    KeDeregisterBugCheckCallback(Adapter->BugcheckContext->CallbackRecord);
}


/*
 * @unimplemented
 */
VOID
EXPORT
NdisMFlushLog(
    IN  NDIS_HANDLE LogHandle)
{
    UNIMPLEMENTED
}

#undef NdisMIndicateStatus

/*
 * @unimplemented
 */
VOID
EXPORT
NdisMIndicateStatus(
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  NDIS_STATUS GeneralStatus,
    IN  PVOID       StatusBuffer,
    IN  UINT        StatusBufferSize)
{
    UNIMPLEMENTED
}

#undef NdisMIndicateStatusComplete

/*
 * @unimplemented
 */
VOID
EXPORT
NdisMIndicateStatusComplete(
    IN  NDIS_HANDLE MiniportAdapterHandle)
{
    UNIMPLEMENTED
}


/*
 * @implemented
 */
VOID
EXPORT
NdisInitializeWrapper(
    OUT PNDIS_HANDLE    NdisWrapperHandle,
    IN  PVOID           SystemSpecific1,
    IN  PVOID           SystemSpecific2,
    IN  PVOID           SystemSpecific3)
/*
 * FUNCTION: Notifies the NDIS library that a new miniport is initializing
 * ARGUMENTS:
 *     NdisWrapperHandle = Address of buffer to place NDIS wrapper handle
 *     SystemSpecific1   = Pointer to the driver's driver object
 *     SystemSpecific2   = Pointer to the driver's registry path
 *     SystemSpecific3   = Always NULL
 * NOTES:
 *     - SystemSpecific2 goes invalid so we copy it
 */
{
  PMINIPORT_DRIVER Miniport;
  PUNICODE_STRING RegistryPath;
  WCHAR *RegistryBuffer;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  ASSERT(NdisWrapperHandle);

  *NdisWrapperHandle = NULL;

#if BREAK_ON_MINIPORT_INIT
  __asm__ ("int $3\n");
#endif

  Miniport = ExAllocatePool(NonPagedPool, sizeof(MINIPORT_DRIVER));

  if (!Miniport) 
    {
      NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
      return;
    }

  RtlZeroMemory(Miniport, sizeof(MINIPORT_DRIVER));

  KeInitializeSpinLock(&Miniport->Lock);

  Miniport->RefCount = 1;

  Miniport->DriverObject = (PDRIVER_OBJECT)SystemSpecific1;

  /* set the miniport's driver registry path */
  RegistryPath = ExAllocatePool(PagedPool, sizeof(UNICODE_STRING));
  if(!RegistryPath)
    {
      NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
      return;
    }

  RegistryPath->Length = ((PUNICODE_STRING)SystemSpecific2)->Length;
  RegistryPath->MaximumLength = RegistryPath->Length + sizeof(WCHAR);	/* room for 0-term */

  RegistryBuffer = ExAllocatePool(PagedPool, RegistryPath->MaximumLength);
  if(!RegistryBuffer)
    {
      NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
      return;
    }

  RtlCopyMemory(RegistryBuffer, ((PUNICODE_STRING)SystemSpecific2)->Buffer, RegistryPath->Length);
  RegistryBuffer[RegistryPath->Length/sizeof(WCHAR)] = 0;
   14348:	25 ff ff 00 00       	and    $0xffff,%eax

  RegistryPath->Buffer = RegistryBuffer;
   1434d:	89 7b 04             	mov    %edi,0x4(%ebx)
  Miniport->RegistryPath = RegistryPath;
   14350:	89 9e 8c 00 00 00    	mov    %ebx,0x8c(%esi)
   14356:	66 c7 04 47 00 00    	movw   $0x0,(%edi,%eax,2)

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   1435c:	8d 86 84 00 00 00    	lea    0x84(%esi),%eax
  ListHead->Flink = ListHead->Blink = ListHead;
   14362:	89 86 84 00 00 00    	mov    %eax,0x84(%esi)
   14368:	89 40 04             	mov    %eax,0x4(%eax)

  InitializeListHead(&Miniport->AdapterListHead);

  /* Put miniport in global miniport list */
  ExInterlockedInsertTailList(&MiniportListHead, &Miniport->ListEntry, &MiniportListLock);
   1436b:	68 10 90 01 00       	push   $0x19010
   14370:	56                   	push   %esi
   14371:	68 20 90 01 00       	push   $0x19020
   14376:	ff 15 38 e2 01 00    	call   *0x1e238

  *NdisWrapperHandle = Miniport;
   1437c:	8b 55 08             	mov    0x8(%ebp),%edx
   1437f:	89 32                	mov    %esi,(%edx)
}
   14381:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14384:	5b                   	pop    %ebx
   14385:	5e                   	pop    %esi
   14386:	5f                   	pop    %edi
   14387:	5d                   	pop    %ebp
   14388:	c2 10 00             	ret    $0x10
   1438b:	90                   	nop    
   1438c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014390 <_NdisIBugcheckCallback@8>:


VOID STDCALL NdisIBugcheckCallback(
    IN PVOID   Buffer,
    IN ULONG   Length)
/*
 * FUNCTION:  Internal callback for handling bugchecks - calls adapter's shutdown handler
 * ARGUMENTS:
 *     Buffer:  Pointer to a bugcheck callback context
 *     Length:  Unused
 */
{
   14390:	55                   	push   %ebp
   14391:	89 e5                	mov    %esp,%ebp
   14393:	50                   	push   %eax
   14394:	50                   	push   %eax
   14395:	8b 55 08             	mov    0x8(%ebp),%edx
  PMINIPORT_BUGCHECK_CONTEXT Context = (PMINIPORT_BUGCHECK_CONTEXT)Buffer;
  ADAPTER_SHUTDOWN_HANDLER sh = (ADAPTER_SHUTDOWN_HANDLER)Context->ShutdownHandler;
   14398:	8b 42 04             	mov    0x4(%edx),%eax

   NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

  if(sh)
   1439b:	85 c0                	test   %eax,%eax
   1439d:	74 0b                	je     143aa <_NdisIBugcheckCallback@8+0x1a>
    sh(Context->DriverContext);
   1439f:	83 ec 0c             	sub    $0xc,%esp
   143a2:	8b 0a                	mov    (%edx),%ecx
   143a4:	51                   	push   %ecx
   143a5:	ff d0                	call   *%eax
   143a7:	83 c4 0c             	add    $0xc,%esp
} 
   143aa:	c9                   	leave  
   143ab:	c2 08 00             	ret    $0x8
   143ae:	89 f6                	mov    %esi,%esi

000143b0 <_NdisMRegisterAdapterShutdownHandler@12>:


/*
 * @implemented
 */
VOID
EXPORT
NdisMRegisterAdapterShutdownHandler(
    IN  NDIS_HANDLE                 MiniportHandle,
    IN  PVOID                       ShutdownContext,
    IN  ADAPTER_SHUTDOWN_HANDLER    ShutdownHandler)
/*
 * FUNCTION:  Register a shutdown handler for an adapter
 * ARGUMENTS:
 *     MiniportHandle:  Handle originally passed into MiniportInitialize
 *     ShutdownContext:  Pre-initialized bugcheck context
 *     ShutdownHandler:  Function to call to handle the bugcheck
 * NOTES:
 *     - I'm not sure about ShutdownContext
 *     - FIXME - memory leak below
 */
{
   143b0:	55                   	push   %ebp
   143b1:	89 e5                	mov    %esp,%ebp
   143b3:	53                   	push   %ebx
   143b4:	50                   	push   %eax
  PLOGICAL_ADAPTER            Adapter = (PLOGICAL_ADAPTER)MiniportHandle;
  PMINIPORT_BUGCHECK_CONTEXT  BugcheckContext = Adapter->BugcheckContext;

  NDIS_DbgPrint(DEBUG_MINIPORT, ("Called.\n"));

  if(BugcheckContext) 
   143b5:	8b 45 08             	mov    0x8(%ebp),%eax
   143b8:	8b 98 6c 05 00 00    	mov    0x56c(%eax),%ebx
   143be:	85 db                	test   %ebx,%ebx
   143c0:	74 07                	je     143c9 <_NdisMRegisterAdapterShutdownHandler@12+0x19>
    return;

  BugcheckContext = ExAllocatePool(NonPagedPool, sizeof(MINIPORT_BUGCHECK_CONTEXT));
  if(!BugcheckContext)
    {
      NDIS_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
      return;
    }

  BugcheckContext->ShutdownHandler = ShutdownHandler;
  BugcheckContext->DriverContext = ShutdownContext;

  /* not sure if this needs to be initialized or not... oh well, it's a leak. */
  BugcheckContext->CallbackRecord = ExAllocatePool(NonPagedPool, sizeof(KBUGCHECK_CALLBACK_RECORD));

  KeRegisterBugCheckCallback(BugcheckContext->CallbackRecord, NdisIBugcheckCallback, 
      BugcheckContext, sizeof(BugcheckContext), (PUCHAR)"Ndis Miniport");
}
   143c2:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   143c5:	c9                   	leave  
   143c6:	c2 0c 00             	ret    $0xc
   143c9:	51                   	push   %ecx
   143ca:	51                   	push   %ecx
   143cb:	6a 0c                	push   $0xc
   143cd:	6a 00                	push   $0x0
   143cf:	ff 15 24 e2 01 00    	call   *0x1e224
   143d5:	89 c3                	mov    %eax,%ebx
   143d7:	58                   	pop    %eax
   143d8:	85 db                	test   %ebx,%ebx
   143da:	5a                   	pop    %edx
   143db:	74 e5                	je     143c2 <_NdisMRegisterAdapterShutdownHandler@12+0x12>
   143dd:	8b 45 10             	mov    0x10(%ebp),%eax
   143e0:	89 43 04             	mov    %eax,0x4(%ebx)
   143e3:	8b 45 0c             	mov    0xc(%ebp),%eax
   143e6:	89 03                	mov    %eax,(%ebx)
   143e8:	50                   	push   %eax
   143e9:	50                   	push   %eax
   143ea:	6a 20                	push   $0x20
   143ec:	6a 00                	push   $0x0
   143ee:	ff 15 24 e2 01 00    	call   *0x1e224
   143f4:	89 43 08             	mov    %eax,0x8(%ebx)
   143f7:	50                   	push   %eax
   143f8:	68 70 81 01 00       	push   $0x18170
   143fd:	6a 04                	push   $0x4
   143ff:	53                   	push   %ebx
   14400:	68 90 43 01 00       	push   $0x14390
   14405:	8b 43 08             	mov    0x8(%ebx),%eax
   14408:	50                   	push   %eax
   14409:	ff 15 88 e2 01 00    	call   *0x1e288
   1440f:	eb b1                	jmp    143c2 <_NdisMRegisterAdapterShutdownHandler@12+0x12>
   14411:	eb 0d                	jmp    14420 <_DoQueries>
   14413:	90                   	nop    
   14414:	90                   	nop    
   14415:	90                   	nop    
   14416:	90                   	nop    
   14417:	90                   	nop    
   14418:	90                   	nop    
   14419:	90                   	nop    
   1441a:	90                   	nop    
   1441b:	90                   	nop    
   1441c:	90                   	nop    
   1441d:	90                   	nop    
   1441e:	90                   	nop    
   1441f:	90                   	nop    

00014420 <_DoQueries>:


NDIS_STATUS
DoQueries(
    PLOGICAL_ADAPTER Adapter,
    NDIS_OID AddressOID)
/*
 * FUNCTION: Queries miniport for information
 * ARGUMENTS:
 *     Adapter    = Pointer to logical adapter
 *     AddressOID = OID to use to query for current address
 * RETURNS:
 *     Status of operation
 */
{
   14420:	55                   	push   %ebp
   14421:	89 e5                	mov    %esp,%ebp
   14423:	56                   	push   %esi
   14424:	53                   	push   %ebx
   14425:	83 ec 10             	sub    $0x10,%esp
  ULONG BytesWritten;
  NDIS_STATUS NdisStatus;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  /* Get MAC options for adapter */
  NdisStatus = MiniQueryInformation(Adapter, OID_GEN_MAC_OPTIONS, 0, &BytesWritten);
   14428:	8d 75 f4             	lea    0xfffffff4(%ebp),%esi
   1442b:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1442e:	56                   	push   %esi
   1442f:	6a 00                	push   $0x0
   14431:	68 13 01 01 00       	push   $0x10113
   14436:	53                   	push   %ebx
   14437:	e8 24 fa ff ff       	call   13e60 <_MiniQueryInformation>

  if (NdisStatus != NDIS_STATUS_SUCCESS) 
   1443c:	83 c4 10             	add    $0x10,%esp
    {
      NDIS_DbgPrint(MIN_TRACE, ("OID_GEN_MAC_OPTIONS failed. NdisStatus (0x%X).\n", NdisStatus));
      return NdisStatus;
   1443f:	89 c2                	mov    %eax,%edx
   14441:	85 c0                	test   %eax,%eax
   14443:	74 0b                	je     14450 <_DoQueries+0x30>
    }

  RtlCopyMemory(&Adapter->NdisMiniportBlock.MacOptions, Adapter->QueryBuffer, sizeof(UINT));

  NDIS_DbgPrint(DEBUG_MINIPORT, ("MacOptions (0x%X).\n", Adapter->NdisMiniportBlock.MacOptions));

  /* Get current hardware address of adapter */
  NdisStatus = MiniQueryInformation(Adapter, AddressOID, 0, &BytesWritten);

  if (NdisStatus != NDIS_STATUS_SUCCESS) 
    {
      NDIS_DbgPrint(MIN_TRACE, ("Address OID (0x%X) failed. NdisStatus (0x%X).\n", AddressOID, NdisStatus));
      return NdisStatus;
    }

  RtlCopyMemory(&Adapter->Address, Adapter->QueryBuffer, Adapter->AddressLength);
#ifdef DBG
    {
      /* 802.3 only */

      PUCHAR A = (PUCHAR)&Adapter->Address.Type.Medium802_3;

      NDIS_DbgPrint(MAX_TRACE, ("Adapter address is (%02X %02X %02X %02X %02X %02X).\n", A[0], A[1], A[2], A[3], A[4], A[5]));
    }
#endif /* DBG */

  /* Get maximum lookahead buffer size of adapter */
  NdisStatus = MiniQueryInformation(Adapter, OID_GEN_MAXIMUM_LOOKAHEAD, 0, &BytesWritten);

  if (NdisStatus != NDIS_STATUS_SUCCESS) 
    {
      NDIS_DbgPrint(MIN_TRACE, ("OID_GEN_MAXIMUM_LOOKAHEAD failed. NdisStatus (0x%X).\n", NdisStatus));
      return NdisStatus;
    }

  Adapter->NdisMiniportBlock.MaximumLookahead = *((PULONG)Adapter->QueryBuffer);

  NDIS_DbgPrint(DEBUG_MINIPORT, ("MaxLookaheadLength (0x%X).\n", Adapter->NdisMiniportBlock.MaximumLookahead));

  /* Get current lookahead buffer size of adapter */
  NdisStatus = MiniQueryInformation(Adapter, OID_GEN_CURRENT_LOOKAHEAD, 0, &BytesWritten);

  if (NdisStatus != NDIS_STATUS_SUCCESS) 
    {
      NDIS_DbgPrint(MIN_TRACE, ("OID_GEN_CURRENT_LOOKAHEAD failed. NdisStatus (0x%X).\n", NdisStatus));
      return NdisStatus;
    }

  Adapter->NdisMiniportBlock.CurrentLookahead = *((PULONG)Adapter->QueryBuffer);

  NDIS_DbgPrint(DEBUG_MINIPORT, ("CurLookaheadLength (0x%X).\n", Adapter->NdisMiniportBlock.CurrentLookahead));

  if (Adapter->NdisMiniportBlock.MaximumLookahead != 0) 
    {
      Adapter->LookaheadLength = Adapter->NdisMiniportBlock.MaximumLookahead + Adapter->MediumHeaderSize;
      Adapter->LookaheadBuffer = ExAllocatePool(NonPagedPool, Adapter->LookaheadLength);

      if (!Adapter->LookaheadBuffer)
        return NDIS_STATUS_RESOURCES;
    }

  return STATUS_SUCCESS;
}
   14445:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   14448:	89 d0                	mov    %edx,%eax
   1444a:	5b                   	pop    %ebx
   1444b:	5e                   	pop    %esi
   1444c:	5d                   	pop    %ebp
   1444d:	c3                   	ret    
   1444e:	89 f6                	mov    %esi,%esi
   14450:	8b 83 40 05 00 00    	mov    0x540(%ebx),%eax
   14456:	8b 00                	mov    (%eax),%eax
   14458:	89 83 38 01 00 00    	mov    %eax,0x138(%ebx)
   1445e:	56                   	push   %esi
   1445f:	8b 45 0c             	mov    0xc(%ebp),%eax
   14462:	6a 00                	push   $0x0
   14464:	50                   	push   %eax
   14465:	53                   	push   %ebx
   14466:	e8 f5 f9 ff ff       	call   13e60 <_MiniQueryInformation>
   1446b:	83 c4 10             	add    $0x10,%esp
   1446e:	89 c2                	mov    %eax,%edx
   14470:	85 c0                	test   %eax,%eax
   14472:	75 d1                	jne    14445 <_DoQueries+0x25>
   14474:	51                   	push   %ecx
   14475:	8b 93 54 05 00 00    	mov    0x554(%ebx),%edx
   1447b:	8d 83 4c 05 00 00    	lea    0x54c(%ebx),%eax
   14481:	52                   	push   %edx
   14482:	8b 8b 40 05 00 00    	mov    0x540(%ebx),%ecx
   14488:	51                   	push   %ecx
   14489:	50                   	push   %eax
   1448a:	e8 41 22 00 00       	call   166d0 <_memcpy>
   1448f:	56                   	push   %esi
   14490:	6a 00                	push   $0x0
   14492:	68 05 01 01 00       	push   $0x10105
   14497:	53                   	push   %ebx
   14498:	e8 c3 f9 ff ff       	call   13e60 <_MiniQueryInformation>
   1449d:	83 c4 20             	add    $0x20,%esp
   144a0:	89 c2                	mov    %eax,%edx
   144a2:	85 c0                	test   %eax,%eax
   144a4:	75 9f                	jne    14445 <_DoQueries+0x25>
   144a6:	8b 83 40 05 00 00    	mov    0x540(%ebx),%eax
   144ac:	8b 00                	mov    (%eax),%eax
   144ae:	89 83 4c 01 00 00    	mov    %eax,0x14c(%ebx)
   144b4:	56                   	push   %esi
   144b5:	6a 00                	push   $0x0
   144b7:	68 0f 01 01 00       	push   $0x1010f
   144bc:	53                   	push   %ebx
   144bd:	e8 9e f9 ff ff       	call   13e60 <_MiniQueryInformation>
   144c2:	83 c4 10             	add    $0x10,%esp
   144c5:	89 c2                	mov    %eax,%edx
   144c7:	85 c0                	test   %eax,%eax
   144c9:	0f 85 76 ff ff ff    	jne    14445 <_DoQueries+0x25>
   144cf:	8b 83 40 05 00 00    	mov    0x540(%ebx),%eax
   144d5:	8b 00                	mov    (%eax),%eax
   144d7:	89 83 48 01 00 00    	mov    %eax,0x148(%ebx)
   144dd:	8b 83 4c 01 00 00    	mov    0x14c(%ebx),%eax
   144e3:	85 c0                	test   %eax,%eax
   144e5:	75 07                	jne    144ee <_DoQueries+0xce>
   144e7:	31 d2                	xor    %edx,%edx
   144e9:	e9 57 ff ff ff       	jmp    14445 <_DoQueries+0x25>
   144ee:	8b 93 48 05 00 00    	mov    0x548(%ebx),%edx
   144f4:	01 d0                	add    %edx,%eax
   144f6:	89 83 5c 05 00 00    	mov    %eax,0x55c(%ebx)
   144fc:	56                   	push   %esi
   144fd:	56                   	push   %esi
   144fe:	50                   	push   %eax
   144ff:	6a 00                	push   $0x0
   14501:	ff 15 24 e2 01 00    	call   *0x1e224
   14507:	85 c0                	test   %eax,%eax
   14509:	89 83 58 05 00 00    	mov    %eax,0x558(%ebx)
   1450f:	5a                   	pop    %edx
   14510:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14515:	59                   	pop    %ecx
   14516:	0f 84 29 ff ff ff    	je     14445 <_DoQueries+0x25>
   1451c:	31 d2                	xor    %edx,%edx
   1451e:	e9 22 ff ff ff       	jmp    14445 <_DoQueries+0x25>
   14523:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   14529:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014530 <_NdisIForwardIrpAndWaitCompletionRoutine@12>:


NTSTATUS
STDCALL
NdisIForwardIrpAndWaitCompletionRoutine(
    PDEVICE_OBJECT Fdo,
    PIRP Irp,
    PVOID Context)
{
   14530:	55                   	push   %ebp
   14531:	89 e5                	mov    %esp,%ebp
   14533:	50                   	push   %eax
   14534:	50                   	push   %eax
  PKEVENT Event = Context;

  if (Irp->PendingReturned)
   14535:	8b 45 0c             	mov    0xc(%ebp),%eax
   14538:	80 78 21 00          	cmpb   $0x0,0x21(%eax)
   1453c:	75 09                	jne    14547 <_NdisIForwardIrpAndWaitCompletionRoutine@12+0x17>
    KeSetEvent(Event, IO_NO_INCREMENT, FALSE);

  return STATUS_MORE_PROCESSING_REQUIRED;
}
   1453e:	b8 16 00 00 c0       	mov    $0xc0000016,%eax
   14543:	c9                   	leave  
   14544:	c2 0c 00             	ret    $0xc
   14547:	50                   	push   %eax
   14548:	6a 00                	push   $0x0
   1454a:	6a 00                	push   $0x0
   1454c:	8b 45 10             	mov    0x10(%ebp),%eax
   1454f:	50                   	push   %eax
   14550:	ff 15 90 e2 01 00    	call   *0x1e290
   14556:	58                   	pop    %eax
   14557:	b8 16 00 00 c0       	mov    $0xc0000016,%eax
   1455c:	c9                   	leave  
   1455d:	c2 0c 00             	ret    $0xc

00014560 <_NdisIForwardIrpAndWait@8>:


NTSTATUS
STDCALL
NdisIForwardIrpAndWait(PLOGICAL_ADAPTER Adapter, PIRP Irp)
{
   14560:	55                   	push   %ebp
   14561:	89 e5                	mov    %esp,%ebp
   14563:	56                   	push   %esi
   14564:	53                   	push   %ebx
   14565:	83 ec 14             	sub    $0x14,%esp
  KEVENT Event;
  NTSTATUS Status;

  KeInitializeEvent(&Event, NotificationEvent, FALSE);
   14568:	8d 75 e8             	lea    0xffffffe8(%ebp),%esi
   1456b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1456e:	6a 00                	push   $0x0
   14570:	6a 00                	push   $0x0
   14572:	56                   	push   %esi
   14573:	ff 15 74 e2 01 00    	call   *0x1e274
  IoCopyCurrentIrpStackLocationToNext(Irp);
   14579:	8b 43 60             	mov    0x60(%ebx),%eax
   1457c:	8b 10                	mov    (%eax),%edx
   1457e:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   14581:	89 50 dc             	mov    %edx,0xffffffdc(%eax)
   14584:	8b 50 04             	mov    0x4(%eax),%edx
   14587:	89 51 04             	mov    %edx,0x4(%ecx)
   1458a:	8b 50 08             	mov    0x8(%eax),%edx
   1458d:	89 51 08             	mov    %edx,0x8(%ecx)
   14590:	8b 50 0c             	mov    0xc(%eax),%edx
   14593:	89 51 0c             	mov    %edx,0xc(%ecx)
   14596:	8b 50 10             	mov    0x10(%eax),%edx
   14599:	89 51 10             	mov    %edx,0x10(%ecx)
   1459c:	8b 50 14             	mov    0x14(%eax),%edx
   1459f:	89 51 14             	mov    %edx,0x14(%ecx)
   145a2:	8b 40 18             	mov    0x18(%eax),%eax
   145a5:	c6 41 03 00          	movb   $0x0,0x3(%ecx)
   145a9:	89 41 18             	mov    %eax,0x18(%ecx)
  IoSetCompletionRoutine(Irp, NdisIForwardIrpAndWaitCompletionRoutine, &Event,
   145ac:	8b 43 60             	mov    0x60(%ebx),%eax
   145af:	83 e8 24             	sub    $0x24,%eax
   145b2:	c7 40 1c 30 45 01 00 	movl   $0x14530,0x1c(%eax)
   145b9:	89 70 20             	mov    %esi,0x20(%eax)
   145bc:	5a                   	pop    %edx
   145bd:	c6 40 03 e0          	movb   $0xe0,0x3(%eax)
                         TRUE, TRUE, TRUE);
  Status = IoCallDriver(Adapter->NdisMiniportBlock.NextDeviceObject, Irp);
   145c1:	8b 45 08             	mov    0x8(%ebp),%eax
   145c4:	89 da                	mov    %ebx,%edx
   145c6:	8b 88 10 01 00 00    	mov    0x110(%eax),%ecx
   145cc:	ff 15 14 e2 01 00    	call   *0x1e214
  if (Status == STATUS_PENDING)
   145d2:	3d 03 01 00 00       	cmp    $0x103,%eax
   145d7:	74 09                	je     145e2 <_NdisIForwardIrpAndWait@8+0x82>
    {
      KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
      Status = Irp->IoStatus.Status;
    }
  return Status;
}
   145d9:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   145dc:	5b                   	pop    %ebx
   145dd:	5e                   	pop    %esi
   145de:	5d                   	pop    %ebp
   145df:	c2 08 00             	ret    $0x8
   145e2:	83 ec 0c             	sub    $0xc,%esp
   145e5:	6a 00                	push   $0x0
   145e7:	6a 00                	push   $0x0
   145e9:	6a 00                	push   $0x0
   145eb:	6a 00                	push   $0x0
   145ed:	56                   	push   %esi
   145ee:	ff 15 a0 e2 01 00    	call   *0x1e2a0
   145f4:	8b 43 18             	mov    0x18(%ebx),%eax
   145f7:	83 c4 0c             	add    $0xc,%esp
   145fa:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   145fd:	5b                   	pop    %ebx
   145fe:	5e                   	pop    %esi
   145ff:	5d                   	pop    %ebp
   14600:	c2 08 00             	ret    $0x8
   14603:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   14609:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014610 <_NdisIPnPStartDevice@8>:


NTSTATUS
STDCALL
NdisIPnPStartDevice(
    IN PDEVICE_OBJECT DeviceObject,
    PIRP Irp)
/*
 * FUNCTION: Handle the PnP start device event
 * ARGUMENTS:
 *     DeviceObejct = Functional Device Object
 *     Irp          = IRP_MN_START_DEVICE I/O request packet
 * RETURNS:
 *     Status of operation
 */
{
   14610:	55                   	push   %ebp
   14611:	89 e5                	mov    %esp,%ebp
   14613:	57                   	push   %edi
   14614:	56                   	push   %esi
   14615:	53                   	push   %ebx
   14616:	83 ec 4c             	sub    $0x4c,%esp
  PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
   14619:	8b 45 0c             	mov    0xc(%ebp),%eax
   1461c:	8b 58 60             	mov    0x60(%eax),%ebx
  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)DeviceObject->DeviceExtension;
   1461f:	8b 45 08             	mov    0x8(%ebp),%eax
  NDIS_WRAPPER_CONTEXT WrapperContext;
  NDIS_STATUS NdisStatus;
  NDIS_STATUS OpenErrorStatus;
  NTSTATUS Status;
  UINT SelectedMediumIndex = 0;
   14622:	c7 45 b8 00 00 00 00 	movl   $0x0,0xffffffb8(%ebp)
   14629:	8b 70 28             	mov    0x28(%eax),%esi
  NDIS_OID AddressOID;
  BOOLEAN Success = FALSE;
  ULONG ResourceCount;
  ULONG ResourceListSize;
  UNICODE_STRING ParamName;
  PNDIS_CONFIGURATION_PARAMETER ConfigParam;
  NDIS_HANDLE ConfigHandle;
  ULONG Size;
/* FIXME - KIRQL OldIrql; */

  /*
   * Prepare wrapper context used by HW and configuration routines.
   */
  
  Status = IoOpenDeviceRegistryKey(
   1462c:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   1462f:	50                   	push   %eax
   14630:	68 3f 00 0f 00       	push   $0xf003f
   14635:	6a 02                	push   $0x2
   14637:	8b 8e 0c 01 00 00    	mov    0x10c(%esi),%ecx
   1463d:	51                   	push   %ecx
   1463e:	ff 15 60 e2 01 00    	call   *0x1e260
    Adapter->NdisMiniportBlock.PhysicalDeviceObject, PLUGPLAY_REGKEY_DRIVER,
    KEY_ALL_ACCESS, &WrapperContext.RegistryHandle);
  if (!NT_SUCCESS(Status))
    {
      NDIS_DbgPrint(MIN_TRACE,("failed to open adapter-specific reg key\n"));
      return Status;
   14644:	89 c2                	mov    %eax,%edx
   14646:	85 c0                	test   %eax,%eax
   14648:	0f 88 d8 01 00 00    	js     14826 <_NdisIPnPStartDevice@8+0x216>
    }

  NDIS_DbgPrint(MAX_TRACE, ("opened device reg key\n"));

  WrapperContext.DeviceObject = Adapter->NdisMiniportBlock.DeviceObject;
   1464e:	8b 86 08 01 00 00    	mov    0x108(%esi),%eax
   14654:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)

  /*
   * Store the adapter resources used by HW routines such as
   * NdisMQueryAdapterResources.
   */

  if (Stack->Parameters.StartDevice.AllocatedResources != NULL &&
   14657:	8b 43 04             	mov    0x4(%ebx),%eax
   1465a:	85 c0                	test   %eax,%eax
   1465c:	74 0b                	je     14669 <_NdisIPnPStartDevice@8+0x59>
   1465e:	8b 53 08             	mov    0x8(%ebx),%edx
   14661:	85 d2                	test   %edx,%edx
   14663:	0f 85 c9 01 00 00    	jne    14832 <_NdisIPnPStartDevice@8+0x222>
      Stack->Parameters.StartDevice.AllocatedResourcesTranslated != NULL)
    {
      ResourceCount = Stack->Parameters.StartDevice.AllocatedResources->List[0].
                      PartialResourceList.Count;
      ResourceListSize = 
        FIELD_OFFSET(CM_RESOURCE_LIST, List[0].PartialResourceList.
                     PartialDescriptors[ResourceCount]);

      Adapter->NdisMiniportBlock.AllocatedResources =
        ExAllocatePool(PagedPool, ResourceListSize);
      if (Adapter->NdisMiniportBlock.AllocatedResources == NULL)
        {
          return STATUS_INSUFFICIENT_RESOURCES;
        }

      Adapter->NdisMiniportBlock.AllocatedResourcesTranslated =
        ExAllocatePool(PagedPool, ResourceListSize);
      if (Adapter->NdisMiniportBlock.AllocatedResourcesTranslated == NULL)
        {
          ExFreePool(Adapter->NdisMiniportBlock.AllocatedResources);
          Adapter->NdisMiniportBlock.AllocatedResources = NULL;
          return STATUS_INSUFFICIENT_RESOURCES;
        }

      RtlCopyMemory(Adapter->NdisMiniportBlock.AllocatedResources,
                    Stack->Parameters.StartDevice.AllocatedResources,
                    ResourceListSize);
                
      RtlCopyMemory(Adapter->NdisMiniportBlock.AllocatedResourcesTranslated,
                    Stack->Parameters.StartDevice.AllocatedResourcesTranslated,
                    ResourceListSize);
    }

  /*
   * Store the Bus Type, Bus Number and Slot information. It's used by
   * the hardware routines then.
   */
    
  NdisOpenConfiguration(&NdisStatus, &ConfigHandle, (NDIS_HANDLE)&WrapperContext);
   14669:	50                   	push   %eax
   1466a:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax

  Size = sizeof(ULONG);
  Status = IoGetDeviceProperty(Adapter->NdisMiniportBlock.PhysicalDeviceObject,
   1466d:	8d 7d cc             	lea    0xffffffcc(%ebp),%edi
   14670:	50                   	push   %eax
   14671:	8d 45 d4             	lea    0xffffffd4(%ebp),%eax
   14674:	50                   	push   %eax
   14675:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   14678:	50                   	push   %eax
   14679:	e8 b2 db ff ff       	call   12230 <_NdisOpenConfiguration@12>
   1467e:	c7 45 cc 04 00 00 00 	movl   $0x4,0xffffffcc(%ebp)
   14685:	50                   	push   %eax
   14686:	50                   	push   %eax
   14687:	8d 86 00 01 00 00    	lea    0x100(%esi),%eax
   1468d:	57                   	push   %edi
   1468e:	50                   	push   %eax
   1468f:	6a 04                	push   $0x4
   14691:	6a 0d                	push   $0xd
   14693:	8b 86 0c 01 00 00    	mov    0x10c(%esi),%eax
   14699:	50                   	push   %eax
   1469a:	ff 15 54 e2 01 00    	call   *0x1e254
                               DevicePropertyLegacyBusType, Size,
                               &Adapter->NdisMiniportBlock.BusType, &Size);
  if (!NT_SUCCESS(Status) || Adapter->NdisMiniportBlock.BusType == -1)
   146a0:	83 c4 0c             	add    $0xc,%esp
   146a3:	85 c0                	test   %eax,%eax
   146a5:	0f 88 15 02 00 00    	js     148c0 <_NdisIPnPStartDevice@8+0x2b0>
   146ab:	83 be 00 01 00 00 ff 	cmpl   $0xffffffff,0x100(%esi)
   146b2:	0f 84 08 02 00 00    	je     148c0 <_NdisIPnPStartDevice@8+0x2b0>
    {
      NdisInitUnicodeString(&ParamName, L"BusType");
      NdisReadConfiguration(&NdisStatus, &ConfigParam, ConfigHandle,
                            &ParamName, NdisParameterInteger);
      if (NdisStatus == NDIS_STATUS_SUCCESS)
        Adapter->NdisMiniportBlock.BusType = ConfigParam->ParameterData.IntegerData;
      else
        Adapter->NdisMiniportBlock.BusType = Isa;
    }

  Status = IoGetDeviceProperty(Adapter->NdisMiniportBlock.PhysicalDeviceObject,
   146b8:	83 ec 0c             	sub    $0xc,%esp
   146bb:	8d 86 fc 00 00 00    	lea    0xfc(%esi),%eax
   146c1:	57                   	push   %edi
   146c2:	50                   	push   %eax
   146c3:	8b 55 cc             	mov    0xffffffcc(%ebp),%edx
   146c6:	52                   	push   %edx
   146c7:	6a 0e                	push   $0xe
   146c9:	8b 86 0c 01 00 00    	mov    0x10c(%esi),%eax
   146cf:	50                   	push   %eax
   146d0:	ff 15 54 e2 01 00    	call   *0x1e254
                               DevicePropertyBusNumber, Size,
                               &Adapter->NdisMiniportBlock.BusNumber, &Size);
  if (!NT_SUCCESS(Status) || Adapter->NdisMiniportBlock.BusNumber == -1)
   146d6:	83 c4 0c             	add    $0xc,%esp
   146d9:	85 c0                	test   %eax,%eax
   146db:	0f 88 63 02 00 00    	js     14944 <_NdisIPnPStartDevice@8+0x334>
   146e1:	8b 86 fc 00 00 00    	mov    0xfc(%esi),%eax
   146e7:	83 f8 ff             	cmp    $0xffffffff,%eax
   146ea:	0f 84 54 02 00 00    	je     14944 <_NdisIPnPStartDevice@8+0x334>
    {
      NdisInitUnicodeString(&ParamName, L"BusNumber");
      NdisReadConfiguration(&NdisStatus, &ConfigParam, ConfigHandle,
                            &ParamName, NdisParameterInteger);
      if (NdisStatus == NDIS_STATUS_SUCCESS)
        Adapter->NdisMiniportBlock.BusNumber = ConfigParam->ParameterData.IntegerData;
      else
        Adapter->NdisMiniportBlock.BusNumber = 0;
    }
  WrapperContext.BusNumber = Adapter->NdisMiniportBlock.BusNumber;

  Status = IoGetDeviceProperty(Adapter->NdisMiniportBlock.PhysicalDeviceObject,
   146f0:	83 ec 0c             	sub    $0xc,%esp
   146f3:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   146f6:	8d 86 e4 01 00 00    	lea    0x1e4(%esi),%eax
   146fc:	57                   	push   %edi
   146fd:	50                   	push   %eax
   146fe:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
   14701:	50                   	push   %eax
   14702:	6a 10                	push   $0x10
   14704:	8b be 0c 01 00 00    	mov    0x10c(%esi),%edi
   1470a:	57                   	push   %edi
   1470b:	ff 15 54 e2 01 00    	call   *0x1e254
                               DevicePropertyAddress, Size,
                               &Adapter->NdisMiniportBlock.SlotNumber, &Size);
  if (!NT_SUCCESS(Status) || Adapter->NdisMiniportBlock.SlotNumber == -1)
   14711:	83 c4 0c             	add    $0xc,%esp
   14714:	85 c0                	test   %eax,%eax
   14716:	0f 88 e8 01 00 00    	js     14904 <_NdisIPnPStartDevice@8+0x2f4>
   1471c:	83 be e4 01 00 00 ff 	cmpl   $0xffffffff,0x1e4(%esi)
   14723:	0f 84 db 01 00 00    	je     14904 <_NdisIPnPStartDevice@8+0x2f4>
    {
      NdisInitUnicodeString(&ParamName, L"SlotNumber");
      NdisReadConfiguration(&NdisStatus, &ConfigParam, ConfigHandle,
                            &ParamName, NdisParameterInteger);
      if (NdisStatus == NDIS_STATUS_SUCCESS)
        Adapter->NdisMiniportBlock.SlotNumber = ConfigParam->ParameterData.IntegerData;
      else
        Adapter->NdisMiniportBlock.SlotNumber = 0;
    }

  NdisCloseConfiguration(ConfigHandle);
   14729:	83 ec 0c             	sub    $0xc,%esp
   1472c:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   1472f:	50                   	push   %eax
   14730:	e8 9b da ff ff       	call   121d0 <_NdisCloseConfiguration@4>

  /*
   * Call MiniportInitialize.
   */

  NDIS_DbgPrint(MID_TRACE, ("calling MiniportInitialize\n"));
  NdisStatus = (*Adapter->Miniport->Chars.InitializeHandler)(
   14735:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   14738:	8b 96 34 05 00 00    	mov    0x534(%esi),%edx
   1473e:	89 04 24             	mov    %eax,(%esp)
   14741:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   14744:	56                   	push   %esi
   14745:	6a 0f                	push   $0xf
   14747:	68 00 70 01 00       	push   $0x17000
   1474c:	50                   	push   %eax
   1474d:	8d 45 b4             	lea    0xffffffb4(%ebp),%eax
   14750:	50                   	push   %eax
   14751:	ff 52 2c             	call   *0x2c(%edx)
   14754:	89 45 d0             	mov    %eax,0xffffffd0(%ebp)
    &OpenErrorStatus, &SelectedMediumIndex, &MediaArray[0],
    MEDIA_ARRAY_SIZE, Adapter, (NDIS_HANDLE)&WrapperContext);

  ZwClose(WrapperContext.RegistryHandle);
   14757:	50                   	push   %eax
   14758:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
   1475b:	50                   	push   %eax
   1475c:	ff 15 00 e3 01 00    	call   *0x1e300

  if (NdisStatus != NDIS_STATUS_SUCCESS ||
   14762:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   14765:	83 c4 0c             	add    $0xc,%esp
   14768:	85 c0                	test   %eax,%eax
   1476a:	0f 85 b4 00 00 00    	jne    14824 <_NdisIPnPStartDevice@8+0x214>
   14770:	8b 55 b8             	mov    0xffffffb8(%ebp),%edx
   14773:	83 fa 0e             	cmp    $0xe,%edx
   14776:	0f 87 a8 00 00 00    	ja     14824 <_NdisIPnPStartDevice@8+0x214>
      SelectedMediumIndex >= MEDIA_ARRAY_SIZE) 
    {
      NDIS_DbgPrint(MIN_TRACE, ("MiniportInitialize() failed for an adapter.\n"));
      return (NTSTATUS)NdisStatus;
    }

  /* Set handlers (some NDIS macros require these) */

  Adapter->NdisMiniportBlock.EthRxCompleteHandler = EthFilterDprIndicateReceiveComplete;
  Adapter->NdisMiniportBlock.EthRxIndicateHandler = EthFilterDprIndicateReceive;
  Adapter->NdisMiniportBlock.SendCompleteHandler  = MiniSendComplete;
  Adapter->NdisMiniportBlock.SendResourcesHandler = MiniSendResourcesAvailable;
  Adapter->NdisMiniportBlock.ResetCompleteHandler = MiniResetComplete;
  Adapter->NdisMiniportBlock.TDCompleteHandler    = MiniTransferDataComplete;
  Adapter->NdisMiniportBlock.PacketIndicateHandler= MiniIndicateReceivePacket;

  Adapter->NdisMiniportBlock.MediaType = MediaArray[SelectedMediumIndex];
   1477c:	8b 04 95 00 70 01 00 	mov    0x17000(,%edx,4),%eax
   14783:	c7 86 70 01 00 00 f0 	movl   $0x165f0,0x170(%esi)
   1478a:	65 01 00 
   1478d:	c7 86 64 01 00 00 b0 	movl   $0x165b0,0x164(%esi)
   14794:	65 01 00 
   14797:	c7 86 ec 00 00 00 00 	movl   $0x13d00,0xec(%esi)
   1479e:	3d 01 00 
   147a1:	c7 86 f0 00 00 00 20 	movl   $0x13d20,0xf0(%esi)
   147a8:	3d 01 00 
   147ab:	c7 86 f4 00 00 00 f0 	movl   $0x13cf0,0xf4(%esi)
   147b2:	3c 01 00 
   147b5:	c7 86 84 01 00 00 30 	movl   $0x13d30,0x184(%esi)
   147bc:	3d 01 00 
   147bf:	c7 86 e8 00 00 00 30 	movl   $0x13c30,0xe8(%esi)
   147c6:	3c 01 00 
   147c9:	89 86 f8 00 00 00    	mov    %eax,0xf8(%esi)

  switch (Adapter->NdisMiniportBlock.MediaType) 
    {
      case NdisMedium802_3:
        Adapter->MediumHeaderSize = 14;       /* XXX figure out what to do about LLC */
        AddressOID = OID_802_3_CURRENT_ADDRESS;
        Adapter->AddressLength = ETH_LENGTH_OF_ADDRESS;
        NdisStatus = DoQueries(Adapter, AddressOID);
        if (NdisStatus == NDIS_STATUS_SUCCESS)
          {
            Success = EthCreateFilter(32, /* FIXME: Query this from miniport. */
                                      Adapter->Address.Type.Medium802_3,
                                      &Adapter->NdisMiniportBlock.FilterDbs.EthDB);
            if (Success)
              Adapter->NdisMiniportBlock.FilterDbs.EthDB->Miniport = (PNDIS_MINIPORT_BLOCK)Adapter;
            else
              NdisStatus = NDIS_STATUS_RESOURCES;
          }
        break;

      default:
        /* FIXME: Support other types of media */
        NDIS_DbgPrint(MIN_TRACE, ("error: unsupported media\n"));
        ASSERT(FALSE);
/* FIXME - KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); */
        return STATUS_UNSUCCESSFUL;
   147cf:	ba 01 00 00 c0       	mov    $0xc0000001,%edx
   147d4:	85 c0                	test   %eax,%eax
   147d6:	75 4e                	jne    14826 <_NdisIPnPStartDevice@8+0x216>
   147d8:	c7 86 48 05 00 00 0e 	movl   $0xe,0x548(%esi)
   147df:	00 00 00 
   147e2:	c7 86 54 05 00 00 06 	movl   $0x6,0x554(%esi)
   147e9:	00 00 00 
   147ec:	50                   	push   %eax
   147ed:	50                   	push   %eax
   147ee:	68 02 01 01 01       	push   $0x1010102
   147f3:	56                   	push   %esi
   147f4:	e8 27 fc ff ff       	call   14420 <_DoQueries>
   147f9:	83 c4 10             	add    $0x10,%esp
   147fc:	85 c0                	test   %eax,%eax
   147fe:	89 45 d0             	mov    %eax,0xffffffd0(%ebp)
   14801:	0f 84 ac 01 00 00    	je     149b3 <_NdisIPnPStartDevice@8+0x3a3>
    }

  if (!Success || NdisStatus != NDIS_STATUS_SUCCESS) 
    {
      NDIS_DbgPrint(MAX_TRACE, ("couldn't create filter (%x)\n", NdisStatus));
      if (Adapter->LookaheadBuffer)
   14807:	8b 86 58 05 00 00    	mov    0x558(%esi),%eax
   1480d:	85 c0                	test   %eax,%eax
   1480f:	0f 85 8b 00 00 00    	jne    148a0 <_NdisIPnPStartDevice@8+0x290>
        {
          ExFreePool(Adapter->LookaheadBuffer);
          Adapter->LookaheadBuffer = NULL;
        }
      return (NTSTATUS)NdisStatus;
   14815:	8b 55 d0             	mov    0xffffffd0(%ebp),%edx
    }

  Adapter->NdisMiniportBlock.OldPnPDeviceState = Adapter->NdisMiniportBlock.PnPDeviceState;
  Adapter->NdisMiniportBlock.PnPDeviceState = NdisPnPDeviceStarted;

  /* Put adapter in adapter list for this miniport */
  ExInterlockedInsertTailList(&Adapter->Miniport->AdapterListHead, &Adapter->MiniportListEntry, &Adapter->Miniport->Lock);

  /* Put adapter in global adapter list */
  ExInterlockedInsertTailList(&AdapterListHead, &Adapter->ListEntry, &AdapterListLock);

  return STATUS_SUCCESS;
}
   14818:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1481b:	89 d0                	mov    %edx,%eax
   1481d:	5b                   	pop    %ebx
   1481e:	5e                   	pop    %esi
   1481f:	5f                   	pop    %edi
   14820:	5d                   	pop    %ebp
   14821:	c2 08 00             	ret    $0x8
   14824:	89 c2                	mov    %eax,%edx
   14826:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14829:	89 d0                	mov    %edx,%eax
   1482b:	5b                   	pop    %ebx
   1482c:	5e                   	pop    %esi
   1482d:	5f                   	pop    %edi
   1482e:	5d                   	pop    %ebp
   1482f:	c2 08 00             	ret    $0x8
   14832:	8b 40 10             	mov    0x10(%eax),%eax
   14835:	c1 e0 04             	shl    $0x4,%eax
   14838:	8d 78 14             	lea    0x14(%eax),%edi
   1483b:	50                   	push   %eax
   1483c:	50                   	push   %eax
   1483d:	57                   	push   %edi
   1483e:	6a 01                	push   $0x1
   14840:	ff 15 24 e2 01 00    	call   *0x1e224
   14846:	85 c0                	test   %eax,%eax
   14848:	89 86 e8 01 00 00    	mov    %eax,0x1e8(%esi)
   1484e:	5a                   	pop    %edx
   1484f:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14854:	59                   	pop    %ecx
   14855:	74 cf                	je     14826 <_NdisIPnPStartDevice@8+0x216>
   14857:	50                   	push   %eax
   14858:	50                   	push   %eax
   14859:	57                   	push   %edi
   1485a:	6a 01                	push   $0x1
   1485c:	ff 15 24 e2 01 00    	call   *0x1e224
   14862:	85 c0                	test   %eax,%eax
   14864:	89 86 ec 01 00 00    	mov    %eax,0x1ec(%esi)
   1486a:	5a                   	pop    %edx
   1486b:	59                   	pop    %ecx
   1486c:	0f 84 d4 01 00 00    	je     14a46 <_NdisIPnPStartDevice@8+0x436>
   14872:	50                   	push   %eax
   14873:	57                   	push   %edi
   14874:	8b 43 04             	mov    0x4(%ebx),%eax
   14877:	50                   	push   %eax
   14878:	8b 8e e8 01 00 00    	mov    0x1e8(%esi),%ecx
   1487e:	51                   	push   %ecx
   1487f:	e8 4c 1e 00 00       	call   166d0 <_memcpy>
   14884:	83 c4 0c             	add    $0xc,%esp
   14887:	57                   	push   %edi
   14888:	8b 53 08             	mov    0x8(%ebx),%edx
   1488b:	52                   	push   %edx
   1488c:	8b 86 ec 01 00 00    	mov    0x1ec(%esi),%eax
   14892:	50                   	push   %eax
   14893:	e8 38 1e 00 00       	call   166d0 <_memcpy>
   14898:	83 c4 10             	add    $0x10,%esp
   1489b:	e9 c9 fd ff ff       	jmp    14669 <_NdisIPnPStartDevice@8+0x59>
   148a0:	83 ec 0c             	sub    $0xc,%esp
   148a3:	50                   	push   %eax
   148a4:	ff 15 2c e2 01 00    	call   *0x1e22c
   148aa:	8b 55 d0             	mov    0xffffffd0(%ebp),%edx
   148ad:	83 c4 0c             	add    $0xc,%esp
   148b0:	c7 86 58 05 00 00 00 	movl   $0x0,0x558(%esi)
   148b7:	00 00 00 
   148ba:	e9 59 ff ff ff       	jmp    14818 <_NdisIPnPStartDevice@8+0x208>
   148bf:	90                   	nop    
   148c0:	8d 5d c0             	lea    0xffffffc0(%ebp),%ebx
   148c3:	50                   	push   %eax
   148c4:	50                   	push   %eax
   148c5:	68 7e 81 01 00       	push   $0x1817e
   148ca:	53                   	push   %ebx
   148cb:	e8 80 15 00 00       	call   15e50 <_NdisInitUnicodeString@8>
   148d0:	50                   	push   %eax
   148d1:	6a 00                	push   $0x0
   148d3:	53                   	push   %ebx
   148d4:	8d 45 bc             	lea    0xffffffbc(%ebp),%eax
   148d7:	8b 5d d4             	mov    0xffffffd4(%ebp),%ebx
   148da:	53                   	push   %ebx
   148db:	50                   	push   %eax
   148dc:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   148df:	50                   	push   %eax
   148e0:	e8 1b db ff ff       	call   12400 <_NdisReadConfiguration@20>
   148e5:	8b 4d d0             	mov    0xffffffd0(%ebp),%ecx
   148e8:	83 c4 0c             	add    $0xc,%esp
   148eb:	85 c9                	test   %ecx,%ecx
   148ed:	0f 85 91 00 00 00    	jne    14984 <_NdisIPnPStartDevice@8+0x374>
   148f3:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   148f6:	8b 40 04             	mov    0x4(%eax),%eax
   148f9:	89 86 00 01 00 00    	mov    %eax,0x100(%esi)
   148ff:	e9 b4 fd ff ff       	jmp    146b8 <_NdisIPnPStartDevice@8+0xa8>
   14904:	53                   	push   %ebx
   14905:	53                   	push   %ebx
   14906:	8d 5d c0             	lea    0xffffffc0(%ebp),%ebx
   14909:	68 8e 81 01 00       	push   $0x1818e
   1490e:	53                   	push   %ebx
   1490f:	e8 3c 15 00 00       	call   15e50 <_NdisInitUnicodeString@8>
   14914:	8d 45 bc             	lea    0xffffffbc(%ebp),%eax
   14917:	51                   	push   %ecx
   14918:	6a 00                	push   $0x0
   1491a:	53                   	push   %ebx
   1491b:	8b 55 d4             	mov    0xffffffd4(%ebp),%edx
   1491e:	52                   	push   %edx
   1491f:	50                   	push   %eax
   14920:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   14923:	50                   	push   %eax
   14924:	e8 d7 da ff ff       	call   12400 <_NdisReadConfiguration@20>
   14929:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   1492c:	83 c4 0c             	add    $0xc,%esp
   1492f:	85 c0                	test   %eax,%eax
   14931:	75 60                	jne    14993 <_NdisIPnPStartDevice@8+0x383>
   14933:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   14936:	8b 40 04             	mov    0x4(%eax),%eax
   14939:	89 86 e4 01 00 00    	mov    %eax,0x1e4(%esi)
   1493f:	e9 e5 fd ff ff       	jmp    14729 <_NdisIPnPStartDevice@8+0x119>
   14944:	8d 5d c0             	lea    0xffffffc0(%ebp),%ebx
   14947:	50                   	push   %eax
   14948:	50                   	push   %eax
   14949:	68 a4 81 01 00       	push   $0x181a4
   1494e:	53                   	push   %ebx
   1494f:	e8 fc 14 00 00       	call   15e50 <_NdisInitUnicodeString@8>
   14954:	50                   	push   %eax
   14955:	6a 00                	push   $0x0
   14957:	53                   	push   %ebx
   14958:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   1495b:	50                   	push   %eax
   1495c:	8d 45 bc             	lea    0xffffffbc(%ebp),%eax
   1495f:	50                   	push   %eax
   14960:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   14963:	50                   	push   %eax
   14964:	e8 97 da ff ff       	call   12400 <_NdisReadConfiguration@20>
   14969:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   1496c:	83 c4 0c             	add    $0xc,%esp
   1496f:	85 c0                	test   %eax,%eax
   14971:	75 2f                	jne    149a2 <_NdisIPnPStartDevice@8+0x392>
   14973:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   14976:	8b 40 04             	mov    0x4(%eax),%eax
   14979:	89 86 fc 00 00 00    	mov    %eax,0xfc(%esi)
   1497f:	e9 6c fd ff ff       	jmp    146f0 <_NdisIPnPStartDevice@8+0xe0>
   14984:	c7 86 00 01 00 00 01 	movl   $0x1,0x100(%esi)
   1498b:	00 00 00 
   1498e:	e9 25 fd ff ff       	jmp    146b8 <_NdisIPnPStartDevice@8+0xa8>
   14993:	c7 86 e4 01 00 00 00 	movl   $0x0,0x1e4(%esi)
   1499a:	00 00 00 
   1499d:	e9 87 fd ff ff       	jmp    14729 <_NdisIPnPStartDevice@8+0x119>
   149a2:	31 c0                	xor    %eax,%eax
   149a4:	c7 86 fc 00 00 00 00 	movl   $0x0,0xfc(%esi)
   149ab:	00 00 00 
   149ae:	e9 3d fd ff ff       	jmp    146f0 <_NdisIPnPStartDevice@8+0xe0>
   149b3:	50                   	push   %eax
   149b4:	8d 86 d8 00 00 00    	lea    0xd8(%esi),%eax
   149ba:	50                   	push   %eax
   149bb:	8d 86 4c 05 00 00    	lea    0x54c(%esi),%eax
   149c1:	50                   	push   %eax
   149c2:	6a 20                	push   $0x20
   149c4:	e8 87 1b 00 00       	call   16550 <_EthCreateFilter@12>
   149c9:	5f                   	pop    %edi
   149ca:	84 c0                	test   %al,%al
   149cc:	74 6c                	je     14a3a <_NdisIPnPStartDevice@8+0x42a>
   149ce:	8b 86 d8 00 00 00    	mov    0xd8(%esi),%eax
   149d4:	8b 5d d0             	mov    0xffffffd0(%ebp),%ebx
   149d7:	85 db                	test   %ebx,%ebx
   149d9:	89 70 08             	mov    %esi,0x8(%eax)
   149dc:	0f 85 25 fe ff ff    	jne    14807 <_NdisIPnPStartDevice@8+0x1f7>
   149e2:	8b 86 e4 02 00 00    	mov    0x2e4(%esi),%eax
   149e8:	89 86 e8 02 00 00    	mov    %eax,0x2e8(%esi)
   149ee:	c7 86 e4 02 00 00 01 	movl   $0x1,0x2e4(%esi)
   149f5:	00 00 00 
   149f8:	51                   	push   %ecx
   149f9:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   149ff:	83 c0 08             	add    $0x8,%eax
   14a02:	50                   	push   %eax
   14a03:	8d 86 20 05 00 00    	lea    0x520(%esi),%eax
   14a09:	50                   	push   %eax
   14a0a:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   14a10:	05 84 00 00 00       	add    $0x84,%eax
   14a15:	50                   	push   %eax
   14a16:	ff 15 38 e2 01 00    	call   *0x1e238
   14a1c:	8d 86 18 05 00 00    	lea    0x518(%esi),%eax
   14a22:	68 30 90 01 00       	push   $0x19030
   14a27:	50                   	push   %eax
   14a28:	68 00 90 01 00       	push   $0x19000
   14a2d:	ff 15 38 e2 01 00    	call   *0x1e238
   14a33:	31 d2                	xor    %edx,%edx
   14a35:	e9 ec fd ff ff       	jmp    14826 <_NdisIPnPStartDevice@8+0x216>
   14a3a:	c7 45 d0 9a 00 00 c0 	movl   $0xc000009a,0xffffffd0(%ebp)
   14a41:	e9 c1 fd ff ff       	jmp    14807 <_NdisIPnPStartDevice@8+0x1f7>
   14a46:	83 ec 0c             	sub    $0xc,%esp
   14a49:	8b 86 e8 01 00 00    	mov    0x1e8(%esi),%eax
   14a4f:	50                   	push   %eax
   14a50:	ff 15 2c e2 01 00    	call   *0x1e22c
   14a56:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14a5b:	c7 86 e8 01 00 00 00 	movl   $0x0,0x1e8(%esi)
   14a62:	00 00 00 
   14a65:	e9 bc fd ff ff       	jmp    14826 <_NdisIPnPStartDevice@8+0x216>
   14a6a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00014a70 <_NdisIPnPStopDevice@8>:


NTSTATUS
STDCALL
NdisIPnPStopDevice(
    IN PDEVICE_OBJECT DeviceObject,
    PIRP Irp)
/*
 * FUNCTION: Handle the PnP stop device event
 * ARGUMENTS:
 *     DeviceObejct = Functional Device Object
 *     Irp          = IRP_MN_STOP_DEVICE I/O request packet
 * RETURNS:
 *     Status of operation
 */
{
   14a70:	55                   	push   %ebp
   14a71:	89 e5                	mov    %esp,%ebp
   14a73:	56                   	push   %esi
   14a74:	53                   	push   %ebx
   14a75:	83 ec 18             	sub    $0x18,%esp
  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)DeviceObject->DeviceExtension;
  KIRQL OldIrql;

  /* Remove adapter from adapter list for this miniport */
  KeAcquireSpinLock(&Adapter->Miniport->Lock, &OldIrql);
   14a78:	8d 5d f7             	lea    0xfffffff7(%ebp),%ebx
   14a7b:	8b 45 08             	mov    0x8(%ebp),%eax
   14a7e:	8b 70 28             	mov    0x28(%eax),%esi
   14a81:	53                   	push   %ebx
   14a82:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   14a88:	83 c0 08             	add    $0x8,%eax
   14a8b:	50                   	push   %eax
   14a8c:	ff 15 dc e1 01 00    	call   *0x1e1dc
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   14a92:	8b 96 20 05 00 00    	mov    0x520(%esi),%edx
  OldBlink = Entry->Blink;
   14a98:	8b 86 24 05 00 00    	mov    0x524(%esi),%eax
  OldFlink->Blink = OldBlink;
   14a9e:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   14aa1:	89 10                	mov    %edx,(%eax)
  RemoveEntryList(&Adapter->MiniportListEntry);
  KeReleaseSpinLock(&Adapter->Miniport->Lock, OldIrql);
   14aa3:	31 c0                	xor    %eax,%eax
   14aa5:	8a 45 f7             	mov    0xfffffff7(%ebp),%al
   14aa8:	50                   	push   %eax
   14aa9:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   14aaf:	83 c0 08             	add    $0x8,%eax
   14ab2:	50                   	push   %eax
   14ab3:	ff 15 e0 e1 01 00    	call   *0x1e1e0

  /* Remove adapter from global adapter list */
  KeAcquireSpinLock(&AdapterListLock, &OldIrql);
   14ab9:	53                   	push   %ebx
   14aba:	68 30 90 01 00       	push   $0x19030
   14abf:	ff 15 dc e1 01 00    	call   *0x1e1dc
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   14ac5:	8b 96 18 05 00 00    	mov    0x518(%esi),%edx
  OldBlink = Entry->Blink;
   14acb:	8b 86 1c 05 00 00    	mov    0x51c(%esi),%eax
  OldFlink->Blink = OldBlink;
   14ad1:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   14ad4:	89 10                	mov    %edx,(%eax)
  RemoveEntryList(&Adapter->ListEntry);
  KeReleaseSpinLock(&AdapterListLock, OldIrql);
   14ad6:	31 c0                	xor    %eax,%eax
   14ad8:	8a 45 f7             	mov    0xfffffff7(%ebp),%al
   14adb:	50                   	push   %eax
   14adc:	68 30 90 01 00       	push   $0x19030
   14ae1:	ff 15 e0 e1 01 00    	call   *0x1e1e0

  (*Adapter->Miniport->Chars.HaltHandler)(Adapter);
   14ae7:	53                   	push   %ebx
   14ae8:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   14aee:	56                   	push   %esi
   14aef:	ff 50 24             	call   *0x24(%eax)

  if (Adapter->LookaheadBuffer)
   14af2:	8b 86 58 05 00 00    	mov    0x558(%esi),%eax
   14af8:	83 c4 0c             	add    $0xc,%esp
   14afb:	85 c0                	test   %eax,%eax
   14afd:	75 35                	jne    14b34 <_NdisIPnPStopDevice@8+0xc4>
    {
      ExFreePool(Adapter->LookaheadBuffer);
      Adapter->LookaheadBuffer = NULL;
    }
  if (Adapter->NdisMiniportBlock.AllocatedResources)
   14aff:	8b 86 e8 01 00 00    	mov    0x1e8(%esi),%eax
   14b05:	85 c0                	test   %eax,%eax
   14b07:	75 4c                	jne    14b55 <_NdisIPnPStopDevice@8+0xe5>
    {
      ExFreePool(Adapter->NdisMiniportBlock.AllocatedResources);
      Adapter->NdisMiniportBlock.AllocatedResources = NULL;
    }
  if (Adapter->NdisMiniportBlock.AllocatedResourcesTranslated)
   14b09:	8b 86 ec 01 00 00    	mov    0x1ec(%esi),%eax
   14b0f:	85 c0                	test   %eax,%eax
   14b11:	75 63                	jne    14b76 <_NdisIPnPStopDevice@8+0x106>
    {
      ExFreePool(Adapter->NdisMiniportBlock.AllocatedResourcesTranslated);
      Adapter->NdisMiniportBlock.AllocatedResourcesTranslated = NULL;
    }

  Adapter->NdisMiniportBlock.OldPnPDeviceState = Adapter->NdisMiniportBlock.PnPDeviceState;
   14b13:	8b 86 e4 02 00 00    	mov    0x2e4(%esi),%eax
  Adapter->NdisMiniportBlock.PnPDeviceState = NdisPnPDeviceStopped;
   14b19:	c7 86 e4 02 00 00 03 	movl   $0x3,0x2e4(%esi)
   14b20:	00 00 00 
   14b23:	89 86 e8 02 00 00    	mov    %eax,0x2e8(%esi)

  return STATUS_SUCCESS;
}
   14b29:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   14b2c:	31 c0                	xor    %eax,%eax
   14b2e:	5b                   	pop    %ebx
   14b2f:	5e                   	pop    %esi
   14b30:	5d                   	pop    %ebp
   14b31:	c2 08 00             	ret    $0x8
   14b34:	83 ec 0c             	sub    $0xc,%esp
   14b37:	50                   	push   %eax
   14b38:	ff 15 2c e2 01 00    	call   *0x1e22c
   14b3e:	8b 86 e8 01 00 00    	mov    0x1e8(%esi),%eax
   14b44:	83 c4 0c             	add    $0xc,%esp
   14b47:	c7 86 58 05 00 00 00 	movl   $0x0,0x558(%esi)
   14b4e:	00 00 00 
   14b51:	85 c0                	test   %eax,%eax
   14b53:	74 b4                	je     14b09 <_NdisIPnPStopDevice@8+0x99>
   14b55:	83 ec 0c             	sub    $0xc,%esp
   14b58:	50                   	push   %eax
   14b59:	ff 15 2c e2 01 00    	call   *0x1e22c
   14b5f:	8b 86 ec 01 00 00    	mov    0x1ec(%esi),%eax
   14b65:	83 c4 0c             	add    $0xc,%esp
   14b68:	c7 86 e8 01 00 00 00 	movl   $0x0,0x1e8(%esi)
   14b6f:	00 00 00 
   14b72:	85 c0                	test   %eax,%eax
   14b74:	74 9d                	je     14b13 <_NdisIPnPStopDevice@8+0xa3>
   14b76:	83 ec 0c             	sub    $0xc,%esp
   14b79:	50                   	push   %eax
   14b7a:	ff 15 2c e2 01 00    	call   *0x1e22c
   14b80:	8b 86 e4 02 00 00    	mov    0x2e4(%esi),%eax
   14b86:	c7 86 ec 01 00 00 00 	movl   $0x0,0x1ec(%esi)
   14b8d:	00 00 00 
   14b90:	89 86 e8 02 00 00    	mov    %eax,0x2e8(%esi)
   14b96:	c7 86 e4 02 00 00 03 	movl   $0x3,0x2e4(%esi)
   14b9d:	00 00 00 
   14ba0:	83 c4 0c             	add    $0xc,%esp
   14ba3:	31 c0                	xor    %eax,%eax
   14ba5:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   14ba8:	5b                   	pop    %ebx
   14ba9:	5e                   	pop    %esi
   14baa:	5d                   	pop    %ebp
   14bab:	c2 08 00             	ret    $0x8
   14bae:	89 f6                	mov    %esi,%esi

00014bb0 <_NdisIDispatchPnp@8>:


NTSTATUS
STDCALL
NdisIDispatchPnp(
    IN PDEVICE_OBJECT DeviceObject,
    PIRP Irp)
{
   14bb0:	55                   	push   %ebp
  PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
  PLOGICAL_ADAPTER Adapter = (PLOGICAL_ADAPTER)DeviceObject->DeviceExtension;
  NTSTATUS Status;

  switch (Stack->MinorFunction)
   14bb1:	31 d2                	xor    %edx,%edx
   14bb3:	89 e5                	mov    %esp,%ebp
   14bb5:	57                   	push   %edi
   14bb6:	56                   	push   %esi
   14bb7:	53                   	push   %ebx
   14bb8:	83 ec 0c             	sub    $0xc,%esp
   14bbb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   14bbe:	8b 7d 08             	mov    0x8(%ebp),%edi
   14bc1:	8b 43 60             	mov    0x60(%ebx),%eax
   14bc4:	8b 4f 28             	mov    0x28(%edi),%ecx
   14bc7:	8a 50 01             	mov    0x1(%eax),%dl
   14bca:	85 d2                	test   %edx,%edx
   14bcc:	74 32                	je     14c00 <_NdisIDispatchPnp@8+0x50>
    {
      case IRP_MN_START_DEVICE:
        Status = NdisIForwardIrpAndWait(Adapter, Irp);
        if (NT_SUCCESS(Status) && NT_SUCCESS(Irp->IoStatus.Status))
          {
	      Status = NdisIPnPStartDevice(DeviceObject, Irp);
          }
        Irp->IoStatus.Status = Status;
        IoCompleteRequest(Irp, IO_NO_INCREMENT);
        break;

      case IRP_MN_STOP_DEVICE:
        /* FIXME */
        Status = STATUS_UNSUCCESSFUL;
   14bce:	be 01 00 00 c0       	mov    $0xc0000001,%esi
   14bd3:	83 fa 04             	cmp    $0x4,%edx
   14bd6:	74 19                	je     14bf1 <_NdisIDispatchPnp@8+0x41>
        break;
        Status = NdisIForwardIrpAndWait(Adapter, Irp);
        if (NT_SUCCESS(Status) && NT_SUCCESS(Irp->IoStatus.Status))
          {
            Status = NdisIPnPStopDevice(DeviceObject, Irp);
          }
        Irp->IoStatus.Status = Status;
        IoCompleteRequest(Irp, IO_NO_INCREMENT);
        break;

      default:
        IoSkipCurrentIrpStackLocation(Irp);
   14bd8:	fe 43 23             	incb   0x23(%ebx)
   14bdb:	83 c0 24             	add    $0x24,%eax
   14bde:	89 43 60             	mov    %eax,0x60(%ebx)
        Status = IoCallDriver(Adapter->NdisMiniportBlock.NextDeviceObject, Irp);
   14be1:	89 da                	mov    %ebx,%edx
   14be3:	8b 89 10 01 00 00    	mov    0x110(%ecx),%ecx
   14be9:	ff 15 14 e2 01 00    	call   *0x1e214
   14bef:	89 c6                	mov    %eax,%esi
        break;
    }

  return Status;
}
   14bf1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14bf4:	89 f0                	mov    %esi,%eax
   14bf6:	5b                   	pop    %ebx
   14bf7:	5e                   	pop    %esi
   14bf8:	5f                   	pop    %edi
   14bf9:	5d                   	pop    %ebp
   14bfa:	c2 08 00             	ret    $0x8
   14bfd:	8d 76 00             	lea    0x0(%esi),%esi
   14c00:	56                   	push   %esi
   14c01:	56                   	push   %esi
   14c02:	53                   	push   %ebx
   14c03:	51                   	push   %ecx
   14c04:	e8 57 f9 ff ff       	call   14560 <_NdisIForwardIrpAndWait@8>
   14c09:	89 c6                	mov    %eax,%esi
   14c0b:	58                   	pop    %eax
   14c0c:	85 f6                	test   %esi,%esi
   14c0e:	5a                   	pop    %edx
   14c0f:	78 14                	js     14c25 <_NdisIDispatchPnp@8+0x75>
   14c11:	8b 43 18             	mov    0x18(%ebx),%eax
   14c14:	85 c0                	test   %eax,%eax
   14c16:	78 0d                	js     14c25 <_NdisIDispatchPnp@8+0x75>
   14c18:	50                   	push   %eax
   14c19:	50                   	push   %eax
   14c1a:	53                   	push   %ebx
   14c1b:	57                   	push   %edi
   14c1c:	e8 ef f9 ff ff       	call   14610 <_NdisIPnPStartDevice@8>
   14c21:	89 c6                	mov    %eax,%esi
   14c23:	5f                   	pop    %edi
   14c24:	58                   	pop    %eax
   14c25:	89 73 18             	mov    %esi,0x18(%ebx)
   14c28:	89 d9                	mov    %ebx,%ecx
   14c2a:	31 d2                	xor    %edx,%edx
   14c2c:	ff 15 18 e2 01 00    	call   *0x1e218
   14c32:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14c35:	89 f0                	mov    %esi,%eax
   14c37:	5b                   	pop    %ebx
   14c38:	5e                   	pop    %esi
   14c39:	5f                   	pop    %edi
   14c3a:	5d                   	pop    %ebp
   14c3b:	c2 08 00             	ret    $0x8
   14c3e:	89 f6                	mov    %esi,%esi

00014c40 <_NdisIAddDevice@8>:


NTSTATUS
STDCALL
NdisIAddDevice(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject)
/*
 * FUNCTION: Create a device for an adapter found using PnP
 * ARGUMENTS:
 *     DriverObject         = Pointer to the miniport driver object
 *     PhysicalDeviceObject = Pointer to the PDO for our adapter
 */
{
   14c40:	55                   	push   %ebp
   14c41:	89 e5                	mov    %esp,%ebp
   14c43:	57                   	push   %edi
   14c44:	56                   	push   %esi
   14c45:	53                   	push   %ebx
   14c46:	83 ec 74             	sub    $0x74,%esp
  static const WCHAR ClassKeyName[] = {'C','l','a','s','s','\\'};
  static const WCHAR LinkageKeyName[] = {'\\','L','i','n','k','a','g','e',0};
  PMINIPORT_DRIVER Miniport;
  PMINIPORT_DRIVER *MiniportPtr;
  WCHAR *LinkageKeyBuffer;
  ULONG DriverKeyLength;
  RTL_QUERY_REGISTRY_TABLE QueryTable[2];
  UNICODE_STRING ExportName;
  PDEVICE_OBJECT DeviceObject;
  PLOGICAL_ADAPTER Adapter;
  NTSTATUS Status;

  /*
   * Gain the access to the miniport data structure first.
   */

  MiniportPtr = IoGetDriverObjectExtension(DriverObject, (PVOID)TAG('D','I','M','N'));
   14c49:	8b 5d 08             	mov    0x8(%ebp),%ebx
   14c4c:	68 44 49 4d 4e       	push   $0x4e4d4944
   14c51:	53                   	push   %ebx
   14c52:	ff 15 5c e2 01 00    	call   *0x1e25c
  if (MiniportPtr == NULL)
   14c58:	5a                   	pop    %edx
   14c59:	85 c0                	test   %eax,%eax
   14c5b:	59                   	pop    %ecx
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Can't get driver object extension.\n"));
      return STATUS_UNSUCCESSFUL;
   14c5c:	ba 01 00 00 c0       	mov    $0xc0000001,%edx
   14c61:	74 28                	je     14c8b <_NdisIAddDevice@8+0x4b>
    }
  Miniport = *MiniportPtr;
   14c63:	8b 00                	mov    (%eax),%eax

  /*
   * Get name of the Linkage registry key for our adapter. It's located under
   * the driver key for our driver and so we have basicly two ways to do it.
   * Either we can use IoOpenDriverRegistryKey or compose it using information
   * gathered by IoGetDeviceProperty. I choosed the second because
   * IoOpenDriverRegistryKey wasn't implemented at the time of writing.
   */
  
  Status = IoGetDeviceProperty(PhysicalDeviceObject, DevicePropertyDriverKeyName,
   14c65:	83 ec 0c             	sub    $0xc,%esp
   14c68:	89 45 90             	mov    %eax,0xffffff90(%ebp)
   14c6b:	8d 7d a4             	lea    0xffffffa4(%ebp),%edi
   14c6e:	8b 45 0c             	mov    0xc(%ebp),%eax
   14c71:	57                   	push   %edi
   14c72:	6a 00                	push   $0x0
   14c74:	6a 00                	push   $0x0
   14c76:	6a 07                	push   $0x7
   14c78:	50                   	push   %eax
   14c79:	ff 15 54 e2 01 00    	call   *0x1e254
                               0, NULL, &DriverKeyLength);
  if (Status != STATUS_BUFFER_TOO_SMALL)
   14c7f:	83 c4 0c             	add    $0xc,%esp
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Can't get miniport driver key length.\n"));
      return Status;
   14c82:	89 c2                	mov    %eax,%edx
   14c84:	3d 23 00 00 c0       	cmp    $0xc0000023,%eax
   14c89:	74 0c                	je     14c97 <_NdisIAddDevice@8+0x57>
    }

  LinkageKeyBuffer = ExAllocatePool(PagedPool, DriverKeyLength +
                                    sizeof(ClassKeyName) + sizeof(LinkageKeyName));
  if (LinkageKeyBuffer == NULL)
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Can't allocate memory for driver key name.\n"));
      return STATUS_INSUFFICIENT_RESOURCES;
    }

  Status = IoGetDeviceProperty(PhysicalDeviceObject, DevicePropertyDriverKeyName,
                               DriverKeyLength, LinkageKeyBuffer +
                               (sizeof(ClassKeyName) / sizeof(WCHAR)),
                               &DriverKeyLength);
  if (!NT_SUCCESS(Status))
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Can't get miniport driver key.\n"));
      ExFreePool(LinkageKeyBuffer);
      return Status;
    }

  /* Compose the linkage key name. */
  RtlCopyMemory(LinkageKeyBuffer, ClassKeyName, sizeof(ClassKeyName));
  RtlCopyMemory(LinkageKeyBuffer + ((sizeof(ClassKeyName) + DriverKeyLength) /
                sizeof(WCHAR)) - 1, LinkageKeyName, sizeof(LinkageKeyName));

  NDIS_DbgPrint(DEBUG_MINIPORT, ("LinkageKey: %S.\n", LinkageKeyBuffer));

  /*
   * Now open the linkage key and read the "Export" and "RootDevice" values
   * which contains device name and root service respectively.
   */

  RtlZeroMemory(QueryTable, sizeof(QueryTable));
  RtlInitUnicodeString(&ExportName, NULL);
  QueryTable[0].Flags = RTL_QUERY_REGISTRY_REQUIRED | RTL_QUERY_REGISTRY_DIRECT;
  QueryTable[0].Name = L"Export";
  QueryTable[0].EntryContext = &ExportName;

  Status = RtlQueryRegistryValues(RTL_REGISTRY_CONTROL, LinkageKeyBuffer,
                                  QueryTable, NULL, NULL);
  ExFreePool(LinkageKeyBuffer);
  if (!NT_SUCCESS(Status))
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Can't get miniport device name. (%x)\n", Status));
      return Status;
    }

  /*
   * Create the device object.
   */
  
  NDIS_DbgPrint(MAX_TRACE, ("creating device %wZ\n", &ExportName));

  Status = IoCreateDevice(Miniport->DriverObject, sizeof(LOGICAL_ADAPTER),
    &ExportName, FILE_DEVICE_PHYSICAL_NETCARD,
    0, FALSE, &DeviceObject);
  if (!NT_SUCCESS(Status)) 
    {
      NDIS_DbgPrint(MIN_TRACE, ("Could not create device object.\n"));
      RtlFreeUnicodeString(&ExportName);
      return Status;
    }

  /*
   * Initialize the adapter structure.
   */

  Adapter = (PLOGICAL_ADAPTER)DeviceObject->DeviceExtension;
  KeInitializeSpinLock(&Adapter->NdisMiniportBlock.Lock);
  InitializeListHead(&Adapter->ProtocolListHead);
  Adapter->RefCount = 1;
  Adapter->Miniport = Miniport;

  Adapter->NdisMiniportBlock.MiniportName = ExportName;

  Adapter->NdisMiniportBlock.DeviceObject = DeviceObject;
  Adapter->NdisMiniportBlock.PhysicalDeviceObject = PhysicalDeviceObject;
  Adapter->NdisMiniportBlock.NextDeviceObject =
    IoAttachDeviceToDeviceStack(Adapter->NdisMiniportBlock.DeviceObject,
                                PhysicalDeviceObject);

  Adapter->NdisMiniportBlock.OldPnPDeviceState = 0;
  Adapter->NdisMiniportBlock.PnPDeviceState = NdisPnPDeviceAdded;
                                
  KeInitializeDpc(&Adapter->MiniportDpc, MiniportDpc, (PVOID)Adapter);

  DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
  
  return STATUS_SUCCESS;
}
   14c8b:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14c8e:	89 d0                	mov    %edx,%eax
   14c90:	5b                   	pop    %ebx
   14c91:	5e                   	pop    %esi
   14c92:	5f                   	pop    %edi
   14c93:	5d                   	pop    %ebp
   14c94:	c2 08 00             	ret    $0x8
   14c97:	50                   	push   %eax
   14c98:	50                   	push   %eax
   14c99:	8b 45 a4             	mov    0xffffffa4(%ebp),%eax
   14c9c:	83 c0 1e             	add    $0x1e,%eax
   14c9f:	50                   	push   %eax
   14ca0:	6a 01                	push   $0x1
   14ca2:	ff 15 24 e2 01 00    	call   *0x1e224
   14ca8:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14cad:	89 c6                	mov    %eax,%esi
   14caf:	5b                   	pop    %ebx
   14cb0:	85 f6                	test   %esi,%esi
   14cb2:	58                   	pop    %eax
   14cb3:	74 d6                	je     14c8b <_NdisIAddDevice@8+0x4b>
   14cb5:	83 ec 0c             	sub    $0xc,%esp
   14cb8:	8d 46 0c             	lea    0xc(%esi),%eax
   14cbb:	8b 4d a4             	mov    0xffffffa4(%ebp),%ecx
   14cbe:	8b 55 0c             	mov    0xc(%ebp),%edx
   14cc1:	57                   	push   %edi
   14cc2:	50                   	push   %eax
   14cc3:	51                   	push   %ecx
   14cc4:	6a 07                	push   $0x7
   14cc6:	52                   	push   %edx
   14cc7:	ff 15 54 e2 01 00    	call   *0x1e254
   14ccd:	83 c4 0c             	add    $0xc,%esp
   14cd0:	89 c3                	mov    %eax,%ebx
   14cd2:	85 c0                	test   %eax,%eax
   14cd4:	0f 88 7b 01 00 00    	js     14e55 <_NdisIAddDevice@8+0x215>
   14cda:	a1 b8 81 01 00       	mov    0x181b8,%eax
   14cdf:	8b 15 c4 81 01 00    	mov    0x181c4,%edx
   14ce5:	89 06                	mov    %eax,(%esi)
   14ce7:	a1 bc 81 01 00       	mov    0x181bc,%eax
   14cec:	89 46 04             	mov    %eax,0x4(%esi)
   14cef:	a1 c0 81 01 00       	mov    0x181c0,%eax
   14cf4:	89 46 08             	mov    %eax,0x8(%esi)
   14cf7:	8d 7d a8             	lea    0xffffffa8(%ebp),%edi
   14cfa:	8b 45 a4             	mov    0xffffffa4(%ebp),%eax
   14cfd:	b9 0e 00 00 00       	mov    $0xe,%ecx
   14d02:	83 c0 0c             	add    $0xc,%eax
   14d05:	d1 e8                	shr    %eax
   14d07:	fc                   	cld    
   14d08:	89 54 46 fe          	mov    %edx,0xfffffffe(%esi,%eax,2)
   14d0c:	8b 15 c8 81 01 00    	mov    0x181c8,%edx
   14d12:	89 54 46 02          	mov    %edx,0x2(%esi,%eax,2)
   14d16:	8b 15 cc 81 01 00    	mov    0x181cc,%edx
   14d1c:	89 54 46 06          	mov    %edx,0x6(%esi,%eax,2)
   14d20:	8b 15 d0 81 01 00    	mov    0x181d0,%edx
   14d26:	89 54 46 0a          	mov    %edx,0xa(%esi,%eax,2)
   14d2a:	66 8b 15 d4 81 01 00 	mov    0x181d4,%dx
   14d31:	66 89 54 46 0e       	mov    %dx,0xe(%esi,%eax,2)
   14d36:	31 c0                	xor    %eax,%eax
   14d38:	f3 ab                	repz stos %eax,%es:(%edi)
   14d3a:	8d 7d 98             	lea    0xffffff98(%ebp),%edi
   14d3d:	50                   	push   %eax
   14d3e:	50                   	push   %eax
   14d3f:	6a 00                	push   $0x0
   14d41:	57                   	push   %edi
   14d42:	ff 15 ec e2 01 00    	call   *0x1e2ec
   14d48:	c7 45 ac 24 00 00 00 	movl   $0x24,0xffffffac(%ebp)
   14d4f:	c7 45 b0 d6 81 01 00 	movl   $0x181d6,0xffffffb0(%ebp)
   14d56:	50                   	push   %eax
   14d57:	89 7d b4             	mov    %edi,0xffffffb4(%ebp)
   14d5a:	8d 45 a8             	lea    0xffffffa8(%ebp),%eax
   14d5d:	6a 00                	push   $0x0
   14d5f:	6a 00                	push   $0x0
   14d61:	50                   	push   %eax
   14d62:	56                   	push   %esi
   14d63:	6a 02                	push   $0x2
   14d65:	ff 15 f0 e2 01 00    	call   *0x1e2f0
   14d6b:	89 c3                	mov    %eax,%ebx
   14d6d:	56                   	push   %esi
   14d6e:	ff 15 2c e2 01 00    	call   *0x1e22c
   14d74:	89 da                	mov    %ebx,%edx
   14d76:	83 c4 0c             	add    $0xc,%esp
   14d79:	85 db                	test   %ebx,%ebx
   14d7b:	0f 88 0a ff ff ff    	js     14c8b <_NdisIAddDevice@8+0x4b>
   14d81:	50                   	push   %eax
   14d82:	8d 45 94             	lea    0xffffff94(%ebp),%eax
   14d85:	50                   	push   %eax
   14d86:	8b 45 90             	mov    0xffffff90(%ebp),%eax
   14d89:	6a 00                	push   $0x0
   14d8b:	6a 00                	push   $0x0
   14d8d:	6a 17                	push   $0x17
   14d8f:	57                   	push   %edi
   14d90:	68 88 05 00 00       	push   $0x588
   14d95:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
   14d9b:	50                   	push   %eax
   14d9c:	ff 15 4c e2 01 00    	call   *0x1e24c
   14da2:	89 c3                	mov    %eax,%ebx
   14da4:	58                   	pop    %eax
   14da5:	85 db                	test   %ebx,%ebx
   14da7:	0f 88 b9 00 00 00    	js     14e66 <_NdisIAddDevice@8+0x226>
   14dad:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   14db0:	83 ec 0c             	sub    $0xc,%esp
   14db3:	8b 58 28             	mov    0x28(%eax),%ebx
   14db6:	8d 43 30             	lea    0x30(%ebx),%eax
   14db9:	50                   	push   %eax
   14dba:	ff 15 78 e2 01 00    	call   *0x1e278

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   14dc0:	8d 83 28 05 00 00    	lea    0x528(%ebx),%eax
   14dc6:	8b 55 9c             	mov    0xffffff9c(%ebp),%edx
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   14dc9:	89 83 28 05 00 00    	mov    %eax,0x528(%ebx)
   14dcf:	c7 83 30 05 00 00 01 	movl   $0x1,0x530(%ebx)
   14dd6:	00 00 00 
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   14dd9:	89 40 04             	mov    %eax,0x4(%eax)
   14ddc:	8b 45 90             	mov    0xffffff90(%ebp),%eax
   14ddf:	89 83 34 05 00 00    	mov    %eax,0x534(%ebx)
   14de5:	8b 45 98             	mov    0xffffff98(%ebp),%eax
   14de8:	89 43 10             	mov    %eax,0x10(%ebx)
   14deb:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   14dee:	89 83 08 01 00 00    	mov    %eax,0x108(%ebx)
   14df4:	8b 45 0c             	mov    0xc(%ebp),%eax
   14df7:	89 53 14             	mov    %edx,0x14(%ebx)
   14dfa:	89 83 0c 01 00 00    	mov    %eax,0x10c(%ebx)
   14e00:	89 04 24             	mov    %eax,(%esp)
   14e03:	8b 83 08 01 00 00    	mov    0x108(%ebx),%eax
   14e09:	50                   	push   %eax
   14e0a:	ff 15 44 e2 01 00    	call   *0x1e244
   14e10:	c7 83 e8 02 00 00 00 	movl   $0x0,0x2e8(%ebx)
   14e17:	00 00 00 
   14e1a:	c7 83 e4 02 00 00 00 	movl   $0x0,0x2e4(%ebx)
   14e21:	00 00 00 
   14e24:	89 83 10 01 00 00    	mov    %eax,0x110(%ebx)
   14e2a:	89 1c 24             	mov    %ebx,(%esp)
   14e2d:	81 c3 70 04 00 00    	add    $0x470,%ebx
   14e33:	68 00 41 01 00       	push   $0x14100
   14e38:	53                   	push   %ebx
   14e39:	ff 15 70 e2 01 00    	call   *0x1e270
   14e3f:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   14e42:	31 d2                	xor    %edx,%edx
   14e44:	8b 78 1c             	mov    0x1c(%eax),%edi
   14e47:	81 e7 7f ff ff ff    	and    $0xffffff7f,%edi
   14e4d:	89 78 1c             	mov    %edi,0x1c(%eax)
   14e50:	e9 36 fe ff ff       	jmp    14c8b <_NdisIAddDevice@8+0x4b>
   14e55:	83 ec 0c             	sub    $0xc,%esp
   14e58:	56                   	push   %esi
   14e59:	ff 15 2c e2 01 00    	call   *0x1e22c
   14e5f:	89 da                	mov    %ebx,%edx
   14e61:	e9 25 fe ff ff       	jmp    14c8b <_NdisIAddDevice@8+0x4b>
   14e66:	83 ec 0c             	sub    $0xc,%esp
   14e69:	57                   	push   %edi
   14e6a:	ff 15 e0 e2 01 00    	call   *0x1e2e0
   14e70:	89 da                	mov    %ebx,%edx
   14e72:	e9 14 fe ff ff       	jmp    14c8b <_NdisIAddDevice@8+0x4b>
   14e77:	89 f6                	mov    %esi,%esi
   14e79:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014e80 <_NdisMRegisterMiniport@12>:


/*
 * @implemented
 */
NDIS_STATUS
EXPORT
NdisMRegisterMiniport(
    IN  NDIS_HANDLE                     NdisWrapperHandle,
    IN  PNDIS_MINIPORT_CHARACTERISTICS  MiniportCharacteristics,
    IN  UINT                            CharacteristicsLength)
/*
 * FUNCTION: Registers a miniport's MiniportXxx entry points with the NDIS library
 * ARGUMENTS:
 *     NdisWrapperHandle       = Pointer to handle returned by NdisMInitializeWrapper
 *     MiniportCharacteristics = Pointer to a buffer with miniport characteristics
 *     CharacteristicsLength   = Number of bytes in characteristics buffer
 * RETURNS:
 *     Status of operation	 
 */
{
   14e80:	55                   	push   %ebp
  UINT MinSize;
  PMINIPORT_DRIVER Miniport = GET_MINIPORT_DRIVER(NdisWrapperHandle);
  PMINIPORT_DRIVER *MiniportPtr;
  NTSTATUS Status;

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  switch (MiniportCharacteristics->MajorNdisVersion) 
   14e81:	31 c0                	xor    %eax,%eax
   14e83:	89 e5                	mov    %esp,%ebp
   14e85:	57                   	push   %edi
   14e86:	56                   	push   %esi
   14e87:	53                   	push   %ebx
   14e88:	83 ec 0c             	sub    $0xc,%esp
   14e8b:	8b 75 0c             	mov    0xc(%ebp),%esi
   14e8e:	8b 5d 08             	mov    0x8(%ebp),%ebx
   14e91:	8a 0e                	mov    (%esi),%cl
   14e93:	88 c8                	mov    %cl,%al
   14e95:	83 f8 04             	cmp    $0x4,%eax
   14e98:	74 28                	je     14ec2 <_NdisMRegisterMiniport@12+0x42>
   14e9a:	7f 1a                	jg     14eb6 <_NdisMRegisterMiniport@12+0x36>
   14e9c:	83 f8 03             	cmp    $0x3,%eax
   14e9f:	0f 84 e0 00 00 00    	je     14f85 <_NdisMRegisterMiniport@12+0x105>
    {
      case 0x03:
        MinSize = sizeof(NDIS30_MINIPORT_CHARACTERISTICS);
        break;

      case 0x04:
        MinSize = sizeof(NDIS40_MINIPORT_CHARACTERISTICS);
        break;

      case 0x05:
        MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS);
        break;

      default:
        NDIS_DbgPrint(DEBUG_MINIPORT, ("Bad miniport characteristics version.\n"));
        return NDIS_STATUS_BAD_VERSION;
   14ea5:	ba 04 00 01 c0       	mov    $0xc0010004,%edx
    }

  if (CharacteristicsLength < MinSize) 
    {
        NDIS_DbgPrint(DEBUG_MINIPORT, ("Bad miniport characteristics.\n"));
        return NDIS_STATUS_BAD_CHARACTERISTICS;
    }

  /* Check if mandatory MiniportXxx functions are specified */
  if ((!MiniportCharacteristics->HaltHandler) ||
      (!MiniportCharacteristics->InitializeHandler)||
      (!MiniportCharacteristics->QueryInformationHandler) ||
      (!MiniportCharacteristics->ResetHandler) ||
      (!MiniportCharacteristics->SetInformationHandler)) 
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Bad miniport characteristics.\n"));
      return NDIS_STATUS_BAD_CHARACTERISTICS;
    }

  if (MiniportCharacteristics->MajorNdisVersion == 0x03) 
    {
      if (!MiniportCharacteristics->SendHandler) 
        {
          NDIS_DbgPrint(DEBUG_MINIPORT, ("Bad miniport characteristics.\n"));
          return NDIS_STATUS_BAD_CHARACTERISTICS;
        }
    } 
  else if (MiniportCharacteristics->MajorNdisVersion >= 0x04) 
    {
      /* NDIS 4.0+ */
      if ((!MiniportCharacteristics->SendHandler) &&
          (!MiniportCharacteristics->SendPacketsHandler)) 
        {
          NDIS_DbgPrint(DEBUG_MINIPORT, ("Bad miniport characteristics.\n"));
          return NDIS_STATUS_BAD_CHARACTERISTICS;
        }
    }

  /* TODO: verify NDIS5 and NDIS5.1 */

  RtlCopyMemory(&Miniport->Chars, MiniportCharacteristics, MinSize);

  /*
   * NOTE: This is VERY unoptimal! Should we store the MINIPORT_DRIVER
   * struture in the driver extension or what?
   */

  Status = IoAllocateDriverObjectExtension(Miniport->DriverObject, (PVOID)TAG('D','I','M','N'),
                                           sizeof(PMINIPORT_DRIVER), (PVOID*)&MiniportPtr);
  if (!NT_SUCCESS(Status))
    {
      NDIS_DbgPrint(DEBUG_MINIPORT, ("Can't allocate driver object extension.\n"));
      return NDIS_STATUS_RESOURCES;
    }

  *MiniportPtr = Miniport;

  Miniport->DriverObject->MajorFunction[IRP_MJ_PNP] = NdisIDispatchPnp;
  Miniport->DriverObject->DriverExtension->AddDevice = NdisIAddDevice;

  return NDIS_STATUS_SUCCESS;
}
   14eaa:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14ead:	89 d0                	mov    %edx,%eax
   14eaf:	5b                   	pop    %ebx
   14eb0:	5e                   	pop    %esi
   14eb1:	5f                   	pop    %edi
   14eb2:	5d                   	pop    %ebp
   14eb3:	c2 0c 00             	ret    $0xc
   14eb6:	83 f8 05             	cmp    $0x5,%eax
   14eb9:	75 ea                	jne    14ea5 <_NdisMRegisterMiniport@12+0x25>
   14ebb:	b8 60 00 00 00       	mov    $0x60,%eax
   14ec0:	eb 05                	jmp    14ec7 <_NdisMRegisterMiniport@12+0x47>
   14ec2:	b8 48 00 00 00       	mov    $0x48,%eax
   14ec7:	ba 05 00 01 c0       	mov    $0xc0010005,%edx
   14ecc:	39 45 10             	cmp    %eax,0x10(%ebp)
   14ecf:	72 d9                	jb     14eaa <_NdisMRegisterMiniport@12+0x2a>
   14ed1:	8b 7e 14             	mov    0x14(%esi),%edi
   14ed4:	85 ff                	test   %edi,%edi
   14ed6:	0f 84 98 00 00 00    	je     14f74 <_NdisMRegisterMiniport@12+0xf4>
   14edc:	8b 56 1c             	mov    0x1c(%esi),%edx
   14edf:	85 d2                	test   %edx,%edx
   14ee1:	0f 84 8d 00 00 00    	je     14f74 <_NdisMRegisterMiniport@12+0xf4>
   14ee7:	8b 7e 24             	mov    0x24(%esi),%edi
   14eea:	85 ff                	test   %edi,%edi
   14eec:	0f 84 82 00 00 00    	je     14f74 <_NdisMRegisterMiniport@12+0xf4>
   14ef2:	8b 56 2c             	mov    0x2c(%esi),%edx
   14ef5:	85 d2                	test   %edx,%edx
   14ef7:	74 7b                	je     14f74 <_NdisMRegisterMiniport@12+0xf4>
   14ef9:	8b 7e 34             	mov    0x34(%esi),%edi
   14efc:	85 ff                	test   %edi,%edi
   14efe:	74 74                	je     14f74 <_NdisMRegisterMiniport@12+0xf4>
   14f00:	80 f9 03             	cmp    $0x3,%cl
   14f03:	0f 84 86 00 00 00    	je     14f8f <_NdisMRegisterMiniport@12+0x10f>
   14f09:	76 13                	jbe    14f1e <_NdisMRegisterMiniport@12+0x9e>
   14f0b:	8b 56 30             	mov    0x30(%esi),%edx
   14f0e:	85 d2                	test   %edx,%edx
   14f10:	75 0c                	jne    14f1e <_NdisMRegisterMiniport@12+0x9e>
   14f12:	8b 7e 40             	mov    0x40(%esi),%edi
   14f15:	ba 05 00 01 c0       	mov    $0xc0010005,%edx
   14f1a:	85 ff                	test   %edi,%edi
   14f1c:	74 8c                	je     14eaa <_NdisMRegisterMiniport@12+0x2a>
   14f1e:	fc                   	cld    
   14f1f:	89 c1                	mov    %eax,%ecx
   14f21:	8d 7b 10             	lea    0x10(%ebx),%edi
   14f24:	c1 e9 02             	shr    $0x2,%ecx
   14f27:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   14f2a:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   14f2c:	50                   	push   %eax
   14f2d:	6a 04                	push   $0x4
   14f2f:	68 44 49 4d 4e       	push   $0x4e4d4944
   14f34:	8b b3 80 00 00 00    	mov    0x80(%ebx),%esi
   14f3a:	56                   	push   %esi
   14f3b:	ff 15 40 e2 01 00    	call   *0x1e240
   14f41:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14f46:	85 c0                	test   %eax,%eax
   14f48:	0f 88 5c ff ff ff    	js     14eaa <_NdisMRegisterMiniport@12+0x2a>
   14f4e:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   14f51:	31 d2                	xor    %edx,%edx
   14f53:	89 18                	mov    %ebx,(%eax)
   14f55:	8b 83 80 00 00 00    	mov    0x80(%ebx),%eax
   14f5b:	c7 80 a4 00 00 00 b0 	movl   $0x14bb0,0xa4(%eax)
   14f62:	4b 01 00 
   14f65:	8b 40 18             	mov    0x18(%eax),%eax
   14f68:	c7 40 04 40 4c 01 00 	movl   $0x14c40,0x4(%eax)
   14f6f:	e9 36 ff ff ff       	jmp    14eaa <_NdisMRegisterMiniport@12+0x2a>
   14f74:	ba 05 00 01 c0       	mov    $0xc0010005,%edx
   14f79:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14f7c:	89 d0                	mov    %edx,%eax
   14f7e:	5b                   	pop    %ebx
   14f7f:	5e                   	pop    %esi
   14f80:	5f                   	pop    %edi
   14f81:	5d                   	pop    %ebp
   14f82:	c2 0c 00             	ret    $0xc
   14f85:	b8 3c 00 00 00       	mov    $0x3c,%eax
   14f8a:	e9 38 ff ff ff       	jmp    14ec7 <_NdisMRegisterMiniport@12+0x47>
   14f8f:	8b 4e 30             	mov    0x30(%esi),%ecx
   14f92:	ba 05 00 01 c0       	mov    $0xc0010005,%edx
   14f97:	85 c9                	test   %ecx,%ecx
   14f99:	eb 81                	jmp    14f1c <_NdisMRegisterMiniport@12+0x9c>
   14f9b:	90                   	nop    
   14f9c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014fa0 <_NdisMResetComplete@12>:


/*
 * @implemented
 */
VOID
EXPORT
NdisMResetComplete(
    IN NDIS_HANDLE MiniportAdapterHandle,
    IN NDIS_STATUS Status,
    IN BOOLEAN     AddressingReset)
{
   14fa0:	55                   	push   %ebp
   14fa1:	89 e5                	mov    %esp,%ebp
  MiniResetComplete(MiniportAdapterHandle, Status, AddressingReset);
   14fa3:	5d                   	pop    %ebp
   14fa4:	c2 0c 00             	ret    $0xc
   14fa7:	89 f6                	mov    %esi,%esi
   14fa9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014fb0 <_NdisMSendResourcesAvailable@4>:
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMSendComplete(
    IN  NDIS_HANDLE     MiniportAdapterHandle,
    IN  PNDIS_PACKET    Packet,
    IN  NDIS_STATUS     Status)
/*
 * FUNCTION: Forwards a message to the initiating protocol saying
 *           that a packet was handled
 * ARGUMENTS:
 *     NdisAdapterHandle = Handle input to MiniportInitialize
 *     Packet            = Pointer to NDIS packet that was sent
 *     Status            = Status of send operation
 */
{
  MiniSendComplete(MiniportAdapterHandle, Packet, Status);
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMSendResourcesAvailable(
    IN  NDIS_HANDLE MiniportAdapterHandle)
{
   14fb0:	55                   	push   %ebp
   14fb1:	89 e5                	mov    %esp,%ebp
  MiniSendResourcesAvailable(MiniportAdapterHandle);
   14fb3:	5d                   	pop    %ebp
   14fb4:	c2 04 00             	ret    $0x4
   14fb7:	89 f6                	mov    %esi,%esi
   14fb9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014fc0 <_NdisMTransferDataComplete@16>:
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMTransferDataComplete(
    IN  NDIS_HANDLE     MiniportAdapterHandle,
    IN  PNDIS_PACKET    Packet,
    IN  NDIS_STATUS     Status,
    IN  UINT            BytesTransferred)
{
   14fc0:	55                   	push   %ebp
   14fc1:	89 e5                	mov    %esp,%ebp
  MiniTransferDataComplete(MiniportAdapterHandle, Packet, Status, BytesTransferred);
   14fc3:	c9                   	leave  
   14fc4:	e9 67 ed ff ff       	jmp    13d30 <_MiniTransferDataComplete@16>
   14fc9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014fd0 <_NdisMSetInformationComplete@8>:
}

#undef NdisMSetInformationComplete


/*
 * @implemented
 */
VOID
EXPORT
NdisMSetInformationComplete(
    IN  NDIS_HANDLE MiniportAdapterHandle,
    IN  NDIS_STATUS Status)
{
   14fd0:	55                   	push   %ebp
   14fd1:	89 e5                	mov    %esp,%ebp
   14fd3:	8b 45 08             	mov    0x8(%ebp),%eax
  (*((PNDIS_MINIPORT_BLOCK)(MiniportAdapterHandle))->SetCompleteHandler)(MiniportAdapterHandle, Status);
   14fd6:	c9                   	leave  
   14fd7:	ff a0 8c 01 00 00    	jmp    *0x18c(%eax)
   14fdd:	8d 76 00             	lea    0x0(%esi),%esi

00014fe0 <_NdisMSetAttributesEx@20>:
}

#undef NdisMSetAttributes


/*
 * @implemented
 */
VOID
EXPORT
NdisMSetAttributes(
    IN  NDIS_HANDLE         MiniportAdapterHandle,
    IN  NDIS_HANDLE         MiniportAdapterContext,
    IN  BOOLEAN             BusMaster,
    IN  NDIS_INTERFACE_TYPE AdapterType)
/*
 * FUNCTION: Informs the NDIS library of significant features of the caller's NIC
 * ARGUMENTS:
 *     MiniportAdapterHandle  = Handle input to MiniportInitialize
 *     MiniportAdapterContext = Pointer to context information
 *     BusMaster              = Specifies TRUE if the caller's NIC is a busmaster DMA device
 *     AdapterType            = Specifies the I/O bus interface of the caller's NIC
 */
{
  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));
  NdisMSetAttributesEx(MiniportAdapterHandle, MiniportAdapterContext, 0,
                       BusMaster ? NDIS_ATTRIBUTE_BUS_MASTER : 0,
                       AdapterType);
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMSetAttributesEx(
    IN  NDIS_HANDLE         MiniportAdapterHandle,
    IN  NDIS_HANDLE         MiniportAdapterContext,
    IN  UINT                CheckForHangTimeInSeconds   OPTIONAL,
    IN  ULONG               AttributeFlags,
    IN  NDIS_INTERFACE_TYPE	AdapterType)
/*
 * FUNCTION: Informs the NDIS library of significant features of the caller's NIC
 * ARGUMENTS:
 *     MiniportAdapterHandle     = Handle input to MiniportInitialize
 *     MiniportAdapterContext    = Pointer to context information
 *     CheckForHangTimeInSeconds = Specifies interval in seconds at which
 *                                 MiniportCheckForHang should be called
 *     AttributeFlags            = Bitmask that indicates specific attributes
 *     AdapterType               = Specifies the I/O bus interface of the caller's NIC
 */
{
   14fe0:	55                   	push   %ebp
   14fe1:	89 e5                	mov    %esp,%ebp
   14fe3:	8b 55 08             	mov    0x8(%ebp),%edx
  /* TODO: Take CheckForHandTimeInSeconds into account! */

  PLOGICAL_ADAPTER Adapter = GET_LOGICAL_ADAPTER(MiniportAdapterHandle);

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  Adapter->NdisMiniportBlock.MiniportAdapterContext = MiniportAdapterContext;
   14fe6:	8b 45 0c             	mov    0xc(%ebp),%eax
   14fe9:	89 42 0c             	mov    %eax,0xc(%edx)
  Adapter->NdisMiniportBlock.Flags = AttributeFlags;
   14fec:	8b 45 14             	mov    0x14(%ebp),%eax
   14fef:	89 42 3c             	mov    %eax,0x3c(%edx)
  Adapter->NdisMiniportBlock.AdapterType = AdapterType;
   14ff2:	8b 45 18             	mov    0x18(%ebp),%eax
   14ff5:	89 82 04 01 00 00    	mov    %eax,0x104(%edx)
  Adapter->AttributesSet = TRUE;
   14ffb:	c6 82 3c 05 00 00 01 	movb   $0x1,0x53c(%edx)
  if (AttributeFlags & NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER)
   15002:	5d                   	pop    %ebp
   15003:	c2 14 00             	ret    $0x14
   15006:	8d 76 00             	lea    0x0(%esi),%esi
   15009:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015010 <_NdisMSetAttributes@16>:
   15010:	55                   	push   %ebp
   15011:	89 e5                	mov    %esp,%ebp
   15013:	80 7d 10 01          	cmpb   $0x1,0x10(%ebp)
   15017:	8b 45 14             	mov    0x14(%ebp),%eax
   1501a:	50                   	push   %eax
   1501b:	19 c0                	sbb    %eax,%eax
   1501d:	83 f0 ff             	xor    $0xffffffff,%eax
   15020:	83 e0 08             	and    $0x8,%eax
   15023:	50                   	push   %eax
   15024:	8b 45 0c             	mov    0xc(%ebp),%eax
   15027:	6a 00                	push   $0x0
   15029:	50                   	push   %eax
   1502a:	8b 45 08             	mov    0x8(%ebp),%eax
   1502d:	50                   	push   %eax
   1502e:	e8 ad ff ff ff       	call   14fe0 <_NdisMSetAttributesEx@20>
   15033:	c9                   	leave  
   15034:	c2 10 00             	ret    $0x10
   15037:	89 f6                	mov    %esi,%esi
   15039:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015040 <_NdisMSleep@4>:
    NDIS_DbgPrint(MAX_TRACE, ("Intermediate drivers not supported yet.\n"));
}


/*
 * @implemented
 */
VOID
EXPORT
NdisMSleep(
    IN  ULONG   MicrosecondsToSleep)
/*
 * FUNCTION: delay the thread's execution for MicrosecondsToSleep
 * ARGUMENTS:
 *     MicrosecondsToSleep: duh...
 * NOTES:
 *     - Because this is a blocking call, current IRQL must be < DISPATCH_LEVEL
 */
{
   15040:	55                   	push   %ebp
   15041:	89 e5                	mov    %esp,%ebp
   15043:	57                   	push   %edi
   15044:	56                   	push   %esi
   15045:	53                   	push   %ebx
   15046:	83 ec 48             	sub    $0x48,%esp
  KTIMER Timer;
  LARGE_INTEGER DueTime;

  PAGED_CODE();

  DueTime.QuadPart = (-1) * 10 * MicrosecondsToSleep;

  KeInitializeTimer(&Timer);
   15049:	8d 5d b8             	lea    0xffffffb8(%ebp),%ebx
   1504c:	8b 45 08             	mov    0x8(%ebp),%eax
   1504f:	31 ff                	xor    %edi,%edi
   15051:	53                   	push   %ebx
   15052:	8d 04 80             	lea    (%eax,%eax,4),%eax
   15055:	01 c0                	add    %eax,%eax
   15057:	f7 d8                	neg    %eax
   15059:	89 c6                	mov    %eax,%esi
   1505b:	ff 15 7c e2 01 00    	call   *0x1e27c
  KeSetTimer(&Timer, DueTime, 0);
   15061:	83 c4 0c             	add    $0xc,%esp
   15064:	6a 00                	push   $0x0
   15066:	57                   	push   %edi
   15067:	56                   	push   %esi
   15068:	53                   	push   %ebx
   15069:	ff 15 94 e2 01 00    	call   *0x1e294
  KeWaitForSingleObject(&Timer, Executive, KernelMode, FALSE, 0);
   1506f:	83 ec 0c             	sub    $0xc,%esp
   15072:	6a 00                	push   $0x0
   15074:	6a 00                	push   $0x0
   15076:	6a 00                	push   $0x0
   15078:	6a 00                	push   $0x0
   1507a:	53                   	push   %ebx
   1507b:	ff 15 a0 e2 01 00    	call   *0x1e2a0
   15081:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15084:	5b                   	pop    %ebx
   15085:	5e                   	pop    %esi
   15086:	5f                   	pop    %edi
   15087:	5d                   	pop    %ebp
   15088:	c2 04 00             	ret    $0x4
   1508b:	90                   	nop    
   1508c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015090 <_NdisMSynchronizeWithInterrupt@12>:
}


/*
 * @implemented
 */
BOOLEAN
EXPORT
NdisMSynchronizeWithInterrupt(
    IN  PNDIS_MINIPORT_INTERRUPT    Interrupt,
    IN  PVOID                       SynchronizeFunction,
    IN  PVOID                       SynchronizeContext)
{
   15090:	55                   	push   %ebp
   15091:	89 e5                	mov    %esp,%ebp
   15093:	83 ec 0c             	sub    $0xc,%esp
  return(KeSynchronizeExecution(Interrupt->InterruptObject,
   15096:	8b 45 10             	mov    0x10(%ebp),%eax
   15099:	50                   	push   %eax
   1509a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1509d:	50                   	push   %eax
   1509e:	8b 45 08             	mov    0x8(%ebp),%eax
   150a1:	8b 00                	mov    (%eax),%eax
   150a3:	50                   	push   %eax
   150a4:	ff 15 9c e2 01 00    	call   *0x1e29c
   150aa:	25 ff 00 00 00       	and    $0xff,%eax
				(PKSYNCHRONIZE_ROUTINE)SynchronizeFunction,
				SynchronizeContext));
}
   150af:	c9                   	leave  
   150b0:	c2 0c 00             	ret    $0xc
   150b3:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   150b9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000150c0 <_NdisMWriteLogData@12>:


/*
 * @unimplemented
 */
NDIS_STATUS
EXPORT
NdisMWriteLogData(
    IN  NDIS_HANDLE LogHandle,
    IN  PVOID       LogBuffer,
    IN  UINT        LogBufferSize)
{
   150c0:	55                   	push   %ebp
    UNIMPLEMENTED

  return NDIS_STATUS_FAILURE;
}
   150c1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   150c6:	89 e5                	mov    %esp,%ebp
   150c8:	5d                   	pop    %ebp
   150c9:	c2 0c 00             	ret    $0xc
   150cc:	8d 74 26 00          	lea    0x0(%esi),%esi

000150d0 <_NdisTerminateWrapper@8>:


/*
 * @implemented
 */
VOID
EXPORT
NdisTerminateWrapper(
    IN  NDIS_HANDLE NdisWrapperHandle,
    IN  PVOID       SystemSpecific)
/*
 * FUNCTION: Releases resources allocated by a call to NdisInitializeWrapper
 * ARGUMENTS:
 *     NdisWrapperHandle = Handle returned by NdisInitializeWrapper (MINIPORT_DRIVER)
 *     SystemSpecific    = Always NULL
 */
{
   150d0:	55                   	push   %ebp
   150d1:	89 e5                	mov    %esp,%ebp
   150d3:	53                   	push   %ebx
   150d4:	83 ec 10             	sub    $0x10,%esp
   150d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
  PMINIPORT_DRIVER Miniport = GET_MINIPORT_DRIVER(NdisWrapperHandle);

  NDIS_DbgPrint(MAX_TRACE, ("Called.\n"));

  ExFreePool(Miniport->RegistryPath->Buffer);
   150da:	8b 83 8c 00 00 00    	mov    0x8c(%ebx),%eax
   150e0:	8b 48 04             	mov    0x4(%eax),%ecx
   150e3:	51                   	push   %ecx
   150e4:	ff 15 2c e2 01 00    	call   *0x1e22c
  ExFreePool(Miniport->RegistryPath);
   150ea:	8b 93 8c 00 00 00    	mov    0x8c(%ebx),%edx
   150f0:	52                   	push   %edx
   150f1:	ff 15 2c e2 01 00    	call   *0x1e22c
  ExFreePool(Miniport);
   150f7:	53                   	push   %ebx
   150f8:	ff 15 2c e2 01 00    	call   *0x1e22c
   150fe:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   15101:	c9                   	leave  
   15102:	c2 08 00             	ret    $0x8
   15105:	90                   	nop    
   15106:	90                   	nop    
   15107:	90                   	nop    
   15108:	90                   	nop    
   15109:	90                   	nop    
   1510a:	90                   	nop    
   1510b:	90                   	nop    
   1510c:	90                   	nop    
   1510d:	90                   	nop    
   1510e:	90                   	nop    
   1510f:	90                   	nop    

00015110 <_NdisCompleteBindAdapter@12>:
   15110:	55                   	push   %ebp
   15111:	89 e5                	mov    %esp,%ebp
   15113:	8b 45 08             	mov    0x8(%ebp),%eax
   15116:	c7 45 10 50 90 01 00 	movl   $0x19050,0x10(%ebp)
   1511d:	89 45 0c             	mov    %eax,0xc(%ebp)
   15120:	c7 45 08 40 90 01 00 	movl   $0x19040,0x8(%ebp)
   15127:	c9                   	leave  
   15128:	ff 25 38 e2 01 00    	jmp    *0x1e238
   1512e:	89 f6                	mov    %esi,%esi

00015130 <_ProIndicatePacket>:
   15130:	55                   	push   %ebp
   15131:	89 e5                	mov    %esp,%ebp
   15133:	57                   	push   %edi
   15134:	56                   	push   %esi
   15135:	53                   	push   %ebx
   15136:	83 ec 1c             	sub    $0x1c,%esp
   15139:	8b 45 0c             	mov    0xc(%ebp),%eax
   1513c:	80 78 1c 00          	cmpb   $0x0,0x1c(%eax)
   15140:	75 52                	jne    15194 <_ProIndicatePacket+0x64>
   15142:	31 f6                	xor    %esi,%esi
   15144:	31 ff                	xor    %edi,%edi
   15146:	8b 58 08             	mov    0x8(%eax),%ebx
   15149:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
   15150:	eb 2a                	jmp    1517c <_ProIndicatePacket+0x4c>
   15152:	83 ec 0c             	sub    $0xc,%esp
   15155:	53                   	push   %ebx
   15156:	e8 a5 c2 ff ff       	call   11400 <_NDIS_BUFFER_TO_SPAN_PAGES@4>
   1515b:	01 c6                	add    %eax,%esi
   1515d:	58                   	pop    %eax
   1515e:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   15161:	5a                   	pop    %edx
   15162:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   15165:	52                   	push   %edx
   15166:	50                   	push   %eax
   15167:	53                   	push   %ebx
   15168:	e8 43 cc ff ff       	call   11db0 <_NdisQueryBufferOffset@12>
   1516d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   15170:	8b 1b                	mov    (%ebx),%ebx
   15172:	01 c7                	add    %eax,%edi
   15174:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   15177:	40                   	inc    %eax
   15178:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   1517b:	58                   	pop    %eax
   1517c:	85 db                	test   %ebx,%ebx
   1517e:	75 d2                	jne    15152 <_ProIndicatePacket+0x22>
   15180:	8b 55 0c             	mov    0xc(%ebp),%edx
   15183:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   15186:	89 32                	mov    %esi,(%edx)
   15188:	89 7a 04             	mov    %edi,0x4(%edx)
   1518b:	89 42 14             	mov    %eax,0x14(%edx)
   1518e:	c6 42 1c 01          	movb   $0x1,0x1c(%edx)
   15192:	eb 06                	jmp    1519a <_ProIndicatePacket+0x6a>
   15194:	8b 55 0c             	mov    0xc(%ebp),%edx
   15197:	8b 7a 04             	mov    0x4(%edx),%edi
   1519a:	56                   	push   %esi
   1519b:	56                   	push   %esi
   1519c:	8b 75 08             	mov    0x8(%ebp),%esi
   1519f:	8d 45 eb             	lea    0xffffffeb(%ebp),%eax
   151a2:	83 c6 30             	add    $0x30,%esi
   151a5:	50                   	push   %eax
   151a6:	56                   	push   %esi
   151a7:	ff 15 dc e1 01 00    	call   *0x1e1dc
   151ad:	8b 55 08             	mov    0x8(%ebp),%edx
   151b0:	8b 45 0c             	mov    0xc(%ebp),%eax
   151b3:	89 82 68 05 00 00    	mov    %eax,0x568(%edx)
   151b9:	59                   	pop    %ecx
   151ba:	5b                   	pop    %ebx
   151bb:	8b 9a 48 01 00 00    	mov    0x148(%edx),%ebx
   151c1:	53                   	push   %ebx
   151c2:	6a 00                	push   $0x0
   151c4:	50                   	push   %eax
   151c5:	8b 8a 58 05 00 00    	mov    0x558(%edx),%ecx
   151cb:	51                   	push   %ecx
   151cc:	e8 8f ca ff ff       	call   11c60 <_CopyPacketToBuffer>
   151d1:	89 c3                	mov    %eax,%ebx
   151d3:	58                   	pop    %eax
   151d4:	31 c0                	xor    %eax,%eax
   151d6:	5a                   	pop    %edx
   151d7:	8a 45 eb             	mov    0xffffffeb(%ebp),%al
   151da:	50                   	push   %eax
   151db:	56                   	push   %esi
   151dc:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   151e2:	8b 55 08             	mov    0x8(%ebp),%edx
   151e5:	8b 8a 48 05 00 00    	mov    0x548(%edx),%ecx
   151eb:	83 c4 08             	add    $0x8,%esp
   151ee:	39 d9                	cmp    %ebx,%ecx
   151f0:	73 50                	jae    15242 <_ProIndicatePacket+0x112>
   151f2:	29 cf                	sub    %ecx,%edi
   151f4:	29 cb                	sub    %ecx,%ebx
   151f6:	50                   	push   %eax
   151f7:	57                   	push   %edi
   151f8:	53                   	push   %ebx
   151f9:	8b 92 58 05 00 00    	mov    0x558(%edx),%edx
   151ff:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
   15202:	50                   	push   %eax
   15203:	51                   	push   %ecx
   15204:	8b 4d 08             	mov    0x8(%ebp),%ecx
   15207:	52                   	push   %edx
   15208:	6a 00                	push   $0x0
   1520a:	51                   	push   %ecx
   1520b:	e8 c0 e9 ff ff       	call   13bd0 <_MiniIndicateData>
   15210:	83 c4 18             	add    $0x18,%esp
   15213:	8d 45 eb             	lea    0xffffffeb(%ebp),%eax
   15216:	50                   	push   %eax
   15217:	56                   	push   %esi
   15218:	ff 15 dc e1 01 00    	call   *0x1e1dc
   1521e:	8b 55 08             	mov    0x8(%ebp),%edx
   15221:	31 c0                	xor    %eax,%eax
   15223:	c7 82 68 05 00 00 00 	movl   $0x0,0x568(%edx)
   1522a:	00 00 00 
   1522d:	8a 45 eb             	mov    0xffffffeb(%ebp),%al
   15230:	50                   	push   %eax
   15231:	56                   	push   %esi
   15232:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   15238:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1523b:	31 c0                	xor    %eax,%eax
   1523d:	5b                   	pop    %ebx
   1523e:	5e                   	pop    %esi
   1523f:	5f                   	pop    %edi
   15240:	5d                   	pop    %ebp
   15241:	c3                   	ret    
   15242:	52                   	push   %edx
   15243:	8b 55 08             	mov    0x8(%ebp),%edx
   15246:	6a 00                	push   $0x0
   15248:	6a 00                	push   $0x0
   1524a:	6a 00                	push   $0x0
   1524c:	51                   	push   %ecx
   1524d:	8b 82 58 05 00 00    	mov    0x558(%edx),%eax
   15253:	50                   	push   %eax
   15254:	6a 00                	push   $0x0
   15256:	52                   	push   %edx
   15257:	eb b2                	jmp    1520b <_ProIndicatePacket+0xdb>
   15259:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015260 <_ProRequest@8>:
   15260:	55                   	push   %ebp
   15261:	89 e5                	mov    %esp,%ebp
   15263:	57                   	push   %edi
   15264:	56                   	push   %esi
   15265:	53                   	push   %ebx
   15266:	83 ec 14             	sub    $0x14,%esp
   15269:	8b 45 08             	mov    0x8(%ebp),%eax
   1526c:	8b 7d 0c             	mov    0xc(%ebp),%edi
   1526f:	8b 98 d0 00 00 00    	mov    0xd0(%eax),%ebx
   15275:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   15278:	50                   	push   %eax
   15279:	8d 73 30             	lea    0x30(%ebx),%esi
   1527c:	56                   	push   %esi
   1527d:	ff 15 dc e1 01 00    	call   *0x1e1dc
   15283:	80 bb 90 04 00 00 00 	cmpb   $0x0,0x490(%ebx)
   1528a:	58                   	pop    %eax
   1528b:	5a                   	pop    %edx
   1528c:	74 22                	je     152b0 <_ProRequest@8+0x50>
   1528e:	83 ec 0c             	sub    $0xc,%esp
   15291:	89 d9                	mov    %ebx,%ecx
   15293:	31 d2                	xor    %edx,%edx
   15295:	57                   	push   %edi
   15296:	e8 e5 ec ff ff       	call   13f80 <@MiniQueueWorkItem@12>
   1529b:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1529e:	b8 03 01 00 00       	mov    $0x103,%eax
   152a3:	5b                   	pop    %ebx
   152a4:	5e                   	pop    %esi
   152a5:	5f                   	pop    %edi
   152a6:	5d                   	pop    %ebp
   152a7:	c2 08 00             	ret    $0x8
   152aa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   152b0:	c6 83 90 04 00 00 01 	movb   $0x1,0x490(%ebx)
   152b7:	31 c0                	xor    %eax,%eax
   152b9:	51                   	push   %ecx
   152ba:	51                   	push   %ecx
   152bb:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   152be:	50                   	push   %eax
   152bf:	56                   	push   %esi
   152c0:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   152c6:	b9 02 00 00 00       	mov    $0x2,%ecx
   152cb:	58                   	pop    %eax
   152cc:	5a                   	pop    %edx
   152cd:	ff 15 c8 e1 01 00    	call   *0x1e1c8
   152d3:	88 45 f3             	mov    %al,0xfffffff3(%ebp)
   152d6:	50                   	push   %eax
   152d7:	50                   	push   %eax
   152d8:	57                   	push   %edi
   152d9:	53                   	push   %ebx
   152da:	e8 71 ed ff ff       	call   14050 <_MiniDoRequest>
   152df:	89 f1                	mov    %esi,%ecx
   152e1:	89 c7                	mov    %eax,%edi
   152e3:	ff 15 1c e2 01 00    	call   *0x1e21c
   152e9:	8b 83 10 05 00 00    	mov    0x510(%ebx),%eax
   152ef:	83 c4 10             	add    $0x10,%esp
   152f2:	c6 83 90 04 00 00 00 	movb   $0x0,0x490(%ebx)
   152f9:	85 c0                	test   %eax,%eax
   152fb:	75 23                	jne    15320 <_ProRequest@8+0xc0>
   152fd:	89 f1                	mov    %esi,%ecx
   152ff:	ff 15 20 e2 01 00    	call   *0x1e220
   15305:	31 c9                	xor    %ecx,%ecx
   15307:	8a 4d f3             	mov    0xfffffff3(%ebp),%cl
   1530a:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   15310:	89 f8                	mov    %edi,%eax
   15312:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15315:	5b                   	pop    %ebx
   15316:	5e                   	pop    %esi
   15317:	5f                   	pop    %edi
   15318:	5d                   	pop    %ebp
   15319:	c2 08 00             	ret    $0x8
   1531c:	8d 74 26 00          	lea    0x0(%esi),%esi
   15320:	50                   	push   %eax
   15321:	8d 83 70 04 00 00    	lea    0x470(%ebx),%eax
   15327:	6a 00                	push   $0x0
   15329:	6a 00                	push   $0x0
   1532b:	50                   	push   %eax
   1532c:	ff 15 80 e2 01 00    	call   *0x1e280
   15332:	59                   	pop    %ecx
   15333:	89 f1                	mov    %esi,%ecx
   15335:	ff 15 20 e2 01 00    	call   *0x1e220
   1533b:	31 c9                	xor    %ecx,%ecx
   1533d:	8a 4d f3             	mov    0xfffffff3(%ebp),%cl
   15340:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   15346:	89 f8                	mov    %edi,%eax
   15348:	eb c8                	jmp    15312 <_ProRequest@8+0xb2>
   1534a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015350 <_ProReset@4>:
   15350:	55                   	push   %ebp
   15351:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   15356:	89 e5                	mov    %esp,%ebp
   15358:	5d                   	pop    %ebp
   15359:	c2 04 00             	ret    $0x4
   1535c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015360 <_ProSend@8>:
   15360:	55                   	push   %ebp
   15361:	89 e5                	mov    %esp,%ebp
   15363:	57                   	push   %edi
   15364:	56                   	push   %esi
   15365:	53                   	push   %ebx
   15366:	83 ec 14             	sub    $0x14,%esp
   15369:	31 db                	xor    %ebx,%ebx
   1536b:	8b 55 08             	mov    0x8(%ebp),%edx
   1536e:	8b 45 0c             	mov    0xc(%ebp),%eax
   15371:	8b b2 d0 00 00 00    	mov    0xd0(%edx),%esi
   15377:	89 50 30             	mov    %edx,0x30(%eax)
   1537a:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   1537d:	8d 7e 30             	lea    0x30(%esi),%edi
   15380:	50                   	push   %eax
   15381:	57                   	push   %edi
   15382:	ff 15 dc e1 01 00    	call   *0x1e1dc
   15388:	80 be 90 04 00 00 00 	cmpb   $0x0,0x490(%esi)
   1538f:	58                   	pop    %eax
   15390:	5a                   	pop    %edx
   15391:	0f 84 8c 00 00 00    	je     15423 <_ProSend@8+0xc3>
   15397:	50                   	push   %eax
   15398:	50                   	push   %eax
   15399:	31 c0                	xor    %eax,%eax
   1539b:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   1539e:	b3 01                	mov    $0x1,%bl
   153a0:	50                   	push   %eax
   153a1:	57                   	push   %edi
   153a2:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   153a8:	f6 86 38 01 00 00 08 	testb  $0x8,0x138(%esi)
   153af:	59                   	pop    %ecx
   153b0:	58                   	pop    %eax
   153b1:	0f 85 91 00 00 00    	jne    15448 <_ProSend@8+0xe8>
   153b7:	84 db                	test   %bl,%bl
   153b9:	0f 85 e0 01 00 00    	jne    1559f <_ProSend@8+0x23f>
   153bf:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   153c5:	8b 50 50             	mov    0x50(%eax),%edx
   153c8:	85 d2                	test   %edx,%edx
   153ca:	0f 85 f0 00 00 00    	jne    154c0 <_ProSend@8+0x160>
   153d0:	f6 46 3c 20          	testb  $0x20,0x3c(%esi)
   153d4:	0f 84 36 01 00 00    	je     15510 <_ProSend@8+0x1b0>
   153da:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   153dd:	53                   	push   %ebx
   153de:	6a 00                	push   $0x0
   153e0:	51                   	push   %ecx
   153e1:	8b 56 0c             	mov    0xc(%esi),%edx
   153e4:	52                   	push   %edx
   153e5:	ff 50 40             	call   *0x40(%eax)
   153e8:	89 c3                	mov    %eax,%ebx
   153ea:	58                   	pop    %eax
   153eb:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   153ee:	51                   	push   %ecx
   153ef:	51                   	push   %ecx
   153f0:	50                   	push   %eax
   153f1:	57                   	push   %edi
   153f2:	ff 15 dc e1 01 00    	call   *0x1e1dc
   153f8:	58                   	pop    %eax
   153f9:	8b 86 10 05 00 00    	mov    0x510(%esi),%eax
   153ff:	5a                   	pop    %edx
   15400:	85 c0                	test   %eax,%eax
   15402:	0f 85 ef 00 00 00    	jne    154f7 <_ProSend@8+0x197>
   15408:	31 c0                	xor    %eax,%eax
   1540a:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   1540d:	51                   	push   %ecx
   1540e:	51                   	push   %ecx
   1540f:	50                   	push   %eax
   15410:	57                   	push   %edi
   15411:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   15417:	89 d8                	mov    %ebx,%eax
   15419:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1541c:	5b                   	pop    %ebx
   1541d:	5e                   	pop    %esi
   1541e:	5f                   	pop    %edi
   1541f:	5d                   	pop    %ebp
   15420:	c2 08 00             	ret    $0x8
   15423:	c6 86 90 04 00 00 01 	movb   $0x1,0x490(%esi)
   1542a:	50                   	push   %eax
   1542b:	50                   	push   %eax
   1542c:	31 c0                	xor    %eax,%eax
   1542e:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   15431:	50                   	push   %eax
   15432:	57                   	push   %edi
   15433:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   15439:	f6 86 38 01 00 00 08 	testb  $0x8,0x138(%esi)
   15440:	59                   	pop    %ecx
   15441:	58                   	pop    %eax
   15442:	0f 84 6f ff ff ff    	je     153b7 <_ProSend@8+0x57>
   15448:	8b 45 0c             	mov    0xc(%ebp),%eax
   1544b:	52                   	push   %edx
   1544c:	52                   	push   %edx
   1544d:	50                   	push   %eax
   1544e:	56                   	push   %esi
   1544f:	e8 0c e9 ff ff       	call   13d60 <_MiniAdapterHasAddress>
   15454:	83 c4 10             	add    $0x10,%esp
   15457:	84 c0                	test   %al,%al
   15459:	0f 84 58 ff ff ff    	je     153b7 <_ProSend@8+0x57>
   1545f:	84 db                	test   %bl,%bl
   15461:	0f 85 55 01 00 00    	jne    155bc <_ProSend@8+0x25c>
   15467:	b9 02 00 00 00       	mov    $0x2,%ecx
   1546c:	ff 15 c8 e1 01 00    	call   *0x1e1c8
   15472:	88 45 f2             	mov    %al,0xfffffff2(%ebp)
   15475:	50                   	push   %eax
   15476:	50                   	push   %eax
   15477:	8b 45 0c             	mov    0xc(%ebp),%eax
   1547a:	50                   	push   %eax
   1547b:	56                   	push   %esi
   1547c:	e8 af fc ff ff       	call   15130 <_ProIndicatePacket>
   15481:	89 f9                	mov    %edi,%ecx
   15483:	89 c3                	mov    %eax,%ebx
   15485:	ff 15 1c e2 01 00    	call   *0x1e21c
   1548b:	8b 86 10 05 00 00    	mov    0x510(%esi),%eax
   15491:	83 c4 10             	add    $0x10,%esp
   15494:	c6 86 90 04 00 00 00 	movb   $0x0,0x490(%esi)
   1549b:	85 c0                	test   %eax,%eax
   1549d:	0f 85 e4 00 00 00    	jne    15587 <_ProSend@8+0x227>
   154a3:	89 f9                	mov    %edi,%ecx
   154a5:	ff 15 20 e2 01 00    	call   *0x1e220
   154ab:	31 c9                	xor    %ecx,%ecx
   154ad:	8a 4d f2             	mov    0xfffffff2(%ebp),%cl
   154b0:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   154b6:	e9 5c ff ff ff       	jmp    15417 <_ProSend@8+0xb7>
   154bb:	90                   	nop    
   154bc:	8d 74 26 00          	lea    0x0(%esi),%esi
   154c0:	f6 46 3c 20          	testb  $0x20,0x3c(%esi)
   154c4:	0f 84 8a 00 00 00    	je     15554 <_ProSend@8+0x1f4>
   154ca:	50                   	push   %eax
   154cb:	8d 45 0c             	lea    0xc(%ebp),%eax
   154ce:	6a 01                	push   $0x1
   154d0:	50                   	push   %eax
   154d1:	31 db                	xor    %ebx,%ebx
   154d3:	8b 46 0c             	mov    0xc(%esi),%eax
   154d6:	50                   	push   %eax
   154d7:	ff d2                	call   *%edx
   154d9:	58                   	pop    %eax
   154da:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   154dd:	51                   	push   %ecx
   154de:	51                   	push   %ecx
   154df:	50                   	push   %eax
   154e0:	57                   	push   %edi
   154e1:	ff 15 dc e1 01 00    	call   *0x1e1dc
   154e7:	58                   	pop    %eax
   154e8:	8b 86 10 05 00 00    	mov    0x510(%esi),%eax
   154ee:	5a                   	pop    %edx
   154ef:	85 c0                	test   %eax,%eax
   154f1:	0f 84 11 ff ff ff    	je     15408 <_ProSend@8+0xa8>
   154f7:	50                   	push   %eax
   154f8:	8d 86 70 04 00 00    	lea    0x470(%esi),%eax
   154fe:	6a 00                	push   $0x0
   15500:	6a 00                	push   $0x0
   15502:	50                   	push   %eax
   15503:	ff 15 80 e2 01 00    	call   *0x1e280
   15509:	5e                   	pop    %esi
   1550a:	e9 f9 fe ff ff       	jmp    15408 <_ProSend@8+0xa8>
   1550f:	90                   	nop    
   15510:	b9 02 00 00 00       	mov    $0x2,%ecx
   15515:	ff 15 c8 e1 01 00    	call   *0x1e1c8
   1551b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1551e:	53                   	push   %ebx
   1551f:	88 45 f1             	mov    %al,0xfffffff1(%ebp)
   15522:	8b 86 34 05 00 00    	mov    0x534(%esi),%eax
   15528:	6a 00                	push   $0x0
   1552a:	51                   	push   %ecx
   1552b:	8b 56 0c             	mov    0xc(%esi),%edx
   1552e:	52                   	push   %edx
   1552f:	ff 50 40             	call   *0x40(%eax)
   15532:	89 c3                	mov    %eax,%ebx
   15534:	58                   	pop    %eax
   15535:	81 fb 03 01 00 00    	cmp    $0x103,%ebx
   1553b:	74 07                	je     15544 <_ProSend@8+0x1e4>
   1553d:	c6 86 90 04 00 00 00 	movb   $0x0,0x490(%esi)
   15544:	31 c9                	xor    %ecx,%ecx
   15546:	8a 4d f1             	mov    0xfffffff1(%ebp),%cl
   15549:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   1554f:	e9 97 fe ff ff       	jmp    153eb <_ProSend@8+0x8b>
   15554:	b9 02 00 00 00       	mov    $0x2,%ecx
   15559:	ff 15 c8 e1 01 00    	call   *0x1e1c8
   1555f:	88 c3                	mov    %al,%bl
   15561:	50                   	push   %eax
   15562:	8d 45 0c             	lea    0xc(%ebp),%eax
   15565:	8b 96 34 05 00 00    	mov    0x534(%esi),%edx
   1556b:	6a 01                	push   $0x1
   1556d:	50                   	push   %eax
   1556e:	8b 46 0c             	mov    0xc(%esi),%eax
   15571:	50                   	push   %eax
   15572:	ff 52 50             	call   *0x50(%edx)
   15575:	31 c9                	xor    %ecx,%ecx
   15577:	58                   	pop    %eax
   15578:	88 d9                	mov    %bl,%cl
   1557a:	31 db                	xor    %ebx,%ebx
   1557c:	ff 15 c4 e1 01 00    	call   *0x1e1c4
   15582:	e9 53 ff ff ff       	jmp    154da <_ProSend@8+0x17a>
   15587:	50                   	push   %eax
   15588:	8d 86 70 04 00 00    	lea    0x470(%esi),%eax
   1558e:	6a 00                	push   $0x0
   15590:	6a 00                	push   $0x0
   15592:	50                   	push   %eax
   15593:	ff 15 80 e2 01 00    	call   *0x1e280
   15599:	59                   	pop    %ecx
   1559a:	e9 04 ff ff ff       	jmp    154a3 <_ProSend@8+0x143>
   1559f:	83 ec 0c             	sub    $0xc,%esp
   155a2:	8b 55 0c             	mov    0xc(%ebp),%edx
   155a5:	52                   	push   %edx
   155a6:	ba 01 00 00 00       	mov    $0x1,%edx
   155ab:	89 f1                	mov    %esi,%ecx
   155ad:	e8 ce e9 ff ff       	call   13f80 <@MiniQueueWorkItem@12>
   155b2:	b8 03 01 00 00       	mov    $0x103,%eax
   155b7:	e9 5d fe ff ff       	jmp    15419 <_ProSend@8+0xb9>
   155bc:	83 ec 0c             	sub    $0xc,%esp
   155bf:	8b 45 0c             	mov    0xc(%ebp),%eax
   155c2:	ba 06 00 00 00       	mov    $0x6,%edx
   155c7:	50                   	push   %eax
   155c8:	eb e1                	jmp    155ab <_ProSend@8+0x24b>
   155ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000155d0 <_ProSendPackets@12>:
   155d0:	55                   	push   %ebp
   155d1:	89 e5                	mov    %esp,%ebp
   155d3:	5d                   	pop    %ebp
   155d4:	c2 0c 00             	ret    $0xc
   155d7:	89 f6                	mov    %esi,%esi
   155d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000155e0 <_ProTransferData@24>:
   155e0:	55                   	push   %ebp
   155e1:	89 e5                	mov    %esp,%ebp
   155e3:	57                   	push   %edi
   155e4:	56                   	push   %esi
   155e5:	53                   	push   %ebx
   155e6:	83 ec 0c             	sub    $0xc,%esp
   155e9:	8b 45 10             	mov    0x10(%ebp),%eax
   155ec:	8b 4d 18             	mov    0x18(%ebp),%ecx
   155ef:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   155f2:	8b 45 08             	mov    0x8(%ebp),%eax
   155f5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   155f8:	8b 75 14             	mov    0x14(%ebp),%esi
   155fb:	8b 80 d0 00 00 00    	mov    0xd0(%eax),%eax
   15601:	8b 7d 1c             	mov    0x1c(%ebp),%edi
   15604:	8b 90 68 05 00 00    	mov    0x568(%eax),%edx
   1560a:	39 ca                	cmp    %ecx,%edx
   1560c:	74 28                	je     15636 <_ProTransferData@24+0x56>
   1560e:	8b 90 34 05 00 00    	mov    0x534(%eax),%edx
   15614:	89 75 1c             	mov    %esi,0x1c(%ebp)
   15617:	8b 40 0c             	mov    0xc(%eax),%eax
   1561a:	8b 75 f0             	mov    0xfffffff0(%ebp),%esi
   1561d:	89 75 18             	mov    %esi,0x18(%ebp)
   15620:	89 5d 14             	mov    %ebx,0x14(%ebp)
   15623:	89 45 10             	mov    %eax,0x10(%ebp)
   15626:	89 7d 0c             	mov    %edi,0xc(%ebp)
   15629:	89 4d 08             	mov    %ecx,0x8(%ebp)
   1562c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1562f:	5b                   	pop    %ebx
   15630:	5e                   	pop    %esi
   15631:	5f                   	pop    %edi
   15632:	5d                   	pop    %ebp
   15633:	ff 62 48             	jmp    *0x48(%edx)
   15636:	51                   	push   %ecx
   15637:	51                   	push   %ecx
   15638:	57                   	push   %edi
   15639:	6a 00                	push   $0x0
   1563b:	8b 98 68 05 00 00    	mov    0x568(%eax),%ebx
   15641:	53                   	push   %ebx
   15642:	56                   	push   %esi
   15643:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   15646:	51                   	push   %ecx
   15647:	52                   	push   %edx
   15648:	e8 a3 c2 ff ff       	call   118f0 <_NdisCopyFromPacketToPacket@24>
   1564d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15650:	31 c0                	xor    %eax,%eax
   15652:	5b                   	pop    %ebx
   15653:	5e                   	pop    %esi
   15654:	5f                   	pop    %edi
   15655:	5d                   	pop    %ebp
   15656:	c2 18 00             	ret    $0x18
   15659:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015660 <_NdisCloseAdapter@8>:
   15660:	55                   	push   %ebp
   15661:	89 e5                	mov    %esp,%ebp
   15663:	56                   	push   %esi
   15664:	53                   	push   %ebx
   15665:	83 ec 18             	sub    $0x18,%esp
   15668:	8d 75 f7             	lea    0xfffffff7(%ebp),%esi
   1566b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1566e:	56                   	push   %esi
   1566f:	8b 83 cc 00 00 00    	mov    0xcc(%ebx),%eax
   15675:	83 c0 08             	add    $0x8,%eax
   15678:	50                   	push   %eax
   15679:	ff 15 dc e1 01 00    	call   *0x1e1dc
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   1567f:	8b 93 b4 00 00 00    	mov    0xb4(%ebx),%edx
  OldBlink = Entry->Blink;
   15685:	8b 83 b8 00 00 00    	mov    0xb8(%ebx),%eax
  OldFlink->Blink = OldBlink;
   1568b:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   1568e:	89 10                	mov    %edx,(%eax)
   15690:	31 c0                	xor    %eax,%eax
   15692:	8a 45 f7             	mov    0xfffffff7(%ebp),%al
   15695:	50                   	push   %eax
   15696:	8b 83 cc 00 00 00    	mov    0xcc(%ebx),%eax
   1569c:	83 c0 08             	add    $0x8,%eax
   1569f:	50                   	push   %eax
   156a0:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   156a6:	56                   	push   %esi
   156a7:	8b 83 d0 00 00 00    	mov    0xd0(%ebx),%eax
   156ad:	83 c0 30             	add    $0x30,%eax
   156b0:	50                   	push   %eax
   156b1:	ff 15 dc e1 01 00    	call   *0x1e1dc
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   156b7:	8b 93 bc 00 00 00    	mov    0xbc(%ebx),%edx
  OldBlink = Entry->Blink;
   156bd:	8b 83 c0 00 00 00    	mov    0xc0(%ebx),%eax
  OldFlink->Blink = OldBlink;
   156c3:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   156c6:	89 10                	mov    %edx,(%eax)
   156c8:	31 c0                	xor    %eax,%eax
   156ca:	8a 45 f7             	mov    0xfffffff7(%ebp),%al
   156cd:	50                   	push   %eax
   156ce:	8b 83 d0 00 00 00    	mov    0xd0(%ebx),%eax
   156d4:	83 c0 30             	add    $0x30,%eax
   156d7:	50                   	push   %eax
   156d8:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   156de:	56                   	push   %esi
   156df:	53                   	push   %ebx
   156e0:	ff 15 2c e2 01 00    	call   *0x1e22c
   156e6:	8b 45 08             	mov    0x8(%ebp),%eax
   156e9:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   156ef:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   156f2:	5b                   	pop    %ebx
   156f3:	5e                   	pop    %esi
   156f4:	5d                   	pop    %ebp
   156f5:	c2 08 00             	ret    $0x8
   156f8:	90                   	nop    
   156f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015700 <_NdisDeregisterProtocol@8>:
   15700:	55                   	push   %ebp
   15701:	89 e5                	mov    %esp,%ebp
   15703:	53                   	push   %ebx
   15704:	83 ec 0c             	sub    $0xc,%esp
   15707:	8d 45 fb             	lea    0xfffffffb(%ebp),%eax
   1570a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1570d:	50                   	push   %eax
   1570e:	68 50 90 01 00       	push   $0x19050
   15713:	ff 15 dc e1 01 00    	call   *0x1e1dc
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   15719:	8b 13                	mov    (%ebx),%edx
  OldBlink = Entry->Blink;
   1571b:	8b 43 04             	mov    0x4(%ebx),%eax
  OldFlink->Blink = OldBlink;
   1571e:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   15721:	89 10                	mov    %edx,(%eax)
   15723:	31 c0                	xor    %eax,%eax
   15725:	8a 45 fb             	mov    0xfffffffb(%ebp),%al
   15728:	50                   	push   %eax
   15729:	68 50 90 01 00       	push   $0x19050
   1572e:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   15734:	50                   	push   %eax
   15735:	53                   	push   %ebx
   15736:	ff 15 2c e2 01 00    	call   *0x1e22c
   1573c:	8b 45 08             	mov    0x8(%ebp),%eax
   1573f:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   15745:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   15748:	c9                   	leave  
   15749:	c2 08 00             	ret    $0x8
   1574c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015750 <_NdisOpenAdapter@44>:
   15750:	55                   	push   %ebp
   15751:	89 e5                	mov    %esp,%ebp
   15753:	57                   	push   %edi
   15754:	56                   	push   %esi
   15755:	53                   	push   %ebx
   15756:	83 ec 0c             	sub    $0xc,%esp
   15759:	8b 45 20             	mov    0x20(%ebp),%eax
   1575c:	8b 7d 18             	mov    0x18(%ebp),%edi
   1575f:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
   15762:	85 c0                	test   %eax,%eax
   15764:	74 3e                	je     157a4 <_NdisOpenAdapter@44+0x54>
   15766:	83 ec 0c             	sub    $0xc,%esp
   15769:	8b 75 28             	mov    0x28(%ebp),%esi
   1576c:	56                   	push   %esi
   1576d:	e8 5e e6 ff ff       	call   13dd0 <_MiniLocateDevice>
   15772:	83 c4 10             	add    $0x10,%esp
   15775:	89 c6                	mov    %eax,%esi
   15777:	85 c0                	test   %eax,%eax
   15779:	74 45                	je     157c0 <_NdisOpenAdapter@44+0x70>
   1577b:	31 d2                	xor    %edx,%edx
   1577d:	39 da                	cmp    %ebx,%edx
   1577f:	73 10                	jae    15791 <_NdisOpenAdapter@44+0x41>
   15781:	8b 80 f8 00 00 00    	mov    0xf8(%eax),%eax
   15787:	3b 04 97             	cmp    (%edi,%edx,4),%eax
   1578a:	74 47                	je     157d3 <_NdisOpenAdapter@44+0x83>
   1578c:	42                   	inc    %edx
   1578d:	39 da                	cmp    %ebx,%edx
   1578f:	72 f6                	jb     15787 <_NdisOpenAdapter@44+0x37>
   15791:	8b 45 08             	mov    0x8(%ebp),%eax
   15794:	c7 00 19 00 01 c0    	movl   $0xc0010019,(%eax)
   1579a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1579d:	5b                   	pop    %ebx
   1579e:	5e                   	pop    %esi
   1579f:	5f                   	pop    %edi
   157a0:	5d                   	pop    %ebp
   157a1:	c2 2c 00             	ret    $0x2c
   157a4:	8b 45 08             	mov    0x8(%ebp),%eax
   157a7:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   157ad:	8b 45 0c             	mov    0xc(%ebp),%eax
   157b0:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   157b6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   157b9:	5b                   	pop    %ebx
   157ba:	5e                   	pop    %esi
   157bb:	5f                   	pop    %edi
   157bc:	5d                   	pop    %ebp
   157bd:	c2 2c 00             	ret    $0x2c
   157c0:	8b 45 08             	mov    0x8(%ebp),%eax
   157c3:	c7 00 06 00 01 c0    	movl   $0xc0010006,(%eax)
   157c9:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   157cc:	5b                   	pop    %ebx
   157cd:	5e                   	pop    %esi
   157ce:	5f                   	pop    %edi
   157cf:	5d                   	pop    %ebp
   157d0:	c2 2c 00             	ret    $0x2c
   157d3:	8b 45 14             	mov    0x14(%ebp),%eax
   157d6:	89 10                	mov    %edx,(%eax)
   157d8:	51                   	push   %ecx
   157d9:	51                   	push   %ecx
   157da:	68 d4 00 00 00       	push   $0xd4
   157df:	6a 00                	push   $0x0
   157e1:	ff 15 24 e2 01 00    	call   *0x1e224
   157e7:	89 c3                	mov    %eax,%ebx
   157e9:	58                   	pop    %eax
   157ea:	85 db                	test   %ebx,%ebx
   157ec:	5a                   	pop    %edx
   157ed:	74 77                	je     15866 <_NdisOpenAdapter@44+0x116>
   157ef:	50                   	push   %eax
   157f0:	68 d4 00 00 00       	push   $0xd4
   157f5:	6a 00                	push   $0x0
   157f7:	53                   	push   %ebx
   157f8:	e8 73 0e 00 00       	call   16670 <_memset>
   157fd:	8b 45 20             	mov    0x20(%ebp),%eax
   15800:	83 c4 0c             	add    $0xc,%esp
   15803:	89 83 cc 00 00 00    	mov    %eax,0xcc(%ebx)
   15809:	8b 45 24             	mov    0x24(%ebp),%eax
   1580c:	89 43 10             	mov    %eax,0x10(%ebx)
   1580f:	8d 46 30             	lea    0x30(%esi),%eax
   15812:	89 b3 d0 00 00 00    	mov    %esi,0xd0(%ebx)
   15818:	89 5b 04             	mov    %ebx,0x4(%ebx)
   1581b:	c7 43 5c 60 52 01 00 	movl   $0x15260,0x5c(%ebx)
   15822:	c7 43 58 50 53 01 00 	movl   $0x15350,0x58(%ebx)
   15829:	c7 43 30 60 53 01 00 	movl   $0x15360,0x30(%ebx)
   15830:	c7 43 54 d0 55 01 00 	movl   $0x155d0,0x54(%ebx)
   15837:	c7 43 34 e0 55 01 00 	movl   $0x155e0,0x34(%ebx)
   1583e:	50                   	push   %eax
   1583f:	8d 83 bc 00 00 00    	lea    0xbc(%ebx),%eax
   15845:	50                   	push   %eax
   15846:	8d 86 28 05 00 00    	lea    0x528(%esi),%eax
   1584c:	50                   	push   %eax
   1584d:	ff 15 38 e2 01 00    	call   *0x1e238
   15853:	8b 45 10             	mov    0x10(%ebp),%eax
   15856:	89 18                	mov    %ebx,(%eax)
   15858:	8b 45 08             	mov    0x8(%ebp),%eax
   1585b:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   15861:	e9 34 ff ff ff       	jmp    1579a <_NdisOpenAdapter@44+0x4a>
   15866:	8b 45 08             	mov    0x8(%ebp),%eax
   15869:	c7 00 9a 00 00 c0    	movl   $0xc000009a,(%eax)
   1586f:	e9 26 ff ff ff       	jmp    1579a <_NdisOpenAdapter@44+0x4a>
   15874:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1587a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00015880 <_NdisRegisterProtocol@16>:
   15880:	55                   	push   %ebp
   15881:	31 c0                	xor    %eax,%eax
   15883:	89 e5                	mov    %esp,%ebp
   15885:	57                   	push   %edi
   15886:	56                   	push   %esi
   15887:	53                   	push   %ebx
   15888:	83 ec 6c             	sub    $0x6c,%esp
   1588b:	c7 45 bc 00 00 00 00 	movl   $0x0,0xffffffbc(%ebp)
   15892:	8b 55 10             	mov    0x10(%ebp),%edx
   15895:	8a 02                	mov    (%edx),%al
   15897:	83 f8 04             	cmp    $0x4,%eax
   1589a:	0f 84 10 02 00 00    	je     15ab0 <_NdisRegisterProtocol@16+0x230>
   158a0:	7e 1e                	jle    158c0 <_NdisRegisterProtocol@16+0x40>
   158a2:	83 f8 05             	cmp    $0x5,%eax
   158a5:	0f 84 26 02 00 00    	je     15ad1 <_NdisRegisterProtocol@16+0x251>
   158ab:	8b 4d 08             	mov    0x8(%ebp),%ecx
   158ae:	c7 01 04 00 01 c0    	movl   $0xc0010004,(%ecx)
   158b4:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   158b7:	5b                   	pop    %ebx
   158b8:	5e                   	pop    %esi
   158b9:	5f                   	pop    %edi
   158ba:	5d                   	pop    %ebp
   158bb:	c2 10 00             	ret    $0x10
   158be:	89 f6                	mov    %esi,%esi
   158c0:	83 f8 03             	cmp    $0x3,%eax
   158c3:	75 e6                	jne    158ab <_NdisRegisterProtocol@16+0x2b>
   158c5:	bb 38 00 00 00       	mov    $0x38,%ebx
   158ca:	39 5d 14             	cmp    %ebx,0x14(%ebp)
   158cd:	0f 82 eb 01 00 00    	jb     15abe <_NdisRegisterProtocol@16+0x23e>
   158d3:	56                   	push   %esi
   158d4:	56                   	push   %esi
   158d5:	68 94 00 00 00       	push   $0x94
   158da:	6a 00                	push   $0x0
   158dc:	ff 15 24 e2 01 00    	call   *0x1e224
   158e2:	85 c0                	test   %eax,%eax
   158e4:	89 45 94             	mov    %eax,0xffffff94(%ebp)
   158e7:	5a                   	pop    %edx
   158e8:	59                   	pop    %ecx
   158e9:	0f 84 00 02 00 00    	je     15aef <_NdisRegisterProtocol@16+0x26f>
   158ef:	50                   	push   %eax
   158f0:	68 94 00 00 00       	push   $0x94
   158f5:	6a 00                	push   $0x0
   158f7:	8b 7d 94             	mov    0xffffff94(%ebp),%edi
   158fa:	57                   	push   %edi
   158fb:	e8 70 0d 00 00       	call   16670 <_memset>
   15900:	8b 7d 94             	mov    0xffffff94(%ebp),%edi
   15903:	89 d9                	mov    %ebx,%ecx
   15905:	fc                   	cld    
   15906:	8b 75 10             	mov    0x10(%ebp),%esi
   15909:	83 c7 10             	add    $0x10,%edi
   1590c:	c1 e9 02             	shr    $0x2,%ecx
   1590f:	83 c4 0c             	add    $0xc,%esp
   15912:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   15914:	6a 01                	push   $0x1
   15916:	8b 45 10             	mov    0x10(%ebp),%eax
   15919:	83 c0 30             	add    $0x30,%eax
   1591c:	50                   	push   %eax
   1591d:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15920:	83 c0 40             	add    $0x40,%eax
   15923:	50                   	push   %eax
   15924:	ff 15 fc e2 01 00    	call   *0x1e2fc
   1592a:	5e                   	pop    %esi
   1592b:	85 c0                	test   %eax,%eax
   1592d:	0f 88 61 03 00 00    	js     15c94 <_NdisRegisterProtocol@16+0x414>
   15933:	83 ec 0c             	sub    $0xc,%esp
   15936:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15939:	83 c0 08             	add    $0x8,%eax
   1593c:	50                   	push   %eax
   1593d:	ff 15 78 e2 01 00    	call   *0x1e278
   15943:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15946:	c7 40 0c 01 00 00 00 	movl   $0x1,0xc(%eax)

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   1594d:	05 8c 00 00 00       	add    $0x8c,%eax
   15952:	5a                   	pop    %edx
  ListHead->Flink = ListHead->Blink = ListHead;
   15953:	8b 55 94             	mov    0xffffff94(%ebp),%edx
   15956:	59                   	pop    %ecx
   15957:	89 40 04             	mov    %eax,0x4(%eax)
   1595a:	89 82 8c 00 00 00    	mov    %eax,0x8c(%edx)
   15960:	68 3f 4c 4d 4e       	push   $0x4e4d4c3f
   15965:	8b 4d 10             	mov    0x10(%ebp),%ecx
   15968:	66 8b 41 30          	mov    0x30(%ecx),%ax
   1596c:	25 ff ff 00 00       	and    $0xffff,%eax
   15971:	83 c0 7c             	add    $0x7c,%eax
   15974:	50                   	push   %eax
   15975:	6a 01                	push   $0x1
   15977:	ff 15 28 e2 01 00    	call   *0x1e228
   1597d:	89 c6                	mov    %eax,%esi
   1597f:	58                   	pop    %eax
   15980:	85 f6                	test   %esi,%esi
   15982:	0f 84 27 03 00 00    	je     15caf <_NdisRegisterProtocol@16+0x42f>
   15988:	50                   	push   %eax
   15989:	50                   	push   %eax
   1598a:	68 f0 81 01 00       	push   $0x181f0
   1598f:	56                   	push   %esi
   15990:	e8 fb 0d 00 00       	call   16790 <_wcscpy>
   15995:	8b 55 10             	mov    0x10(%ebp),%edx
   15998:	83 c4 0c             	add    $0xc,%esp
   1599b:	66 8b 42 30          	mov    0x30(%edx),%ax
   1599f:	66 d1 e8             	shr    %ax
   159a2:	25 ff ff 00 00       	and    $0xffff,%eax
   159a7:	50                   	push   %eax
   159a8:	8b 7a 34             	mov    0x34(%edx),%edi
   159ab:	57                   	push   %edi
   159ac:	56                   	push   %esi
   159ad:	e8 7e 10 00 00       	call   16a30 <_wcsncat>
   159b2:	c7 04 24 f0 81 01 00 	movl   $0x181f0,(%esp)
   159b9:	e8 b2 0d 00 00       	call   16770 <_wcslen>
   159be:	8b 4d 10             	mov    0x10(%ebp),%ecx
   159c1:	66 8b 51 30          	mov    0x30(%ecx),%dx
   159c5:	66 d1 ea             	shr    %dx
   159c8:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   159ce:	01 c2                	add    %eax,%edx
   159d0:	66 c7 04 56 00 00    	movw   $0x0,(%esi,%edx,2)
   159d6:	59                   	pop    %ecx
   159d7:	5b                   	pop    %ebx
   159d8:	68 5a 82 01 00       	push   $0x1825a
   159dd:	8d 5d c0             	lea    0xffffffc0(%ebp),%ebx
   159e0:	56                   	push   %esi
   159e1:	e8 3a 10 00 00       	call   16a20 <_wcscat>
   159e6:	58                   	pop    %eax
   159e7:	5a                   	pop    %edx
   159e8:	56                   	push   %esi
   159e9:	53                   	push   %ebx
   159ea:	ff 15 ec e2 01 00    	call   *0x1e2ec
   159f0:	8d 45 c8             	lea    0xffffffc8(%ebp),%eax
   159f3:	89 5d d0             	mov    %ebx,0xffffffd0(%ebp)
   159f6:	c7 45 c8 18 00 00 00 	movl   $0x18,0xffffffc8(%ebp)
   159fd:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)
   15a04:	c7 45 d4 40 00 00 00 	movl   $0x40,0xffffffd4(%ebp)
   15a0b:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
   15a12:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   15a19:	89 04 24             	mov    %eax,(%esp)
   15a1c:	8d 45 bc             	lea    0xffffffbc(%ebp),%eax
   15a1f:	68 19 00 02 00       	push   $0x20019
   15a24:	50                   	push   %eax
   15a25:	ff 15 10 e3 01 00    	call   *0x1e310
   15a2b:	89 c3                	mov    %eax,%ebx
   15a2d:	57                   	push   %edi
   15a2e:	57                   	push   %edi
   15a2f:	56                   	push   %esi
   15a30:	ff 15 2c e2 01 00    	call   *0x1e22c
   15a36:	83 c4 0c             	add    $0xc,%esp
   15a39:	85 db                	test   %ebx,%ebx
   15a3b:	0f 88 bc 00 00 00    	js     15afd <_NdisRegisterProtocol@16+0x27d>
   15a41:	8d 75 b0             	lea    0xffffffb0(%ebp),%esi
   15a44:	53                   	push   %ebx
   15a45:	53                   	push   %ebx
   15a46:	68 6c 82 01 00       	push   $0x1826c
   15a4b:	56                   	push   %esi
   15a4c:	ff 15 ec e2 01 00    	call   *0x1e2ec
   15a52:	8d 7d ac             	lea    0xffffffac(%ebp),%edi
   15a55:	57                   	push   %edi
   15a56:	6a 00                	push   $0x0
   15a58:	6a 00                	push   $0x0
   15a5a:	6a 02                	push   $0x2
   15a5c:	56                   	push   %esi
   15a5d:	8b 4d bc             	mov    0xffffffbc(%ebp),%ecx
   15a60:	51                   	push   %ecx
   15a61:	ff 15 14 e3 01 00    	call   *0x1e314
   15a67:	89 c3                	mov    %eax,%ebx
   15a69:	58                   	pop    %eax
   15a6a:	81 fb 05 00 00 80    	cmp    $0x80000005,%ebx
   15a70:	5a                   	pop    %edx
   15a71:	0f 95 c2             	setne  %dl
   15a74:	81 fb 23 00 00 c0    	cmp    $0xc0000023,%ebx
   15a7a:	0f 95 c0             	setne  %al
   15a7d:	25 ff 00 00 00       	and    $0xff,%eax
   15a82:	85 c2                	test   %eax,%edx
   15a84:	0f 84 8e 00 00 00    	je     15b18 <_NdisRegisterProtocol@16+0x298>
   15a8a:	83 ec 0c             	sub    $0xc,%esp
   15a8d:	8b 75 bc             	mov    0xffffffbc(%ebp),%esi
   15a90:	56                   	push   %esi
   15a91:	ff 15 00 e3 01 00    	call   *0x1e300
   15a97:	8b 5d 94             	mov    0xffffff94(%ebp),%ebx
   15a9a:	53                   	push   %ebx
   15a9b:	ff 15 2c e2 01 00    	call   *0x1e22c
   15aa1:	8b 55 08             	mov    0x8(%ebp),%edx
   15aa4:	c7 02 01 00 00 c0    	movl   $0xc0000001,(%edx)
   15aaa:	e9 05 fe ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15aaf:	90                   	nop    
   15ab0:	bb 4c 00 00 00       	mov    $0x4c,%ebx
   15ab5:	39 5d 14             	cmp    %ebx,0x14(%ebp)
   15ab8:	0f 83 15 fe ff ff    	jae    158d3 <_NdisRegisterProtocol@16+0x53>
   15abe:	8b 45 08             	mov    0x8(%ebp),%eax
   15ac1:	c7 00 05 00 01 c0    	movl   $0xc0010005,(%eax)
   15ac7:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15aca:	5b                   	pop    %ebx
   15acb:	5e                   	pop    %esi
   15acc:	5f                   	pop    %edi
   15acd:	5d                   	pop    %ebp
   15ace:	c2 10 00             	ret    $0x10
   15ad1:	bb 6c 00 00 00       	mov    $0x6c,%ebx
   15ad6:	eb dd                	jmp    15ab5 <_NdisRegisterProtocol@16+0x235>
   15ad8:	83 ec 0c             	sub    $0xc,%esp
   15adb:	8b 45 90             	mov    0xffffff90(%ebp),%eax
   15ade:	50                   	push   %eax
   15adf:	ff 15 2c e2 01 00    	call   *0x1e22c
   15ae5:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15ae8:	50                   	push   %eax
   15ae9:	ff 15 2c e2 01 00    	call   *0x1e22c
   15aef:	8b 55 08             	mov    0x8(%ebp),%edx
   15af2:	c7 02 9a 00 00 c0    	movl   $0xc000009a,(%edx)
   15af8:	e9 b7 fd ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15afd:	83 ec 0c             	sub    $0xc,%esp
   15b00:	8b 75 94             	mov    0xffffff94(%ebp),%esi
   15b03:	56                   	push   %esi
   15b04:	ff 15 2c e2 01 00    	call   *0x1e22c
   15b0a:	8b 45 08             	mov    0x8(%ebp),%eax
   15b0d:	c7 00 01 00 00 c0    	movl   $0xc0000001,(%eax)
   15b13:	e9 9c fd ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15b18:	51                   	push   %ecx
   15b19:	68 70 4c 4d 4e       	push   $0x4e4d4c70
   15b1e:	8b 45 ac             	mov    0xffffffac(%ebp),%eax
   15b21:	83 c0 10             	add    $0x10,%eax
   15b24:	50                   	push   %eax
   15b25:	6a 01                	push   $0x1
   15b27:	ff 15 28 e2 01 00    	call   *0x1e228
   15b2d:	85 c0                	test   %eax,%eax
   15b2f:	89 45 90             	mov    %eax,0xffffff90(%ebp)
   15b32:	5a                   	pop    %edx
   15b33:	0f 84 91 01 00 00    	je     15cca <_NdisRegisterProtocol@16+0x44a>
   15b39:	50                   	push   %eax
   15b3a:	50                   	push   %eax
   15b3b:	57                   	push   %edi
   15b3c:	8b 45 ac             	mov    0xffffffac(%ebp),%eax
   15b3f:	83 c0 10             	add    $0x10,%eax
   15b42:	50                   	push   %eax
   15b43:	8b 7d 90             	mov    0xffffff90(%ebp),%edi
   15b46:	57                   	push   %edi
   15b47:	6a 02                	push   $0x2
   15b49:	56                   	push   %esi
   15b4a:	8b 5d bc             	mov    0xffffffbc(%ebp),%ebx
   15b4d:	53                   	push   %ebx
   15b4e:	ff 15 14 e3 01 00    	call   *0x1e314
   15b54:	5a                   	pop    %edx
   15b55:	85 c0                	test   %eax,%eax
   15b57:	59                   	pop    %ecx
   15b58:	0f 88 91 01 00 00    	js     15cef <_NdisRegisterProtocol@16+0x46f>
   15b5e:	8b 4d 90             	mov    0xffffff90(%ebp),%ecx
   15b61:	8b 45 90             	mov    0xffffff90(%ebp),%eax
   15b64:	83 c1 0c             	add    $0xc,%ecx
   15b67:	89 4d 8c             	mov    %ecx,0xffffff8c(%ebp)
   15b6a:	66 83 78 0c 00       	cmpw   $0x0,0xc(%eax)
   15b6f:	0f 84 f9 00 00 00    	je     15c6e <_NdisRegisterProtocol@16+0x3ee>
   15b75:	50                   	push   %eax
   15b76:	50                   	push   %eax
   15b77:	8d 55 a0             	lea    0xffffffa0(%ebp),%edx
   15b7a:	8b 7d 8c             	mov    0xffffff8c(%ebp),%edi
   15b7d:	57                   	push   %edi
   15b7e:	52                   	push   %edx
   15b7f:	ff 15 ec e2 01 00    	call   *0x1e2ec
   15b85:	56                   	push   %esi
   15b86:	8b 7d 8c             	mov    0xffffff8c(%ebp),%edi
   15b89:	83 c7 10             	add    $0x10,%edi
   15b8c:	57                   	push   %edi
   15b8d:	e8 de 0b 00 00       	call   16770 <_wcslen>
   15b92:	8b 4d 10             	mov    0x10(%ebp),%ecx
   15b95:	66 8b 51 30          	mov    0x30(%ecx),%dx
   15b99:	59                   	pop    %ecx
   15b9a:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   15ba0:	5b                   	pop    %ebx
   15ba1:	8d b4 42 86 00 00 00 	lea    0x86(%edx,%eax,2),%esi
   15ba8:	56                   	push   %esi
   15ba9:	6a 01                	push   $0x1
   15bab:	ff 15 24 e2 01 00    	call   *0x1e224
   15bb1:	89 c3                	mov    %eax,%ebx
   15bb3:	58                   	pop    %eax
   15bb4:	85 db                	test   %ebx,%ebx
   15bb6:	5a                   	pop    %edx
   15bb7:	0f 84 1b ff ff ff    	je     15ad8 <_NdisRegisterProtocol@16+0x258>
   15bbd:	d1 ee                	shr    %esi
   15bbf:	50                   	push   %eax
   15bc0:	50                   	push   %eax
   15bc1:	68 f0 81 01 00       	push   $0x181f0
   15bc6:	53                   	push   %ebx
   15bc7:	e8 c4 0b 00 00       	call   16790 <_wcscpy>
   15bcc:	59                   	pop    %ecx
   15bcd:	58                   	pop    %eax
   15bce:	57                   	push   %edi
   15bcf:	53                   	push   %ebx
   15bd0:	e8 4b 0e 00 00       	call   16a20 <_wcscat>
   15bd5:	58                   	pop    %eax
   15bd6:	5a                   	pop    %edx
   15bd7:	68 76 82 01 00       	push   $0x18276
   15bdc:	53                   	push   %ebx
   15bdd:	e8 3e 0e 00 00       	call   16a20 <_wcscat>
   15be2:	8b 55 10             	mov    0x10(%ebp),%edx
   15be5:	66 8b 42 30          	mov    0x30(%edx),%ax
   15be9:	83 c4 0c             	add    $0xc,%esp
   15bec:	66 d1 e8             	shr    %ax
   15bef:	25 ff ff 00 00       	and    $0xffff,%eax
   15bf4:	50                   	push   %eax
   15bf5:	8b 42 34             	mov    0x34(%edx),%eax
   15bf8:	50                   	push   %eax
   15bf9:	53                   	push   %ebx
   15bfa:	e8 31 0e 00 00       	call   16a30 <_wcsncat>
   15bff:	66 c7 44 73 fe 00 00 	movw   $0x0,0xfffffffe(%ebx,%esi,2)
   15c06:	8d 4d 98             	lea    0xffffff98(%ebp),%ecx
   15c09:	5e                   	pop    %esi
   15c0a:	5f                   	pop    %edi
   15c0b:	53                   	push   %ebx
   15c0c:	51                   	push   %ecx
   15c0d:	ff 15 ec e2 01 00    	call   *0x1e2ec
   15c13:	8b 45 0c             	mov    0xc(%ebp),%eax
   15c16:	8b 4d 10             	mov    0x10(%ebp),%ecx
   15c19:	8b 55 94             	mov    0xffffff94(%ebp),%edx
   15c1c:	89 10                	mov    %edx,(%eax)
   15c1e:	8b 41 3c             	mov    0x3c(%ecx),%eax
   15c21:	59                   	pop    %ecx
   15c22:	85 c0                	test   %eax,%eax
   15c24:	5b                   	pop    %ebx
   15c25:	74 18                	je     15c3f <_NdisRegisterProtocol@16+0x3bf>
   15c27:	83 ec 0c             	sub    $0xc,%esp
   15c2a:	8d 55 98             	lea    0xffffff98(%ebp),%edx
   15c2d:	8d 4d a0             	lea    0xffffffa0(%ebp),%ecx
   15c30:	6a 00                	push   $0x0
   15c32:	52                   	push   %edx
   15c33:	51                   	push   %ecx
   15c34:	6a 00                	push   $0x0
   15c36:	8b 55 08             	mov    0x8(%ebp),%edx
   15c39:	52                   	push   %edx
   15c3a:	ff d0                	call   *%eax
   15c3c:	83 c4 0c             	add    $0xc,%esp
   15c3f:	8b 45 08             	mov    0x8(%ebp),%eax
   15c42:	8b 00                	mov    (%eax),%eax
   15c44:	85 c0                	test   %eax,%eax
   15c46:	74 34                	je     15c7c <_NdisRegisterProtocol@16+0x3fc>
   15c48:	83 ec 0c             	sub    $0xc,%esp
   15c4b:	8b 45 8c             	mov    0xffffff8c(%ebp),%eax
   15c4e:	50                   	push   %eax
   15c4f:	e8 1c 0b 00 00       	call   16770 <_wcslen>
   15c54:	8b 55 8c             	mov    0xffffff8c(%ebp),%edx
   15c57:	83 c4 10             	add    $0x10,%esp
   15c5a:	8d 04 42             	lea    (%edx,%eax,2),%eax
   15c5d:	8d 48 02             	lea    0x2(%eax),%ecx
   15c60:	89 4d 8c             	mov    %ecx,0xffffff8c(%ebp)
   15c63:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
   15c68:	0f 85 07 ff ff ff    	jne    15b75 <_NdisRegisterProtocol@16+0x2f5>
   15c6e:	8b 45 08             	mov    0x8(%ebp),%eax
   15c71:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   15c77:	e9 38 fc ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15c7c:	50                   	push   %eax
   15c7d:	68 50 90 01 00       	push   $0x19050
   15c82:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15c85:	50                   	push   %eax
   15c86:	68 40 90 01 00       	push   $0x19040
   15c8b:	ff 15 38 e2 01 00    	call   *0x1e238
   15c91:	58                   	pop    %eax
   15c92:	eb b4                	jmp    15c48 <_NdisRegisterProtocol@16+0x3c8>
   15c94:	83 ec 0c             	sub    $0xc,%esp
   15c97:	8b 5d 94             	mov    0xffffff94(%ebp),%ebx
   15c9a:	53                   	push   %ebx
   15c9b:	ff 15 2c e2 01 00    	call   *0x1e22c
   15ca1:	8b 4d 08             	mov    0x8(%ebp),%ecx
   15ca4:	c7 01 9a 00 00 c0    	movl   $0xc000009a,(%ecx)
   15caa:	e9 05 fc ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15caf:	83 ec 0c             	sub    $0xc,%esp
   15cb2:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15cb5:	50                   	push   %eax
   15cb6:	ff 15 2c e2 01 00    	call   *0x1e22c
   15cbc:	8b 45 08             	mov    0x8(%ebp),%eax
   15cbf:	c7 00 9a 00 00 c0    	movl   $0xc000009a,(%eax)
   15cc5:	e9 ea fb ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15cca:	83 ec 0c             	sub    $0xc,%esp
   15ccd:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   15cd0:	50                   	push   %eax
   15cd1:	ff 15 00 e3 01 00    	call   *0x1e300
   15cd7:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15cda:	50                   	push   %eax
   15cdb:	ff 15 2c e2 01 00    	call   *0x1e22c
   15ce1:	8b 4d 08             	mov    0x8(%ebp),%ecx
   15ce4:	c7 01 01 00 00 c0    	movl   $0xc0000001,(%ecx)
   15cea:	e9 c5 fb ff ff       	jmp    158b4 <_NdisRegisterProtocol@16+0x34>
   15cef:	83 ec 0c             	sub    $0xc,%esp
   15cf2:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   15cf5:	50                   	push   %eax
   15cf6:	ff 15 00 e3 01 00    	call   *0x1e300
   15cfc:	8b 45 90             	mov    0xffffff90(%ebp),%eax
   15cff:	50                   	push   %eax
   15d00:	ff 15 2c e2 01 00    	call   *0x1e22c
   15d06:	8b 45 94             	mov    0xffffff94(%ebp),%eax
   15d09:	50                   	push   %eax
   15d0a:	ff 15 2c e2 01 00    	call   *0x1e22c
   15d10:	e9 f5 fd ff ff       	jmp    15b0a <_NdisRegisterProtocol@16+0x28a>
   15d15:	8d 74 26 00          	lea    0x0(%esi),%esi
   15d19:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015d20 <_NdisRequest@12>:
   15d20:	55                   	push   %ebp
   15d21:	89 e5                	mov    %esp,%ebp
   15d23:	83 ec 10             	sub    $0x10,%esp
   15d26:	8b 45 10             	mov    0x10(%ebp),%eax
   15d29:	50                   	push   %eax
   15d2a:	8b 45 0c             	mov    0xc(%ebp),%eax
   15d2d:	50                   	push   %eax
   15d2e:	e8 2d f5 ff ff       	call   15260 <_ProRequest@8>
   15d33:	8b 55 08             	mov    0x8(%ebp),%edx
   15d36:	89 02                	mov    %eax,(%edx)
   15d38:	c9                   	leave  
   15d39:	c2 0c 00             	ret    $0xc
   15d3c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015d40 <_NdisReset@8>:
   15d40:	55                   	push   %ebp
   15d41:	89 e5                	mov    %esp,%ebp
   15d43:	8b 45 0c             	mov    0xc(%ebp),%eax
   15d46:	50                   	push   %eax
   15d47:	e8 04 f6 ff ff       	call   15350 <_ProReset@4>
   15d4c:	8b 55 08             	mov    0x8(%ebp),%edx
   15d4f:	89 02                	mov    %eax,(%edx)
   15d51:	c9                   	leave  
   15d52:	c2 08 00             	ret    $0x8
   15d55:	8d 74 26 00          	lea    0x0(%esi),%esi
   15d59:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015d60 <_NdisSend@12>:
   15d60:	55                   	push   %ebp
   15d61:	89 e5                	mov    %esp,%ebp
   15d63:	83 ec 10             	sub    $0x10,%esp
   15d66:	8b 45 10             	mov    0x10(%ebp),%eax
   15d69:	50                   	push   %eax
   15d6a:	8b 45 0c             	mov    0xc(%ebp),%eax
   15d6d:	50                   	push   %eax
   15d6e:	e8 ed f5 ff ff       	call   15360 <_ProSend@8>
   15d73:	8b 55 08             	mov    0x8(%ebp),%edx
   15d76:	89 02                	mov    %eax,(%edx)
   15d78:	c9                   	leave  
   15d79:	c2 0c 00             	ret    $0xc
   15d7c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015d80 <_NdisSendPackets@12>:
   15d80:	55                   	push   %ebp
   15d81:	89 e5                	mov    %esp,%ebp
   15d83:	5d                   	pop    %ebp
   15d84:	c2 0c 00             	ret    $0xc
   15d87:	89 f6                	mov    %esi,%esi
   15d89:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015d90 <_NdisTransferData@28>:
   15d90:	55                   	push   %ebp
   15d91:	89 e5                	mov    %esp,%ebp
   15d93:	83 ec 10             	sub    $0x10,%esp
   15d96:	8b 45 20             	mov    0x20(%ebp),%eax
   15d99:	8b 55 10             	mov    0x10(%ebp),%edx
   15d9c:	50                   	push   %eax
   15d9d:	8b 45 1c             	mov    0x1c(%ebp),%eax
   15da0:	50                   	push   %eax
   15da1:	8b 45 18             	mov    0x18(%ebp),%eax
   15da4:	50                   	push   %eax
   15da5:	8b 4d 14             	mov    0x14(%ebp),%ecx
   15da8:	8b 45 0c             	mov    0xc(%ebp),%eax
   15dab:	51                   	push   %ecx
   15dac:	52                   	push   %edx
   15dad:	50                   	push   %eax
   15dae:	e8 2d f8 ff ff       	call   155e0 <_ProTransferData@24>
   15db3:	8b 55 08             	mov    0x8(%ebp),%edx
   15db6:	89 02                	mov    %eax,(%edx)
   15db8:	c9                   	leave  
   15db9:	c2 1c 00             	ret    $0x1c
   15dbc:	90                   	nop    
   15dbd:	90                   	nop    
   15dbe:	90                   	nop    
   15dbf:	90                   	nop    

00015dc0 <_NdisAnsiStringToUnicodeString@8>:
   15dc0:	55                   	push   %ebp
   15dc1:	89 e5                	mov    %esp,%ebp
   15dc3:	83 ec 0c             	sub    $0xc,%esp
   15dc6:	8b 55 0c             	mov    0xc(%ebp),%edx
   15dc9:	8b 45 08             	mov    0x8(%ebp),%eax
   15dcc:	6a 00                	push   $0x0
   15dce:	52                   	push   %edx
   15dcf:	50                   	push   %eax
   15dd0:	ff 15 c8 e2 01 00    	call   *0x1e2c8
   15dd6:	c9                   	leave  
   15dd7:	c2 08 00             	ret    $0x8
   15dda:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015de0 <_NdisEqualString@12>:
   15de0:	55                   	push   %ebp
   15de1:	31 c0                	xor    %eax,%eax
   15de3:	89 e5                	mov    %esp,%ebp
   15de5:	83 ec 0c             	sub    $0xc,%esp
   15de8:	8a 45 10             	mov    0x10(%ebp),%al
   15deb:	8b 4d 08             	mov    0x8(%ebp),%ecx
   15dee:	50                   	push   %eax
   15def:	8b 45 0c             	mov    0xc(%ebp),%eax
   15df2:	50                   	push   %eax
   15df3:	51                   	push   %ecx
   15df4:	ff 15 dc e2 01 00    	call   *0x1e2dc
   15dfa:	c9                   	leave  
   15dfb:	25 ff 00 00 00       	and    $0xff,%eax
   15e00:	c2 0c 00             	ret    $0xc
   15e03:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   15e09:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015e10 <_NdisInitAnsiString@8>:
   15e10:	55                   	push   %ebp
   15e11:	89 e5                	mov    %esp,%ebp
   15e13:	c9                   	leave  
   15e14:	ff 25 e8 e2 01 00    	jmp    *0x1e2e8
   15e1a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015e20 <_NdisInitializeString@8>:
   15e20:	55                   	push   %ebp
   15e21:	89 e5                	mov    %esp,%ebp
   15e23:	53                   	push   %ebx
   15e24:	83 ec 1c             	sub    $0x1c,%esp
   15e27:	8b 45 0c             	mov    0xc(%ebp),%eax
   15e2a:	8d 5d f0             	lea    0xfffffff0(%ebp),%ebx
   15e2d:	50                   	push   %eax
   15e2e:	53                   	push   %ebx
   15e2f:	ff 15 e4 e2 01 00    	call   *0x1e2e4
   15e35:	8b 45 08             	mov    0x8(%ebp),%eax
   15e38:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
   15e3f:	53                   	push   %ebx
   15e40:	50                   	push   %eax
   15e41:	ff 15 c8 e2 01 00    	call   *0x1e2c8
   15e47:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   15e4a:	c9                   	leave  
   15e4b:	c2 08 00             	ret    $0x8
   15e4e:	89 f6                	mov    %esi,%esi

00015e50 <_NdisInitUnicodeString@8>:
   15e50:	55                   	push   %ebp
   15e51:	89 e5                	mov    %esp,%ebp
   15e53:	c9                   	leave  
   15e54:	ff 25 ec e2 01 00    	jmp    *0x1e2ec
   15e5a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015e60 <_NdisUnicodeStringToAnsiString@8>:
   15e60:	55                   	push   %ebp
   15e61:	89 e5                	mov    %esp,%ebp
   15e63:	83 ec 0c             	sub    $0xc,%esp
   15e66:	8b 45 0c             	mov    0xc(%ebp),%eax
   15e69:	6a 00                	push   $0x0
   15e6b:	50                   	push   %eax
   15e6c:	8b 45 08             	mov    0x8(%ebp),%eax
   15e6f:	50                   	push   %eax
   15e70:	ff 15 f4 e2 01 00    	call   *0x1e2f4
   15e76:	c9                   	leave  
   15e77:	c2 08 00             	ret    $0x8
   15e7a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015e80 <_NdisUpcaseUnicodeString@8>:
   15e80:	55                   	push   %ebp
   15e81:	89 e5                	mov    %esp,%ebp
   15e83:	83 ec 0c             	sub    $0xc,%esp
   15e86:	8b 55 0c             	mov    0xc(%ebp),%edx
   15e89:	8b 45 08             	mov    0x8(%ebp),%eax
   15e8c:	6a 00                	push   $0x0
   15e8e:	52                   	push   %edx
   15e8f:	50                   	push   %eax
   15e90:	ff 15 fc e2 01 00    	call   *0x1e2fc
   15e96:	c9                   	leave  
   15e97:	c2 08 00             	ret    $0x8
   15e9a:	90                   	nop    
   15e9b:	90                   	nop    
   15e9c:	90                   	nop    
   15e9d:	90                   	nop    
   15e9e:	90                   	nop    
   15e9f:	90                   	nop    

00015ea0 <_NdisCompleteQueryStatistics@12>:
   15ea0:	55                   	push   %ebp
   15ea1:	89 e5                	mov    %esp,%ebp
   15ea3:	5d                   	pop    %ebp
   15ea4:	c2 0c 00             	ret    $0xc
   15ea7:	89 f6                	mov    %esi,%esi
   15ea9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015eb0 <_NdisCompleteUnbindAdapter@8>:
   15eb0:	55                   	push   %ebp
   15eb1:	89 e5                	mov    %esp,%ebp
   15eb3:	5d                   	pop    %ebp
   15eb4:	c2 08 00             	ret    $0x8
   15eb7:	89 f6                	mov    %esi,%esi
   15eb9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015ec0 <_NdisInterlockedAddUlong@12>:
   15ec0:	55                   	push   %ebp
   15ec1:	89 e5                	mov    %esp,%ebp
   15ec3:	c9                   	leave  
   15ec4:	ff 25 30 e2 01 00    	jmp    *0x1e230
   15eca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015ed0 <_NdisInterlockedInsertHeadList@12>:
   15ed0:	55                   	push   %ebp
   15ed1:	89 e5                	mov    %esp,%ebp
   15ed3:	c9                   	leave  
   15ed4:	ff 25 34 e2 01 00    	jmp    *0x1e234
   15eda:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015ee0 <_NdisInterlockedInsertTailList@12>:
   15ee0:	55                   	push   %ebp
   15ee1:	89 e5                	mov    %esp,%ebp
   15ee3:	c9                   	leave  
   15ee4:	ff 25 38 e2 01 00    	jmp    *0x1e238
   15eea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015ef0 <_NdisInterlockedRemoveHeadList@8>:
   15ef0:	55                   	push   %ebp
   15ef1:	89 e5                	mov    %esp,%ebp
   15ef3:	c9                   	leave  
   15ef4:	ff 25 3c e2 01 00    	jmp    *0x1e23c
   15efa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00015f00 <_NdisMapFile@12>:
   15f00:	55                   	push   %ebp
   15f01:	89 e5                	mov    %esp,%ebp
   15f03:	5d                   	pop    %ebp
   15f04:	c2 0c 00             	ret    $0xc
   15f07:	89 f6                	mov    %esi,%esi
   15f09:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015f10 <_NDIS_HANDLE_TO_POBJECT>:
   15f10:	55                   	push   %ebp
   15f11:	89 e5                	mov    %esp,%ebp
   15f13:	8b 45 08             	mov    0x8(%ebp),%eax
   15f16:	5d                   	pop    %ebp
   15f17:	c3                   	ret    
   15f18:	90                   	nop    
   15f19:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015f20 <_NDIS_POBJECT_TO_HANDLE>:
   15f20:	55                   	push   %ebp
   15f21:	89 e5                	mov    %esp,%ebp
   15f23:	8b 45 08             	mov    0x8(%ebp),%eax
   15f26:	5d                   	pop    %ebp
   15f27:	c3                   	ret    
   15f28:	90                   	nop    
   15f29:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015f30 <_NdisCloseFile@4>:
   15f30:	55                   	push   %ebp
   15f31:	89 e5                	mov    %esp,%ebp
   15f33:	57                   	push   %edi
   15f34:	83 ec 10             	sub    $0x10,%esp
   15f37:	8b 45 08             	mov    0x8(%ebp),%eax
   15f3a:	89 45 f8             	mov    %eax,0xfffffff8(%ebp)
   15f3d:	8b 00                	mov    (%eax),%eax
   15f3f:	50                   	push   %eax
   15f40:	ff 15 00 e3 01 00    	call   *0x1e300
   15f46:	fc                   	cld    
   15f47:	31 c0                	xor    %eax,%eax
   15f49:	8b 7d f8             	mov    0xfffffff8(%ebp),%edi
   15f4c:	b9 04 00 00 00       	mov    $0x4,%ecx
   15f51:	83 c4 0c             	add    $0xc,%esp
   15f54:	f3 ab                	repz stos %eax,%es:(%edi)
   15f56:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
   15f59:	8b 7d fc             	mov    0xfffffffc(%ebp),%edi
   15f5c:	89 45 08             	mov    %eax,0x8(%ebp)
   15f5f:	c9                   	leave  
   15f60:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   15f66:	8d 76 00             	lea    0x0(%esi),%esi
   15f69:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015f70 <_NdisIMDeInitializeDeviceInstance@4>:
   15f70:	55                   	push   %ebp
   15f71:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   15f76:	89 e5                	mov    %esp,%ebp
   15f78:	5d                   	pop    %ebp
   15f79:	c2 04 00             	ret    $0x4
   15f7c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015f80 <_NdisIMInitializeDeviceInstance@8>:
   15f80:	55                   	push   %ebp
   15f81:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   15f86:	89 e5                	mov    %esp,%ebp
   15f88:	5d                   	pop    %ebp
   15f89:	c2 08 00             	ret    $0x8
   15f8c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015f90 <_NdisIMRegisterLayeredMiniport@16>:
   15f90:	55                   	push   %ebp
   15f91:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   15f96:	89 e5                	mov    %esp,%ebp
   15f98:	5d                   	pop    %ebp
   15f99:	c2 10 00             	ret    $0x10
   15f9c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015fa0 <_NdisMWanIndicateReceive@20>:
   15fa0:	55                   	push   %ebp
   15fa1:	89 e5                	mov    %esp,%ebp
   15fa3:	5d                   	pop    %ebp
   15fa4:	c2 14 00             	ret    $0x14
   15fa7:	89 f6                	mov    %esi,%esi
   15fa9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015fb0 <_NdisMWanIndicateReceiveComplete@4>:
   15fb0:	55                   	push   %ebp
   15fb1:	89 e5                	mov    %esp,%ebp
   15fb3:	5d                   	pop    %ebp
   15fb4:	c2 04 00             	ret    $0x4
   15fb7:	89 f6                	mov    %esi,%esi
   15fb9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015fc0 <_NdisMWanSendComplete@12>:
   15fc0:	55                   	push   %ebp
   15fc1:	89 e5                	mov    %esp,%ebp
   15fc3:	5d                   	pop    %ebp
   15fc4:	c2 0c 00             	ret    $0xc
   15fc7:	89 f6                	mov    %esi,%esi
   15fc9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015fd0 <_NdisOpenFile@24>:
   15fd0:	55                   	push   %ebp
   15fd1:	89 e5                	mov    %esp,%ebp
   15fd3:	57                   	push   %edi
   15fd4:	56                   	push   %esi
   15fd5:	53                   	push   %ebx
   15fd6:	83 ec 44             	sub    $0x44,%esp
   15fd9:	c7 45 c4 00 00 00 00 	movl   $0x0,0xffffffc4(%ebp)
   15fe0:	8b 55 14             	mov    0x14(%ebp),%edx
   15fe3:	8b 75 08             	mov    0x8(%ebp),%esi
   15fe6:	66 c7 45 c0 04 00    	movw   $0x4,0xffffffc0(%ebp)
   15fec:	31 db                	xor    %ebx,%ebx
   15fee:	66 8b 42 02          	mov    0x2(%edx),%ax
   15ff2:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   15ff8:	83 c0 04             	add    $0x4,%eax
   15ffb:	66 89 45 c2          	mov    %ax,0xffffffc2(%ebp)
   15fff:	25 ff ff 00 00       	and    $0xffff,%eax
   16004:	50                   	push   %eax
   16005:	6a 00                	push   $0x0
   16007:	ff 15 24 e2 01 00    	call   *0x1e224
   1600d:	85 c0                	test   %eax,%eax
   1600f:	89 45 c4             	mov    %eax,0xffffffc4(%ebp)
   16012:	5f                   	pop    %edi
   16013:	5a                   	pop    %edx
   16014:	0f 84 f8 00 00 00    	je     16112 <_NdisOpenFile@24+0x142>
   1601a:	51                   	push   %ecx
   1601b:	51                   	push   %ecx
   1601c:	6a 10                	push   $0x10
   1601e:	6a 00                	push   $0x0
   16020:	ff 15 24 e2 01 00    	call   *0x1e224
   16026:	89 c3                	mov    %eax,%ebx
   16028:	58                   	pop    %eax
   16029:	85 db                	test   %ebx,%ebx
   1602b:	5a                   	pop    %edx
   1602c:	0f 84 e0 00 00 00    	je     16112 <_NdisOpenFile@24+0x142>
   16032:	fc                   	cld    
   16033:	31 c0                	xor    %eax,%eax
   16035:	b9 04 00 00 00       	mov    $0x4,%ecx
   1603a:	89 df                	mov    %ebx,%edi
   1603c:	f3 ab                	repz stos %eax,%es:(%edi)
   1603e:	50                   	push   %eax
   1603f:	8b 45 c0             	mov    0xffffffc0(%ebp),%eax
   16042:	25 ff ff 00 00       	and    $0xffff,%eax
   16047:	50                   	push   %eax
   16048:	a1 40 70 01 00       	mov    0x17040,%eax
   1604d:	50                   	push   %eax
   1604e:	8b 45 c4             	mov    0xffffffc4(%ebp),%eax
   16051:	50                   	push   %eax
   16052:	e8 b9 0a 00 00       	call   16b10 <_memmove>
   16057:	5f                   	pop    %edi
   16058:	8b 4d 14             	mov    0x14(%ebp),%ecx
   1605b:	58                   	pop    %eax
   1605c:	8d 45 c0             	lea    0xffffffc0(%ebp),%eax
   1605f:	51                   	push   %ecx
   16060:	50                   	push   %eax
   16061:	ff 15 cc e2 01 00    	call   *0x1e2cc
   16067:	85 c0                	test   %eax,%eax
   16069:	89 06                	mov    %eax,(%esi)
   1606b:	5f                   	pop    %edi
   1606c:	5a                   	pop    %edx
   1606d:	0f 88 a5 00 00 00    	js     16118 <_NdisOpenFile@24+0x148>
   16073:	8d 55 c0             	lea    0xffffffc0(%ebp),%edx
   16076:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   16079:	89 55 d0             	mov    %edx,0xffffffd0(%ebp)
   1607c:	c7 45 c8 18 00 00 00 	movl   $0x18,0xffffffc8(%ebp)
   16083:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)
   1608a:	c7 45 d4 40 00 00 00 	movl   $0x40,0xffffffd4(%ebp)
   16091:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
   16098:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   1609f:	51                   	push   %ecx
   160a0:	6a 00                	push   $0x0
   160a2:	6a 00                	push   $0x0
   160a4:	6a 20                	push   $0x20
   160a6:	6a 01                	push   $0x1
   160a8:	6a 01                	push   $0x1
   160aa:	6a 00                	push   $0x0
   160ac:	6a 00                	push   $0x0
   160ae:	50                   	push   %eax
   160af:	8d 45 c8             	lea    0xffffffc8(%ebp),%eax
   160b2:	50                   	push   %eax
   160b3:	68 01 00 10 00       	push   $0x100001
   160b8:	53                   	push   %ebx
   160b9:	ff 15 04 e3 01 00    	call   *0x1e304
   160bf:	89 06                	mov    %eax,(%esi)
   160c1:	8b 45 c4             	mov    0xffffffc4(%ebp),%eax
   160c4:	5a                   	pop    %edx
   160c5:	85 c0                	test   %eax,%eax
   160c7:	74 56                	je     1611f <_NdisOpenFile@24+0x14f>
   160c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   160d0:	83 ec 0c             	sub    $0xc,%esp
   160d3:	50                   	push   %eax
   160d4:	ff 15 2c e2 01 00    	call   *0x1e22c
   160da:	8b 06                	mov    (%esi),%eax
   160dc:	83 c4 0c             	add    $0xc,%esp
   160df:	c1 e8 1f             	shr    $0x1f,%eax
   160e2:	85 db                	test   %ebx,%ebx
   160e4:	0f 95 c2             	setne  %dl
   160e7:	c7 45 c4 00 00 00 00 	movl   $0x0,0xffffffc4(%ebp)
   160ee:	85 c2                	test   %eax,%edx
   160f0:	74 3b                	je     1612d <_NdisOpenFile@24+0x15d>
   160f2:	83 ec 0c             	sub    $0xc,%esp
   160f5:	53                   	push   %ebx
   160f6:	ff 15 2c e2 01 00    	call   *0x1e22c
   160fc:	8b 45 0c             	mov    0xc(%ebp),%eax
   160ff:	83 c4 0c             	add    $0xc,%esp
   16102:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   16108:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1610b:	5b                   	pop    %ebx
   1610c:	5e                   	pop    %esi
   1610d:	5f                   	pop    %edi
   1610e:	5d                   	pop    %ebp
   1610f:	c2 18 00             	ret    $0x18
   16112:	c7 06 9a 00 00 c0    	movl   $0xc000009a,(%esi)
   16118:	8b 45 c4             	mov    0xffffffc4(%ebp),%eax
   1611b:	85 c0                	test   %eax,%eax
   1611d:	75 b1                	jne    160d0 <_NdisOpenFile@24+0x100>
   1611f:	8b 06                	mov    (%esi),%eax
   16121:	c1 e8 1f             	shr    $0x1f,%eax
   16124:	85 db                	test   %ebx,%ebx
   16126:	0f 95 c2             	setne  %dl
   16129:	85 c2                	test   %eax,%edx
   1612b:	75 c5                	jne    160f2 <_NdisOpenFile@24+0x122>
   1612d:	8b 55 0c             	mov    0xc(%ebp),%edx
   16130:	89 1a                	mov    %ebx,(%edx)
   16132:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   16135:	5b                   	pop    %ebx
   16136:	5e                   	pop    %esi
   16137:	5f                   	pop    %edi
   16138:	5d                   	pop    %ebp
   16139:	c2 18 00             	ret    $0x18
   1613c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016140 <_NdisSystemProcessorCount@0>:
   16140:	55                   	push   %ebp
   16141:	b8 01 00 00 00       	mov    $0x1,%eax
   16146:	89 e5                	mov    %esp,%ebp
   16148:	5d                   	pop    %ebp
   16149:	c3                   	ret    
   1614a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00016150 <_NdisUnmapFile@4>:
   16150:	55                   	push   %ebp
   16151:	89 e5                	mov    %esp,%ebp
   16153:	5d                   	pop    %ebp
   16154:	c2 04 00             	ret    $0x4
   16157:	89 f6                	mov    %esi,%esi
   16159:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016160 <_NdisCompletePnPEvent@12>:
   16160:	55                   	push   %ebp
   16161:	89 e5                	mov    %esp,%ebp
   16163:	5d                   	pop    %ebp
   16164:	c2 0c 00             	ret    $0xc
   16167:	89 f6                	mov    %esi,%esi
   16169:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016170 <_NdisConvertStringToAtmAddress@12>:
   16170:	55                   	push   %ebp
   16171:	89 e5                	mov    %esp,%ebp
   16173:	5d                   	pop    %ebp
   16174:	c2 0c 00             	ret    $0xc
   16177:	89 f6                	mov    %esi,%esi
   16179:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016180 <_NdisGetCurrentProcessorCounts@12>:
   16180:	55                   	push   %ebp
   16181:	89 e5                	mov    %esp,%ebp
   16183:	5d                   	pop    %ebp
   16184:	c2 0c 00             	ret    $0xc
   16187:	89 f6                	mov    %esi,%esi
   16189:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016190 <_NdisGetDriverHandle@8>:
   16190:	55                   	push   %ebp
   16191:	89 e5                	mov    %esp,%ebp
   16193:	5d                   	pop    %ebp
   16194:	c2 08 00             	ret    $0x8
   16197:	89 f6                	mov    %esi,%esi
   16199:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000161a0 <_NdisGetReceivedPacket@8>:
   161a0:	55                   	push   %ebp
   161a1:	31 c0                	xor    %eax,%eax
   161a3:	89 e5                	mov    %esp,%ebp
   161a5:	5d                   	pop    %ebp
   161a6:	c2 08 00             	ret    $0x8
   161a9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000161b0 <_NdisGetSystemUptime@4>:
   161b0:	55                   	push   %ebp
   161b1:	89 e5                	mov    %esp,%ebp
   161b3:	5d                   	pop    %ebp
   161b4:	c2 04 00             	ret    $0x4
   161b7:	89 f6                	mov    %esi,%esi
   161b9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000161c0 <_NdisInterlockedDecrement@4>:
   161c0:	55                   	push   %ebp
   161c1:	89 e5                	mov    %esp,%ebp
   161c3:	51                   	push   %ecx
   161c4:	51                   	push   %ecx
   161c5:	8b 4d 08             	mov    0x8(%ebp),%ecx
   161c8:	ff 15 04 e2 01 00    	call   *0x1e204
   161ce:	c9                   	leave  
   161cf:	c2 04 00             	ret    $0x4
   161d2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   161d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000161e0 <_NdisInterlockedIncrement@4>:
   161e0:	55                   	push   %ebp
   161e1:	89 e5                	mov    %esp,%ebp
   161e3:	50                   	push   %eax
   161e4:	50                   	push   %eax
   161e5:	8b 4d 08             	mov    0x8(%ebp),%ecx
   161e8:	ff 15 08 e2 01 00    	call   *0x1e208
   161ee:	c9                   	leave  
   161ef:	c2 04 00             	ret    $0x4
   161f2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   161f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016200 <_NdisInterlockedPopEntrySList@8>:
   16200:	55                   	push   %ebp
   16201:	89 e5                	mov    %esp,%ebp
   16203:	50                   	push   %eax
   16204:	50                   	push   %eax
   16205:	8b 4d 08             	mov    0x8(%ebp),%ecx
   16208:	ff 15 0c e2 01 00    	call   *0x1e20c
   1620e:	c9                   	leave  
   1620f:	c2 08 00             	ret    $0x8
   16212:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   16219:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016220 <_NdisInterlockedPushEntrySList@12>:
   16220:	55                   	push   %ebp
   16221:	89 e5                	mov    %esp,%ebp
   16223:	50                   	push   %eax
   16224:	50                   	push   %eax
   16225:	8b 4d 08             	mov    0x8(%ebp),%ecx
   16228:	8b 55 0c             	mov    0xc(%ebp),%edx
   1622b:	ff 15 10 e2 01 00    	call   *0x1e210
   16231:	c9                   	leave  
   16232:	c2 0c 00             	ret    $0xc
   16235:	8d 74 26 00          	lea    0x0(%esi),%esi
   16239:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016240 <_NdisMDeregisterDevice@4>:
   16240:	55                   	push   %ebp
   16241:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16246:	89 e5                	mov    %esp,%ebp
   16248:	5d                   	pop    %ebp
   16249:	c2 04 00             	ret    $0x4
   1624c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016250 <_NdisMGetDeviceProperty@24>:
   16250:	55                   	push   %ebp
   16251:	89 e5                	mov    %esp,%ebp
   16253:	5d                   	pop    %ebp
   16254:	c2 18 00             	ret    $0x18
   16257:	89 f6                	mov    %esi,%esi
   16259:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016260 <_NdisMInitializeScatterGatherDma@12>:
   16260:	55                   	push   %ebp
   16261:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16266:	89 e5                	mov    %esp,%ebp
   16268:	5d                   	pop    %ebp
   16269:	c2 0c 00             	ret    $0xc
   1626c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016270 <_NdisMPromoteMiniport@4>:
   16270:	55                   	push   %ebp
   16271:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16276:	89 e5                	mov    %esp,%ebp
   16278:	5d                   	pop    %ebp
   16279:	c2 04 00             	ret    $0x4
   1627c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016280 <_NdisMQueryAdapterInstanceName@8>:
   16280:	55                   	push   %ebp
   16281:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16286:	89 e5                	mov    %esp,%ebp
   16288:	5d                   	pop    %ebp
   16289:	c2 08 00             	ret    $0x8
   1628c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016290 <_NdisMRegisterDevice@24>:
   16290:	55                   	push   %ebp
   16291:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16296:	89 e5                	mov    %esp,%ebp
   16298:	5d                   	pop    %ebp
   16299:	c2 18 00             	ret    $0x18
   1629c:	8d 74 26 00          	lea    0x0(%esi),%esi

000162a0 <_NdisMRegisterUnloadHandler@8>:
   162a0:	55                   	push   %ebp
   162a1:	89 e5                	mov    %esp,%ebp
   162a3:	5d                   	pop    %ebp
   162a4:	c2 08 00             	ret    $0x8
   162a7:	89 f6                	mov    %esi,%esi
   162a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000162b0 <_NdisMRemoveMiniport@4>:
   162b0:	55                   	push   %ebp
   162b1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   162b6:	89 e5                	mov    %esp,%ebp
   162b8:	5d                   	pop    %ebp
   162b9:	c2 04 00             	ret    $0x4
   162bc:	8d 74 26 00          	lea    0x0(%esi),%esi

000162c0 <_NdisMSetMiniportSecondary@8>:
   162c0:	55                   	push   %ebp
   162c1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   162c6:	89 e5                	mov    %esp,%ebp
   162c8:	5d                   	pop    %ebp
   162c9:	c2 08 00             	ret    $0x8
   162cc:	8d 74 26 00          	lea    0x0(%esi),%esi

000162d0 <_NdisQueryAdapterInstanceName@8>:
   162d0:	55                   	push   %ebp
   162d1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   162d6:	89 e5                	mov    %esp,%ebp
   162d8:	5d                   	pop    %ebp
   162d9:	c2 08 00             	ret    $0x8
   162dc:	8d 74 26 00          	lea    0x0(%esi),%esi

000162e0 <_NdisReadPcmciaAttributeMemory@16>:
   162e0:	55                   	push   %ebp
   162e1:	31 c0                	xor    %eax,%eax
   162e3:	89 e5                	mov    %esp,%ebp
   162e5:	5d                   	pop    %ebp
   162e6:	c2 10 00             	ret    $0x10
   162e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000162f0 <_NdisReleaseReadWriteLock@8>:
   162f0:	55                   	push   %ebp
   162f1:	89 e5                	mov    %esp,%ebp
   162f3:	5d                   	pop    %ebp
   162f4:	c2 08 00             	ret    $0x8
   162f7:	89 f6                	mov    %esi,%esi
   162f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016300 <_NdisWritePcmciaAttributeMemory@16>:
   16300:	55                   	push   %ebp
   16301:	31 c0                	xor    %eax,%eax
   16303:	89 e5                	mov    %esp,%ebp
   16305:	5d                   	pop    %ebp
   16306:	c2 10 00             	ret    $0x10
   16309:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00016310 <_NdisIMAssociateMiniport@8>:
   16310:	55                   	push   %ebp
   16311:	89 e5                	mov    %esp,%ebp
   16313:	5d                   	pop    %ebp
   16314:	c2 08 00             	ret    $0x8
   16317:	89 f6                	mov    %esi,%esi
   16319:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016320 <_NdisIMCancelInitializeDeviceInstance@8>:
   16320:	55                   	push   %ebp
   16321:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16326:	89 e5                	mov    %esp,%ebp
   16328:	5d                   	pop    %ebp
   16329:	c2 08 00             	ret    $0x8
   1632c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016330 <_NdisIMCopySendCompletePerPacketInfo@8>:
   16330:	55                   	push   %ebp
   16331:	89 e5                	mov    %esp,%ebp
   16333:	5d                   	pop    %ebp
   16334:	c2 08 00             	ret    $0x8
   16337:	89 f6                	mov    %esi,%esi
   16339:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016340 <_NdisIMCopySendPerPacketInfo@8>:
   16340:	55                   	push   %ebp
   16341:	89 e5                	mov    %esp,%ebp
   16343:	5d                   	pop    %ebp
   16344:	c2 08 00             	ret    $0x8
   16347:	89 f6                	mov    %esi,%esi
   16349:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016350 <_NdisIMDeregisterLayeredMiniport@4>:
   16350:	55                   	push   %ebp
   16351:	89 e5                	mov    %esp,%ebp
   16353:	5d                   	pop    %ebp
   16354:	c2 04 00             	ret    $0x4
   16357:	89 f6                	mov    %esi,%esi
   16359:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016360 <_NdisIMGetBindingContext@4>:
   16360:	55                   	push   %ebp
   16361:	31 c0                	xor    %eax,%eax
   16363:	89 e5                	mov    %esp,%ebp
   16365:	5d                   	pop    %ebp
   16366:	c2 04 00             	ret    $0x4
   16369:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00016370 <_NdisIMGetDeviceContext@4>:
   16370:	55                   	push   %ebp
   16371:	31 c0                	xor    %eax,%eax
   16373:	89 e5                	mov    %esp,%ebp
   16375:	5d                   	pop    %ebp
   16376:	c2 04 00             	ret    $0x4
   16379:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00016380 <_NdisIMInitializeDeviceInstanceEx@12>:
   16380:	55                   	push   %ebp
   16381:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   16386:	89 e5                	mov    %esp,%ebp
   16388:	5d                   	pop    %ebp
   16389:	c2 0c 00             	ret    $0xc
   1638c:	90                   	nop    
   1638d:	90                   	nop    
   1638e:	90                   	nop    
   1638f:	90                   	nop    

00016390 <_MiniportTimerDpc@16>:
   16390:	55                   	push   %ebp
   16391:	89 e5                	mov    %esp,%ebp
   16393:	8b 55 0c             	mov    0xc(%ebp),%edx
   16396:	c7 45 14 00 00 00 00 	movl   $0x0,0x14(%ebp)
   1639d:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
   163a4:	8b 42 4c             	mov    0x4c(%edx),%eax
   163a7:	c7 45 08 00 00 00 00 	movl   $0x0,0x8(%ebp)
   163ae:	89 45 0c             	mov    %eax,0xc(%ebp)
   163b1:	c9                   	leave  
   163b2:	ff 62 48             	jmp    *0x48(%edx)
   163b5:	8d 74 26 00          	lea    0x0(%esi),%esi
   163b9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000163c0 <_NdisCancelTimer@8>:
   163c0:	55                   	push   %ebp
   163c1:	89 e5                	mov    %esp,%ebp
   163c3:	83 ec 14             	sub    $0x14,%esp
   163c6:	8b 45 08             	mov    0x8(%ebp),%eax
   163c9:	50                   	push   %eax
   163ca:	ff 15 68 e2 01 00    	call   *0x1e268
   163d0:	8b 55 0c             	mov    0xc(%ebp),%edx
   163d3:	88 02                	mov    %al,(%edx)
   163d5:	c9                   	leave  
   163d6:	c2 08 00             	ret    $0x8
   163d9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000163e0 <_NdisGetCurrentSystemTime@4>:
   163e0:	55                   	push   %ebp
   163e1:	89 e5                	mov    %esp,%ebp
   163e3:	c9                   	leave  
   163e4:	ff 25 84 e2 01 00    	jmp    *0x1e284
   163ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000163f0 <_NdisInitializeTimer@12>:
   163f0:	55                   	push   %ebp
   163f1:	89 e5                	mov    %esp,%ebp
   163f3:	57                   	push   %edi
   163f4:	56                   	push   %esi
   163f5:	53                   	push   %ebx
   163f6:	83 ec 18             	sub    $0x18,%esp
   163f9:	8b 5d 08             	mov    0x8(%ebp),%ebx
   163fc:	8b 7d 0c             	mov    0xc(%ebp),%edi
   163ff:	8b 75 10             	mov    0x10(%ebp),%esi
   16402:	53                   	push   %ebx
   16403:	ff 15 7c e2 01 00    	call   *0x1e27c
   16409:	83 c3 28             	add    $0x28,%ebx
   1640c:	89 75 10             	mov    %esi,0x10(%ebp)
   1640f:	89 7d 0c             	mov    %edi,0xc(%ebp)
   16412:	89 5d 08             	mov    %ebx,0x8(%ebp)
   16415:	83 c4 0c             	add    $0xc,%esp
   16418:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1641b:	5b                   	pop    %ebx
   1641c:	5e                   	pop    %esi
   1641d:	5f                   	pop    %edi
   1641e:	5d                   	pop    %ebp
   1641f:	ff 25 70 e2 01 00    	jmp    *0x1e270
   16425:	8d 74 26 00          	lea    0x0(%esi),%esi
   16429:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00016430 <_NdisMCancelTimer@8>:
   16430:	55                   	push   %ebp
   16431:	89 e5                	mov    %esp,%ebp
   16433:	83 ec 14             	sub    $0x14,%esp
   16436:	8b 55 08             	mov    0x8(%ebp),%edx
   16439:	52                   	push   %edx
   1643a:	ff 15 68 e2 01 00    	call   *0x1e268
   16440:	8b 55 0c             	mov    0xc(%ebp),%edx
   16443:	88 02                	mov    %al,(%edx)
   16445:	c9                   	leave  
   16446:	c2 08 00             	ret    $0x8
   16449:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00016450 <_NdisMInitializeTimer@16>:
   16450:	55                   	push   %ebp
   16451:	89 e5                	mov    %esp,%ebp
   16453:	53                   	push   %ebx
   16454:	83 ec 10             	sub    $0x10,%esp
   16457:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1645a:	53                   	push   %ebx
   1645b:	ff 15 7c e2 01 00    	call   *0x1e27c
   16461:	59                   	pop    %ecx
   16462:	58                   	pop    %eax
   16463:	8d 43 28             	lea    0x28(%ebx),%eax
   16466:	53                   	push   %ebx
   16467:	68 90 63 01 00       	push   $0x16390
   1646c:	50                   	push   %eax
   1646d:	ff 15 70 e2 01 00    	call   *0x1e270
   16473:	8b 45 10             	mov    0x10(%ebp),%eax
   16476:	89 43 48             	mov    %eax,0x48(%ebx)
   16479:	8b 45 14             	mov    0x14(%ebp),%eax
   1647c:	89 43 4c             	mov    %eax,0x4c(%ebx)
   1647f:	8b 45 0c             	mov    0xc(%ebp),%eax
   16482:	89 43 50             	mov    %eax,0x50(%ebx)
   16485:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   16488:	c9                   	leave  
   16489:	c2 10 00             	ret    $0x10
   1648c:	8d 74 26 00          	lea    0x0(%esi),%esi

00016490 <_NdisMSetPeriodicTimer@8>:
   16490:	55                   	push   %ebp
   16491:	31 c9                	xor    %ecx,%ecx
   16493:	89 e5                	mov    %esp,%ebp
   16495:	56                   	push   %esi
   16496:	53                   	push   %ebx
   16497:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1649a:	8b 75 08             	mov    0x8(%ebp),%esi
   1649d:	83 ec 0c             	sub    $0xc,%esp
   164a0:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
   164a3:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164a6:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164a9:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164ac:	c1 e0 04             	shl    $0x4,%eax
   164af:	f7 d8                	neg    %eax
   164b1:	89 c2                	mov    %eax,%edx
   164b3:	8d 46 28             	lea    0x28(%esi),%eax
   164b6:	50                   	push   %eax
   164b7:	53                   	push   %ebx
   164b8:	51                   	push   %ecx
   164b9:	52                   	push   %edx
   164ba:	56                   	push   %esi
   164bb:	ff 15 98 e2 01 00    	call   *0x1e298
   164c1:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   164c4:	5b                   	pop    %ebx
   164c5:	5e                   	pop    %esi
   164c6:	5d                   	pop    %ebp
   164c7:	c2 08 00             	ret    $0x8
   164ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000164d0 <_NdisMSetTimer@8>:
   164d0:	55                   	push   %ebp
   164d1:	89 e5                	mov    %esp,%ebp
   164d3:	53                   	push   %ebx
   164d4:	50                   	push   %eax
   164d5:	31 c9                	xor    %ecx,%ecx
   164d7:	8b 45 0c             	mov    0xc(%ebp),%eax
   164da:	8b 5d 08             	mov    0x8(%ebp),%ebx
   164dd:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164e0:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164e3:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164e6:	8d 04 80             	lea    (%eax,%eax,4),%eax
   164e9:	c1 e0 04             	shl    $0x4,%eax
   164ec:	f7 d8                	neg    %eax
   164ee:	89 c2                	mov    %eax,%edx
   164f0:	8d 43 28             	lea    0x28(%ebx),%eax
   164f3:	50                   	push   %eax
   164f4:	51                   	push   %ecx
   164f5:	52                   	push   %edx
   164f6:	53                   	push   %ebx
   164f7:	ff 15 94 e2 01 00    	call   *0x1e294
   164fd:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   16500:	c9                   	leave  
   16501:	c2 08 00             	ret    $0x8
   16504:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1650a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00016510 <_NdisSetTimer@8>:
   16510:	55                   	push   %ebp
   16511:	89 e5                	mov    %esp,%ebp
   16513:	53                   	push   %ebx
   16514:	50                   	push   %eax
   16515:	31 c9                	xor    %ecx,%ecx
   16517:	8b 45 0c             	mov    0xc(%ebp),%eax
   1651a:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1651d:	8d 04 80             	lea    (%eax,%eax,4),%eax
   16520:	8d 04 80             	lea    (%eax,%eax,4),%eax
   16523:	8d 04 80             	lea    (%eax,%eax,4),%eax
   16526:	8d 04 80             	lea    (%eax,%eax,4),%eax
   16529:	c1 e0 04             	shl    $0x4,%eax
   1652c:	f7 d8                	neg    %eax
   1652e:	89 c2                	mov    %eax,%edx
   16530:	8d 43 28             	lea    0x28(%ebx),%eax
   16533:	50                   	push   %eax
   16534:	51                   	push   %ecx
   16535:	52                   	push   %edx
   16536:	53                   	push   %ebx
   16537:	ff 15 94 e2 01 00    	call   *0x1e294
   1653d:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   16540:	c9                   	leave  
   16541:	c2 08 00             	ret    $0x8
   16544:	90                   	nop    
   16545:	90                   	nop    
   16546:	90                   	nop    
   16547:	90                   	nop    
   16548:	90                   	nop    
   16549:	90                   	nop    
   1654a:	90                   	nop    
   1654b:	90                   	nop    
   1654c:	90                   	nop    
   1654d:	90                   	nop    
   1654e:	90                   	nop    
   1654f:	90                   	nop    

00016550 <_EthCreateFilter@12>:
   16550:	55                   	push   %ebp
   16551:	89 e5                	mov    %esp,%ebp
   16553:	56                   	push   %esi
   16554:	53                   	push   %ebx
   16555:	8b 75 0c             	mov    0xc(%ebp),%esi
   16558:	53                   	push   %ebx
   16559:	53                   	push   %ebx
   1655a:	6a 50                	push   $0x50
   1655c:	6a 00                	push   $0x0
   1655e:	ff 15 24 e2 01 00    	call   *0x1e224
   16564:	89 c3                	mov    %eax,%ebx
   16566:	5a                   	pop    %edx
   16567:	31 c0                	xor    %eax,%eax
   16569:	59                   	pop    %ecx
   1656a:	85 db                	test   %ebx,%ebx
   1656c:	74 28                	je     16596 <_EthCreateFilter@12+0x46>
   1656e:	50                   	push   %eax
   1656f:	6a 50                	push   $0x50
   16571:	6a 00                	push   $0x0
   16573:	53                   	push   %ebx
   16574:	e8 f7 00 00 00       	call   16670 <_memset>
   16579:	8b 45 08             	mov    0x8(%ebp),%eax
   1657c:	89 43 20             	mov    %eax,0x20(%ebx)
   1657f:	8b 06                	mov    (%esi),%eax
   16581:	89 43 28             	mov    %eax,0x28(%ebx)
   16584:	66 8b 46 04          	mov    0x4(%esi),%ax
   16588:	66 89 43 2c          	mov    %ax,0x2c(%ebx)
   1658c:	8b 45 10             	mov    0x10(%ebp),%eax
   1658f:	89 18                	mov    %ebx,(%eax)
   16591:	b8 01 00 00 00       	mov    $0x1,%eax
   16596:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   16599:	5b                   	pop    %ebx
   1659a:	5e                   	pop    %esi
   1659b:	5d                   	pop    %ebp
   1659c:	c2 0c 00             	ret    $0xc
   1659f:	90                   	nop    

000165a0 <_EthDeleteFilter@4>:
   165a0:	55                   	push   %ebp
   165a1:	89 e5                	mov    %esp,%ebp
   165a3:	c9                   	leave  
   165a4:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   165aa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000165b0 <_EthFilterDprIndicateReceive@32>:
   165b0:	55                   	push   %ebp
   165b1:	89 e5                	mov    %esp,%ebp
   165b3:	51                   	push   %ecx
   165b4:	51                   	push   %ecx
   165b5:	8b 45 08             	mov    0x8(%ebp),%eax
   165b8:	85 c0                	test   %eax,%eax
   165ba:	74 22                	je     165de <_EthFilterDprIndicateReceive@32+0x2e>
   165bc:	8b 4d 24             	mov    0x24(%ebp),%ecx
   165bf:	52                   	push   %edx
   165c0:	8b 55 20             	mov    0x20(%ebp),%edx
   165c3:	51                   	push   %ecx
   165c4:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
   165c7:	52                   	push   %edx
   165c8:	8b 55 18             	mov    0x18(%ebp),%edx
   165cb:	51                   	push   %ecx
   165cc:	8b 4d 14             	mov    0x14(%ebp),%ecx
   165cf:	52                   	push   %edx
   165d0:	8b 55 0c             	mov    0xc(%ebp),%edx
   165d3:	51                   	push   %ecx
   165d4:	52                   	push   %edx
   165d5:	8b 40 08             	mov    0x8(%eax),%eax
   165d8:	50                   	push   %eax
   165d9:	e8 f2 d5 ff ff       	call   13bd0 <_MiniIndicateData>
   165de:	c9                   	leave  
   165df:	c2 20 00             	ret    $0x20
   165e2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   165e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000165f0 <_EthFilterDprIndicateReceiveComplete@4>:
   165f0:	55                   	push   %ebp
   165f1:	89 e5                	mov    %esp,%ebp
   165f3:	57                   	push   %edi
   165f4:	56                   	push   %esi
   165f5:	53                   	push   %ebx
   165f6:	83 ec 0c             	sub    $0xc,%esp
   165f9:	8b 45 08             	mov    0x8(%ebp),%eax
   165fc:	85 c0                	test   %eax,%eax
   165fe:	74 51                	je     16651 <_EthFilterDprIndicateReceiveComplete@4+0x61>
   16600:	8b 58 08             	mov    0x8(%eax),%ebx
   16603:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   16606:	51                   	push   %ecx
   16607:	8d 7b 30             	lea    0x30(%ebx),%edi
   1660a:	51                   	push   %ecx
   1660b:	50                   	push   %eax
   1660c:	57                   	push   %edi
   1660d:	ff 15 dc e1 01 00    	call   *0x1e1dc
   16613:	8b b3 28 05 00 00    	mov    0x528(%ebx),%esi
   16619:	58                   	pop    %eax
   1661a:	81 c3 28 05 00 00    	add    $0x528,%ebx
   16620:	5a                   	pop    %edx
   16621:	eb 1b                	jmp    1663e <_EthFilterDprIndicateReceiveComplete@4+0x4e>
   16623:	8d 86 44 ff ff ff    	lea    0xffffff44(%esi),%eax
   16629:	83 ec 0c             	sub    $0xc,%esp
   1662c:	8b 90 cc 00 00 00    	mov    0xcc(%eax),%edx
   16632:	8b 40 10             	mov    0x10(%eax),%eax
   16635:	50                   	push   %eax
   16636:	ff 52 34             	call   *0x34(%edx)
   16639:	8b 36                	mov    (%esi),%esi
   1663b:	83 c4 0c             	add    $0xc,%esp
   1663e:	39 f3                	cmp    %esi,%ebx
   16640:	75 e1                	jne    16623 <_EthFilterDprIndicateReceiveComplete@4+0x33>
   16642:	31 c0                	xor    %eax,%eax
   16644:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   16647:	53                   	push   %ebx
   16648:	53                   	push   %ebx
   16649:	50                   	push   %eax
   1664a:	57                   	push   %edi
   1664b:	ff 15 e0 e1 01 00    	call   *0x1e1e0
   16651:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   16654:	5b                   	pop    %ebx
   16655:	5e                   	pop    %esi
   16656:	5f                   	pop    %edi
   16657:	5d                   	pop    %ebp
   16658:	c2 04 00             	ret    $0x4
   1665b:	90                   	nop    
   1665c:	90                   	nop    
   1665d:	90                   	nop    
   1665e:	90                   	nop    
   1665f:	90                   	nop    

00016660 <_KeInitializeSpinLock@4>:
   16660:	ff 25 78 e2 01 00    	jmp    *0x1e278
   16666:	90                   	nop    
   16667:	90                   	nop    
	...

00016670 <_memset>:
   16670:	ff 25 24 e3 01 00    	jmp    *0x1e324
   16676:	90                   	nop    
   16677:	90                   	nop    
	...

00016680 <_KeBugCheck@4>:
   16680:	ff 25 64 e2 01 00    	jmp    *0x1e264
   16686:	90                   	nop    
   16687:	90                   	nop    
	...

00016690 <_ExAllocatePool@8>:
   16690:	ff 25 24 e2 01 00    	jmp    *0x1e224
   16696:	90                   	nop    
   16697:	90                   	nop    
	...

000166a0 <_ExFreePool@4>:
   166a0:	ff 25 2c e2 01 00    	jmp    *0x1e22c
   166a6:	90                   	nop    
   166a7:	90                   	nop    
	...

000166b0 <_MmMapLockedPages@8>:
   166b0:	ff 25 b8 e2 01 00    	jmp    *0x1e2b8
   166b6:	90                   	nop    
   166b7:	90                   	nop    
	...

000166c0 <_MmMapLockedPagesSpecifyCache@24>:
   166c0:	ff 25 bc e2 01 00    	jmp    *0x1e2bc
   166c6:	90                   	nop    
   166c7:	90                   	nop    
	...

000166d0 <_memcpy>:
   166d0:	ff 25 1c e3 01 00    	jmp    *0x1e31c
   166d6:	90                   	nop    
   166d7:	90                   	nop    
	...

000166e0 <_ZwSetValueKey@24>:
   166e0:	ff 25 18 e3 01 00    	jmp    *0x1e318
   166e6:	90                   	nop    
   166e7:	90                   	nop    
	...

000166f0 <_ZwClose@4>:
   166f0:	ff 25 00 e3 01 00    	jmp    *0x1e300
   166f6:	90                   	nop    
   166f7:	90                   	nop    
	...

00016700 <_ZwDuplicateObject@28>:
   16700:	ff 25 08 e3 01 00    	jmp    *0x1e308
   16706:	90                   	nop    
   16707:	90                   	nop    
	...

00016710 <_RtlInitUnicodeString@8>:
   16710:	ff 25 ec e2 01 00    	jmp    *0x1e2ec
   16716:	90                   	nop    
   16717:	90                   	nop    
	...

00016720 <_ZwOpenKey@12>:
   16720:	ff 25 10 e3 01 00    	jmp    *0x1e310
   16726:	90                   	nop    
   16727:	90                   	nop    
	...

00016730 <_ZwQueryValueKey@24>:
   16730:	ff 25 14 e3 01 00    	jmp    *0x1e314
   16736:	90                   	nop    
   16737:	90                   	nop    
	...

00016740 <_ExInterlockedInsertTailList@12>:
   16740:	ff 25 38 e2 01 00    	jmp    *0x1e238
   16746:	90                   	nop    
   16747:	90                   	nop    
	...

00016750 <_RtlUnicodeStringToInteger@12>:
   16750:	ff 25 f8 e2 01 00    	jmp    *0x1e2f8
   16756:	90                   	nop    
   16757:	90                   	nop    
	...

00016760 <_ZwEnumerateKey@24>:
   16760:	ff 25 0c e3 01 00    	jmp    *0x1e30c
   16766:	90                   	nop    
   16767:	90                   	nop    
	...

00016770 <_wcslen>:
   16770:	ff 25 30 e3 01 00    	jmp    *0x1e330
   16776:	90                   	nop    
   16777:	90                   	nop    
	...

00016780 <_wcsncmp>:
   16780:	ff 25 38 e3 01 00    	jmp    *0x1e338
   16786:	90                   	nop    
   16787:	90                   	nop    
	...

00016790 <_wcscpy>:
   16790:	ff 25 2c e3 01 00    	jmp    *0x1e32c
   16796:	90                   	nop    
   16797:	90                   	nop    
	...

000167a0 <_wcsncpy>:
   167a0:	ff 25 3c e3 01 00    	jmp    *0x1e33c
   167a6:	90                   	nop    
   167a7:	90                   	nop    
	...

000167b0 <@KefAcquireSpinLockAtDpcLevel@4>:
   167b0:	ff 25 1c e2 01 00    	jmp    *0x1e21c
   167b6:	90                   	nop    
   167b7:	90                   	nop    
	...

000167c0 <@KefReleaseSpinLockFromDpcLevel@4>:
   167c0:	ff 25 20 e2 01 00    	jmp    *0x1e220
   167c6:	90                   	nop    
   167c7:	90                   	nop    
	...

000167d0 <_KeInitializeEvent@12>:
   167d0:	ff 25 74 e2 01 00    	jmp    *0x1e274
   167d6:	90                   	nop    
   167d7:	90                   	nop    
	...

000167e0 <_KeResetEvent@4>:
   167e0:	ff 25 8c e2 01 00    	jmp    *0x1e28c
   167e6:	90                   	nop    
   167e7:	90                   	nop    
	...

000167f0 <_KeSetEvent@12>:
   167f0:	ff 25 90 e2 01 00    	jmp    *0x1e290
   167f6:	90                   	nop    
   167f7:	90                   	nop    
	...

00016800 <_KeWaitForSingleObject@20>:
   16800:	ff 25 a0 e2 01 00    	jmp    *0x1e2a0
   16806:	90                   	nop    
   16807:	90                   	nop    
	...

00016810 <_KeInsertQueueDpc@12>:
   16810:	ff 25 80 e2 01 00    	jmp    *0x1e280
   16816:	90                   	nop    
   16817:	90                   	nop    
	...

00016820 <_IoGetDmaAdapter@12>:
   16820:	ff 25 58 e2 01 00    	jmp    *0x1e258
   16826:	90                   	nop    
   16827:	90                   	nop    
	...

00016830 <_IoDisconnectInterrupt@4>:
   16830:	ff 25 50 e2 01 00    	jmp    *0x1e250
   16836:	90                   	nop    
   16837:	90                   	nop    
	...

00016840 <_MmMapIoSpace@16>:
   16840:	ff 25 b4 e2 01 00    	jmp    *0x1e2b4
   16846:	90                   	nop    
   16847:	90                   	nop    
	...

00016850 <_KeInitializeDpc@12>:
   16850:	ff 25 70 e2 01 00    	jmp    *0x1e270
   16856:	90                   	nop    
   16857:	90                   	nop    
	...

00016860 <_IoConnectInterrupt@44>:
   16860:	ff 25 48 e2 01 00    	jmp    *0x1e248
   16866:	90                   	nop    
   16867:	90                   	nop    
	...

00016870 <_RtlConvertUlongToLargeInteger@4>:
   16870:	ff 25 d8 e2 01 00    	jmp    *0x1e2d8
   16876:	90                   	nop    
   16877:	90                   	nop    
	...

00016880 <_MmUnmapIoSpace@8>:
   16880:	ff 25 c0 e2 01 00    	jmp    *0x1e2c0
   16886:	90                   	nop    
   16887:	90                   	nop    
	...

00016890 <_ExAllocatePoolWithTag@12>:
   16890:	ff 25 28 e2 01 00    	jmp    *0x1e228
   16896:	90                   	nop    
   16897:	90                   	nop    
	...

000168a0 <_MmAllocateContiguousMemory@12>:
   168a0:	ff 25 a4 e2 01 00    	jmp    *0x1e2a4
   168a6:	90                   	nop    
   168a7:	90                   	nop    
	...

000168b0 <_MmAllocateNonCachedMemory@4>:
   168b0:	ff 25 a8 e2 01 00    	jmp    *0x1e2a8
   168b6:	90                   	nop    
   168b7:	90                   	nop    
	...

000168c0 <_MmFreeContiguousMemory@4>:
   168c0:	ff 25 ac e2 01 00    	jmp    *0x1e2ac
   168c6:	90                   	nop    
   168c7:	90                   	nop    
	...

000168d0 <_MmFreeNonCachedMemory@8>:
   168d0:	ff 25 b0 e2 01 00    	jmp    *0x1e2b0
   168d6:	90                   	nop    
   168d7:	90                   	nop    
	...

000168e0 <_PsCreateSystemThread@28>:
   168e0:	ff 25 c4 e2 01 00    	jmp    *0x1e2c4
   168e6:	90                   	nop    
   168e7:	90                   	nop    
	...

000168f0 <_RtlCompareMemory@12>:
   168f0:	ff 25 d0 e2 01 00    	jmp    *0x1e2d0
   168f6:	90                   	nop    
   168f7:	90                   	nop    
	...

00016900 <_RtlCompareUnicodeString@12>:
   16900:	ff 25 d4 e2 01 00    	jmp    *0x1e2d4
   16906:	90                   	nop    
   16907:	90                   	nop    
	...

00016910 <@InterlockedIncrement@4>:
   16910:	ff 25 08 e2 01 00    	jmp    *0x1e208
   16916:	90                   	nop    
   16917:	90                   	nop    
	...

00016920 <_KeDeregisterBugCheckCallback@4>:
   16920:	ff 25 6c e2 01 00    	jmp    *0x1e26c
   16926:	90                   	nop    
   16927:	90                   	nop    
	...

00016930 <_KeRegisterBugCheckCallback@20>:
   16930:	ff 25 88 e2 01 00    	jmp    *0x1e288
   16936:	90                   	nop    
   16937:	90                   	nop    
	...

00016940 <@IofCallDriver@8>:
   16940:	ff 25 14 e2 01 00    	jmp    *0x1e214
   16946:	90                   	nop    
   16947:	90                   	nop    
	...

00016950 <_IoOpenDeviceRegistryKey@16>:
   16950:	ff 25 60 e2 01 00    	jmp    *0x1e260
   16956:	90                   	nop    
   16957:	90                   	nop    
	...

00016960 <_IoGetDeviceProperty@20>:
   16960:	ff 25 54 e2 01 00    	jmp    *0x1e254
   16966:	90                   	nop    
   16967:	90                   	nop    
	...

00016970 <@IofCompleteRequest@8>:
   16970:	ff 25 18 e2 01 00    	jmp    *0x1e218
   16976:	90                   	nop    
   16977:	90                   	nop    
	...

00016980 <_IoGetDriverObjectExtension@8>:
   16980:	ff 25 5c e2 01 00    	jmp    *0x1e25c
   16986:	90                   	nop    
   16987:	90                   	nop    
	...

00016990 <_RtlQueryRegistryValues@20>:
   16990:	ff 25 f0 e2 01 00    	jmp    *0x1e2f0
   16996:	90                   	nop    
   16997:	90                   	nop    
	...

000169a0 <_IoCreateDevice@28>:
   169a0:	ff 25 4c e2 01 00    	jmp    *0x1e24c
   169a6:	90                   	nop    
   169a7:	90                   	nop    
	...

000169b0 <_IoAttachDeviceToDeviceStack@8>:
   169b0:	ff 25 44 e2 01 00    	jmp    *0x1e244
   169b6:	90                   	nop    
   169b7:	90                   	nop    
	...

000169c0 <_RtlFreeUnicodeString@4>:
   169c0:	ff 25 e0 e2 01 00    	jmp    *0x1e2e0
   169c6:	90                   	nop    
   169c7:	90                   	nop    
	...

000169d0 <_IoAllocateDriverObjectExtension@16>:
   169d0:	ff 25 40 e2 01 00    	jmp    *0x1e240
   169d6:	90                   	nop    
   169d7:	90                   	nop    
	...

000169e0 <_KeInitializeTimer@4>:
   169e0:	ff 25 7c e2 01 00    	jmp    *0x1e27c
   169e6:	90                   	nop    
   169e7:	90                   	nop    
	...

000169f0 <_KeSetTimer@16>:
   169f0:	ff 25 94 e2 01 00    	jmp    *0x1e294
   169f6:	90                   	nop    
   169f7:	90                   	nop    
	...

00016a00 <_KeSynchronizeExecution@12>:
   16a00:	ff 25 9c e2 01 00    	jmp    *0x1e29c
   16a06:	90                   	nop    
   16a07:	90                   	nop    
	...

00016a10 <_RtlUpcaseUnicodeString@12>:
   16a10:	ff 25 fc e2 01 00    	jmp    *0x1e2fc
   16a16:	90                   	nop    
   16a17:	90                   	nop    
	...

00016a20 <_wcscat>:
   16a20:	ff 25 28 e3 01 00    	jmp    *0x1e328
   16a26:	90                   	nop    
   16a27:	90                   	nop    
	...

00016a30 <_wcsncat>:
   16a30:	ff 25 34 e3 01 00    	jmp    *0x1e334
   16a36:	90                   	nop    
   16a37:	90                   	nop    
	...

00016a40 <_RtlAnsiStringToUnicodeString@12>:
   16a40:	ff 25 c8 e2 01 00    	jmp    *0x1e2c8
   16a46:	90                   	nop    
   16a47:	90                   	nop    
	...

00016a50 <_RtlEqualUnicodeString@12>:
   16a50:	ff 25 dc e2 01 00    	jmp    *0x1e2dc
   16a56:	90                   	nop    
   16a57:	90                   	nop    
	...

00016a60 <_RtlInitString@8>:
   16a60:	ff 25 e8 e2 01 00    	jmp    *0x1e2e8
   16a66:	90                   	nop    
   16a67:	90                   	nop    
	...

00016a70 <_RtlInitAnsiString@8>:
   16a70:	ff 25 e4 e2 01 00    	jmp    *0x1e2e4
   16a76:	90                   	nop    
   16a77:	90                   	nop    
	...

00016a80 <_RtlUnicodeStringToAnsiString@12>:
   16a80:	ff 25 f4 e2 01 00    	jmp    *0x1e2f4
   16a86:	90                   	nop    
   16a87:	90                   	nop    
	...

00016a90 <_ExInterlockedAddUlong@12>:
   16a90:	ff 25 30 e2 01 00    	jmp    *0x1e230
   16a96:	90                   	nop    
   16a97:	90                   	nop    
	...

00016aa0 <_ExInterlockedInsertHeadList@12>:
   16aa0:	ff 25 34 e2 01 00    	jmp    *0x1e234
   16aa6:	90                   	nop    
   16aa7:	90                   	nop    
	...

00016ab0 <_ExInterlockedRemoveHeadList@8>:
   16ab0:	ff 25 3c e2 01 00    	jmp    *0x1e23c
   16ab6:	90                   	nop    
   16ab7:	90                   	nop    
	...

00016ac0 <_RtlAppendUnicodeStringToString@8>:
   16ac0:	ff 25 cc e2 01 00    	jmp    *0x1e2cc
   16ac6:	90                   	nop    
   16ac7:	90                   	nop    
	...

00016ad0 <_ZwCreateFile@44>:
   16ad0:	ff 25 04 e3 01 00    	jmp    *0x1e304
   16ad6:	90                   	nop    
   16ad7:	90                   	nop    
	...

00016ae0 <@InterlockedDecrement@4>:
   16ae0:	ff 25 04 e2 01 00    	jmp    *0x1e204
   16ae6:	90                   	nop    
   16ae7:	90                   	nop    
	...

00016af0 <@InterlockedPopEntrySList@4>:
   16af0:	ff 25 0c e2 01 00    	jmp    *0x1e20c
   16af6:	90                   	nop    
   16af7:	90                   	nop    
	...

00016b00 <@InterlockedPushEntrySList@8>:
   16b00:	ff 25 10 e2 01 00    	jmp    *0x1e210
   16b06:	90                   	nop    
   16b07:	90                   	nop    
	...

00016b10 <_memmove>:
   16b10:	ff 25 20 e3 01 00    	jmp    *0x1e320
   16b16:	90                   	nop    
   16b17:	90                   	nop    
	...

00016b20 <_KeCancelTimer@4>:
   16b20:	ff 25 68 e2 01 00    	jmp    *0x1e268
   16b26:	90                   	nop    
   16b27:	90                   	nop    
	...

00016b30 <_KeQuerySystemTime@4>:
   16b30:	ff 25 84 e2 01 00    	jmp    *0x1e284
   16b36:	90                   	nop    
   16b37:	90                   	nop    
	...

00016b40 <_KeSetTimerEx@20>:
   16b40:	ff 25 98 e2 01 00    	jmp    *0x1e298
   16b46:	90                   	nop    
   16b47:	90                   	nop    
	...

00016b50 <_KeAcquireSpinLock@8>:
   16b50:	ff 25 dc e1 01 00    	jmp    *0x1e1dc
   16b56:	90                   	nop    
   16b57:	90                   	nop    
	...

00016b60 <_KeReleaseSpinLock@8>:
   16b60:	ff 25 e0 e1 01 00    	jmp    *0x1e1e0
   16b66:	90                   	nop    
   16b67:	90                   	nop    
	...

00016b70 <_HalGetBusDataByOffset@24>:
   16b70:	ff 25 cc e1 01 00    	jmp    *0x1e1cc
   16b76:	90                   	nop    
   16b77:	90                   	nop    
	...

00016b80 <_HalSetBusDataByOffset@24>:
   16b80:	ff 25 d4 e1 01 00    	jmp    *0x1e1d4
   16b86:	90                   	nop    
   16b87:	90                   	nop    
	...

00016b90 <_READ_PORT_UCHAR@4>:
   16b90:	ff 25 e4 e1 01 00    	jmp    *0x1e1e4
   16b96:	90                   	nop    
   16b97:	90                   	nop    
	...

00016ba0 <_READ_PORT_ULONG@4>:
   16ba0:	ff 25 e8 e1 01 00    	jmp    *0x1e1e8
   16ba6:	90                   	nop    
   16ba7:	90                   	nop    
	...

00016bb0 <_READ_PORT_USHORT@4>:
   16bb0:	ff 25 ec e1 01 00    	jmp    *0x1e1ec
   16bb6:	90                   	nop    
   16bb7:	90                   	nop    
	...

00016bc0 <_WRITE_PORT_UCHAR@8>:
   16bc0:	ff 25 f0 e1 01 00    	jmp    *0x1e1f0
   16bc6:	90                   	nop    
   16bc7:	90                   	nop    
	...

00016bd0 <_WRITE_PORT_ULONG@8>:
   16bd0:	ff 25 f4 e1 01 00    	jmp    *0x1e1f4
   16bd6:	90                   	nop    
   16bd7:	90                   	nop    
	...

00016be0 <_WRITE_PORT_USHORT@8>:
   16be0:	ff 25 f8 e1 01 00    	jmp    *0x1e1f8
   16be6:	90                   	nop    
   16be7:	90                   	nop    
	...

00016bf0 <@KfRaiseIrql@4>:
   16bf0:	ff 25 c8 e1 01 00    	jmp    *0x1e1c8
   16bf6:	90                   	nop    
   16bf7:	90                   	nop    
	...

00016c00 <@KfLowerIrql@4>:
   16c00:	ff 25 c4 e1 01 00    	jmp    *0x1e1c4
   16c06:	90                   	nop    
   16c07:	90                   	nop    
	...

00016c10 <_HalGetInterruptVector@24>:
   16c10:	ff 25 d0 e1 01 00    	jmp    *0x1e1d0
   16c16:	90                   	nop    
   16c17:	90                   	nop    
	...

00016c20 <_HalTranslateBusAddress@24>:
   16c20:	ff 25 d8 e1 01 00    	jmp    *0x1e1d8
   16c26:	90                   	nop    
   16c27:	90                   	nop    
	...

00016c30 <__CTOR_LIST__>:
   16c30:	ff                   	(bad)  
   16c31:	ff                   	(bad)  
   16c32:	ff                   	(bad)  
   16c33:	ff 00                	incl   (%eax)
   16c35:	00 00                	add    %al,(%eax)
	...

00016c38 <__DTOR_LIST__>:
   16c38:	ff                   	(bad)  
   16c39:	ff                   	(bad)  
   16c3a:	ff                   	(bad)  
   16c3b:	ff 00                	incl   (%eax)
   16c3d:	00 00                	add    %al,(%eax)
	...
