
afd.nostrip.sys:     file format pei-i386

Disassembly of section .text:

00011000 <_WarmSocketForBind>:
#include "tdi_proto.h"
#include "tdiconn.h"
#include "debug.h"

NTSTATUS WarmSocketForBind( PAFD_FCB FCB ) {
   11000:	55                   	push   %ebp
   11001:	89 e5                	mov    %esp,%ebp
   11003:	56                   	push   %esi
   11004:	53                   	push   %ebx
    NTSTATUS Status = STATUS_UNSUCCESSFUL;
   11005:	be 01 00 00 c0       	mov    $0xc0000001,%esi
   1100a:	8b 5d 08             	mov    0x8(%ebp),%ebx

    AFD_DbgPrint(MID_TRACE,("Called (AF %d)\n",
			    FCB->LocalAddress->Address[0].AddressType));

    if( !FCB->TdiDeviceName.Length || !FCB->TdiDeviceName.Buffer ) {
   1100d:	66 83 bb f4 00 00 00 	cmpw   $0x0,0xf4(%ebx)
   11014:	00 
   11015:	74 0a                	je     11021 <_WarmSocketForBind+0x21>
   11017:	8b 8b f8 00 00 00    	mov    0xf8(%ebx),%ecx
   1101d:	85 c9                	test   %ecx,%ecx
   1101f:	75 0f                	jne    11030 <_WarmSocketForBind+0x30>
	AFD_DbgPrint(MID_TRACE,("Null Device\n"));
	return STATUS_NO_SUCH_DEVICE;
    }

    if( FCB->LocalAddress ) {
	Status = TdiOpenAddressFile
	    ( &FCB->TdiDeviceName,
	      FCB->LocalAddress,
	      &FCB->AddressFile.Handle, 
	      &FCB->AddressFile.Object );
    }

    if( !NT_SUCCESS(Status) ) {
	TdiCloseDevice( &FCB->AddressFile.Handle,
			FCB->AddressFile.Object );
	RtlZeroMemory( &FCB->AddressFile, sizeof( FCB->AddressFile ) );
    }

    AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));

    return Status;
}
   11021:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11024:	b8 0e 00 00 c0       	mov    $0xc000000e,%eax
   11029:	5b                   	pop    %ebx
   1102a:	5e                   	pop    %esi
   1102b:	5d                   	pop    %ebp
   1102c:	c3                   	ret    
   1102d:	8d 76 00             	lea    0x0(%esi),%esi
   11030:	8b 53 2c             	mov    0x2c(%ebx),%edx
   11033:	85 d2                	test   %edx,%edx
   11035:	75 29                	jne    11060 <_WarmSocketForBind+0x60>
   11037:	52                   	push   %edx
   11038:	52                   	push   %edx
   11039:	8b 43 38             	mov    0x38(%ebx),%eax
   1103c:	50                   	push   %eax
   1103d:	8d 43 3c             	lea    0x3c(%ebx),%eax
   11040:	50                   	push   %eax
   11041:	e8 ba 33 00 00       	call   14400 <_TdiCloseDevice>
   11046:	c7 43 38 00 00 00 00 	movl   $0x0,0x38(%ebx)
   1104d:	c7 43 3c 00 00 00 00 	movl   $0x0,0x3c(%ebx)
   11054:	83 c4 10             	add    $0x10,%esp
   11057:	89 f0                	mov    %esi,%eax
   11059:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1105c:	5b                   	pop    %ebx
   1105d:	5e                   	pop    %esi
   1105e:	5d                   	pop    %ebp
   1105f:	c3                   	ret    
   11060:	8d 43 38             	lea    0x38(%ebx),%eax
   11063:	50                   	push   %eax
   11064:	8d 43 3c             	lea    0x3c(%ebx),%eax
   11067:	50                   	push   %eax
   11068:	8d 83 f4 00 00 00    	lea    0xf4(%ebx),%eax
   1106e:	52                   	push   %edx
   1106f:	50                   	push   %eax
   11070:	e8 bb 33 00 00       	call   14430 <_TdiOpenAddressFile>
   11075:	83 c4 10             	add    $0x10,%esp
   11078:	89 c6                	mov    %eax,%esi
   1107a:	85 c0                	test   %eax,%eax
   1107c:	78 b9                	js     11037 <_WarmSocketForBind+0x37>
   1107e:	89 f0                	mov    %esi,%eax
   11080:	eb d7                	jmp    11059 <_WarmSocketForBind+0x59>
   11082:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   11089:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011090 <_AfdBindSocket@12>:

NTSTATUS STDCALL
AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp,
	      PIO_STACK_LOCATION IrpSp) {
   11090:	55                   	push   %ebp
   11091:	89 e5                	mov    %esp,%ebp
   11093:	57                   	push   %edi
   11094:	56                   	push   %esi
   11095:	53                   	push   %ebx
   11096:	83 ec 18             	sub    $0x18,%esp
   11099:	8b 75 10             	mov    0x10(%ebp),%esi
   1109c:	8b 7d 0c             	mov    0xc(%ebp),%edi
    NTSTATUS Status = STATUS_SUCCESS;
    PFILE_OBJECT FileObject = IrpSp->FileObject;
   1109f:	8b 46 18             	mov    0x18(%esi),%eax
    PAFD_FCB FCB = FileObject->FsContext;
   110a2:	8b 58 0c             	mov    0xc(%eax),%ebx
    PAFD_BIND_DATA BindReq;
    
    AFD_DbgPrint(MID_TRACE,("Called\n"));
    
    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, FALSE );
   110a5:	53                   	push   %ebx
   110a6:	e8 55 13 00 00       	call   12400 <_SocketAcquireStateLock>
   110ab:	83 c4 10             	add    $0x10,%esp
   110ae:	85 c0                	test   %eax,%eax
   110b0:	75 14                	jne    110c6 <_AfdBindSocket@12+0x36>
   110b2:	50                   	push   %eax
   110b3:	50                   	push   %eax
   110b4:	6a 00                	push   $0x0
   110b6:	57                   	push   %edi
   110b7:	e8 d4 14 00 00       	call   12590 <_LostSocket>
    if( !(BindReq = LockRequest( Irp, IrpSp )) ) 
	return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, 
				       Irp, 0, NULL, FALSE );
    
    FCB->LocalAddress = TaCopyTransportAddress( &BindReq->Address );

    if( FCB->LocalAddress ) 
	Status = WarmSocketForBind( FCB );
    else Status = STATUS_NO_MEMORY;

    if( NT_SUCCESS(Status) ) 
	FCB->State = SOCKET_STATE_BOUND;
    else return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, FALSE );

    AFD_DbgPrint(MID_TRACE,("FCB->Flags %x\n", FCB->Flags));

    if( FCB->Flags & SGID_CONNECTIONLESS ) {
	/* This will be the from address for subsequent recvfrom calls */
	TdiBuildConnectionInfo( &FCB->AddressFrom,
				FCB->LocalAddress );

	AFD_DbgPrint(MID_TRACE,("Calling TdiReceiveDatagram\n"));
	
	Status = TdiReceiveDatagram
	    ( &FCB->ReceiveIrp.InFlightRequest,
	      FCB->AddressFile.Object,
	      0,
	      FCB->Recv.Window,
	      FCB->Recv.Size,
	      FCB->AddressFrom,
	      &FCB->ReceiveIrp.Iosb,
	      PacketSocketRecvComplete,
	      FCB );

	/* We don't want to wait for this read to complete. */
	if( Status == STATUS_PENDING ) Status = STATUS_SUCCESS;
    }

    return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, TRUE );
}
   110bc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   110bf:	5b                   	pop    %ebx
   110c0:	5e                   	pop    %esi
   110c1:	5f                   	pop    %edi
   110c2:	5d                   	pop    %ebp
   110c3:	c2 0c 00             	ret    $0xc
   110c6:	50                   	push   %eax
   110c7:	50                   	push   %eax
   110c8:	56                   	push   %esi
   110c9:	57                   	push   %edi
   110ca:	e8 41 10 00 00       	call   12110 <_LockRequest>
   110cf:	83 c4 10             	add    $0x10,%esp
   110d2:	85 c0                	test   %eax,%eax
   110d4:	74 5f                	je     11135 <_AfdBindSocket@12+0xa5>
   110d6:	83 ec 0c             	sub    $0xc,%esp
   110d9:	83 c0 04             	add    $0x4,%eax
   110dc:	50                   	push   %eax
   110dd:	e8 3e 43 00 00       	call   15420 <_TaCopyTransportAddress>
   110e2:	83 c4 10             	add    $0x10,%esp
   110e5:	ba 17 00 00 c0       	mov    $0xc0000017,%edx
   110ea:	89 43 2c             	mov    %eax,0x2c(%ebx)
   110ed:	85 c0                	test   %eax,%eax
   110ef:	75 1f                	jne    11110 <_AfdBindSocket@12+0x80>
   110f1:	51                   	push   %ecx
   110f2:	51                   	push   %ecx
   110f3:	6a 00                	push   $0x0
   110f5:	6a 00                	push   $0x0
   110f7:	6a 00                	push   $0x0
   110f9:	57                   	push   %edi
   110fa:	52                   	push   %edx
   110fb:	53                   	push   %ebx
   110fc:	e8 ff 13 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
   11101:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11104:	5b                   	pop    %ebx
   11105:	5e                   	pop    %esi
   11106:	5f                   	pop    %edi
   11107:	5d                   	pop    %ebp
   11108:	c2 0c 00             	ret    $0xc
   1110b:	90                   	nop    
   1110c:	8d 74 26 00          	lea    0x0(%esi),%esi
   11110:	83 ec 0c             	sub    $0xc,%esp
   11113:	53                   	push   %ebx
   11114:	e8 e7 fe ff ff       	call   11000 <_WarmSocketForBind>
   11119:	83 c4 10             	add    $0x10,%esp
   1111c:	89 c2                	mov    %eax,%edx
   1111e:	85 c0                	test   %eax,%eax
   11120:	78 cf                	js     110f1 <_AfdBindSocket@12+0x61>
   11122:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
   11129:	f6 43 08 01          	testb  $0x1,0x8(%ebx)
   1112d:	75 16                	jne    11145 <_AfdBindSocket@12+0xb5>
   1112f:	56                   	push   %esi
   11130:	56                   	push   %esi
   11131:	6a 01                	push   $0x1
   11133:	eb c0                	jmp    110f5 <_AfdBindSocket@12+0x65>
   11135:	56                   	push   %esi
   11136:	56                   	push   %esi
   11137:	6a 00                	push   $0x0
   11139:	6a 00                	push   $0x0
   1113b:	6a 00                	push   $0x0
   1113d:	57                   	push   %edi
   1113e:	68 17 00 00 c0       	push   $0xc0000017
   11143:	eb b6                	jmp    110fb <_AfdBindSocket@12+0x6b>
   11145:	50                   	push   %eax
   11146:	50                   	push   %eax
   11147:	8b 43 2c             	mov    0x2c(%ebx),%eax
   1114a:	50                   	push   %eax
   1114b:	8d 43 34             	lea    0x34(%ebx),%eax
   1114e:	50                   	push   %eax
   1114f:	e8 0c 44 00 00       	call   15560 <_TdiBuildConnectionInfo>
   11154:	8d 43 74             	lea    0x74(%ebx),%eax
   11157:	89 1c 24             	mov    %ebx,(%esp)
   1115a:	68 f0 35 01 00       	push   $0x135f0
   1115f:	50                   	push   %eax
   11160:	8b 43 34             	mov    0x34(%ebx),%eax
   11163:	50                   	push   %eax
   11164:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
   1116a:	50                   	push   %eax
   1116b:	8b 83 a8 00 00 00    	mov    0xa8(%ebx),%eax
   11171:	50                   	push   %eax
   11172:	6a 00                	push   $0x0
   11174:	8b 43 38             	mov    0x38(%ebx),%eax
   11177:	50                   	push   %eax
   11178:	8d 43 70             	lea    0x70(%ebx),%eax
   1117b:	50                   	push   %eax
   1117c:	e8 af 3c 00 00       	call   14e30 <_TdiReceiveDatagram>
   11181:	83 c4 30             	add    $0x30,%esp
   11184:	89 c2                	mov    %eax,%edx
   11186:	3d 03 01 00 00       	cmp    $0x103,%eax
   1118b:	0f 95 c0             	setne  %al
   1118e:	25 ff 00 00 00       	and    $0xff,%eax
   11193:	56                   	push   %esi
   11194:	f7 d8                	neg    %eax
   11196:	56                   	push   %esi
   11197:	21 c2                	and    %eax,%edx
   11199:	6a 01                	push   $0x1
   1119b:	e9 55 ff ff ff       	jmp    110f5 <_AfdBindSocket@12+0x65>

000111a0 <_WarmSocketForConnection>:
#include "tdi_proto.h"
#include "tdiconn.h"
#include "debug.h"

NTSTATUS WarmSocketForConnection( PAFD_FCB FCB ) {
   111a0:	55                   	push   %ebp
   111a1:	89 e5                	mov    %esp,%ebp
   111a3:	57                   	push   %edi
   111a4:	56                   	push   %esi
   111a5:	53                   	push   %ebx
   111a6:	83 ec 0c             	sub    $0xc,%esp
   111a9:	8b 5d 08             	mov    0x8(%ebp),%ebx
    NTSTATUS Status;

    if( !FCB->TdiDeviceName.Length || !FCB->TdiDeviceName.Buffer ) {
   111ac:	66 83 bb f4 00 00 00 	cmpw   $0x0,0xf4(%ebx)
   111b3:	00 
   111b4:	74 0a                	je     111c0 <_WarmSocketForConnection+0x20>
   111b6:	8b 83 f8 00 00 00    	mov    0xf8(%ebx),%eax
   111bc:	85 c0                	test   %eax,%eax
   111be:	75 10                	jne    111d0 <_WarmSocketForConnection+0x30>
	AFD_DbgPrint(MID_TRACE,("Null Device\n"));
	return STATUS_NO_SUCH_DEVICE;
    }

    Status = TdiOpenConnectionEndpointFile
	( &FCB->TdiDeviceName,
	  &FCB->Connection.Handle,
	  &FCB->Connection.Object );
    
    if( NT_SUCCESS(Status) ) {
	Status = TdiAssociateAddressFile
	    ( FCB->AddressFile.Handle,
	      FCB->Connection.Object );
    }

    if( !NT_SUCCESS(Status) ) {
	TdiCloseDevice( &FCB->Connection.Handle,
			FCB->Connection.Object );
	RtlZeroMemory( &FCB->Connection, sizeof(FCB->Connection) );
    }

    return Status;
}
   111c0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   111c3:	b8 0e 00 00 c0       	mov    $0xc000000e,%eax
   111c8:	5b                   	pop    %ebx
   111c9:	5e                   	pop    %esi
   111ca:	5f                   	pop    %edi
   111cb:	5d                   	pop    %ebp
   111cc:	c3                   	ret    
   111cd:	8d 76 00             	lea    0x0(%esi),%esi
   111d0:	50                   	push   %eax
   111d1:	8d 43 40             	lea    0x40(%ebx),%eax
   111d4:	8d 7b 44             	lea    0x44(%ebx),%edi
   111d7:	50                   	push   %eax
   111d8:	8d 83 f4 00 00 00    	lea    0xf4(%ebx),%eax
   111de:	57                   	push   %edi
   111df:	50                   	push   %eax
   111e0:	e8 0b 33 00 00       	call   144f0 <_TdiOpenConnectionEndpointFile>
   111e5:	83 c4 10             	add    $0x10,%esp
   111e8:	89 c6                	mov    %eax,%esi
   111ea:	85 c0                	test   %eax,%eax
   111ec:	78 22                	js     11210 <_WarmSocketForConnection+0x70>
   111ee:	50                   	push   %eax
   111ef:	50                   	push   %eax
   111f0:	8b 73 40             	mov    0x40(%ebx),%esi
   111f3:	56                   	push   %esi
   111f4:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
   111f7:	51                   	push   %ecx
   111f8:	e8 73 34 00 00       	call   14670 <_TdiAssociateAddressFile>
   111fd:	83 c4 10             	add    $0x10,%esp
   11200:	89 c6                	mov    %eax,%esi
   11202:	85 c0                	test   %eax,%eax
   11204:	78 0a                	js     11210 <_WarmSocketForConnection+0x70>
   11206:	89 f0                	mov    %esi,%eax
   11208:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1120b:	5b                   	pop    %ebx
   1120c:	5e                   	pop    %esi
   1120d:	5f                   	pop    %edi
   1120e:	5d                   	pop    %ebp
   1120f:	c3                   	ret    
   11210:	52                   	push   %edx
   11211:	52                   	push   %edx
   11212:	8b 43 40             	mov    0x40(%ebx),%eax
   11215:	50                   	push   %eax
   11216:	57                   	push   %edi
   11217:	e8 e4 31 00 00       	call   14400 <_TdiCloseDevice>
   1121c:	83 c4 10             	add    $0x10,%esp
   1121f:	89 f0                	mov    %esi,%eax
   11221:	c7 43 40 00 00 00 00 	movl   $0x0,0x40(%ebx)
   11228:	c7 43 44 00 00 00 00 	movl   $0x0,0x44(%ebx)
   1122f:	eb d7                	jmp    11208 <_WarmSocketForConnection+0x68>
   11231:	eb 0d                	jmp    11240 <_MakeSocketIntoConnection>
   11233:	90                   	nop    
   11234:	90                   	nop    
   11235:	90                   	nop    
   11236:	90                   	nop    
   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 <_MakeSocketIntoConnection>:

NTSTATUS MakeSocketIntoConnection( PAFD_FCB FCB ) {
   11240:	55                   	push   %ebp
   11241:	89 e5                	mov    %esp,%ebp
   11243:	56                   	push   %esi
   11244:	53                   	push   %ebx
    NTSTATUS Status = STATUS_NO_MEMORY;
   11245:	be 17 00 00 c0       	mov    $0xc0000017,%esi
   1124a:	8b 5d 08             	mov    0x8(%ebp),%ebx

    /* Allocate the receive area and start receiving */
    FCB->Recv.Window = 
   1124d:	50                   	push   %eax
   1124e:	50                   	push   %eax
   1124f:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
   11255:	50                   	push   %eax
   11256:	6a 00                	push   $0x0
   11258:	ff 15 18 a1 01 00    	call   *0x1a118
	ExAllocatePool( NonPagedPool, FCB->Recv.Size );
    FCB->Send.Window = 
   1125e:	8b 8b a0 00 00 00    	mov    0xa0(%ebx),%ecx
   11264:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
   1126a:	51                   	push   %ecx
   1126b:	6a 00                	push   $0x0
   1126d:	ff 15 18 a1 01 00    	call   *0x1a118
	ExAllocatePool( NonPagedPool, FCB->Send.Size );

    FCB->State = SOCKET_STATE_CONNECTED;
   11273:	c7 43 04 03 00 00 00 	movl   $0x3,0x4(%ebx)
   1127a:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
    
    if( FCB->Recv.Window ) {
   11280:	58                   	pop    %eax
   11281:	5a                   	pop    %edx
   11282:	8b 93 a8 00 00 00    	mov    0xa8(%ebx),%edx
   11288:	85 d2                	test   %edx,%edx
   1128a:	75 09                	jne    11295 <_MakeSocketIntoConnection+0x55>
	Status = TdiReceive( &FCB->ReceiveIrp.InFlightRequest,
			     FCB->Connection.Object,
			     TDI_RECEIVE_NORMAL,
			     FCB->Recv.Window,
			     FCB->Recv.Size,
			     &FCB->ReceiveIrp.Iosb,
			     ReceiveComplete,
			     FCB );
    }

    return Status;
}
   1128c:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1128f:	89 f0                	mov    %esi,%eax
   11291:	5b                   	pop    %ebx
   11292:	5e                   	pop    %esi
   11293:	5d                   	pop    %ebp
   11294:	c3                   	ret    
   11295:	8d 43 74             	lea    0x74(%ebx),%eax
   11298:	53                   	push   %ebx
   11299:	68 60 32 01 00       	push   $0x13260
   1129e:	50                   	push   %eax
   1129f:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
   112a5:	50                   	push   %eax
   112a6:	52                   	push   %edx
   112a7:	6a 20                	push   $0x20
   112a9:	8b 43 40             	mov    0x40(%ebx),%eax
   112ac:	50                   	push   %eax
   112ad:	8d 43 70             	lea    0x70(%ebx),%eax
   112b0:	50                   	push   %eax
   112b1:	e8 6a 39 00 00       	call   14c20 <_TdiReceive>
   112b6:	89 c6                	mov    %eax,%esi
   112b8:	83 c4 20             	add    $0x20,%esp
   112bb:	89 f0                	mov    %esi,%eax
   112bd:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   112c0:	5b                   	pop    %ebx
   112c1:	5e                   	pop    %esi
   112c2:	5d                   	pop    %ebp
   112c3:	c3                   	ret    
   112c4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   112ca:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000112d0 <_StreamSocketConnectComplete@12>:

NTSTATUS DDKAPI StreamSocketConnectComplete
( PDEVICE_OBJECT DeviceObject,
  PIRP Irp,
  PVOID Context ) {
   112d0:	55                   	push   %ebp
   112d1:	89 e5                	mov    %esp,%ebp
   112d3:	57                   	push   %edi
   112d4:	56                   	push   %esi
   112d5:	53                   	push   %ebx
   112d6:	83 ec 18             	sub    $0x18,%esp
   112d9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   112dc:	8b 75 10             	mov    0x10(%ebp),%esi
    NTSTATUS Status = Irp->IoStatus.Status;
   112df:	8b 7b 18             	mov    0x18(%ebx),%edi
    PAFD_FCB FCB = (PAFD_FCB)Context;
    PLIST_ENTRY NextIrpEntry;
    PIRP NextIrp;

    AFD_DbgPrint(MID_TRACE,("Called: FCB %x, FO %x\n", 
			    Context, FCB->FileObject));

    /* I was wrong about this before as we can have pending writes to a not
     * yet connected socket */
    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, FALSE );
   112e2:	56                   	push   %esi
   112e3:	e8 18 11 00 00       	call   12400 <_SocketAcquireStateLock>
   112e8:	83 c4 10             	add    $0x10,%esp
   112eb:	85 c0                	test   %eax,%eax
   112ed:	0f 84 df 00 00 00    	je     113d2 <_StreamSocketConnectComplete@12+0x102>

    AFD_DbgPrint(MID_TRACE,("Irp->IoStatus.Status = %x\n", 
			    Irp->IoStatus.Status));

    if( NT_SUCCESS(Irp->IoStatus.Status) ) {
   112f3:	8b 43 18             	mov    0x18(%ebx),%eax
   112f6:	85 c0                	test   %eax,%eax
   112f8:	0f 88 e8 00 00 00    	js     113e6 <_StreamSocketConnectComplete@12+0x116>
	FCB->PollState |= AFD_EVENT_CONNECT | AFD_EVENT_SEND;
   112fe:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
	FCB->State = SOCKET_STATE_CONNECTED;
   11304:	c7 46 04 03 00 00 00 	movl   $0x3,0x4(%esi)
   1130b:	83 c8 44             	or     $0x44,%eax
   1130e:	89 86 00 01 00 00    	mov    %eax,0x100(%esi)
	AFD_DbgPrint(MID_TRACE,("Going to connected state %d\n", FCB->State));
	PollReeval( FCB->DeviceExt, FCB->FileObject );
    } else {
	FCB->PollState |= AFD_EVENT_CONNECT_FAIL | AFD_EVENT_RECEIVE;
	AFD_DbgPrint(MID_TRACE,("Going to bound state\n"));
	FCB->State = SOCKET_STATE_BOUND;
	PollReeval( FCB->DeviceExt, FCB->FileObject );
   11314:	51                   	push   %ecx
   11315:	51                   	push   %ecx
    }
    
    /* Succeed pending irps on the FUNCTION_CONNECT list */
    while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_CONNECT] ) ) {
	NextIrpEntry = RemoveHeadList(&FCB->PendingIrpList[FUNCTION_CONNECT]);
	NextIrp = CONTAINING_RECORD(NextIrpEntry, IRP, Tail.Overlay.ListEntry);
	AFD_DbgPrint(MID_TRACE,("Completing connect %x\n", NextIrp));
	NextIrp->IoStatus.Status = Status;
	NextIrp->IoStatus.Information = 0;
	IoCompleteRequest( NextIrp, IO_NETWORK_INCREMENT );
   11316:	8d 9e 08 01 00 00    	lea    0x108(%esi),%ebx
   1131c:	8b 56 1c             	mov    0x1c(%esi),%edx
   1131f:	52                   	push   %edx
   11320:	8b 46 20             	mov    0x20(%esi),%eax
   11323:	50                   	push   %eax
   11324:	e8 c7 2e 00 00       	call   141f0 <_PollReeval>
   11329:	83 c4 10             	add    $0x10,%esp
   1132c:	eb 27                	jmp    11355 <_StreamSocketConnectComplete@12+0x85>
   1132e:	89 f6                	mov    %esi,%esi
{
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
   11330:	89 d0                	mov    %edx,%eax
  Flink = Entry->Flink;
   11332:	8b 12                	mov    (%edx),%edx
  ListHead->Flink = Flink;
   11334:	89 96 08 01 00 00    	mov    %edx,0x108(%esi)
   1133a:	8d 48 a8             	lea    0xffffffa8(%eax),%ecx

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
  Flink->Blink = ListHead;
   1133d:	89 5a 04             	mov    %ebx,0x4(%edx)
   11340:	ba 02 00 00 00       	mov    $0x2,%edx
   11345:	89 79 18             	mov    %edi,0x18(%ecx)
   11348:	c7 41 1c 00 00 00 00 	movl   $0x0,0x1c(%ecx)
   1134f:	ff 15 0c a1 01 00    	call   *0x1a10c
   11355:	8b 96 08 01 00 00    	mov    0x108(%esi),%edx
   1135b:	39 da                	cmp    %ebx,%edx
   1135d:	75 d1                	jne    11330 <_StreamSocketConnectComplete@12+0x60>
    }

    if( NT_SUCCESS(Status) ) {
   1135f:	85 ff                	test   %edi,%edi
   11361:	78 5a                	js     113bd <_StreamSocketConnectComplete@12+0xed>
	Status = MakeSocketIntoConnection( FCB );
   11363:	83 ec 0c             	sub    $0xc,%esp
   11366:	56                   	push   %esi
   11367:	e8 d4 fe ff ff       	call   11240 <_MakeSocketIntoConnection>
   1136c:	89 c7                	mov    %eax,%edi

	if( FCB->Send.Window && 
   1136e:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
   11374:	83 c4 10             	add    $0x10,%esp
   11377:	85 c0                	test   %eax,%eax
   11379:	74 30                	je     113ab <_StreamSocketConnectComplete@12+0xdb>
   1137b:	8d 8e 18 01 00 00    	lea    0x118(%esi),%ecx
   11381:	8b 96 18 01 00 00    	mov    0x118(%esi),%edx
   11387:	39 ca                	cmp    %ecx,%edx
   11389:	74 20                	je     113ab <_StreamSocketConnectComplete@12+0xdb>
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   1138b:	8b 02                	mov    (%edx),%eax
  ListHead->Flink = Flink;
   1138d:	89 86 18 01 00 00    	mov    %eax,0x118(%esi)
  Flink->Blink = ListHead;
   11393:	89 48 04             	mov    %ecx,0x4(%eax)
	    !IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) ) {
	    NextIrpEntry = RemoveHeadList(&FCB->PendingIrpList[FUNCTION_SEND]);
	    NextIrp = CONTAINING_RECORD(NextIrpEntry, IRP, 
   11396:	8d 4a a8             	lea    0xffffffa8(%edx),%ecx
					Tail.Overlay.ListEntry);
	    AFD_DbgPrint(MID_TRACE,("Launching send request %x\n", NextIrp));
	    Status = AfdConnectedSocketWriteData
   11399:	6a 00                	push   $0x0
   1139b:	8b 41 60             	mov    0x60(%ecx),%eax
   1139e:	50                   	push   %eax
   1139f:	51                   	push   %ecx
   113a0:	8b 45 08             	mov    0x8(%ebp),%eax
   113a3:	50                   	push   %eax
   113a4:	e8 57 46 00 00       	call   15a00 <_AfdConnectedSocketWriteData@16>
   113a9:	89 c7                	mov    %eax,%edi
		( DeviceObject,
		  NextIrp,
		  IoGetCurrentIrpStackLocation( NextIrp ),
		  FALSE );
	}

	if( Status == STATUS_PENDING )
	    Status = STATUS_SUCCESS;
   113ab:	81 ff 03 01 00 00    	cmp    $0x103,%edi
   113b1:	0f 95 c0             	setne  %al
   113b4:	25 ff 00 00 00       	and    $0xff,%eax
   113b9:	f7 d8                	neg    %eax
   113bb:	21 c7                	and    %eax,%edi
    }

    SocketStateUnlock( FCB );
   113bd:	83 ec 0c             	sub    $0xc,%esp
   113c0:	56                   	push   %esi
   113c1:	e8 da 10 00 00       	call   124a0 <_SocketStateUnlock>

    AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));
    
    return Status;
}
   113c6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   113c9:	89 f8                	mov    %edi,%eax
   113cb:	5b                   	pop    %ebx
   113cc:	5e                   	pop    %esi
   113cd:	5f                   	pop    %edi
   113ce:	5d                   	pop    %ebp
   113cf:	c2 0c 00             	ret    $0xc
   113d2:	50                   	push   %eax
   113d3:	50                   	push   %eax
   113d4:	6a 00                	push   $0x0
   113d6:	53                   	push   %ebx
   113d7:	e8 b4 11 00 00       	call   12590 <_LostSocket>
   113dc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   113df:	5b                   	pop    %ebx
   113e0:	5e                   	pop    %esi
   113e1:	5f                   	pop    %edi
   113e2:	5d                   	pop    %ebp
   113e3:	c2 0c 00             	ret    $0xc
   113e6:	8b 9e 00 01 00 00    	mov    0x100(%esi),%ebx
   113ec:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
   113f3:	81 cb 01 01 00 00    	or     $0x101,%ebx
   113f9:	89 9e 00 01 00 00    	mov    %ebx,0x100(%esi)
   113ff:	e9 10 ff ff ff       	jmp    11314 <_StreamSocketConnectComplete@12+0x44>
   11404:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1140a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00011410 <_AfdStreamSocketConnect@12>:

/* Return the socket object for ths request only if it is a connected or
   stream type. */
NTSTATUS STDCALL
AfdStreamSocketConnect(PDEVICE_OBJECT DeviceObject, PIRP Irp,
		       PIO_STACK_LOCATION IrpSp) {
   11410:	55                   	push   %ebp
   11411:	89 e5                	mov    %esp,%ebp
   11413:	57                   	push   %edi
   11414:	56                   	push   %esi
   11415:	53                   	push   %ebx
   11416:	83 ec 28             	sub    $0x28,%esp
    NTSTATUS Status = STATUS_INVALID_PARAMETER;
   11419:	c7 45 ec 0d 00 00 c0 	movl   $0xc000000d,0xffffffec(%ebp)
   11420:	8b 5d 10             	mov    0x10(%ebp),%ebx
    PTDI_CONNECTION_INFORMATION TargetAddress;
    PFILE_OBJECT FileObject = IrpSp->FileObject;
   11423:	8b 43 18             	mov    0x18(%ebx),%eax
    PAFD_FCB FCB = FileObject->FsContext;
   11426:	8b 70 0c             	mov    0xc(%eax),%esi
    PAFD_CONNECT_INFO ConnectReq;
    AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));

    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, FALSE );
   11429:	56                   	push   %esi
   1142a:	e8 d1 0f 00 00       	call   12400 <_SocketAcquireStateLock>
   1142f:	83 c4 10             	add    $0x10,%esp
   11432:	85 c0                	test   %eax,%eax
   11434:	75 1a                	jne    11450 <_AfdStreamSocketConnect@12+0x40>
   11436:	50                   	push   %eax
   11437:	50                   	push   %eax
   11438:	6a 00                	push   $0x0
   1143a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1143d:	50                   	push   %eax
   1143e:	e8 4d 11 00 00       	call   12590 <_LostSocket>
    if( !(ConnectReq = LockRequest( Irp, IrpSp )) ) 
	return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, Irp, 
				       0, NULL, TRUE );

    AFD_DbgPrint(MID_TRACE,("Connect request:\n"));
    OskitDumpBuffer
	( (PCHAR)ConnectReq, 
	  IrpSp->Parameters.DeviceIoControl.InputBufferLength );

    switch( FCB->State ) {
    case SOCKET_STATE_CONNECTED:
	Status = STATUS_SUCCESS;
	break;

    case SOCKET_STATE_CONNECTING:
	return LeaveIrpUntilLater( FCB, Irp, FUNCTION_CONNECT );

    case SOCKET_STATE_CREATED: {
	FCB->LocalAddress = 
	    TaCopyTransportAddress( &ConnectReq->RemoteAddress );

	if( FCB->LocalAddress ) {
	    RtlZeroMemory( FCB->LocalAddress, 
			   TaLengthOfTransportAddress
			   ( &ConnectReq->RemoteAddress ) );
	    
	    FCB->LocalAddress->TAAddressCount = 1;
	    FCB->LocalAddress->Address[0].AddressType = 
		ConnectReq->RemoteAddress.Address[0].AddressType;
	    FCB->LocalAddress->Address[0].AddressLength = 
		ConnectReq->RemoteAddress.Address[0].AddressLength;
	    
	    Status = WarmSocketForBind( FCB );
	    
	    if( NT_SUCCESS(Status) ) 
		FCB->State = SOCKET_STATE_BOUND;
	    else
		return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, 
					       TRUE );
	} else
	    return UnlockAndMaybeComplete
		( FCB, STATUS_NO_MEMORY, Irp, 0, NULL, TRUE ); 
    } /* Drop through to SOCKET_STATE_BOUND */
	
    case SOCKET_STATE_BOUND:
	FCB->RemoteAddress = 
	    TaCopyTransportAddress( &ConnectReq->RemoteAddress );

	if( FCB->Flags & AFD_ENDPOINT_CONNECTIONLESS )
	{
	    Status = STATUS_SUCCESS;
	    break;
	}

	Status = WarmSocketForConnection( FCB );

	if( !NT_SUCCESS(Status) )
	    break;

	FCB->State = SOCKET_STATE_CONNECTING;

	TdiBuildConnectionInfo
	    ( &TargetAddress,
	      &ConnectReq->RemoteAddress );
	
	if( TargetAddress ) {
	    Status = TdiConnect( &FCB->ConnectIrp.InFlightRequest, 
				 FCB->Connection.Object,
				 TargetAddress,
				 &FCB->ConnectIrp.Iosb,
				 StreamSocketConnectComplete,
				 FCB );

	    ExFreePool( TargetAddress );

	    AFD_DbgPrint(MID_TRACE,("Queueing IRP %x\n", Irp));
	    
	    if( Status == STATUS_PENDING ) 
		return LeaveIrpUntilLater( FCB, Irp, FUNCTION_CONNECT );
	} else Status = STATUS_NO_MEMORY;
	break;

    default:
	AFD_DbgPrint(MID_TRACE,("Inappropriate socket state %d for connect\n",
				FCB->State));
	break;
    }
    
    return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, TRUE );
}
   11443:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11446:	5b                   	pop    %ebx
   11447:	5e                   	pop    %esi
   11448:	5f                   	pop    %edi
   11449:	5d                   	pop    %ebp
   1144a:	c2 0c 00             	ret    $0xc
   1144d:	8d 76 00             	lea    0x0(%esi),%esi
   11450:	50                   	push   %eax
   11451:	50                   	push   %eax
   11452:	53                   	push   %ebx
   11453:	8b 45 0c             	mov    0xc(%ebp),%eax
   11456:	50                   	push   %eax
   11457:	e8 b4 0c 00 00       	call   12110 <_LockRequest>
   1145c:	83 c4 10             	add    $0x10,%esp
   1145f:	85 c0                	test   %eax,%eax
   11461:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   11464:	74 6e                	je     114d4 <_AfdStreamSocketConnect@12+0xc4>
   11466:	57                   	push   %edi
   11467:	57                   	push   %edi
   11468:	8b 5b 08             	mov    0x8(%ebx),%ebx
   1146b:	53                   	push   %ebx
   1146c:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
   1146f:	51                   	push   %ecx
   11470:	e8 0b 12 00 00       	call   12680 <_OskitDumpBuffer>
   11475:	8b 46 04             	mov    0x4(%esi),%eax
   11478:	83 c4 10             	add    $0x10,%esp
   1147b:	83 f8 01             	cmp    $0x1,%eax
   1147e:	74 67                	je     114e7 <_AfdStreamSocketConnect@12+0xd7>
   11480:	72 32                	jb     114b4 <_AfdStreamSocketConnect@12+0xa4>
   11482:	83 f8 02             	cmp    $0x2,%eax
   11485:	0f 84 00 01 00 00    	je     1158b <_AfdStreamSocketConnect@12+0x17b>
   1148b:	83 f8 03             	cmp    $0x3,%eax
   1148e:	0f 84 7b 01 00 00    	je     1160f <_AfdStreamSocketConnect@12+0x1ff>
   11494:	50                   	push   %eax
   11495:	50                   	push   %eax
   11496:	6a 01                	push   $0x1
   11498:	6a 00                	push   $0x0
   1149a:	6a 00                	push   $0x0
   1149c:	8b 45 0c             	mov    0xc(%ebp),%eax
   1149f:	50                   	push   %eax
   114a0:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   114a3:	50                   	push   %eax
   114a4:	56                   	push   %esi
   114a5:	e8 56 10 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
   114aa:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   114ad:	5b                   	pop    %ebx
   114ae:	5e                   	pop    %esi
   114af:	5f                   	pop    %edi
   114b0:	5d                   	pop    %ebp
   114b1:	c2 0c 00             	ret    $0xc
   114b4:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   114b7:	83 ec 0c             	sub    $0xc,%esp
   114ba:	83 c0 0c             	add    $0xc,%eax
   114bd:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   114c0:	50                   	push   %eax
   114c1:	e8 5a 3f 00 00       	call   15420 <_TaCopyTransportAddress>
   114c6:	83 c4 10             	add    $0x10,%esp
   114c9:	85 c0                	test   %eax,%eax
   114cb:	89 46 2c             	mov    %eax,0x2c(%esi)
   114ce:	0f 85 c9 00 00 00    	jne    1159d <_AfdStreamSocketConnect@12+0x18d>
   114d4:	50                   	push   %eax
   114d5:	50                   	push   %eax
   114d6:	6a 01                	push   $0x1
   114d8:	6a 00                	push   $0x0
   114da:	6a 00                	push   $0x0
   114dc:	8b 45 0c             	mov    0xc(%ebp),%eax
   114df:	50                   	push   %eax
   114e0:	68 17 00 00 c0       	push   $0xc0000017
   114e5:	eb bd                	jmp    114a4 <_AfdStreamSocketConnect@12+0x94>
   114e7:	8b 7d e4             	mov    0xffffffe4(%ebp),%edi
   114ea:	83 c7 0c             	add    $0xc,%edi
   114ed:	89 7d e8             	mov    %edi,0xffffffe8(%ebp)
   114f0:	83 ec 0c             	sub    $0xc,%esp
   114f3:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   114f6:	50                   	push   %eax
   114f7:	e8 24 3f 00 00       	call   15420 <_TaCopyTransportAddress>
   114fc:	83 c4 10             	add    $0x10,%esp
   114ff:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   11506:	89 46 30             	mov    %eax,0x30(%esi)
   11509:	f6 46 08 01          	testb  $0x1,0x8(%esi)
   1150d:	75 85                	jne    11494 <_AfdStreamSocketConnect@12+0x84>
   1150f:	83 ec 0c             	sub    $0xc,%esp
   11512:	56                   	push   %esi
   11513:	e8 88 fc ff ff       	call   111a0 <_WarmSocketForConnection>
   11518:	83 c4 10             	add    $0x10,%esp
   1151b:	85 c0                	test   %eax,%eax
   1151d:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11520:	0f 88 6e ff ff ff    	js     11494 <_AfdStreamSocketConnect@12+0x84>
   11526:	c7 46 04 02 00 00 00 	movl   $0x2,0x4(%esi)
   1152d:	50                   	push   %eax
   1152e:	50                   	push   %eax
   1152f:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   11532:	50                   	push   %eax
   11533:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   11536:	50                   	push   %eax
   11537:	e8 24 40 00 00       	call   15560 <_TdiBuildConnectionInfo>
   1153c:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   1153f:	83 c4 10             	add    $0x10,%esp
   11542:	c7 45 ec 17 00 00 c0 	movl   $0xc0000017,0xffffffec(%ebp)
   11549:	85 d2                	test   %edx,%edx
   1154b:	0f 84 43 ff ff ff    	je     11494 <_AfdStreamSocketConnect@12+0x84>
   11551:	50                   	push   %eax
   11552:	50                   	push   %eax
   11553:	8d 46 4c             	lea    0x4c(%esi),%eax
   11556:	56                   	push   %esi
   11557:	68 d0 12 01 00       	push   $0x112d0
   1155c:	50                   	push   %eax
   1155d:	52                   	push   %edx
   1155e:	8b 7e 40             	mov    0x40(%esi),%edi
   11561:	8d 46 48             	lea    0x48(%esi),%eax
   11564:	57                   	push   %edi
   11565:	50                   	push   %eax
   11566:	e8 15 30 00 00       	call   14580 <_TdiConnect>
   1156b:	83 c4 14             	add    $0x14,%esp
   1156e:	8b 5d f0             	mov    0xfffffff0(%ebp),%ebx
   11571:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11574:	53                   	push   %ebx
   11575:	ff 15 1c a1 01 00    	call   *0x1a11c
   1157b:	83 c4 0c             	add    $0xc,%esp
   1157e:	81 7d ec 03 01 00 00 	cmpl   $0x103,0xffffffec(%ebp)
   11585:	0f 85 09 ff ff ff    	jne    11494 <_AfdStreamSocketConnect@12+0x84>
   1158b:	51                   	push   %ecx
   1158c:	6a 00                	push   $0x0
   1158e:	8b 55 0c             	mov    0xc(%ebp),%edx
   11591:	52                   	push   %edx
   11592:	56                   	push   %esi
   11593:	e8 58 10 00 00       	call   125f0 <_LeaveIrpUntilLater>
   11598:	e9 a6 fe ff ff       	jmp    11443 <_AfdStreamSocketConnect@12+0x33>
   1159d:	83 ec 0c             	sub    $0xc,%esp
   115a0:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   115a3:	52                   	push   %edx
   115a4:	e8 b7 3d 00 00       	call   15360 <_TaLengthOfTransportAddress>
   115a9:	8b 56 2c             	mov    0x2c(%esi),%edx
   115ac:	89 c1                	mov    %eax,%ecx
   115ae:	fc                   	cld    
   115af:	89 c3                	mov    %eax,%ebx
   115b1:	89 d7                	mov    %edx,%edi
   115b3:	c1 e9 02             	shr    $0x2,%ecx
   115b6:	31 c0                	xor    %eax,%eax
   115b8:	f3 ab                	repz stos %eax,%es:(%edi)
   115ba:	f6 c3 02             	test   $0x2,%bl
   115bd:	89 fa                	mov    %edi,%edx
   115bf:	74 08                	je     115c9 <_AfdStreamSocketConnect@12+0x1b9>
   115c1:	66 c7 07 00 00       	movw   $0x0,(%edi)
   115c6:	83 c2 02             	add    $0x2,%edx
   115c9:	83 e3 01             	and    $0x1,%ebx
   115cc:	74 03                	je     115d1 <_AfdStreamSocketConnect@12+0x1c1>
   115ce:	c6 02 00             	movb   $0x0,(%edx)
   115d1:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
   115d4:	8b 46 2c             	mov    0x2c(%esi),%eax
   115d7:	66 8b 51 12          	mov    0x12(%ecx),%dx
   115db:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
   115e1:	66 89 50 06          	mov    %dx,0x6(%eax)
   115e5:	66 8b 51 10          	mov    0x10(%ecx),%dx
   115e9:	66 89 50 04          	mov    %dx,0x4(%eax)
   115ed:	89 34 24             	mov    %esi,(%esp)
   115f0:	e8 0b fa ff ff       	call   11000 <_WarmSocketForBind>
   115f5:	83 c4 10             	add    $0x10,%esp
   115f8:	85 c0                	test   %eax,%eax
   115fa:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   115fd:	0f 88 91 fe ff ff    	js     11494 <_AfdStreamSocketConnect@12+0x84>
   11603:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
   1160a:	e9 e1 fe ff ff       	jmp    114f0 <_AfdStreamSocketConnect@12+0xe0>
   1160f:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   11616:	e9 79 fe ff ff       	jmp    11494 <_AfdStreamSocketConnect@12+0x84>
   1161b:	90                   	nop    
   1161c:	90                   	nop    
   1161d:	90                   	nop    
   1161e:	90                   	nop    
   1161f:	90                   	nop    

00011620 <_AfdGetContext@12>:
   11620:	55                   	push   %ebp
   11621:	89 e5                	mov    %esp,%ebp
   11623:	57                   	push   %edi
   11624:	56                   	push   %esi
   11625:	53                   	push   %ebx
   11626:	83 ec 18             	sub    $0x18,%esp
   11629:	c7 45 f0 0d 00 00 c0 	movl   $0xc000000d,0xfffffff0(%ebp)
   11630:	8b 45 10             	mov    0x10(%ebp),%eax
   11633:	8b 7d 0c             	mov    0xc(%ebp),%edi
   11636:	8b 50 18             	mov    0x18(%eax),%edx
   11639:	8b 70 04             	mov    0x4(%eax),%esi
   1163c:	8b 5a 0c             	mov    0xc(%edx),%ebx
   1163f:	53                   	push   %ebx
   11640:	e8 bb 0d 00 00       	call   12400 <_SocketAcquireStateLock>
   11645:	83 c4 10             	add    $0x10,%esp
   11648:	85 c0                	test   %eax,%eax
   1164a:	74 58                	je     116a4 <_AfdGetContext@12+0x84>
   1164c:	8b 83 04 01 00 00    	mov    0x104(%ebx),%eax
   11652:	39 f0                	cmp    %esi,%eax
   11654:	72 2a                	jb     11680 <_AfdGetContext@12+0x60>
   11656:	8b 83 fc 00 00 00    	mov    0xfc(%ebx),%eax
   1165c:	85 c0                	test   %eax,%eax
   1165e:	75 2c                	jne    1168c <_AfdGetContext@12+0x6c>
   11660:	52                   	push   %edx
   11661:	52                   	push   %edx
   11662:	6a 00                	push   $0x0
   11664:	6a 00                	push   $0x0
   11666:	6a 00                	push   $0x0
   11668:	57                   	push   %edi
   11669:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   1166c:	50                   	push   %eax
   1166d:	53                   	push   %ebx
   1166e:	e8 8d 0e 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
   11673:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11676:	5b                   	pop    %ebx
   11677:	5e                   	pop    %esi
   11678:	5f                   	pop    %edi
   11679:	5d                   	pop    %ebp
   1167a:	c2 0c 00             	ret    $0xc
   1167d:	8d 76 00             	lea    0x0(%esi),%esi
   11680:	89 c6                	mov    %eax,%esi
   11682:	8b 83 fc 00 00 00    	mov    0xfc(%ebx),%eax
   11688:	85 c0                	test   %eax,%eax
   1168a:	74 d4                	je     11660 <_AfdGetContext@12+0x40>
   1168c:	52                   	push   %edx
   1168d:	56                   	push   %esi
   1168e:	50                   	push   %eax
   1168f:	8b 4f 3c             	mov    0x3c(%edi),%ecx
   11692:	51                   	push   %ecx
   11693:	e8 a8 49 00 00       	call   16040 <_memcpy>
   11698:	83 c4 10             	add    $0x10,%esp
   1169b:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   116a2:	eb bc                	jmp    11660 <_AfdGetContext@12+0x40>
   116a4:	51                   	push   %ecx
   116a5:	51                   	push   %ecx
   116a6:	6a 01                	push   $0x1
   116a8:	57                   	push   %edi
   116a9:	e8 e2 0e 00 00       	call   12590 <_LostSocket>
   116ae:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   116b1:	5b                   	pop    %ebx
   116b2:	5e                   	pop    %esi
   116b3:	5f                   	pop    %edi
   116b4:	5d                   	pop    %ebp
   116b5:	c2 0c 00             	ret    $0xc
   116b8:	90                   	nop    
   116b9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000116c0 <_AfdSetContext@12>:
   116c0:	55                   	push   %ebp
   116c1:	89 e5                	mov    %esp,%ebp
   116c3:	57                   	push   %edi
   116c4:	56                   	push   %esi
   116c5:	53                   	push   %ebx
   116c6:	83 ec 18             	sub    $0x18,%esp
   116c9:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
   116ce:	8b 75 10             	mov    0x10(%ebp),%esi
   116d1:	8b 46 18             	mov    0x18(%esi),%eax
   116d4:	8b 58 0c             	mov    0xc(%eax),%ebx
   116d7:	53                   	push   %ebx
   116d8:	e8 23 0d 00 00       	call   12400 <_SocketAcquireStateLock>
   116dd:	83 c4 10             	add    $0x10,%esp
   116e0:	85 c0                	test   %eax,%eax
   116e2:	74 6c                	je     11750 <_AfdSetContext@12+0x90>
   116e4:	8b 46 08             	mov    0x8(%esi),%eax
   116e7:	39 83 04 01 00 00    	cmp    %eax,0x104(%ebx)
   116ed:	72 27                	jb     11716 <_AfdSetContext@12+0x56>
   116ef:	8b 83 fc 00 00 00    	mov    0xfc(%ebx),%eax
   116f5:	85 c0                	test   %eax,%eax
   116f7:	75 41                	jne    1173a <_AfdSetContext@12+0x7a>
   116f9:	50                   	push   %eax
   116fa:	50                   	push   %eax
   116fb:	6a 00                	push   $0x0
   116fd:	6a 00                	push   $0x0
   116ff:	6a 00                	push   $0x0
   11701:	8b 75 0c             	mov    0xc(%ebp),%esi
   11704:	56                   	push   %esi
   11705:	57                   	push   %edi
   11706:	53                   	push   %ebx
   11707:	e8 f4 0d 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
   1170c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1170f:	5b                   	pop    %ebx
   11710:	5e                   	pop    %esi
   11711:	5f                   	pop    %edi
   11712:	5d                   	pop    %ebp
   11713:	c2 0c 00             	ret    $0xc
   11716:	8b 83 fc 00 00 00    	mov    0xfc(%ebx),%eax
   1171c:	85 c0                	test   %eax,%eax
   1171e:	75 47                	jne    11767 <_AfdSetContext@12+0xa7>
   11720:	50                   	push   %eax
   11721:	50                   	push   %eax
   11722:	8b 4e 08             	mov    0x8(%esi),%ecx
   11725:	51                   	push   %ecx
   11726:	6a 01                	push   $0x1
   11728:	ff 15 18 a1 01 00    	call   *0x1a118
   1172e:	85 c0                	test   %eax,%eax
   11730:	89 83 fc 00 00 00    	mov    %eax,0xfc(%ebx)
   11736:	59                   	pop    %ecx
   11737:	5a                   	pop    %edx
   11738:	74 bf                	je     116f9 <_AfdSetContext@12+0x39>
   1173a:	52                   	push   %edx
   1173b:	8b 4e 08             	mov    0x8(%esi),%ecx
   1173e:	31 ff                	xor    %edi,%edi
   11740:	51                   	push   %ecx
   11741:	8b 56 10             	mov    0x10(%esi),%edx
   11744:	52                   	push   %edx
   11745:	50                   	push   %eax
   11746:	e8 f5 48 00 00       	call   16040 <_memcpy>
   1174b:	83 c4 10             	add    $0x10,%esp
   1174e:	eb a9                	jmp    116f9 <_AfdSetContext@12+0x39>
   11750:	50                   	push   %eax
   11751:	50                   	push   %eax
   11752:	6a 01                	push   $0x1
   11754:	8b 45 0c             	mov    0xc(%ebp),%eax
   11757:	50                   	push   %eax
   11758:	e8 33 0e 00 00       	call   12590 <_LostSocket>
   1175d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11760:	5b                   	pop    %ebx
   11761:	5e                   	pop    %esi
   11762:	5f                   	pop    %edi
   11763:	5d                   	pop    %ebp
   11764:	c2 0c 00             	ret    $0xc
   11767:	83 ec 0c             	sub    $0xc,%esp
   1176a:	50                   	push   %eax
   1176b:	ff 15 1c a1 01 00    	call   *0x1a11c
   11771:	83 c4 0c             	add    $0xc,%esp
   11774:	eb aa                	jmp    11720 <_AfdSetContext@12+0x60>
   11776:	90                   	nop    
   11777:	90                   	nop    
   11778:	90                   	nop    
   11779:	90                   	nop    
   1177a:	90                   	nop    
   1177b:	90                   	nop    
   1177c:	90                   	nop    
   1177d:	90                   	nop    
   1177e:	90                   	nop    
   1177f:	90                   	nop    

00011780 <__SEHCompilerSpecificHandler@4>:
static __declspec(noreturn) __inline void __stdcall _SEHCompilerSpecificHandler
(
 _SEHPortableFrame_t * frame
)
{
   11780:	55                   	push   %ebp
   11781:	89 e5                	mov    %esp,%ebp
   11783:	83 ec 10             	sub    $0x10,%esp
 _SEHFrame_t * myframe;
 myframe = (_SEHFrame_t *)(((char *)frame) - offsetof(_SEHFrame_t, SEH_Header));
 _SEHLongJmp(myframe->SEH_JmpBuf, 1);
   11786:	8b 45 08             	mov    0x8(%ebp),%eax
   11789:	6a 01                	push   $0x1
   1178b:	83 c0 14             	add    $0x14,%eax
   1178e:	50                   	push   %eax
   1178f:	e8 ed 46 00 00       	call   15e81 <SEHLongJmp>
   11794:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1179a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000117a0 <_AfdGetInfo@12>:
   117a0:	55                   	push   %ebp
   117a1:	89 e5                	mov    %esp,%ebp
   117a3:	57                   	push   %edi
   117a4:	56                   	push   %esi
   117a5:	53                   	push   %ebx
   117a6:	83 ec 6c             	sub    $0x6c,%esp
   117a9:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
   117b0:	8b 45 10             	mov    0x10(%ebp),%eax
   117b3:	8d 5c 24 0f          	lea    0xf(%esp),%ebx
   117b7:	83 ec 0c             	sub    $0xc,%esp
   117ba:	8b 70 10             	mov    0x10(%eax),%esi
   117bd:	8b 40 18             	mov    0x18(%eax),%eax
   117c0:	83 e3 f0             	and    $0xfffffff0,%ebx
   117c3:	c7 45 dc 80 17 01 00 	movl   $0x11780,0xffffffdc(%ebp)
   117ca:	8b 78 0c             	mov    0xc(%eax),%edi
   117cd:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   117d0:	89 43 10             	mov    %eax,0x10(%ebx)
   117d3:	c7 45 d8 03 00 00 00 	movl   $0x3,0xffffffd8(%ebp)
   117da:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   117e1:	c7 43 2c 00 90 01 00 	movl   $0x19000,0x2c(%ebx)
   117e8:	8d 43 14             	lea    0x14(%ebx),%eax
   117eb:	50                   	push   %eax
   117ec:	e8 6f 46 00 00       	call   15e60 <SEHSetJmp>
   117f1:	83 c4 0c             	add    $0xc,%esp
   117f4:	85 c0                	test   %eax,%eax
   117f6:	75 68                	jne    11860 <_AfdGetInfo@12+0xc0>
   117f8:	83 ec 0c             	sub    $0xc,%esp
   117fb:	53                   	push   %ebx
   117fc:	e8 7f 47 00 00       	call   15f80 <__SEHEnter@4>
   11801:	57                   	push   %edi
   11802:	e8 f9 0b 00 00       	call   12400 <_SocketAcquireStateLock>
   11807:	83 c4 10             	add    $0x10,%esp
   1180a:	85 c0                	test   %eax,%eax
   1180c:	0f 84 8e 00 00 00    	je     118a0 <_AfdGetInfo@12+0x100>
   11812:	8b 06                	mov    (%esi),%eax
   11814:	83 f8 06             	cmp    $0x6,%eax
   11817:	0f 84 a3 00 00 00    	je     118c0 <_AfdGetInfo@12+0x120>
   1181d:	0f 86 94 00 00 00    	jbe    118b7 <_AfdGetInfo@12+0x117>
   11823:	83 f8 07             	cmp    $0x7,%eax
   11826:	0f 84 ae 00 00 00    	je     118da <_AfdGetInfo@12+0x13a>
   1182c:	83 f8 10             	cmp    $0x10,%eax
   1182f:	0f 84 99 00 00 00    	je     118ce <_AfdGetInfo@12+0x12e>
   11835:	c7 45 d4 0d 00 00 c0 	movl   $0xc000000d,0xffffffd4(%ebp)
   1183c:	83 ec 0c             	sub    $0xc,%esp
   1183f:	53                   	push   %ebx
   11840:	e8 6b 47 00 00       	call   15fb0 <__SEHLeave@4>
   11845:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   11848:	83 c4 0c             	add    $0xc,%esp
   1184b:	85 c0                	test   %eax,%eax
   1184d:	74 2b                	je     1187a <_AfdGetInfo@12+0xda>
   1184f:	83 ec 0c             	sub    $0xc,%esp
   11852:	53                   	push   %ebx
   11853:	ff d0                	call   *%eax
   11855:	83 c4 0c             	add    $0xc,%esp
   11858:	eb 20                	jmp    1187a <_AfdGetInfo@12+0xda>
   1185a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   11860:	83 ec 0c             	sub    $0xc,%esp
   11863:	53                   	push   %ebx
   11864:	e8 47 47 00 00       	call   15fb0 <__SEHLeave@4>
   11869:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   1186c:	83 c4 0c             	add    $0xc,%esp
   1186f:	c7 45 d4 0d 00 00 c0 	movl   $0xc000000d,0xffffffd4(%ebp)
   11876:	85 c0                	test   %eax,%eax
   11878:	75 d5                	jne    1184f <_AfdGetInfo@12+0xaf>
   1187a:	51                   	push   %ecx
   1187b:	51                   	push   %ecx
   1187c:	6a 00                	push   $0x0
   1187e:	6a 00                	push   $0x0
   11880:	6a 00                	push   $0x0
   11882:	8b 55 0c             	mov    0xc(%ebp),%edx
   11885:	52                   	push   %edx
   11886:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   11889:	50                   	push   %eax
   1188a:	57                   	push   %edi
   1188b:	e8 70 0c 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
   11890:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11893:	5b                   	pop    %ebx
   11894:	5e                   	pop    %esi
   11895:	5f                   	pop    %edi
   11896:	5d                   	pop    %ebp
   11897:	c2 0c 00             	ret    $0xc
   1189a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   118a0:	56                   	push   %esi
   118a1:	56                   	push   %esi
   118a2:	6a 01                	push   $0x1
   118a4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   118a7:	53                   	push   %ebx
   118a8:	e8 e3 0c 00 00       	call   12590 <_LostSocket>
   118ad:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   118b0:	5b                   	pop    %ebx
   118b1:	5e                   	pop    %esi
   118b2:	5f                   	pop    %edi
   118b3:	5d                   	pop    %ebp
   118b4:	c2 0c 00             	ret    $0xc
   118b7:	83 f8 02             	cmp    $0x2,%eax
   118ba:	e9 70 ff ff ff       	jmp    1182f <_AfdGetInfo@12+0x8f>
   118bf:	90                   	nop    
   118c0:	8b 87 b0 00 00 00    	mov    0xb0(%edi),%eax
   118c6:	89 46 08             	mov    %eax,0x8(%esi)
   118c9:	e9 6e ff ff ff       	jmp    1183c <_AfdGetInfo@12+0x9c>
   118ce:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
   118d5:	e9 62 ff ff ff       	jmp    1183c <_AfdGetInfo@12+0x9c>
   118da:	8b 87 a0 00 00 00    	mov    0xa0(%edi),%eax
   118e0:	89 46 08             	mov    %eax,0x8(%esi)
   118e3:	e9 54 ff ff ff       	jmp    1183c <_AfdGetInfo@12+0x9c>
   118e8:	90                   	nop    
   118e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000118f0 <_AfdGetSockOrPeerName@16>:
   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 38             	sub    $0x38,%esp
   118f9:	c7 45 c8 00 00 00 00 	movl   $0x0,0xffffffc8(%ebp)
   11900:	8b 5d 10             	mov    0x10(%ebp),%ebx
   11903:	8a 45 14             	mov    0x14(%ebp),%al
   11906:	88 45 d3             	mov    %al,0xffffffd3(%ebp)
   11909:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
   11910:	8b 43 18             	mov    0x18(%ebx),%eax
   11913:	31 ff                	xor    %edi,%edi
   11915:	8b 70 0c             	mov    0xc(%eax),%esi
   11918:	56                   	push   %esi
   11919:	e8 e2 0a 00 00       	call   12400 <_SocketAcquireStateLock>
   1191e:	83 c4 10             	add    $0x10,%esp
   11921:	85 c0                	test   %eax,%eax
   11923:	0f 84 ee 00 00 00    	je     11a17 <_AfdGetSockOrPeerName@16+0x127>
   11929:	8b 46 38             	mov    0x38(%esi),%eax
   1192c:	85 c0                	test   %eax,%eax
   1192e:	75 21                	jne    11951 <_AfdGetSockOrPeerName@16+0x61>
   11930:	50                   	push   %eax
   11931:	50                   	push   %eax
   11932:	6a 00                	push   $0x0
   11934:	6a 00                	push   $0x0
   11936:	6a 00                	push   $0x0
   11938:	8b 7d 0c             	mov    0xc(%ebp),%edi
   1193b:	57                   	push   %edi
   1193c:	68 01 00 00 c0       	push   $0xc0000001

	if( NT_SUCCESS(Status) ) {
            if( Local ) {
                Status = TdiQueryInformation
                    ( FCB->AddressFile.Object,
                      TDI_QUERY_ADDRESS_INFO,
                      Mdl );
            } else {
                if( !NT_SUCCESS
                    ( Status = TdiBuildNullConnectionInfo
                      ( &ConnInfo, 
                        FCB->LocalAddress->Address[0].AddressType ) ) ) {
                    SysMdl = IoAllocateMdl
                        ( ConnInfo, 
                          sizeof( TDI_CONNECTION_INFORMATION ) +
                          TaLengthOfTransportAddress
                          ( ConnInfo->RemoteAddress ),
                          FALSE,
                          FALSE,
                          NULL );
                }

                if( SysMdl ) {
                    MmBuildMdlForNonPagedPool( SysMdl );
                    Status = TdiQueryInformation
                        ( FCB->AddressFile.Object,
                          TDI_QUERY_CONNECTION_INFO,
                          SysMdl );
                } else Status = STATUS_NO_MEMORY;
                
                if( NT_SUCCESS(Status) ) {
                    TransAddr = 
                        (PTRANSPORT_ADDRESS)MmMapLockedPages
                        ( Mdl, IoModifyAccess );
                }
                
                if( TransAddr ) 
                    RtlCopyMemory( TransAddr, ConnInfo->RemoteAddress,
                                   TaLengthOfTransportAddress
                                   ( ConnInfo->RemoteAddress ) );
                
                if( ConnInfo ) ExFreePool( ConnInfo );
                if( SysMdl ) IoFreeMdl( SysMdl );
            }
	}
        
	/* MmUnlockPages( Mdl ); */
	IoFreeMdl( Mdl );
    } else {
    	Status = STATUS_INSUFFICIENT_RESOURCES;
    }
    
    AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));

    return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, FALSE );
   11941:	56                   	push   %esi
   11942:	e8 b9 0b 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
}
   11947:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1194a:	5b                   	pop    %ebx
   1194b:	5e                   	pop    %esi
   1194c:	5f                   	pop    %edi
   1194d:	5d                   	pop    %ebp
   1194e:	c2 10 00             	ret    $0x10
   11951:	83 ec 0c             	sub    $0xc,%esp
   11954:	6a 00                	push   $0x0
   11956:	6a 00                	push   $0x0
   11958:	6a 00                	push   $0x0
   1195a:	8b 5b 04             	mov    0x4(%ebx),%ebx
   1195d:	53                   	push   %ebx
   1195e:	8b 55 0c             	mov    0xc(%ebp),%edx
   11961:	8b 4a 3c             	mov    0x3c(%edx),%ecx
   11964:	51                   	push   %ecx
   11965:	ff 15 20 a1 01 00    	call   *0x1a120
   1196b:	83 c4 0c             	add    $0xc,%esp
   1196e:	85 c0                	test   %eax,%eax
   11970:	89 45 cc             	mov    %eax,0xffffffcc(%ebp)
   11973:	0f 84 e7 00 00 00    	je     11a60 <_AfdGetSockOrPeerName@16+0x170>
   11979:	83 ec 40             	sub    $0x40,%esp
   1197c:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   1197f:	c7 45 dc 80 17 01 00 	movl   $0x11780,0xffffffdc(%ebp)
   11986:	c7 45 d8 03 00 00 00 	movl   $0x3,0xffffffd8(%ebp)
   1198d:	8d 5c 24 0f          	lea    0xf(%esp),%ebx
   11991:	83 ec 0c             	sub    $0xc,%esp
   11994:	83 e3 f0             	and    $0xfffffff0,%ebx
   11997:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   1199e:	89 43 10             	mov    %eax,0x10(%ebx)
   119a1:	c7 43 2c 00 90 01 00 	movl   $0x19000,0x2c(%ebx)
   119a8:	8d 43 14             	lea    0x14(%ebx),%eax
   119ab:	50                   	push   %eax
   119ac:	e8 af 44 00 00       	call   15e60 <SEHSetJmp>
   119b1:	83 c4 0c             	add    $0xc,%esp
   119b4:	85 c0                	test   %eax,%eax
   119b6:	74 78                	je     11a30 <_AfdGetSockOrPeerName@16+0x140>
   119b8:	83 ec 0c             	sub    $0xc,%esp
   119bb:	53                   	push   %ebx
   119bc:	e8 ef 45 00 00       	call   15fb0 <__SEHLeave@4>
   119c1:	8b 7b 08             	mov    0x8(%ebx),%edi
   119c4:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   119c7:	83 c4 0c             	add    $0xc,%esp
   119ca:	85 c0                	test   %eax,%eax
   119cc:	0f 85 e4 00 00 00    	jne    11ab6 <_AfdGetSockOrPeerName@16+0x1c6>
   119d2:	85 ff                	test   %edi,%edi
   119d4:	78 1f                	js     119f5 <_AfdGetSockOrPeerName@16+0x105>
   119d6:	80 7d d3 00          	cmpb   $0x0,0xffffffd3(%ebp)
   119da:	0f 84 87 00 00 00    	je     11a67 <_AfdGetSockOrPeerName@16+0x177>
   119e0:	50                   	push   %eax
   119e1:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
   119e4:	50                   	push   %eax
   119e5:	6a 03                	push   $0x3
   119e7:	8b 46 38             	mov    0x38(%esi),%eax
   119ea:	50                   	push   %eax
   119eb:	e8 70 2f 00 00       	call   14960 <_TdiQueryInformation>
   119f0:	83 c4 10             	add    $0x10,%esp
   119f3:	89 c7                	mov    %eax,%edi
   119f5:	83 ec 0c             	sub    $0xc,%esp
   119f8:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
   119fb:	50                   	push   %eax
   119fc:	ff 15 34 a1 01 00    	call   *0x1a134
   11a02:	83 c4 0c             	add    $0xc,%esp
   11a05:	50                   	push   %eax
   11a06:	50                   	push   %eax
   11a07:	6a 00                	push   $0x0
   11a09:	6a 00                	push   $0x0
   11a0b:	6a 00                	push   $0x0
   11a0d:	8b 45 0c             	mov    0xc(%ebp),%eax
   11a10:	50                   	push   %eax
   11a11:	57                   	push   %edi
   11a12:	e9 2a ff ff ff       	jmp    11941 <_AfdGetSockOrPeerName@16+0x51>
   11a17:	50                   	push   %eax
   11a18:	50                   	push   %eax
   11a19:	6a 00                	push   $0x0
   11a1b:	8b 45 0c             	mov    0xc(%ebp),%eax
   11a1e:	50                   	push   %eax
   11a1f:	e8 6c 0b 00 00       	call   12590 <_LostSocket>
   11a24:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11a27:	5b                   	pop    %ebx
   11a28:	5e                   	pop    %esi
   11a29:	5f                   	pop    %edi
   11a2a:	5d                   	pop    %ebp
   11a2b:	c2 10 00             	ret    $0x10
   11a2e:	89 f6                	mov    %esi,%esi
   11a30:	83 ec 0c             	sub    $0xc,%esp
   11a33:	53                   	push   %ebx
   11a34:	e8 47 45 00 00       	call   15f80 <__SEHEnter@4>
   11a39:	58                   	pop    %eax
   11a3a:	5a                   	pop    %edx
   11a3b:	6a 02                	push   $0x2
   11a3d:	31 c0                	xor    %eax,%eax
   11a3f:	8b 55 0c             	mov    0xc(%ebp),%edx
   11a42:	8a 42 20             	mov    0x20(%edx),%al
   11a45:	50                   	push   %eax
   11a46:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
   11a49:	50                   	push   %eax
   11a4a:	ff 15 70 a1 01 00    	call   *0x1a170
   11a50:	50                   	push   %eax
   11a51:	50                   	push   %eax
   11a52:	53                   	push   %ebx
   11a53:	e8 58 45 00 00       	call   15fb0 <__SEHLeave@4>
   11a58:	e9 67 ff ff ff       	jmp    119c4 <_AfdGetSockOrPeerName@16+0xd4>
   11a5d:	8d 76 00             	lea    0x0(%esi),%esi
   11a60:	bf 9a 00 00 c0       	mov    $0xc000009a,%edi
   11a65:	eb 9e                	jmp    11a05 <_AfdGetSockOrPeerName@16+0x115>
   11a67:	57                   	push   %edi
   11a68:	57                   	push   %edi
   11a69:	8b 46 2c             	mov    0x2c(%esi),%eax
   11a6c:	66 8b 40 06          	mov    0x6(%eax),%ax
   11a70:	25 ff ff 00 00       	and    $0xffff,%eax
   11a75:	50                   	push   %eax
   11a76:	8d 45 d4             	lea    0xffffffd4(%ebp),%eax
   11a79:	50                   	push   %eax
   11a7a:	e8 51 3a 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   11a7f:	83 c4 10             	add    $0x10,%esp
   11a82:	85 c0                	test   %eax,%eax
   11a84:	78 3e                	js     11ac4 <_AfdGetSockOrPeerName@16+0x1d4>
   11a86:	bf 17 00 00 c0       	mov    $0xc0000017,%edi
   11a8b:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   11a8e:	85 c0                	test   %eax,%eax
   11a90:	0f 85 cb 00 00 00    	jne    11b61 <_AfdGetSockOrPeerName@16+0x271>
   11a96:	8b 45 c8             	mov    0xffffffc8(%ebp),%eax
   11a99:	85 c0                	test   %eax,%eax
   11a9b:	0f 84 54 ff ff ff    	je     119f5 <_AfdGetSockOrPeerName@16+0x105>
   11aa1:	83 ec 0c             	sub    $0xc,%esp
   11aa4:	8b 45 c8             	mov    0xffffffc8(%ebp),%eax
   11aa7:	50                   	push   %eax
   11aa8:	ff 15 34 a1 01 00    	call   *0x1a134
   11aae:	83 c4 0c             	add    $0xc,%esp
   11ab1:	e9 3f ff ff ff       	jmp    119f5 <_AfdGetSockOrPeerName@16+0x105>
   11ab6:	83 ec 0c             	sub    $0xc,%esp
   11ab9:	53                   	push   %ebx
   11aba:	ff d0                	call   *%eax
   11abc:	83 c4 0c             	add    $0xc,%esp
   11abf:	e9 0e ff ff ff       	jmp    119d2 <_AfdGetSockOrPeerName@16+0xe2>
   11ac4:	83 ec 0c             	sub    $0xc,%esp
   11ac7:	6a 00                	push   $0x0
   11ac9:	6a 00                	push   $0x0
   11acb:	6a 00                	push   $0x0
   11acd:	53                   	push   %ebx
   11ace:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   11ad1:	8b 48 14             	mov    0x14(%eax),%ecx
   11ad4:	51                   	push   %ecx
   11ad5:	e8 86 38 00 00       	call   15360 <_TaLengthOfTransportAddress>
   11ada:	5f                   	pop    %edi
   11adb:	83 c0 18             	add    $0x18,%eax
   11ade:	5a                   	pop    %edx
   11adf:	50                   	push   %eax
   11ae0:	8b 5d d4             	mov    0xffffffd4(%ebp),%ebx
   11ae3:	53                   	push   %ebx
   11ae4:	ff 15 20 a1 01 00    	call   *0x1a120
   11aea:	83 c4 0c             	add    $0xc,%esp
   11aed:	85 c0                	test   %eax,%eax
   11aef:	89 45 c8             	mov    %eax,0xffffffc8(%ebp)
   11af2:	74 92                	je     11a86 <_AfdGetSockOrPeerName@16+0x196>
   11af4:	83 ec 0c             	sub    $0xc,%esp
   11af7:	8b 4d c8             	mov    0xffffffc8(%ebp),%ecx
   11afa:	51                   	push   %ecx
   11afb:	ff 15 68 a1 01 00    	call   *0x1a168
   11b01:	58                   	pop    %eax
   11b02:	8b 45 c8             	mov    0xffffffc8(%ebp),%eax
   11b05:	5a                   	pop    %edx
   11b06:	50                   	push   %eax
   11b07:	6a 04                	push   $0x4
   11b09:	8b 46 38             	mov    0x38(%esi),%eax
   11b0c:	50                   	push   %eax
   11b0d:	e8 4e 2e 00 00       	call   14960 <_TdiQueryInformation>
   11b12:	83 c4 10             	add    $0x10,%esp
   11b15:	89 c7                	mov    %eax,%edi
   11b17:	85 c0                	test   %eax,%eax
   11b19:	0f 88 6c ff ff ff    	js     11a8b <_AfdGetSockOrPeerName@16+0x19b>
   11b1f:	50                   	push   %eax
   11b20:	50                   	push   %eax
   11b21:	6a 02                	push   $0x2
   11b23:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
   11b26:	50                   	push   %eax
   11b27:	ff 15 6c a1 01 00    	call   *0x1a16c
   11b2d:	89 c3                	mov    %eax,%ebx
   11b2f:	59                   	pop    %ecx
   11b30:	85 db                	test   %ebx,%ebx
   11b32:	58                   	pop    %eax
   11b33:	0f 84 52 ff ff ff    	je     11a8b <_AfdGetSockOrPeerName@16+0x19b>
   11b39:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   11b3c:	83 ec 0c             	sub    $0xc,%esp
   11b3f:	8b 50 14             	mov    0x14(%eax),%edx
   11b42:	52                   	push   %edx
   11b43:	e8 18 38 00 00       	call   15360 <_TaLengthOfTransportAddress>
   11b48:	83 c4 0c             	add    $0xc,%esp
   11b4b:	50                   	push   %eax
   11b4c:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   11b4f:	8b 40 14             	mov    0x14(%eax),%eax
   11b52:	50                   	push   %eax
   11b53:	53                   	push   %ebx
   11b54:	e8 e7 44 00 00       	call   16040 <_memcpy>
   11b59:	83 c4 10             	add    $0x10,%esp
   11b5c:	e9 2a ff ff ff       	jmp    11a8b <_AfdGetSockOrPeerName@16+0x19b>
   11b61:	83 ec 0c             	sub    $0xc,%esp
   11b64:	50                   	push   %eax
   11b65:	ff 15 1c a1 01 00    	call   *0x1a11c
   11b6b:	83 c4 0c             	add    $0xc,%esp
   11b6e:	e9 23 ff ff ff       	jmp    11a96 <_AfdGetSockOrPeerName@16+0x1a6>
   11b73:	90                   	nop    
   11b74:	90                   	nop    
   11b75:	90                   	nop    
   11b76:	90                   	nop    
   11b77:	90                   	nop    
   11b78:	90                   	nop    
   11b79:	90                   	nop    
   11b7a:	90                   	nop    
   11b7b:	90                   	nop    
   11b7c:	90                   	nop    
   11b7d:	90                   	nop    
   11b7e:	90                   	nop    
   11b7f:	90                   	nop    

00011b80 <_SatisfyAccept>:
   11b80:	55                   	push   %ebp
   11b81:	89 e5                	mov    %esp,%ebp
   11b83:	57                   	push   %edi
   11b84:	56                   	push   %esi
   11b85:	53                   	push   %ebx
   11b86:	83 ec 18             	sub    $0x18,%esp
   11b89:	8b 45 08             	mov    0x8(%ebp),%eax
   11b8c:	8b 75 0c             	mov    0xc(%ebp),%esi
   11b8f:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   11b92:	8b 45 10             	mov    0x10(%ebp),%eax
   11b95:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11b98:	8b 7d 14             	mov    0x14(%ebp),%edi
   11b9b:	8b 58 0c             	mov    0xc(%eax),%ebx
   11b9e:	53                   	push   %ebx
   11b9f:	e8 5c 08 00 00       	call   12400 <_SocketAcquireStateLock>
   11ba4:	83 c4 10             	add    $0x10,%esp
   11ba7:	85 c0                	test   %eax,%eax
   11ba9:	75 08                	jne    11bb3 <_SatisfyAccept+0x33>
   11bab:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11bae:	5b                   	pop    %ebx
   11baf:	5e                   	pop    %esi
   11bb0:	5f                   	pop    %edi
   11bb1:	5d                   	pop    %ebp
   11bb2:	c3                   	ret    
   11bb3:	8b 47 10             	mov    0x10(%edi),%eax
   11bb6:	8b 57 14             	mov    0x14(%edi),%edx
   11bb9:	89 43 40             	mov    %eax,0x40(%ebx)
   11bbc:	8b 47 0c             	mov    0xc(%edi),%eax
   11bbf:	83 ec 0c             	sub    $0xc,%esp
   11bc2:	89 53 44             	mov    %edx,0x44(%ebx)
   11bc5:	c7 43 04 03 00 00 00 	movl   $0x3,0x4(%ebx)
   11bcc:	8b 40 14             	mov    0x14(%eax),%eax
   11bcf:	50                   	push   %eax
   11bd0:	e8 4b 38 00 00       	call   15420 <_TaCopyTransportAddress>
   11bd5:	89 f1                	mov    %esi,%ecx
   11bd7:	ba 02 00 00 00       	mov    $0x2,%edx
   11bdc:	89 43 30             	mov    %eax,0x30(%ebx)
   11bdf:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
   11be6:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
   11bed:	ff 15 0c a1 01 00    	call   *0x1a10c
   11bf3:	89 1c 24             	mov    %ebx,(%esp)
   11bf6:	e8 45 f6 ff ff       	call   11240 <_MakeSocketIntoConnection>
   11bfb:	8b bb 00 01 00 00    	mov    0x100(%ebx),%edi
   11c01:	83 cf 04             	or     $0x4,%edi
   11c04:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   11c07:	89 bb 00 01 00 00    	mov    %edi,0x100(%ebx)
   11c0d:	59                   	pop    %ecx
   11c0e:	5e                   	pop    %esi
   11c0f:	52                   	push   %edx
   11c10:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11c13:	50                   	push   %eax
   11c14:	e8 d7 25 00 00       	call   141f0 <_PollReeval>
   11c19:	89 5d 08             	mov    %ebx,0x8(%ebp)
   11c1c:	83 c4 10             	add    $0x10,%esp
   11c1f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11c22:	5b                   	pop    %ebx
   11c23:	5e                   	pop    %esi
   11c24:	5f                   	pop    %edi
   11c25:	5d                   	pop    %ebp
   11c26:	e9 75 08 00 00       	jmp    124a0 <_SocketStateUnlock>
   11c2b:	90                   	nop    
   11c2c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011c30 <_SatisfyPreAccept>:
   11c30:	55                   	push   %ebp
   11c31:	89 e5                	mov    %esp,%ebp
   11c33:	57                   	push   %edi
   11c34:	56                   	push   %esi
   11c35:	53                   	push   %ebx
   11c36:	83 ec 14             	sub    $0x14,%esp
   11c39:	8b 7d 08             	mov    0x8(%ebp),%edi
   11c3c:	8b 55 0c             	mov    0xc(%ebp),%edx
   11c3f:	8b 77 0c             	mov    0xc(%edi),%esi
   11c42:	8b 42 08             	mov    0x8(%edx),%eax
   11c45:	89 06                	mov    %eax,(%esi)
   11c47:	8b 42 0c             	mov    0xc(%edx),%eax
   11c4a:	8d 5e 04             	lea    0x4(%esi),%ebx
   11c4d:	8b 40 14             	mov    0x14(%eax),%eax
   11c50:	50                   	push   %eax
   11c51:	53                   	push   %ebx
   11c52:	29 f3                	sub    %esi,%ebx
   11c54:	e8 87 37 00 00       	call   153e0 <_TaCopyTransportAddressInPlace>
   11c59:	83 c3 16             	add    $0x16,%ebx
   11c5c:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
   11c63:	89 5f 1c             	mov    %ebx,0x1c(%edi)
   11c66:	83 c4 10             	add    $0x10,%esp
   11c69:	a1 0c a1 01 00       	mov    0x1a10c,%eax
   11c6e:	89 f9                	mov    %edi,%ecx
   11c70:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11c73:	ba 02 00 00 00       	mov    $0x2,%edx
   11c78:	5b                   	pop    %ebx
   11c79:	5e                   	pop    %esi
   11c7a:	5f                   	pop    %edi
   11c7b:	5d                   	pop    %ebp
   11c7c:	ff e0                	jmp    *%eax
   11c7e:	89 f6                	mov    %esi,%esi

00011c80 <_ListenComplete@12>:
   11c80:	55                   	push   %ebp
   11c81:	31 d2                	xor    %edx,%edx
   11c83:	89 e5                	mov    %esp,%ebp
   11c85:	57                   	push   %edi
   11c86:	56                   	push   %esi
   11c87:	53                   	push   %ebx
   11c88:	83 ec 0c             	sub    $0xc,%esp
   11c8b:	8b 45 0c             	mov    0xc(%ebp),%eax
   11c8e:	8b 75 10             	mov    0x10(%ebp),%esi
   11c91:	80 78 24 00          	cmpb   $0x0,0x24(%eax)
   11c95:	74 0c                	je     11ca3 <_ListenComplete@12+0x23>
   11c97:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11c9a:	89 d0                	mov    %edx,%eax
   11c9c:	5b                   	pop    %ebx
   11c9d:	5e                   	pop    %esi
   11c9e:	5f                   	pop    %edi
   11c9f:	5d                   	pop    %ebp
   11ca0:	c2 0c 00             	ret    $0xc
   11ca3:	83 ec 0c             	sub    $0xc,%esp
   11ca6:	56                   	push   %esi
   11ca7:	e8 54 07 00 00       	call   12400 <_SocketAcquireStateLock>
   11cac:	83 c4 10             	add    $0x10,%esp
   11caf:	ba 01 00 00 c0       	mov    $0xc0000001,%edx
   11cb4:	85 c0                	test   %eax,%eax
   11cb6:	74 df                	je     11c97 <_ListenComplete@12+0x17>
   11cb8:	c7 46 5c 00 00 00 00 	movl   $0x0,0x5c(%esi)
   11cbf:	81 7e 04 00 01 00 00 	cmpl   $0x100,0x4(%esi)
   11cc6:	0f 84 ed 00 00 00    	je     11db9 <_ListenComplete@12+0x139>
   11ccc:	51                   	push   %ecx
   11ccd:	51                   	push   %ecx
   11cce:	6a 18                	push   $0x18
   11cd0:	6a 00                	push   $0x0
   11cd2:	ff 15 18 a1 01 00    	call   *0x1a118
   11cd8:	89 c3                	mov    %eax,%ebx
   11cda:	58                   	pop    %eax
   11cdb:	85 db                	test   %ebx,%ebx
   11cdd:	5a                   	pop    %edx
   11cde:	0f 84 ea 00 00 00    	je     11dce <_ListenComplete@12+0x14e>
   11ce4:	8b 46 2c             	mov    0x2c(%esi),%eax
   11ce7:	8b 56 44             	mov    0x44(%esi),%edx
   11cea:	66 8b 48 06          	mov    0x6(%eax),%cx
   11cee:	8b 46 40             	mov    0x40(%esi),%eax
   11cf1:	89 53 14             	mov    %edx,0x14(%ebx)
   11cf4:	8b 56 28             	mov    0x28(%esi),%edx
   11cf7:	89 43 10             	mov    %eax,0x10(%ebx)
   11cfa:	81 e1 ff ff 00 00    	and    $0xffff,%ecx
   11d00:	8d 42 01             	lea    0x1(%edx),%eax
   11d03:	89 46 28             	mov    %eax,0x28(%esi)
   11d06:	89 53 08             	mov    %edx,0x8(%ebx)
   11d09:	8d 43 0c             	lea    0xc(%ebx),%eax
   11d0c:	57                   	push   %edi
   11d0d:	57                   	push   %edi
   11d0e:	51                   	push   %ecx
   11d0f:	50                   	push   %eax
   11d10:	e8 bb 37 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   11d15:	58                   	pop    %eax
   11d16:	8b 46 6c             	mov    0x6c(%esi),%eax
   11d19:	5a                   	pop    %edx
   11d1a:	8b 40 14             	mov    0x14(%eax),%eax
   11d1d:	50                   	push   %eax
   11d1e:	8b 43 0c             	mov    0xc(%ebx),%eax
   11d21:	8b 78 14             	mov    0x14(%eax),%edi
   11d24:	57                   	push   %edi
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   11d25:	8d be 40 01 00 00    	lea    0x140(%esi),%edi
   11d2b:	e8 b0 36 00 00       	call   153e0 <_TaCopyTransportAddressInPlace>
  IN PLIST_ENTRY  Entry)
{ 
  PLIST_ENTRY OldBlink;
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
   11d30:	89 3b                	mov    %edi,(%ebx)
   11d32:	8b 47 04             	mov    0x4(%edi),%eax
   11d35:	83 c4 10             	add    $0x10,%esp
  Entry->Blink = OldBlink;
   11d38:	89 43 04             	mov    %eax,0x4(%ebx)
  OldBlink->Flink = Entry;
  ListHead->Blink = Entry;
   11d3b:	89 5f 04             	mov    %ebx,0x4(%edi)
   11d3e:	89 18                	mov    %ebx,(%eax)
   11d40:	8d 9e 20 01 00 00    	lea    0x120(%esi),%ebx
   11d46:	8b 8e 20 01 00 00    	mov    0x120(%esi),%ecx
   11d4c:	39 d9                	cmp    %ebx,%ecx
   11d4e:	74 24                	je     11d74 <_ListenComplete@12+0xf4>
   11d50:	8b 96 40 01 00 00    	mov    0x140(%esi),%edx
   11d56:	39 fa                	cmp    %edi,%edx
   11d58:	74 20                	je     11d7a <_ListenComplete@12+0xfa>
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   11d5a:	8b 01                	mov    (%ecx),%eax
  ListHead->Flink = Flink;
   11d5c:	89 86 20 01 00 00    	mov    %eax,0x120(%esi)
  Flink->Blink = ListHead;
   11d62:	89 58 04             	mov    %ebx,0x4(%eax)
   11d65:	8d 41 a8             	lea    0xffffffa8(%ecx),%eax
   11d68:	53                   	push   %ebx
   11d69:	53                   	push   %ebx
   11d6a:	52                   	push   %edx
   11d6b:	50                   	push   %eax
   11d6c:	e8 bf fe ff ff       	call   11c30 <_SatisfyPreAccept>
   11d71:	83 c4 10             	add    $0x10,%esp
   11d74:	8b 96 40 01 00 00    	mov    0x140(%esi),%edx
   11d7a:	c6 46 25 01          	movb   $0x1,0x25(%esi)
   11d7e:	39 fa                	cmp    %edi,%edx
   11d80:	74 20                	je     11da2 <_ListenComplete@12+0x122>
   11d82:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
   11d88:	0c 80                	or     $0x80,%al
   11d8a:	89 86 00 01 00 00    	mov    %eax,0x100(%esi)
   11d90:	50                   	push   %eax
   11d91:	50                   	push   %eax
   11d92:	8b 46 1c             	mov    0x1c(%esi),%eax
   11d95:	50                   	push   %eax
   11d96:	8b 46 20             	mov    0x20(%esi),%eax
   11d99:	50                   	push   %eax
   11d9a:	e8 51 24 00 00       	call   141f0 <_PollReeval>
   11d9f:	83 c4 10             	add    $0x10,%esp
   11da2:	83 ec 0c             	sub    $0xc,%esp
   11da5:	56                   	push   %esi
   11da6:	e8 f5 06 00 00       	call   124a0 <_SocketStateUnlock>
   11dab:	31 d2                	xor    %edx,%edx
   11dad:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11db0:	89 d0                	mov    %edx,%eax
   11db2:	5b                   	pop    %ebx
   11db3:	5e                   	pop    %esi
   11db4:	5f                   	pop    %edi
   11db5:	5d                   	pop    %ebp
   11db6:	c2 0c 00             	ret    $0xc
   11db9:	83 ec 0c             	sub    $0xc,%esp
   11dbc:	56                   	push   %esi
   11dbd:	e8 de 06 00 00       	call   124a0 <_SocketStateUnlock>
   11dc2:	89 34 24             	mov    %esi,(%esp)
   11dc5:	e8 66 0b 00 00       	call   12930 <_DestroySocket>
   11dca:	31 d2                	xor    %edx,%edx
   11dcc:	eb df                	jmp    11dad <_ListenComplete@12+0x12d>
   11dce:	50                   	push   %eax
   11dcf:	50                   	push   %eax
   11dd0:	8d be 40 01 00 00    	lea    0x140(%esi),%edi
   11dd6:	8b 46 40             	mov    0x40(%esi),%eax
   11dd9:	50                   	push   %eax
   11dda:	8b 46 44             	mov    0x44(%esi),%eax
   11ddd:	50                   	push   %eax
   11dde:	e8 1d 26 00 00       	call   14400 <_TdiCloseDevice>
   11de3:	83 c4 10             	add    $0x10,%esp
   11de6:	e9 55 ff ff ff       	jmp    11d40 <_ListenComplete@12+0xc0>
   11deb:	90                   	nop    
   11dec:	8d 74 26 00          	lea    0x0(%esi),%esi

00011df0 <_AfdListenSocket>:
   11df0:	55                   	push   %ebp
   11df1:	89 e5                	mov    %esp,%ebp
   11df3:	57                   	push   %edi
   11df4:	56                   	push   %esi
   11df5:	53                   	push   %ebx
   11df6:	83 ec 18             	sub    $0x18,%esp
   11df9:	8b 5d 10             	mov    0x10(%ebp),%ebx
   11dfc:	8b 75 0c             	mov    0xc(%ebp),%esi
    PFILE_OBJECT FileObject = IrpSp->FileObject;
   11dff:	8b 43 18             	mov    0x18(%ebx),%eax
    PAFD_FCB FCB = FileObject->FsContext;
   11e02:	8b 78 0c             	mov    0xc(%eax),%edi
    PAFD_LISTEN_DATA ListenReq;

    AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));

    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, TRUE );
   11e05:	57                   	push   %edi
   11e06:	e8 f5 05 00 00       	call   12400 <_SocketAcquireStateLock>
   11e0b:	83 c4 10             	add    $0x10,%esp
   11e0e:	85 c0                	test   %eax,%eax
   11e10:	75 16                	jne    11e28 <_AfdListenSocket+0x38>
   11e12:	c7 45 0c 01 00 00 00 	movl   $0x1,0xc(%ebp)
   11e19:	89 75 08             	mov    %esi,0x8(%ebp)

    if( !(ListenReq = LockRequest( Irp, IrpSp )) ) 
	return UnlockAndMaybeComplete( FCB, STATUS_NO_MEMORY, Irp, 
				       0, NULL, FALSE );
    
    if( FCB->State != SOCKET_STATE_BOUND ) {
	Status = STATUS_UNSUCCESSFUL;
	AFD_DbgPrint(MID_TRACE,("Could not listen an unbound socket\n"));
	return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, TRUE );
    }
    
    FCB->DelayedAccept = ListenReq->UseDelayedAcceptance;

    AFD_DbgPrint(MID_TRACE,("ADDRESSFILE: %x\n", FCB->AddressFile.Handle));

    Status = WarmSocketForConnection( FCB );

    FCB->State = SOCKET_STATE_LISTENING;

    AFD_DbgPrint(MID_TRACE,("Status from warmsocket %x\n", Status));

    TdiBuildNullConnectionInfo
	( &FCB->ListenIrp.ConnectionCallInfo,
	  FCB->LocalAddress->Address[0].AddressType );
    TdiBuildNullConnectionInfo
	( &FCB->ListenIrp.ConnectionReturnInfo,
	  FCB->LocalAddress->Address[0].AddressType );

    Status = TdiListen( &FCB->ListenIrp.InFlightRequest,
			FCB->Connection.Object, 
			&FCB->ListenIrp.ConnectionCallInfo,
			&FCB->ListenIrp.ConnectionReturnInfo,
			&FCB->ListenIrp.Iosb,
			ListenComplete,
			FCB );

    if( NT_SUCCESS(Status) || Status == STATUS_PENDING )
	Status = STATUS_SUCCESS;

    AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));
    return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, TRUE );
}
   11e1c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11e1f:	5b                   	pop    %ebx
   11e20:	5e                   	pop    %esi
   11e21:	5f                   	pop    %edi
   11e22:	5d                   	pop    %ebp
   11e23:	e9 68 07 00 00       	jmp    12590 <_LostSocket>
   11e28:	50                   	push   %eax
   11e29:	50                   	push   %eax
   11e2a:	53                   	push   %ebx
   11e2b:	56                   	push   %esi
   11e2c:	e8 df 02 00 00       	call   12110 <_LockRequest>
   11e31:	83 c4 10             	add    $0x10,%esp
   11e34:	85 c0                	test   %eax,%eax
   11e36:	0f 84 a1 00 00 00    	je     11edd <_AfdListenSocket+0xed>
   11e3c:	83 7f 04 01          	cmpl   $0x1,0x4(%edi)
   11e40:	74 1c                	je     11e5e <_AfdListenSocket+0x6e>
   11e42:	50                   	push   %eax
   11e43:	50                   	push   %eax
   11e44:	6a 01                	push   $0x1
   11e46:	6a 00                	push   $0x0
   11e48:	6a 00                	push   $0x0
   11e4a:	56                   	push   %esi
   11e4b:	68 01 00 00 c0       	push   $0xc0000001
   11e50:	57                   	push   %edi
   11e51:	e8 aa 06 00 00       	call   12500 <_UnlockAndMaybeComplete@24>
   11e56:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11e59:	5b                   	pop    %ebx
   11e5a:	5e                   	pop    %esi
   11e5b:	5f                   	pop    %edi
   11e5c:	5d                   	pop    %ebp
   11e5d:	c3                   	ret    
   11e5e:	8a 40 08             	mov    0x8(%eax),%al
   11e61:	83 ec 0c             	sub    $0xc,%esp
   11e64:	88 47 24             	mov    %al,0x24(%edi)
   11e67:	57                   	push   %edi
   11e68:	e8 33 f3 ff ff       	call   111a0 <_WarmSocketForConnection>
   11e6d:	8b 47 2c             	mov    0x2c(%edi),%eax
   11e70:	c7 47 04 04 00 00 00 	movl   $0x4,0x4(%edi)
   11e77:	59                   	pop    %ecx
   11e78:	5b                   	pop    %ebx
   11e79:	66 8b 40 06          	mov    0x6(%eax),%ax
   11e7d:	8d 5f 6c             	lea    0x6c(%edi),%ebx
   11e80:	25 ff ff 00 00       	and    $0xffff,%eax
   11e85:	50                   	push   %eax
   11e86:	8d 47 68             	lea    0x68(%edi),%eax
   11e89:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   11e8c:	50                   	push   %eax
   11e8d:	e8 3e 36 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   11e92:	58                   	pop    %eax
   11e93:	8b 47 2c             	mov    0x2c(%edi),%eax
   11e96:	5a                   	pop    %edx
   11e97:	66 8b 40 06          	mov    0x6(%eax),%ax
   11e9b:	25 ff ff 00 00       	and    $0xffff,%eax
   11ea0:	50                   	push   %eax
   11ea1:	53                   	push   %ebx
   11ea2:	e8 29 36 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   11ea7:	83 c4 0c             	add    $0xc,%esp
   11eaa:	8d 47 60             	lea    0x60(%edi),%eax
   11ead:	57                   	push   %edi
   11eae:	68 80 1c 01 00       	push   $0x11c80
   11eb3:	50                   	push   %eax
   11eb4:	53                   	push   %ebx
   11eb5:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   11eb8:	50                   	push   %eax
   11eb9:	8d 47 5c             	lea    0x5c(%edi),%eax
   11ebc:	8b 5f 40             	mov    0x40(%edi),%ebx
   11ebf:	53                   	push   %ebx
   11ec0:	50                   	push   %eax
   11ec1:	e8 4a 28 00 00       	call   14710 <_TdiListen>
   11ec6:	83 c4 18             	add    $0x18,%esp
   11ec9:	89 c2                	mov    %eax,%edx
   11ecb:	6a 01                	push   $0x1
   11ecd:	c1 fa 1f             	sar    $0x1f,%edx
   11ed0:	6a 00                	push   $0x0
   11ed2:	21 c2                	and    %eax,%edx
   11ed4:	6a 00                	push   $0x0
   11ed6:	56                   	push   %esi
   11ed7:	52                   	push   %edx
   11ed8:	e9 73 ff ff ff       	jmp    11e50 <_AfdListenSocket+0x60>
   11edd:	50                   	push   %eax
   11ede:	50                   	push   %eax
   11edf:	6a 00                	push   $0x0
   11ee1:	6a 00                	push   $0x0
   11ee3:	6a 00                	push   $0x0
   11ee5:	56                   	push   %esi
   11ee6:	68 17 00 00 c0       	push   $0xc0000017
   11eeb:	e9 60 ff ff ff       	jmp    11e50 <_AfdListenSocket+0x60>

00011ef0 <_AfdWaitForListen>:

NTSTATUS AfdWaitForListen( PDEVICE_OBJECT DeviceObject, PIRP Irp,
			   PIO_STACK_LOCATION IrpSp ) {
   11ef0:	55                   	push   %ebp
   11ef1:	89 e5                	mov    %esp,%ebp
   11ef3:	56                   	push   %esi
   11ef4:	53                   	push   %ebx
    NTSTATUS Status = STATUS_SUCCESS;
    PFILE_OBJECT FileObject = IrpSp->FileObject;
   11ef5:	8b 45 10             	mov    0x10(%ebp),%eax
    PAFD_FCB FCB = FileObject->FsContext;

    AFD_DbgPrint(MID_TRACE,("Called\n"));

    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, TRUE );
   11ef8:	83 ec 0c             	sub    $0xc,%esp
   11efb:	8b 75 0c             	mov    0xc(%ebp),%esi
   11efe:	8b 40 18             	mov    0x18(%eax),%eax
   11f01:	8b 58 0c             	mov    0xc(%eax),%ebx
   11f04:	53                   	push   %ebx
   11f05:	e8 f6 04 00 00       	call   12400 <_SocketAcquireStateLock>
   11f0a:	83 c4 10             	add    $0x10,%esp
   11f0d:	85 c0                	test   %eax,%eax
   11f0f:	74 4f                	je     11f60 <_AfdWaitForListen+0x70>

    if( !IsListEmpty( &FCB->PendingConnections ) ) {
   11f11:	8d 83 40 01 00 00    	lea    0x140(%ebx),%eax
   11f17:	8b 93 40 01 00 00    	mov    0x140(%ebx),%edx
   11f1d:	39 c2                	cmp    %eax,%edx
   11f1f:	74 54                	je     11f75 <_AfdWaitForListen+0x85>
	PLIST_ENTRY PendingConn = FCB->PendingConnections.Flink;

	/* We have a pending connection ... complete this irp right away */
	SatisfyPreAccept
   11f21:	50                   	push   %eax
   11f22:	50                   	push   %eax
   11f23:	52                   	push   %edx
   11f24:	56                   	push   %esi
   11f25:	e8 06 fd ff ff       	call   11c30 <_SatisfyPreAccept>
	    ( Irp, 
	      CONTAINING_RECORD
	      ( PendingConn, AFD_TDI_OBJECT_QELT, ListEntry ) );

	AFD_DbgPrint(MID_TRACE,("Completed a wait for accept\n"));

        FCB->PollState &= ~AFD_EVENT_ACCEPT;
   11f2a:	8b 8b 00 01 00 00    	mov    0x100(%ebx),%ecx
   11f30:	80 e1 7f             	and    $0x7f,%cl
   11f33:	89 8b 00 01 00 00    	mov    %ecx,0x100(%ebx)
        PollReeval( FCB->DeviceExt, FCB->FileObject );
   11f39:	58                   	pop    %eax
   11f3a:	8b 43 1c             	mov    0x1c(%ebx),%eax
   11f3d:	5a                   	pop    %edx
   11f3e:	50                   	push   %eax
   11f3f:	8b 43 20             	mov    0x20(%ebx),%eax
   11f42:	50                   	push   %eax
   11f43:	e8 a8 22 00 00       	call   141f0 <_PollReeval>

	SocketStateUnlock( FCB );
   11f48:	89 1c 24             	mov    %ebx,(%esp)
   11f4b:	e8 50 05 00 00       	call   124a0 <_SocketStateUnlock>
	return Status;
    } else {
	AFD_DbgPrint(MID_TRACE,("Holding\n"));

	return LeaveIrpUntilLater( FCB, Irp, FUNCTION_PREACCEPT );
    }
}
   11f50:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11f53:	31 c0                	xor    %eax,%eax
   11f55:	5b                   	pop    %ebx
   11f56:	5e                   	pop    %esi
   11f57:	5d                   	pop    %ebp
   11f58:	c3                   	ret    
   11f59:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   11f60:	c7 45 0c 01 00 00 00 	movl   $0x1,0xc(%ebp)
   11f67:	89 75 08             	mov    %esi,0x8(%ebp)
   11f6a:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11f6d:	5b                   	pop    %ebx
   11f6e:	5e                   	pop    %esi
   11f6f:	5d                   	pop    %ebp
   11f70:	e9 1b 06 00 00       	jmp    12590 <_LostSocket>
   11f75:	c7 45 10 03 00 00 00 	movl   $0x3,0x10(%ebp)
   11f7c:	89 75 0c             	mov    %esi,0xc(%ebp)
   11f7f:	89 5d 08             	mov    %ebx,0x8(%ebp)
   11f82:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11f85:	5b                   	pop    %ebx
   11f86:	5e                   	pop    %esi
   11f87:	5d                   	pop    %ebp
   11f88:	e9 63 06 00 00       	jmp    125f0 <_LeaveIrpUntilLater>
   11f8d:	8d 76 00             	lea    0x0(%esi),%esi

00011f90 <_AfdAccept>:

NTSTATUS AfdAccept( PDEVICE_OBJECT DeviceObject, PIRP Irp,
		    PIO_STACK_LOCATION IrpSp ) {
   11f90:	55                   	push   %ebp
   11f91:	89 e5                	mov    %esp,%ebp
   11f93:	57                   	push   %edi
   11f94:	56                   	push   %esi
   11f95:	53                   	push   %ebx
   11f96:	83 ec 28             	sub    $0x28,%esp
    NTSTATUS Status = STATUS_SUCCESS;
    PFILE_OBJECT FileObject = IrpSp->FileObject;
   11f99:	8b 45 10             	mov    0x10(%ebp),%eax
   11f9c:	8b 50 18             	mov    0x18(%eax),%edx
    PAFD_DEVICE_EXTENSION DeviceExt = 
   11f9f:	8b 45 08             	mov    0x8(%ebp),%eax
   11fa2:	8b 40 28             	mov    0x28(%eax),%eax
        (PAFD_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
    PAFD_FCB FCB = FileObject->FsContext;
   11fa5:	8b 72 0c             	mov    0xc(%edx),%esi
   11fa8:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
    PAFD_ACCEPT_DATA AcceptData = Irp->AssociatedIrp.SystemBuffer;
   11fab:	8b 45 0c             	mov    0xc(%ebp),%eax
   11fae:	8b 40 0c             	mov    0xc(%eax),%eax
   11fb1:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
    PLIST_ENTRY PendingConn;

    AFD_DbgPrint(MID_TRACE,("Called\n"));

    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, TRUE );
   11fb4:	56                   	push   %esi
   11fb5:	e8 46 04 00 00       	call   12400 <_SocketAcquireStateLock>
   11fba:	83 c4 10             	add    $0x10,%esp
   11fbd:	85 c0                	test   %eax,%eax
   11fbf:	74 6a                	je     1202b <_AfdAccept+0x9b>

    FCB->EventsFired &= ~AFD_EVENT_ACCEPT;    
   11fc1:	8b 86 f0 00 00 00    	mov    0xf0(%esi),%eax
   11fc7:	24 7f                	and    $0x7f,%al
   11fc9:	89 86 f0 00 00 00    	mov    %eax,0xf0(%esi)

    if( FCB->NeedsNewListen ) {
   11fcf:	80 7e 25 00          	cmpb   $0x0,0x25(%esi)
   11fd3:	75 40                	jne    12015 <_AfdAccept+0x85>
	AFD_DbgPrint(MID_TRACE,("ADDRESSFILE: %x\n", FCB->AddressFile.Handle));

	/* Launch new accept socket */
	Status = WarmSocketForConnection( FCB );
	
	if( Status == STATUS_SUCCESS ) {
	    TdiBuildNullConnectionInfo
		( &FCB->ListenIrp.ConnectionReturnInfo,
		  FCB->LocalAddress->Address[0].AddressType );
	    
	    Status = TdiListen( &FCB->ListenIrp.InFlightRequest,
				FCB->Connection.Object, 
				&FCB->ListenIrp.ConnectionCallInfo,
				&FCB->ListenIrp.ConnectionReturnInfo,
				&FCB->ListenIrp.Iosb,
				ListenComplete,
				FCB );
	}
	FCB->NeedsNewListen = FALSE;
    }

    for( PendingConn = FCB->PendingConnections.Flink;
   11fd5:	8b 9e 40 01 00 00    	mov    0x140(%esi),%ebx
   11fdb:	8d be 40 01 00 00    	lea    0x140(%esi),%edi
   11fe1:	39 df                	cmp    %ebx,%edi
   11fe3:	74 1a                	je     11fff <_AfdAccept+0x6f>
   11fe5:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   11fe8:	8b 42 04             	mov    0x4(%edx),%eax
   11feb:	90                   	nop    
   11fec:	8d 74 26 00          	lea    0x0(%esi),%esi
	 PendingConn != &FCB->PendingConnections;
	 PendingConn = PendingConn->Flink ) {
	PAFD_TDI_OBJECT_QELT PendingConnObj =
	    CONTAINING_RECORD( PendingConn, AFD_TDI_OBJECT_QELT, ListEntry );

	AFD_DbgPrint(MID_TRACE,("Comparing Seq %d to Q %d\n", 
				AcceptData->SequenceNumber, 
				PendingConnObj->Seq));

	if( PendingConnObj->Seq == AcceptData->SequenceNumber ) {
   11ff0:	39 43 08             	cmp    %eax,0x8(%ebx)
   11ff3:	0f 84 8a 00 00 00    	je     12083 <_AfdAccept+0xf3>
   11ff9:	8b 1b                	mov    (%ebx),%ebx
   11ffb:	39 df                	cmp    %ebx,%edi
   11ffd:	75 f1                	jne    11ff0 <_AfdAccept+0x60>
	    PFILE_OBJECT NewFileObject = NULL;

	    RemoveEntryList( PendingConn );

	    Status = ObReferenceObjectByHandle
		( (HANDLE)AcceptData->ListenHandle,
		  FILE_ALL_ACCESS,
		  NULL,
		  KernelMode,
		  (PVOID *)&NewFileObject,
		  NULL );
						
            ASSERT(NewFileObject != FileObject);
            ASSERT(NewFileObject->FsContext != FCB);

	    /* We have a pending connection ... complete this irp right away */
	    SatisfyAccept( DeviceExt, Irp, NewFileObject, PendingConnObj );
	    
	    ObDereferenceObject( NewFileObject );

	    AFD_DbgPrint(MID_TRACE,("Completed a wait for accept\n"));
	    
	    ExFreePool( PendingConnObj );

	    if( IsListEmpty( &FCB->PendingConnections ) )
		FCB->PollState &= ~AFD_EVENT_ACCEPT;
	    
	    SocketStateUnlock( FCB );
	    return Status;
	}
    }

    SocketStateUnlock( FCB );
   11fff:	83 ec 0c             	sub    $0xc,%esp
   12002:	56                   	push   %esi
   12003:	e8 98 04 00 00       	call   124a0 <_SocketStateUnlock>
    return STATUS_UNSUCCESSFUL;
}
   12008:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1200b:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12010:	5b                   	pop    %ebx
   12011:	5e                   	pop    %esi
   12012:	5f                   	pop    %edi
   12013:	5d                   	pop    %ebp
   12014:	c3                   	ret    
   12015:	83 ec 0c             	sub    $0xc,%esp
   12018:	56                   	push   %esi
   12019:	e8 82 f1 ff ff       	call   111a0 <_WarmSocketForConnection>
   1201e:	83 c4 10             	add    $0x10,%esp
   12021:	85 c0                	test   %eax,%eax
   12023:	74 1b                	je     12040 <_AfdAccept+0xb0>
   12025:	c6 46 25 00          	movb   $0x0,0x25(%esi)
   12029:	eb aa                	jmp    11fd5 <_AfdAccept+0x45>
   1202b:	50                   	push   %eax
   1202c:	50                   	push   %eax
   1202d:	6a 01                	push   $0x1
   1202f:	8b 45 0c             	mov    0xc(%ebp),%eax
   12032:	50                   	push   %eax
   12033:	e8 58 05 00 00       	call   12590 <_LostSocket>
   12038:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1203b:	5b                   	pop    %ebx
   1203c:	5e                   	pop    %esi
   1203d:	5f                   	pop    %edi
   1203e:	5d                   	pop    %ebp
   1203f:	c3                   	ret    
   12040:	50                   	push   %eax
   12041:	50                   	push   %eax
   12042:	8d 5e 6c             	lea    0x6c(%esi),%ebx
   12045:	8b 46 2c             	mov    0x2c(%esi),%eax
   12048:	66 8b 40 06          	mov    0x6(%eax),%ax
   1204c:	25 ff ff 00 00       	and    $0xffff,%eax
   12051:	50                   	push   %eax
   12052:	53                   	push   %ebx
   12053:	e8 78 34 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   12058:	83 c4 0c             	add    $0xc,%esp
   1205b:	8d 46 60             	lea    0x60(%esi),%eax
   1205e:	56                   	push   %esi
   1205f:	68 80 1c 01 00       	push   $0x11c80
   12064:	50                   	push   %eax
   12065:	8d 46 68             	lea    0x68(%esi),%eax
   12068:	53                   	push   %ebx
   12069:	50                   	push   %eax
   1206a:	8b 46 40             	mov    0x40(%esi),%eax
   1206d:	50                   	push   %eax
   1206e:	8d 46 5c             	lea    0x5c(%esi),%eax
   12071:	50                   	push   %eax
   12072:	e8 99 26 00 00       	call   14710 <_TdiListen>
   12077:	83 c4 20             	add    $0x20,%esp
   1207a:	c6 46 25 00          	movb   $0x0,0x25(%esi)
   1207e:	e9 52 ff ff ff       	jmp    11fd5 <_AfdAccept+0x45>
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
  OldBlink = Entry->Blink;
   12083:	8b 43 04             	mov    0x4(%ebx),%eax
   12086:	8b 13                	mov    (%ebx),%edx
   12088:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
  OldBlink = Entry->Blink;
  OldFlink->Blink = OldBlink;
   1208f:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   12092:	89 10                	mov    %edx,(%eax)
   12094:	50                   	push   %eax
   12095:	50                   	push   %eax
   12096:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   12099:	6a 00                	push   $0x0
   1209b:	50                   	push   %eax
   1209c:	6a 00                	push   $0x0
   1209e:	6a 00                	push   $0x0
   120a0:	68 ff 01 1f 00       	push   $0x1f01ff
   120a5:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   120a8:	8b 48 08             	mov    0x8(%eax),%ecx
   120ab:	51                   	push   %ecx
   120ac:	ff 15 7c a1 01 00    	call   *0x1a17c
   120b2:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   120b5:	58                   	pop    %eax
   120b6:	5a                   	pop    %edx
   120b7:	53                   	push   %ebx
   120b8:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   120bb:	50                   	push   %eax
   120bc:	8b 45 0c             	mov    0xc(%ebp),%eax
   120bf:	50                   	push   %eax
   120c0:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   120c3:	50                   	push   %eax
   120c4:	e8 b7 fa ff ff       	call   11b80 <_SatisfyAccept>
   120c9:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   120cc:	ff 15 10 a1 01 00    	call   *0x1a110
   120d2:	89 1c 24             	mov    %ebx,(%esp)
   120d5:	ff 15 1c a1 01 00    	call   *0x1a11c
   120db:	83 c4 0c             	add    $0xc,%esp
   120de:	39 be 40 01 00 00    	cmp    %edi,0x140(%esi)
   120e4:	74 14                	je     120fa <_AfdAccept+0x16a>
   120e6:	83 ec 0c             	sub    $0xc,%esp
   120e9:	56                   	push   %esi
   120ea:	e8 b1 03 00 00       	call   124a0 <_SocketStateUnlock>
   120ef:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   120f2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   120f5:	5b                   	pop    %ebx
   120f6:	5e                   	pop    %esi
   120f7:	5f                   	pop    %edi
   120f8:	5d                   	pop    %ebp
   120f9:	c3                   	ret    
   120fa:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
   12100:	24 7f                	and    $0x7f,%al
   12102:	89 86 00 01 00 00    	mov    %eax,0x100(%esi)
   12108:	eb dc                	jmp    120e6 <_AfdAccept+0x156>
   1210a:	90                   	nop    
   1210b:	90                   	nop    
   1210c:	90                   	nop    
   1210d:	90                   	nop    
   1210e:	90                   	nop    
   1210f:	90                   	nop    

00012110 <_LockRequest>:
   12110:	55                   	push   %ebp
   12111:	89 e5                	mov    %esp,%ebp
   12113:	56                   	push   %esi
   12114:	53                   	push   %ebx
   12115:	83 ec 0c             	sub    $0xc,%esp
   12118:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1211b:	8b 75 08             	mov    0x8(%ebp),%esi
   1211e:	6a 00                	push   $0x0
   12120:	6a 00                	push   $0x0
   12122:	6a 00                	push   $0x0
   12124:	8b 43 08             	mov    0x8(%ebx),%eax
   12127:	50                   	push   %eax
   12128:	8b 43 10             	mov    0x10(%ebx),%eax
   1212b:	50                   	push   %eax
   1212c:	ff 15 20 a1 01 00    	call   *0x1a120
   12132:	31 d2                	xor    %edx,%edx
   12134:	83 c4 0c             	add    $0xc,%esp
   12137:	89 46 04             	mov    %eax,0x4(%esi)
   1213a:	85 c0                	test   %eax,%eax
   1213c:	74 1e                	je     1215c <_LockRequest+0x4c>
   1213e:	51                   	push   %ecx
   1213f:	6a 02                	push   $0x2
   12141:	6a 00                	push   $0x0
   12143:	50                   	push   %eax
   12144:	ff 15 70 a1 01 00    	call   *0x1a170
   1214a:	52                   	push   %edx
   1214b:	6a 00                	push   $0x0
   1214d:	8b 46 04             	mov    0x4(%esi),%eax
   12150:	50                   	push   %eax
   12151:	ff 15 6c a1 01 00    	call   *0x1a16c
   12157:	89 c2                	mov    %eax,%edx
   12159:	89 43 10             	mov    %eax,0x10(%ebx)
   1215c:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1215f:	89 d0                	mov    %edx,%eax
   12161:	5b                   	pop    %ebx
   12162:	5e                   	pop    %esi
   12163:	5d                   	pop    %ebp
   12164:	c3                   	ret    
   12165:	8d 74 26 00          	lea    0x0(%esi),%esi
   12169:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012170 <_UnlockRequest>:
   12170:	55                   	push   %ebp
   12171:	89 e5                	mov    %esp,%ebp
   12173:	53                   	push   %ebx
   12174:	83 ec 0c             	sub    $0xc,%esp
   12177:	8b 5d 08             	mov    0x8(%ebp),%ebx
   1217a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1217d:	8b 53 04             	mov    0x4(%ebx),%edx
   12180:	52                   	push   %edx
   12181:	8b 40 10             	mov    0x10(%eax),%eax
   12184:	50                   	push   %eax
   12185:	ff 15 78 a1 01 00    	call   *0x1a178
   1218b:	50                   	push   %eax
   1218c:	8b 43 04             	mov    0x4(%ebx),%eax
   1218f:	50                   	push   %eax
   12190:	ff 15 74 a1 01 00    	call   *0x1a174
   12196:	8b 43 04             	mov    0x4(%ebx),%eax
   12199:	50                   	push   %eax
   1219a:	ff 15 34 a1 01 00    	call   *0x1a134
   121a0:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
   121a7:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   121aa:	c9                   	leave  
   121ab:	c3                   	ret    
   121ac:	8d 74 26 00          	lea    0x0(%esi),%esi

000121b0 <_LockBuffers>:
   121b0:	55                   	push   %ebp
   121b1:	89 e5                	mov    %esp,%ebp
   121b3:	57                   	push   %edi
   121b4:	56                   	push   %esi
   121b5:	53                   	push   %ebx
   121b6:	83 ec 14             	sub    $0x14,%esp
   121b9:	8a 55 1c             	mov    0x1c(%ebp),%dl
   121bc:	8a 45 18             	mov    0x18(%ebp),%al
   121bf:	80 fa 01             	cmp    $0x1,%dl
   121c2:	88 45 f3             	mov    %al,0xfffffff3(%ebp)
   121c5:	19 c0                	sbb    %eax,%eax
   121c7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   121ca:	83 f0 ff             	xor    $0xffffffff,%eax
   121cd:	88 55 f2             	mov    %dl,0xfffffff2(%ebp)
   121d0:	83 e0 02             	and    $0x2,%eax
   121d3:	8b 75 08             	mov    0x8(%ebp),%esi
   121d6:	01 c8                	add    %ecx,%eax
   121d8:	8d 3c c5 00 00 00 00 	lea    0x0(,%eax,8),%edi
   121df:	c1 e0 04             	shl    $0x4,%eax
   121e2:	50                   	push   %eax
   121e3:	6a 01                	push   $0x1
   121e5:	ff 15 18 a1 01 00    	call   *0x1a118
   121eb:	89 c3                	mov    %eax,%ebx
   121ed:	58                   	pop    %eax
   121ee:	85 db                	test   %ebx,%ebx
   121f0:	5a                   	pop    %edx
   121f1:	74 38                	je     1222b <_LockBuffers+0x7b>
   121f3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   121f6:	01 df                	add    %ebx,%edi
   121f8:	c1 e1 03             	shl    $0x3,%ecx
   121fb:	89 7d ec             	mov    %edi,0xffffffec(%ebp)
   121fe:	fc                   	cld    
   121ff:	c1 e9 02             	shr    $0x2,%ecx
   12202:	89 df                	mov    %ebx,%edi
   12204:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   12206:	80 7d f2 00          	cmpb   $0x0,0xfffffff2(%ebp)
   1220a:	75 29                	jne    12235 <_LockBuffers+0x85>
   1220c:	31 f6                	xor    %esi,%esi
   1220e:	3b 75 0c             	cmp    0xc(%ebp),%esi
   12211:	73 18                	jae    1222b <_LockBuffers+0x7b>
   12213:	8b 04 f3             	mov    (%ebx,%esi,8),%eax
   12216:	85 c0                	test   %eax,%eax
   12218:	75 46                	jne    12260 <_LockBuffers+0xb0>
   1221a:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   1221d:	c7 44 f2 04 00 00 00 	movl   $0x0,0x4(%edx,%esi,8)
   12224:	00 
   12225:	46                   	inc    %esi
   12226:	3b 75 0c             	cmp    0xc(%ebp),%esi
   12229:	72 e8                	jb     12213 <_LockBuffers+0x63>
   1222b:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1222e:	89 d8                	mov    %ebx,%eax
   12230:	5b                   	pop    %ebx
   12231:	5e                   	pop    %esi
   12232:	5f                   	pop    %edi
   12233:	5d                   	pop    %ebp
   12234:	c3                   	ret    
   12235:	8b 55 0c             	mov    0xc(%ebp),%edx
   12238:	8b 45 10             	mov    0x10(%ebp),%eax
   1223b:	89 44 d3 04          	mov    %eax,0x4(%ebx,%edx,8)
   1223f:	8b 55 14             	mov    0x14(%ebp),%edx
   12242:	8b 02                	mov    (%edx),%eax
   12244:	8b 55 0c             	mov    0xc(%ebp),%edx
   12247:	89 04 d3             	mov    %eax,(%ebx,%edx,8)
   1224a:	42                   	inc    %edx
   1224b:	8b 45 14             	mov    0x14(%ebp),%eax
   1224e:	c7 04 d3 04 00 00 00 	movl   $0x4,(%ebx,%edx,8)
   12255:	89 44 d3 04          	mov    %eax,0x4(%ebx,%edx,8)
   12259:	42                   	inc    %edx
   1225a:	89 55 0c             	mov    %edx,0xc(%ebp)
   1225d:	eb ad                	jmp    1220c <_LockBuffers+0x5c>
   1225f:	90                   	nop    
   12260:	83 ec 0c             	sub    $0xc,%esp
   12263:	6a 00                	push   $0x0
   12265:	6a 00                	push   $0x0
   12267:	6a 00                	push   $0x0
   12269:	8b 04 f3             	mov    (%ebx,%esi,8),%eax
   1226c:	50                   	push   %eax
   1226d:	8b 44 f3 04          	mov    0x4(%ebx,%esi,8),%eax
   12271:	50                   	push   %eax
   12272:	ff 15 20 a1 01 00    	call   *0x1a120
   12278:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   1227b:	83 c4 0c             	add    $0xc,%esp
   1227e:	85 c0                	test   %eax,%eax
   12280:	89 44 f2 04          	mov    %eax,0x4(%edx,%esi,8)
   12284:	74 9f                	je     12225 <_LockBuffers+0x75>
   12286:	80 7d f3 01          	cmpb   $0x1,0xfffffff3(%ebp)
   1228a:	50                   	push   %eax
   1228b:	19 c0                	sbb    %eax,%eax
   1228d:	83 f0 ff             	xor    $0xffffffff,%eax
   12290:	83 e0 02             	and    $0x2,%eax
   12293:	50                   	push   %eax
   12294:	6a 00                	push   $0x0
   12296:	8b 7c f2 04          	mov    0x4(%edx,%esi,8),%edi
   1229a:	46                   	inc    %esi
   1229b:	57                   	push   %edi
   1229c:	ff 15 70 a1 01 00    	call   *0x1a170
   122a2:	59                   	pop    %ecx
   122a3:	eb 81                	jmp    12226 <_LockBuffers+0x76>
   122a5:	8d 74 26 00          	lea    0x0(%esi),%esi
   122a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000122b0 <_UnlockBuffers>:
   122b0:	55                   	push   %ebp
   122b1:	89 e5                	mov    %esp,%ebp
   122b3:	57                   	push   %edi
   122b4:	56                   	push   %esi
   122b5:	53                   	push   %ebx
   122b6:	83 ec 0c             	sub    $0xc,%esp
   122b9:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
   122bd:	19 db                	sbb    %ebx,%ebx
   122bf:	8b 45 0c             	mov    0xc(%ebp),%eax
   122c2:	83 f3 ff             	xor    $0xffffffff,%ebx
   122c5:	31 f6                	xor    %esi,%esi
   122c7:	83 e3 02             	and    $0x2,%ebx
   122ca:	01 c3                	add    %eax,%ebx
   122cc:	8b 45 08             	mov    0x8(%ebp),%eax
   122cf:	83 fb 00             	cmp    $0x0,%ebx
   122d2:	8d 3c d8             	lea    (%eax,%ebx,8),%edi
   122d5:	76 0d                	jbe    122e4 <_UnlockBuffers+0x34>
   122d7:	8b 44 f7 04          	mov    0x4(%edi,%esi,8),%eax
   122db:	85 c0                	test   %eax,%eax
   122dd:	75 21                	jne    12300 <_UnlockBuffers+0x50>
   122df:	46                   	inc    %esi
   122e0:	39 f3                	cmp    %esi,%ebx
   122e2:	77 f3                	ja     122d7 <_UnlockBuffers+0x27>
   122e4:	83 ec 0c             	sub    $0xc,%esp
   122e7:	8b 5d 08             	mov    0x8(%ebp),%ebx
   122ea:	53                   	push   %ebx
   122eb:	ff 15 1c a1 01 00    	call   *0x1a11c
   122f1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   122f4:	5b                   	pop    %ebx
   122f5:	5e                   	pop    %esi
   122f6:	5f                   	pop    %edi
   122f7:	5d                   	pop    %ebp
   122f8:	c3                   	ret    
   122f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12300:	83 ec 0c             	sub    $0xc,%esp
   12303:	50                   	push   %eax
   12304:	ff 15 74 a1 01 00    	call   *0x1a174
   1230a:	8b 44 f7 04          	mov    0x4(%edi,%esi,8),%eax
   1230e:	46                   	inc    %esi
   1230f:	50                   	push   %eax
   12310:	ff 15 34 a1 01 00    	call   *0x1a134
   12316:	83 c4 0c             	add    $0xc,%esp
   12319:	39 f3                	cmp    %esi,%ebx
   1231b:	eb c5                	jmp    122e2 <_UnlockBuffers+0x32>
   1231d:	8d 76 00             	lea    0x0(%esi),%esi

00012320 <_LockHandles>:
   12320:	55                   	push   %ebp
   12321:	89 e5                	mov    %esp,%ebp
   12323:	57                   	push   %edi
   12324:	56                   	push   %esi
   12325:	53                   	push   %ebx
   12326:	83 ec 14             	sub    $0x14,%esp
   12329:	31 ff                	xor    %edi,%edi
   1232b:	8b 55 0c             	mov    0xc(%ebp),%edx
   1232e:	8d 04 52             	lea    (%edx,%edx,2),%eax
   12331:	c1 e0 02             	shl    $0x2,%eax
   12334:	50                   	push   %eax
   12335:	6a 00                	push   $0x0
   12337:	ff 15 18 a1 01 00    	call   *0x1a118
   1233d:	89 c6                	mov    %eax,%esi
   1233f:	58                   	pop    %eax
   12340:	85 f6                	test   %esi,%esi
   12342:	5a                   	pop    %edx
   12343:	0f 95 c2             	setne  %dl
   12346:	3b 7d 0c             	cmp    0xc(%ebp),%edi
   12349:	0f 92 c0             	setb   %al
   1234c:	25 ff 00 00 00       	and    $0xff,%eax
   12351:	85 c2                	test   %eax,%edx
   12353:	74 45                	je     1239a <_LockHandles+0x7a>
   12355:	31 db                	xor    %ebx,%ebx
   12357:	8b 45 08             	mov    0x8(%ebp),%eax
   1235a:	8b 55 08             	mov    0x8(%ebp),%edx
   1235d:	47                   	inc    %edi
   1235e:	c7 44 03 08 00 00 00 	movl   $0x0,0x8(%ebx,%eax,1)
   12365:	00 
   12366:	50                   	push   %eax
   12367:	50                   	push   %eax
   12368:	8d 04 33             	lea    (%ebx,%esi,1),%eax
   1236b:	6a 00                	push   $0x0
   1236d:	50                   	push   %eax
   1236e:	6a 00                	push   $0x0
   12370:	6a 00                	push   $0x0
   12372:	68 ff 01 1f 00       	push   $0x1f01ff
   12377:	8b 0c 13             	mov    (%ebx,%edx,1),%ecx
   1237a:	83 c3 0c             	add    $0xc,%ebx
   1237d:	51                   	push   %ecx
   1237e:	ff 15 7c a1 01 00    	call   *0x1a17c
   12384:	85 f6                	test   %esi,%esi
   12386:	58                   	pop    %eax
   12387:	5a                   	pop    %edx
   12388:	0f 95 c2             	setne  %dl
   1238b:	3b 7d 0c             	cmp    0xc(%ebp),%edi
   1238e:	0f 92 c0             	setb   %al
   12391:	25 ff 00 00 00       	and    $0xff,%eax
   12396:	85 c2                	test   %eax,%edx
   12398:	75 bd                	jne    12357 <_LockHandles+0x37>
   1239a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1239d:	89 f0                	mov    %esi,%eax
   1239f:	5b                   	pop    %ebx
   123a0:	5e                   	pop    %esi
   123a1:	5f                   	pop    %edi
   123a2:	5d                   	pop    %ebp
   123a3:	c3                   	ret    
   123a4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   123aa:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000123b0 <_UnlockHandles>:
   123b0:	55                   	push   %ebp
   123b1:	89 e5                	mov    %esp,%ebp
   123b3:	57                   	push   %edi
   123b4:	56                   	push   %esi
   123b5:	53                   	push   %ebx
   123b6:	83 ec 0c             	sub    $0xc,%esp
   123b9:	8b 45 0c             	mov    0xc(%ebp),%eax
   123bc:	8b 7d 08             	mov    0x8(%ebp),%edi
   123bf:	85 c0                	test   %eax,%eax
   123c1:	74 25                	je     123e8 <_UnlockHandles+0x38>
   123c3:	89 fe                	mov    %edi,%esi
   123c5:	89 c3                	mov    %eax,%ebx
   123c7:	eb 0d                	jmp    123d6 <_UnlockHandles+0x26>
   123c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   123d0:	83 c6 0c             	add    $0xc,%esi
   123d3:	4b                   	dec    %ebx
   123d4:	74 12                	je     123e8 <_UnlockHandles+0x38>
   123d6:	8b 0e                	mov    (%esi),%ecx
   123d8:	85 c9                	test   %ecx,%ecx
   123da:	74 f4                	je     123d0 <_UnlockHandles+0x20>
   123dc:	ff 15 10 a1 01 00    	call   *0x1a110
   123e2:	83 c6 0c             	add    $0xc,%esi
   123e5:	4b                   	dec    %ebx
   123e6:	75 ee                	jne    123d6 <_UnlockHandles+0x26>
   123e8:	83 ec 0c             	sub    $0xc,%esp
   123eb:	57                   	push   %edi
   123ec:	ff 15 1c a1 01 00    	call   *0x1a11c
   123f2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   123f5:	5b                   	pop    %ebx
   123f6:	5e                   	pop    %esi
   123f7:	5f                   	pop    %edi
   123f8:	5d                   	pop    %ebp
   123f9:	c3                   	ret    
   123fa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012400 <_SocketAcquireStateLock>:
   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 0c             	sub    $0xc,%esp
   12409:	8b 75 08             	mov    0x8(%ebp),%esi
   1240c:	ff 15 44 a1 01 00    	call   *0x1a144
   12412:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   12415:	31 c0                	xor    %eax,%eax
   12417:	85 f6                	test   %esi,%esi
   12419:	74 6c                	je     12487 <_SocketAcquireStateLock+0x87>
   1241b:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   1241e:	39 46 14             	cmp    %eax,0x14(%esi)
   12421:	74 6c                	je     1248f <_SocketAcquireStateLock+0x8f>
   12423:	8d 9e b8 00 00 00    	lea    0xb8(%esi),%ebx
   12429:	89 d9                	mov    %ebx,%ecx
   1242b:	ff 15 f0 a0 01 00    	call   *0x1a0f0
   12431:	80 3e 00             	cmpb   $0x0,(%esi)
   12434:	74 34                	je     1246a <_SocketAcquireStateLock+0x6a>
   12436:	8d be d8 00 00 00    	lea    0xd8(%esi),%edi
   1243c:	8d 74 26 00          	lea    0x0(%esi),%esi
   12440:	89 d9                	mov    %ebx,%ecx
   12442:	ff 15 f4 a0 01 00    	call   *0x1a0f4
   12448:	83 ec 0c             	sub    $0xc,%esp
   1244b:	6a 00                	push   $0x0
   1244d:	6a 00                	push   $0x0
   1244f:	6a 00                	push   $0x0
   12451:	6a 06                	push   $0x6
   12453:	57                   	push   %edi
   12454:	ff 15 64 a1 01 00    	call   *0x1a164
   1245a:	89 d9                	mov    %ebx,%ecx
   1245c:	83 c4 0c             	add    $0xc,%esp
   1245f:	ff 15 f0 a0 01 00    	call   *0x1a0f0
   12465:	80 3e 00             	cmpb   $0x0,(%esi)
   12468:	75 d6                	jne    12440 <_SocketAcquireStateLock+0x40>
   1246a:	8b 4e 10             	mov    0x10(%esi),%ecx
   1246d:	c6 06 01             	movb   $0x1,(%esi)
   12470:	41                   	inc    %ecx
   12471:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   12474:	89 4e 10             	mov    %ecx,0x10(%esi)
   12477:	89 46 14             	mov    %eax,0x14(%esi)
   1247a:	89 d9                	mov    %ebx,%ecx
   1247c:	ff 15 f4 a0 01 00    	call   *0x1a0f4
   12482:	b8 01 00 00 00       	mov    $0x1,%eax
   12487:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1248a:	5b                   	pop    %ebx
   1248b:	5e                   	pop    %esi
   1248c:	5f                   	pop    %edi
   1248d:	5d                   	pop    %ebp
   1248e:	c3                   	ret    
   1248f:	8b 5e 10             	mov    0x10(%esi),%ebx
   12492:	43                   	inc    %ebx
   12493:	89 5e 10             	mov    %ebx,0x10(%esi)
   12496:	eb ea                	jmp    12482 <_SocketAcquireStateLock+0x82>
   12498:	90                   	nop    
   12499:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000124a0 <_SocketStateUnlock>:
   124a0:	55                   	push   %ebp
   124a1:	89 e5                	mov    %esp,%ebp
   124a3:	56                   	push   %esi
   124a4:	53                   	push   %ebx
   124a5:	8b 5d 08             	mov    0x8(%ebp),%ebx
   124a8:	8d b3 b8 00 00 00    	lea    0xb8(%ebx),%esi
   124ae:	89 f1                	mov    %esi,%ecx
   124b0:	ff 15 f0 a0 01 00    	call   *0x1a0f0
   124b6:	8b 43 10             	mov    0x10(%ebx),%eax
   124b9:	48                   	dec    %eax
   124ba:	89 43 10             	mov    %eax,0x10(%ebx)
   124bd:	85 c0                	test   %eax,%eax
   124bf:	74 0f                	je     124d0 <_SocketStateUnlock+0x30>
   124c1:	a1 f4 a0 01 00       	mov    0x1a0f4,%eax
   124c6:	89 f1                	mov    %esi,%ecx
   124c8:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   124cb:	5b                   	pop    %ebx
   124cc:	5e                   	pop    %esi
   124cd:	5d                   	pop    %ebp
   124ce:	ff e0                	jmp    *%eax
   124d0:	c7 43 14 00 00 00 00 	movl   $0x0,0x14(%ebx)
   124d7:	c6 03 00             	movb   $0x0,(%ebx)
   124da:	50                   	push   %eax
   124db:	8d 83 d8 00 00 00    	lea    0xd8(%ebx),%eax
   124e1:	6a 00                	push   $0x0
   124e3:	6a 02                	push   $0x2
   124e5:	50                   	push   %eax
   124e6:	ff 15 58 a1 01 00    	call   *0x1a158
   124ec:	89 f1                	mov    %esi,%ecx
   124ee:	58                   	pop    %eax
   124ef:	a1 f4 a0 01 00       	mov    0x1a0f4,%eax
   124f4:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   124f7:	5b                   	pop    %ebx
   124f8:	5e                   	pop    %esi
   124f9:	5d                   	pop    %ebp
   124fa:	ff e0                	jmp    *%eax
   124fc:	8d 74 26 00          	lea    0x0(%esi),%esi

00012500 <_UnlockAndMaybeComplete@24>:
   12500:	55                   	push   %ebp
   12501:	89 e5                	mov    %esp,%ebp
   12503:	57                   	push   %edi
   12504:	56                   	push   %esi
   12505:	53                   	push   %ebx
   12506:	83 ec 18             	sub    $0x18,%esp
   12509:	8b 7d 08             	mov    0x8(%ebp),%edi
   1250c:	8b 75 0c             	mov    0xc(%ebp),%esi
   1250f:	8b 5d 10             	mov    0x10(%ebp),%ebx
   12512:	57                   	push   %edi
   12513:	e8 88 ff ff ff       	call   124a0 <_SocketStateUnlock>
   12518:	83 c4 10             	add    $0x10,%esp
   1251b:	81 fe 03 01 00 00    	cmp    $0x103,%esi
   12521:	74 3d                	je     12560 <_UnlockAndMaybeComplete@24+0x60>
   12523:	8b 45 14             	mov    0x14(%ebp),%eax
   12526:	89 73 18             	mov    %esi,0x18(%ebx)
   12529:	89 43 1c             	mov    %eax,0x1c(%ebx)
   1252c:	8b 45 18             	mov    0x18(%ebp),%eax
   1252f:	85 c0                	test   %eax,%eax
   12531:	74 0d                	je     12540 <_UnlockAndMaybeComplete@24+0x40>
   12533:	51                   	push   %ecx
   12534:	57                   	push   %edi
   12535:	53                   	push   %ebx
   12536:	8b 47 20             	mov    0x20(%edi),%eax
   12539:	8b 10                	mov    (%eax),%edx
   1253b:	52                   	push   %edx
   1253c:	ff 55 18             	call   *0x18(%ebp)
   1253f:	58                   	pop    %eax
   12540:	8b 45 1c             	mov    0x1c(%ebp),%eax
   12543:	85 c0                	test   %eax,%eax
   12545:	75 2c                	jne    12573 <_UnlockAndMaybeComplete@24+0x73>
   12547:	89 d9                	mov    %ebx,%ecx
   12549:	ba 02 00 00 00       	mov    $0x2,%edx
   1254e:	ff 15 0c a1 01 00    	call   *0x1a10c
   12554:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12557:	89 f0                	mov    %esi,%eax
   12559:	5b                   	pop    %ebx
   1255a:	5e                   	pop    %esi
   1255b:	5f                   	pop    %edi
   1255c:	5d                   	pop    %ebp
   1255d:	c2 18 00             	ret    $0x18
   12560:	8b 43 60             	mov    0x60(%ebx),%eax
   12563:	80 48 03 01          	orb    $0x1,0x3(%eax)
   12567:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1256a:	89 f0                	mov    %esi,%eax
   1256c:	5b                   	pop    %ebx
   1256d:	5e                   	pop    %esi
   1256e:	5f                   	pop    %edi
   1256f:	5d                   	pop    %ebp
   12570:	c2 18 00             	ret    $0x18
   12573:	50                   	push   %eax
   12574:	50                   	push   %eax
   12575:	8b 43 60             	mov    0x60(%ebx),%eax
   12578:	50                   	push   %eax
   12579:	53                   	push   %ebx
   1257a:	e8 f1 fb ff ff       	call   12170 <_UnlockRequest>
   1257f:	83 c4 10             	add    $0x10,%esp
   12582:	eb c3                	jmp    12547 <_UnlockAndMaybeComplete@24+0x47>
   12584:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1258a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00012590 <_LostSocket>:
   12590:	55                   	push   %ebp
   12591:	89 e5                	mov    %esp,%ebp
   12593:	53                   	push   %ebx
   12594:	50                   	push   %eax
   12595:	8b 5d 08             	mov    0x8(%ebp),%ebx
   12598:	8b 45 0c             	mov    0xc(%ebp),%eax
   1259b:	85 c0                	test   %eax,%eax
   1259d:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
   125a4:	c7 43 18 0d 00 00 c0 	movl   $0xc000000d,0x18(%ebx)
   125ab:	75 14                	jne    125c1 <_LostSocket+0x31>
   125ad:	89 d9                	mov    %ebx,%ecx
   125af:	31 d2                	xor    %edx,%edx
   125b1:	ff 15 0c a1 01 00    	call   *0x1a10c
   125b7:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
   125bc:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   125bf:	c9                   	leave  
   125c0:	c3                   	ret    
   125c1:	50                   	push   %eax
   125c2:	50                   	push   %eax
   125c3:	8b 43 60             	mov    0x60(%ebx),%eax
   125c6:	50                   	push   %eax
   125c7:	53                   	push   %ebx
   125c8:	e8 a3 fb ff ff       	call   12170 <_UnlockRequest>
   125cd:	83 c4 10             	add    $0x10,%esp
   125d0:	89 d9                	mov    %ebx,%ecx
   125d2:	31 d2                	xor    %edx,%edx
   125d4:	ff 15 0c a1 01 00    	call   *0x1a10c
   125da:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
   125df:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   125e2:	c9                   	leave  
   125e3:	c3                   	ret    
   125e4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   125ea:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000125f0 <_LeaveIrpUntilLater>:
   125f0:	55                   	push   %ebp
   125f1:	89 e5                	mov    %esp,%ebp
   125f3:	56                   	push   %esi
   125f4:	53                   	push   %ebx
   125f5:	8b 75 08             	mov    0x8(%ebp),%esi
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   125f8:	8b 45 10             	mov    0x10(%ebp),%eax
   125fb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   125fe:	8d 84 c6 08 01 00 00 	lea    0x108(%esi,%eax,8),%eax
   12605:	8d 53 58             	lea    0x58(%ebx),%edx
   12608:	89 43 58             	mov    %eax,0x58(%ebx)
   1260b:	8b 48 04             	mov    0x4(%eax),%ecx
   1260e:	89 4a 04             	mov    %ecx,0x4(%edx)
   12611:	89 50 04             	mov    %edx,0x4(%eax)
   12614:	89 11                	mov    %edx,(%ecx)
   12616:	50                   	push   %eax
   12617:	50                   	push   %eax
   12618:	6a 00                	push   $0x0
   1261a:	6a 00                	push   $0x0
   1261c:	6a 00                	push   $0x0
   1261e:	53                   	push   %ebx
   1261f:	68 03 01 00 00       	push   $0x103
   12624:	56                   	push   %esi
   12625:	e8 d6 fe ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   1262a:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1262d:	5b                   	pop    %ebx
   1262e:	5e                   	pop    %esi
   1262f:	5d                   	pop    %ebp
   12630:	c3                   	ret    
   12631:	eb 0d                	jmp    12640 <_SocketCalloutEnter>
   12633:	90                   	nop    
   12634:	90                   	nop    
   12635:	90                   	nop    
   12636:	90                   	nop    
   12637:	90                   	nop    
   12638:	90                   	nop    
   12639:	90                   	nop    
   1263a:	90                   	nop    
   1263b:	90                   	nop    
   1263c:	90                   	nop    
   1263d:	90                   	nop    
   1263e:	90                   	nop    
   1263f:	90                   	nop    

00012640 <_SocketCalloutEnter>:
   12640:	55                   	push   %ebp
   12641:	89 e5                	mov    %esp,%ebp
   12643:	8b 45 08             	mov    0x8(%ebp),%eax
   12646:	c6 40 01 01          	movb   $0x1,0x1(%eax)
   1264a:	89 45 08             	mov    %eax,0x8(%ebp)
   1264d:	5d                   	pop    %ebp
   1264e:	e9 4d fe ff ff       	jmp    124a0 <_SocketStateUnlock>
   12653:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   12659:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012660 <_SocketCalloutLeave>:
   12660:	55                   	push   %ebp
   12661:	89 e5                	mov    %esp,%ebp
   12663:	8b 45 08             	mov    0x8(%ebp),%eax
   12666:	c6 40 01 00          	movb   $0x0,0x1(%eax)
   1266a:	89 45 08             	mov    %eax,0x8(%ebp)
   1266d:	5d                   	pop    %ebp
   1266e:	e9 8d fd ff ff       	jmp    12400 <_SocketAcquireStateLock>
   12673:	90                   	nop    
   12674:	90                   	nop    
   12675:	90                   	nop    
   12676:	90                   	nop    
   12677:	90                   	nop    
   12678:	90                   	nop    
   12679:	90                   	nop    
   1267a:	90                   	nop    
   1267b:	90                   	nop    
   1267c:	90                   	nop    
   1267d:	90                   	nop    
   1267e:	90                   	nop    
   1267f:	90                   	nop    

00012680 <_OskitDumpBuffer>:
   12680:	55                   	push   %ebp
   12681:	89 e5                	mov    %esp,%ebp
   12683:	57                   	push   %edi
   12684:	56                   	push   %esi
   12685:	53                   	push   %ebx
   12686:	83 ec 0c             	sub    $0xc,%esp
   12689:	31 db                	xor    %ebx,%ebx
   1268b:	8b 75 08             	mov    0x8(%ebp),%esi
   1268e:	8b 7d 0c             	mov    0xc(%ebp),%edi
   12691:	eb 17                	jmp    126aa <_OskitDumpBuffer+0x2a>
   12693:	50                   	push   %eax
   12694:	50                   	push   %eax
   12695:	31 c0                	xor    %eax,%eax
   12697:	8a 04 33             	mov    (%ebx,%esi,1),%al
   1269a:	43                   	inc    %ebx
   1269b:	50                   	push   %eax
   1269c:	68 00 80 01 00       	push   $0x18000
   126a1:	ff 15 14 a1 01 00    	call   *0x1a114
   126a7:	83 c4 10             	add    $0x10,%esp
   126aa:	39 fb                	cmp    %edi,%ebx
   126ac:	73 24                	jae    126d2 <_OskitDumpBuffer+0x52>
   126ae:	85 db                	test   %ebx,%ebx
   126b0:	74 05                	je     126b7 <_OskitDumpBuffer+0x37>
   126b2:	f6 c3 0f             	test   $0xf,%bl
   126b5:	74 31                	je     126e8 <_OskitDumpBuffer+0x68>
   126b7:	f6 c3 0f             	test   $0xf,%bl
   126ba:	75 d7                	jne    12693 <_OskitDumpBuffer+0x13>
   126bc:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
   126bf:	52                   	push   %edx
   126c0:	52                   	push   %edx
   126c1:	50                   	push   %eax
   126c2:	68 06 80 01 00       	push   $0x18006
   126c7:	ff 15 14 a1 01 00    	call   *0x1a114
   126cd:	83 c4 10             	add    $0x10,%esp
   126d0:	eb c1                	jmp    12693 <_OskitDumpBuffer+0x13>
   126d2:	c7 45 08 0d 80 01 00 	movl   $0x1800d,0x8(%ebp)
   126d9:	8b 0d 14 a1 01 00    	mov    0x1a114,%ecx
   126df:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   126e2:	5b                   	pop    %ebx
   126e3:	5e                   	pop    %esi
   126e4:	5f                   	pop    %edi
   126e5:	5d                   	pop    %ebp
   126e6:	ff e1                	jmp    *%ecx
   126e8:	83 ec 0c             	sub    $0xc,%esp
   126eb:	68 0d 80 01 00       	push   $0x1800d
   126f0:	ff 15 14 a1 01 00    	call   *0x1a114
   126f6:	83 c4 10             	add    $0x10,%esp
   126f9:	eb bc                	jmp    126b7 <_OskitDumpBuffer+0x37>
   126fb:	90                   	nop    
   126fc:	8d 74 26 00          	lea    0x0(%esi),%esi

00012700 <_AfdCreateSocket@12>:
   12700:	55                   	push   %ebp
   12701:	89 e5                	mov    %esp,%ebp
   12703:	57                   	push   %edi
   12704:	56                   	push   %esi
   12705:	53                   	push   %ebx
   12706:	83 ec 0c             	sub    $0xc,%esp
   12709:	31 ff                	xor    %edi,%edi
   1270b:	8b 45 08             	mov    0x8(%ebp),%eax
   1270e:	8b 75 0c             	mov    0xc(%ebp),%esi
   12711:	8b 40 28             	mov    0x28(%eax),%eax
   12714:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
   1271b:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   1271e:	8b 45 10             	mov    0x10(%ebp),%eax
   12721:	8b 40 18             	mov    0x18(%eax),%eax
   12724:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   12727:	8b 56 0c             	mov    0xc(%esi),%edx
   1272a:	85 d2                	test   %edx,%edx
   1272c:	74 09                	je     12737 <_AfdCreateSocket@12+0x37>
   1272e:	31 c0                	xor    %eax,%eax
   12730:	8a 42 05             	mov    0x5(%edx),%al
   12733:	8d 7c 10 09          	lea    0x9(%eax,%edx,1),%edi
   12737:	51                   	push   %ecx
   12738:	51                   	push   %ecx
   12739:	68 48 01 00 00       	push   $0x148
   1273e:	6a 00                	push   $0x0
   12740:	ff 15 18 a1 01 00    	call   *0x1a118
   12746:	89 c3                	mov    %eax,%ebx
   12748:	58                   	pop    %eax
   12749:	85 db                	test   %ebx,%ebx
   1274b:	5a                   	pop    %edx
   1274c:	0f 84 c7 01 00 00    	je     12919 <_AfdCreateSocket@12+0x219>
   12752:	51                   	push   %ecx
   12753:	68 48 01 00 00       	push   $0x148
   12758:	6a 00                	push   $0x0
   1275a:	53                   	push   %ebx
   1275b:	e8 00 3a 00 00       	call   16160 <_memset>
   12760:	83 c4 10             	add    $0x10,%esp
   12763:	31 c0                	xor    %eax,%eax
   12765:	85 ff                	test   %edi,%edi
   12767:	74 02                	je     1276b <_AfdCreateSocket@12+0x6b>
   12769:	8b 07                	mov    (%edi),%eax
   1276b:	89 43 08             	mov    %eax,0x8(%ebx)
   1276e:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   12771:	89 43 1c             	mov    %eax,0x1c(%ebx)
   12774:	83 ec 0c             	sub    $0xc,%esp
   12777:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   1277a:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
   12781:	89 43 20             	mov    %eax,0x20(%ebx)
   12784:	c7 83 b0 00 00 00 00 	movl   $0x4000,0xb0(%ebx)
   1278b:	40 00 00 
   1278e:	8d 43 18             	lea    0x18(%ebx),%eax
   12791:	c7 83 a0 00 00 00 00 	movl   $0x4000,0xa0(%ebx)
   12798:	40 00 00 
   1279b:	50                   	push   %eax
   1279c:	ff 15 50 a1 01 00    	call   *0x1a150
   127a2:	c7 83 b8 00 00 00 01 	movl   $0x1,0xb8(%ebx)
   127a9:	00 00 00 
   127ac:	c7 83 bc 00 00 00 00 	movl   $0x0,0xbc(%ebx)
   127b3:	00 00 00 
   127b6:	c7 83 c0 00 00 00 00 	movl   $0x0,0xc0(%ebx)
   127bd:	00 00 00 
   127c0:	58                   	pop    %eax
   127c1:	8d 83 c4 00 00 00    	lea    0xc4(%ebx),%eax
   127c7:	5a                   	pop    %edx
   127c8:	6a 00                	push   $0x0
   127ca:	6a 01                	push   $0x1
   127cc:	50                   	push   %eax
   127cd:	ff 15 4c a1 01 00    	call   *0x1a14c
   127d3:	8d 83 d8 00 00 00    	lea    0xd8(%ebx),%eax
   127d9:	6a 00                	push   $0x0
   127db:	6a 00                	push   $0x0
   127dd:	50                   	push   %eax
   127de:	ff 15 4c a1 01 00    	call   *0x1a14c
   127e4:	89 da                	mov    %ebx,%edx
   127e6:	59                   	pop    %ecx
   127e7:	b9 05 00 00 00       	mov    $0x5,%ecx
   127ec:	8d 74 26 00          	lea    0x0(%esi),%esi

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   127f0:	8d 82 08 01 00 00    	lea    0x108(%edx),%eax
  ListHead->Flink = ListHead->Blink = ListHead;
   127f6:	89 82 0c 01 00 00    	mov    %eax,0x10c(%edx)
   127fc:	89 82 08 01 00 00    	mov    %eax,0x108(%edx)
   12802:	83 c2 08             	add    $0x8,%edx
   12805:	49                   	dec    %ecx
   12806:	79 e8                	jns    127f0 <_AfdCreateSocket@12+0xf0>
   12808:	8d 83 38 01 00 00    	lea    0x138(%ebx),%eax
   1280e:	85 ff                	test   %edi,%edi
static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
  ListHead->Flink = ListHead->Blink = ListHead;
   12810:	89 83 38 01 00 00    	mov    %eax,0x138(%ebx)
   12816:	89 40 04             	mov    %eax,0x4(%eax)
   12819:	8d 83 40 01 00 00    	lea    0x140(%ebx),%eax
   1281f:	89 83 40 01 00 00    	mov    %eax,0x140(%ebx)
   12825:	89 40 04             	mov    %eax,0x4(%eax)
   12828:	74 4e                	je     12878 <_AfdCreateSocket@12+0x178>
   1282a:	8b 47 08             	mov    0x8(%edi),%eax
   1282d:	66 89 83 f4 00 00 00 	mov    %ax,0xf4(%ebx)
   12834:	66 89 83 f6 00 00 00 	mov    %ax,0xf6(%ebx)
   1283b:	25 ff ff 00 00       	and    $0xffff,%eax
   12840:	52                   	push   %edx
   12841:	52                   	push   %edx
   12842:	50                   	push   %eax
   12843:	6a 00                	push   $0x0
   12845:	ff 15 18 a1 01 00    	call   *0x1a118
   1284b:	66 8b 93 f4 00 00 00 	mov    0xf4(%ebx),%dx
   12852:	8d 4f 0c             	lea    0xc(%edi),%ecx
   12855:	89 83 f8 00 00 00    	mov    %eax,0xf8(%ebx)
   1285b:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   12861:	89 14 24             	mov    %edx,(%esp)
   12864:	51                   	push   %ecx
   12865:	50                   	push   %eax
   12866:	e8 d5 37 00 00       	call   16040 <_memcpy>
   1286b:	8b 83 f8 00 00 00    	mov    0xf8(%ebx),%eax
   12871:	83 c4 10             	add    $0x10,%esp
   12874:	85 c0                	test   %eax,%eax
   12876:	74 79                	je     128f1 <_AfdCreateSocket@12+0x1f1>
   12878:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   1287b:	f6 43 08 01          	testb  $0x1,0x8(%ebx)
   1287f:	89 58 0c             	mov    %ebx,0xc(%eax)
   12882:	75 20                	jne    128a4 <_AfdCreateSocket@12+0x1a4>
   12884:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
   1288b:	ba 02 00 00 00       	mov    $0x2,%edx
   12890:	89 f1                	mov    %esi,%ecx
   12892:	ff 15 0c a1 01 00    	call   *0x1a10c
   12898:	31 c0                	xor    %eax,%eax
   1289a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1289d:	5b                   	pop    %ebx
   1289e:	5e                   	pop    %esi
   1289f:	5f                   	pop    %edi
   128a0:	5d                   	pop    %ebp
   128a1:	c2 0c 00             	ret    $0xc
   128a4:	50                   	push   %eax
   128a5:	50                   	push   %eax
   128a6:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
   128ac:	50                   	push   %eax
   128ad:	6a 00                	push   $0x0
   128af:	ff 15 18 a1 01 00    	call   *0x1a118
   128b5:	89 83 a8 00 00 00    	mov    %eax,0xa8(%ebx)
   128bb:	8b 83 a0 00 00 00    	mov    0xa0(%ebx),%eax
   128c1:	50                   	push   %eax
   128c2:	6a 00                	push   $0x0
   128c4:	ff 15 18 a1 01 00    	call   *0x1a118
   128ca:	8b 7b 1c             	mov    0x1c(%ebx),%edi
   128cd:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
   128d3:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   128d9:	83 c8 04             	or     $0x4,%eax
   128dc:	89 83 00 01 00 00    	mov    %eax,0x100(%ebx)
   128e2:	57                   	push   %edi
   128e3:	8b 4b 20             	mov    0x20(%ebx),%ecx
   128e6:	51                   	push   %ecx
   128e7:	e8 04 19 00 00       	call   141f0 <_PollReeval>
   128ec:	83 c4 10             	add    $0x10,%esp
   128ef:	eb 93                	jmp    12884 <_AfdCreateSocket@12+0x184>
   128f1:	83 ec 0c             	sub    $0xc,%esp
   128f4:	53                   	push   %ebx
   128f5:	ff 15 1c a1 01 00    	call   *0x1a11c
   128fb:	c7 46 18 17 00 00 c0 	movl   $0xc0000017,0x18(%esi)
   12902:	83 c4 0c             	add    $0xc,%esp
   12905:	ba 02 00 00 00       	mov    $0x2,%edx
   1290a:	89 f1                	mov    %esi,%ecx
   1290c:	ff 15 0c a1 01 00    	call   *0x1a10c
   12912:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
   12917:	eb 81                	jmp    1289a <_AfdCreateSocket@12+0x19a>
   12919:	31 d2                	xor    %edx,%edx
   1291b:	c7 46 18 17 00 00 c0 	movl   $0xc0000017,0x18(%esi)
   12922:	eb e6                	jmp    1290a <_AfdCreateSocket@12+0x20a>
   12924:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1292a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00012930 <_DestroySocket>:
   12930:	55                   	push   %ebp
   12931:	89 e5                	mov    %esp,%ebp
   12933:	57                   	push   %edi
   12934:	56                   	push   %esi
   12935:	53                   	push   %ebx
   12936:	83 ec 28             	sub    $0x28,%esp
   12939:	31 ff                	xor    %edi,%edi
   1293b:	8b 75 08             	mov    0x8(%ebp),%esi
   1293e:	56                   	push   %esi
   1293f:	e8 bc fa ff ff       	call   12400 <_SocketAcquireStateLock>
   12944:	83 c4 10             	add    $0x10,%esp
   12947:	85 c0                	test   %eax,%eax
   12949:	0f 84 a3 00 00 00    	je     129f2 <_DestroySocket+0xc2>
   1294f:	8d 46 5c             	lea    0x5c(%esi),%eax
   12952:	c7 46 04 00 01 00 00 	movl   $0x100,0x4(%esi)
   12959:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
   1295c:	8d 46 70             	lea    0x70(%esi),%eax
   1295f:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
   12962:	8d 86 84 00 00 00    	lea    0x84(%esi),%eax
   12968:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   1296b:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
   1296f:	0f 85 8b 00 00 00    	jne    12a00 <_DestroySocket+0xd0>
   12975:	8b 46 5c             	mov    0x5c(%esi),%eax
   12978:	85 c0                	test   %eax,%eax
   1297a:	0f 85 80 00 00 00    	jne    12a00 <_DestroySocket+0xd0>
   12980:	8b 46 70             	mov    0x70(%esi),%eax
   12983:	85 c0                	test   %eax,%eax
   12985:	75 79                	jne    12a00 <_DestroySocket+0xd0>
   12987:	8b 86 84 00 00 00    	mov    0x84(%esi),%eax
   1298d:	85 c0                	test   %eax,%eax
   1298f:	75 6f                	jne    12a00 <_DestroySocket+0xd0>
   12991:	31 db                	xor    %ebx,%ebx
   12993:	8b 44 9d d8          	mov    0xffffffd8(%ebp,%ebx,4),%eax
   12997:	8b 00                	mov    (%eax),%eax
   12999:	85 c0                	test   %eax,%eax
   1299b:	75 6a                	jne    12a07 <_DestroySocket+0xd7>
   1299d:	43                   	inc    %ebx
   1299e:	83 fb 02             	cmp    $0x2,%ebx
   129a1:	76 f0                	jbe    12993 <_DestroySocket+0x63>
   129a3:	83 ec 0c             	sub    $0xc,%esp
   129a6:	56                   	push   %esi
   129a7:	e8 f4 fa ff ff       	call   124a0 <_SocketStateUnlock>
   129ac:	89 f8                	mov    %edi,%eax
   129ae:	83 c4 10             	add    $0x10,%esp
   129b1:	84 c0                	test   %al,%al
   129b3:	75 3d                	jne    129f2 <_DestroySocket+0xc2>
   129b5:	8b 86 a8 00 00 00    	mov    0xa8(%esi),%eax
   129bb:	85 c0                	test   %eax,%eax
   129bd:	75 6e                	jne    12a2d <_DestroySocket+0xfd>
   129bf:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
   129c5:	85 c0                	test   %eax,%eax
   129c7:	0f 85 90 00 00 00    	jne    12a5d <_DestroySocket+0x12d>
   129cd:	8b 46 34             	mov    0x34(%esi),%eax
   129d0:	85 c0                	test   %eax,%eax
   129d2:	75 77                	jne    12a4b <_DestroySocket+0x11b>
   129d4:	8b 46 2c             	mov    0x2c(%esi),%eax
   129d7:	85 c0                	test   %eax,%eax
   129d9:	75 61                	jne    12a3c <_DestroySocket+0x10c>
   129db:	83 ec 0c             	sub    $0xc,%esp
   129de:	8b 9e f8 00 00 00    	mov    0xf8(%esi),%ebx
   129e4:	53                   	push   %ebx
   129e5:	ff 15 1c a1 01 00    	call   *0x1a11c
   129eb:	56                   	push   %esi
   129ec:	ff 15 1c a1 01 00    	call   *0x1a11c
   129f2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   129f5:	5b                   	pop    %ebx
   129f6:	5e                   	pop    %esi
   129f7:	5f                   	pop    %edi
   129f8:	5d                   	pop    %ebp
   129f9:	c3                   	ret    
   129fa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   12a00:	bf 01 00 00 00       	mov    $0x1,%edi
   12a05:	eb 8a                	jmp    12991 <_DestroySocket+0x61>
   12a07:	c7 40 18 0f 00 00 c0 	movl   $0xc000000f,0x18(%eax)
   12a0e:	83 ec 0c             	sub    $0xc,%esp
   12a11:	8b 44 9d d8          	mov    0xffffffd8(%ebp,%ebx,4),%eax
   12a15:	8b 00                	mov    (%eax),%eax
   12a17:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   12a1e:	50                   	push   %eax
   12a1f:	ff 15 28 a1 01 00    	call   *0x1a128
   12a25:	83 c4 0c             	add    $0xc,%esp
   12a28:	e9 70 ff ff ff       	jmp    1299d <_DestroySocket+0x6d>
   12a2d:	83 ec 0c             	sub    $0xc,%esp
   12a30:	50                   	push   %eax
   12a31:	ff 15 1c a1 01 00    	call   *0x1a11c
   12a37:	83 c4 0c             	add    $0xc,%esp
   12a3a:	eb 83                	jmp    129bf <_DestroySocket+0x8f>
   12a3c:	83 ec 0c             	sub    $0xc,%esp
   12a3f:	50                   	push   %eax
   12a40:	ff 15 1c a1 01 00    	call   *0x1a11c
   12a46:	83 c4 0c             	add    $0xc,%esp
   12a49:	eb 90                	jmp    129db <_DestroySocket+0xab>
   12a4b:	83 ec 0c             	sub    $0xc,%esp
   12a4e:	50                   	push   %eax
   12a4f:	ff 15 1c a1 01 00    	call   *0x1a11c
   12a55:	83 c4 0c             	add    $0xc,%esp
   12a58:	e9 77 ff ff ff       	jmp    129d4 <_DestroySocket+0xa4>
   12a5d:	83 ec 0c             	sub    $0xc,%esp
   12a60:	50                   	push   %eax
   12a61:	ff 15 1c a1 01 00    	call   *0x1a11c
   12a67:	83 c4 0c             	add    $0xc,%esp
   12a6a:	e9 5e ff ff ff       	jmp    129cd <_DestroySocket+0x9d>
   12a6f:	90                   	nop    

00012a70 <_AfdCloseSocket@12>:
   12a70:	55                   	push   %ebp
   12a71:	89 e5                	mov    %esp,%ebp
   12a73:	57                   	push   %edi
   12a74:	56                   	push   %esi
   12a75:	53                   	push   %ebx
   12a76:	83 ec 14             	sub    $0x14,%esp
   12a79:	8b 45 10             	mov    0x10(%ebp),%eax
   12a7c:	8b 7d 0c             	mov    0xc(%ebp),%edi
   12a7f:	8b 70 18             	mov    0x18(%eax),%esi
   12a82:	8b 5e 0c             	mov    0xc(%esi),%ebx
   12a85:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   12a8b:	83 c8 20             	or     $0x20,%eax
   12a8e:	89 83 00 01 00 00    	mov    %eax,0x100(%ebx)
   12a94:	56                   	push   %esi
   12a95:	8b 43 20             	mov    0x20(%ebx),%eax
   12a98:	50                   	push   %eax
   12a99:	e8 52 17 00 00       	call   141f0 <_PollReeval>
   12a9e:	83 c4 0c             	add    $0xc,%esp
   12aa1:	6a 00                	push   $0x0
   12aa3:	56                   	push   %esi
   12aa4:	8b 43 20             	mov    0x20(%ebx),%eax
   12aa7:	50                   	push   %eax
   12aa8:	e8 d3 11 00 00       	call   13c80 <_KillSelectsForFCB>
   12aad:	8b 8b e8 00 00 00    	mov    0xe8(%ebx),%ecx
   12ab3:	83 c4 10             	add    $0x10,%esp
   12ab6:	85 c9                	test   %ecx,%ecx
   12ab8:	75 36                	jne    12af0 <_AfdCloseSocket@12+0x80>
   12aba:	83 ec 0c             	sub    $0xc,%esp
   12abd:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
   12ac4:	53                   	push   %ebx
   12ac5:	e8 66 fe ff ff       	call   12930 <_DestroySocket>
   12aca:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
   12ad1:	c7 47 1c 00 00 00 00 	movl   $0x0,0x1c(%edi)
   12ad8:	89 f9                	mov    %edi,%ecx
   12ada:	31 d2                	xor    %edx,%edx
   12adc:	ff 15 0c a1 01 00    	call   *0x1a10c
   12ae2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12ae5:	31 c0                	xor    %eax,%eax
   12ae7:	5b                   	pop    %ebx
   12ae8:	5e                   	pop    %esi
   12ae9:	5f                   	pop    %edi
   12aea:	5d                   	pop    %ebp
   12aeb:	c2 0c 00             	ret    $0xc
   12aee:	89 f6                	mov    %esi,%esi
   12af0:	ff 15 10 a1 01 00    	call   *0x1a110
   12af6:	eb c2                	jmp    12aba <_AfdCloseSocket@12+0x4a>
   12af8:	90                   	nop    
   12af9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012b00 <_AfdDisconnect@12>:
   12b00:	55                   	push   %ebp
   12b01:	89 e5                	mov    %esp,%ebp
   12b03:	57                   	push   %edi
   12b04:	56                   	push   %esi
   12b05:	53                   	push   %ebx
   12b06:	83 ec 28             	sub    $0x28,%esp
   12b09:	66 c7 45 de 00 00    	movw   $0x0,0xffffffde(%ebp)
   12b0f:	8b 5d 10             	mov    0x10(%ebp),%ebx
   12b12:	8b 43 18             	mov    0x18(%ebx),%eax
   12b15:	8b 70 0c             	mov    0xc(%eax),%esi
   12b18:	56                   	push   %esi
   12b19:	e8 e2 f8 ff ff       	call   12400 <_SocketAcquireStateLock>
   12b1e:	83 c4 10             	add    $0x10,%esp
   12b21:	85 c0                	test   %eax,%eax
   12b23:	75 1b                	jne    12b40 <_AfdDisconnect@12+0x40>
   12b25:	50                   	push   %eax
   12b26:	50                   	push   %eax
   12b27:	6a 00                	push   $0x0
   12b29:	8b 45 0c             	mov    0xc(%ebp),%eax
   12b2c:	50                   	push   %eax
   12b2d:	e8 5e fa ff ff       	call   12590 <_LostSocket>

    if( DisReq->DisconnectType & AFD_DISCONNECT_SEND )
	Flags |= TDI_DISCONNECT_RELEASE;
    if( DisReq->DisconnectType & AFD_DISCONNECT_RECV ||
	DisReq->DisconnectType & AFD_DISCONNECT_ABORT )
	Flags |= TDI_DISCONNECT_ABORT;

    Status = TdiDisconnect( FCB->Connection.Object,
			    &DisReq->Timeout,
			    Flags,
			    &Iosb,
			    NULL, 
			    NULL,
			    FCB->AddressFrom,
			    ConnInfo);
    
    ExFreePool( ConnInfo );

    return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, TRUE );
}
   12b32:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12b35:	5b                   	pop    %ebx
   12b36:	5e                   	pop    %esi
   12b37:	5f                   	pop    %edi
   12b38:	5d                   	pop    %ebp
   12b39:	c2 0c 00             	ret    $0xc
   12b3c:	8d 74 26 00          	lea    0x0(%esi),%esi
   12b40:	57                   	push   %edi
   12b41:	57                   	push   %edi
   12b42:	53                   	push   %ebx
   12b43:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   12b46:	53                   	push   %ebx
   12b47:	e8 c4 f5 ff ff       	call   12110 <_LockRequest>
   12b4c:	83 c4 10             	add    $0x10,%esp
   12b4f:	89 c7                	mov    %eax,%edi
   12b51:	85 c0                	test   %eax,%eax
   12b53:	0f 84 c8 00 00 00    	je     12c21 <_AfdDisconnect@12+0x121>
   12b59:	8b 46 30             	mov    0x30(%esi),%eax
   12b5c:	85 c0                	test   %eax,%eax
   12b5e:	0f 85 83 00 00 00    	jne    12be7 <_AfdDisconnect@12+0xe7>
   12b64:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   12b6b:	8b 07                	mov    (%edi),%eax
   12b6d:	a8 01                	test   $0x1,%al
   12b6f:	75 65                	jne    12bd6 <_AfdDisconnect@12+0xd6>
   12b71:	a8 02                	test   $0x2,%al
   12b73:	75 6b                	jne    12be0 <_AfdDisconnect@12+0xe0>
   12b75:	a8 04                	test   $0x4,%al
   12b77:	75 67                	jne    12be0 <_AfdDisconnect@12+0xe0>
   12b79:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12b80:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   12b83:	50                   	push   %eax
   12b84:	8b 46 34             	mov    0x34(%esi),%eax
   12b87:	50                   	push   %eax
   12b88:	8d 45 e0             	lea    0xffffffe0(%ebp),%eax
   12b8b:	6a 00                	push   $0x0
   12b8d:	6a 00                	push   $0x0
   12b8f:	50                   	push   %eax
   12b90:	66 8b 45 de          	mov    0xffffffde(%ebp),%ax
   12b94:	25 ff ff 00 00       	and    $0xffff,%eax
   12b99:	50                   	push   %eax
   12b9a:	8d 47 08             	lea    0x8(%edi),%eax
   12b9d:	50                   	push   %eax
   12b9e:	8b 5e 40             	mov    0x40(%esi),%ebx
   12ba1:	53                   	push   %ebx
   12ba2:	e8 69 26 00 00       	call   15210 <_TdiDisconnect>
   12ba7:	83 c4 14             	add    $0x14,%esp
   12baa:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   12bad:	89 c3                	mov    %eax,%ebx
   12baf:	51                   	push   %ecx
   12bb0:	ff 15 1c a1 01 00    	call   *0x1a11c
   12bb6:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
   12bbd:	6a 00                	push   $0x0
   12bbf:	6a 00                	push   $0x0
   12bc1:	8b 55 0c             	mov    0xc(%ebp),%edx
   12bc4:	52                   	push   %edx
   12bc5:	53                   	push   %ebx
   12bc6:	56                   	push   %esi
   12bc7:	e8 34 f9 ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   12bcc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12bcf:	5b                   	pop    %ebx
   12bd0:	5e                   	pop    %esi
   12bd1:	5f                   	pop    %edi
   12bd2:	5d                   	pop    %ebp
   12bd3:	c2 0c 00             	ret    $0xc
   12bd6:	66 c7 45 de 04 00    	movw   $0x4,0xffffffde(%ebp)
   12bdc:	a8 02                	test   $0x2,%al
   12bde:	74 95                	je     12b75 <_AfdDisconnect@12+0x75>
   12be0:	66 83 4d de 02       	orw    $0x2,0xffffffde(%ebp)
   12be5:	eb 99                	jmp    12b80 <_AfdDisconnect@12+0x80>
   12be7:	52                   	push   %edx
   12be8:	52                   	push   %edx
   12be9:	66 8b 40 06          	mov    0x6(%eax),%ax
   12bed:	25 ff ff 00 00       	and    $0xffff,%eax
   12bf2:	50                   	push   %eax
   12bf3:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   12bf6:	50                   	push   %eax
   12bf7:	e8 d4 28 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   12bfc:	83 c4 10             	add    $0x10,%esp
   12bff:	85 c0                	test   %eax,%eax
   12c01:	78 0b                	js     12c0e <_AfdDisconnect@12+0x10e>
   12c03:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   12c06:	85 c0                	test   %eax,%eax
   12c08:	0f 85 5d ff ff ff    	jne    12b6b <_AfdDisconnect@12+0x6b>
   12c0e:	50                   	push   %eax
   12c0f:	50                   	push   %eax
   12c10:	6a 01                	push   $0x1
   12c12:	6a 00                	push   $0x0
   12c14:	6a 00                	push   $0x0
   12c16:	8b 45 0c             	mov    0xc(%ebp),%eax
   12c19:	50                   	push   %eax
   12c1a:	68 17 00 00 c0       	push   $0xc0000017
   12c1f:	eb a5                	jmp    12bc6 <_AfdDisconnect@12+0xc6>
   12c21:	51                   	push   %ecx
   12c22:	51                   	push   %ecx
   12c23:	6a 00                	push   $0x0
   12c25:	eb eb                	jmp    12c12 <_AfdDisconnect@12+0x112>
   12c27:	89 f6                	mov    %esi,%esi
   12c29:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012c30 <_AfdDispatch@8>:

NTSTATUS STDCALL
AfdDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
   12c30:	55                   	push   %ebp
    PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
    NTSTATUS Status = STATUS_SUCCESS;
#ifdef DBG
    PFILE_OBJECT FileObject = IrpSp->FileObject;
#endif

    AFD_DbgPrint(MID_TRACE,("AfdDispatch: %d\n", IrpSp->MajorFunction));
    if( IrpSp->MajorFunction != IRP_MJ_CREATE) {
	AFD_DbgPrint(MID_TRACE,("FO %x, IrpSp->FO %x\n",
				FileObject, IrpSp->FileObject));
	ASSERT(FileObject == IrpSp->FileObject);
    }

    switch(IrpSp->MajorFunction)
   12c31:	31 c0                	xor    %eax,%eax
   12c33:	89 e5                	mov    %esp,%ebp
   12c35:	56                   	push   %esi
   12c36:	53                   	push   %ebx
   12c37:	31 db                	xor    %ebx,%ebx
   12c39:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   12c3c:	8b 75 08             	mov    0x8(%ebp),%esi
   12c3f:	8b 51 60             	mov    0x60(%ecx),%edx
   12c42:	8a 02                	mov    (%edx),%al
   12c44:	83 f8 0e             	cmp    $0xe,%eax
   12c47:	77 07                	ja     12c50 <_AfdDispatch@8+0x20>
   12c49:	ff 24 85 10 80 01 00 	jmp    *0x18010(,%eax,4)
    {
	/* opening and closing handles to the device */
    case IRP_MJ_CREATE:
	/* Mostly borrowed from the named pipe file system */
	return AfdCreateSocket(DeviceObject, Irp, IrpSp);

    case IRP_MJ_CLOSE:
	/* Ditto the borrowing */
	return AfdCloseSocket(DeviceObject, Irp, IrpSp);

    /* write data */
    case IRP_MJ_WRITE:
	return AfdConnectedSocketWriteData( DeviceObject, Irp, IrpSp, TRUE );
    
    /* read data */
    case IRP_MJ_READ:
	return AfdConnectedSocketReadData( DeviceObject, Irp, IrpSp, TRUE );
    
    case IRP_MJ_DEVICE_CONTROL:
    {
	switch( IrpSp->Parameters.DeviceIoControl.IoControlCode ) {
	case IOCTL_AFD_BIND:
	    return AfdBindSocket( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_CONNECT:
	    return AfdStreamSocketConnect( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_START_LISTEN:
	    return AfdListenSocket( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_RECV:
	    return AfdConnectedSocketReadData( DeviceObject, Irp, IrpSp, 
					       FALSE );

	case IOCTL_AFD_SELECT:
	    return AfdSelect( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_EVENT_SELECT:
	    return AfdEventSelect( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_ENUM_NETWORK_EVENTS:
	    return AfdEnumEvents( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_RECV_DATAGRAM:
	    return AfdPacketSocketReadData( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_SEND:
	    return AfdConnectedSocketWriteData( DeviceObject, Irp, IrpSp, 
						FALSE );

	case IOCTL_AFD_SEND_DATAGRAM:
	    return AfdPacketSocketWriteData( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_GET_INFO:
	    return AfdGetInfo( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_GET_CONTEXT:
	    return AfdGetContext( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_SET_CONTEXT:
	    return AfdSetContext( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_WAIT_FOR_LISTEN:
	    return AfdWaitForListen( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_ACCEPT:
	    return AfdAccept( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_DISCONNECT:
	    return AfdDisconnect( DeviceObject, Irp, IrpSp );

	case IOCTL_AFD_GET_SOCK_NAME:
	    return AfdGetSockOrPeerName( DeviceObject, Irp, IrpSp, TRUE );

        case IOCTL_AFD_GET_PEER_NAME:
            return AfdGetSockOrPeerName( DeviceObject, Irp, IrpSp, FALSE );

	case IOCTL_AFD_GET_TDI_HANDLES:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_TDI_HANDLES\n"));
	    break;

	case IOCTL_AFD_SET_INFO:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_INFO\n"));
	    break;

	case IOCTL_AFD_SET_CONNECT_DATA:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_DATA\n"));
	    break;

	case IOCTL_AFD_SET_CONNECT_OPTIONS:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_OPTIONS\n"));
	    break;

	case IOCTL_AFD_SET_DISCONNECT_DATA:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_DATA\n"));
	    break;

	case IOCTL_AFD_SET_DISCONNECT_OPTIONS:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_OPTIONS\n"));
	    break;

	case IOCTL_AFD_GET_CONNECT_DATA:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_CONNECT_DATA\n"));
	    break;

	case IOCTL_AFD_GET_CONNECT_OPTIONS:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_CONNECT_OPTIONS\n"));
	    break;

	case IOCTL_AFD_GET_DISCONNECT_DATA:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_DISCONNECT_DATA\n"));
	    break;

	case IOCTL_AFD_GET_DISCONNECT_OPTIONS:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_DISCONNECT_OPTIONS\n"));
	    break;

	case IOCTL_AFD_SET_CONNECT_DATA_SIZE:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_DATA_SIZE\n"));
	    break;

	case IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE\n"));
	    break;

	case IOCTL_AFD_SET_DISCONNECT_DATA_SIZE:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_DATA_SIZE\n"));
	    break;

	case IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE\n"));
	    break;

	case IOCTL_AFD_DEFER_ACCEPT:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_DEFER_ACCEPT\n"));
	    break;

	case IOCTL_AFD_GET_PENDING_CONNECT_DATA:
	    AFD_DbgPrint(MIN_TRACE, ("IOCTL_AFD_GET_PENDING_CONNECT_DATA\n"));
	    break;

	default:
	    Status = STATUS_NOT_IMPLEMENTED;
	    Irp->IoStatus.Information = 0;
	    AFD_DbgPrint(MIN_TRACE, ("Unknown IOCTL (0x%x)\n",
				     IrpSp->Parameters.DeviceIoControl.
				     IoControlCode));
	    break;
	}
	break;
    }
    
/* unsupported operations */
    default:
    {
	Status = STATUS_NOT_IMPLEMENTED;
   12c50:	bb 02 00 00 c0       	mov    $0xc0000002,%ebx
	AFD_DbgPrint(MIN_TRACE,
		     ("Irp: Unknown Major code was %x\n", 
		      IrpSp->MajorFunction));
	break;
    }
    }
    
    AFD_DbgPrint(MID_TRACE, ("Returning %x\n", Status));
    Irp->IoStatus.Status = Status;
   12c55:	89 59 18             	mov    %ebx,0x18(%ecx)
    IoCompleteRequest(Irp, IO_NO_INCREMENT);
   12c58:	31 d2                	xor    %edx,%edx
   12c5a:	ff 15 0c a1 01 00    	call   *0x1a10c
    
    return (Status);
   12c60:	89 d8                	mov    %ebx,%eax
}
   12c62:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12c65:	5b                   	pop    %ebx
   12c66:	5e                   	pop    %esi
   12c67:	5d                   	pop    %ebp
   12c68:	c2 08 00             	ret    $0x8
   12c6b:	8b 42 0c             	mov    0xc(%edx),%eax
   12c6e:	2d 03 20 01 00       	sub    $0x12003,%eax
   12c73:	3d a4 00 00 00       	cmp    $0xa4,%eax
   12c78:	77 35                	ja     12caf <_AfdDispatch@8+0x7f>
   12c7a:	ff 24 85 4c 80 01 00 	jmp    *0x1804c(,%eax,4)
   12c81:	50                   	push   %eax
   12c82:	52                   	push   %edx
   12c83:	51                   	push   %ecx
   12c84:	56                   	push   %esi
   12c85:	e8 76 fa ff ff       	call   12700 <_AfdCreateSocket@12>
   12c8a:	eb d6                	jmp    12c62 <_AfdDispatch@8+0x32>
   12c8c:	50                   	push   %eax
   12c8d:	52                   	push   %edx
   12c8e:	51                   	push   %ecx
   12c8f:	56                   	push   %esi
   12c90:	e8 db fd ff ff       	call   12a70 <_AfdCloseSocket@12>
   12c95:	eb cb                	jmp    12c62 <_AfdDispatch@8+0x32>
   12c97:	6a 01                	push   $0x1
   12c99:	52                   	push   %edx
   12c9a:	51                   	push   %ecx
   12c9b:	56                   	push   %esi
   12c9c:	e8 7f 06 00 00       	call   13320 <_AfdConnectedSocketReadData@16>
   12ca1:	eb bf                	jmp    12c62 <_AfdDispatch@8+0x32>
   12ca3:	6a 01                	push   $0x1
   12ca5:	52                   	push   %edx
   12ca6:	51                   	push   %ecx
   12ca7:	56                   	push   %esi
   12ca8:	e8 53 2d 00 00       	call   15a00 <_AfdConnectedSocketWriteData@16>
   12cad:	eb b3                	jmp    12c62 <_AfdDispatch@8+0x32>
   12caf:	bb 02 00 00 c0       	mov    $0xc0000002,%ebx
   12cb4:	c7 41 1c 00 00 00 00 	movl   $0x0,0x1c(%ecx)
   12cbb:	eb 98                	jmp    12c55 <_AfdDispatch@8+0x25>
   12cbd:	50                   	push   %eax
   12cbe:	52                   	push   %edx
   12cbf:	51                   	push   %ecx
   12cc0:	56                   	push   %esi
   12cc1:	e8 ca 13 00 00       	call   14090 <_AfdEnumEvents@12>
   12cc6:	eb 9a                	jmp    12c62 <_AfdDispatch@8+0x32>
   12cc8:	50                   	push   %eax
   12cc9:	52                   	push   %edx
   12cca:	51                   	push   %ecx
   12ccb:	56                   	push   %esi
   12ccc:	e8 cf 12 00 00       	call   13fa0 <_AfdEventSelect@12>
   12cd1:	eb 8f                	jmp    12c62 <_AfdDispatch@8+0x32>
   12cd3:	50                   	push   %eax
   12cd4:	52                   	push   %edx
   12cd5:	51                   	push   %ecx
   12cd6:	56                   	push   %esi
   12cd7:	e8 c4 ea ff ff       	call   117a0 <_AfdGetInfo@12>
   12cdc:	eb 84                	jmp    12c62 <_AfdDispatch@8+0x32>
   12cde:	50                   	push   %eax
   12cdf:	52                   	push   %edx
   12ce0:	51                   	push   %ecx
   12ce1:	56                   	push   %esi
   12ce2:	e8 d9 e9 ff ff       	call   116c0 <_AfdSetContext@12>
   12ce7:	e9 76 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12cec:	53                   	push   %ebx
   12ced:	52                   	push   %edx
   12cee:	51                   	push   %ecx
   12cef:	56                   	push   %esi
   12cf0:	e8 2b e9 ff ff       	call   11620 <_AfdGetContext@12>
   12cf5:	e9 68 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12cfa:	6a 00                	push   $0x0
   12cfc:	52                   	push   %edx
   12cfd:	51                   	push   %ecx
   12cfe:	56                   	push   %esi
   12cff:	e8 ec eb ff ff       	call   118f0 <_AfdGetSockOrPeerName@16>
   12d04:	e9 59 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d09:	6a 01                	push   $0x1
   12d0b:	eb ef                	jmp    12cfc <_AfdDispatch@8+0xcc>
   12d0d:	50                   	push   %eax
   12d0e:	52                   	push   %edx
   12d0f:	51                   	push   %ecx
   12d10:	56                   	push   %esi
   12d11:	e8 ea fd ff ff       	call   12b00 <_AfdDisconnect@12>
   12d16:	e9 47 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d1b:	50                   	push   %eax
   12d1c:	52                   	push   %edx
   12d1d:	51                   	push   %ecx
   12d1e:	56                   	push   %esi
   12d1f:	e8 2c 10 00 00       	call   13d50 <_AfdSelect@12>
   12d24:	e9 39 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d29:	50                   	push   %eax
   12d2a:	52                   	push   %edx
   12d2b:	51                   	push   %ecx
   12d2c:	56                   	push   %esi
   12d2d:	e8 de 2f 00 00       	call   15d10 <_AfdPacketSocketWriteData@12>
   12d32:	e9 2b ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d37:	6a 00                	push   $0x0
   12d39:	e9 67 ff ff ff       	jmp    12ca5 <_AfdDispatch@8+0x75>
   12d3e:	50                   	push   %eax
   12d3f:	52                   	push   %edx
   12d40:	51                   	push   %ecx
   12d41:	56                   	push   %esi
   12d42:	e8 39 0b 00 00       	call   13880 <_AfdPacketSocketReadData@12>
   12d47:	e9 16 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d4c:	6a 00                	push   $0x0
   12d4e:	e9 46 ff ff ff       	jmp    12c99 <_AfdDispatch@8+0x69>
   12d53:	50                   	push   %eax
   12d54:	52                   	push   %edx
   12d55:	51                   	push   %ecx
   12d56:	56                   	push   %esi
   12d57:	e8 34 f2 ff ff       	call   11f90 <_AfdAccept>
   12d5c:	e9 01 ff ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d61:	50                   	push   %eax
   12d62:	52                   	push   %edx
   12d63:	51                   	push   %ecx
   12d64:	56                   	push   %esi
   12d65:	e8 86 f1 ff ff       	call   11ef0 <_AfdWaitForListen>
   12d6a:	e9 f3 fe ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d6f:	53                   	push   %ebx
   12d70:	52                   	push   %edx
   12d71:	51                   	push   %ecx
   12d72:	56                   	push   %esi
   12d73:	e8 78 f0 ff ff       	call   11df0 <_AfdListenSocket>
   12d78:	e9 e5 fe ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d7d:	50                   	push   %eax
   12d7e:	52                   	push   %edx
   12d7f:	51                   	push   %ecx
   12d80:	56                   	push   %esi
   12d81:	e8 8a e6 ff ff       	call   11410 <_AfdStreamSocketConnect@12>
   12d86:	e9 d7 fe ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d8b:	50                   	push   %eax
   12d8c:	52                   	push   %edx
   12d8d:	51                   	push   %ecx
   12d8e:	56                   	push   %esi
   12d8f:	e8 fc e2 ff ff       	call   11090 <_AfdBindSocket@12>
   12d94:	e9 c9 fe ff ff       	jmp    12c62 <_AfdDispatch@8+0x32>
   12d99:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012da0 <_AfdUnload@4>:

VOID STDCALL
AfdUnload(PDRIVER_OBJECT DriverObject)
{
   12da0:	55                   	push   %ebp
   12da1:	89 e5                	mov    %esp,%ebp
   12da3:	5d                   	pop    %ebp
   12da4:	c2 04 00             	ret    $0x4
   12da7:	89 f6                	mov    %esi,%esi
   12da9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012db0 <_DriverEntry@8>:
}

NTSTATUS STDCALL 
DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
   12db0:	55                   	push   %ebp
   12db1:	89 e5                	mov    %esp,%ebp
   12db3:	56                   	push   %esi
   12db4:	53                   	push   %ebx
   12db5:	83 ec 14             	sub    $0x14,%esp
    PDEVICE_OBJECT DeviceObject;
    UNICODE_STRING wstrDeviceName;
    PAFD_DEVICE_EXTENSION DeviceExt;
    NTSTATUS Status;

    /* register driver routines */
    DriverObject->MajorFunction[IRP_MJ_CLOSE] = AfdDispatch;
    DriverObject->MajorFunction[IRP_MJ_CREATE] = AfdDispatch;
    DriverObject->MajorFunction[IRP_MJ_WRITE] = AfdDispatch;
    DriverObject->MajorFunction[IRP_MJ_READ] = AfdDispatch;
    DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = AfdDispatch;
    DriverObject->DriverUnload = AfdUnload;

    /* create afd device */
    RtlRosInitUnicodeStringFromLiteral(&wstrDeviceName, L"\\Device\\Afd");

    Status = IoCreateDevice
   12db8:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   12dbb:	8b 45 08             	mov    0x8(%ebp),%eax
   12dbe:	66 c7 45 f0 16 00    	movw   $0x16,0xfffffff0(%ebp)
   12dc4:	66 c7 45 f2 18 00    	movw   $0x18,0xfffffff2(%ebp)
   12dca:	c7 45 f4 e0 82 01 00 	movl   $0x182e0,0xfffffff4(%ebp)
   12dd1:	c7 40 40 30 2c 01 00 	movl   $0x12c30,0x40(%eax)
   12dd8:	c7 40 38 30 2c 01 00 	movl   $0x12c30,0x38(%eax)
   12ddf:	c7 40 48 30 2c 01 00 	movl   $0x12c30,0x48(%eax)
   12de6:	c7 40 44 30 2c 01 00 	movl   $0x12c30,0x44(%eax)
   12ded:	c7 40 70 30 2c 01 00 	movl   $0x12c30,0x70(%eax)
   12df4:	c7 40 34 a0 2d 01 00 	movl   $0x12da0,0x34(%eax)
   12dfb:	52                   	push   %edx
   12dfc:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   12dff:	6a 00                	push   $0x0
   12e01:	6a 00                	push   $0x0
   12e03:	6a 11                	push   $0x11
   12e05:	52                   	push   %edx
   12e06:	6a 10                	push   $0x10
   12e08:	50                   	push   %eax
   12e09:	ff 15 2c a1 01 00    	call   *0x1a12c
   12e0f:	89 c6                	mov    %eax,%esi
	( DriverObject,
	  sizeof(AFD_DEVICE_EXTENSION),
	  &wstrDeviceName,
	  FILE_DEVICE_NAMED_PIPE,
	  0,
	  FALSE,
	  &DeviceObject );

    /* failure */
    if(!NT_SUCCESS(Status))
   12e11:	58                   	pop    %eax
   12e12:	85 f6                	test   %esi,%esi
   12e14:	78 1f                	js     12e35 <_DriverEntry@8+0x85>
    {
	return (Status);
    }

    DeviceExt = DeviceObject->DeviceExtension;
   12e16:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
    KeInitializeSpinLock( &DeviceExt->Lock );
   12e19:	83 ec 0c             	sub    $0xc,%esp
   12e1c:	8b 58 28             	mov    0x28(%eax),%ebx
   12e1f:	8d 43 0c             	lea    0xc(%ebx),%eax
   12e22:	50                   	push   %eax
   12e23:	ff 15 50 a1 01 00    	call   *0x1a150

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   12e29:	8d 43 04             	lea    0x4(%ebx),%eax
   12e2c:	83 c4 0c             	add    $0xc,%esp
  ListHead->Flink = ListHead->Blink = ListHead;
   12e2f:	89 43 04             	mov    %eax,0x4(%ebx)
   12e32:	89 40 04             	mov    %eax,0x4(%eax)
    InitializeListHead( &DeviceExt->Polls );

    AFD_DbgPrint(MID_TRACE,("Device created: object %x ext %x\n",
			    DeviceObject, DeviceExt));

    return (Status);
}
   12e35:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12e38:	89 f0                	mov    %esi,%eax
   12e3a:	5b                   	pop    %ebx
   12e3b:	5e                   	pop    %esi
   12e3c:	5d                   	pop    %ebp
   12e3d:	c2 08 00             	ret    $0x8

00012e40 <_CantReadMore>:
   12e40:	55                   	push   %ebp
   12e41:	31 c9                	xor    %ecx,%ecx
   12e43:	89 e5                	mov    %esp,%ebp
   12e45:	8b 55 08             	mov    0x8(%ebp),%edx
   12e48:	8b 82 b4 00 00 00    	mov    0xb4(%edx),%eax
   12e4e:	3b 82 ac 00 00 00    	cmp    0xac(%edx),%eax
   12e54:	75 0b                	jne    12e61 <_CantReadMore+0x21>
   12e56:	f6 82 00 01 00 00 28 	testb  $0x28,0x100(%edx)
   12e5d:	74 02                	je     12e61 <_CantReadMore+0x21>
   12e5f:	b1 01                	mov    $0x1,%cl
   12e61:	89 c8                	mov    %ecx,%eax
   12e63:	5d                   	pop    %ebp
   12e64:	c3                   	ret    
   12e65:	8d 74 26 00          	lea    0x0(%esi),%esi
   12e69:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012e70 <_TryToSatisfyRecvRequestFromBuffer>:
   12e70:	55                   	push   %ebp
   12e71:	89 e5                	mov    %esp,%ebp
   12e73:	57                   	push   %edi
   12e74:	56                   	push   %esi
   12e75:	53                   	push   %ebx
   12e76:	83 ec 0c             	sub    $0xc,%esp
   12e79:	8b 45 08             	mov    0x8(%ebp),%eax
   12e7c:	8b 55 10             	mov    0x10(%ebp),%edx
   12e7f:	8b b8 b4 00 00 00    	mov    0xb4(%eax),%edi
   12e85:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
   12e8b:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   12e91:	29 cf                	sub    %ecx,%edi
   12e93:	50                   	push   %eax
   12e94:	e8 a7 ff ff ff       	call   12e40 <_CantReadMore>
   12e99:	5a                   	pop    %edx
   12e9a:	31 d2                	xor    %edx,%edx
   12e9c:	84 c0                	test   %al,%al
   12e9e:	0f 85 73 01 00 00    	jne    13017 <_TryToSatisfyRecvRequestFromBuffer+0x1a7>
   12ea4:	66 ba 03 01          	mov    $0x103,%dx
   12ea8:	85 ff                	test   %edi,%edi
   12eaa:	0f 84 67 01 00 00    	je     13017 <_TryToSatisfyRecvRequestFromBuffer+0x1a7>
   12eb0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   12eb3:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   12eba:	8b 41 04             	mov    0x4(%ecx),%eax
   12ebd:	8b 09                	mov    (%ecx),%ecx
   12ebf:	85 c9                	test   %ecx,%ecx
   12ec1:	8d 14 c1             	lea    (%ecx,%eax,8),%edx
   12ec4:	0f 84 a8 00 00 00    	je     12f72 <_TryToSatisfyRecvRequestFromBuffer+0x102>
   12eca:	83 f8 00             	cmp    $0x0,%eax
   12ecd:	0f 86 9f 00 00 00    	jbe    12f72 <_TryToSatisfyRecvRequestFromBuffer+0x102>
   12ed3:	89 d3                	mov    %edx,%ebx
   12ed5:	eb 28                	jmp    12eff <_TryToSatisfyRecvRequestFromBuffer+0x8f>
   12ed7:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   12eda:	83 c3 08             	add    $0x8,%ebx
   12edd:	40                   	inc    %eax
   12ede:	85 c9                	test   %ecx,%ecx
   12ee0:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   12ee3:	0f 95 c2             	setne  %dl
   12ee6:	85 ff                	test   %edi,%edi
   12ee8:	0f 95 c0             	setne  %al
   12eeb:	25 ff 00 00 00       	and    $0xff,%eax
   12ef0:	85 c2                	test   %eax,%edx
   12ef2:	74 7e                	je     12f72 <_TryToSatisfyRecvRequestFromBuffer+0x102>
   12ef4:	8b 45 0c             	mov    0xc(%ebp),%eax
   12ef7:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   12efa:	39 50 04             	cmp    %edx,0x4(%eax)
   12efd:	76 73                	jbe    12f72 <_TryToSatisfyRecvRequestFromBuffer+0x102>
   12eff:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   12f02:	8b 34 c1             	mov    (%ecx,%eax,8),%esi
   12f05:	39 fe                	cmp    %edi,%esi
   12f07:	76 02                	jbe    12f0b <_TryToSatisfyRecvRequestFromBuffer+0x9b>
   12f09:	89 fe                	mov    %edi,%esi
   12f0b:	8b 43 04             	mov    0x4(%ebx),%eax
   12f0e:	85 c0                	test   %eax,%eax
   12f10:	74 c5                	je     12ed7 <_TryToSatisfyRecvRequestFromBuffer+0x67>
   12f12:	52                   	push   %edx
   12f13:	52                   	push   %edx
   12f14:	6a 00                	push   $0x0
   12f16:	8b 43 04             	mov    0x4(%ebx),%eax
   12f19:	29 f7                	sub    %esi,%edi
   12f1b:	50                   	push   %eax
   12f1c:	ff 15 6c a1 01 00    	call   *0x1a16c
   12f22:	8b 4d 08             	mov    0x8(%ebp),%ecx
   12f25:	89 03                	mov    %eax,(%ebx)
   12f27:	8b 91 a8 00 00 00    	mov    0xa8(%ecx),%edx
   12f2d:	03 91 ac 00 00 00    	add    0xac(%ecx),%edx
   12f33:	89 34 24             	mov    %esi,(%esp)
   12f36:	52                   	push   %edx
   12f37:	50                   	push   %eax
   12f38:	e8 03 31 00 00       	call   16040 <_memcpy>
   12f3d:	58                   	pop    %eax
   12f3e:	8b 43 04             	mov    0x4(%ebx),%eax
   12f41:	5a                   	pop    %edx
   12f42:	50                   	push   %eax
   12f43:	8b 0b                	mov    (%ebx),%ecx
   12f45:	51                   	push   %ecx
   12f46:	ff 15 78 a1 01 00    	call   *0x1a178
   12f4c:	8b 45 08             	mov    0x8(%ebp),%eax
   12f4f:	8b 90 ac 00 00 00    	mov    0xac(%eax),%edx
   12f55:	01 f2                	add    %esi,%edx
   12f57:	89 90 ac 00 00 00    	mov    %edx,0xac(%eax)
   12f5d:	8b 55 10             	mov    0x10(%ebp),%edx
   12f60:	8b 02                	mov    (%edx),%eax
   12f62:	01 f0                	add    %esi,%eax
   12f64:	89 02                	mov    %eax,(%edx)
   12f66:	8b 45 0c             	mov    0xc(%ebp),%eax
   12f69:	5a                   	pop    %edx
   12f6a:	59                   	pop    %ecx
   12f6b:	8b 08                	mov    (%eax),%ecx
   12f6d:	e9 65 ff ff ff       	jmp    12ed7 <_TryToSatisfyRecvRequestFromBuffer+0x67>
   12f72:	8b 55 08             	mov    0x8(%ebp),%edx
   12f75:	8b 82 b4 00 00 00    	mov    0xb4(%edx),%eax
   12f7b:	39 82 ac 00 00 00    	cmp    %eax,0xac(%edx)
   12f81:	0f 85 8e 00 00 00    	jne    13015 <_TryToSatisfyRecvRequestFromBuffer+0x1a5>
   12f87:	8b 82 00 01 00 00    	mov    0x100(%edx),%eax
   12f8d:	c7 82 b4 00 00 00 00 	movl   $0x0,0xb4(%edx)
   12f94:	00 00 00 
   12f97:	83 e0 fe             	and    $0xfffffffe,%eax
   12f9a:	c7 82 ac 00 00 00 00 	movl   $0x0,0xac(%edx)
   12fa1:	00 00 00 
   12fa4:	89 82 00 01 00 00    	mov    %eax,0x100(%edx)
   12faa:	8b 42 70             	mov    0x70(%edx),%eax
   12fad:	85 c0                	test   %eax,%eax
   12faf:	75 64                	jne    13015 <_TryToSatisfyRecvRequestFromBuffer+0x1a5>
   12fb1:	83 ec 0c             	sub    $0xc,%esp
   12fb4:	52                   	push   %edx
   12fb5:	e8 86 f6 ff ff       	call   12640 <_SocketCalloutEnter>
   12fba:	8b 45 08             	mov    0x8(%ebp),%eax
   12fbd:	8b 4d 08             	mov    0x8(%ebp),%ecx
   12fc0:	50                   	push   %eax
   12fc1:	8b 45 08             	mov    0x8(%ebp),%eax
   12fc4:	83 c0 74             	add    $0x74,%eax
   12fc7:	68 60 32 01 00       	push   $0x13260
   12fcc:	50                   	push   %eax
   12fcd:	8b 81 b0 00 00 00    	mov    0xb0(%ecx),%eax
   12fd3:	50                   	push   %eax
   12fd4:	8b 81 a8 00 00 00    	mov    0xa8(%ecx),%eax
   12fda:	50                   	push   %eax
   12fdb:	89 c8                	mov    %ecx,%eax
   12fdd:	6a 20                	push   $0x20
   12fdf:	83 c0 70             	add    $0x70,%eax
   12fe2:	8b 79 40             	mov    0x40(%ecx),%edi
   12fe5:	57                   	push   %edi
   12fe6:	50                   	push   %eax
   12fe7:	e8 34 1c 00 00       	call   14c20 <_TdiReceive>
   12fec:	83 c4 30             	add    $0x30,%esp
   12fef:	85 c0                	test   %eax,%eax
   12ff1:	75 13                	jne    13006 <_TryToSatisfyRecvRequestFromBuffer+0x196>
   12ff3:	8b 55 08             	mov    0x8(%ebp),%edx
   12ff6:	8b 42 78             	mov    0x78(%edx),%eax
   12ff9:	85 c0                	test   %eax,%eax
   12ffb:	74 24                	je     13021 <_TryToSatisfyRecvRequestFromBuffer+0x1b1>
   12ffd:	8b 55 08             	mov    0x8(%ebp),%edx
   13000:	89 82 b4 00 00 00    	mov    %eax,0xb4(%edx)
   13006:	83 ec 0c             	sub    $0xc,%esp
   13009:	8b 45 08             	mov    0x8(%ebp),%eax
   1300c:	50                   	push   %eax
   1300d:	e8 4e f6 ff ff       	call   12660 <_SocketCalloutLeave>
   13012:	83 c4 10             	add    $0x10,%esp
   13015:	31 d2                	xor    %edx,%edx
   13017:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1301a:	89 d0                	mov    %edx,%eax
   1301c:	5b                   	pop    %ebx
   1301d:	5e                   	pop    %esi
   1301e:	5f                   	pop    %edi
   1301f:	5d                   	pop    %ebp
   13020:	c3                   	ret    
   13021:	8b b2 00 01 00 00    	mov    0x100(%edx),%esi
   13027:	83 ce 08             	or     $0x8,%esi
   1302a:	89 b2 00 01 00 00    	mov    %esi,0x100(%edx)
   13030:	53                   	push   %ebx
   13031:	53                   	push   %ebx
   13032:	8b 4a 1c             	mov    0x1c(%edx),%ecx
   13035:	51                   	push   %ecx
   13036:	8b 52 20             	mov    0x20(%edx),%edx
   13039:	52                   	push   %edx
   1303a:	e8 b1 11 00 00       	call   141f0 <_PollReeval>
   1303f:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13042:	83 c4 10             	add    $0x10,%esp
   13045:	8b 41 78             	mov    0x78(%ecx),%eax
   13048:	eb b3                	jmp    12ffd <_TryToSatisfyRecvRequestFromBuffer+0x18d>
   1304a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00013050 <_ReceiveActivity>:
   13050:	55                   	push   %ebp
   13051:	89 e5                	mov    %esp,%ebp
   13053:	57                   	push   %edi
   13054:	56                   	push   %esi
   13055:	53                   	push   %ebx
   13056:	83 ec 1c             	sub    $0x1c,%esp
   13059:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   13060:	c7 45 ec 03 01 00 00 	movl   $0x103,0xffffffec(%ebp)
   13067:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1306a:	51                   	push   %ecx
   1306b:	e8 d0 fd ff ff       	call   12e40 <_CantReadMore>
   13070:	5a                   	pop    %edx
   13071:	84 c0                	test   %al,%al
   13073:	0f 84 c7 00 00 00    	je     13140 <_ReceiveActivity+0xf0>
   13079:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1307c:	8b 45 08             	mov    0x8(%ebp),%eax
   1307f:	05 10 01 00 00       	add    $0x110,%eax
   13084:	8b 91 10 01 00 00    	mov    0x110(%ecx),%edx
   1308a:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   1308d:	39 c2                	cmp    %eax,%edx
   1308f:	eb 70                	jmp    13101 <_ReceiveActivity+0xb1>
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
   13091:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13094:	89 d0                	mov    %edx,%eax
   13096:	8b 12                	mov    (%edx),%edx
   13098:	89 91 10 01 00 00    	mov    %edx,0x110(%ecx)
   1309e:	8d 58 a8             	lea    0xffffffa8(%eax),%ebx

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
  Flink->Blink = ListHead;
   130a1:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
   130a4:	89 4a 04             	mov    %ecx,0x4(%edx)
   130a7:	8b 43 60             	mov    0x60(%ebx),%eax
   130aa:	8b 70 10             	mov    0x10(%eax),%esi
   130ad:	50                   	push   %eax
   130ae:	6a 00                	push   $0x0
   130b0:	8b 7e 04             	mov    0x4(%esi),%edi
   130b3:	57                   	push   %edi
   130b4:	8b 0e                	mov    (%esi),%ecx
   130b6:	51                   	push   %ecx
   130b7:	e8 f4 f1 ff ff       	call   122b0 <_UnlockBuffers>
   130bc:	8b 55 08             	mov    0x8(%ebp),%edx
   130bf:	83 c4 10             	add    $0x10,%esp
   130c2:	8a 42 02             	mov    0x2(%edx),%al
   130c5:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
   130cc:	3c 01                	cmp    $0x1,%al
   130ce:	19 c0                	sbb    %eax,%eax
   130d0:	83 f0 ff             	xor    $0xffffffff,%eax
   130d3:	25 11 00 00 c0       	and    $0xc0000011,%eax
   130d8:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
   130db:	89 43 18             	mov    %eax,0x18(%ebx)
   130de:	0f 84 0c 01 00 00    	je     131f0 <_ReceiveActivity+0x1a0>
   130e4:	ba 02 00 00 00       	mov    $0x2,%edx
   130e9:	89 d9                	mov    %ebx,%ecx
   130eb:	ff 15 0c a1 01 00    	call   *0x1a10c
   130f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
   130f4:	c6 41 02 01          	movb   $0x1,0x2(%ecx)
   130f8:	8b 91 10 01 00 00    	mov    0x110(%ecx),%edx
   130fe:	3b 55 e4             	cmp    0xffffffe4(%ebp),%edx
   13101:	75 8e                	jne    13091 <_ReceiveActivity+0x41>
   13103:	8b 55 08             	mov    0x8(%ebp),%edx
   13106:	8b 82 b4 00 00 00    	mov    0xb4(%edx),%eax
   1310c:	85 c0                	test   %eax,%eax
   1310e:	0f 84 e4 00 00 00    	je     131f8 <_ReceiveActivity+0x1a8>
   13114:	8b 82 00 01 00 00    	mov    0x100(%edx),%eax
   1311a:	83 c8 01             	or     $0x1,%eax
   1311d:	89 82 00 01 00 00    	mov    %eax,0x100(%edx)
   13123:	57                   	push   %edi
   13124:	57                   	push   %edi
   13125:	8b 45 08             	mov    0x8(%ebp),%eax
   13128:	8b 70 1c             	mov    0x1c(%eax),%esi
   1312b:	56                   	push   %esi
   1312c:	8b 58 20             	mov    0x20(%eax),%ebx
   1312f:	53                   	push   %ebx
   13130:	e8 bb 10 00 00       	call   141f0 <_PollReeval>
   13135:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13138:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1313b:	5b                   	pop    %ebx
   1313c:	5e                   	pop    %esi
   1313d:	5f                   	pop    %edi
   1313e:	5d                   	pop    %ebp
   1313f:	c3                   	ret    
   13140:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13143:	8b 55 08             	mov    0x8(%ebp),%edx
   13146:	81 c2 10 01 00 00    	add    $0x110,%edx
   1314c:	8b 89 10 01 00 00    	mov    0x110(%ecx),%ecx
   13152:	89 55 e4             	mov    %edx,0xffffffe4(%ebp)
   13155:	89 4d e8             	mov    %ecx,0xffffffe8(%ebp)
   13158:	39 d1                	cmp    %edx,%ecx
   1315a:	74 a7                	je     13103 <_ReceiveActivity+0xb3>
   1315c:	8d 74 26 00          	lea    0x0(%esi),%esi
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   13160:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
  ListHead->Flink = Flink;
   13163:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13166:	8b 5d e8             	mov    0xffffffe8(%ebp),%ebx
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   13169:	8b 10                	mov    (%eax),%edx
   1316b:	83 eb 58             	sub    $0x58,%ebx

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
  Flink->Blink = ListHead;
   1316e:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   13171:	89 91 10 01 00 00    	mov    %edx,0x110(%ecx)
   13177:	89 42 04             	mov    %eax,0x4(%edx)
   1317a:	8b 43 60             	mov    0x60(%ebx),%eax
   1317d:	8b 70 10             	mov    0x10(%eax),%esi
   13180:	52                   	push   %edx
   13181:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   13184:	52                   	push   %edx
   13185:	56                   	push   %esi
   13186:	51                   	push   %ecx
   13187:	e8 e4 fc ff ff       	call   12e70 <_TryToSatisfyRecvRequestFromBuffer>
   1318c:	83 c4 10             	add    $0x10,%esp
   1318f:	89 c7                	mov    %eax,%edi
   13191:	3d 03 01 00 00       	cmp    $0x103,%eax
   13196:	0f 84 90 00 00 00    	je     1322c <_ReceiveActivity+0x1dc>
   1319c:	50                   	push   %eax
   1319d:	6a 00                	push   $0x0
   1319f:	8b 46 04             	mov    0x4(%esi),%eax
   131a2:	50                   	push   %eax
   131a3:	8b 06                	mov    (%esi),%eax
   131a5:	50                   	push   %eax
   131a6:	e8 05 f1 ff ff       	call   122b0 <_UnlockBuffers>
   131ab:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   131ae:	83 c4 10             	add    $0x10,%esp
   131b1:	89 7b 18             	mov    %edi,0x18(%ebx)
   131b4:	89 43 1c             	mov    %eax,0x1c(%ebx)
   131b7:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
   131ba:	74 6b                	je     13227 <_ReceiveActivity+0x1d7>
   131bc:	89 d9                	mov    %ebx,%ecx
   131be:	ba 02 00 00 00       	mov    $0x2,%edx
   131c3:	ff 15 0c a1 01 00    	call   *0x1a10c
   131c9:	8b 4d 08             	mov    0x8(%ebp),%ecx
   131cc:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   131cf:	8b 89 10 01 00 00    	mov    0x110(%ecx),%ecx
   131d5:	39 c1                	cmp    %eax,%ecx
   131d7:	89 4d e8             	mov    %ecx,0xffffffe8(%ebp)
   131da:	0f 95 c0             	setne  %al
   131dd:	83 f7 ff             	xor    $0xffffffff,%edi
   131e0:	c1 ef 1f             	shr    $0x1f,%edi
   131e3:	85 f8                	test   %edi,%eax
   131e5:	0f 85 75 ff ff ff    	jne    13160 <_ReceiveActivity+0x110>
   131eb:	e9 13 ff ff ff       	jmp    13103 <_ReceiveActivity+0xb3>
   131f0:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   131f3:	e9 ec fe ff ff       	jmp    130e4 <_ReceiveActivity+0x94>
   131f8:	8b 4d 08             	mov    0x8(%ebp),%ecx
   131fb:	8b 81 00 01 00 00    	mov    0x100(%ecx),%eax
   13201:	83 e0 fe             	and    $0xfffffffe,%eax
   13204:	89 81 00 01 00 00    	mov    %eax,0x100(%ecx)
   1320a:	57                   	push   %edi
   1320b:	57                   	push   %edi
   1320c:	8b 45 08             	mov    0x8(%ebp),%eax
   1320f:	8b 70 1c             	mov    0x1c(%eax),%esi
   13212:	56                   	push   %esi
   13213:	8b 58 20             	mov    0x20(%eax),%ebx
   13216:	53                   	push   %ebx
   13217:	e8 d4 0f 00 00       	call   141f0 <_PollReeval>
   1321c:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   1321f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13222:	5b                   	pop    %ebx
   13223:	5e                   	pop    %esi
   13224:	5f                   	pop    %edi
   13225:	5d                   	pop    %ebp
   13226:	c3                   	ret    
   13227:	89 7d ec             	mov    %edi,0xffffffec(%ebp)
   1322a:	eb 90                	jmp    131bc <_ReceiveActivity+0x16c>
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
  PLIST_ENTRY OldFlink;
  OldFlink = ListHead->Flink;
   1322c:	8b 55 08             	mov    0x8(%ebp),%edx
  Entry->Flink = OldFlink;
   1322f:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   13232:	8b 82 10 01 00 00    	mov    0x110(%edx),%eax
  Entry->Blink = ListHead;
   13238:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   1323b:	89 01                	mov    %eax,(%ecx)
   1323d:	89 51 04             	mov    %edx,0x4(%ecx)
  OldFlink->Blink = Entry;
   13240:	89 48 04             	mov    %ecx,0x4(%eax)
  ListHead->Flink = Entry;
   13243:	8b 45 08             	mov    0x8(%ebp),%eax
   13246:	89 88 10 01 00 00    	mov    %ecx,0x110(%eax)
   1324c:	e9 b2 fe ff ff       	jmp    13103 <_ReceiveActivity+0xb3>
   13251:	eb 0d                	jmp    13260 <_ReceiveComplete@12>
   13253:	90                   	nop    
   13254:	90                   	nop    
   13255:	90                   	nop    
   13256:	90                   	nop    
   13257:	90                   	nop    
   13258:	90                   	nop    
   13259:	90                   	nop    
   1325a:	90                   	nop    
   1325b:	90                   	nop    
   1325c:	90                   	nop    
   1325d:	90                   	nop    
   1325e:	90                   	nop    
   1325f:	90                   	nop    

00013260 <_ReceiveComplete@12>:
   13260:	55                   	push   %ebp
   13261:	89 e5                	mov    %esp,%ebp
   13263:	57                   	push   %edi
   13264:	56                   	push   %esi
   13265:	53                   	push   %ebx
   13266:	83 ec 18             	sub    $0x18,%esp
   13269:	8b 7d 0c             	mov    0xc(%ebp),%edi
   1326c:	8b 5d 10             	mov    0x10(%ebp),%ebx
   1326f:	8b 77 18             	mov    0x18(%edi),%esi
   13272:	53                   	push   %ebx
   13273:	e8 88 f1 ff ff       	call   12400 <_SocketAcquireStateLock>
   13278:	83 c4 10             	add    $0x10,%esp
   1327b:	89 f2                	mov    %esi,%edx
   1327d:	85 c0                	test   %eax,%eax
   1327f:	74 69                	je     132ea <_ReceiveComplete@12+0x8a>
   13281:	8b 57 1c             	mov    0x1c(%edi),%edx
   13284:	8b 43 04             	mov    0x4(%ebx),%eax
   13287:	c7 43 70 00 00 00 00 	movl   $0x0,0x70(%ebx)
   1328e:	89 93 b4 00 00 00    	mov    %edx,0xb4(%ebx)
   13294:	c7 83 ac 00 00 00 00 	movl   $0x0,0xac(%ebx)
   1329b:	00 00 00 
   1329e:	3d 00 01 00 00       	cmp    $0x100,%eax
   132a3:	74 51                	je     132f6 <_ReceiveComplete@12+0x96>
   132a5:	83 f8 04             	cmp    $0x4,%eax
   132a8:	74 61                	je     1330b <_ReceiveComplete@12+0xab>
   132aa:	8b 47 18             	mov    0x18(%edi),%eax
   132ad:	8b 73 74             	mov    0x74(%ebx),%esi
   132b0:	85 c0                	test   %eax,%eax
   132b2:	75 13                	jne    132c7 <_ReceiveComplete@12+0x67>
   132b4:	85 d2                	test   %edx,%edx
   132b6:	75 0f                	jne    132c7 <_ReceiveComplete@12+0x67>
   132b8:	8b bb 00 01 00 00    	mov    0x100(%ebx),%edi
   132be:	83 cf 08             	or     $0x8,%edi
   132c1:	89 bb 00 01 00 00    	mov    %edi,0x100(%ebx)
   132c7:	51                   	push   %ecx
   132c8:	51                   	push   %ecx
   132c9:	6a 00                	push   $0x0
   132cb:	53                   	push   %ebx
   132cc:	e8 7f fd ff ff       	call   13050 <_ReceiveActivity>
   132d1:	58                   	pop    %eax
   132d2:	8b 43 1c             	mov    0x1c(%ebx),%eax
   132d5:	5a                   	pop    %edx
   132d6:	50                   	push   %eax
   132d7:	8b 7b 20             	mov    0x20(%ebx),%edi
   132da:	57                   	push   %edi
   132db:	e8 10 0f 00 00       	call   141f0 <_PollReeval>
   132e0:	89 1c 24             	mov    %ebx,(%esp)
   132e3:	e8 b8 f1 ff ff       	call   124a0 <_SocketStateUnlock>
   132e8:	89 f2                	mov    %esi,%edx
   132ea:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   132ed:	89 d0                	mov    %edx,%eax
   132ef:	5b                   	pop    %ebx
   132f0:	5e                   	pop    %esi
   132f1:	5f                   	pop    %edi
   132f2:	5d                   	pop    %ebp
   132f3:	c2 0c 00             	ret    $0xc
   132f6:	83 ec 0c             	sub    $0xc,%esp
   132f9:	53                   	push   %ebx
   132fa:	e8 a1 f1 ff ff       	call   124a0 <_SocketStateUnlock>
   132ff:	89 1c 24             	mov    %ebx,(%esp)
   13302:	e8 29 f6 ff ff       	call   12930 <_DestroySocket>
   13307:	31 d2                	xor    %edx,%edx
   13309:	eb df                	jmp    132ea <_ReceiveComplete@12+0x8a>
   1330b:	83 ec 0c             	sub    $0xc,%esp
   1330e:	53                   	push   %ebx
   1330f:	e8 8c f1 ff ff       	call   124a0 <_SocketStateUnlock>
   13314:	ba 01 00 00 c0       	mov    $0xc0000001,%edx
   13319:	eb cf                	jmp    132ea <_ReceiveComplete@12+0x8a>
   1331b:	90                   	nop    
   1331c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013320 <_AfdConnectedSocketReadData@16>:
   13320:	55                   	push   %ebp
   13321:	89 e5                	mov    %esp,%ebp
   13323:	57                   	push   %edi
   13324:	56                   	push   %esi
   13325:	53                   	push   %ebx
   13326:	83 ec 18             	sub    $0x18,%esp
   13329:	8b 75 10             	mov    0x10(%ebp),%esi
   1332c:	8b 46 18             	mov    0x18(%esi),%eax
   1332f:	8b 58 0c             	mov    0xc(%eax),%ebx
   13332:	53                   	push   %ebx
   13333:	e8 c8 f0 ff ff       	call   12400 <_SocketAcquireStateLock>
   13338:	83 c4 10             	add    $0x10,%esp
   1333b:	85 c0                	test   %eax,%eax
   1333d:	74 45                	je     13384 <_AfdConnectedSocketReadData@16+0x64>
   1333f:	8b 43 04             	mov    0x4(%ebx),%eax
   13342:	83 e8 02             	sub    $0x2,%eax
   13345:	83 f8 01             	cmp    $0x1,%eax
   13348:	77 27                	ja     13371 <_AfdConnectedSocketReadData@16+0x51>
   1334a:	f6 43 08 01          	testb  $0x1,0x8(%ebx)
   1334e:	74 50                	je     133a0 <_AfdConnectedSocketReadData@16+0x80>
   13350:	50                   	push   %eax
   13351:	50                   	push   %eax
   13352:	6a 00                	push   $0x0
   13354:	6a 00                	push   $0x0
   13356:	6a 00                	push   $0x0
   13358:	8b 45 0c             	mov    0xc(%ebp),%eax
   1335b:	50                   	push   %eax
   1335c:	68 02 00 00 c0       	push   $0xc0000002
   13361:	53                   	push   %ebx
   13362:	e8 99 f1 ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   13367:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1336a:	5b                   	pop    %ebx
   1336b:	5e                   	pop    %esi
   1336c:	5f                   	pop    %edi
   1336d:	5d                   	pop    %ebp
   1336e:	c2 10 00             	ret    $0x10
   13371:	51                   	push   %ecx
   13372:	51                   	push   %ecx
   13373:	6a 00                	push   $0x0
   13375:	6a 00                	push   $0x0
   13377:	6a 00                	push   $0x0
   13379:	8b 55 0c             	mov    0xc(%ebp),%edx
   1337c:	52                   	push   %edx
   1337d:	68 01 00 00 c0       	push   $0xc0000001
   13382:	eb dd                	jmp    13361 <_AfdConnectedSocketReadData@16+0x41>
   13384:	56                   	push   %esi
   13385:	56                   	push   %esi
   13386:	6a 00                	push   $0x0
   13388:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1338b:	53                   	push   %ebx
   1338c:	e8 ff f1 ff ff       	call   12590 <_LostSocket>
   13391:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13394:	5b                   	pop    %ebx
   13395:	5e                   	pop    %esi
   13396:	5f                   	pop    %edi
   13397:	5d                   	pop    %ebp
   13398:	c2 10 00             	ret    $0x10
   1339b:	90                   	nop    
   1339c:	8d 74 26 00          	lea    0x0(%esi),%esi
   133a0:	8b 83 f0 00 00 00    	mov    0xf0(%ebx),%eax
   133a6:	83 e0 fe             	and    $0xfffffffe,%eax
   133a9:	89 83 f0 00 00 00    	mov    %eax,0xf0(%ebx)
   133af:	50                   	push   %eax
   133b0:	50                   	push   %eax
   133b1:	8b 43 1c             	mov    0x1c(%ebx),%eax
   133b4:	50                   	push   %eax
   133b5:	8b 43 20             	mov    0x20(%ebx),%eax
   133b8:	50                   	push   %eax
   133b9:	e8 32 0e 00 00       	call   141f0 <_PollReeval>
   133be:	59                   	pop    %ecx
   133bf:	5f                   	pop    %edi
   133c0:	56                   	push   %esi
   133c1:	8b 55 0c             	mov    0xc(%ebp),%edx
   133c4:	52                   	push   %edx
   133c5:	e8 46 ed ff ff       	call   12110 <_LockRequest>
   133ca:	83 c4 10             	add    $0x10,%esp
   133cd:	89 c7                	mov    %eax,%edi
   133cf:	85 c0                	test   %eax,%eax
   133d1:	0f 84 83 00 00 00    	je     1345a <_AfdConnectedSocketReadData@16+0x13a>
   133d7:	50                   	push   %eax
   133d8:	50                   	push   %eax
   133d9:	6a 00                	push   $0x0
   133db:	6a 01                	push   $0x1
   133dd:	6a 00                	push   $0x0
   133df:	6a 00                	push   $0x0
   133e1:	8b 47 04             	mov    0x4(%edi),%eax
   133e4:	50                   	push   %eax
   133e5:	8b 07                	mov    (%edi),%eax
   133e7:	50                   	push   %eax
   133e8:	e8 c3 ed ff ff       	call   121b0 <_LockBuffers>
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   133ed:	8b 75 0c             	mov    0xc(%ebp),%esi
  PLIST_ENTRY OldBlink;
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
   133f0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   133f3:	89 07                	mov    %eax,(%edi)
   133f5:	8b 45 0c             	mov    0xc(%ebp),%eax
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   133f8:	83 c6 58             	add    $0x58,%esi
   133fb:	83 c4 18             	add    $0x18,%esp
   133fe:	c7 40 18 03 01 00 00 	movl   $0x103,0x18(%eax)
   13405:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   1340c:	8d 83 10 01 00 00    	lea    0x110(%ebx),%eax
  PLIST_ENTRY OldBlink;
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
   13412:	89 41 58             	mov    %eax,0x58(%ecx)
   13415:	8b 50 04             	mov    0x4(%eax),%edx
  Entry->Blink = OldBlink;
   13418:	89 56 04             	mov    %edx,0x4(%esi)
  OldBlink->Flink = Entry;
  ListHead->Blink = Entry;
   1341b:	89 70 04             	mov    %esi,0x4(%eax)
   1341e:	89 32                	mov    %esi,(%edx)
   13420:	51                   	push   %ecx
   13421:	53                   	push   %ebx
   13422:	e8 29 fc ff ff       	call   13050 <_ReceiveActivity>
   13427:	83 c4 10             	add    $0x10,%esp
   1342a:	3d 03 01 00 00       	cmp    $0x103,%eax
   1342f:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   13432:	75 10                	jne    13444 <_AfdConnectedSocketReadData@16+0x124>
   13434:	f6 47 08 04          	testb  $0x4,0x8(%edi)
   13438:	75 36                	jne    13470 <_AfdConnectedSocketReadData@16+0x150>
   1343a:	8b 55 0c             	mov    0xc(%ebp),%edx
   1343d:	8b 42 60             	mov    0x60(%edx),%eax
   13440:	80 48 03 01          	orb    $0x1,0x3(%eax)
   13444:	83 ec 0c             	sub    $0xc,%esp
   13447:	53                   	push   %ebx
   13448:	e8 53 f0 ff ff       	call   124a0 <_SocketStateUnlock>
   1344d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   13450:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13453:	5b                   	pop    %ebx
   13454:	5e                   	pop    %esi
   13455:	5f                   	pop    %edi
   13456:	5d                   	pop    %ebp
   13457:	c2 10 00             	ret    $0x10
   1345a:	50                   	push   %eax
   1345b:	50                   	push   %eax
   1345c:	6a 00                	push   $0x0
   1345e:	6a 00                	push   $0x0
   13460:	6a 00                	push   $0x0
   13462:	8b 45 0c             	mov    0xc(%ebp),%eax
   13465:	50                   	push   %eax
   13466:	68 17 00 00 c0       	push   $0xc0000017
   1346b:	e9 f1 fe ff ff       	jmp    13361 <_AfdConnectedSocketReadData@16+0x41>
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   13470:	8b 45 0c             	mov    0xc(%ebp),%eax
   13473:	8b 50 58             	mov    0x58(%eax),%edx
  OldBlink = Entry->Blink;
   13476:	8b 46 04             	mov    0x4(%esi),%eax
  OldFlink->Blink = OldBlink;
   13479:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   1347c:	89 10                	mov    %edx,(%eax)
   1347e:	50                   	push   %eax
   1347f:	6a 00                	push   $0x0
   13481:	8b 77 04             	mov    0x4(%edi),%esi
   13484:	56                   	push   %esi
   13485:	8b 0f                	mov    (%edi),%ecx
   13487:	51                   	push   %ecx
   13488:	e8 23 ee ff ff       	call   122b0 <_UnlockBuffers>
   1348d:	58                   	pop    %eax
   1348e:	5a                   	pop    %edx
   1348f:	6a 01                	push   $0x1
   13491:	6a 00                	push   $0x0
   13493:	6a 00                	push   $0x0
   13495:	8b 45 0c             	mov    0xc(%ebp),%eax
   13498:	50                   	push   %eax
   13499:	68 d8 00 00 c0       	push   $0xc00000d8
   1349e:	e9 be fe ff ff       	jmp    13361 <_AfdConnectedSocketReadData@16+0x41>
   134a3:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   134a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000134b0 <_SatisfyPacketRecvRequest@16>:
   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 0c             	sub    $0xc,%esp
   134b9:	8b 55 0c             	mov    0xc(%ebp),%edx
   134bc:	8b 4d 10             	mov    0x10(%ebp),%ecx
   134bf:	8b 42 60             	mov    0x60(%edx),%eax
   134c2:	8b 71 08             	mov    0x8(%ecx),%esi
   134c5:	8b 40 10             	mov    0x10(%eax),%eax
   134c8:	8b 08                	mov    (%eax),%ecx
   134ca:	8b 50 04             	mov    0x4(%eax),%edx
   134cd:	8b 39                	mov    (%ecx),%edi
   134cf:	8d 5c d1 10          	lea    0x10(%ecx,%edx,8),%ebx
   134d3:	39 f7                	cmp    %esi,%edi
   134d5:	76 02                	jbe    134d9 <_SatisfyPacketRecvRequest@16+0x29>
   134d7:	89 f7                	mov    %esi,%edi
   134d9:	8b 43 04             	mov    0x4(%ebx),%eax
   134dc:	85 c0                	test   %eax,%eax
   134de:	0f 84 cc 00 00 00    	je     135b0 <_SatisfyPacketRecvRequest@16+0x100>
   134e4:	8b 43 0c             	mov    0xc(%ebx),%eax
   134e7:	85 c0                	test   %eax,%eax
   134e9:	74 77                	je     13562 <_SatisfyPacketRecvRequest@16+0xb2>
   134eb:	8b 43 14             	mov    0x14(%ebx),%eax
   134ee:	85 c0                	test   %eax,%eax
   134f0:	74 70                	je     13562 <_SatisfyPacketRecvRequest@16+0xb2>
   134f2:	8b 55 10             	mov    0x10(%ebp),%edx
   134f5:	8b 71 08             	mov    0x8(%ecx),%esi
   134f8:	8b 42 0c             	mov    0xc(%edx),%eax
   134fb:	66 8b 40 04          	mov    0x4(%eax),%ax
   134ff:	25 ff ff 00 00       	and    $0xffff,%eax
   13504:	83 c0 02             	add    $0x2,%eax
   13507:	39 c6                	cmp    %eax,%esi
   13509:	76 02                	jbe    1350d <_SatisfyPacketRecvRequest@16+0x5d>
   1350b:	89 c6                	mov    %eax,%esi
   1350d:	50                   	push   %eax
   1350e:	50                   	push   %eax
   1350f:	6a 00                	push   $0x0
   13511:	8b 4b 0c             	mov    0xc(%ebx),%ecx
   13514:	51                   	push   %ecx
   13515:	ff 15 6c a1 01 00    	call   *0x1a16c
   1351b:	8b 4d 10             	mov    0x10(%ebp),%ecx
   1351e:	89 43 08             	mov    %eax,0x8(%ebx)
   13521:	8b 51 0c             	mov    0xc(%ecx),%edx
   13524:	89 34 24             	mov    %esi,(%esp)
   13527:	83 c2 06             	add    $0x6,%edx
   1352a:	52                   	push   %edx
   1352b:	50                   	push   %eax
   1352c:	e8 0f 2b 00 00       	call   16040 <_memcpy>
   13531:	58                   	pop    %eax
   13532:	8b 43 0c             	mov    0xc(%ebx),%eax
   13535:	5a                   	pop    %edx
   13536:	50                   	push   %eax
   13537:	8b 43 08             	mov    0x8(%ebx),%eax
   1353a:	50                   	push   %eax
   1353b:	ff 15 78 a1 01 00    	call   *0x1a178
   13541:	6a 00                	push   $0x0
   13543:	8b 43 14             	mov    0x14(%ebx),%eax
   13546:	50                   	push   %eax
   13547:	ff 15 6c a1 01 00    	call   *0x1a16c
   1354d:	89 30                	mov    %esi,(%eax)
   1354f:	8b 73 14             	mov    0x14(%ebx),%esi
   13552:	89 43 10             	mov    %eax,0x10(%ebx)
   13555:	56                   	push   %esi
   13556:	8b 4b 10             	mov    0x10(%ebx),%ecx
   13559:	51                   	push   %ecx
   1355a:	ff 15 78 a1 01 00    	call   *0x1a178
   13560:	58                   	pop    %eax
   13561:	5a                   	pop    %edx
   13562:	50                   	push   %eax
   13563:	50                   	push   %eax
   13564:	6a 00                	push   $0x0
   13566:	8b 43 04             	mov    0x4(%ebx),%eax
   13569:	50                   	push   %eax
   1356a:	ff 15 6c a1 01 00    	call   *0x1a16c
   13570:	8b 4d 08             	mov    0x8(%ebp),%ecx
   13573:	89 03                	mov    %eax,(%ebx)
   13575:	8b b1 ac 00 00 00    	mov    0xac(%ecx),%esi
   1357b:	8b 91 a8 00 00 00    	mov    0xa8(%ecx),%edx
   13581:	01 f2                	add    %esi,%edx
   13583:	89 3c 24             	mov    %edi,(%esp)
   13586:	52                   	push   %edx
   13587:	50                   	push   %eax
   13588:	e8 b3 2a 00 00       	call   16040 <_memcpy>
   1358d:	58                   	pop    %eax
   1358e:	8b 73 04             	mov    0x4(%ebx),%esi
   13591:	5a                   	pop    %edx
   13592:	56                   	push   %esi
   13593:	8b 0b                	mov    (%ebx),%ecx
   13595:	51                   	push   %ecx
   13596:	ff 15 78 a1 01 00    	call   *0x1a178
   1359c:	8b 45 08             	mov    0x8(%ebp),%eax
   1359f:	c7 80 ac 00 00 00 00 	movl   $0x0,0xac(%eax)
   135a6:	00 00 00 
   135a9:	8b 45 14             	mov    0x14(%ebp),%eax
   135ac:	89 38                	mov    %edi,(%eax)
   135ae:	58                   	pop    %eax
   135af:	5a                   	pop    %edx
   135b0:	8b 55 0c             	mov    0xc(%ebp),%edx
   135b3:	8b 4d 10             	mov    0x10(%ebp),%ecx
   135b6:	83 ec 0c             	sub    $0xc,%esp
   135b9:	c7 42 18 00 00 00 00 	movl   $0x0,0x18(%edx)
   135c0:	89 7a 1c             	mov    %edi,0x1c(%edx)
   135c3:	8b 41 0c             	mov    0xc(%ecx),%eax
   135c6:	50                   	push   %eax
   135c7:	ff 15 1c a1 01 00    	call   *0x1a11c
   135cd:	8b 7d 10             	mov    0x10(%ebp),%edi
   135d0:	57                   	push   %edi
   135d1:	ff 15 1c a1 01 00    	call   *0x1a11c
   135d7:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   135da:	31 c0                	xor    %eax,%eax
   135dc:	5b                   	pop    %ebx
   135dd:	5e                   	pop    %esi
   135de:	5f                   	pop    %edi
   135df:	5d                   	pop    %ebp
   135e0:	c2 10 00             	ret    $0x10
   135e3:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   135e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000135f0 <_PacketSocketRecvComplete@12>:
   135f0:	55                   	push   %ebp
   135f1:	89 e5                	mov    %esp,%ebp
   135f3:	57                   	push   %edi
   135f4:	56                   	push   %esi
   135f5:	53                   	push   %ebx
   135f6:	83 ec 18             	sub    $0x18,%esp
   135f9:	8b 45 0c             	mov    0xc(%ebp),%eax
   135fc:	8b 58 1c             	mov    0x1c(%eax),%ebx
   135ff:	8b 45 10             	mov    0x10(%ebp),%eax
   13602:	50                   	push   %eax
   13603:	e8 f8 ed ff ff       	call   12400 <_SocketAcquireStateLock>
   13608:	83 c3 14             	add    $0x14,%ebx
   1360b:	83 c4 10             	add    $0x10,%esp
   1360e:	ba 01 00 00 c0       	mov    $0xc0000001,%edx
   13613:	85 c0                	test   %eax,%eax
   13615:	0f 84 fd 01 00 00    	je     13818 <_PacketSocketRecvComplete@12+0x228>
   1361b:	8b 55 10             	mov    0x10(%ebp),%edx
   1361e:	c7 42 70 00 00 00 00 	movl   $0x0,0x70(%edx)
   13625:	81 7a 04 00 01 00 00 	cmpl   $0x100,0x4(%edx)
   1362c:	0f 84 f2 01 00 00    	je     13824 <_PacketSocketRecvComplete@12+0x234>
   13632:	50                   	push   %eax
   13633:	50                   	push   %eax
   13634:	53                   	push   %ebx
   13635:	6a 00                	push   $0x0
   13637:	ff 15 18 a1 01 00    	call   *0x1a118
   1363d:	5e                   	pop    %esi
   1363e:	89 c3                	mov    %eax,%ebx
   13640:	5f                   	pop    %edi
   13641:	85 c0                	test   %eax,%eax
   13643:	0f 84 27 01 00 00    	je     13770 <_PacketSocketRecvComplete@12+0x180>
   13649:	8b 55 0c             	mov    0xc(%ebp),%edx
   1364c:	8b 75 10             	mov    0x10(%ebp),%esi
   1364f:	8b 42 1c             	mov    0x1c(%edx),%eax
   13652:	8d 53 10             	lea    0x10(%ebx),%edx
   13655:	89 43 08             	mov    %eax,0x8(%ebx)
   13658:	51                   	push   %ecx
   13659:	50                   	push   %eax
   1365a:	8b be a8 00 00 00    	mov    0xa8(%esi),%edi
   13660:	57                   	push   %edi
   13661:	52                   	push   %edx
   13662:	e8 d9 29 00 00       	call   16040 <_memcpy>
   13667:	8b 46 34             	mov    0x34(%esi),%eax
   1366a:	59                   	pop    %ecx
   1366b:	8b 50 14             	mov    0x14(%eax),%edx
   1366e:	52                   	push   %edx
   1366f:	e8 ac 1d 00 00       	call   15420 <_TaCopyTransportAddress>
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   13674:	81 c6 38 01 00 00    	add    $0x138,%esi
   1367a:	83 c4 10             	add    $0x10,%esp
   1367d:	89 43 0c             	mov    %eax,0xc(%ebx)
  IN PLIST_ENTRY  Entry)
{ 
  PLIST_ENTRY OldBlink;
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
   13680:	89 33                	mov    %esi,(%ebx)
   13682:	8b 46 04             	mov    0x4(%esi),%eax
   13685:	89 75 f0             	mov    %esi,0xfffffff0(%ebp)
  Entry->Blink = OldBlink;
   13688:	89 43 04             	mov    %eax,0x4(%ebx)
  OldBlink->Flink = Entry;
  ListHead->Blink = Entry;
   1368b:	89 5e 04             	mov    %ebx,0x4(%esi)
   1368e:	89 18                	mov    %ebx,(%eax)
   13690:	8b 45 10             	mov    0x10(%ebp),%eax
   13693:	8b 98 38 01 00 00    	mov    0x138(%eax),%ebx
   13699:	89 d9                	mov    %ebx,%ecx
   1369b:	39 f3                	cmp    %esi,%ebx
   1369d:	0f 84 b5 00 00 00    	je     13758 <_PacketSocketRecvComplete@12+0x168>
   136a3:	8b 75 10             	mov    0x10(%ebp),%esi
   136a6:	05 10 01 00 00       	add    $0x110,%eax
   136ab:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   136ae:	8b 96 10 01 00 00    	mov    0x110(%esi),%edx
   136b4:	39 c2                	cmp    %eax,%edx
   136b6:	e9 92 00 00 00       	jmp    1374d <_PacketSocketRecvComplete@12+0x15d>
   136bb:	90                   	nop    
   136bc:	8d 74 26 00          	lea    0x0(%esi),%esi
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   136c0:	8b 1b                	mov    (%ebx),%ebx
  ListHead->Flink = Flink;
   136c2:	8b 45 10             	mov    0x10(%ebp),%eax
  Flink->Blink = ListHead;
   136c5:	8b 75 f0             	mov    0xfffffff0(%ebp),%esi
   136c8:	89 98 38 01 00 00    	mov    %ebx,0x138(%eax)
   136ce:	89 73 04             	mov    %esi,0x4(%ebx)
   136d1:	8b 75 10             	mov    0x10(%ebp),%esi
   136d4:	89 d0                	mov    %edx,%eax
   136d6:	8b 12                	mov    (%edx),%edx
   136d8:	89 96 10 01 00 00    	mov    %edx,0x110(%esi)
   136de:	8b 75 ec             	mov    0xffffffec(%ebp),%esi
   136e1:	89 72 04             	mov    %esi,0x4(%edx)
   136e4:	8d 70 a8             	lea    0xffffffa8(%eax),%esi
   136e7:	8b 46 60             	mov    0x60(%esi),%eax
   136ea:	8b 78 10             	mov    0x10(%eax),%edi
   136ed:	8b 07                	mov    (%edi),%eax
   136ef:	8b 00                	mov    (%eax),%eax
   136f1:	39 41 08             	cmp    %eax,0x8(%ecx)
   136f4:	76 0a                	jbe    13700 <_PacketSocketRecvComplete@12+0x110>
   136f6:	f6 47 0c 10          	testb  $0x10,0xc(%edi)
   136fa:	0f 84 39 01 00 00    	je     13839 <_PacketSocketRecvComplete@12+0x249>
   13700:	8d 46 1c             	lea    0x1c(%esi),%eax
   13703:	50                   	push   %eax
   13704:	8b 45 10             	mov    0x10(%ebp),%eax
   13707:	51                   	push   %ecx
   13708:	56                   	push   %esi
   13709:	50                   	push   %eax
   1370a:	e8 a1 fd ff ff       	call   134b0 <_SatisfyPacketRecvRequest@16>
   1370f:	89 c3                	mov    %eax,%ebx
   13711:	50                   	push   %eax
   13712:	6a 01                	push   $0x1
   13714:	8b 47 04             	mov    0x4(%edi),%eax
   13717:	50                   	push   %eax
   13718:	8b 3f                	mov    (%edi),%edi
   1371a:	57                   	push   %edi
   1371b:	e8 90 eb ff ff       	call   122b0 <_UnlockBuffers>
   13720:	ba 02 00 00 00       	mov    $0x2,%edx
   13725:	89 f1                	mov    %esi,%ecx
   13727:	ff 15 0c a1 01 00    	call   *0x1a10c
   1372d:	83 c4 10             	add    $0x10,%esp
   13730:	85 db                	test   %ebx,%ebx
   13732:	78 48                	js     1377c <_PacketSocketRecvComplete@12+0x18c>
   13734:	8b 75 10             	mov    0x10(%ebp),%esi
   13737:	8b 9e 38 01 00 00    	mov    0x138(%esi),%ebx
   1373d:	89 d9                	mov    %ebx,%ecx
   1373f:	3b 5d f0             	cmp    0xfffffff0(%ebp),%ebx
   13742:	74 14                	je     13758 <_PacketSocketRecvComplete@12+0x168>
   13744:	8b 96 10 01 00 00    	mov    0x110(%esi),%edx
   1374a:	3b 55 ec             	cmp    0xffffffec(%ebp),%edx
   1374d:	0f 85 6d ff ff ff    	jne    136c0 <_PacketSocketRecvComplete@12+0xd0>
   13753:	3b 5d f0             	cmp    0xfffffff0(%ebp),%ebx
   13756:	75 32                	jne    1378a <_PacketSocketRecvComplete@12+0x19a>
   13758:	8b 75 10             	mov    0x10(%ebp),%esi
   1375b:	8b 9e 00 01 00 00    	mov    0x100(%esi),%ebx
   13761:	83 e3 fe             	and    $0xfffffffe,%ebx
   13764:	89 9e 00 01 00 00    	mov    %ebx,0x100(%esi)
   1376a:	eb 30                	jmp    1379c <_PacketSocketRecvComplete@12+0x1ac>
   1376c:	8d 74 26 00          	lea    0x0(%esi),%esi
   13770:	8b 75 10             	mov    0x10(%ebp),%esi
   13773:	81 c6 38 01 00 00    	add    $0x138,%esi
   13779:	89 75 f0             	mov    %esi,0xfffffff0(%ebp)
   1377c:	8b 45 10             	mov    0x10(%ebp),%eax
   1377f:	8b 98 38 01 00 00    	mov    0x138(%eax),%ebx
   13785:	3b 5d f0             	cmp    0xfffffff0(%ebp),%ebx
   13788:	74 ce                	je     13758 <_PacketSocketRecvComplete@12+0x168>
   1378a:	8b 55 10             	mov    0x10(%ebp),%edx
   1378d:	8b b2 00 01 00 00    	mov    0x100(%edx),%esi
   13793:	83 ce 01             	or     $0x1,%esi
   13796:	89 b2 00 01 00 00    	mov    %esi,0x100(%edx)
   1379c:	8b 45 10             	mov    0x10(%ebp),%eax
   1379f:	51                   	push   %ecx
   137a0:	51                   	push   %ecx
   137a1:	8b 50 1c             	mov    0x1c(%eax),%edx
   137a4:	52                   	push   %edx
   137a5:	8b 40 20             	mov    0x20(%eax),%eax
   137a8:	50                   	push   %eax
   137a9:	e8 42 0a 00 00       	call   141f0 <_PollReeval>
   137ae:	8b 55 0c             	mov    0xc(%ebp),%edx
   137b1:	83 c4 10             	add    $0x10,%esp
   137b4:	8b 42 18             	mov    0x18(%edx),%eax
   137b7:	85 c0                	test   %eax,%eax
   137b9:	78 4f                	js     1380a <_PacketSocketRecvComplete@12+0x21a>
   137bb:	83 ec 0c             	sub    $0xc,%esp
   137be:	8b 45 10             	mov    0x10(%ebp),%eax
   137c1:	50                   	push   %eax
   137c2:	e8 79 ee ff ff       	call   12640 <_SocketCalloutEnter>
   137c7:	5f                   	pop    %edi
   137c8:	8b 75 10             	mov    0x10(%ebp),%esi
   137cb:	8b 45 10             	mov    0x10(%ebp),%eax
   137ce:	56                   	push   %esi
   137cf:	83 c0 74             	add    $0x74,%eax
   137d2:	8b 75 10             	mov    0x10(%ebp),%esi
   137d5:	68 f0 35 01 00       	push   $0x135f0
   137da:	50                   	push   %eax
   137db:	8b 5e 34             	mov    0x34(%esi),%ebx
   137de:	53                   	push   %ebx
   137df:	8b 8e b0 00 00 00    	mov    0xb0(%esi),%ecx
   137e5:	51                   	push   %ecx
   137e6:	8b 96 a8 00 00 00    	mov    0xa8(%esi),%edx
   137ec:	52                   	push   %edx
   137ed:	6a 00                	push   $0x0
   137ef:	8b 46 38             	mov    0x38(%esi),%eax
   137f2:	50                   	push   %eax
   137f3:	89 f0                	mov    %esi,%eax
   137f5:	83 c0 70             	add    $0x70,%eax
   137f8:	50                   	push   %eax
   137f9:	e8 32 16 00 00       	call   14e30 <_TdiReceiveDatagram>
   137fe:	83 c4 24             	add    $0x24,%esp
   13801:	56                   	push   %esi
   13802:	e8 59 ee ff ff       	call   12660 <_SocketCalloutLeave>
   13807:	83 c4 10             	add    $0x10,%esp
   1380a:	83 ec 0c             	sub    $0xc,%esp
   1380d:	8b 45 10             	mov    0x10(%ebp),%eax
   13810:	50                   	push   %eax
   13811:	e8 8a ec ff ff       	call   124a0 <_SocketStateUnlock>
   13816:	31 d2                	xor    %edx,%edx
   13818:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1381b:	89 d0                	mov    %edx,%eax
   1381d:	5b                   	pop    %ebx
   1381e:	5e                   	pop    %esi
   1381f:	5f                   	pop    %edi
   13820:	5d                   	pop    %ebp
   13821:	c2 0c 00             	ret    $0xc
   13824:	83 ec 0c             	sub    $0xc,%esp
   13827:	52                   	push   %edx
   13828:	e8 73 ec ff ff       	call   124a0 <_SocketStateUnlock>
   1382d:	58                   	pop    %eax
   1382e:	8b 45 10             	mov    0x10(%ebp),%eax
   13831:	50                   	push   %eax
   13832:	e8 f9 f0 ff ff       	call   12930 <_DestroySocket>
   13837:	eb dd                	jmp    13816 <_PacketSocketRecvComplete@12+0x226>
  OldFlink = ListHead->Flink;
  Entry->Flink = OldFlink;
  Entry->Blink = ListHead;
  OldFlink->Blink = Entry;
  ListHead->Flink = Entry;
   13839:	8b 55 10             	mov    0x10(%ebp),%edx
   1383c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   1383f:	89 41 04             	mov    %eax,0x4(%ecx)
   13842:	89 19                	mov    %ebx,(%ecx)
   13844:	89 4b 04             	mov    %ecx,0x4(%ebx)
   13847:	89 8a 38 01 00 00    	mov    %ecx,0x138(%edx)
   1384d:	c7 46 18 23 00 00 c0 	movl   $0xc0000023,0x18(%esi)
   13854:	8b 41 08             	mov    0x8(%ecx),%eax
   13857:	89 46 1c             	mov    %eax,0x1c(%esi)
   1385a:	50                   	push   %eax
   1385b:	6a 01                	push   $0x1
   1385d:	8b 47 04             	mov    0x4(%edi),%eax
   13860:	50                   	push   %eax
   13861:	8b 07                	mov    (%edi),%eax
   13863:	50                   	push   %eax
   13864:	e8 47 ea ff ff       	call   122b0 <_UnlockBuffers>
   13869:	ba 02 00 00 00       	mov    $0x2,%edx
   1386e:	89 f1                	mov    %esi,%ecx
   13870:	ff 15 0c a1 01 00    	call   *0x1a10c
   13876:	83 c4 10             	add    $0x10,%esp
   13879:	e9 fe fe ff ff       	jmp    1377c <_PacketSocketRecvComplete@12+0x18c>
   1387e:	89 f6                	mov    %esi,%esi

00013880 <_AfdPacketSocketReadData@12>:
   13880:	55                   	push   %ebp
   13881:	89 e5                	mov    %esp,%ebp
   13883:	57                   	push   %edi
   13884:	56                   	push   %esi
   13885:	53                   	push   %ebx
   13886:	83 ec 18             	sub    $0x18,%esp
   13889:	8b 75 10             	mov    0x10(%ebp),%esi
   1388c:	8b 46 18             	mov    0x18(%esi),%eax
    PAFD_FCB FCB = FileObject->FsContext;
   1388f:	8b 58 0c             	mov    0xc(%eax),%ebx
    PAFD_RECV_INFO_UDP RecvReq;
    PLIST_ENTRY ListEntry;
    PAFD_STORED_DATAGRAM DatagramRecv;

    AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));

    if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, FALSE );
   13892:	53                   	push   %ebx
   13893:	e8 68 eb ff ff       	call   12400 <_SocketAcquireStateLock>
   13898:	83 c4 10             	add    $0x10,%esp
   1389b:	85 c0                	test   %eax,%eax
   1389d:	0f 84 0d 01 00 00    	je     139b0 <_AfdPacketSocketReadData@12+0x130>

    FCB->EventsFired &= ~AFD_EVENT_RECEIVE;
   138a3:	8b bb f0 00 00 00    	mov    0xf0(%ebx),%edi
   138a9:	83 e7 fe             	and    $0xfffffffe,%edi
   138ac:	89 bb f0 00 00 00    	mov    %edi,0xf0(%ebx)

    /* Check that the socket is bound */
    if( FCB->State != SOCKET_STATE_BOUND ) 
   138b2:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
   138b6:	74 28                	je     138e0 <_AfdPacketSocketReadData@12+0x60>
	return UnlockAndMaybeComplete
   138b8:	51                   	push   %ecx
   138b9:	51                   	push   %ecx
   138ba:	6a 00                	push   $0x0
   138bc:	6a 00                	push   $0x0
   138be:	6a 00                	push   $0x0
   138c0:	8b 55 0c             	mov    0xc(%ebp),%edx
   138c3:	52                   	push   %edx
   138c4:	68 01 00 00 c0       	push   $0xc0000001
	    ( FCB, STATUS_UNSUCCESSFUL, Irp, 0, NULL, FALSE );
    if( !(RecvReq = LockRequest( Irp, IrpSp )) ) 
	return UnlockAndMaybeComplete
	    ( FCB, STATUS_NO_MEMORY, Irp, 0, NULL, FALSE );
    
    AFD_DbgPrint(MID_TRACE,("Recv flags %x\n", RecvReq->AfdFlags));

    RecvReq->BufferArray = LockBuffers( RecvReq->BufferArray, 
					RecvReq->BufferCount,
					RecvReq->Address,
					RecvReq->AddressLength,
					TRUE, TRUE );

    if( !IsListEmpty( &FCB->DatagramList ) ) {
	ListEntry = RemoveHeadList( &FCB->DatagramList );
	DatagramRecv = CONTAINING_RECORD
	    ( ListEntry, AFD_STORED_DATAGRAM, ListEntry );
	if( DatagramRecv->Len > RecvReq->BufferArray[0].len && 
	    !(RecvReq->TdiFlags & TDI_RECEIVE_PARTIAL) ) {
	    InsertHeadList( &FCB->DatagramList,
			    &DatagramRecv->ListEntry );
	    Status = Irp->IoStatus.Status = STATUS_BUFFER_TOO_SMALL;
	    Irp->IoStatus.Information = DatagramRecv->Len;

	    if( IsListEmpty( &FCB->DatagramList ) )
		FCB->PollState &= ~AFD_EVENT_RECEIVE;
	    else
		FCB->PollState |= AFD_EVENT_RECEIVE;
	    
	    PollReeval( FCB->DeviceExt, FCB->FileObject );
	    
	    return UnlockAndMaybeComplete
		( FCB, Status, Irp, RecvReq->BufferArray[0].len, NULL, TRUE );
	} else {
	    Status = SatisfyPacketRecvRequest
		( FCB, Irp, DatagramRecv, 
		  (PUINT)&Irp->IoStatus.Information );

	    if( IsListEmpty( &FCB->DatagramList ) )
		FCB->PollState &= ~AFD_EVENT_RECEIVE;
	    else
		FCB->PollState |= AFD_EVENT_RECEIVE;

	    PollReeval( FCB->DeviceExt, FCB->FileObject );

	    return UnlockAndMaybeComplete
		( FCB, Status, Irp, Irp->IoStatus.Information, NULL, TRUE );
	}
    } else if( RecvReq->AfdFlags & AFD_IMMEDIATE ) {
	AFD_DbgPrint(MID_TRACE,("Nonblocking\n"));
	Status = STATUS_CANT_WAIT;
	PollReeval( FCB->DeviceExt, FCB->FileObject );
	return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL, TRUE );
   138c9:	53                   	push   %ebx
   138ca:	e8 31 ec ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
    } else {
	PollReeval( FCB->DeviceExt, FCB->FileObject );
	return LeaveIrpUntilLater( FCB, Irp, FUNCTION_RECV );
    }
}
   138cf:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   138d2:	5b                   	pop    %ebx
   138d3:	5e                   	pop    %esi
   138d4:	5f                   	pop    %edi
   138d5:	5d                   	pop    %ebp
   138d6:	c2 0c 00             	ret    $0xc
   138d9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   138e0:	50                   	push   %eax
   138e1:	50                   	push   %eax
   138e2:	56                   	push   %esi
   138e3:	8b 45 0c             	mov    0xc(%ebp),%eax
   138e6:	50                   	push   %eax
   138e7:	e8 24 e8 ff ff       	call   12110 <_LockRequest>
   138ec:	83 c4 10             	add    $0x10,%esp
   138ef:	89 c6                	mov    %eax,%esi
   138f1:	85 c0                	test   %eax,%eax
   138f3:	0f 84 1c 01 00 00    	je     13a15 <_AfdPacketSocketReadData@12+0x195>
   138f9:	50                   	push   %eax
   138fa:	50                   	push   %eax
   138fb:	6a 01                	push   $0x1
   138fd:	6a 01                	push   $0x1
   138ff:	8b 46 14             	mov    0x14(%esi),%eax
   13902:	50                   	push   %eax
   13903:	8b 7e 10             	mov    0x10(%esi),%edi
   13906:	57                   	push   %edi
   13907:	8d bb 38 01 00 00    	lea    0x138(%ebx),%edi
   1390d:	8b 4e 04             	mov    0x4(%esi),%ecx
   13910:	51                   	push   %ecx
   13911:	8b 16                	mov    (%esi),%edx
   13913:	52                   	push   %edx
   13914:	e8 97 e8 ff ff       	call   121b0 <_LockBuffers>
   13919:	8b 93 38 01 00 00    	mov    0x138(%ebx),%edx
   1391f:	83 c4 20             	add    $0x20,%esp
   13922:	89 06                	mov    %eax,(%esi)
   13924:	39 fa                	cmp    %edi,%edx
   13926:	0f 84 ff 00 00 00    	je     13a2b <_AfdPacketSocketReadData@12+0x1ab>
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   1392c:	8b 0a                	mov    (%edx),%ecx
   1392e:	8b 00                	mov    (%eax),%eax
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
   13930:	89 8b 38 01 00 00    	mov    %ecx,0x138(%ebx)
   13936:	39 42 08             	cmp    %eax,0x8(%edx)

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
  Flink->Blink = ListHead;
   13939:	89 79 04             	mov    %edi,0x4(%ecx)
   1393c:	0f 86 85 00 00 00    	jbe    139c7 <_AfdPacketSocketReadData@12+0x147>
   13942:	f6 46 0c 10          	testb  $0x10,0xc(%esi)
   13946:	75 7f                	jne    139c7 <_AfdPacketSocketReadData@12+0x147>
   13948:	8b 45 0c             	mov    0xc(%ebp),%eax
  IN PLIST_ENTRY  Entry)
{ 
  PLIST_ENTRY OldFlink;
  OldFlink = ListHead->Flink;
  Entry->Flink = OldFlink;
   1394b:	89 0a                	mov    %ecx,(%edx)
  Entry->Blink = ListHead;
   1394d:	89 7a 04             	mov    %edi,0x4(%edx)
  OldFlink->Blink = Entry;
  ListHead->Flink = Entry;
   13950:	89 93 38 01 00 00    	mov    %edx,0x138(%ebx)
   13956:	89 51 04             	mov    %edx,0x4(%ecx)
   13959:	c7 40 18 23 00 00 c0 	movl   $0xc0000023,0x18(%eax)
   13960:	8b 42 08             	mov    0x8(%edx),%eax
   13963:	8b 55 0c             	mov    0xc(%ebp),%edx
   13966:	39 bb 38 01 00 00    	cmp    %edi,0x138(%ebx)
   1396c:	89 42 1c             	mov    %eax,0x1c(%edx)
   1396f:	0f 84 0f 01 00 00    	je     13a84 <_AfdPacketSocketReadData@12+0x204>
   13975:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   1397b:	83 c8 01             	or     $0x1,%eax
   1397e:	89 83 00 01 00 00    	mov    %eax,0x100(%ebx)
   13984:	50                   	push   %eax
   13985:	50                   	push   %eax
   13986:	8b 43 1c             	mov    0x1c(%ebx),%eax
   13989:	50                   	push   %eax
   1398a:	8b 43 20             	mov    0x20(%ebx),%eax
   1398d:	50                   	push   %eax
   1398e:	e8 5d 08 00 00       	call   141f0 <_PollReeval>
   13993:	5f                   	pop    %edi
   13994:	58                   	pop    %eax
   13995:	6a 01                	push   $0x1
   13997:	6a 00                	push   $0x0
   13999:	8b 06                	mov    (%esi),%eax
   1399b:	8b 08                	mov    (%eax),%ecx
   1399d:	51                   	push   %ecx
   1399e:	8b 55 0c             	mov    0xc(%ebp),%edx
   139a1:	52                   	push   %edx
   139a2:	68 23 00 00 c0       	push   $0xc0000023
   139a7:	e9 1d ff ff ff       	jmp    138c9 <_AfdPacketSocketReadData@12+0x49>
   139ac:	8d 74 26 00          	lea    0x0(%esi),%esi
   139b0:	50                   	push   %eax
   139b1:	50                   	push   %eax
   139b2:	6a 00                	push   $0x0
   139b4:	8b 45 0c             	mov    0xc(%ebp),%eax
   139b7:	50                   	push   %eax
   139b8:	e8 d3 eb ff ff       	call   12590 <_LostSocket>
   139bd:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   139c0:	5b                   	pop    %ebx
   139c1:	5e                   	pop    %esi
   139c2:	5f                   	pop    %edi
   139c3:	5d                   	pop    %ebp
   139c4:	c2 0c 00             	ret    $0xc
   139c7:	8b 45 0c             	mov    0xc(%ebp),%eax
   139ca:	83 c0 1c             	add    $0x1c,%eax
   139cd:	50                   	push   %eax
   139ce:	52                   	push   %edx
   139cf:	8b 45 0c             	mov    0xc(%ebp),%eax
   139d2:	50                   	push   %eax
   139d3:	53                   	push   %ebx
   139d4:	e8 d7 fa ff ff       	call   134b0 <_SatisfyPacketRecvRequest@16>
   139d9:	39 bb 38 01 00 00    	cmp    %edi,0x138(%ebx)
   139df:	89 c6                	mov    %eax,%esi
   139e1:	74 73                	je     13a56 <_AfdPacketSocketReadData@12+0x1d6>
   139e3:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   139e9:	83 c8 01             	or     $0x1,%eax
   139ec:	89 83 00 01 00 00    	mov    %eax,0x100(%ebx)
   139f2:	50                   	push   %eax
   139f3:	50                   	push   %eax
   139f4:	8b 43 1c             	mov    0x1c(%ebx),%eax
   139f7:	50                   	push   %eax
   139f8:	8b 43 20             	mov    0x20(%ebx),%eax
   139fb:	50                   	push   %eax
   139fc:	e8 ef 07 00 00       	call   141f0 <_PollReeval>
   13a01:	59                   	pop    %ecx
   13a02:	5f                   	pop    %edi
   13a03:	6a 01                	push   $0x1
   13a05:	6a 00                	push   $0x0
   13a07:	8b 45 0c             	mov    0xc(%ebp),%eax
   13a0a:	8b 50 1c             	mov    0x1c(%eax),%edx
   13a0d:	52                   	push   %edx
   13a0e:	50                   	push   %eax
   13a0f:	56                   	push   %esi
   13a10:	e9 b4 fe ff ff       	jmp    138c9 <_AfdPacketSocketReadData@12+0x49>
   13a15:	50                   	push   %eax
   13a16:	50                   	push   %eax
   13a17:	6a 00                	push   $0x0
   13a19:	6a 00                	push   $0x0
   13a1b:	6a 00                	push   $0x0
   13a1d:	8b 45 0c             	mov    0xc(%ebp),%eax
   13a20:	50                   	push   %eax
   13a21:	68 17 00 00 c0       	push   $0xc0000017
   13a26:	e9 9e fe ff ff       	jmp    138c9 <_AfdPacketSocketReadData@12+0x49>
   13a2b:	f6 46 08 04          	testb  $0x4,0x8(%esi)
   13a2f:	74 30                	je     13a61 <_AfdPacketSocketReadData@12+0x1e1>
   13a31:	50                   	push   %eax
   13a32:	50                   	push   %eax
   13a33:	8b 43 1c             	mov    0x1c(%ebx),%eax
   13a36:	50                   	push   %eax
   13a37:	8b 43 20             	mov    0x20(%ebx),%eax
   13a3a:	50                   	push   %eax
   13a3b:	e8 b0 07 00 00       	call   141f0 <_PollReeval>
   13a40:	5f                   	pop    %edi
   13a41:	58                   	pop    %eax
   13a42:	6a 01                	push   $0x1
   13a44:	6a 00                	push   $0x0
   13a46:	6a 00                	push   $0x0
   13a48:	8b 75 0c             	mov    0xc(%ebp),%esi
   13a4b:	56                   	push   %esi
   13a4c:	68 d8 00 00 c0       	push   $0xc00000d8
   13a51:	e9 73 fe ff ff       	jmp    138c9 <_AfdPacketSocketReadData@12+0x49>
   13a56:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   13a5c:	83 e0 fe             	and    $0xfffffffe,%eax
   13a5f:	eb 8b                	jmp    139ec <_AfdPacketSocketReadData@12+0x16c>
   13a61:	51                   	push   %ecx
   13a62:	51                   	push   %ecx
   13a63:	8b 53 1c             	mov    0x1c(%ebx),%edx
   13a66:	52                   	push   %edx
   13a67:	8b 43 20             	mov    0x20(%ebx),%eax
   13a6a:	50                   	push   %eax
   13a6b:	e8 80 07 00 00       	call   141f0 <_PollReeval>
   13a70:	83 c4 0c             	add    $0xc,%esp
   13a73:	6a 01                	push   $0x1
   13a75:	8b 45 0c             	mov    0xc(%ebp),%eax
   13a78:	50                   	push   %eax
   13a79:	53                   	push   %ebx
   13a7a:	e8 71 eb ff ff       	call   125f0 <_LeaveIrpUntilLater>
   13a7f:	e9 4b fe ff ff       	jmp    138cf <_AfdPacketSocketReadData@12+0x4f>
   13a84:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   13a8a:	83 e0 fe             	and    $0xfffffffe,%eax
   13a8d:	e9 ec fe ff ff       	jmp    1397e <_AfdPacketSocketReadData@12+0xfe>
   13a92:	90                   	nop    
   13a93:	90                   	nop    
   13a94:	90                   	nop    
   13a95:	90                   	nop    
   13a96:	90                   	nop    
   13a97:	90                   	nop    
   13a98:	90                   	nop    
   13a99:	90                   	nop    
   13a9a:	90                   	nop    
   13a9b:	90                   	nop    
   13a9c:	90                   	nop    
   13a9d:	90                   	nop    
   13a9e:	90                   	nop    
   13a9f:	90                   	nop    

00013aa0 <_PrintEvents>:
   13aa0:	55                   	push   %ebp
   13aa1:	b9 0c 00 00 00       	mov    $0xc,%ecx
   13aa6:	89 e5                	mov    %esp,%ebp
   13aa8:	57                   	push   %edi
   13aa9:	fc                   	cld    
   13aaa:	56                   	push   %esi
   13aab:	53                   	push   %ebx
   13aac:	83 ec 3c             	sub    $0x3c,%esp
   13aaf:	8d 7d b8             	lea    0xffffffb8(%ebp),%edi
   13ab2:	be 00 70 01 00       	mov    $0x17000,%esi
   13ab7:	8b 5d 08             	mov    0x8(%ebp),%ebx
   13aba:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   13abc:	8b 7d b8             	mov    0xffffffb8(%ebp),%edi
   13abf:	31 f6                	xor    %esi,%esi
   13ac1:	85 ff                	test   %edi,%edi
   13ac3:	74 3c                	je     13b01 <_PrintEvents+0x61>
   13ac5:	bf 01 00 00 00       	mov    $0x1,%edi
   13aca:	eb 0d                	jmp    13ad9 <_PrintEvents+0x39>
   13acc:	8d 74 26 00          	lea    0x0(%esi),%esi
   13ad0:	46                   	inc    %esi
   13ad1:	8b 44 b5 b8          	mov    0xffffffb8(%ebp,%esi,4),%eax
   13ad5:	85 c0                	test   %eax,%eax
   13ad7:	74 28                	je     13b01 <_PrintEvents+0x61>
   13ad9:	89 f8                	mov    %edi,%eax
   13adb:	89 f1                	mov    %esi,%ecx
   13add:	d3 e0                	shl    %cl,%eax
   13adf:	85 c3                	test   %eax,%ebx
   13ae1:	74 ed                	je     13ad0 <_PrintEvents+0x30>
   13ae3:	8b 54 b5 b8          	mov    0xffffffb8(%ebp,%esi,4),%edx
   13ae7:	46                   	inc    %esi
   13ae8:	51                   	push   %ecx
   13ae9:	51                   	push   %ecx
   13aea:	52                   	push   %edx
   13aeb:	68 c8 83 01 00       	push   $0x183c8
   13af0:	ff 15 14 a1 01 00    	call   *0x1a114
   13af6:	8b 44 b5 b8          	mov    0xffffffb8(%ebp,%esi,4),%eax
   13afa:	83 c4 10             	add    $0x10,%esp
   13afd:	85 c0                	test   %eax,%eax
   13aff:	75 d8                	jne    13ad9 <_PrintEvents+0x39>
   13b01:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13b04:	5b                   	pop    %ebx
   13b05:	5e                   	pop    %esi
   13b06:	5f                   	pop    %edi
   13b07:	5d                   	pop    %ebp
   13b08:	c3                   	ret    
   13b09:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013b10 <_CopyBackStatus>:
   13b10:	55                   	push   %ebp
   13b11:	89 e5                	mov    %esp,%ebp
   13b13:	53                   	push   %ebx
   13b14:	8b 45 0c             	mov    0xc(%ebp),%eax
   13b17:	8b 5d 08             	mov    0x8(%ebp),%ebx
   13b1a:	85 c0                	test   %eax,%eax
   13b1c:	74 1a                	je     13b38 <_CopyBackStatus+0x28>
   13b1e:	31 c9                	xor    %ecx,%ecx
   13b20:	89 c2                	mov    %eax,%edx
   13b22:	8b 44 19 08          	mov    0x8(%ecx,%ebx,1),%eax
   13b26:	c7 44 19 08 00 00 00 	movl   $0x0,0x8(%ecx,%ebx,1)
   13b2d:	00 
   13b2e:	89 44 19 04          	mov    %eax,0x4(%ecx,%ebx,1)
   13b32:	83 c1 0c             	add    $0xc,%ecx
   13b35:	4a                   	dec    %edx
   13b36:	75 ea                	jne    13b22 <_CopyBackStatus+0x12>
   13b38:	5b                   	pop    %ebx
   13b39:	5d                   	pop    %ebp
   13b3a:	c3                   	ret    
   13b3b:	90                   	nop    
   13b3c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013b40 <_ZeroEvents>:
   13b40:	55                   	push   %ebp
   13b41:	89 e5                	mov    %esp,%ebp
   13b43:	8b 45 0c             	mov    0xc(%ebp),%eax
   13b46:	85 c0                	test   %eax,%eax
   13b48:	74 12                	je     13b5c <_ZeroEvents+0x1c>
   13b4a:	8b 55 08             	mov    0x8(%ebp),%edx
   13b4d:	83 c2 08             	add    $0x8,%edx
   13b50:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   13b56:	83 c2 0c             	add    $0xc,%edx
   13b59:	48                   	dec    %eax
   13b5a:	75 f4                	jne    13b50 <_ZeroEvents+0x10>
   13b5c:	5d                   	pop    %ebp
   13b5d:	c3                   	ret    
   13b5e:	89 f6                	mov    %esi,%esi

00013b60 <_RemoveSelect>:
   13b60:	55                   	push   %ebp
   13b61:	89 e5                	mov    %esp,%ebp
   13b63:	53                   	push   %ebx
   13b64:	83 ec 10             	sub    $0x10,%esp
   13b67:	8b 5d 08             	mov    0x8(%ebp),%ebx
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   13b6a:	8b 13                	mov    (%ebx),%edx
  OldBlink = Entry->Blink;
   13b6c:	8b 43 04             	mov    0x4(%ebx),%eax
  OldFlink->Blink = OldBlink;
   13b6f:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   13b72:	89 10                	mov    %edx,(%eax)
   13b74:	8d 43 30             	lea    0x30(%ebx),%eax
   13b77:	50                   	push   %eax
   13b78:	ff 15 40 a1 01 00    	call   *0x1a140
   13b7e:	53                   	push   %ebx
   13b7f:	ff 15 1c a1 01 00    	call   *0x1a11c
   13b85:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13b88:	c9                   	leave  
   13b89:	c3                   	ret    
   13b8a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00013b90 <_SignalSocket>:
   13b90:	55                   	push   %ebp
   13b91:	89 e5                	mov    %esp,%ebp
   13b93:	57                   	push   %edi
   13b94:	56                   	push   %esi
   13b95:	53                   	push   %ebx
   13b96:	83 ec 18             	sub    $0x18,%esp
   13b99:	8b 75 08             	mov    0x8(%ebp),%esi
   13b9c:	8b 7d 0c             	mov    0xc(%ebp),%edi
   13b9f:	8b 5d 10             	mov    0x10(%ebp),%ebx
   13ba2:	8b 46 08             	mov    0x8(%esi),%eax
   13ba5:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   13ba8:	8d 46 30             	lea    0x30(%esi),%eax
   13bab:	50                   	push   %eax
   13bac:	ff 15 40 a1 01 00    	call   *0x1a140
   13bb2:	8b 46 08             	mov    0x8(%esi),%eax
   13bb5:	89 58 18             	mov    %ebx,0x18(%eax)
   13bb8:	8b 47 08             	mov    0x8(%edi),%eax
   13bbb:	8b 56 08             	mov    0x8(%esi),%edx
   13bbe:	8d 04 40             	lea    (%eax,%eax,2),%eax
   13bc1:	8d 04 85 10 00 00 00 	lea    0x10(,%eax,4),%eax
   13bc8:	89 42 1c             	mov    %eax,0x1c(%edx)
   13bcb:	8b 47 08             	mov    0x8(%edi),%eax
   13bce:	50                   	push   %eax
   13bcf:	8d 47 10             	lea    0x10(%edi),%eax
   13bd2:	50                   	push   %eax
   13bd3:	e8 38 ff ff ff       	call   13b10 <_CopyBackStatus>
   13bd8:	8b 47 08             	mov    0x8(%edi),%eax
   13bdb:	83 c4 14             	add    $0x14,%esp
   13bde:	85 c0                	test   %eax,%eax
   13be0:	eb 01                	jmp    13be3 <_SignalSocket+0x53>
   13be2:	48                   	dec    %eax
   13be3:	75 fd                	jne    13be2 <_SignalSocket+0x52>
   13be5:	50                   	push   %eax
   13be6:	50                   	push   %eax
   13be7:	8b 47 08             	mov    0x8(%edi),%eax
   13bea:	50                   	push   %eax
   13beb:	8b 47 0c             	mov    0xc(%edi),%eax
   13bee:	50                   	push   %eax
   13bef:	e8 bc e7 ff ff       	call   123b0 <_UnlockHandles>
   13bf4:	ba 02 00 00 00       	mov    $0x2,%edx
   13bf9:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   13bfc:	ff 15 0c a1 01 00    	call   *0x1a10c
{
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   13c02:	8b 16                	mov    (%esi),%edx
  OldBlink = Entry->Blink;
   13c04:	8b 46 04             	mov    0x4(%esi),%eax
   13c07:	83 c4 10             	add    $0x10,%esp
  OldFlink->Blink = OldBlink;
   13c0a:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   13c0d:	89 10                	mov    %edx,(%eax)
   13c0f:	89 75 08             	mov    %esi,0x8(%ebp)
   13c12:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13c15:	5b                   	pop    %ebx
   13c16:	5e                   	pop    %esi
   13c17:	5f                   	pop    %edi
   13c18:	5d                   	pop    %ebp
   13c19:	e9 42 ff ff ff       	jmp    13b60 <_RemoveSelect>
   13c1e:	89 f6                	mov    %esi,%esi

00013c20 <_SelectTimeout>:
   13c20:	55                   	push   %ebp
   13c21:	89 e5                	mov    %esp,%ebp
   13c23:	57                   	push   %edi
   13c24:	56                   	push   %esi
   13c25:	53                   	push   %ebx
   13c26:	83 ec 0c             	sub    $0xc,%esp
   13c29:	8b 7d 0c             	mov    0xc(%ebp),%edi
   13c2c:	8b 47 08             	mov    0x8(%edi),%eax
   13c2f:	8b 77 0c             	mov    0xc(%edi),%esi
   13c32:	83 c6 0c             	add    $0xc,%esi
   13c35:	8b 58 0c             	mov    0xc(%eax),%ebx
   13c38:	8b 4b 08             	mov    0x8(%ebx),%ecx
   13c3b:	8d 43 10             	lea    0x10(%ebx),%eax
   13c3e:	51                   	push   %ecx
   13c3f:	50                   	push   %eax
   13c40:	e8 fb fe ff ff       	call   13b40 <_ZeroEvents>
   13c45:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   13c48:	50                   	push   %eax
   13c49:	56                   	push   %esi
   13c4a:	ff 15 f8 a0 01 00    	call   *0x1a0f8
   13c50:	c7 04 24 02 01 00 00 	movl   $0x102,(%esp)
   13c57:	53                   	push   %ebx
   13c58:	57                   	push   %edi
   13c59:	e8 32 ff ff ff       	call   13b90 <_SignalSocket>
   13c5e:	58                   	pop    %eax
   13c5f:	31 c0                	xor    %eax,%eax
   13c61:	5a                   	pop    %edx
   13c62:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   13c65:	50                   	push   %eax
   13c66:	56                   	push   %esi
   13c67:	ff 15 fc a0 01 00    	call   *0x1a0fc
   13c6d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13c70:	5b                   	pop    %ebx
   13c71:	5e                   	pop    %esi
   13c72:	5f                   	pop    %edi
   13c73:	5d                   	pop    %ebp
   13c74:	c3                   	ret    
   13c75:	8d 74 26 00          	lea    0x0(%esi),%esi
   13c79:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013c80 <_KillSelectsForFCB>:
   13c80:	55                   	push   %ebp
   13c81:	89 e5                	mov    %esp,%ebp
   13c83:	57                   	push   %edi
   13c84:	56                   	push   %esi
   13c85:	53                   	push   %ebx
   13c86:	83 ec 24             	sub    $0x24,%esp
   13c89:	8b 5d 08             	mov    0x8(%ebp),%ebx
   13c8c:	8a 45 10             	mov    0x10(%ebp),%al
   13c8f:	88 45 f2             	mov    %al,0xfffffff2(%ebp)
   13c92:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   13c95:	8d 53 0c             	lea    0xc(%ebx),%edx
   13c98:	50                   	push   %eax
   13c99:	89 55 e0             	mov    %edx,0xffffffe0(%ebp)
   13c9c:	52                   	push   %edx
   13c9d:	ff 15 f8 a0 01 00    	call   *0x1a0f8
   13ca3:	8b 43 04             	mov    0x4(%ebx),%eax
   13ca6:	83 c3 04             	add    $0x4,%ebx
   13ca9:	5a                   	pop    %edx
   13caa:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   13cad:	59                   	pop    %ecx
   13cae:	89 5d e4             	mov    %ebx,0xffffffe4(%ebp)
   13cb1:	39 c3                	cmp    %eax,%ebx
   13cb3:	74 73                	je     13d28 <_KillSelectsForFCB+0xa8>
   13cb5:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   13cb8:	31 f6                	xor    %esi,%esi
   13cba:	89 55 e8             	mov    %edx,0xffffffe8(%ebp)
   13cbd:	8b 02                	mov    (%edx),%eax
   13cbf:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   13cc2:	8b 42 08             	mov    0x8(%edx),%eax
   13cc5:	8b 78 0c             	mov    0xc(%eax),%edi
   13cc8:	8b 47 08             	mov    0x8(%edi),%eax
   13ccb:	39 c6                	cmp    %eax,%esi
   13ccd:	73 51                	jae    13d20 <_KillSelectsForFCB+0xa0>
   13ccf:	8d 5f 10             	lea    0x10(%edi),%ebx
   13cd2:	eb 08                	jmp    13cdc <_KillSelectsForFCB+0x5c>
   13cd4:	46                   	inc    %esi
   13cd5:	83 c3 0c             	add    $0xc,%ebx
   13cd8:	39 c6                	cmp    %eax,%esi
   13cda:	73 44                	jae    13d20 <_KillSelectsForFCB+0xa0>
   13cdc:	8b 55 0c             	mov    0xc(%ebp),%edx
   13cdf:	39 13                	cmp    %edx,(%ebx)
   13ce1:	75 f1                	jne    13cd4 <_KillSelectsForFCB+0x54>
   13ce3:	80 7d f2 00          	cmpb   $0x0,0xfffffff2(%ebp)
   13ce7:	74 09                	je     13cf2 <_KillSelectsForFCB+0x72>
   13ce9:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   13cec:	80 7a 5c 00          	cmpb   $0x0,0x5c(%edx)
   13cf0:	74 e2                	je     13cd4 <_KillSelectsForFCB+0x54>
   13cf2:	8b 47 08             	mov    0x8(%edi),%eax
   13cf5:	46                   	inc    %esi
   13cf6:	50                   	push   %eax
   13cf7:	8d 47 10             	lea    0x10(%edi),%eax
   13cfa:	50                   	push   %eax
   13cfb:	e8 40 fe ff ff       	call   13b40 <_ZeroEvents>
   13d00:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   13d03:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
   13d0a:	57                   	push   %edi
   13d0b:	50                   	push   %eax
   13d0c:	e8 7f fe ff ff       	call   13b90 <_SignalSocket>
   13d11:	8b 47 08             	mov    0x8(%edi),%eax
   13d14:	83 c4 10             	add    $0x10,%esp
   13d17:	83 c3 0c             	add    $0xc,%ebx
   13d1a:	39 c6                	cmp    %eax,%esi
   13d1c:	72 be                	jb     13cdc <_KillSelectsForFCB+0x5c>
   13d1e:	89 f6                	mov    %esi,%esi
   13d20:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13d23:	39 45 e4             	cmp    %eax,0xffffffe4(%ebp)
   13d26:	75 8d                	jne    13cb5 <_KillSelectsForFCB+0x35>
   13d28:	31 c0                	xor    %eax,%eax
   13d2a:	8b 5d e0             	mov    0xffffffe0(%ebp),%ebx
   13d2d:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   13d30:	56                   	push   %esi
   13d31:	56                   	push   %esi
   13d32:	50                   	push   %eax
   13d33:	53                   	push   %ebx
   13d34:	ff 15 fc a0 01 00    	call   *0x1a0fc
   13d3a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13d3d:	5b                   	pop    %ebx
   13d3e:	5e                   	pop    %esi
   13d3f:	5f                   	pop    %edi
   13d40:	5d                   	pop    %ebp
   13d41:	c3                   	ret    
   13d42:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13d49:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013d50 <_AfdSelect@12>:
   13d50:	55                   	push   %ebp
   13d51:	89 e5                	mov    %esp,%ebp
   13d53:	57                   	push   %edi
   13d54:	56                   	push   %esi
   13d55:	53                   	push   %ebx
   13d56:	83 ec 34             	sub    $0x34,%esp
   13d59:	8b 45 0c             	mov    0xc(%ebp),%eax
   13d5c:	8b 78 0c             	mov    0xc(%eax),%edi
   13d5f:	8b 45 08             	mov    0x8(%ebp),%eax
   13d62:	8b 40 28             	mov    0x28(%eax),%eax
   13d65:	8b 57 0c             	mov    0xc(%edi),%edx
   13d68:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   13d6b:	8b 45 10             	mov    0x10(%ebp),%eax
   13d6e:	8b 77 08             	mov    0x8(%edi),%esi
   13d71:	8d 4f 10             	lea    0x10(%edi),%ecx
   13d74:	8b 40 08             	mov    0x8(%eax),%eax
   13d77:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   13d7e:	83 c0 40             	add    $0x40,%eax
   13d81:	89 55 dc             	mov    %edx,0xffffffdc(%ebp)
   13d84:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   13d87:	56                   	push   %esi
   13d88:	89 4d d0             	mov    %ecx,0xffffffd0(%ebp)
   13d8b:	51                   	push   %ecx
   13d8c:	e8 8f e5 ff ff       	call   12320 <_LockHandles>
   13d91:	83 c4 10             	add    $0x10,%esp
   13d94:	85 c0                	test   %eax,%eax
   13d96:	89 47 0c             	mov    %eax,0xc(%edi)
   13d99:	0f 84 b2 01 00 00    	je     13f51 <_AfdSelect@12+0x201>
   13d9f:	8b 5d dc             	mov    0xffffffdc(%ebp),%ebx
   13da2:	85 db                	test   %ebx,%ebx
   13da4:	0f 85 39 01 00 00    	jne    13ee3 <_AfdSelect@12+0x193>
   13daa:	8b 47 08             	mov    0x8(%edi),%eax
   13dad:	50                   	push   %eax
   13dae:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   13db1:	50                   	push   %eax
   13db2:	e8 89 fd ff ff       	call   13b40 <_ZeroEvents>
   13db7:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   13dba:	50                   	push   %eax
   13dbb:	6a 00                	push   $0x0
   13dbd:	ff 15 18 a1 01 00    	call   *0x1a118
   13dc3:	85 c0                	test   %eax,%eax
   13dc5:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   13dc8:	5b                   	pop    %ebx
   13dc9:	bb 17 00 00 c0       	mov    $0xc0000017,%ebx
   13dce:	5e                   	pop    %esi
   13dcf:	0f 84 70 01 00 00    	je     13f45 <_AfdSelect@12+0x1f5>
   13dd5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   13dd8:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   13ddb:	89 48 08             	mov    %ecx,0x8(%eax)
   13dde:	89 c3                	mov    %eax,%ebx
   13de0:	8a 4d dc             	mov    0xffffffdc(%ebp),%cl
   13de3:	89 50 0c             	mov    %edx,0xc(%eax)
   13de6:	88 48 5c             	mov    %cl,0x5c(%eax)
   13de9:	83 c3 30             	add    $0x30,%ebx
   13dec:	51                   	push   %ecx
   13ded:	51                   	push   %ecx
   13dee:	6a 00                	push   $0x0
   13df0:	53                   	push   %ebx
   13df1:	ff 15 54 a1 01 00    	call   *0x1a154
   13df7:	8b 75 e8             	mov    0xffffffe8(%ebp),%esi
   13dfa:	58                   	pop    %eax
   13dfb:	83 c6 10             	add    $0x10,%esi
   13dfe:	5a                   	pop    %edx
   13dff:	56                   	push   %esi
   13e00:	8b 47 04             	mov    0x4(%edi),%eax
   13e03:	50                   	push   %eax
   13e04:	8b 07                	mov    (%edi),%eax
   13e06:	50                   	push   %eax
   13e07:	53                   	push   %ebx
   13e08:	ff 15 60 a1 01 00    	call   *0x1a160
   13e0e:	50                   	push   %eax
   13e0f:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   13e12:	50                   	push   %eax
   13e13:	68 20 3c 01 00       	push   $0x13c20
   13e18:	56                   	push   %esi
   13e19:	ff 15 48 a1 01 00    	call   *0x1a148
   13e1f:	50                   	push   %eax
   13e20:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   13e23:	50                   	push   %eax
   13e24:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13e27:	83 c0 0c             	add    $0xc,%eax
   13e2a:	89 45 d4             	mov    %eax,0xffffffd4(%ebp)
   13e2d:	50                   	push   %eax
   13e2e:	ff 15 f8 a0 01 00    	call   *0x1a0f8
static __inline VOID
InsertTailList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   13e34:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13e37:	83 c0 04             	add    $0x4,%eax
  PLIST_ENTRY OldBlink;
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
   13e3a:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   13e3d:	5b                   	pop    %ebx
   13e3e:	5e                   	pop    %esi
   13e3f:	8b 50 04             	mov    0x4(%eax),%edx
   13e42:	89 01                	mov    %eax,(%ecx)
  Entry->Blink = OldBlink;
   13e44:	89 51 04             	mov    %edx,0x4(%ecx)
   13e47:	31 f6                	xor    %esi,%esi
  PLIST_ENTRY OldBlink;
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
  Entry->Blink = OldBlink;
  OldBlink->Flink = Entry;
   13e49:	89 0a                	mov    %ecx,(%edx)
   13e4b:	8b 57 08             	mov    0x8(%edi),%edx
  OldBlink = ListHead->Blink;
  Entry->Flink = ListHead;
  Entry->Blink = OldBlink;
  OldBlink->Flink = Entry;
  ListHead->Blink = Entry;
   13e4e:	89 48 04             	mov    %ecx,0x4(%eax)
   13e51:	83 fa 00             	cmp    $0x0,%edx
   13e54:	0f 86 c8 00 00 00    	jbe    13f22 <_AfdSelect@12+0x1d2>
   13e5a:	31 db                	xor    %ebx,%ebx
   13e5c:	eb 0a                	jmp    13e68 <_AfdSelect@12+0x118>
   13e5e:	89 f6                	mov    %esi,%esi
   13e60:	46                   	inc    %esi
   13e61:	83 c3 0c             	add    $0xc,%ebx
   13e64:	39 f2                	cmp    %esi,%edx
   13e66:	76 56                	jbe    13ebe <_AfdSelect@12+0x16e>
   13e68:	8b 4f 0c             	mov    0xc(%edi),%ecx
   13e6b:	8b 04 0b             	mov    (%ebx,%ecx,1),%eax
   13e6e:	85 c0                	test   %eax,%eax
   13e70:	74 ee                	je     13e60 <_AfdSelect@12+0x110>
   13e72:	8b 40 0c             	mov    0xc(%eax),%eax
   13e75:	8b 80 00 01 00 00    	mov    0x100(%eax),%eax
   13e7b:	89 45 d8             	mov    %eax,0xffffffd8(%ebp)
   13e7e:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
   13e81:	f6 45 d8 20          	testb  $0x20,0xffffffd8(%ebp)
   13e85:	75 0d                	jne    13e94 <_AfdSelect@12+0x144>
   13e87:	8d 50 10             	lea    0x10(%eax),%edx
   13e8a:	f6 42 08 20          	testb  $0x20,0x8(%edx)
   13e8e:	0f 84 ec 00 00 00    	je     13f80 <_AfdSelect@12+0x230>
   13e94:	83 c0 10             	add    $0x10,%eax
   13e97:	c7 04 0b 00 00 00 00 	movl   $0x0,(%ebx,%ecx,1)
   13e9e:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
   13ea5:	c7 40 08 20 00 00 00 	movl   $0x20,0x8(%eax)
   13eac:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   13eaf:	8b 57 08             	mov    0x8(%edi),%edx
   13eb2:	40                   	inc    %eax
   13eb3:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   13eb6:	46                   	inc    %esi
   13eb7:	83 c3 0c             	add    $0xc,%ebx
   13eba:	39 f2                	cmp    %esi,%edx
   13ebc:	77 aa                	ja     13e68 <_AfdSelect@12+0x118>
   13ebe:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   13ec1:	85 c0                	test   %eax,%eax
   13ec3:	74 5d                	je     13f22 <_AfdSelect@12+0x1d2>
   13ec5:	8b 45 0c             	mov    0xc(%ebp),%eax
   13ec8:	31 db                	xor    %ebx,%ebx
   13eca:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)
   13ed1:	50                   	push   %eax
   13ed2:	6a 00                	push   $0x0
   13ed4:	57                   	push   %edi
   13ed5:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   13ed8:	50                   	push   %eax
   13ed9:	e8 b2 fc ff ff       	call   13b90 <_SignalSocket>
   13ede:	83 c4 10             	add    $0x10,%esp
   13ee1:	eb 4e                	jmp    13f31 <_AfdSelect@12+0x1e1>
   13ee3:	8b 57 08             	mov    0x8(%edi),%edx
   13ee6:	31 f6                	xor    %esi,%esi
   13ee8:	31 db                	xor    %ebx,%ebx
   13eea:	83 fa 00             	cmp    $0x0,%edx
   13eed:	77 14                	ja     13f03 <_AfdSelect@12+0x1b3>
   13eef:	e9 b6 fe ff ff       	jmp    13daa <_AfdSelect@12+0x5a>
   13ef4:	46                   	inc    %esi
   13ef5:	83 c3 0c             	add    $0xc,%ebx
   13ef8:	39 f2                	cmp    %esi,%edx
   13efa:	0f 86 aa fe ff ff    	jbe    13daa <_AfdSelect@12+0x5a>
   13f00:	8b 47 0c             	mov    0xc(%edi),%eax
   13f03:	8b 0c 03             	mov    (%ebx,%eax,1),%ecx
   13f06:	85 c9                	test   %ecx,%ecx
   13f08:	74 ea                	je     13ef4 <_AfdSelect@12+0x1a4>
   13f0a:	52                   	push   %edx
   13f0b:	6a 01                	push   $0x1
   13f0d:	8b 04 03             	mov    (%ebx,%eax,1),%eax
   13f10:	50                   	push   %eax
   13f11:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13f14:	50                   	push   %eax
   13f15:	e8 66 fd ff ff       	call   13c80 <_KillSelectsForFCB>
   13f1a:	83 c4 10             	add    $0x10,%esp
   13f1d:	8b 57 08             	mov    0x8(%edi),%edx
   13f20:	eb d2                	jmp    13ef4 <_AfdSelect@12+0x1a4>
   13f22:	8b 55 0c             	mov    0xc(%ebp),%edx
   13f25:	bb 03 01 00 00       	mov    $0x103,%ebx
   13f2a:	8b 42 60             	mov    0x60(%edx),%eax
   13f2d:	80 48 03 01          	orb    $0x1,0x3(%eax)
   13f31:	50                   	push   %eax
   13f32:	50                   	push   %eax
   13f33:	31 c0                	xor    %eax,%eax
   13f35:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   13f38:	50                   	push   %eax
   13f39:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   13f3c:	50                   	push   %eax
   13f3d:	ff 15 fc a0 01 00    	call   *0x1a0fc
   13f43:	5e                   	pop    %esi
   13f44:	5f                   	pop    %edi
   13f45:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13f48:	89 d8                	mov    %ebx,%eax
   13f4a:	5b                   	pop    %ebx
   13f4b:	5e                   	pop    %esi
   13f4c:	5f                   	pop    %edi
   13f4d:	5d                   	pop    %ebp
   13f4e:	c2 0c 00             	ret    $0xc
   13f51:	8b 45 0c             	mov    0xc(%ebp),%eax
   13f54:	ba 02 00 00 00       	mov    $0x2,%edx
   13f59:	89 c1                	mov    %eax,%ecx
   13f5b:	c7 40 18 17 00 00 c0 	movl   $0xc0000017,0x18(%eax)
   13f62:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   13f69:	ff 15 0c a1 01 00    	call   *0x1a10c
   13f6f:	8b 55 0c             	mov    0xc(%ebp),%edx
   13f72:	8b 42 18             	mov    0x18(%edx),%eax
   13f75:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13f78:	5b                   	pop    %ebx
   13f79:	5e                   	pop    %esi
   13f7a:	5f                   	pop    %edi
   13f7b:	5d                   	pop    %ebp
   13f7c:	c2 0c 00             	ret    $0xc
   13f7f:	90                   	nop    
   13f80:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
   13f83:	8b 4a 04             	mov    0x4(%edx),%ecx
   13f86:	21 c8                	and    %ecx,%eax
   13f88:	89 42 08             	mov    %eax,0x8(%edx)
   13f8b:	85 c0                	test   %eax,%eax
   13f8d:	0f 85 19 ff ff ff    	jne    13eac <_AfdSelect@12+0x15c>
   13f93:	8b 57 08             	mov    0x8(%edi),%edx
   13f96:	e9 1b ff ff ff       	jmp    13eb6 <_AfdSelect@12+0x166>
   13f9b:	90                   	nop    
   13f9c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013fa0 <_AfdEventSelect@12>:
   13fa0:	55                   	push   %ebp
   13fa1:	89 e5                	mov    %esp,%ebp
   13fa3:	57                   	push   %edi
   13fa4:	56                   	push   %esi
   13fa5:	53                   	push   %ebx
   13fa6:	83 ec 14             	sub    $0x14,%esp
   13fa9:	8b 75 10             	mov    0x10(%ebp),%esi
   13fac:	8b 5e 18             	mov    0x18(%esi),%ebx
   13faf:	56                   	push   %esi
   13fb0:	8b 7d 0c             	mov    0xc(%ebp),%edi
   13fb3:	57                   	push   %edi
   13fb4:	e8 57 e1 ff ff       	call   12110 <_LockRequest>
   13fb9:	8b 5b 0c             	mov    0xc(%ebx),%ebx
   13fbc:	89 c7                	mov    %eax,%edi
   13fbe:	89 1c 24             	mov    %ebx,(%esp)
   13fc1:	e8 3a e4 ff ff       	call   12400 <_SocketAcquireStateLock>
   13fc6:	83 c4 10             	add    $0x10,%esp
   13fc9:	85 c0                	test   %eax,%eax
   13fcb:	74 5b                	je     14028 <_AfdEventSelect@12+0x88>
   13fcd:	8b 8b e8 00 00 00    	mov    0xe8(%ebx),%ecx
   13fd3:	c7 83 f0 00 00 00 00 	movl   $0x0,0xf0(%ebx)
   13fda:	00 00 00 
   13fdd:	c7 83 ec 00 00 00 00 	movl   $0x0,0xec(%ebx)
   13fe4:	00 00 00 
   13fe7:	85 c9                	test   %ecx,%ecx
   13fe9:	75 35                	jne    14020 <_AfdEventSelect@12+0x80>
   13feb:	8b 07                	mov    (%edi),%eax
   13fed:	c7 83 e8 00 00 00 00 	movl   $0x0,0xe8(%ebx)
   13ff4:	00 00 00 
   13ff7:	85 c0                	test   %eax,%eax
   13ff9:	74 07                	je     14002 <_AfdEventSelect@12+0x62>
   13ffb:	8b 47 04             	mov    0x4(%edi),%eax
   13ffe:	85 c0                	test   %eax,%eax
   14000:	75 4e                	jne    14050 <_AfdEventSelect@12+0xb0>
   14002:	50                   	push   %eax
   14003:	50                   	push   %eax
   14004:	6a 01                	push   $0x1
   14006:	6a 00                	push   $0x0
   14008:	6a 00                	push   $0x0
   1400a:	8b 7d 0c             	mov    0xc(%ebp),%edi
   1400d:	57                   	push   %edi
   1400e:	6a 00                	push   $0x0
   14010:	53                   	push   %ebx
   14011:	e8 ea e4 ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   14016:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14019:	5b                   	pop    %ebx
   1401a:	5e                   	pop    %esi
   1401b:	5f                   	pop    %edi
   1401c:	5d                   	pop    %ebp
   1401d:	c2 0c 00             	ret    $0xc
   14020:	ff 15 10 a1 01 00    	call   *0x1a110
   14026:	eb c3                	jmp    13feb <_AfdEventSelect@12+0x4b>
   14028:	53                   	push   %ebx
   14029:	53                   	push   %ebx
   1402a:	56                   	push   %esi
   1402b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1402e:	51                   	push   %ecx
   1402f:	e8 3c e1 ff ff       	call   12170 <_UnlockRequest>
   14034:	58                   	pop    %eax
   14035:	5a                   	pop    %edx
   14036:	6a 00                	push   $0x0
   14038:	8b 45 0c             	mov    0xc(%ebp),%eax
   1403b:	50                   	push   %eax
   1403c:	e8 4f e5 ff ff       	call   12590 <_LostSocket>
   14041:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14044:	5b                   	pop    %ebx
   14045:	5e                   	pop    %esi
   14046:	5f                   	pop    %edi
   14047:	5d                   	pop    %ebp
   14048:	c2 0c 00             	ret    $0xc
   1404b:	90                   	nop    
   1404c:	8d 74 26 00          	lea    0x0(%esi),%esi
   14050:	50                   	push   %eax
   14051:	50                   	push   %eax
   14052:	8d 83 e8 00 00 00    	lea    0xe8(%ebx),%eax
   14058:	6a 00                	push   $0x0
   1405a:	50                   	push   %eax
   1405b:	6a 00                	push   $0x0
   1405d:	6a 00                	push   $0x0
   1405f:	68 ff 01 1f 00       	push   $0x1f01ff
   14064:	8b 37                	mov    (%edi),%esi
   14066:	56                   	push   %esi
   14067:	ff 15 7c a1 01 00    	call   *0x1a17c
   1406d:	5a                   	pop    %edx
   1406e:	85 c0                	test   %eax,%eax
   14070:	59                   	pop    %ecx
   14071:	78 0b                	js     1407e <_AfdEventSelect@12+0xde>
   14073:	8b 47 04             	mov    0x4(%edi),%eax
   14076:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
   1407c:	eb 84                	jmp    14002 <_AfdEventSelect@12+0x62>
   1407e:	c7 83 e8 00 00 00 00 	movl   $0x0,0xe8(%ebx)
   14085:	00 00 00 
   14088:	e9 75 ff ff ff       	jmp    14002 <_AfdEventSelect@12+0x62>
   1408d:	8d 76 00             	lea    0x0(%esi),%esi

00014090 <_AfdEnumEvents@12>:
   14090:	55                   	push   %ebp
   14091:	89 e5                	mov    %esp,%ebp
   14093:	57                   	push   %edi
   14094:	56                   	push   %esi
   14095:	53                   	push   %ebx
   14096:	83 ec 14             	sub    $0x14,%esp
   14099:	8b 7d 10             	mov    0x10(%ebp),%edi
   1409c:	8b 5f 18             	mov    0x18(%edi),%ebx
   1409f:	57                   	push   %edi
   140a0:	8b 75 0c             	mov    0xc(%ebp),%esi
   140a3:	56                   	push   %esi
   140a4:	e8 67 e0 ff ff       	call   12110 <_LockRequest>
   140a9:	8b 5b 0c             	mov    0xc(%ebx),%ebx
   140ac:	89 c6                	mov    %eax,%esi
   140ae:	89 1c 24             	mov    %ebx,(%esp)
   140b1:	e8 4a e3 ff ff       	call   12400 <_SocketAcquireStateLock>
   140b6:	83 c4 10             	add    $0x10,%esp
   140b9:	85 c0                	test   %eax,%eax
   140bb:	75 23                	jne    140e0 <_AfdEnumEvents@12+0x50>
   140bd:	53                   	push   %ebx
   140be:	53                   	push   %ebx
   140bf:	57                   	push   %edi
   140c0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   140c3:	51                   	push   %ecx
   140c4:	e8 a7 e0 ff ff       	call   12170 <_UnlockRequest>
   140c9:	58                   	pop    %eax
   140ca:	5a                   	pop    %edx
   140cb:	6a 00                	push   $0x0
   140cd:	8b 45 0c             	mov    0xc(%ebp),%eax
   140d0:	50                   	push   %eax
   140d1:	e8 ba e4 ff ff       	call   12590 <_LostSocket>
   140d6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   140d9:	5b                   	pop    %ebx
   140da:	5e                   	pop    %esi
   140db:	5f                   	pop    %edi
   140dc:	5d                   	pop    %ebp
   140dd:	c2 0c 00             	ret    $0xc
   140e0:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   140e6:	8d 7e 08             	lea    0x8(%esi),%edi
   140e9:	fc                   	cld    
   140ea:	89 46 04             	mov    %eax,0x4(%esi)
   140ed:	b9 0a 00 00 00       	mov    $0xa,%ecx
   140f2:	31 c0                	xor    %eax,%eax
   140f4:	f3 ab                	repz stos %eax,%es:(%edi)
   140f6:	50                   	push   %eax
   140f7:	50                   	push   %eax
   140f8:	6a 01                	push   $0x1
   140fa:	6a 00                	push   $0x0
   140fc:	6a 00                	push   $0x0
   140fe:	8b 45 0c             	mov    0xc(%ebp),%eax
   14101:	50                   	push   %eax
   14102:	6a 00                	push   $0x0
   14104:	53                   	push   %ebx
   14105:	e8 f6 e3 ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   1410a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1410d:	5b                   	pop    %ebx
   1410e:	5e                   	pop    %esi
   1410f:	5f                   	pop    %edi
   14110:	5d                   	pop    %ebp
   14111:	c2 0c 00             	ret    $0xc
   14114:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1411a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00014120 <_UpdatePollWithFCB>:
   14120:	55                   	push   %ebp
   14121:	89 e5                	mov    %esp,%ebp
   14123:	57                   	push   %edi
   14124:	56                   	push   %esi
   14125:	53                   	push   %ebx
   14126:	50                   	push   %eax
   14127:	50                   	push   %eax
   14128:	8b 45 08             	mov    0x8(%ebp),%eax
   1412b:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   14132:	8b 40 08             	mov    0x8(%eax),%eax
   14135:	8b 48 0c             	mov    0xc(%eax),%ecx
   14138:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   1413f:	8b 51 08             	mov    0x8(%ecx),%edx
   14142:	83 fa 00             	cmp    $0x0,%edx
   14145:	76 70                	jbe    141b7 <_UpdatePollWithFCB+0x97>
   14147:	31 f6                	xor    %esi,%esi
   14149:	eb 14                	jmp    1415f <_UpdatePollWithFCB+0x3f>
   1414b:	90                   	nop    
   1414c:	8d 74 26 00          	lea    0x0(%esi),%esi
   14150:	8b 5d f0             	mov    0xfffffff0(%ebp),%ebx
   14153:	83 c6 0c             	add    $0xc,%esi
   14156:	43                   	inc    %ebx
   14157:	89 5d f0             	mov    %ebx,0xfffffff0(%ebp)
   1415a:	3b 55 f0             	cmp    0xfffffff0(%ebp),%edx
   1415d:	76 58                	jbe    141b7 <_UpdatePollWithFCB+0x97>
   1415f:	8b 59 0c             	mov    0xc(%ecx),%ebx
   14162:	8b 04 1e             	mov    (%esi,%ebx,1),%eax
   14165:	85 c0                	test   %eax,%eax
   14167:	74 e7                	je     14150 <_UpdatePollWithFCB+0x30>
   14169:	8b 40 0c             	mov    0xc(%eax),%eax
   1416c:	8b b8 00 01 00 00    	mov    0x100(%eax),%edi
   14172:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
   14175:	f7 c7 20 00 00 00    	test   $0x20,%edi
   1417b:	75 09                	jne    14186 <_UpdatePollWithFCB+0x66>
   1417d:	8d 50 10             	lea    0x10(%eax),%edx
   14180:	f6 42 08 20          	testb  $0x20,0x8(%edx)
   14184:	74 4a                	je     141d0 <_UpdatePollWithFCB+0xb0>
   14186:	83 c0 10             	add    $0x10,%eax
   14189:	c7 04 1e 00 00 00 00 	movl   $0x0,(%esi,%ebx,1)
   14190:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
   14197:	c7 40 08 20 00 00 00 	movl   $0x20,0x8(%eax)
   1419e:	8b 7d ec             	mov    0xffffffec(%ebp),%edi
   141a1:	8b 51 08             	mov    0x8(%ecx),%edx
   141a4:	47                   	inc    %edi
   141a5:	89 7d ec             	mov    %edi,0xffffffec(%ebp)
   141a8:	8b 5d f0             	mov    0xfffffff0(%ebp),%ebx
   141ab:	83 c6 0c             	add    $0xc,%esi
   141ae:	43                   	inc    %ebx
   141af:	89 5d f0             	mov    %ebx,0xfffffff0(%ebp)
   141b2:	3b 55 f0             	cmp    0xfffffff0(%ebp),%edx
   141b5:	77 a8                	ja     1415f <_UpdatePollWithFCB+0x3f>
   141b7:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   141ba:	5f                   	pop    %edi
   141bb:	85 c9                	test   %ecx,%ecx
   141bd:	5a                   	pop    %edx
   141be:	0f 95 c0             	setne  %al
   141c1:	25 ff 00 00 00       	and    $0xff,%eax
   141c6:	5b                   	pop    %ebx
   141c7:	5e                   	pop    %esi
   141c8:	5f                   	pop    %edi
   141c9:	5d                   	pop    %ebp
   141ca:	c3                   	ret    
   141cb:	90                   	nop    
   141cc:	8d 74 26 00          	lea    0x0(%esi),%esi
   141d0:	8b 42 04             	mov    0x4(%edx),%eax
   141d3:	21 f8                	and    %edi,%eax
   141d5:	89 42 08             	mov    %eax,0x8(%edx)
   141d8:	85 c0                	test   %eax,%eax
   141da:	75 c2                	jne    1419e <_UpdatePollWithFCB+0x7e>
   141dc:	8b 51 08             	mov    0x8(%ecx),%edx
   141df:	eb c7                	jmp    141a8 <_UpdatePollWithFCB+0x88>
   141e1:	eb 0d                	jmp    141f0 <_PollReeval>
   141e3:	90                   	nop    
   141e4:	90                   	nop    
   141e5:	90                   	nop    
   141e6:	90                   	nop    
   141e7:	90                   	nop    
   141e8:	90                   	nop    
   141e9:	90                   	nop    
   141ea:	90                   	nop    
   141eb:	90                   	nop    
   141ec:	90                   	nop    
   141ed:	90                   	nop    
   141ee:	90                   	nop    
   141ef:	90                   	nop    

000141f0 <_PollReeval>:
   141f0:	55                   	push   %ebp
   141f1:	89 e5                	mov    %esp,%ebp
   141f3:	57                   	push   %edi
   141f4:	56                   	push   %esi
   141f5:	53                   	push   %ebx
   141f6:	83 ec 24             	sub    $0x24,%esp
   141f9:	8d 45 f3             	lea    0xfffffff3(%ebp),%eax
   141fc:	8b 75 08             	mov    0x8(%ebp),%esi
   141ff:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   14206:	50                   	push   %eax
   14207:	8d 46 0c             	lea    0xc(%esi),%eax
   1420a:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   1420d:	50                   	push   %eax
   1420e:	ff 15 f8 a0 01 00    	call   *0x1a0f8
   14214:	8b 45 0c             	mov    0xc(%ebp),%eax
   14217:	8b 50 0c             	mov    0xc(%eax),%edx
   1421a:	83 c4 08             	add    $0x8,%esp
   1421d:	8b 8a f0 00 00 00    	mov    0xf0(%edx),%ecx
   14223:	8b 9a 00 01 00 00    	mov    0x100(%edx),%ebx
   14229:	89 c8                	mov    %ecx,%eax
   1422b:	83 f0 ff             	xor    $0xffffffff,%eax
   1422e:	21 d8                	and    %ebx,%eax
   14230:	85 82 ec 00 00 00    	test   %eax,0xec(%edx)
   14236:	74 11                	je     14249 <_PollReeval+0x59>
   14238:	09 d9                	or     %ebx,%ecx
   1423a:	8b 82 e8 00 00 00    	mov    0xe8(%edx),%eax
   14240:	89 8a f0 00 00 00    	mov    %ecx,0xf0(%edx)
   14246:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   14249:	85 d2                	test   %edx,%edx
   1424b:	74 79                	je     142c6 <_PollReeval+0xd6>
   1424d:	8b 5e 04             	mov    0x4(%esi),%ebx
   14250:	83 c6 04             	add    $0x4,%esi
   14253:	89 75 e8             	mov    %esi,0xffffffe8(%ebp)
   14256:	39 de                	cmp    %ebx,%esi
   14258:	74 25                	je     1427f <_PollReeval+0x8f>
   1425a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   14260:	8b 43 08             	mov    0x8(%ebx),%eax
   14263:	89 df                	mov    %ebx,%edi
   14265:	8b 70 0c             	mov    0xc(%eax),%esi
   14268:	8b 45 0c             	mov    0xc(%ebp),%eax
   1426b:	50                   	push   %eax
   1426c:	53                   	push   %ebx
   1426d:	e8 ae fe ff ff       	call   14120 <_UpdatePollWithFCB>
   14272:	5a                   	pop    %edx
   14273:	84 c0                	test   %al,%al
   14275:	59                   	pop    %ecx
   14276:	75 3a                	jne    142b2 <_PollReeval+0xc2>
   14278:	8b 1b                	mov    (%ebx),%ebx
   1427a:	39 5d e8             	cmp    %ebx,0xffffffe8(%ebp)
   1427d:	75 e1                	jne    14260 <_PollReeval+0x70>
   1427f:	31 c0                	xor    %eax,%eax
   14281:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
   14284:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   14287:	53                   	push   %ebx
   14288:	53                   	push   %ebx
   14289:	50                   	push   %eax
   1428a:	51                   	push   %ecx
   1428b:	ff 15 fc a0 01 00    	call   *0x1a0fc
   14291:	58                   	pop    %eax
   14292:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   14295:	5a                   	pop    %edx
   14296:	85 c0                	test   %eax,%eax
   14298:	74 10                	je     142aa <_PollReeval+0xba>
   1429a:	50                   	push   %eax
   1429b:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   1429e:	6a 00                	push   $0x0
   142a0:	6a 02                	push   $0x2
   142a2:	50                   	push   %eax
   142a3:	ff 15 5c a1 01 00    	call   *0x1a15c
   142a9:	58                   	pop    %eax
   142aa:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   142ad:	5b                   	pop    %ebx
   142ae:	5e                   	pop    %esi
   142af:	5f                   	pop    %edi
   142b0:	5d                   	pop    %ebp
   142b1:	c3                   	ret    
   142b2:	8b 1b                	mov    (%ebx),%ebx
   142b4:	50                   	push   %eax
   142b5:	6a 00                	push   $0x0
   142b7:	56                   	push   %esi
   142b8:	57                   	push   %edi
   142b9:	e8 d2 f8 ff ff       	call   13b90 <_SignalSocket>
   142be:	83 c4 10             	add    $0x10,%esp
   142c1:	39 5d e8             	cmp    %ebx,0xffffffe8(%ebp)
   142c4:	eb b7                	jmp    1427d <_PollReeval+0x8d>
   142c6:	50                   	push   %eax
   142c7:	50                   	push   %eax
   142c8:	31 c0                	xor    %eax,%eax
   142ca:	8a 45 f3             	mov    0xfffffff3(%ebp),%al
   142cd:	50                   	push   %eax
   142ce:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   142d1:	50                   	push   %eax
   142d2:	ff 15 fc a0 01 00    	call   *0x1a0fc
   142d8:	eb d0                	jmp    142aa <_PollReeval+0xba>
   142da:	90                   	nop    
   142db:	90                   	nop    
   142dc:	90                   	nop    
   142dd:	90                   	nop    
   142de:	90                   	nop    
   142df:	90                   	nop    

000142e0 <__SEHCompilerSpecificHandler@4>:
static __declspec(noreturn) __inline void __stdcall _SEHCompilerSpecificHandler
(
 _SEHPortableFrame_t * frame
)
{
   142e0:	55                   	push   %ebp
   142e1:	89 e5                	mov    %esp,%ebp
   142e3:	83 ec 10             	sub    $0x10,%esp
 _SEHFrame_t * myframe;
 myframe = (_SEHFrame_t *)(((char *)frame) - offsetof(_SEHFrame_t, SEH_Header));
 _SEHLongJmp(myframe->SEH_JmpBuf, 1);
   142e6:	8b 45 08             	mov    0x8(%ebp),%eax
   142e9:	6a 01                	push   $0x1
   142eb:	83 c0 14             	add    $0x14,%eax
   142ee:	50                   	push   %eax
   142ef:	e8 8d 1b 00 00       	call   15e81 <SEHLongJmp>
   142f4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   142fa:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00014300 <_TdiCall>:
   14300:	55                   	push   %ebp
   14301:	89 e5                	mov    %esp,%ebp
   14303:	53                   	push   %ebx
   14304:	50                   	push   %eax
   14305:	8b 55 08             	mov    0x8(%ebp),%edx
   14308:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1430b:	8b 5d 10             	mov    0x10(%ebp),%ebx
   1430e:	ff 15 08 a1 01 00    	call   *0x1a108
   14314:	3d 03 01 00 00       	cmp    $0x103,%eax
   14319:	89 c1                	mov    %eax,%ecx
   1431b:	0f 94 c2             	sete   %dl
   1431e:	85 db                	test   %ebx,%ebx
   14320:	0f 95 c0             	setne  %al
   14323:	25 ff 00 00 00       	and    $0xff,%eax
   14328:	85 c2                	test   %eax,%edx
   1432a:	75 07                	jne    14333 <_TdiCall+0x33>
   1432c:	89 c8                	mov    %ecx,%eax
   1432e:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   14331:	c9                   	leave  
   14332:	c3                   	ret    
   14333:	83 ec 0c             	sub    $0xc,%esp
   14336:	6a 00                	push   $0x0
   14338:	6a 00                	push   $0x0
   1433a:	6a 01                	push   $0x1
   1433c:	6a 00                	push   $0x0
   1433e:	53                   	push   %ebx
   1433f:	ff 15 64 a1 01 00    	call   *0x1a164
   14345:	8b 45 14             	mov    0x14(%ebp),%eax
   14348:	83 c4 0c             	add    $0xc,%esp
   1434b:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1434e:	8b 08                	mov    (%eax),%ecx
   14350:	c9                   	leave  
   14351:	89 c8                	mov    %ecx,%eax
   14353:	c3                   	ret    
   14354:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1435a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00014360 <_TdiOpenDevice>:
   14360:	55                   	push   %ebp
   14361:	89 e5                	mov    %esp,%ebp
   14363:	56                   	push   %esi
   14364:	53                   	push   %ebx
   14365:	83 ec 34             	sub    $0x34,%esp
   14368:	c7 45 d8 18 00 00 00 	movl   $0x18,0xffffffd8(%ebp)
   1436f:	8b 45 08             	mov    0x8(%ebp),%eax
   14372:	8b 55 0c             	mov    0xc(%ebp),%edx
   14375:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   14378:	8b 45 10             	mov    0x10(%ebp),%eax
   1437b:	52                   	push   %edx
   1437c:	50                   	push   %eax
   1437d:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   14380:	6a 00                	push   $0x0
   14382:	8b 75 14             	mov    0x14(%ebp),%esi
   14385:	6a 03                	push   $0x3
   14387:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   1438e:	6a 03                	push   $0x3
   14390:	c7 45 e4 40 00 00 00 	movl   $0x40,0xffffffe4(%ebp)
   14397:	68 80 00 00 00       	push   $0x80
   1439c:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   143a3:	6a 00                	push   $0x0
   143a5:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   143ac:	50                   	push   %eax
   143ad:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   143b0:	50                   	push   %eax
   143b1:	68 00 00 10 c0       	push   $0xc0100000
   143b6:	56                   	push   %esi
   143b7:	ff 15 88 a1 01 00    	call   *0x1a188
   143bd:	89 c3                	mov    %eax,%ebx
   143bf:	58                   	pop    %eax
   143c0:	85 db                	test   %ebx,%ebx
   143c2:	78 22                	js     143e6 <_TdiOpenDevice+0x86>
   143c4:	50                   	push   %eax
   143c5:	50                   	push   %eax
   143c6:	8b 45 18             	mov    0x18(%ebp),%eax
   143c9:	6a 00                	push   $0x0
   143cb:	50                   	push   %eax
   143cc:	6a 00                	push   $0x0
   143ce:	6a 00                	push   $0x0
   143d0:	68 00 00 10 c0       	push   $0xc0100000
   143d5:	8b 06                	mov    (%esi),%eax
   143d7:	50                   	push   %eax
   143d8:	ff 15 7c a1 01 00    	call   *0x1a17c
   143de:	89 c3                	mov    %eax,%ebx
   143e0:	59                   	pop    %ecx
   143e1:	85 db                	test   %ebx,%ebx
   143e3:	58                   	pop    %eax
   143e4:	78 09                	js     143ef <_TdiOpenDevice+0x8f>
   143e6:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   143e9:	89 d8                	mov    %ebx,%eax
   143eb:	5b                   	pop    %ebx
   143ec:	5e                   	pop    %esi
   143ed:	5d                   	pop    %ebp
   143ee:	c3                   	ret    
   143ef:	83 ec 0c             	sub    $0xc,%esp
   143f2:	8b 16                	mov    (%esi),%edx
   143f4:	52                   	push   %edx
   143f5:	ff 15 84 a1 01 00    	call   *0x1a184
   143fb:	83 c4 0c             	add    $0xc,%esp
   143fe:	eb e6                	jmp    143e6 <_TdiOpenDevice+0x86>

00014400 <_TdiCloseDevice>:
   14400:	55                   	push   %ebp
   14401:	89 e5                	mov    %esp,%ebp
   14403:	53                   	push   %ebx
   14404:	51                   	push   %ecx
   14405:	8b 45 08             	mov    0x8(%ebp),%eax
   14408:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1440b:	85 c0                	test   %eax,%eax
   1440d:	74 0d                	je     1441c <_TdiCloseDevice+0x1c>
   1440f:	83 ec 0c             	sub    $0xc,%esp
   14412:	50                   	push   %eax
   14413:	ff 15 84 a1 01 00    	call   *0x1a184
   14419:	83 c4 0c             	add    $0xc,%esp
   1441c:	85 db                	test   %ebx,%ebx
   1441e:	74 08                	je     14428 <_TdiCloseDevice+0x28>
   14420:	89 d9                	mov    %ebx,%ecx
   14422:	ff 15 10 a1 01 00    	call   *0x1a110
   14428:	31 c0                	xor    %eax,%eax
   1442a:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1442d:	c9                   	leave  
   1442e:	c3                   	ret    
   1442f:	90                   	nop    

00014430 <_TdiOpenAddressFile>:
   14430:	55                   	push   %ebp
   14431:	89 e5                	mov    %esp,%ebp
   14433:	57                   	push   %edi
   14434:	56                   	push   %esi
   14435:	53                   	push   %ebx
   14436:	83 ec 18             	sub    $0x18,%esp
   14439:	8b 75 0c             	mov    0xc(%ebp),%esi
   1443c:	56                   	push   %esi
   1443d:	e8 1e 0f 00 00       	call   15360 <_TaLengthOfTransportAddress>
   14442:	8d 58 1d             	lea    0x1d(%eax),%ebx
   14445:	58                   	pop    %eax
   14446:	5a                   	pop    %edx
   14447:	53                   	push   %ebx
   14448:	6a 00                	push   $0x0
   1444a:	ff 15 18 a1 01 00    	call   *0x1a118
   14450:	5f                   	pop    %edi
   14451:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   14454:	58                   	pop    %eax
   14455:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   14458:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   1445d:	85 c9                	test   %ecx,%ecx
   1445f:	74 7c                	je     144dd <_TdiOpenAddressFile+0xad>
   14461:	fc                   	cld    
   14462:	89 d9                	mov    %ebx,%ecx
   14464:	31 c0                	xor    %eax,%eax
   14466:	c1 e9 02             	shr    $0x2,%ecx
   14469:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
   1446c:	f3 ab                	repz stos %eax,%es:(%edi)
   1446e:	f6 c3 02             	test   $0x2,%bl
   14471:	89 f8                	mov    %edi,%eax
   14473:	75 70                	jne    144e5 <_TdiOpenAddressFile+0xb5>
   14475:	f6 c3 01             	test   $0x1,%bl
   14478:	74 03                	je     1447d <_TdiOpenAddressFile+0x4d>
   1447a:	c6 00 00             	movb   $0x0,(%eax)
   1447d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   14480:	c6 40 05 10          	movb   $0x10,0x5(%eax)
   14484:	c7 40 08 54 72 61 6e 	movl   $0x6e617254,0x8(%eax)
   1448b:	c7 40 0c 73 70 6f 72 	movl   $0x726f7073,0xc(%eax)
   14492:	c7 40 10 74 41 64 64 	movl   $0x64644174,0x10(%eax)
   14499:	c7 40 14 72 65 73 73 	movl   $0x73736572,0x14(%eax)
   144a0:	66 c7 40 06 16 00    	movw   $0x16,0x6(%eax)
   144a6:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   144a9:	52                   	push   %edx
   144aa:	83 c0 19             	add    $0x19,%eax
   144ad:	52                   	push   %edx
   144ae:	56                   	push   %esi
   144af:	50                   	push   %eax
   144b0:	e8 2b 0f 00 00       	call   153e0 <_TaCopyTransportAddressInPlace>
   144b5:	58                   	pop    %eax
   144b6:	8b 45 14             	mov    0x14(%ebp),%eax
   144b9:	8b 7d 08             	mov    0x8(%ebp),%edi
   144bc:	50                   	push   %eax
   144bd:	8b 45 10             	mov    0x10(%ebp),%eax
   144c0:	50                   	push   %eax
   144c1:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   144c4:	50                   	push   %eax
   144c5:	53                   	push   %ebx
   144c6:	57                   	push   %edi
   144c7:	e8 94 fe ff ff       	call   14360 <_TdiOpenDevice>
   144cc:	83 c4 14             	add    $0x14,%esp
   144cf:	89 c3                	mov    %eax,%ebx
   144d1:	8b 75 f0             	mov    0xfffffff0(%ebp),%esi
   144d4:	56                   	push   %esi
   144d5:	ff 15 1c a1 01 00    	call   *0x1a11c
   144db:	89 d8                	mov    %ebx,%eax
   144dd:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   144e0:	5b                   	pop    %ebx
   144e1:	5e                   	pop    %esi
   144e2:	5f                   	pop    %edi
   144e3:	5d                   	pop    %ebp
   144e4:	c3                   	ret    
   144e5:	83 c0 02             	add    $0x2,%eax
   144e8:	66 c7 07 00 00       	movw   $0x0,(%edi)
   144ed:	eb 86                	jmp    14475 <_TdiOpenAddressFile+0x45>
   144ef:	90                   	nop    

000144f0 <_TdiOpenConnectionEndpointFile>:
   144f0:	55                   	push   %ebp
   144f1:	89 e5                	mov    %esp,%ebp
   144f3:	57                   	push   %edi
   144f4:	56                   	push   %esi
   144f5:	53                   	push   %ebx
   144f6:	83 ec 14             	sub    $0x14,%esp
   144f9:	6a 22                	push   $0x22
   144fb:	6a 00                	push   $0x0
   144fd:	ff 15 18 a1 01 00    	call   *0x1a118
   14503:	89 c6                	mov    %eax,%esi
   14505:	58                   	pop    %eax
   14506:	85 f6                	test   %esi,%esi
   14508:	5a                   	pop    %edx
   14509:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   1450e:	74 67                	je     14577 <_TdiOpenConnectionEndpointFile+0x87>
   14510:	fc                   	cld    
   14511:	31 c0                	xor    %eax,%eax
   14513:	b9 08 00 00 00       	mov    $0x8,%ecx
   14518:	89 f7                	mov    %esi,%edi
   1451a:	83 ec 0c             	sub    $0xc,%esp
   1451d:	f3 ab                	repz stos %eax,%es:(%edi)
   1451f:	66 c7 07 00 00       	movw   $0x0,(%edi)
   14524:	c6 46 05 11          	movb   $0x11,0x5(%esi)
   14528:	c7 46 08 43 6f 6e 6e 	movl   $0x6e6e6f43,0x8(%esi)
   1452f:	c7 46 0c 65 63 74 69 	movl   $0x69746365,0xc(%esi)
   14536:	c7 46 10 6f 6e 43 6f 	movl   $0x6f436e6f,0x10(%esi)
   1453d:	c7 46 14 6e 74 65 78 	movl   $0x7865746e,0x14(%esi)
   14544:	c6 46 18 74          	movb   $0x74,0x18(%esi)
   14548:	66 c7 46 06 04 00    	movw   $0x4,0x6(%esi)
   1454e:	c7 46 1a 00 00 00 00 	movl   $0x0,0x1a(%esi)
   14555:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   14558:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1455b:	8b 7d 10             	mov    0x10(%ebp),%edi
   1455e:	57                   	push   %edi
   1455f:	53                   	push   %ebx
   14560:	56                   	push   %esi
   14561:	6a 22                	push   $0x22
   14563:	51                   	push   %ecx
   14564:	e8 f7 fd ff ff       	call   14360 <_TdiOpenDevice>
   14569:	83 c4 14             	add    $0x14,%esp
   1456c:	89 c3                	mov    %eax,%ebx
   1456e:	56                   	push   %esi
   1456f:	ff 15 1c a1 01 00    	call   *0x1a11c
   14575:	89 d8                	mov    %ebx,%eax
   14577:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1457a:	5b                   	pop    %ebx
   1457b:	5e                   	pop    %esi
   1457c:	5f                   	pop    %edi
   1457d:	5d                   	pop    %ebp
   1457e:	c3                   	ret    
   1457f:	90                   	nop    

00014580 <_TdiConnect>:
   14580:	55                   	push   %ebp
   14581:	89 e5                	mov    %esp,%ebp
   14583:	57                   	push   %edi
   14584:	56                   	push   %esi
   14585:	53                   	push   %ebx
   14586:	83 ec 28             	sub    $0x28,%esp
   14589:	8b 45 10             	mov    0x10(%ebp),%eax
   1458c:	8b 55 14             	mov    0x14(%ebp),%edx
   1458f:	8b 4d 18             	mov    0x18(%ebp),%ecx
   14592:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   14595:	8b 45 1c             	mov    0x1c(%ebp),%eax
   14598:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
   1459b:	89 4d e8             	mov    %ecx,0xffffffe8(%ebp)
   1459e:	8b 7d 0c             	mov    0xc(%ebp),%edi
   145a1:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   145a4:	8b 75 08             	mov    0x8(%ebp),%esi
   145a7:	57                   	push   %edi
   145a8:	ff 15 38 a1 01 00    	call   *0x1a138
   145ae:	89 c3                	mov    %eax,%ebx
   145b0:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   145b3:	50                   	push   %eax
   145b4:	6a 00                	push   $0x0
   145b6:	6a 01                	push   $0x1
   145b8:	6a 00                	push   $0x0
   145ba:	6a 00                	push   $0x0
   145bc:	6a 00                	push   $0x0
   145be:	6a 00                	push   $0x0
   145c0:	53                   	push   %ebx
   145c1:	6a 03                	push   $0x3
   145c3:	ff 15 24 a1 01 00    	call   *0x1a124
   145c9:	83 c4 0c             	add    $0xc,%esp
   145cc:	85 c0                	test   %eax,%eax
   145ce:	89 06                	mov    %eax,(%esi)
   145d0:	0f 84 86 00 00 00    	je     1465c <_TdiConnect+0xdc>
   145d6:	8b 40 60             	mov    0x60(%eax),%eax
   145d9:	8d 50 dc             	lea    0xffffffdc(%eax),%edx
   145dc:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   145e0:	c6 42 01 03          	movb   $0x3,0x1(%edx)
   145e4:	89 5a 14             	mov    %ebx,0x14(%edx)
   145e7:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   145ea:	89 7a 18             	mov    %edi,0x18(%edx)
   145ed:	85 c9                	test   %ecx,%ecx
   145ef:	74 4f                	je     14640 <_TdiConnect+0xc0>
   145f1:	8b 06                	mov    (%esi),%eax
   145f3:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   145f6:	8b 40 60             	mov    0x60(%eax),%eax
   145f9:	83 e8 24             	sub    $0x24,%eax
   145fc:	89 48 1c             	mov    %ecx,0x1c(%eax)
   145ff:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
   14602:	89 48 20             	mov    %ecx,0x20(%eax)
   14605:	c6 40 03 e0          	movb   $0xe0,0x3(%eax)
   14609:	8d 42 04             	lea    0x4(%edx),%eax
   1460c:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   1460f:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   14612:	89 50 04             	mov    %edx,0x4(%eax)
   14615:	89 50 08             	mov    %edx,0x8(%eax)
   14618:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
   1461f:	89 4d 14             	mov    %ecx,0x14(%ebp)
   14622:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
   14629:	89 5d 0c             	mov    %ebx,0xc(%ebp)
   1462c:	8b 06                	mov    (%esi),%eax
   1462e:	89 45 08             	mov    %eax,0x8(%ebp)
   14631:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14634:	5b                   	pop    %ebx
   14635:	5e                   	pop    %esi
   14636:	5f                   	pop    %edi
   14637:	5d                   	pop    %ebp
   14638:	e9 c3 fc ff ff       	jmp    14300 <_TdiCall>
   1463d:	8d 76 00             	lea    0x0(%esi),%esi
   14640:	8b 06                	mov    (%esi),%eax
   14642:	8b 40 60             	mov    0x60(%eax),%eax
   14645:	83 e8 24             	sub    $0x24,%eax
   14648:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   1464f:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   14656:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   1465a:	eb ad                	jmp    14609 <_TdiConnect+0x89>
   1465c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1465f:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   14664:	5b                   	pop    %ebx
   14665:	5e                   	pop    %esi
   14666:	5f                   	pop    %edi
   14667:	5d                   	pop    %ebp
   14668:	c3                   	ret    
   14669:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014670 <_TdiAssociateAddressFile>:
   14670:	55                   	push   %ebp
   14671:	89 e5                	mov    %esp,%ebp
   14673:	57                   	push   %edi
   14674:	56                   	push   %esi
   14675:	53                   	push   %ebx
   14676:	83 ec 38             	sub    $0x38,%esp
   14679:	8d 75 d8             	lea    0xffffffd8(%ebp),%esi
   1467c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1467f:	51                   	push   %ecx
   14680:	ff 15 38 a1 01 00    	call   *0x1a138
   14686:	89 c3                	mov    %eax,%ebx
   14688:	58                   	pop    %eax
   14689:	5a                   	pop    %edx
   1468a:	6a 00                	push   $0x0
   1468c:	6a 00                	push   $0x0
   1468e:	56                   	push   %esi
   1468f:	ff 15 4c a1 01 00    	call   *0x1a14c
   14695:	50                   	push   %eax
   14696:	50                   	push   %eax
   14697:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   1469a:	50                   	push   %eax
   1469b:	56                   	push   %esi
   1469c:	6a 01                	push   $0x1
   1469e:	6a 00                	push   $0x0
   146a0:	6a 00                	push   $0x0
   146a2:	6a 00                	push   $0x0
   146a4:	6a 00                	push   $0x0
   146a6:	53                   	push   %ebx
   146a7:	6a 03                	push   $0x3
   146a9:	ff 15 24 a1 01 00    	call   *0x1a124
   146af:	89 c1                	mov    %eax,%ecx
   146b1:	83 c4 0c             	add    $0xc,%esp
   146b4:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   146b9:	85 c9                	test   %ecx,%ecx
   146bb:	74 41                	je     146fe <_TdiAssociateAddressFile+0x8e>
   146bd:	8b 51 60             	mov    0x60(%ecx),%edx
   146c0:	8d 42 dc             	lea    0xffffffdc(%edx),%eax
   146c3:	c6 42 dc 0f          	movb   $0xf,0xffffffdc(%edx)
   146c7:	c6 40 01 01          	movb   $0x1,0x1(%eax)
   146cb:	89 58 14             	mov    %ebx,0x14(%eax)
   146ce:	8b 7d 0c             	mov    0xc(%ebp),%edi
   146d1:	89 78 18             	mov    %edi,0x18(%eax)
   146d4:	8b 41 60             	mov    0x60(%ecx),%eax
   146d7:	83 e8 24             	sub    $0x24,%eax
   146da:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   146de:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   146e5:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   146ec:	8b 45 08             	mov    0x8(%ebp),%eax
   146ef:	89 42 e0             	mov    %eax,0xffffffe0(%edx)
   146f2:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   146f5:	50                   	push   %eax
   146f6:	56                   	push   %esi
   146f7:	53                   	push   %ebx
   146f8:	51                   	push   %ecx
   146f9:	e8 02 fc ff ff       	call   14300 <_TdiCall>
   146fe:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14701:	5b                   	pop    %ebx
   14702:	5e                   	pop    %esi
   14703:	5f                   	pop    %edi
   14704:	5d                   	pop    %ebp
   14705:	c3                   	ret    
   14706:	8d 76 00             	lea    0x0(%esi),%esi
   14709:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014710 <_TdiListen>:
   14710:	55                   	push   %ebp
   14711:	89 e5                	mov    %esp,%ebp
   14713:	57                   	push   %edi
   14714:	56                   	push   %esi
   14715:	53                   	push   %ebx
   14716:	83 ec 28             	sub    $0x28,%esp
   14719:	8b 45 0c             	mov    0xc(%ebp),%eax
   1471c:	8b 55 14             	mov    0x14(%ebp),%edx
   1471f:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   14722:	8b 45 18             	mov    0x18(%ebp),%eax
   14725:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
   14728:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   1472b:	8b 55 1c             	mov    0x1c(%ebp),%edx
   1472e:	8b 45 20             	mov    0x20(%ebp),%eax
   14731:	89 55 e4             	mov    %edx,0xffffffe4(%ebp)
   14734:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   14737:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   1473a:	8b 75 10             	mov    0x10(%ebp),%esi
   1473d:	8b 7d 08             	mov    0x8(%ebp),%edi
   14740:	50                   	push   %eax
   14741:	ff 15 38 a1 01 00    	call   *0x1a138
   14747:	89 c3                	mov    %eax,%ebx
   14749:	c7 04 24 02 00 00 00 	movl   $0x2,(%esp)
   14750:	56                   	push   %esi
   14751:	e8 7a 0d 00 00       	call   154d0 <_TdiBuildNullConnectionInfo>
   14756:	83 c4 10             	add    $0x10,%esp
   14759:	85 c0                	test   %eax,%eax
   1475b:	0f 88 a4 00 00 00    	js     14805 <_TdiListen+0xf5>
   14761:	83 ec 0c             	sub    $0xc,%esp
   14764:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   14767:	50                   	push   %eax
   14768:	6a 00                	push   $0x0
   1476a:	6a 01                	push   $0x1
   1476c:	6a 00                	push   $0x0
   1476e:	6a 00                	push   $0x0
   14770:	6a 00                	push   $0x0
   14772:	6a 00                	push   $0x0
   14774:	53                   	push   %ebx
   14775:	6a 03                	push   $0x3
   14777:	ff 15 24 a1 01 00    	call   *0x1a124
   1477d:	83 c4 0c             	add    $0xc,%esp
   14780:	85 c0                	test   %eax,%eax
   14782:	89 07                	mov    %eax,(%edi)
   14784:	74 6e                	je     147f4 <_TdiListen+0xe4>
   14786:	8b 40 60             	mov    0x60(%eax),%eax
   14789:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   1478c:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   14790:	c6 41 01 04          	movb   $0x4,0x1(%ecx)
   14794:	89 59 14             	mov    %ebx,0x14(%ecx)
   14797:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   1479a:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   1479d:	89 51 18             	mov    %edx,0x18(%ecx)
   147a0:	85 c0                	test   %eax,%eax
   147a2:	74 6c                	je     14810 <_TdiListen+0x100>
   147a4:	8b 07                	mov    (%edi),%eax
   147a6:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   147a9:	8b 40 60             	mov    0x60(%eax),%eax
   147ac:	83 e8 24             	sub    $0x24,%eax
   147af:	89 50 1c             	mov    %edx,0x1c(%eax)
   147b2:	8b 55 e0             	mov    0xffffffe0(%ebp),%edx
   147b5:	89 50 20             	mov    %edx,0x20(%eax)
   147b8:	c6 40 03 e0          	movb   $0xe0,0x3(%eax)
   147bc:	8d 51 04             	lea    0x4(%ecx),%edx
   147bf:	8b 06                	mov    (%esi),%eax
   147c1:	8b 75 ec             	mov    0xffffffec(%ebp),%esi
   147c4:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
   147cb:	89 42 04             	mov    %eax,0x4(%edx)
   147ce:	8b 06                	mov    (%esi),%eax
   147d0:	89 42 08             	mov    %eax,0x8(%edx)
                 CompletionContext,      /* Completion routine context */
                 0,                      /* Flags */
                 *RequestConnectionInfo, /* Request connection information */
		 *ReturnConnectionInfo);  /* Return connection information */

  Status = TdiCall(*Irp, DeviceObject, NULL /* Don't wait for completion */, Iosb);
   147d3:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   147d6:	89 45 14             	mov    %eax,0x14(%ebp)
   147d9:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
   147e0:	89 5d 0c             	mov    %ebx,0xc(%ebp)
   147e3:	8b 07                	mov    (%edi),%eax
   147e5:	89 45 08             	mov    %eax,0x8(%ebp)
  
  return Status;
}
   147e8:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   147eb:	5b                   	pop    %ebx
   147ec:	5e                   	pop    %esi
   147ed:	5f                   	pop    %edi
   147ee:	5d                   	pop    %ebp
   147ef:	e9 0c fb ff ff       	jmp    14300 <_TdiCall>
   147f4:	83 ec 0c             	sub    $0xc,%esp
   147f7:	8b 06                	mov    (%esi),%eax
   147f9:	50                   	push   %eax
   147fa:	ff 15 1c a1 01 00    	call   *0x1a11c
   14800:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   14805:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14808:	5b                   	pop    %ebx
   14809:	5e                   	pop    %esi
   1480a:	5f                   	pop    %edi
   1480b:	5d                   	pop    %ebp
   1480c:	c3                   	ret    
   1480d:	8d 76 00             	lea    0x0(%esi),%esi
   14810:	8b 07                	mov    (%edi),%eax
   14812:	8b 40 60             	mov    0x60(%eax),%eax
   14815:	83 e8 24             	sub    $0x24,%eax
   14818:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   1481f:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   14826:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   1482a:	eb 90                	jmp    147bc <_TdiListen+0xac>
   1482c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014830 <_TdiSetEventHandler>:


NTSTATUS TdiSetEventHandler(
    PFILE_OBJECT FileObject,
    LONG EventType,
    PVOID Handler,
    PVOID Context)
/*
 * FUNCTION: Sets or resets an event handler
 * ARGUMENTS:
 *     FileObject = Pointer to file object
 *     EventType  = Event code
 *     Handler    = Event handler to be called when the event occurs
 *     Context    = Context input to handler when the event occurs
 * RETURNS:
 *     Status of operation
 * NOTES:
 *     Specify NULL for Handler to stop calling event handler
 */
{
   14830:	55                   	push   %ebp
   14831:	89 e5                	mov    %esp,%ebp
   14833:	57                   	push   %edi
   14834:	56                   	push   %esi
   14835:	53                   	push   %ebx
   14836:	83 ec 38             	sub    $0x38,%esp
  PDEVICE_OBJECT DeviceObject;
  IO_STATUS_BLOCK Iosb;
  NTSTATUS Status;
  KEVENT Event;
  PIRP Irp;

  AFD_DbgPrint(MAX_TRACE, ("Called\n"));

  assert(FileObject);

  DeviceObject = IoGetRelatedDeviceObject(FileObject);

  KeInitializeEvent(&Event, NotificationEvent, FALSE);
   14839:	8d 7d d8             	lea    0xffffffd8(%ebp),%edi
   1483c:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1483f:	51                   	push   %ecx
   14840:	ff 15 38 a1 01 00    	call   *0x1a138
   14846:	89 c6                	mov    %eax,%esi
   14848:	58                   	pop    %eax
   14849:	5a                   	pop    %edx
   1484a:	6a 00                	push   $0x0
   1484c:	6a 00                	push   $0x0
   1484e:	57                   	push   %edi
   1484f:	ff 15 4c a1 01 00    	call   *0x1a14c

  Irp = TdiBuildInternalDeviceControlIrp(TDI_SET_EVENT_HANDLER,   /* Sub function */
   14855:	50                   	push   %eax
   14856:	50                   	push   %eax
   14857:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   1485a:	50                   	push   %eax
   1485b:	57                   	push   %edi
   1485c:	6a 01                	push   $0x1
   1485e:	6a 00                	push   $0x0
   14860:	6a 00                	push   $0x0
   14862:	6a 00                	push   $0x0
   14864:	6a 00                	push   $0x0
   14866:	56                   	push   %esi
   14867:	6a 03                	push   $0x3
   14869:	ff 15 24 a1 01 00    	call   *0x1a124
   1486f:	89 c3                	mov    %eax,%ebx
                                         DeviceObject,            /* Device object */
                                         FileObject,              /* File object */
                                         &Event,                  /* Event */
                                         &Iosb);                  /* Status */
  if (!Irp)
   14871:	83 c4 0c             	add    $0xc,%esp
    return STATUS_INSUFFICIENT_RESOURCES;
   14874:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   14879:	85 db                	test   %ebx,%ebx
   1487b:	74 50                	je     148cd <_TdiSetEventHandler+0x9d>



  TdiBuildSetEventHandler(Irp,
   1487d:	8b 53 60             	mov    0x60(%ebx),%edx
   14880:	8d 42 dc             	lea    0xffffffdc(%edx),%eax
   14883:	c6 42 dc 0f          	movb   $0xf,0xffffffdc(%edx)
   14887:	c6 40 01 0b          	movb   $0xb,0x1(%eax)
   1488b:	89 70 14             	mov    %esi,0x14(%eax)
   1488e:	8b 4d 08             	mov    0x8(%ebp),%ecx
   14891:	89 48 18             	mov    %ecx,0x18(%eax)
   14894:	8d 4a e0             	lea    0xffffffe0(%edx),%ecx
   14897:	8b 43 60             	mov    0x60(%ebx),%eax
   1489a:	83 e8 24             	sub    $0x24,%eax
   1489d:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   148a1:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   148a8:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   148af:	8b 45 0c             	mov    0xc(%ebp),%eax
   148b2:	89 42 e0             	mov    %eax,0xffffffe0(%edx)
   148b5:	8b 45 10             	mov    0x10(%ebp),%eax
   148b8:	89 41 04             	mov    %eax,0x4(%ecx)
   148bb:	8b 45 14             	mov    0x14(%ebp),%eax
   148be:	89 41 08             	mov    %eax,0x8(%ecx)
                          DeviceObject,
                          FileObject,
                          NULL,
                          NULL,
                          EventType,
                          Handler,
                          Context);

  Status = TdiCall(Irp, DeviceObject, &Event, &Iosb);
   148c1:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   148c4:	50                   	push   %eax
   148c5:	57                   	push   %edi
   148c6:	56                   	push   %esi
   148c7:	53                   	push   %ebx
   148c8:	e8 33 fa ff ff       	call   14300 <_TdiCall>

  return Status;
}
   148cd:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   148d0:	5b                   	pop    %ebx
   148d1:	5e                   	pop    %esi
   148d2:	5f                   	pop    %edi
   148d3:	5d                   	pop    %ebp
   148d4:	c3                   	ret    
   148d5:	8d 74 26 00          	lea    0x0(%esi),%esi
   148d9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000148e0 <_TdiQueryDeviceControl>:


NTSTATUS TdiQueryDeviceControl(
    PFILE_OBJECT FileObject,
    ULONG IoControlCode,
    PVOID InputBuffer,
    ULONG InputBufferLength,
    PVOID OutputBuffer,
    ULONG OutputBufferLength,
    PULONG Return)
/*
 * FUNCTION: Queries a device for information
 * ARGUMENTS:
 *     FileObject         = Pointer to file object
 *     IoControlCode      = I/O control code
 *     InputBuffer        = Pointer to buffer with input data
 *     InputBufferLength  = Length of InputBuffer
 *     OutputBuffer       = Address of buffer to place output data
 *     OutputBufferLength = Length of OutputBuffer
 * RETURNS:
 *     Status of operation
 */
{
   148e0:	55                   	push   %ebp
   148e1:	89 e5                	mov    %esp,%ebp
   148e3:	57                   	push   %edi
   148e4:	56                   	push   %esi
   148e5:	53                   	push   %ebx
   148e6:	83 ec 38             	sub    $0x38,%esp
    PDEVICE_OBJECT DeviceObject;
    IO_STATUS_BLOCK Iosb;
    NTSTATUS Status;
    KEVENT Event;
    PIRP Irp;

    DeviceObject = IoGetRelatedDeviceObject(FileObject);

    KeInitializeEvent(&Event, NotificationEvent, FALSE);

    Irp = IoBuildDeviceIoControlRequest(IoControlCode,
   148e9:	8d 7d d0             	lea    0xffffffd0(%ebp),%edi
   148ec:	8b 5d 08             	mov    0x8(%ebp),%ebx
   148ef:	53                   	push   %ebx
   148f0:	ff 15 38 a1 01 00    	call   *0x1a138
   148f6:	8d 5d d8             	lea    0xffffffd8(%ebp),%ebx
   148f9:	5a                   	pop    %edx
   148fa:	59                   	pop    %ecx
   148fb:	89 c6                	mov    %eax,%esi
   148fd:	6a 00                	push   $0x0
   148ff:	6a 00                	push   $0x0
   14901:	53                   	push   %ebx
   14902:	ff 15 4c a1 01 00    	call   *0x1a14c
   14908:	50                   	push   %eax
   14909:	50                   	push   %eax
   1490a:	8b 45 1c             	mov    0x1c(%ebp),%eax
   1490d:	57                   	push   %edi
   1490e:	53                   	push   %ebx
   1490f:	6a 00                	push   $0x0
   14911:	50                   	push   %eax
   14912:	8b 45 18             	mov    0x18(%ebp),%eax
   14915:	50                   	push   %eax
   14916:	8b 45 14             	mov    0x14(%ebp),%eax
   14919:	50                   	push   %eax
   1491a:	8b 45 10             	mov    0x10(%ebp),%eax
   1491d:	50                   	push   %eax
   1491e:	8b 45 0c             	mov    0xc(%ebp),%eax
   14921:	56                   	push   %esi
   14922:	50                   	push   %eax
   14923:	ff 15 24 a1 01 00    	call   *0x1a124
                                        DeviceObject,
                                        InputBuffer,
                                        InputBufferLength,
                                        OutputBuffer,
                                        OutputBufferLength,
                                        FALSE,
                                        &Event,
                                        &Iosb);
    if (!Irp)
        return STATUS_INSUFFICIENT_RESOURCES;
   14929:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   1492e:	83 c4 0c             	add    $0xc,%esp
   14931:	85 c0                	test   %eax,%eax
   14933:	74 1d                	je     14952 <_TdiQueryDeviceControl+0x72>
 
    Status = TdiCall(Irp, DeviceObject, &Event, &Iosb);
   14935:	57                   	push   %edi
   14936:	53                   	push   %ebx
   14937:	56                   	push   %esi
   14938:	50                   	push   %eax
   14939:	e8 c2 f9 ff ff       	call   14300 <_TdiCall>

    if (Return)
   1493e:	8b 5d 20             	mov    0x20(%ebp),%ebx
   14941:	83 c4 10             	add    $0x10,%esp
   14944:	89 c2                	mov    %eax,%edx
   14946:	85 db                	test   %ebx,%ebx
   14948:	74 08                	je     14952 <_TdiQueryDeviceControl+0x72>
        *Return = Iosb.Information;
   1494a:	8b 4d 20             	mov    0x20(%ebp),%ecx
   1494d:	8b 45 d4             	mov    0xffffffd4(%ebp),%eax
   14950:	89 01                	mov    %eax,(%ecx)

    return Status;
}
   14952:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14955:	89 d0                	mov    %edx,%eax
   14957:	5b                   	pop    %ebx
   14958:	5e                   	pop    %esi
   14959:	5f                   	pop    %edi
   1495a:	5d                   	pop    %ebp
   1495b:	c3                   	ret    
   1495c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014960 <_TdiQueryInformation>:


NTSTATUS TdiQueryInformation(
    PFILE_OBJECT FileObject,
    LONG QueryType,
    PMDL MdlBuffer)
/*
 * FUNCTION: Query for information
 * ARGUMENTS:
 *     FileObject   = Pointer to file object
 *     QueryType    = Query type
 *     MdlBuffer    = Pointer to MDL buffer specific for query type
 * RETURNS:
 *     Status of operation
 */
{
   14960:	55                   	push   %ebp
   14961:	89 e5                	mov    %esp,%ebp
   14963:	57                   	push   %edi
   14964:	56                   	push   %esi
   14965:	53                   	push   %ebx
   14966:	83 ec 38             	sub    $0x38,%esp
    PDEVICE_OBJECT DeviceObject;
    IO_STATUS_BLOCK Iosb;
    NTSTATUS Status;
    KEVENT Event;
    PIRP Irp;

    DeviceObject = IoGetRelatedDeviceObject(FileObject);

    KeInitializeEvent(&Event, NotificationEvent, FALSE);
   14969:	8d 75 d8             	lea    0xffffffd8(%ebp),%esi
   1496c:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1496f:	51                   	push   %ecx
   14970:	ff 15 38 a1 01 00    	call   *0x1a138
   14976:	89 c3                	mov    %eax,%ebx
   14978:	58                   	pop    %eax
   14979:	5a                   	pop    %edx
   1497a:	6a 00                	push   $0x0
   1497c:	6a 00                	push   $0x0
   1497e:	56                   	push   %esi
   1497f:	ff 15 4c a1 01 00    	call   *0x1a14c

    Irp = TdiBuildInternalDeviceControlIrp(IOCTL_TCP_QUERY_INFORMATION, /* Sub function */
   14985:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   14988:	57                   	push   %edi
   14989:	57                   	push   %edi
   1498a:	50                   	push   %eax
   1498b:	56                   	push   %esi
   1498c:	6a 01                	push   $0x1
   1498e:	6a 00                	push   $0x0
   14990:	6a 00                	push   $0x0
   14992:	6a 00                	push   $0x0
   14994:	6a 00                	push   $0x0
   14996:	53                   	push   %ebx
   14997:	6a 03                	push   $0x3
   14999:	ff 15 24 a1 01 00    	call   *0x1a124
   1499f:	89 c1                	mov    %eax,%ecx
                                           DeviceObject,                /* Device object */
                                           ConnectionObject,            /* File object */
                                           &Event,                      /* Event */
                                           &Iosb);                      /* Status */
    if (!Irp) {
   149a1:	83 c4 0c             	add    $0xc,%esp
      return STATUS_INSUFFICIENT_RESOURCES;
   149a4:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   149a9:	85 c9                	test   %ecx,%ecx
   149ab:	74 4e                	je     149fb <_TdiQueryInformation+0x9b>
    }

    TdiBuildQueryInformation(
   149ad:	8b 51 60             	mov    0x60(%ecx),%edx
   149b0:	8d 42 dc             	lea    0xffffffdc(%edx),%eax
   149b3:	c6 42 dc 0f          	movb   $0xf,0xffffffdc(%edx)
   149b7:	c6 40 01 0c          	movb   $0xc,0x1(%eax)
   149bb:	89 58 14             	mov    %ebx,0x14(%eax)
   149be:	8b 7d 08             	mov    0x8(%ebp),%edi
   149c1:	89 78 18             	mov    %edi,0x18(%eax)
   149c4:	8b 41 60             	mov    0x60(%ecx),%eax
   149c7:	83 e8 24             	sub    $0x24,%eax
   149ca:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   149ce:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   149d5:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   149dc:	8b 45 0c             	mov    0xc(%ebp),%eax
   149df:	89 42 e0             	mov    %eax,0xffffffe0(%edx)
   149e2:	8b 45 10             	mov    0x10(%ebp),%eax
   149e5:	89 41 04             	mov    %eax,0x4(%ecx)
   149e8:	c7 42 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%edx)
      Irp,
      DeviceObject,
      FileObject,
      NULL,
      NULL,
      QueryType,
      MdlBuffer);
    
    Status = TdiCall(Irp, DeviceObject, &Event, &Iosb);
   149ef:	8d 45 d0             	lea    0xffffffd0(%ebp),%eax
   149f2:	50                   	push   %eax
   149f3:	56                   	push   %esi
   149f4:	53                   	push   %ebx
   149f5:	51                   	push   %ecx
   149f6:	e8 05 f9 ff ff       	call   14300 <_TdiCall>

    return Status;
}
   149fb:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   149fe:	5b                   	pop    %ebx
   149ff:	5e                   	pop    %esi
   14a00:	5f                   	pop    %edi
   14a01:	5d                   	pop    %ebp
   14a02:	c3                   	ret    
   14a03:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   14a09:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014a10 <_TdiSend>:

#if 0
NTSTATUS TdiQueryInformationEx(
    PFILE_OBJECT FileObject,
    ULONG Entity,
    ULONG Instance,
    ULONG Class,
    ULONG Type,
    ULONG Id,
    PVOID OutputBuffer,
    PULONG OutputLength)
/*
 * FUNCTION: Extended query for information
 * ARGUMENTS:
 *     FileObject   = Pointer to file object
 *     Entity       = Entity
 *     Instance     = Instance
 *     Class        = Entity class
 *     Type         = Entity type
 *     Id           = Entity id
 *     OutputBuffer = Address of buffer to place data
 *     OutputLength = Address of buffer with length of OutputBuffer (updated)
 * RETURNS:
 *     Status of operation
 */
{
    TCP_REQUEST_QUERY_INFORMATION_EX QueryInfo;

    RtlZeroMemory(&QueryInfo, sizeof(TCP_REQUEST_QUERY_INFORMATION_EX));
    QueryInfo.ID.toi_entity.tei_entity   = Entity;
    QueryInfo.ID.toi_entity.tei_instance = Instance;
    QueryInfo.ID.toi_class = Class;
    QueryInfo.ID.toi_type  = Type;
    QueryInfo.ID.toi_id    = Id;

    return TdiQueryDeviceControl(FileObject,                                /* Transport/connection object */
                                 IOCTL_TCP_QUERY_INFORMATION_EX,            /* Control code */
                                 &QueryInfo,                                /* Input buffer */
                                 sizeof(TCP_REQUEST_QUERY_INFORMATION_EX),  /* Input buffer length */
                                 OutputBuffer,                              /* Output buffer */
                                 *OutputLength,                             /* Output buffer length */
                                 OutputLength);                             /* Return information */
}

NTSTATUS TdiQueryAddress(
    PFILE_OBJECT FileObject,
    PULONG Address)
/*
 * FUNCTION: Queries for a local IP address
 * ARGUMENTS:
 *     FileObject = Pointer to file object
 *     Address    = Address of buffer to place local address
 * RETURNS:
 *     Status of operation
 */
{
    UINT i;
    TDIEntityID *Entities;
    ULONG EntityCount;
    ULONG EntityType;
    IPSNMP_INFO SnmpInfo;
    PIPADDR_ENTRY IpAddress;
    ULONG BufferSize;
    NTSTATUS Status = STATUS_SUCCESS;

    AFD_DbgPrint(MAX_TRACE, ("Called\n"));

    BufferSize = sizeof(TDIEntityID) * 20;
    Entities   = (TDIEntityID*)ExAllocatePool(NonPagedPool, BufferSize);
    if (!Entities) {
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    /* Query device for supported entities */

    Status = TdiQueryInformationEx(FileObject,          /* File object */
                                   GENERIC_ENTITY,      /* Entity */
                                   TL_INSTANCE,         /* Instance */
                                   INFO_CLASS_GENERIC,  /* Entity class */
                                   INFO_TYPE_PROVIDER,  /* Entity type */
                                   ENTITY_LIST_ID,      /* Entity id */
                                   Entities,            /* Output buffer */
                                   &BufferSize);        /* Output buffer size */
    if (!NT_SUCCESS(Status)) {
        AFD_DbgPrint(MIN_TRACE, ("Unable to get list of supported entities (Status = 0x%X).\n", Status));
        ExFreePool(Entities);
        return Status;
    }

    /* Locate an IP entity */
    EntityCount = BufferSize / sizeof(TDIEntityID);

    AFD_DbgPrint(MAX_TRACE, ("EntityCount = %d\n", EntityCount));

    for (i = 0; i < EntityCount; i++) {
        if (Entities[i].tei_entity == CL_NL_ENTITY) {
            /* Query device for entity type */

            BufferSize = sizeof(EntityType);
            Status = TdiQueryInformationEx(FileObject,                  /* File object */
                                           CL_NL_ENTITY,                /* Entity */
                                           Entities[i].tei_instance,    /* Instance */
                                           INFO_CLASS_GENERIC,          /* Entity class */
                                           INFO_TYPE_PROVIDER,          /* Entity type */
                                           ENTITY_TYPE_ID,              /* Entity id */
                                           &EntityType,                 /* Output buffer */
                                           &BufferSize);                /* Output buffer size */
            if (!NT_SUCCESS(Status) || (EntityType != CL_NL_IP)) {
                AFD_DbgPrint(MIN_TRACE, ("Unable to get entity of type IP (Status = 0x%X).\n", Status));
                break;
            }

            /* Query device for SNMP information */

            BufferSize = sizeof(SnmpInfo);
            Status = TdiQueryInformationEx(FileObject,                  /* File object */
                                           CL_NL_ENTITY,                /* Entity */
                                           Entities[i].tei_instance,    /* Instance */
                                           INFO_CLASS_PROTOCOL,         /* Entity class */
                                           INFO_TYPE_PROVIDER,          /* Entity type */
                                           IP_MIB_STATS_ID,             /* Entity id */
                                           &SnmpInfo,                   /* Output buffer */
                                           &BufferSize);                /* Output buffer size */
            if (!NT_SUCCESS(Status) || (SnmpInfo.NumAddr == 0)) {
                AFD_DbgPrint(MIN_TRACE, ("Unable to get SNMP information or no IP addresses available (Status = 0x%X).\n", Status));
                break;
            }

            /* Query device for all IP addresses */

            if (SnmpInfo.NumAddr != 0) {
                BufferSize = SnmpInfo.NumAddr * sizeof(IPADDR_ENTRY);
                IpAddress = (PIPADDR_ENTRY)ExAllocatePool(NonPagedPool, BufferSize);
                if (!IpAddress) {
                    AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
                    break;
                }

                Status = TdiQueryInformationEx(FileObject,                  /* File object */
                                               CL_NL_ENTITY,                /* Entity */
                                               Entities[i].tei_instance,    /* Instance */
                                               INFO_CLASS_PROTOCOL,         /* Entity class */
                                               INFO_TYPE_PROVIDER,          /* Entity type */
                                               IP_MIB_ADDRTABLE_ENTRY_ID,   /* Entity id */
                                               IpAddress,                   /* Output buffer */
                                               &BufferSize);                /* Output buffer size */
                if (!NT_SUCCESS(Status)) {
                    AFD_DbgPrint(MIN_TRACE, ("Unable to get IP address (Status = 0x%X).\n", Status));
                    ExFreePool(IpAddress);
                    break;
                }

                if (SnmpInfo.NumAddr != 1) {
                    /* Skip loopback address */
		    PIPADDR_ENTRY IpAddressEntry = (PIPADDR_ENTRY)
			((PCHAR)IpAddress) + sizeof(IPADDR_ENTRY);
                    *Address = DN2H(IpAddressEntry->Addr);
                } else {
                    /* Select the first address returned */
                    *Address = DN2H(IpAddress->Addr);
                }

                ExFreePool(IpAddress);
            } else {
                Status = STATUS_UNSUCCESSFUL;
                break;
            }
        }
    }

    ExFreePool(Entities);

    AFD_DbgPrint(MAX_TRACE, ("Leaving\n"));

    return Status;
}
#endif

NTSTATUS TdiSend
( PIRP *Irp,
  PFILE_OBJECT TransportObject,
  USHORT Flags,
  PCHAR Buffer,
  UINT BufferLength,
  PIO_STATUS_BLOCK Iosb,
  PIO_COMPLETION_ROUTINE CompletionRoutine,
  PVOID CompletionContext )
{
   14a10:	55                   	push   %ebp
   14a11:	89 e5                	mov    %esp,%ebp
   14a13:	57                   	push   %edi
   14a14:	56                   	push   %esi
   14a15:	53                   	push   %ebx
   14a16:	83 ec 38             	sub    $0x38,%esp
    PDEVICE_OBJECT DeviceObject;
    NTSTATUS Status = STATUS_SUCCESS;
   14a19:	c7 45 d0 00 00 00 00 	movl   $0x0,0xffffffd0(%ebp)
   14a20:	8b 45 10             	mov    0x10(%ebp),%eax
   14a23:	66 89 45 d6          	mov    %ax,0xffffffd6(%ebp)
    PMDL Mdl;

    DeviceObject = IoGetRelatedDeviceObject(TransportObject);
   14a27:	8b 45 0c             	mov    0xc(%ebp),%eax
   14a2a:	50                   	push   %eax
   14a2b:	ff 15 38 a1 01 00    	call   *0x1a138
    if (!DeviceObject) {
        AFD_DbgPrint(MIN_TRACE, ("Bad device object.\n"));
        return STATUS_INVALID_PARAMETER;
   14a31:	ba 0d 00 00 c0       	mov    $0xc000000d,%edx
   14a36:	83 c4 0c             	add    $0xc,%esp
   14a39:	89 c6                	mov    %eax,%esi
   14a3b:	85 c0                	test   %eax,%eax
   14a3d:	0f 84 34 01 00 00    	je     14b77 <_TdiSend+0x167>
    }

    *Irp = TdiBuildInternalDeviceControlIrp
   14a43:	83 ec 0c             	sub    $0xc,%esp
   14a46:	8b 45 1c             	mov    0x1c(%ebp),%eax
   14a49:	50                   	push   %eax
   14a4a:	6a 00                	push   $0x0
   14a4c:	6a 01                	push   $0x1
   14a4e:	6a 00                	push   $0x0
   14a50:	6a 00                	push   $0x0
   14a52:	6a 00                	push   $0x0
   14a54:	6a 00                	push   $0x0
   14a56:	56                   	push   %esi
   14a57:	6a 03                	push   $0x3
   14a59:	ff 15 24 a1 01 00    	call   *0x1a124
   14a5f:	8b 55 08             	mov    0x8(%ebp),%edx
	( TDI_SEND,                /* Sub function */
	  DeviceObject,            /* Device object */
	  TransportObject,         /* File object */
	  NULL,                    /* Event */
	  Iosb );                  /* Status */

    if (!*Irp) {
   14a62:	83 c4 0c             	add    $0xc,%esp
   14a65:	85 c0                	test   %eax,%eax
   14a67:	89 02                	mov    %eax,(%edx)
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        return STATUS_INSUFFICIENT_RESOURCES;
   14a69:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14a6e:	0f 84 03 01 00 00    	je     14b77 <_TdiSend+0x167>
    }

    AFD_DbgPrint(MID_TRACE, ("Allocating irp for %x:%d\n", Buffer,BufferLength));

    Mdl = IoAllocateMdl(Buffer,         /* Virtual address */
   14a74:	83 ec 0c             	sub    $0xc,%esp
   14a77:	8b 7d 18             	mov    0x18(%ebp),%edi
   14a7a:	8b 5d 14             	mov    0x14(%ebp),%ebx
   14a7d:	50                   	push   %eax
   14a7e:	6a 00                	push   $0x0
   14a80:	6a 00                	push   $0x0
   14a82:	57                   	push   %edi
   14a83:	53                   	push   %ebx
   14a84:	ff 15 20 a1 01 00    	call   *0x1a120
                        BufferLength,   /* Length of buffer */
                        FALSE,          /* Not secondary */
                        FALSE,          /* Don't charge quota */
                        *Irp);          /* use IRP */
    if (!Mdl) {
   14a8a:	83 c4 0c             	add    $0xc,%esp
   14a8d:	89 c7                	mov    %eax,%edi
   14a8f:	85 c0                	test   %eax,%eax
   14a91:	0f 84 62 01 00 00    	je     14bf9 <_TdiSend+0x1e9>
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        IoFreeIrp(*Irp);
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    _SEH_TRY {
   14a97:	83 ec 40             	sub    $0x40,%esp
   14a9a:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   14a9d:	c7 45 dc e0 42 01 00 	movl   $0x142e0,0xffffffdc(%ebp)
   14aa4:	c7 45 d8 03 00 00 00 	movl   $0x3,0xffffffd8(%ebp)
   14aab:	8d 5c 24 0f          	lea    0xf(%esp),%ebx
   14aaf:	83 ec 0c             	sub    $0xc,%esp
   14ab2:	83 e3 f0             	and    $0xfffffff0,%ebx
   14ab5:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   14abc:	89 43 10             	mov    %eax,0x10(%ebx)
   14abf:	c7 43 2c 10 90 01 00 	movl   $0x19010,0x2c(%ebx)
   14ac6:	8d 43 14             	lea    0x14(%ebx),%eax
   14ac9:	50                   	push   %eax
   14aca:	e8 91 13 00 00       	call   15e60 <SEHSetJmp>
   14acf:	83 c4 0c             	add    $0xc,%esp
   14ad2:	85 c0                	test   %eax,%eax
   14ad4:	0f 84 a7 00 00 00    	je     14b81 <_TdiSend+0x171>
        MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
    } _SEH_HANDLE {
   14ada:	83 ec 0c             	sub    $0xc,%esp
   14add:	53                   	push   %ebx
   14ade:	e8 cd 14 00 00       	call   15fb0 <__SEHLeave@4>
        AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
        IoFreeIrp(*Irp);
   14ae3:	8b 55 08             	mov    0x8(%ebp),%edx
   14ae6:	8b 02                	mov    (%edx),%eax
   14ae8:	50                   	push   %eax
   14ae9:	ff 15 30 a1 01 00    	call   *0x1a130
        Status = STATUS_INSUFFICIENT_RESOURCES;
    } _SEH_END;
   14aef:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   14af2:	83 c4 0c             	add    $0xc,%esp
   14af5:	c7 45 d0 9a 00 00 c0 	movl   $0xc000009a,0xffffffd0(%ebp)
   14afc:	85 c0                	test   %eax,%eax
   14afe:	0f 85 a9 00 00 00    	jne    14bad <_TdiSend+0x19d>

    if( !NT_SUCCESS(Status) ) {
   14b04:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   14b07:	85 c0                	test   %eax,%eax
   14b09:	0f 88 d3 00 00 00    	js     14be2 <_TdiSend+0x1d2>
	IoFreeIrp(*Irp);
	return Status;
    }

    AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));

    TdiBuildSend(*Irp,                   /* I/O Request Packet */
   14b0f:	8b 55 08             	mov    0x8(%ebp),%edx
   14b12:	8b 02                	mov    (%edx),%eax
   14b14:	8b 40 60             	mov    0x60(%eax),%eax
   14b17:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   14b1a:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   14b1e:	c6 41 01 07          	movb   $0x7,0x1(%ecx)
   14b22:	89 71 14             	mov    %esi,0x14(%ecx)
   14b25:	8b 45 0c             	mov    0xc(%ebp),%eax
   14b28:	89 41 18             	mov    %eax,0x18(%ecx)
   14b2b:	8b 45 20             	mov    0x20(%ebp),%eax
   14b2e:	85 c0                	test   %eax,%eax
   14b30:	0f 84 8a 00 00 00    	je     14bc0 <_TdiSend+0x1b0>
   14b36:	8b 02                	mov    (%edx),%eax
   14b38:	8b 50 60             	mov    0x60(%eax),%edx
   14b3b:	8b 45 20             	mov    0x20(%ebp),%eax
   14b3e:	83 ea 24             	sub    $0x24,%edx
   14b41:	89 42 1c             	mov    %eax,0x1c(%edx)
   14b44:	8b 45 24             	mov    0x24(%ebp),%eax
   14b47:	89 42 20             	mov    %eax,0x20(%edx)
   14b4a:	c6 42 03 e0          	movb   $0xe0,0x3(%edx)
   14b4e:	66 8b 45 d6          	mov    0xffffffd6(%ebp),%ax
   14b52:	8b 55 08             	mov    0x8(%ebp),%edx
   14b55:	25 ff ff 00 00       	and    $0xffff,%eax
		 DeviceObject,           /* Device object */
		 TransportObject,        /* File object */
		 CompletionRoutine,      /* Completion routine */
		 CompletionContext,      /* Completion context */
		 Mdl,                    /* Data buffer */
		 Flags,                  /* Flags */
		 BufferLength);          /* Length of data */

    Status = TdiCall(*Irp, DeviceObject, NULL, Iosb);
   14b5a:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
   14b5d:	89 41 08             	mov    %eax,0x8(%ecx)
   14b60:	8b 45 18             	mov    0x18(%ebp),%eax
   14b63:	89 41 04             	mov    %eax,0x4(%ecx)
   14b66:	8b 02                	mov    (%edx),%eax
   14b68:	89 78 04             	mov    %edi,0x4(%eax)
   14b6b:	53                   	push   %ebx
   14b6c:	6a 00                	push   $0x0
   14b6e:	56                   	push   %esi
   14b6f:	50                   	push   %eax
   14b70:	e8 8b f7 ff ff       	call   14300 <_TdiCall>
   14b75:	89 c2                	mov    %eax,%edx
    /* Does not block...  The MDL is deleted in the receive completion
       routine. */

    return Status;
}
   14b77:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14b7a:	89 d0                	mov    %edx,%eax
   14b7c:	5b                   	pop    %ebx
   14b7d:	5e                   	pop    %esi
   14b7e:	5f                   	pop    %edi
   14b7f:	5d                   	pop    %ebp
   14b80:	c3                   	ret    
   14b81:	83 ec 0c             	sub    $0xc,%esp
   14b84:	53                   	push   %ebx
   14b85:	e8 f6 13 00 00       	call   15f80 <__SEHEnter@4>
   14b8a:	58                   	pop    %eax
   14b8b:	5a                   	pop    %edx
   14b8c:	6a 02                	push   $0x2
   14b8e:	6a 00                	push   $0x0
   14b90:	57                   	push   %edi
   14b91:	ff 15 70 a1 01 00    	call   *0x1a170
   14b97:	50                   	push   %eax
   14b98:	50                   	push   %eax
   14b99:	53                   	push   %ebx
   14b9a:	e8 11 14 00 00       	call   15fb0 <__SEHLeave@4>
   14b9f:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   14ba2:	83 c4 0c             	add    $0xc,%esp
   14ba5:	85 c0                	test   %eax,%eax
   14ba7:	0f 84 57 ff ff ff    	je     14b04 <_TdiSend+0xf4>
   14bad:	83 ec 0c             	sub    $0xc,%esp
   14bb0:	53                   	push   %ebx
   14bb1:	ff d0                	call   *%eax
   14bb3:	83 c4 0c             	add    $0xc,%esp
   14bb6:	e9 49 ff ff ff       	jmp    14b04 <_TdiSend+0xf4>
   14bbb:	90                   	nop    
   14bbc:	8d 74 26 00          	lea    0x0(%esi),%esi
   14bc0:	8b 55 08             	mov    0x8(%ebp),%edx
   14bc3:	8b 02                	mov    (%edx),%eax
   14bc5:	8b 40 60             	mov    0x60(%eax),%eax
   14bc8:	83 e8 24             	sub    $0x24,%eax
   14bcb:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   14bd2:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   14bd9:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   14bdd:	e9 6c ff ff ff       	jmp    14b4e <_TdiSend+0x13e>
   14be2:	8b 45 08             	mov    0x8(%ebp),%eax
   14be5:	83 ec 0c             	sub    $0xc,%esp
   14be8:	8b 00                	mov    (%eax),%eax
   14bea:	50                   	push   %eax
   14beb:	ff 15 30 a1 01 00    	call   *0x1a130
   14bf1:	8b 55 d0             	mov    0xffffffd0(%ebp),%edx
   14bf4:	e9 7e ff ff ff       	jmp    14b77 <_TdiSend+0x167>
   14bf9:	8b 45 08             	mov    0x8(%ebp),%eax
   14bfc:	83 ec 0c             	sub    $0xc,%esp
   14bff:	8b 08                	mov    (%eax),%ecx
   14c01:	51                   	push   %ecx
   14c02:	ff 15 30 a1 01 00    	call   *0x1a130
   14c08:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14c0d:	e9 65 ff ff ff       	jmp    14b77 <_TdiSend+0x167>
   14c12:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   14c19:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014c20 <_TdiReceive>:

NTSTATUS TdiReceive(
    PIRP *Irp,
    PFILE_OBJECT TransportObject,
    USHORT Flags,
    PCHAR Buffer,
    UINT BufferLength,
    PIO_STATUS_BLOCK Iosb,
    PIO_COMPLETION_ROUTINE CompletionRoutine,
    PVOID CompletionContext)
{
   14c20:	55                   	push   %ebp
   14c21:	89 e5                	mov    %esp,%ebp
   14c23:	57                   	push   %edi
   14c24:	56                   	push   %esi
   14c25:	53                   	push   %ebx
   14c26:	83 ec 38             	sub    $0x38,%esp
    NTSTATUS Status = STATUS_SUCCESS;
   14c29:	c7 45 d0 00 00 00 00 	movl   $0x0,0xffffffd0(%ebp)
   14c30:	8b 45 10             	mov    0x10(%ebp),%eax
   14c33:	66 89 45 d6          	mov    %ax,0xffffffd6(%ebp)
    PDEVICE_OBJECT DeviceObject;
    PMDL Mdl;

    DeviceObject = IoGetRelatedDeviceObject(TransportObject);
   14c37:	8b 45 0c             	mov    0xc(%ebp),%eax
   14c3a:	50                   	push   %eax
   14c3b:	ff 15 38 a1 01 00    	call   *0x1a138
    if (!DeviceObject) {
        AFD_DbgPrint(MIN_TRACE, ("Bad device object.\n"));
        return STATUS_INVALID_PARAMETER;
   14c41:	ba 0d 00 00 c0       	mov    $0xc000000d,%edx
   14c46:	83 c4 0c             	add    $0xc,%esp
   14c49:	89 c6                	mov    %eax,%esi
   14c4b:	85 c0                	test   %eax,%eax
   14c4d:	0f 84 34 01 00 00    	je     14d87 <_TdiReceive+0x167>
    }

    *Irp = TdiBuildInternalDeviceControlIrp
   14c53:	83 ec 0c             	sub    $0xc,%esp
   14c56:	8b 45 1c             	mov    0x1c(%ebp),%eax
   14c59:	50                   	push   %eax
   14c5a:	6a 00                	push   $0x0
   14c5c:	6a 01                	push   $0x1
   14c5e:	6a 00                	push   $0x0
   14c60:	6a 00                	push   $0x0
   14c62:	6a 00                	push   $0x0
   14c64:	6a 00                	push   $0x0
   14c66:	56                   	push   %esi
   14c67:	6a 03                	push   $0x3
   14c69:	ff 15 24 a1 01 00    	call   *0x1a124
   14c6f:	8b 55 08             	mov    0x8(%ebp),%edx
	( TDI_RECEIVE,             /* Sub function */
	  DeviceObject,            /* Device object */
	  TransportObject,         /* File object */
	  NULL,                    /* Event */
	  Iosb );                  /* Status */

    if (!*Irp) {
   14c72:	83 c4 0c             	add    $0xc,%esp
   14c75:	85 c0                	test   %eax,%eax
   14c77:	89 02                	mov    %eax,(%edx)
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        return STATUS_INSUFFICIENT_RESOURCES;
   14c79:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14c7e:	0f 84 03 01 00 00    	je     14d87 <_TdiReceive+0x167>
    }

    AFD_DbgPrint(MID_TRACE, ("Allocating irp for %x:%d\n", Buffer,BufferLength));

    Mdl = IoAllocateMdl(Buffer,         /* Virtual address */
   14c84:	83 ec 0c             	sub    $0xc,%esp
   14c87:	8b 7d 18             	mov    0x18(%ebp),%edi
   14c8a:	8b 5d 14             	mov    0x14(%ebp),%ebx
   14c8d:	50                   	push   %eax
   14c8e:	6a 00                	push   $0x0
   14c90:	6a 00                	push   $0x0
   14c92:	57                   	push   %edi
   14c93:	53                   	push   %ebx
   14c94:	ff 15 20 a1 01 00    	call   *0x1a120
                        BufferLength,   /* Length of buffer */
                        FALSE,          /* Not secondary */
                        FALSE,          /* Don't charge quota */
                        *Irp);          /* Don't use IRP */
    if (!Mdl) {
   14c9a:	83 c4 0c             	add    $0xc,%esp
   14c9d:	89 c7                	mov    %eax,%edi
   14c9f:	85 c0                	test   %eax,%eax
   14ca1:	0f 84 62 01 00 00    	je     14e09 <_TdiReceive+0x1e9>
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        IoFreeIrp(*Irp);
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    _SEH_TRY {
   14ca7:	83 ec 40             	sub    $0x40,%esp
   14caa:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   14cad:	c7 45 dc e0 42 01 00 	movl   $0x142e0,0xffffffdc(%ebp)
   14cb4:	c7 45 d8 03 00 00 00 	movl   $0x3,0xffffffd8(%ebp)
   14cbb:	8d 5c 24 0f          	lea    0xf(%esp),%ebx
   14cbf:	83 ec 0c             	sub    $0xc,%esp
   14cc2:	83 e3 f0             	and    $0xfffffff0,%ebx
   14cc5:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   14ccc:	89 43 10             	mov    %eax,0x10(%ebx)
   14ccf:	c7 43 2c 10 90 01 00 	movl   $0x19010,0x2c(%ebx)
   14cd6:	8d 43 14             	lea    0x14(%ebx),%eax
   14cd9:	50                   	push   %eax
   14cda:	e8 81 11 00 00       	call   15e60 <SEHSetJmp>
   14cdf:	83 c4 0c             	add    $0xc,%esp
   14ce2:	85 c0                	test   %eax,%eax
   14ce4:	0f 84 a7 00 00 00    	je     14d91 <_TdiReceive+0x171>
        AFD_DbgPrint(MIN_TRACE, ("probe and lock\n"));
        MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
        AFD_DbgPrint(MIN_TRACE, ("probe and lock done\n"));
    } _SEH_HANDLE {
   14cea:	83 ec 0c             	sub    $0xc,%esp
   14ced:	53                   	push   %ebx
   14cee:	e8 bd 12 00 00       	call   15fb0 <__SEHLeave@4>
        AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
        IoFreeIrp(*Irp);
   14cf3:	8b 55 08             	mov    0x8(%ebp),%edx
   14cf6:	8b 02                	mov    (%edx),%eax
   14cf8:	50                   	push   %eax
   14cf9:	ff 15 30 a1 01 00    	call   *0x1a130
	Status = STATUS_INSUFFICIENT_RESOURCES;
    } _SEH_END;
   14cff:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   14d02:	83 c4 0c             	add    $0xc,%esp
   14d05:	c7 45 d0 9a 00 00 c0 	movl   $0xc000009a,0xffffffd0(%ebp)
   14d0c:	85 c0                	test   %eax,%eax
   14d0e:	0f 85 a9 00 00 00    	jne    14dbd <_TdiReceive+0x19d>

    if( !NT_SUCCESS(Status) ) {
   14d14:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   14d17:	85 c0                	test   %eax,%eax
   14d19:	0f 88 d3 00 00 00    	js     14df2 <_TdiReceive+0x1d2>
	IoFreeIrp(*Irp);
	return Status;
    }

    AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));

    TdiBuildReceive(*Irp,                   /* I/O Request Packet */
   14d1f:	8b 55 08             	mov    0x8(%ebp),%edx
   14d22:	8b 02                	mov    (%edx),%eax
   14d24:	8b 40 60             	mov    0x60(%eax),%eax
   14d27:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   14d2a:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   14d2e:	c6 41 01 08          	movb   $0x8,0x1(%ecx)
   14d32:	89 71 14             	mov    %esi,0x14(%ecx)
   14d35:	8b 45 0c             	mov    0xc(%ebp),%eax
   14d38:	8b 5d 20             	mov    0x20(%ebp),%ebx
   14d3b:	89 41 18             	mov    %eax,0x18(%ecx)
   14d3e:	85 db                	test   %ebx,%ebx
   14d40:	0f 84 8a 00 00 00    	je     14dd0 <_TdiReceive+0x1b0>
   14d46:	8b 02                	mov    (%edx),%eax
   14d48:	8b 50 60             	mov    0x60(%eax),%edx
   14d4b:	8b 45 20             	mov    0x20(%ebp),%eax
   14d4e:	83 ea 24             	sub    $0x24,%edx
   14d51:	89 42 1c             	mov    %eax,0x1c(%edx)
   14d54:	8b 45 24             	mov    0x24(%ebp),%eax
   14d57:	89 42 20             	mov    %eax,0x20(%edx)
   14d5a:	c6 42 03 e0          	movb   $0xe0,0x3(%edx)
   14d5e:	66 8b 45 d6          	mov    0xffffffd6(%ebp),%ax
   14d62:	8b 55 08             	mov    0x8(%ebp),%edx
   14d65:	25 ff ff 00 00       	and    $0xffff,%eax
   14d6a:	89 41 08             	mov    %eax,0x8(%ecx)
   14d6d:	8b 45 18             	mov    0x18(%ebp),%eax
   14d70:	89 41 04             	mov    %eax,0x4(%ecx)
   14d73:	8b 02                	mov    (%edx),%eax
		    DeviceObject,           /* Device object */
		    TransportObject,        /* File object */
		    CompletionRoutine,      /* Completion routine */
		    CompletionContext,      /* Completion context */
		    Mdl,                    /* Data buffer */
		    Flags,                  /* Flags */
		    BufferLength);          /* Length of data */


    Status = TdiCall(*Irp, DeviceObject, NULL, Iosb);
   14d75:	8b 55 1c             	mov    0x1c(%ebp),%edx
   14d78:	89 78 04             	mov    %edi,0x4(%eax)
   14d7b:	52                   	push   %edx
   14d7c:	6a 00                	push   $0x0
   14d7e:	56                   	push   %esi
   14d7f:	50                   	push   %eax
   14d80:	e8 7b f5 ff ff       	call   14300 <_TdiCall>
   14d85:	89 c2                	mov    %eax,%edx
    /* Does not block...  The MDL is deleted in the receive completion
       routine. */

    AFD_DbgPrint(MID_TRACE,("Status %x Information %d\n", 
			    Status, Iosb->Information));

    return Status;
}
   14d87:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14d8a:	89 d0                	mov    %edx,%eax
   14d8c:	5b                   	pop    %ebx
   14d8d:	5e                   	pop    %esi
   14d8e:	5f                   	pop    %edi
   14d8f:	5d                   	pop    %ebp
   14d90:	c3                   	ret    
   14d91:	83 ec 0c             	sub    $0xc,%esp
   14d94:	53                   	push   %ebx
   14d95:	e8 e6 11 00 00       	call   15f80 <__SEHEnter@4>
   14d9a:	58                   	pop    %eax
   14d9b:	5a                   	pop    %edx
   14d9c:	6a 02                	push   $0x2
   14d9e:	6a 00                	push   $0x0
   14da0:	57                   	push   %edi
   14da1:	ff 15 70 a1 01 00    	call   *0x1a170
   14da7:	50                   	push   %eax
   14da8:	50                   	push   %eax
   14da9:	53                   	push   %ebx
   14daa:	e8 01 12 00 00       	call   15fb0 <__SEHLeave@4>
   14daf:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   14db2:	83 c4 0c             	add    $0xc,%esp
   14db5:	85 c0                	test   %eax,%eax
   14db7:	0f 84 57 ff ff ff    	je     14d14 <_TdiReceive+0xf4>
   14dbd:	83 ec 0c             	sub    $0xc,%esp
   14dc0:	53                   	push   %ebx
   14dc1:	ff d0                	call   *%eax
   14dc3:	83 c4 0c             	add    $0xc,%esp
   14dc6:	e9 49 ff ff ff       	jmp    14d14 <_TdiReceive+0xf4>
   14dcb:	90                   	nop    
   14dcc:	8d 74 26 00          	lea    0x0(%esi),%esi
   14dd0:	8b 55 08             	mov    0x8(%ebp),%edx
   14dd3:	8b 02                	mov    (%edx),%eax
   14dd5:	8b 40 60             	mov    0x60(%eax),%eax
   14dd8:	83 e8 24             	sub    $0x24,%eax
   14ddb:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   14de2:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   14de9:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   14ded:	e9 6c ff ff ff       	jmp    14d5e <_TdiReceive+0x13e>
   14df2:	8b 45 08             	mov    0x8(%ebp),%eax
   14df5:	83 ec 0c             	sub    $0xc,%esp
   14df8:	8b 30                	mov    (%eax),%esi
   14dfa:	56                   	push   %esi
   14dfb:	ff 15 30 a1 01 00    	call   *0x1a130
   14e01:	8b 55 d0             	mov    0xffffffd0(%ebp),%edx
   14e04:	e9 7e ff ff ff       	jmp    14d87 <_TdiReceive+0x167>
   14e09:	8b 45 08             	mov    0x8(%ebp),%eax
   14e0c:	83 ec 0c             	sub    $0xc,%esp
   14e0f:	8b 08                	mov    (%eax),%ecx
   14e11:	51                   	push   %ecx
   14e12:	ff 15 30 a1 01 00    	call   *0x1a130
   14e18:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14e1d:	e9 65 ff ff ff       	jmp    14d87 <_TdiReceive+0x167>
   14e22:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   14e29:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014e30 <_TdiReceiveDatagram>:


NTSTATUS TdiReceiveDatagram(
    PIRP *Irp,
    PFILE_OBJECT TransportObject,
    USHORT Flags,
    PCHAR Buffer,
    UINT BufferLength,
    PTDI_CONNECTION_INFORMATION Addr,
    PIO_STATUS_BLOCK Iosb,
    PIO_COMPLETION_ROUTINE CompletionRoutine,
    PVOID CompletionContext)
/*
 * FUNCTION: Receives a datagram
 * ARGUMENTS:
 *     TransportObject = Pointer to transport object
 *     From            = Receive filter (NULL if none)
 *     Address         = Address of buffer to place remote address
 *     Buffer          = Address of buffer to place received data
 *     BufferSize      = Address of buffer with length of Buffer (updated)
 * RETURNS:
 *     Status of operation
 */
{
   14e30:	55                   	push   %ebp
   14e31:	89 e5                	mov    %esp,%ebp
   14e33:	57                   	push   %edi
   14e34:	56                   	push   %esi
   14e35:	53                   	push   %ebx
   14e36:	83 ec 38             	sub    $0x38,%esp
   14e39:	8b 45 10             	mov    0x10(%ebp),%eax
   14e3c:	66 89 45 d6          	mov    %ax,0xffffffd6(%ebp)
    PDEVICE_OBJECT DeviceObject;
    NTSTATUS Status;
    PMDL Mdl;

    DeviceObject = IoGetRelatedDeviceObject(TransportObject);
   14e40:	8b 45 0c             	mov    0xc(%ebp),%eax
   14e43:	50                   	push   %eax
   14e44:	ff 15 38 a1 01 00    	call   *0x1a138
    if (!DeviceObject) {
        AFD_DbgPrint(MIN_TRACE, ("Bad device object.\n"));
        return STATUS_INVALID_PARAMETER;
   14e4a:	ba 0d 00 00 c0       	mov    $0xc000000d,%edx
   14e4f:	83 c4 0c             	add    $0xc,%esp
   14e52:	89 c7                	mov    %eax,%edi
   14e54:	85 c0                	test   %eax,%eax
   14e56:	0f 84 38 01 00 00    	je     14f94 <_TdiReceiveDatagram+0x164>
    }

    *Irp = TdiBuildInternalDeviceControlIrp
   14e5c:	83 ec 0c             	sub    $0xc,%esp
   14e5f:	8b 45 20             	mov    0x20(%ebp),%eax
   14e62:	50                   	push   %eax
   14e63:	6a 00                	push   $0x0
   14e65:	6a 01                	push   $0x1
   14e67:	6a 00                	push   $0x0
   14e69:	6a 00                	push   $0x0
   14e6b:	6a 00                	push   $0x0
   14e6d:	6a 00                	push   $0x0
   14e6f:	57                   	push   %edi
   14e70:	6a 03                	push   $0x3
   14e72:	ff 15 24 a1 01 00    	call   *0x1a124
   14e78:	8b 55 08             	mov    0x8(%ebp),%edx
	( TDI_RECEIVE_DATAGRAM,    /* Sub function */
	  DeviceObject,            /* Device object */
	  TransportObject,         /* File object */
	  NULL,                    /* Event */
	  Iosb );                  /* Status */

    if (!*Irp) {
   14e7b:	83 c4 0c             	add    $0xc,%esp
   14e7e:	85 c0                	test   %eax,%eax
   14e80:	89 02                	mov    %eax,(%edx)
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        return STATUS_INSUFFICIENT_RESOURCES;
   14e82:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   14e87:	0f 84 07 01 00 00    	je     14f94 <_TdiReceiveDatagram+0x164>
    }

    AFD_DbgPrint(MID_TRACE, ("Allocating irp for %x:%d\n", Buffer,BufferLength));

    Mdl = IoAllocateMdl(Buffer,         /* Virtual address */
   14e8d:	83 ec 0c             	sub    $0xc,%esp
   14e90:	8b 75 14             	mov    0x14(%ebp),%esi
   14e93:	50                   	push   %eax
   14e94:	8b 45 18             	mov    0x18(%ebp),%eax
   14e97:	6a 00                	push   $0x0
   14e99:	6a 00                	push   $0x0
   14e9b:	50                   	push   %eax
   14e9c:	56                   	push   %esi
   14e9d:	ff 15 20 a1 01 00    	call   *0x1a120
                        BufferLength,   /* Length of buffer */
                        FALSE,          /* Not secondary */
                        FALSE,          /* Don't charge quota */
                        *Irp);          /* Don't use IRP */
    if (!Mdl) {
   14ea3:	83 c4 0c             	add    $0xc,%esp
   14ea6:	89 c6                	mov    %eax,%esi
   14ea8:	85 c0                	test   %eax,%eax
   14eaa:	0f 84 5e 01 00 00    	je     1500e <_TdiReceiveDatagram+0x1de>
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        IoFreeIrp(*Irp);
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    _SEH_TRY {
   14eb0:	83 ec 40             	sub    $0x40,%esp
   14eb3:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   14eb6:	c7 45 dc e0 42 01 00 	movl   $0x142e0,0xffffffdc(%ebp)
   14ebd:	c7 45 d8 03 00 00 00 	movl   $0x3,0xffffffd8(%ebp)
   14ec4:	8d 5c 24 0f          	lea    0xf(%esp),%ebx
   14ec8:	83 ec 0c             	sub    $0xc,%esp
   14ecb:	83 e3 f0             	and    $0xfffffff0,%ebx
   14ece:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   14ed5:	89 43 10             	mov    %eax,0x10(%ebx)
   14ed8:	c7 43 2c 10 90 01 00 	movl   $0x19010,0x2c(%ebx)
   14edf:	8d 43 14             	lea    0x14(%ebx),%eax
   14ee2:	50                   	push   %eax
   14ee3:	e8 78 0f 00 00       	call   15e60 <SEHSetJmp>
   14ee8:	83 c4 0c             	add    $0xc,%esp
   14eeb:	85 c0                	test   %eax,%eax
   14eed:	0f 85 ff 00 00 00    	jne    14ff2 <_TdiReceiveDatagram+0x1c2>
   14ef3:	83 ec 0c             	sub    $0xc,%esp
   14ef6:	53                   	push   %ebx
   14ef7:	e8 84 10 00 00       	call   15f80 <__SEHEnter@4>
        MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
   14efc:	58                   	pop    %eax
   14efd:	5a                   	pop    %edx
   14efe:	6a 02                	push   $0x2
   14f00:	6a 00                	push   $0x0
   14f02:	56                   	push   %esi
   14f03:	ff 15 70 a1 01 00    	call   *0x1a170
   14f09:	50                   	push   %eax
   14f0a:	50                   	push   %eax
    } _SEH_HANDLE {
   14f0b:	53                   	push   %ebx
   14f0c:	e8 9f 10 00 00       	call   15fb0 <__SEHLeave@4>
        AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
        IoFreeIrp(*Irp);
        return STATUS_INSUFFICIENT_RESOURCES;
    } _SEH_END;
   14f11:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   14f14:	83 c4 0c             	add    $0xc,%esp
   14f17:	85 c0                	test   %eax,%eax
   14f19:	0f 85 81 00 00 00    	jne    14fa0 <_TdiReceiveDatagram+0x170>

    AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));

    TdiBuildReceiveDatagram
   14f1f:	8b 55 08             	mov    0x8(%ebp),%edx
   14f22:	8b 02                	mov    (%edx),%eax
   14f24:	8b 40 60             	mov    0x60(%eax),%eax
   14f27:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   14f2a:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   14f2e:	c6 41 01 0a          	movb   $0xa,0x1(%ecx)
   14f32:	89 79 14             	mov    %edi,0x14(%ecx)
   14f35:	8b 45 0c             	mov    0xc(%ebp),%eax
   14f38:	8b 5d 24             	mov    0x24(%ebp),%ebx
   14f3b:	89 41 18             	mov    %eax,0x18(%ecx)
   14f3e:	85 db                	test   %ebx,%ebx
   14f40:	0f 84 8a 00 00 00    	je     14fd0 <_TdiReceiveDatagram+0x1a0>
   14f46:	8b 02                	mov    (%edx),%eax
   14f48:	8b 50 60             	mov    0x60(%eax),%edx
   14f4b:	8b 45 24             	mov    0x24(%ebp),%eax
   14f4e:	83 ea 24             	sub    $0x24,%edx
   14f51:	89 42 1c             	mov    %eax,0x1c(%edx)
   14f54:	8b 45 28             	mov    0x28(%ebp),%eax
   14f57:	89 42 20             	mov    %eax,0x20(%edx)
   14f5a:	c6 42 03 e0          	movb   $0xe0,0x3(%edx)
   14f5e:	8d 41 04             	lea    0x4(%ecx),%eax
   14f61:	8b 55 1c             	mov    0x1c(%ebp),%edx
   14f64:	89 50 04             	mov    %edx,0x4(%eax)
   14f67:	89 50 08             	mov    %edx,0x8(%eax)
   14f6a:	8b 55 18             	mov    0x18(%ebp),%edx
   14f6d:	89 51 04             	mov    %edx,0x4(%ecx)
   14f70:	66 8b 55 d6          	mov    0xffffffd6(%ebp),%dx
   14f74:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   14f7a:	89 50 0c             	mov    %edx,0xc(%eax)
   14f7d:	8b 55 08             	mov    0x8(%ebp),%edx
   14f80:	8b 02                	mov    (%edx),%eax
	(*Irp,                   /* I/O Request Packet */
	 DeviceObject,           /* Device object */
	 TransportObject,        /* File object */
	 CompletionRoutine,      /* Completion routine */
	 CompletionContext,      /* Completion context */
	 Mdl,                    /* Data buffer */
	 BufferLength,
	 Addr,
	 Addr,
	 Flags);                 /* Length of data */

    Status = TdiCall(*Irp, DeviceObject, NULL, Iosb);
   14f82:	8b 55 20             	mov    0x20(%ebp),%edx
   14f85:	89 70 04             	mov    %esi,0x4(%eax)
   14f88:	52                   	push   %edx
   14f89:	6a 00                	push   $0x0
   14f8b:	57                   	push   %edi
   14f8c:	50                   	push   %eax
   14f8d:	e8 6e f3 ff ff       	call   14300 <_TdiCall>
   14f92:	89 c2                	mov    %eax,%edx
    /* Does not block...  The MDL is deleted in the receive completion
       routine. */

    return Status;
}
   14f94:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14f97:	89 d0                	mov    %edx,%eax
   14f99:	5b                   	pop    %ebx
   14f9a:	5e                   	pop    %esi
   14f9b:	5f                   	pop    %edi
   14f9c:	5d                   	pop    %ebp
   14f9d:	c3                   	ret    
   14f9e:	89 f6                	mov    %esi,%esi
   14fa0:	83 ec 0c             	sub    $0xc,%esp
   14fa3:	53                   	push   %ebx
   14fa4:	ff d0                	call   *%eax
   14fa6:	8b 55 08             	mov    0x8(%ebp),%edx
   14fa9:	83 c4 0c             	add    $0xc,%esp
   14fac:	8b 02                	mov    (%edx),%eax
   14fae:	8b 40 60             	mov    0x60(%eax),%eax
   14fb1:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   14fb4:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   14fb8:	c6 41 01 0a          	movb   $0xa,0x1(%ecx)
   14fbc:	89 79 14             	mov    %edi,0x14(%ecx)
   14fbf:	8b 45 0c             	mov    0xc(%ebp),%eax
   14fc2:	8b 5d 24             	mov    0x24(%ebp),%ebx
   14fc5:	89 41 18             	mov    %eax,0x18(%ecx)
   14fc8:	85 db                	test   %ebx,%ebx
   14fca:	0f 85 76 ff ff ff    	jne    14f46 <_TdiReceiveDatagram+0x116>
   14fd0:	8b 55 08             	mov    0x8(%ebp),%edx
   14fd3:	8b 02                	mov    (%edx),%eax
   14fd5:	8b 40 60             	mov    0x60(%eax),%eax
   14fd8:	83 e8 24             	sub    $0x24,%eax
   14fdb:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   14fe2:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   14fe9:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   14fed:	e9 6c ff ff ff       	jmp    14f5e <_TdiReceiveDatagram+0x12e>
   14ff2:	83 ec 0c             	sub    $0xc,%esp
   14ff5:	53                   	push   %ebx
   14ff6:	e8 b5 0f 00 00       	call   15fb0 <__SEHLeave@4>
   14ffb:	8b 55 08             	mov    0x8(%ebp),%edx
   14ffe:	8b 0a                	mov    (%edx),%ecx
   15000:	51                   	push   %ecx
   15001:	ff 15 30 a1 01 00    	call   *0x1a130
   15007:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   1500c:	eb 86                	jmp    14f94 <_TdiReceiveDatagram+0x164>
   1500e:	8b 45 08             	mov    0x8(%ebp),%eax
   15011:	83 ec 0c             	sub    $0xc,%esp
   15014:	8b 18                	mov    (%eax),%ebx
   15016:	53                   	push   %ebx
   15017:	ff 15 30 a1 01 00    	call   *0x1a130
   1501d:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   15022:	e9 6d ff ff ff       	jmp    14f94 <_TdiReceiveDatagram+0x164>
   15027:	89 f6                	mov    %esi,%esi
   15029:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015030 <_TdiSendDatagram>:


NTSTATUS TdiSendDatagram(
    PIRP *Irp,
    PFILE_OBJECT TransportObject,
    PCHAR Buffer,
    UINT BufferLength,
    PTDI_CONNECTION_INFORMATION Addr,
    PIO_STATUS_BLOCK Iosb,
    PIO_COMPLETION_ROUTINE CompletionRoutine,
    PVOID CompletionContext)
/*
 * FUNCTION: Sends a datagram
 * ARGUMENTS:
 *     TransportObject = Pointer to transport object
 *     From            = Send filter (NULL if none)
 *     Address         = Address of buffer to place remote address
 *     Buffer          = Address of buffer to place send data
 *     BufferSize      = Address of buffer with length of Buffer (updated)
 * RETURNS:
 *     Status of operation
 */
{
   15030:	55                   	push   %ebp
   15031:	89 e5                	mov    %esp,%ebp
   15033:	57                   	push   %edi
   15034:	56                   	push   %esi
   15035:	53                   	push   %ebx
   15036:	83 ec 28             	sub    $0x28,%esp
    PDEVICE_OBJECT DeviceObject;
    NTSTATUS Status;
    PMDL Mdl;

    AFD_DbgPrint(MID_TRACE,("Called(TransportObject %x)\n", TransportObject));

    DeviceObject = IoGetRelatedDeviceObject(TransportObject);
   15039:	8b 45 0c             	mov    0xc(%ebp),%eax
   1503c:	50                   	push   %eax
   1503d:	ff 15 38 a1 01 00    	call   *0x1a138
    if (!DeviceObject) {
        AFD_DbgPrint(MIN_TRACE, ("Bad device object.\n"));
        return STATUS_INVALID_PARAMETER;
   15043:	ba 0d 00 00 c0       	mov    $0xc000000d,%edx
   15048:	83 c4 0c             	add    $0xc,%esp
   1504b:	89 c7                	mov    %eax,%edi
   1504d:	85 c0                	test   %eax,%eax
   1504f:	0f 84 1d 01 00 00    	je     15172 <_TdiSendDatagram+0x142>
    }

    *Irp = TdiBuildInternalDeviceControlIrp
   15055:	83 ec 0c             	sub    $0xc,%esp
   15058:	8b 45 1c             	mov    0x1c(%ebp),%eax
   1505b:	50                   	push   %eax
   1505c:	6a 00                	push   $0x0
   1505e:	6a 01                	push   $0x1
   15060:	6a 00                	push   $0x0
   15062:	6a 00                	push   $0x0
   15064:	6a 00                	push   $0x0
   15066:	6a 00                	push   $0x0
   15068:	57                   	push   %edi
   15069:	6a 03                	push   $0x3
   1506b:	ff 15 24 a1 01 00    	call   *0x1a124
   15071:	8b 55 08             	mov    0x8(%ebp),%edx
	( TDI_SEND_DATAGRAM,       /* Sub function */
	  DeviceObject,            /* Device object */
	  TransportObject,         /* File object */
	  NULL,                    /* Event */
	  Iosb );                  /* Status */

    if (!*Irp) {
   15074:	83 c4 0c             	add    $0xc,%esp
   15077:	85 c0                	test   %eax,%eax
   15079:	89 02                	mov    %eax,(%edx)
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        return STATUS_INSUFFICIENT_RESOURCES;
   1507b:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   15080:	0f 84 ec 00 00 00    	je     15172 <_TdiSendDatagram+0x142>
    }

    AFD_DbgPrint(MID_TRACE, ("Allocating irp for %x:%d\n", Buffer,BufferLength));

    Mdl = IoAllocateMdl(Buffer,         /* Virtual address */
   15086:	83 ec 0c             	sub    $0xc,%esp
   15089:	8b 75 10             	mov    0x10(%ebp),%esi
   1508c:	50                   	push   %eax
   1508d:	8b 45 14             	mov    0x14(%ebp),%eax
   15090:	6a 00                	push   $0x0
   15092:	6a 00                	push   $0x0
   15094:	50                   	push   %eax
   15095:	56                   	push   %esi
   15096:	ff 15 20 a1 01 00    	call   *0x1a120
                        BufferLength,   /* Length of buffer */
                        FALSE,          /* Not secondary */
                        FALSE,          /* Don't charge quota */
                        *Irp);          /* Don't use IRP */

    if (!Mdl) {
   1509c:	83 c4 0c             	add    $0xc,%esp
   1509f:	89 c6                	mov    %eax,%esi
   150a1:	85 c0                	test   %eax,%eax
   150a3:	0f 84 42 01 00 00    	je     151eb <_TdiSendDatagram+0x1bb>
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        IoFreeIrp(*Irp);
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    _SEH_TRY {
   150a9:	83 ec 40             	sub    $0x40,%esp
   150ac:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   150af:	c7 45 dc e0 42 01 00 	movl   $0x142e0,0xffffffdc(%ebp)
   150b6:	c7 45 d8 03 00 00 00 	movl   $0x3,0xffffffd8(%ebp)
   150bd:	8d 5c 24 0f          	lea    0xf(%esp),%ebx
   150c1:	83 ec 0c             	sub    $0xc,%esp
   150c4:	83 e3 f0             	and    $0xfffffff0,%ebx
   150c7:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   150ce:	89 43 10             	mov    %eax,0x10(%ebx)
   150d1:	c7 43 2c 10 90 01 00 	movl   $0x19010,0x2c(%ebx)
   150d8:	8d 43 14             	lea    0x14(%ebx),%eax
   150db:	50                   	push   %eax
   150dc:	e8 7f 0d 00 00       	call   15e60 <SEHSetJmp>
   150e1:	83 c4 0c             	add    $0xc,%esp
   150e4:	85 c0                	test   %eax,%eax
   150e6:	0f 85 e3 00 00 00    	jne    151cf <_TdiSendDatagram+0x19f>
   150ec:	83 ec 0c             	sub    $0xc,%esp
   150ef:	53                   	push   %ebx
   150f0:	e8 8b 0e 00 00       	call   15f80 <__SEHEnter@4>
        MmProbeAndLockPages(Mdl, KernelMode, IoModifyAccess);
   150f5:	58                   	pop    %eax
   150f6:	5a                   	pop    %edx
   150f7:	6a 02                	push   $0x2
   150f9:	6a 00                	push   $0x0
   150fb:	56                   	push   %esi
   150fc:	ff 15 70 a1 01 00    	call   *0x1a170
   15102:	50                   	push   %eax
   15103:	50                   	push   %eax
    } _SEH_HANDLE {
   15104:	53                   	push   %ebx
   15105:	e8 a6 0e 00 00       	call   15fb0 <__SEHLeave@4>
        AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
        IoFreeIrp(*Irp);
        return STATUS_INSUFFICIENT_RESOURCES;
    } _SEH_END;
   1510a:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   1510d:	83 c4 0c             	add    $0xc,%esp
   15110:	85 c0                	test   %eax,%eax
   15112:	75 6c                	jne    15180 <_TdiSendDatagram+0x150>

    AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));

    TdiBuildSendDatagram
   15114:	8b 55 08             	mov    0x8(%ebp),%edx
   15117:	8b 02                	mov    (%edx),%eax
   15119:	8b 40 60             	mov    0x60(%eax),%eax
   1511c:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   1511f:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   15123:	c6 41 01 09          	movb   $0x9,0x1(%ecx)
   15127:	89 79 14             	mov    %edi,0x14(%ecx)
   1512a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1512d:	8b 5d 20             	mov    0x20(%ebp),%ebx
   15130:	89 41 18             	mov    %eax,0x18(%ecx)
   15133:	85 db                	test   %ebx,%ebx
   15135:	74 79                	je     151b0 <_TdiSendDatagram+0x180>
   15137:	8b 02                	mov    (%edx),%eax
   15139:	8b 50 60             	mov    0x60(%eax),%edx
   1513c:	8b 45 20             	mov    0x20(%ebp),%eax
   1513f:	83 ea 24             	sub    $0x24,%edx
   15142:	89 42 1c             	mov    %eax,0x1c(%edx)
   15145:	8b 45 24             	mov    0x24(%ebp),%eax
   15148:	89 42 20             	mov    %eax,0x20(%edx)
   1514b:	c6 42 03 e0          	movb   $0xe0,0x3(%edx)
   1514f:	8b 45 18             	mov    0x18(%ebp),%eax
   15152:	8b 55 08             	mov    0x8(%ebp),%edx
   15155:	89 41 08             	mov    %eax,0x8(%ecx)
   15158:	8b 45 14             	mov    0x14(%ebp),%eax
   1515b:	89 41 04             	mov    %eax,0x4(%ecx)
   1515e:	8b 02                	mov    (%edx),%eax
	(*Irp,                   /* I/O Request Packet */
	 DeviceObject,           /* Device object */
	 TransportObject,        /* File object */
	 CompletionRoutine,      /* Completion routine */
	 CompletionContext,      /* Completion context */
	 Mdl,                    /* Data buffer */
	 BufferLength,           /* Bytes to send */
	 Addr);                  /* Address */

    Status = TdiCall(*Irp, DeviceObject, NULL, Iosb);
   15160:	8b 55 1c             	mov    0x1c(%ebp),%edx
   15163:	89 70 04             	mov    %esi,0x4(%eax)
   15166:	52                   	push   %edx
   15167:	6a 00                	push   $0x0
   15169:	57                   	push   %edi
   1516a:	50                   	push   %eax
   1516b:	e8 90 f1 ff ff       	call   14300 <_TdiCall>
   15170:	89 c2                	mov    %eax,%edx
    /* Does not block...  The MDL is deleted in the send completion
       routine. */

    return Status;
}
   15172:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15175:	89 d0                	mov    %edx,%eax
   15177:	5b                   	pop    %ebx
   15178:	5e                   	pop    %esi
   15179:	5f                   	pop    %edi
   1517a:	5d                   	pop    %ebp
   1517b:	c3                   	ret    
   1517c:	8d 74 26 00          	lea    0x0(%esi),%esi
   15180:	83 ec 0c             	sub    $0xc,%esp
   15183:	53                   	push   %ebx
   15184:	ff d0                	call   *%eax
   15186:	8b 55 08             	mov    0x8(%ebp),%edx
   15189:	83 c4 0c             	add    $0xc,%esp
   1518c:	8b 02                	mov    (%edx),%eax
   1518e:	8b 40 60             	mov    0x60(%eax),%eax
   15191:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   15194:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   15198:	c6 41 01 09          	movb   $0x9,0x1(%ecx)
   1519c:	89 79 14             	mov    %edi,0x14(%ecx)
   1519f:	8b 45 0c             	mov    0xc(%ebp),%eax
   151a2:	8b 5d 20             	mov    0x20(%ebp),%ebx
   151a5:	89 41 18             	mov    %eax,0x18(%ecx)
   151a8:	85 db                	test   %ebx,%ebx
   151aa:	75 8b                	jne    15137 <_TdiSendDatagram+0x107>
   151ac:	8d 74 26 00          	lea    0x0(%esi),%esi
   151b0:	8b 55 08             	mov    0x8(%ebp),%edx
   151b3:	8b 02                	mov    (%edx),%eax
   151b5:	8b 40 60             	mov    0x60(%eax),%eax
   151b8:	83 e8 24             	sub    $0x24,%eax
   151bb:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   151c2:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   151c9:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   151cd:	eb 80                	jmp    1514f <_TdiSendDatagram+0x11f>
   151cf:	83 ec 0c             	sub    $0xc,%esp
   151d2:	53                   	push   %ebx
   151d3:	e8 d8 0d 00 00       	call   15fb0 <__SEHLeave@4>
   151d8:	8b 55 08             	mov    0x8(%ebp),%edx
   151db:	8b 0a                	mov    (%edx),%ecx
   151dd:	51                   	push   %ecx
   151de:	ff 15 30 a1 01 00    	call   *0x1a130
   151e4:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   151e9:	eb 87                	jmp    15172 <_TdiSendDatagram+0x142>
   151eb:	8b 45 08             	mov    0x8(%ebp),%eax
   151ee:	83 ec 0c             	sub    $0xc,%esp
   151f1:	8b 18                	mov    (%eax),%ebx
   151f3:	53                   	push   %ebx
   151f4:	ff 15 30 a1 01 00    	call   *0x1a130
   151fa:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   151ff:	e9 6e ff ff ff       	jmp    15172 <_TdiSendDatagram+0x142>
   15204:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1520a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00015210 <_TdiDisconnect>:

NTSTATUS TdiDisconnect(
    PFILE_OBJECT TransportObject,
    PLARGE_INTEGER Time,
    USHORT Flags,
    PIO_STATUS_BLOCK Iosb,
    PIO_COMPLETION_ROUTINE CompletionRoutine,
    PVOID CompletionContext,
    PTDI_CONNECTION_INFORMATION RequestConnectionInfo,
    PTDI_CONNECTION_INFORMATION ReturnConnectionInfo) {
   15210:	55                   	push   %ebp
   15211:	89 e5                	mov    %esp,%ebp
   15213:	57                   	push   %edi
   15214:	56                   	push   %esi
   15215:	53                   	push   %ebx
   15216:	83 ec 38             	sub    $0x38,%esp
   15219:	8b 45 10             	mov    0x10(%ebp),%eax
   1521c:	8b 7d 08             	mov    0x8(%ebp),%edi
   1521f:	66 89 45 d6          	mov    %ax,0xffffffd6(%ebp)
    PDEVICE_OBJECT DeviceObject;
    NTSTATUS Status;
    KEVENT Event;
    PIRP Irp;

    DeviceObject = IoGetRelatedDeviceObject(TransportObject);
   15223:	57                   	push   %edi
   15224:	ff 15 38 a1 01 00    	call   *0x1a138

    KeInitializeEvent(&Event, NotificationEvent, FALSE);
   1522a:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   1522d:	59                   	pop    %ecx
   1522e:	5b                   	pop    %ebx
   1522f:	6a 00                	push   $0x0
   15231:	6a 00                	push   $0x0
   15233:	50                   	push   %eax
   15234:	ff 15 4c a1 01 00    	call   *0x1a14c

    AFD_DbgPrint(MID_TRACE,("Called(TransportObject %x)\n", TransportObject));

    DeviceObject = IoGetRelatedDeviceObject(TransportObject);
   1523a:	52                   	push   %edx
   1523b:	52                   	push   %edx
   1523c:	57                   	push   %edi
   1523d:	ff 15 38 a1 01 00    	call   *0x1a138
   15243:	89 c6                	mov    %eax,%esi
    if (!DeviceObject) {
   15245:	83 c4 0c             	add    $0xc,%esp
        AFD_DbgPrint(MIN_TRACE, ("Bad device object.\n"));
        return STATUS_INVALID_PARAMETER;
   15248:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
   1524d:	85 f6                	test   %esi,%esi
   1524f:	0f 84 8d 00 00 00    	je     152e2 <_TdiDisconnect+0xd2>
    }

    Irp = TdiBuildInternalDeviceControlIrp
   15255:	83 ec 0c             	sub    $0xc,%esp
   15258:	8b 45 14             	mov    0x14(%ebp),%eax
   1525b:	50                   	push   %eax
   1525c:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   1525f:	50                   	push   %eax
   15260:	6a 01                	push   $0x1
   15262:	6a 00                	push   $0x0
   15264:	6a 00                	push   $0x0
   15266:	6a 00                	push   $0x0
   15268:	6a 00                	push   $0x0
   1526a:	56                   	push   %esi
   1526b:	6a 03                	push   $0x3
   1526d:	ff 15 24 a1 01 00    	call   *0x1a124
   15273:	89 c3                	mov    %eax,%ebx
	( TDI_SEND_DATAGRAM,       /* Sub function */
	  DeviceObject,            /* Device object */
	  TransportObject,         /* File object */
	  &Event,                  /* Event */
	  Iosb );                  /* Status */

    if (!Irp) {
   15275:	83 c4 0c             	add    $0xc,%esp
        AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
        return STATUS_INSUFFICIENT_RESOURCES;
   15278:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   1527d:	85 db                	test   %ebx,%ebx
   1527f:	74 61                	je     152e2 <_TdiDisconnect+0xd2>
    }

    TdiBuildDisconnect
   15281:	8b 43 60             	mov    0x60(%ebx),%eax
   15284:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   15287:	c6 40 dc 0f          	movb   $0xf,0xffffffdc(%eax)
   1528b:	c6 41 01 06          	movb   $0x6,0x1(%ecx)
   1528f:	89 71 14             	mov    %esi,0x14(%ecx)
   15292:	8b 45 18             	mov    0x18(%ebp),%eax
   15295:	89 79 18             	mov    %edi,0x18(%ecx)
   15298:	85 c0                	test   %eax,%eax
   1529a:	74 54                	je     152f0 <_TdiDisconnect+0xe0>
   1529c:	8b 53 60             	mov    0x60(%ebx),%edx
   1529f:	8b 45 18             	mov    0x18(%ebp),%eax
   152a2:	83 ea 24             	sub    $0x24,%edx
   152a5:	89 42 1c             	mov    %eax,0x1c(%edx)
   152a8:	8b 45 1c             	mov    0x1c(%ebp),%eax
   152ab:	89 42 20             	mov    %eax,0x20(%edx)
   152ae:	c6 42 03 e0          	movb   $0xe0,0x3(%edx)
   152b2:	8d 51 04             	lea    0x4(%ecx),%edx
   152b5:	8b 45 20             	mov    0x20(%ebp),%eax
   152b8:	89 42 04             	mov    %eax,0x4(%edx)
   152bb:	8b 45 24             	mov    0x24(%ebp),%eax
   152be:	89 42 08             	mov    %eax,0x8(%edx)
   152c1:	8b 45 0c             	mov    0xc(%ebp),%eax
   152c4:	89 42 0c             	mov    %eax,0xc(%edx)
   152c7:	66 8b 45 d6          	mov    0xffffffd6(%ebp),%ax
   152cb:	25 ff ff 00 00       	and    $0xffff,%eax
   152d0:	89 41 04             	mov    %eax,0x4(%ecx)
	(Irp,                    /* I/O Request Packet */
	 DeviceObject,           /* Device object */
	 TransportObject,        /* File object */
	 CompletionRoutine,      /* Completion routine */
	 CompletionContext,      /* Completion context */
	 Time,                   /* Time */
	 Flags,                  /* Disconnect flags */
	 RequestConnectionInfo,  /* Indication of who to disconnect */
	 ReturnConnectionInfo);  /* Indication of who disconnected */

    Status = TdiCall(Irp, DeviceObject, &Event, Iosb);
   152d3:	8b 45 14             	mov    0x14(%ebp),%eax
   152d6:	50                   	push   %eax
   152d7:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   152da:	50                   	push   %eax
   152db:	56                   	push   %esi
   152dc:	53                   	push   %ebx
   152dd:	e8 1e f0 ff ff       	call   14300 <_TdiCall>

    return Status;
}
   152e2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   152e5:	5b                   	pop    %ebx
   152e6:	5e                   	pop    %esi
   152e7:	5f                   	pop    %edi
   152e8:	5d                   	pop    %ebp
   152e9:	c3                   	ret    
   152ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   152f0:	8b 43 60             	mov    0x60(%ebx),%eax
   152f3:	83 e8 24             	sub    $0x24,%eax
   152f6:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   152fd:	c7 40 20 00 00 00 00 	movl   $0x0,0x20(%eax)
   15304:	c6 40 03 00          	movb   $0x0,0x3(%eax)
   15308:	eb a8                	jmp    152b2 <_TdiDisconnect+0xa2>
   1530a:	90                   	nop    
   1530b:	90                   	nop    
   1530c:	90                   	nop    
   1530d:	90                   	nop    
   1530e:	90                   	nop    
   1530f:	90                   	nop    

00015310 <_TdiAddressSizeFromType>:
   15310:	55                   	push   %ebp
   15311:	89 e5                	mov    %esp,%ebp
   15313:	50                   	push   %eax
   15314:	50                   	push   %eax
   15315:	b8 16 00 00 00       	mov    $0x16,%eax
   1531a:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
   1531e:	74 10                	je     15330 <_TdiAddressSizeFromType+0x20>
   15320:	83 ec 0c             	sub    $0xc,%esp
   15323:	6a 00                	push   $0x0
   15325:	ff 15 3c a1 01 00    	call   *0x1a13c
   1532b:	31 c0                	xor    %eax,%eax
   1532d:	83 c4 0c             	add    $0xc,%esp
   15330:	c9                   	leave  
   15331:	c3                   	ret    
   15332:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   15339:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015340 <_TaLengthOfAddress>:
   15340:	55                   	push   %ebp
   15341:	89 e5                	mov    %esp,%ebp
   15343:	8b 45 08             	mov    0x8(%ebp),%eax
   15346:	5d                   	pop    %ebp
   15347:	66 8b 00             	mov    (%eax),%ax
   1534a:	25 ff ff 00 00       	and    $0xffff,%eax
   1534f:	83 c0 04             	add    $0x4,%eax
   15352:	c3                   	ret    
   15353:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   15359:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015360 <_TaLengthOfTransportAddress>:
   15360:	55                   	push   %ebp
   15361:	89 e5                	mov    %esp,%ebp
   15363:	8b 45 08             	mov    0x8(%ebp),%eax
   15366:	5d                   	pop    %ebp
   15367:	66 8b 40 04          	mov    0x4(%eax),%ax
   1536b:	25 ff ff 00 00       	and    $0xffff,%eax
   15370:	83 c0 08             	add    $0x8,%eax
   15373:	c3                   	ret    
   15374:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1537a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00015380 <_TaCopyAddressInPlace>:
   15380:	55                   	push   %ebp
   15381:	89 e5                	mov    %esp,%ebp
   15383:	53                   	push   %ebx
   15384:	51                   	push   %ecx
   15385:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   15388:	53                   	push   %ebx
   15389:	e8 b2 ff ff ff       	call   15340 <_TaLengthOfAddress>
   1538e:	8b 55 08             	mov    0x8(%ebp),%edx
   15391:	50                   	push   %eax
   15392:	53                   	push   %ebx
   15393:	52                   	push   %edx
   15394:	e8 a7 0c 00 00       	call   16040 <_memcpy>
   15399:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1539c:	c9                   	leave  
   1539d:	c3                   	ret    
   1539e:	89 f6                	mov    %esi,%esi

000153a0 <_TaCopyAddress>:
   153a0:	55                   	push   %ebp
   153a1:	89 e5                	mov    %esp,%ebp
   153a3:	57                   	push   %edi
   153a4:	56                   	push   %esi
   153a5:	53                   	push   %ebx
   153a6:	83 ec 0c             	sub    $0xc,%esp
   153a9:	8b 7d 08             	mov    0x8(%ebp),%edi
   153ac:	57                   	push   %edi
   153ad:	e8 8e ff ff ff       	call   15340 <_TaLengthOfAddress>
   153b2:	89 c6                	mov    %eax,%esi
   153b4:	53                   	push   %ebx
   153b5:	50                   	push   %eax
   153b6:	6a 00                	push   $0x0
   153b8:	ff 15 18 a1 01 00    	call   *0x1a118
   153be:	89 c3                	mov    %eax,%ebx
   153c0:	89 34 24             	mov    %esi,(%esp)
   153c3:	57                   	push   %edi
   153c4:	50                   	push   %eax
   153c5:	e8 76 0c 00 00       	call   16040 <_memcpy>
   153ca:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   153cd:	89 d8                	mov    %ebx,%eax
   153cf:	5b                   	pop    %ebx
   153d0:	5e                   	pop    %esi
   153d1:	5f                   	pop    %edi
   153d2:	5d                   	pop    %ebp
   153d3:	c3                   	ret    
   153d4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   153da:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000153e0 <_TaCopyTransportAddressInPlace>:
   153e0:	55                   	push   %ebp
   153e1:	89 e5                	mov    %esp,%ebp
   153e3:	57                   	push   %edi
   153e4:	56                   	push   %esi
   153e5:	8b 75 0c             	mov    0xc(%ebp),%esi
   153e8:	8b 7d 08             	mov    0x8(%ebp),%edi
   153eb:	56                   	push   %esi
   153ec:	e8 6f ff ff ff       	call   15360 <_TaLengthOfTransportAddress>
   153f1:	fc                   	cld    
   153f2:	89 c1                	mov    %eax,%ecx
   153f4:	5a                   	pop    %edx
   153f5:	c1 e9 02             	shr    $0x2,%ecx
   153f8:	89 c2                	mov    %eax,%edx
   153fa:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   153fc:	a8 02                	test   $0x2,%al
   153fe:	74 0c                	je     1540c <_TaCopyTransportAddressInPlace+0x2c>
   15400:	66 8b 06             	mov    (%esi),%ax
   15403:	83 c6 02             	add    $0x2,%esi
   15406:	66 89 07             	mov    %ax,(%edi)
   15409:	83 c7 02             	add    $0x2,%edi
   1540c:	83 e2 01             	and    $0x1,%edx
   1540f:	74 04                	je     15415 <_TaCopyTransportAddressInPlace+0x35>
   15411:	8a 06                	mov    (%esi),%al
   15413:	88 07                	mov    %al,(%edi)
   15415:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   15418:	5e                   	pop    %esi
   15419:	5f                   	pop    %edi
   1541a:	5d                   	pop    %ebp
   1541b:	c3                   	ret    
   1541c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015420 <_TaCopyTransportAddress>:
   15420:	55                   	push   %ebp
   15421:	89 e5                	mov    %esp,%ebp
   15423:	56                   	push   %esi
   15424:	53                   	push   %ebx
   15425:	8b 75 08             	mov    0x8(%ebp),%esi
   15428:	56                   	push   %esi
   15429:	e8 32 ff ff ff       	call   15360 <_TaLengthOfTransportAddress>
   1542e:	51                   	push   %ecx
   1542f:	50                   	push   %eax
   15430:	6a 00                	push   $0x0
   15432:	ff 15 18 a1 01 00    	call   *0x1a118
   15438:	89 c3                	mov    %eax,%ebx
   1543a:	58                   	pop    %eax
   1543b:	85 db                	test   %ebx,%ebx
   1543d:	5a                   	pop    %edx
   1543e:	74 09                	je     15449 <_TaCopyTransportAddress+0x29>
   15440:	56                   	push   %esi
   15441:	53                   	push   %ebx
   15442:	e8 99 ff ff ff       	call   153e0 <_TaCopyTransportAddressInPlace>
   15447:	59                   	pop    %ecx
   15448:	5e                   	pop    %esi
   15449:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1544c:	89 d8                	mov    %ebx,%eax
   1544e:	5b                   	pop    %ebx
   1544f:	5e                   	pop    %esi
   15450:	5d                   	pop    %ebp
   15451:	c3                   	ret    
   15452:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   15459:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00015460 <_TdiBuildNullConnectionInfoInPlace>:
   15460:	55                   	push   %ebp
   15461:	89 e5                	mov    %esp,%ebp
   15463:	57                   	push   %edi
   15464:	56                   	push   %esi
   15465:	53                   	push   %ebx
   15466:	83 ec 18             	sub    $0x18,%esp
   15469:	8b 75 0c             	mov    0xc(%ebp),%esi
   1546c:	56                   	push   %esi
   1546d:	e8 9e fe ff ff       	call   15310 <_TdiAddressSizeFromType>
   15472:	fc                   	cld    
   15473:	8d 50 18             	lea    0x18(%eax),%edx
   15476:	89 c3                	mov    %eax,%ebx
   15478:	89 d1                	mov    %edx,%ecx
   1547a:	31 c0                	xor    %eax,%eax
   1547c:	c1 e9 02             	shr    $0x2,%ecx
   1547f:	8b 7d 08             	mov    0x8(%ebp),%edi
   15482:	f3 ab                	repz stos %eax,%es:(%edi)
   15484:	f6 c2 02             	test   $0x2,%dl
   15487:	89 f8                	mov    %edi,%eax
   15489:	74 08                	je     15493 <_TdiBuildNullConnectionInfoInPlace+0x33>
   1548b:	66 c7 07 00 00       	movw   $0x0,(%edi)
   15490:	83 c0 02             	add    $0x2,%eax
   15493:	83 e2 01             	and    $0x1,%edx
   15496:	74 03                	je     1549b <_TdiBuildNullConnectionInfoInPlace+0x3b>
   15498:	c6 00 00             	movb   $0x0,(%eax)
   1549b:	8b 45 08             	mov    0x8(%ebp),%eax
   1549e:	8b 55 08             	mov    0x8(%ebp),%edx
   154a1:	c7 40 08 04 00 00 00 	movl   $0x4,0x8(%eax)
   154a8:	89 58 10             	mov    %ebx,0x10(%eax)
   154ab:	83 c0 18             	add    $0x18,%eax
   154ae:	c7 42 18 01 00 00 00 	movl   $0x1,0x18(%edx)
   154b5:	89 42 14             	mov    %eax,0x14(%edx)
   154b8:	66 89 70 06          	mov    %si,0x6(%eax)
   154bc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   154bf:	31 c0                	xor    %eax,%eax
   154c1:	5b                   	pop    %ebx
   154c2:	5e                   	pop    %esi
   154c3:	5f                   	pop    %edi
   154c4:	5d                   	pop    %ebp
   154c5:	c3                   	ret    
   154c6:	8d 76 00             	lea    0x0(%esi),%esi
   154c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000154d0 <_TdiBuildNullConnectionInfo>:
   154d0:	55                   	push   %ebp
   154d1:	89 e5                	mov    %esp,%ebp
   154d3:	57                   	push   %edi
   154d4:	56                   	push   %esi
   154d5:	53                   	push   %ebx
   154d6:	83 ec 18             	sub    $0x18,%esp
   154d9:	8b 75 0c             	mov    0xc(%ebp),%esi
   154dc:	56                   	push   %esi
   154dd:	e8 2e fe ff ff       	call   15310 <_TdiAddressSizeFromType>
   154e2:	59                   	pop    %ecx
   154e3:	89 c7                	mov    %eax,%edi
   154e5:	5b                   	pop    %ebx
   154e6:	8d 40 18             	lea    0x18(%eax),%eax
   154e9:	50                   	push   %eax
   154ea:	6a 00                	push   $0x0
   154ec:	ff 15 18 a1 01 00    	call   *0x1a118
   154f2:	89 c3                	mov    %eax,%ebx
   154f4:	58                   	pop    %eax
   154f5:	85 db                	test   %ebx,%ebx
   154f7:	5a                   	pop    %edx
   154f8:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   154fd:	74 22                	je     15521 <_TdiBuildNullConnectionInfo+0x51>
   154ff:	50                   	push   %eax
   15500:	50                   	push   %eax
   15501:	56                   	push   %esi
   15502:	53                   	push   %ebx
   15503:	e8 58 ff ff ff       	call   15460 <_TdiBuildNullConnectionInfoInPlace>
   15508:	83 c4 10             	add    $0x10,%esp
   1550b:	89 c6                	mov    %eax,%esi
   1550d:	85 c0                	test   %eax,%eax
   1550f:	78 18                	js     15529 <_TdiBuildNullConnectionInfo+0x59>
   15511:	8b 45 08             	mov    0x8(%ebp),%eax
   15514:	89 18                	mov    %ebx,(%eax)
   15516:	8d 43 18             	lea    0x18(%ebx),%eax
   15519:	89 7b 10             	mov    %edi,0x10(%ebx)
   1551c:	89 43 14             	mov    %eax,0x14(%ebx)
   1551f:	89 f0                	mov    %esi,%eax
   15521:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15524:	5b                   	pop    %ebx
   15525:	5e                   	pop    %esi
   15526:	5f                   	pop    %edi
   15527:	5d                   	pop    %ebp
   15528:	c3                   	ret    
   15529:	83 ec 0c             	sub    $0xc,%esp
   1552c:	53                   	push   %ebx
   1552d:	ff 15 1c a1 01 00    	call   *0x1a11c
   15533:	83 c4 0c             	add    $0xc,%esp
   15536:	eb de                	jmp    15516 <_TdiBuildNullConnectionInfo+0x46>
   15538:	90                   	nop    
   15539:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015540 <_TdiBuildConnectionInfoInPlace>:
   15540:	55                   	push   %ebp
   15541:	89 e5                	mov    %esp,%ebp
   15543:	83 ec 0c             	sub    $0xc,%esp
   15546:	8b 45 08             	mov    0x8(%ebp),%eax
   15549:	8b 55 0c             	mov    0xc(%ebp),%edx
   1554c:	8b 48 10             	mov    0x10(%eax),%ecx
   1554f:	51                   	push   %ecx
   15550:	52                   	push   %edx
   15551:	8b 40 14             	mov    0x14(%eax),%eax
   15554:	50                   	push   %eax
   15555:	e8 e6 0a 00 00       	call   16040 <_memcpy>
   1555a:	31 c0                	xor    %eax,%eax
   1555c:	c9                   	leave  
   1555d:	c3                   	ret    
   1555e:	89 f6                	mov    %esi,%esi

00015560 <_TdiBuildConnectionInfo>:
   15560:	55                   	push   %ebp
   15561:	89 e5                	mov    %esp,%ebp
   15563:	57                   	push   %edi
   15564:	56                   	push   %esi
   15565:	53                   	push   %ebx
   15566:	83 ec 14             	sub    $0x14,%esp
   15569:	8b 75 0c             	mov    0xc(%ebp),%esi
   1556c:	8b 7d 08             	mov    0x8(%ebp),%edi
   1556f:	66 8b 46 06          	mov    0x6(%esi),%ax
   15573:	25 ff ff 00 00       	and    $0xffff,%eax
   15578:	50                   	push   %eax
   15579:	57                   	push   %edi
   1557a:	e8 51 ff ff ff       	call   154d0 <_TdiBuildNullConnectionInfo>
   1557f:	83 c4 10             	add    $0x10,%esp
   15582:	89 c3                	mov    %eax,%ebx
   15584:	85 c0                	test   %eax,%eax
   15586:	78 0e                	js     15596 <_TdiBuildConnectionInfo+0x36>
   15588:	50                   	push   %eax
   15589:	50                   	push   %eax
   1558a:	56                   	push   %esi
   1558b:	8b 37                	mov    (%edi),%esi
   1558d:	56                   	push   %esi
   1558e:	e8 ad ff ff ff       	call   15540 <_TdiBuildConnectionInfoInPlace>
   15593:	83 c4 10             	add    $0x10,%esp
   15596:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15599:	89 d8                	mov    %ebx,%eax
   1559b:	5b                   	pop    %ebx
   1559c:	5e                   	pop    %esi
   1559d:	5f                   	pop    %edi
   1559e:	5d                   	pop    %ebp
   1559f:	c3                   	ret    

000155a0 <_TdiBuildConnectionInfoPair>:
   155a0:	55                   	push   %ebp
   155a1:	89 e5                	mov    %esp,%ebp
   155a3:	57                   	push   %edi
   155a4:	56                   	push   %esi
   155a5:	53                   	push   %ebx
   155a6:	83 ec 18             	sub    $0x18,%esp
   155a9:	8b 55 0c             	mov    0xc(%ebp),%edx
   155ac:	66 8b 42 06          	mov    0x6(%edx),%ax
   155b0:	25 ff ff 00 00       	and    $0xffff,%eax
   155b5:	50                   	push   %eax
   155b6:	e8 55 fd ff ff       	call   15310 <_TdiAddressSizeFromType>
   155bb:	59                   	pop    %ecx
   155bc:	5b                   	pop    %ebx
   155bd:	8d 78 18             	lea    0x18(%eax),%edi
   155c0:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
   155c3:	53                   	push   %ebx
   155c4:	6a 00                	push   $0x0
   155c6:	ff 15 18 a1 01 00    	call   *0x1a118
   155cc:	89 c6                	mov    %eax,%esi
   155ce:	58                   	pop    %eax
   155cf:	85 f6                	test   %esi,%esi
   155d1:	5a                   	pop    %edx
   155d2:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   155d7:	74 34                	je     1560d <_TdiBuildConnectionInfoPair+0x6d>
   155d9:	50                   	push   %eax
   155da:	53                   	push   %ebx
   155db:	6a 00                	push   $0x0
   155dd:	56                   	push   %esi
   155de:	e8 7d 0b 00 00       	call   16160 <_memset>
   155e3:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
   155e6:	83 c4 10             	add    $0x10,%esp
   155e9:	8d 1c c6             	lea    (%esi,%eax,8),%ebx
   155ec:	8b 45 0c             	mov    0xc(%ebp),%eax
   155ef:	85 c0                	test   %eax,%eax
   155f1:	74 22                	je     15615 <_TdiBuildConnectionInfoPair+0x75>
   155f3:	8b 7d 0c             	mov    0xc(%ebp),%edi
   155f6:	50                   	push   %eax
   155f7:	50                   	push   %eax
   155f8:	57                   	push   %edi
   155f9:	56                   	push   %esi
   155fa:	e8 41 ff ff ff       	call   15540 <_TdiBuildConnectionInfoInPlace>
   155ff:	58                   	pop    %eax
   15600:	8b 45 10             	mov    0x10(%ebp),%eax
   15603:	5a                   	pop    %edx
   15604:	50                   	push   %eax
   15605:	53                   	push   %ebx
   15606:	e8 35 ff ff ff       	call   15540 <_TdiBuildConnectionInfoInPlace>
   1560b:	31 c0                	xor    %eax,%eax
   1560d:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15610:	5b                   	pop    %ebx
   15611:	5e                   	pop    %esi
   15612:	5f                   	pop    %edi
   15613:	5d                   	pop    %ebp
   15614:	c3                   	ret    
   15615:	51                   	push   %ecx
   15616:	51                   	push   %ecx
   15617:	66 a1 06 00 00 00    	mov    0x6,%ax
   1561d:	25 ff ff 00 00       	and    $0xffff,%eax
   15622:	50                   	push   %eax
   15623:	56                   	push   %esi
   15624:	e8 37 fe ff ff       	call   15460 <_TdiBuildNullConnectionInfoInPlace>
   15629:	eb d4                	jmp    155ff <_TdiBuildConnectionInfoPair+0x5f>
   1562b:	90                   	nop    
   1562c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015630 <_TdiGetRemoteAddress>:
   15630:	55                   	push   %ebp
   15631:	89 e5                	mov    %esp,%ebp
   15633:	8b 45 08             	mov    0x8(%ebp),%eax
   15636:	5d                   	pop    %ebp
   15637:	8b 40 14             	mov    0x14(%eax),%eax
   1563a:	c3                   	ret    
   1563b:	90                   	nop    
   1563c:	90                   	nop    
   1563d:	90                   	nop    
   1563e:	90                   	nop    
   1563f:	90                   	nop    

00015640 <_SendComplete@12>:
   15640:	55                   	push   %ebp
   15641:	89 e5                	mov    %esp,%ebp
   15643:	57                   	push   %edi
   15644:	56                   	push   %esi
   15645:	53                   	push   %ebx
   15646:	83 ec 28             	sub    $0x28,%esp
   15649:	8b 45 0c             	mov    0xc(%ebp),%eax
   1564c:	8b 75 10             	mov    0x10(%ebp),%esi
   1564f:	8b 50 60             	mov    0x60(%eax),%edx
   15652:	8b 78 18             	mov    0x18(%eax),%edi
   15655:	89 55 f0             	mov    %edx,0xfffffff0(%ebp)
   15658:	56                   	push   %esi
   15659:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   15660:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   15667:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   1566e:	e8 8d cd ff ff       	call   12400 <_SocketAcquireStateLock>
   15673:	83 c4 10             	add    $0x10,%esp
   15676:	89 fa                	mov    %edi,%edx
   15678:	85 c0                	test   %eax,%eax
   1567a:	0f 84 f7 00 00 00    	je     15777 <_SendComplete@12+0x137>
   15680:	c7 86 84 00 00 00 00 	movl   $0x0,0x84(%esi)
   15687:	00 00 00 
   1568a:	81 7e 04 00 01 00 00 	cmpl   $0x100,0x4(%esi)
   15691:	0f 84 31 02 00 00    	je     158c8 <_SendComplete@12+0x288>
   15697:	85 ff                	test   %edi,%edi
   15699:	0f 88 41 02 00 00    	js     158e0 <_SendComplete@12+0x2a0>
   1569f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   156a2:	50                   	push   %eax
   156a3:	8b 86 9c 00 00 00    	mov    0x9c(%esi),%eax
   156a9:	8b 59 1c             	mov    0x1c(%ecx),%ebx
   156ac:	89 c2                	mov    %eax,%edx
   156ae:	29 da                	sub    %ebx,%edx
   156b0:	52                   	push   %edx
   156b1:	8b 96 98 00 00 00    	mov    0x98(%esi),%edx
   156b7:	8d 04 02             	lea    (%edx,%eax,1),%eax
   156ba:	50                   	push   %eax
   156bb:	52                   	push   %edx
   156bc:	e8 6f 0b 00 00       	call   16230 <_memmove>
   156c1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   156c4:	8b 86 9c 00 00 00    	mov    0x9c(%esi),%eax
   156ca:	8b 53 1c             	mov    0x1c(%ebx),%edx
   156cd:	29 d0                	sub    %edx,%eax
   156cf:	83 c4 10             	add    $0x10,%esp
   156d2:	89 86 9c 00 00 00    	mov    %eax,0x9c(%esi)
   156d8:	85 c0                	test   %eax,%eax
   156da:	0f 84 a3 00 00 00    	je     15783 <_SendComplete@12+0x143>
   156e0:	8b 86 00 01 00 00    	mov    0x100(%esi),%eax
   156e6:	83 ec 0c             	sub    $0xc,%esp
   156e9:	83 e0 fb             	and    $0xfffffffb,%eax
   156ec:	89 86 00 01 00 00    	mov    %eax,0x100(%esi)
   156f2:	56                   	push   %esi
   156f3:	e8 48 cf ff ff       	call   12640 <_SocketCalloutEnter>
   156f8:	8d 86 88 00 00 00    	lea    0x88(%esi),%eax
   156fe:	56                   	push   %esi
   156ff:	68 40 56 01 00       	push   $0x15640
   15704:	50                   	push   %eax
   15705:	8b 86 9c 00 00 00    	mov    0x9c(%esi),%eax
   1570b:	50                   	push   %eax
   1570c:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
   15712:	50                   	push   %eax
   15713:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   15716:	6a 00                	push   $0x0
   15718:	8b 78 18             	mov    0x18(%eax),%edi
   1571b:	8d 86 84 00 00 00    	lea    0x84(%esi),%eax
   15721:	57                   	push   %edi
   15722:	50                   	push   %eax
   15723:	e8 e8 f2 ff ff       	call   14a10 <_TdiSend>
   15728:	83 c4 24             	add    $0x24,%esp
   1572b:	89 c7                	mov    %eax,%edi
   1572d:	56                   	push   %esi
   1572e:	e8 2d cf ff ff       	call   12660 <_SocketCalloutLeave>
   15733:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   15736:	83 c4 10             	add    $0x10,%esp
   15739:	85 c0                	test   %eax,%eax
   1573b:	0f 85 fb 01 00 00    	jne    1593c <_SendComplete@12+0x2fc>
   15741:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   15744:	85 c0                	test   %eax,%eax
   15746:	74 24                	je     1576c <_SendComplete@12+0x12c>
static __inline VOID
InsertHeadList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   15748:	8b 55 0c             	mov    0xc(%ebp),%edx
  PLIST_ENTRY OldFlink;
  OldFlink = ListHead->Flink;
   1574b:	8b 8e 18 01 00 00    	mov    0x118(%esi),%ecx
   15751:	83 c2 58             	add    $0x58,%edx
  Entry->Flink = OldFlink;
   15754:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   15757:	8d 86 18 01 00 00    	lea    0x118(%esi),%eax
   1575d:	89 4b 58             	mov    %ecx,0x58(%ebx)
  Entry->Blink = ListHead;
   15760:	89 42 04             	mov    %eax,0x4(%edx)
  OldFlink->Blink = Entry;
  ListHead->Flink = Entry;
   15763:	89 96 18 01 00 00    	mov    %edx,0x118(%esi)
   15769:	89 51 04             	mov    %edx,0x4(%ecx)
   1576c:	83 ec 0c             	sub    $0xc,%esp
   1576f:	56                   	push   %esi
   15770:	e8 2b cd ff ff       	call   124a0 <_SocketStateUnlock>
   15775:	31 d2                	xor    %edx,%edx
   15777:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1577a:	89 d0                	mov    %edx,%eax
   1577c:	5b                   	pop    %ebx
   1577d:	5e                   	pop    %esi
   1577e:	5f                   	pop    %edi
   1577f:	5d                   	pop    %ebp
   15780:	c2 0c 00             	ret    $0xc
   15783:	8d 86 18 01 00 00    	lea    0x118(%esi),%eax
   15789:	39 86 18 01 00 00    	cmp    %eax,0x118(%esi)
   1578f:	89 f8                	mov    %edi,%eax
   15791:	0f 95 c2             	setne  %dl
   15794:	83 f0 ff             	xor    $0xffffffff,%eax
   15797:	c1 e8 1f             	shr    $0x1f,%eax
   1579a:	85 c2                	test   %eax,%edx
   1579c:	0f 84 f5 00 00 00    	je     15897 <_SendComplete@12+0x257>
{
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
   157a2:	8b 96 10 01 00 00    	mov    0x110(%esi),%edx
   157a8:	8d 8e 10 01 00 00    	lea    0x110(%esi),%ecx
   157ae:	8b 9e a0 00 00 00    	mov    0xa0(%esi),%ebx
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
   157b4:	8b 02                	mov    (%edx),%eax
   157b6:	83 ea 58             	sub    $0x58,%edx
   157b9:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
   157bc:	89 86 10 01 00 00    	mov    %eax,0x110(%esi)
  Flink->Blink = ListHead;
   157c2:	89 48 04             	mov    %ecx,0x4(%eax)
   157c5:	8b 42 60             	mov    0x60(%edx),%eax
   157c8:	8b 40 10             	mov    0x10(%eax),%eax
   157cb:	89 5d dc             	mov    %ebx,0xffffffdc(%ebp)
   157ce:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   157d1:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
   157d8:	8b 50 04             	mov    0x4(%eax),%edx
   157db:	8b 00                	mov    (%eax),%eax
   157dd:	8d 04 d0             	lea    (%eax,%edx,8),%eax
   157e0:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   157e3:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   157e6:	3b 86 a4 00 00 00    	cmp    0xa4(%esi),%eax
   157ec:	0f 83 a5 00 00 00    	jae    15897 <_SendComplete@12+0x257>
   157f2:	83 fa 00             	cmp    $0x0,%edx
   157f5:	0f 86 9c 00 00 00    	jbe    15897 <_SendComplete@12+0x257>
   157fb:	8b 55 d8             	mov    0xffffffd8(%ebp),%edx
   157fe:	8b 4d e4             	mov    0xffffffe4(%ebp),%ecx
   15801:	50                   	push   %eax
   15802:	50                   	push   %eax
   15803:	6a 00                	push   $0x0
   15805:	8b 5c d1 04          	mov    0x4(%ecx,%edx,8),%ebx
   15809:	53                   	push   %ebx
   1580a:	ff 15 6c a1 01 00    	call   *0x1a16c
   15810:	8b 5d d8             	mov    0xffffffd8(%ebp),%ebx
   15813:	89 c2                	mov    %eax,%edx
   15815:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   15818:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   1581b:	89 14 d8             	mov    %edx,(%eax,%ebx,8)
   1581e:	8b 01                	mov    (%ecx),%eax
   15820:	8b 1c d8             	mov    (%eax,%ebx,8),%ebx
   15823:	58                   	pop    %eax
   15824:	3b 5d dc             	cmp    0xffffffdc(%ebp),%ebx
   15827:	59                   	pop    %ecx
   15828:	76 03                	jbe    1582d <_SendComplete@12+0x1ed>
   1582a:	8b 5d dc             	mov    0xffffffdc(%ebp),%ebx
   1582d:	8b 8e 9c 00 00 00    	mov    0x9c(%esi),%ecx
   15833:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
   15839:	01 c8                	add    %ecx,%eax
   1583b:	51                   	push   %ecx
   1583c:	53                   	push   %ebx
   1583d:	52                   	push   %edx
   1583e:	50                   	push   %eax
   1583f:	e8 fc 07 00 00       	call   16040 <_memcpy>
   15844:	58                   	pop    %eax
   15845:	8b 45 d8             	mov    0xffffffd8(%ebp),%eax
   15848:	5a                   	pop    %edx
   15849:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   1584c:	6a 00                	push   $0x0
   1584e:	8b 44 c2 04          	mov    0x4(%edx,%eax,8),%eax
   15852:	50                   	push   %eax
   15853:	ff 15 78 a1 01 00    	call   *0x1a178
   15859:	8b 55 dc             	mov    0xffffffdc(%ebp),%edx
   1585c:	8b 86 9c 00 00 00    	mov    0x9c(%esi),%eax
   15862:	29 da                	sub    %ebx,%edx
   15864:	01 d8                	add    %ebx,%eax
   15866:	8b 4d e0             	mov    0xffffffe0(%ebp),%ecx
   15869:	89 55 dc             	mov    %edx,0xffffffdc(%ebp)
   1586c:	8b 55 d8             	mov    0xffffffd8(%ebp),%edx
   1586f:	01 d9                	add    %ebx,%ecx
   15871:	89 86 9c 00 00 00    	mov    %eax,0x9c(%esi)
   15877:	42                   	inc    %edx
   15878:	89 4d e0             	mov    %ecx,0xffffffe0(%ebp)
   1587b:	89 55 d8             	mov    %edx,0xffffffd8(%ebp)
   1587e:	59                   	pop    %ecx
   1587f:	3b 86 a4 00 00 00    	cmp    0xa4(%esi),%eax
   15885:	5b                   	pop    %ebx
   15886:	73 0f                	jae    15897 <_SendComplete@12+0x257>
   15888:	8b 5d e8             	mov    0xffffffe8(%ebp),%ebx
   1588b:	8b 4d d8             	mov    0xffffffd8(%ebp),%ecx
   1588e:	39 4b 04             	cmp    %ecx,0x4(%ebx)
   15891:	0f 87 64 ff ff ff    	ja     157fb <_SendComplete@12+0x1bb>
   15897:	8b 86 9c 00 00 00    	mov    0x9c(%esi),%eax
   1589d:	85 c0                	test   %eax,%eax
   1589f:	0f 85 3b fe ff ff    	jne    156e0 <_SendComplete@12+0xa0>
   158a5:	8b 9e 00 01 00 00    	mov    0x100(%esi),%ebx
   158ab:	83 cb 04             	or     $0x4,%ebx
   158ae:	89 9e 00 01 00 00    	mov    %ebx,0x100(%esi)
   158b4:	51                   	push   %ecx
   158b5:	51                   	push   %ecx
   158b6:	8b 56 1c             	mov    0x1c(%esi),%edx
   158b9:	52                   	push   %edx
   158ba:	8b 46 20             	mov    0x20(%esi),%eax
   158bd:	50                   	push   %eax
   158be:	e8 2d e9 ff ff       	call   141f0 <_PollReeval>
   158c3:	e9 6b fe ff ff       	jmp    15733 <_SendComplete@12+0xf3>
   158c8:	83 ec 0c             	sub    $0xc,%esp
   158cb:	56                   	push   %esi
   158cc:	e8 cf cb ff ff       	call   124a0 <_SocketStateUnlock>
   158d1:	89 34 24             	mov    %esi,(%esp)
   158d4:	e8 57 d0 ff ff       	call   12930 <_DestroySocket>
   158d9:	31 d2                	xor    %edx,%edx
   158db:	e9 97 fe ff ff       	jmp    15777 <_SendComplete@12+0x137>
   158e0:	8d 9e 18 01 00 00    	lea    0x118(%esi),%ebx
   158e6:	eb 45                	jmp    1592d <_SendComplete@12+0x2ed>
{
  PLIST_ENTRY Flink;
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
   158e8:	89 d0                	mov    %edx,%eax
  Flink = Entry->Flink;
   158ea:	8b 12                	mov    (%edx),%edx
   158ec:	83 e8 58             	sub    $0x58,%eax
  PLIST_ENTRY Entry;

  Entry = ListHead->Flink;
  Flink = Entry->Flink;
  ListHead->Flink = Flink;
   158ef:	89 96 18 01 00 00    	mov    %edx,0x118(%esi)
  Flink->Blink = ListHead;
   158f5:	89 5a 04             	mov    %ebx,0x4(%edx)
   158f8:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   158fb:	8b 40 60             	mov    0x60(%eax),%eax
   158fe:	8b 40 10             	mov    0x10(%eax),%eax
   15901:	51                   	push   %ecx
   15902:	6a 00                	push   $0x0
   15904:	8b 50 04             	mov    0x4(%eax),%edx
   15907:	52                   	push   %edx
   15908:	8b 00                	mov    (%eax),%eax
   1590a:	50                   	push   %eax
   1590b:	e8 a0 c9 ff ff       	call   122b0 <_UnlockBuffers>
   15910:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   15913:	ba 02 00 00 00       	mov    $0x2,%edx
   15918:	89 c1                	mov    %eax,%ecx
   1591a:	89 78 18             	mov    %edi,0x18(%eax)
   1591d:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   15924:	ff 15 0c a1 01 00    	call   *0x1a10c
   1592a:	83 c4 10             	add    $0x10,%esp
   1592d:	8b 96 18 01 00 00    	mov    0x118(%esi),%edx
   15933:	39 da                	cmp    %ebx,%edx
   15935:	75 b1                	jne    158e8 <_SendComplete@12+0x2a8>
   15937:	e9 30 fe ff ff       	jmp    1576c <_SendComplete@12+0x12c>
   1593c:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   1593f:	50                   	push   %eax
   15940:	6a 00                	push   $0x0
   15942:	8b 42 04             	mov    0x4(%edx),%eax
   15945:	50                   	push   %eax
   15946:	8b 02                	mov    (%edx),%eax
   15948:	50                   	push   %eax
   15949:	e8 62 c9 ff ff       	call   122b0 <_UnlockBuffers>
   1594e:	81 ff 03 01 00 00    	cmp    $0x103,%edi
   15954:	5b                   	pop    %ebx
   15955:	58                   	pop    %eax
   15956:	8b 55 0c             	mov    0xc(%ebp),%edx
   15959:	0f 95 c0             	setne  %al
   1595c:	25 ff 00 00 00       	and    $0xff,%eax
   15961:	8b 4d e0             	mov    0xffffffe0(%ebp),%ecx
   15964:	f7 d8                	neg    %eax
   15966:	21 f8                	and    %edi,%eax
   15968:	6a 01                	push   $0x1
   1596a:	6a 00                	push   $0x0
   1596c:	51                   	push   %ecx
   1596d:	52                   	push   %edx
   1596e:	50                   	push   %eax
   1596f:	56                   	push   %esi
   15970:	e8 8b cb ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   15975:	89 c2                	mov    %eax,%edx
   15977:	e9 fb fd ff ff       	jmp    15777 <_SendComplete@12+0x137>
   1597c:	8d 74 26 00          	lea    0x0(%esi),%esi

00015980 <_PacketSocketSendComplete@12>:
   15980:	55                   	push   %ebp
   15981:	89 e5                	mov    %esp,%ebp
   15983:	53                   	push   %ebx
   15984:	83 ec 10             	sub    $0x10,%esp
   15987:	8b 5d 10             	mov    0x10(%ebp),%ebx
   1598a:	53                   	push   %ebx
   1598b:	e8 70 ca ff ff       	call   12400 <_SocketAcquireStateLock>
   15990:	83 c4 10             	add    $0x10,%esp
   15993:	85 c0                	test   %eax,%eax
   15995:	75 09                	jne    159a0 <_PacketSocketSendComplete@12+0x20>
   15997:	31 c0                	xor    %eax,%eax
   15999:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1599c:	c9                   	leave  
   1599d:	c2 0c 00             	ret    $0xc
   159a0:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   159a6:	83 c8 04             	or     $0x4,%eax
   159a9:	89 83 00 01 00 00    	mov    %eax,0x100(%ebx)
   159af:	50                   	push   %eax
   159b0:	50                   	push   %eax
   159b1:	8b 43 1c             	mov    0x1c(%ebx),%eax
   159b4:	50                   	push   %eax
   159b5:	8b 43 20             	mov    0x20(%ebx),%eax
   159b8:	50                   	push   %eax
   159b9:	e8 32 e8 ff ff       	call   141f0 <_PollReeval>
   159be:	83 c4 10             	add    $0x10,%esp
   159c1:	c7 83 84 00 00 00 00 	movl   $0x0,0x84(%ebx)
   159c8:	00 00 00 
   159cb:	81 7b 04 00 01 00 00 	cmpl   $0x100,0x4(%ebx)
   159d2:	74 12                	je     159e6 <_PacketSocketSendComplete@12+0x66>
   159d4:	83 ec 0c             	sub    $0xc,%esp
   159d7:	53                   	push   %ebx
   159d8:	e8 c3 ca ff ff       	call   124a0 <_SocketStateUnlock>
   159dd:	31 c0                	xor    %eax,%eax
   159df:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   159e2:	c9                   	leave  
   159e3:	c2 0c 00             	ret    $0xc
   159e6:	83 ec 0c             	sub    $0xc,%esp
   159e9:	53                   	push   %ebx
   159ea:	e8 b1 ca ff ff       	call   124a0 <_SocketStateUnlock>
   159ef:	89 1c 24             	mov    %ebx,(%esp)
   159f2:	e8 39 cf ff ff       	call   12930 <_DestroySocket>
   159f7:	eb 9e                	jmp    15997 <_PacketSocketSendComplete@12+0x17>
   159f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015a00 <_AfdConnectedSocketWriteData@16>:
   15a00:	55                   	push   %ebp
   15a01:	89 e5                	mov    %esp,%ebp
   15a03:	57                   	push   %edi
   15a04:	56                   	push   %esi
   15a05:	53                   	push   %ebx
   15a06:	83 ec 28             	sub    $0x28,%esp
   15a09:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   15a10:	8b 75 10             	mov    0x10(%ebp),%esi
   15a13:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   15a1a:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   15a21:	8b 46 18             	mov    0x18(%esi),%eax
   15a24:	8b 58 0c             	mov    0xc(%eax),%ebx
   15a27:	53                   	push   %ebx
   15a28:	e8 d3 c9 ff ff       	call   12400 <_SocketAcquireStateLock>
   15a2d:	83 c4 10             	add    $0x10,%esp
   15a30:	85 c0                	test   %eax,%eax
   15a32:	74 7c                	je     15ab0 <_AfdConnectedSocketWriteData@16+0xb0>
   15a34:	8b 83 f0 00 00 00    	mov    0xf0(%ebx),%eax
   15a3a:	83 e0 fb             	and    $0xfffffffb,%eax
   15a3d:	f6 43 08 01          	testb  $0x1,0x8(%ebx)
   15a41:	89 83 f0 00 00 00    	mov    %eax,0xf0(%ebx)
   15a47:	74 27                	je     15a70 <_AfdConnectedSocketWriteData@16+0x70>
   15a49:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
   15a4d:	74 78                	je     15ac7 <_AfdConnectedSocketWriteData@16+0xc7>
   15a4f:	50                   	push   %eax
   15a50:	50                   	push   %eax
   15a51:	6a 00                	push   $0x0
   15a53:	6a 00                	push   $0x0
   15a55:	6a 00                	push   $0x0
   15a57:	8b 45 0c             	mov    0xc(%ebp),%eax
   15a5a:	50                   	push   %eax
   15a5b:	68 01 00 00 c0       	push   $0xc0000001
   15a60:	53                   	push   %ebx
   15a61:	e8 9a ca ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   15a66:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15a69:	5b                   	pop    %ebx
   15a6a:	5e                   	pop    %esi
   15a6b:	5f                   	pop    %edi
   15a6c:	5d                   	pop    %ebp
   15a6d:	c2 10 00             	ret    $0x10
   15a70:	50                   	push   %eax
   15a71:	50                   	push   %eax
   15a72:	56                   	push   %esi
   15a73:	8b 45 0c             	mov    0xc(%ebp),%eax
   15a76:	50                   	push   %eax
   15a77:	e8 94 c6 ff ff       	call   12110 <_LockRequest>
   15a7c:	83 c4 10             	add    $0x10,%esp
   15a7f:	89 c7                	mov    %eax,%edi
   15a81:	85 c0                	test   %eax,%eax
   15a83:	0f 84 0a 01 00 00    	je     15b93 <_AfdConnectedSocketWriteData@16+0x193>
   15a89:	83 7b 04 03          	cmpl   $0x3,0x4(%ebx)
   15a8d:	0f 84 16 01 00 00    	je     15ba9 <_AfdConnectedSocketWriteData@16+0x1a9>
   15a93:	f6 47 08 04          	testb  $0x4,0x8(%edi)
   15a97:	0f 84 e4 00 00 00    	je     15b81 <_AfdConnectedSocketWriteData@16+0x181>
   15a9d:	51                   	push   %ecx
   15a9e:	51                   	push   %ecx
   15a9f:	6a 01                	push   $0x1
   15aa1:	6a 00                	push   $0x0
   15aa3:	6a 00                	push   $0x0
   15aa5:	8b 55 0c             	mov    0xc(%ebp),%edx
   15aa8:	52                   	push   %edx
   15aa9:	68 d8 00 00 c0       	push   $0xc00000d8
   15aae:	eb b0                	jmp    15a60 <_AfdConnectedSocketWriteData@16+0x60>
   15ab0:	52                   	push   %edx
   15ab1:	52                   	push   %edx
   15ab2:	6a 00                	push   $0x0
   15ab4:	8b 45 0c             	mov    0xc(%ebp),%eax
   15ab7:	50                   	push   %eax
   15ab8:	e8 d3 ca ff ff       	call   12590 <_LostSocket>
   15abd:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15ac0:	5b                   	pop    %ebx
   15ac1:	5e                   	pop    %esi
   15ac2:	5f                   	pop    %edi
   15ac3:	5d                   	pop    %ebp
   15ac4:	c2 10 00             	ret    $0x10
   15ac7:	50                   	push   %eax
   15ac8:	50                   	push   %eax
   15ac9:	56                   	push   %esi
   15aca:	8b 45 0c             	mov    0xc(%ebp),%eax
   15acd:	50                   	push   %eax
   15ace:	e8 3d c6 ff ff       	call   12110 <_LockRequest>
   15ad3:	83 c4 10             	add    $0x10,%esp
   15ad6:	89 c6                	mov    %eax,%esi
   15ad8:	85 c0                	test   %eax,%eax
   15ada:	0f 84 b3 00 00 00    	je     15b93 <_AfdConnectedSocketWriteData@16+0x193>
   15ae0:	57                   	push   %edi
   15ae1:	57                   	push   %edi
   15ae2:	6a 00                	push   $0x0
   15ae4:	6a 00                	push   $0x0
   15ae6:	6a 00                	push   $0x0
   15ae8:	6a 00                	push   $0x0
   15aea:	8b 48 04             	mov    0x4(%eax),%ecx
   15aed:	51                   	push   %ecx
   15aee:	8b 10                	mov    (%eax),%edx
   15af0:	52                   	push   %edx
   15af1:	e8 ba c6 ff ff       	call   121b0 <_LockBuffers>
   15af6:	83 c4 18             	add    $0x18,%esp
   15af9:	89 06                	mov    %eax,(%esi)
   15afb:	8b 43 30             	mov    0x30(%ebx),%eax
   15afe:	50                   	push   %eax
   15aff:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   15b02:	50                   	push   %eax
   15b03:	e8 58 fa ff ff       	call   15560 <_TdiBuildConnectionInfo>
   15b08:	89 1c 24             	mov    %ebx,(%esp)
   15b0b:	e8 30 cb ff ff       	call   12640 <_SocketCalloutEnter>
   15b10:	8d 83 88 00 00 00    	lea    0x88(%ebx),%eax
   15b16:	53                   	push   %ebx
   15b17:	68 80 59 01 00       	push   $0x15980
   15b1c:	50                   	push   %eax
   15b1d:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   15b20:	50                   	push   %eax
   15b21:	8b 06                	mov    (%esi),%eax
   15b23:	8b 00                	mov    (%eax),%eax
   15b25:	50                   	push   %eax
   15b26:	8b 06                	mov    (%esi),%eax
   15b28:	8b 40 04             	mov    0x4(%eax),%eax
   15b2b:	50                   	push   %eax
   15b2c:	8b 43 38             	mov    0x38(%ebx),%eax
   15b2f:	50                   	push   %eax
   15b30:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax
   15b36:	50                   	push   %eax
   15b37:	e8 f4 f4 ff ff       	call   15030 <_TdiSendDatagram>
   15b3c:	83 c4 24             	add    $0x24,%esp
   15b3f:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   15b42:	53                   	push   %ebx
   15b43:	e8 18 cb ff ff       	call   12660 <_SocketCalloutLeave>
   15b48:	58                   	pop    %eax
   15b49:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
   15b4c:	57                   	push   %edi
   15b4d:	ff 15 1c a1 01 00    	call   *0x1a11c
   15b53:	81 7d ec 03 01 00 00 	cmpl   $0x103,0xffffffec(%ebp)
   15b5a:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   15b5d:	c7 04 24 01 00 00 00 	movl   $0x1,(%esp)
   15b64:	6a 00                	push   $0x0
   15b66:	8b 16                	mov    (%esi),%edx
   15b68:	0f 95 c0             	setne  %al
   15b6b:	8b 12                	mov    (%edx),%edx
   15b6d:	25 ff 00 00 00       	and    $0xff,%eax
   15b72:	52                   	push   %edx
   15b73:	f7 d8                	neg    %eax
   15b75:	8b 75 0c             	mov    0xc(%ebp),%esi
   15b78:	21 c8                	and    %ecx,%eax
   15b7a:	56                   	push   %esi
   15b7b:	50                   	push   %eax
   15b7c:	e9 df fe ff ff       	jmp    15a60 <_AfdConnectedSocketWriteData@16+0x60>
   15b81:	50                   	push   %eax
   15b82:	6a 02                	push   $0x2
   15b84:	8b 45 0c             	mov    0xc(%ebp),%eax
   15b87:	50                   	push   %eax
   15b88:	53                   	push   %ebx
   15b89:	e8 62 ca ff ff       	call   125f0 <_LeaveIrpUntilLater>
   15b8e:	e9 d3 fe ff ff       	jmp    15a66 <_AfdConnectedSocketWriteData@16+0x66>
   15b93:	50                   	push   %eax
   15b94:	50                   	push   %eax
   15b95:	6a 00                	push   $0x0
   15b97:	6a 00                	push   $0x0
   15b99:	6a 00                	push   $0x0
   15b9b:	8b 45 0c             	mov    0xc(%ebp),%eax
   15b9e:	50                   	push   %eax
   15b9f:	68 17 00 00 c0       	push   $0xc0000017
   15ba4:	e9 b7 fe ff ff       	jmp    15a60 <_AfdConnectedSocketWriteData@16+0x60>
   15ba9:	50                   	push   %eax
   15baa:	50                   	push   %eax
   15bab:	6a 00                	push   $0x0
   15bad:	6a 00                	push   $0x0
   15baf:	6a 00                	push   $0x0
   15bb1:	6a 00                	push   $0x0
   15bb3:	8b 77 04             	mov    0x4(%edi),%esi
   15bb6:	56                   	push   %esi
   15bb7:	8b 0f                	mov    (%edi),%ecx
   15bb9:	51                   	push   %ecx
   15bba:	e8 f1 c5 ff ff       	call   121b0 <_LockBuffers>
   15bbf:	83 c4 20             	add    $0x20,%esp
   15bc2:	89 07                	mov    %eax,(%edi)
   15bc4:	8b 83 9c 00 00 00    	mov    0x9c(%ebx),%eax
   15bca:	85 c0                	test   %eax,%eax
   15bcc:	0f 85 c1 fe ff ff    	jne    15a93 <_AfdConnectedSocketWriteData@16+0x93>
   15bd2:	8b 93 a0 00 00 00    	mov    0xa0(%ebx),%edx
   15bd8:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
   15bdf:	89 55 e0             	mov    %edx,0xffffffe0(%ebp)
   15be2:	39 55 ec             	cmp    %edx,0xffffffec(%ebp)
   15be5:	73 75                	jae    15c5c <_AfdConnectedSocketWriteData@16+0x25c>
   15be7:	8b 57 04             	mov    0x4(%edi),%edx
   15bea:	85 d2                	test   %edx,%edx
   15bec:	75 0a                	jne    15bf8 <_AfdConnectedSocketWriteData@16+0x1f8>
   15bee:	eb 6c                	jmp    15c5c <_AfdConnectedSocketWriteData@16+0x25c>
   15bf0:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   15bf3:	39 57 04             	cmp    %edx,0x4(%edi)
   15bf6:	76 5d                	jbe    15c55 <_AfdConnectedSocketWriteData@16+0x255>
   15bf8:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   15bfb:	8b 0f                	mov    (%edi),%ecx
   15bfd:	8b 34 d1             	mov    (%ecx,%edx,8),%esi
   15c00:	89 f2                	mov    %esi,%edx
   15c02:	3b 75 e0             	cmp    0xffffffe0(%ebp),%esi
   15c05:	76 03                	jbe    15c0a <_AfdConnectedSocketWriteData@16+0x20a>
   15c07:	8b 75 e0             	mov    0xffffffe0(%ebp),%esi
   15c0a:	01 55 dc             	add    %edx,0xffffffdc(%ebp)
   15c0d:	8b 93 98 00 00 00    	mov    0x98(%ebx),%edx
   15c13:	01 d0                	add    %edx,%eax
   15c15:	52                   	push   %edx
   15c16:	56                   	push   %esi
   15c17:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   15c1a:	8b 4c d1 04          	mov    0x4(%ecx,%edx,8),%ecx
   15c1e:	51                   	push   %ecx
   15c1f:	50                   	push   %eax
   15c20:	e8 1b 04 00 00       	call   16040 <_memcpy>
   15c25:	8b 55 e8             	mov    0xffffffe8(%ebp),%edx
   15c28:	01 f2                	add    %esi,%edx
   15c2a:	8b 83 9c 00 00 00    	mov    0x9c(%ebx),%eax
   15c30:	8b 4d e0             	mov    0xffffffe0(%ebp),%ecx
   15c33:	89 55 e8             	mov    %edx,0xffffffe8(%ebp)
   15c36:	8b 55 e4             	mov    0xffffffe4(%ebp),%edx
   15c39:	01 f0                	add    %esi,%eax
   15c3b:	29 f1                	sub    %esi,%ecx
   15c3d:	42                   	inc    %edx
   15c3e:	83 c4 10             	add    $0x10,%esp
   15c41:	89 83 9c 00 00 00    	mov    %eax,0x9c(%ebx)
   15c47:	89 4d e0             	mov    %ecx,0xffffffe0(%ebp)
   15c4a:	89 55 e4             	mov    %edx,0xffffffe4(%ebp)
   15c4d:	3b 83 a0 00 00 00    	cmp    0xa0(%ebx),%eax
   15c53:	72 9b                	jb     15bf0 <_AfdConnectedSocketWriteData@16+0x1f0>
   15c55:	8b 45 dc             	mov    0xffffffdc(%ebp),%eax
   15c58:	85 c0                	test   %eax,%eax
   15c5a:	75 24                	jne    15c80 <_AfdConnectedSocketWriteData@16+0x280>
   15c5c:	50                   	push   %eax
   15c5d:	6a 00                	push   $0x0
   15c5f:	8b 47 04             	mov    0x4(%edi),%eax
   15c62:	50                   	push   %eax
   15c63:	8b 07                	mov    (%edi),%eax
   15c65:	50                   	push   %eax
   15c66:	e8 45 c6 ff ff       	call   122b0 <_UnlockBuffers>
   15c6b:	5e                   	pop    %esi
   15c6c:	5f                   	pop    %edi
   15c6d:	6a 01                	push   $0x1
   15c6f:	6a 00                	push   $0x0
   15c71:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   15c74:	51                   	push   %ecx
   15c75:	8b 55 0c             	mov    0xc(%ebp),%edx
   15c78:	52                   	push   %edx
   15c79:	6a 00                	push   $0x0
   15c7b:	e9 e0 fd ff ff       	jmp    15a60 <_AfdConnectedSocketWriteData@16+0x60>
   15c80:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   15c83:	85 c0                	test   %eax,%eax
   15c85:	0f 84 08 fe ff ff    	je     15a93 <_AfdConnectedSocketWriteData@16+0x93>
   15c8b:	50                   	push   %eax
   15c8c:	6a 00                	push   $0x0
   15c8e:	8b 47 04             	mov    0x4(%edi),%eax
   15c91:	50                   	push   %eax
   15c92:	8b 07                	mov    (%edi),%eax
   15c94:	50                   	push   %eax
   15c95:	e8 16 c6 ff ff       	call   122b0 <_UnlockBuffers>
   15c9a:	c7 83 84 00 00 00 01 	movl   $0x1,0x84(%ebx)
   15ca1:	00 00 00 
   15ca4:	89 1c 24             	mov    %ebx,(%esp)
   15ca7:	e8 94 c9 ff ff       	call   12640 <_SocketCalloutEnter>
   15cac:	8d 83 88 00 00 00    	lea    0x88(%ebx),%eax
   15cb2:	53                   	push   %ebx
   15cb3:	68 40 56 01 00       	push   $0x15640
   15cb8:	50                   	push   %eax
   15cb9:	8b 83 9c 00 00 00    	mov    0x9c(%ebx),%eax
   15cbf:	50                   	push   %eax
   15cc0:	8b 83 98 00 00 00    	mov    0x98(%ebx),%eax
   15cc6:	50                   	push   %eax
   15cc7:	6a 00                	push   $0x0
   15cc9:	8b 7b 40             	mov    0x40(%ebx),%edi
   15ccc:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax
   15cd2:	57                   	push   %edi
   15cd3:	50                   	push   %eax
   15cd4:	e8 37 ed ff ff       	call   14a10 <_TdiSend>
   15cd9:	83 c4 24             	add    $0x24,%esp
   15cdc:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   15cdf:	53                   	push   %ebx
   15ce0:	e8 7b c9 ff ff       	call   12660 <_SocketCalloutLeave>
   15ce5:	59                   	pop    %ecx
   15ce6:	5e                   	pop    %esi
   15ce7:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   15cea:	81 7d ec 03 01 00 00 	cmpl   $0x103,0xffffffec(%ebp)
   15cf1:	6a 01                	push   $0x1
   15cf3:	6a 00                	push   $0x0
   15cf5:	0f 95 c0             	setne  %al
   15cf8:	8b 7d e8             	mov    0xffffffe8(%ebp),%edi
   15cfb:	25 ff 00 00 00       	and    $0xff,%eax
   15d00:	57                   	push   %edi
   15d01:	f7 d8                	neg    %eax
   15d03:	8b 75 0c             	mov    0xc(%ebp),%esi
   15d06:	21 d0                	and    %edx,%eax
   15d08:	56                   	push   %esi
   15d09:	50                   	push   %eax
   15d0a:	e9 51 fd ff ff       	jmp    15a60 <_AfdConnectedSocketWriteData@16+0x60>
   15d0f:	90                   	nop    

00015d10 <_AfdPacketSocketWriteData@12>:
   15d10:	55                   	push   %ebp
   15d11:	89 e5                	mov    %esp,%ebp
   15d13:	57                   	push   %edi
   15d14:	56                   	push   %esi
   15d15:	53                   	push   %ebx
   15d16:	83 ec 18             	sub    $0x18,%esp
   15d19:	8b 75 10             	mov    0x10(%ebp),%esi
   15d1c:	8b 7d 0c             	mov    0xc(%ebp),%edi
   15d1f:	8b 46 18             	mov    0x18(%esi),%eax
   15d22:	8b 58 0c             	mov    0xc(%eax),%ebx
   15d25:	53                   	push   %ebx
   15d26:	e8 d5 c6 ff ff       	call   12400 <_SocketAcquireStateLock>
   15d2b:	83 c4 10             	add    $0x10,%esp
   15d2e:	85 c0                	test   %eax,%eax
   15d30:	0f 84 8a 00 00 00    	je     15dc0 <_AfdPacketSocketWriteData@12+0xb0>
   15d36:	8b 83 f0 00 00 00    	mov    0xf0(%ebx),%eax
   15d3c:	83 e0 fb             	and    $0xfffffffb,%eax
   15d3f:	89 83 f0 00 00 00    	mov    %eax,0xf0(%ebx)
   15d45:	8b 83 00 01 00 00    	mov    0x100(%ebx),%eax
   15d4b:	83 e0 fb             	and    $0xfffffffb,%eax
   15d4e:	89 83 00 01 00 00    	mov    %eax,0x100(%ebx)
   15d54:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
   15d58:	74 1e                	je     15d78 <_AfdPacketSocketWriteData@12+0x68>
   15d5a:	50                   	push   %eax
   15d5b:	50                   	push   %eax
   15d5c:	6a 00                	push   $0x0
   15d5e:	6a 00                	push   $0x0
   15d60:	6a 00                	push   $0x0
   15d62:	57                   	push   %edi
   15d63:	68 01 00 00 c0       	push   $0xc0000001
   15d68:	53                   	push   %ebx
   15d69:	e8 92 c7 ff ff       	call   12500 <_UnlockAndMaybeComplete@24>
   15d6e:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15d71:	5b                   	pop    %ebx
   15d72:	5e                   	pop    %esi
   15d73:	5f                   	pop    %edi
   15d74:	5d                   	pop    %ebp
   15d75:	c2 0c 00             	ret    $0xc
   15d78:	50                   	push   %eax
   15d79:	50                   	push   %eax
   15d7a:	56                   	push   %esi
   15d7b:	57                   	push   %edi
   15d7c:	e8 8f c3 ff ff       	call   12110 <_LockRequest>
   15d81:	83 c4 10             	add    $0x10,%esp
   15d84:	89 c6                	mov    %eax,%esi
   15d86:	85 c0                	test   %eax,%eax
   15d88:	74 4a                	je     15dd4 <_AfdPacketSocketWriteData@12+0xc4>
   15d8a:	51                   	push   %ecx
   15d8b:	51                   	push   %ecx
   15d8c:	8b 50 34             	mov    0x34(%eax),%edx
   15d8f:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   15d92:	52                   	push   %edx
   15d93:	50                   	push   %eax
   15d94:	e8 c7 f7 ff ff       	call   15560 <_TdiBuildConnectionInfo>
   15d99:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   15d9c:	83 c4 10             	add    $0x10,%esp
   15d9f:	c7 45 ec 17 00 00 c0 	movl   $0xc0000017,0xffffffec(%ebp)
   15da6:	85 c0                	test   %eax,%eax
   15da8:	75 3a                	jne    15de4 <_AfdPacketSocketWriteData@12+0xd4>
   15daa:	50                   	push   %eax
   15dab:	50                   	push   %eax
   15dac:	6a 01                	push   $0x1
   15dae:	6a 00                	push   $0x0
   15db0:	8b 06                	mov    (%esi),%eax
   15db2:	8b 30                	mov    (%eax),%esi
   15db4:	56                   	push   %esi
   15db5:	57                   	push   %edi
   15db6:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   15db9:	51                   	push   %ecx
   15dba:	eb ac                	jmp    15d68 <_AfdPacketSocketWriteData@12+0x58>
   15dbc:	8d 74 26 00          	lea    0x0(%esi),%esi
   15dc0:	50                   	push   %eax
   15dc1:	50                   	push   %eax
   15dc2:	6a 00                	push   $0x0
   15dc4:	57                   	push   %edi
   15dc5:	e8 c6 c7 ff ff       	call   12590 <_LostSocket>
   15dca:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   15dcd:	5b                   	pop    %ebx
   15dce:	5e                   	pop    %esi
   15dcf:	5f                   	pop    %edi
   15dd0:	5d                   	pop    %ebp
   15dd1:	c2 0c 00             	ret    $0xc
   15dd4:	56                   	push   %esi
   15dd5:	56                   	push   %esi
   15dd6:	6a 00                	push   $0x0
   15dd8:	6a 00                	push   $0x0
   15dda:	6a 00                	push   $0x0
   15ddc:	57                   	push   %edi
   15ddd:	68 17 00 00 c0       	push   $0xc0000017
   15de2:	eb 84                	jmp    15d68 <_AfdPacketSocketWriteData@12+0x58>
   15de4:	83 ec 0c             	sub    $0xc,%esp
   15de7:	53                   	push   %ebx
   15de8:	e8 53 c8 ff ff       	call   12640 <_SocketCalloutEnter>
   15ded:	8d 83 88 00 00 00    	lea    0x88(%ebx),%eax
   15df3:	53                   	push   %ebx
   15df4:	68 80 59 01 00       	push   $0x15980
   15df9:	50                   	push   %eax
   15dfa:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   15dfd:	50                   	push   %eax
   15dfe:	8b 06                	mov    (%esi),%eax
   15e00:	8b 00                	mov    (%eax),%eax
   15e02:	50                   	push   %eax
   15e03:	8b 06                	mov    (%esi),%eax
   15e05:	8b 40 04             	mov    0x4(%eax),%eax
   15e08:	50                   	push   %eax
   15e09:	8b 43 38             	mov    0x38(%ebx),%eax
   15e0c:	50                   	push   %eax
   15e0d:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax
   15e13:	50                   	push   %eax
   15e14:	e8 17 f2 ff ff       	call   15030 <_TdiSendDatagram>
   15e19:	83 c4 24             	add    $0x24,%esp
   15e1c:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   15e1f:	53                   	push   %ebx
   15e20:	e8 3b c8 ff ff       	call   12660 <_SocketCalloutLeave>
   15e25:	58                   	pop    %eax
   15e26:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   15e29:	51                   	push   %ecx
   15e2a:	ff 15 1c a1 01 00    	call   *0x1a11c
   15e30:	83 c4 0c             	add    $0xc,%esp
   15e33:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   15e36:	81 7d ec 03 01 00 00 	cmpl   $0x103,0xffffffec(%ebp)
   15e3d:	0f 95 c0             	setne  %al
   15e40:	25 ff 00 00 00       	and    $0xff,%eax
   15e45:	f7 d8                	neg    %eax
   15e47:	21 c2                	and    %eax,%edx
   15e49:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
   15e4c:	e9 59 ff ff ff       	jmp    15daa <_AfdPacketSocketWriteData@12+0x9a>
   15e51:	90                   	nop    
   15e52:	90                   	nop    
   15e53:	90                   	nop    
   15e54:	90                   	nop    
   15e55:	90                   	nop    
   15e56:	90                   	nop    
   15e57:	90                   	nop    
   15e58:	90                   	nop    
   15e59:	90                   	nop    
   15e5a:	90                   	nop    
   15e5b:	90                   	nop    
   15e5c:	90                   	nop    
   15e5d:	90                   	nop    
   15e5e:	90                   	nop    
   15e5f:	90                   	nop    

00015e60 <SEHSetJmp>:
   15e60:	8b 44 24 04          	mov    0x4(%esp),%eax
   15e64:	8b 0c 24             	mov    (%esp),%ecx
   15e67:	8d 54 24 04          	lea    0x4(%esp),%edx
   15e6b:	89 28                	mov    %ebp,(%eax)
   15e6d:	89 50 04             	mov    %edx,0x4(%eax)
   15e70:	89 48 08             	mov    %ecx,0x8(%eax)
   15e73:	89 58 0c             	mov    %ebx,0xc(%eax)
   15e76:	89 70 10             	mov    %esi,0x10(%eax)
   15e79:	89 78 14             	mov    %edi,0x14(%eax)
   15e7c:	31 c0                	xor    %eax,%eax
   15e7e:	c2 04 00             	ret    $0x4

00015e81 <SEHLongJmp>:
   15e81:	8b 44 24 08          	mov    0x8(%esp),%eax
   15e85:	8b 4c 24 04          	mov    0x4(%esp),%ecx
   15e89:	8b 29                	mov    (%ecx),%ebp
   15e8b:	8b 61 04             	mov    0x4(%ecx),%esp
   15e8e:	8b 51 08             	mov    0x8(%ecx),%edx
   15e91:	8b 59 0c             	mov    0xc(%ecx),%ebx
   15e94:	8b 71 10             	mov    0x10(%ecx),%esi
   15e97:	8b 79 14             	mov    0x14(%ecx),%edi
   15e9a:	ff e2                	jmp    *%edx

00015e9c <SEHLongJmp_KeepEsp>:
   15e9c:	8b 44 24 08          	mov    0x8(%esp),%eax
   15ea0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
   15ea4:	8b 29                	mov    (%ecx),%ebp
   15ea6:	8b 51 08             	mov    0x8(%ecx),%edx
   15ea9:	8b 59 0c             	mov    0xc(%ecx),%ebx
   15eac:	8b 71 10             	mov    0x10(%ecx),%esi
   15eaf:	8b 79 14             	mov    0x14(%ecx),%edi
   15eb2:	ff e2                	jmp    *%edx
	...

00015ec0 <__SEHCallHandler>:
   15ec0:	55                   	push   %ebp
   15ec1:	89 e5                	mov    %esp,%ebp
   15ec3:	53                   	push   %ebx
   15ec4:	83 ec 10             	sub    $0x10,%esp
   15ec7:	8b 5d 08             	mov    0x8(%ebp),%ebx
   15eca:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
   15ed1:	53                   	push   %ebx
   15ed2:	e8 1d 01 00 00       	call   15ff4 <__SEHUnwind>
   15ed7:	8b 43 10             	mov    0x10(%ebx),%eax
   15eda:	89 1c 24             	mov    %ebx,(%esp)
   15edd:	ff 50 04             	call   *0x4(%eax)

00015ee0 <__SEHFrameHandler>:
   15ee0:	55                   	push   %ebp
   15ee1:	89 e5                	mov    %esp,%ebp
   15ee3:	56                   	push   %esi
   15ee4:	53                   	push   %ebx
   15ee5:	83 ec 10             	sub    $0x10,%esp
   15ee8:	8b 5d 08             	mov    0x8(%ebp),%ebx
   15eeb:	8b 75 0c             	mov    0xc(%ebp),%esi
   15eee:	e8 dd 00 00 00       	call   15fd0 <__SEHCleanHandlerEnvironment>
   15ef3:	f6 43 04 06          	testb  $0x6,0x4(%ebx)
   15ef7:	74 17                	je     15f10 <__SEHFrameHandler+0x30>
   15ef9:	8b 46 10             	mov    0x10(%esi),%eax
   15efc:	8b 40 08             	mov    0x8(%eax),%eax
   15eff:	85 c0                	test   %eax,%eax
   15f01:	75 3d                	jne    15f40 <__SEHFrameHandler+0x60>
   15f03:	b8 01 00 00 00       	mov    $0x1,%eax
   15f08:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   15f0b:	5b                   	pop    %ebx
   15f0c:	5e                   	pop    %esi
   15f0d:	5d                   	pop    %ebp
   15f0e:	c3                   	ret    
   15f0f:	90                   	nop    
   15f10:	8b 03                	mov    (%ebx),%eax
   15f12:	85 c0                	test   %eax,%eax
   15f14:	75 3c                	jne    15f52 <__SEHFrameHandler+0x72>
   15f16:	8b 46 10             	mov    0x10(%esi),%eax
   15f19:	c7 46 08 01 00 00 c0 	movl   $0xc0000001,0x8(%esi)
   15f20:	8b 10                	mov    (%eax),%edx
   15f22:	8d 42 ff             	lea    0xffffffff(%edx),%eax
   15f25:	83 f8 02             	cmp    $0x2,%eax
   15f28:	77 38                	ja     15f62 <__SEHFrameHandler+0x82>
   15f2a:	83 ea 02             	sub    $0x2,%edx
   15f2d:	31 c0                	xor    %eax,%eax
   15f2f:	85 d2                	test   %edx,%edx
   15f31:	7c d5                	jl     15f08 <__SEHFrameHandler+0x28>
   15f33:	7e ce                	jle    15f03 <__SEHFrameHandler+0x23>
   15f35:	83 ec 0c             	sub    $0xc,%esp
   15f38:	56                   	push   %esi
   15f39:	e8 82 ff ff ff       	call   15ec0 <__SEHCallHandler>
   15f3e:	89 f6                	mov    %esi,%esi
   15f40:	8b 56 0c             	mov    0xc(%esi),%edx
   15f43:	85 d2                	test   %edx,%edx
   15f45:	75 bc                	jne    15f03 <__SEHFrameHandler+0x23>
   15f47:	83 ec 0c             	sub    $0xc,%esp
   15f4a:	56                   	push   %esi
   15f4b:	ff d0                	call   *%eax
   15f4d:	83 c4 0c             	add    $0xc,%esp
   15f50:	eb b1                	jmp    15f03 <__SEHFrameHandler+0x23>
   15f52:	89 46 08             	mov    %eax,0x8(%esi)
   15f55:	8b 46 10             	mov    0x10(%esi),%eax
   15f58:	8b 10                	mov    (%eax),%edx
   15f5a:	8d 42 ff             	lea    0xffffffff(%edx),%eax
   15f5d:	83 f8 02             	cmp    $0x2,%eax
   15f60:	76 c8                	jbe    15f2a <__SEHFrameHandler+0x4a>
   15f62:	85 d2                	test   %edx,%edx
   15f64:	74 9d                	je     15f03 <__SEHFrameHandler+0x23>
   15f66:	8b 45 10             	mov    0x10(%ebp),%eax
   15f69:	89 5d f0             	mov    %ebx,0xfffffff0(%ebp)
   15f6c:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
   15f6f:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   15f72:	53                   	push   %ebx
   15f73:	53                   	push   %ebx
   15f74:	56                   	push   %esi
   15f75:	50                   	push   %eax
   15f76:	ff d2                	call   *%edx
   15f78:	89 c2                	mov    %eax,%edx
   15f7a:	58                   	pop    %eax
   15f7b:	59                   	pop    %ecx
   15f7c:	eb af                	jmp    15f2d <__SEHFrameHandler+0x4d>
   15f7e:	89 f6                	mov    %esi,%esi

00015f80 <__SEHEnter@4>:
   15f80:	55                   	push   %ebp
   15f81:	89 e5                	mov    %esp,%ebp
   15f83:	83 ec 14             	sub    $0x14,%esp
   15f86:	8b 45 08             	mov    0x8(%ebp),%eax
   15f89:	c7 40 04 e0 5e 01 00 	movl   $0x15ee0,0x4(%eax)
   15f90:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
   15f97:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
   15f9e:	50                   	push   %eax
   15f9f:	e8 2e 00 00 00       	call   15fd2 <__SEHRegisterFrame>
   15fa4:	c9                   	leave  
   15fa5:	c2 04 00             	ret    $0x4
   15fa8:	90                   	nop    
   15fa9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00015fb0 <__SEHLeave@4>:
   15fb0:	55                   	push   %ebp
   15fb1:	89 e5                	mov    %esp,%ebp
   15fb3:	83 ec 14             	sub    $0x14,%esp
   15fb6:	8b 4d 08             	mov    0x8(%ebp),%ecx
   15fb9:	51                   	push   %ecx
   15fba:	e8 27 00 00 00       	call   15fe6 <__SEHUnregisterFrame>
   15fbf:	c9                   	leave  
   15fc0:	c2 04 00             	ret    $0x4
   15fc3:	90                   	nop    
   15fc4:	90                   	nop    
   15fc5:	90                   	nop    
   15fc6:	90                   	nop    
   15fc7:	90                   	nop    
   15fc8:	90                   	nop    
   15fc9:	90                   	nop    
   15fca:	90                   	nop    
   15fcb:	90                   	nop    
   15fcc:	90                   	nop    
   15fcd:	90                   	nop    
   15fce:	90                   	nop    
   15fcf:	90                   	nop    

00015fd0 <__SEHCleanHandlerEnvironment>:
   15fd0:	fc                   	cld    
   15fd1:	c3                   	ret    

00015fd2 <__SEHRegisterFrame>:
   15fd2:	8b 4c 24 04          	mov    0x4(%esp),%ecx
   15fd6:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
   15fdc:	89 01                	mov    %eax,(%ecx)
   15fde:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
   15fe5:	c3                   	ret    

00015fe6 <__SEHUnregisterFrame>:
   15fe6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
   15fea:	8b 09                	mov    (%ecx),%ecx
   15fec:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
   15ff3:	c3                   	ret    

00015ff4 <__SEHUnwind>:
   15ff4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
   15ff8:	56                   	push   %esi
   15ff9:	57                   	push   %edi
   15ffa:	53                   	push   %ebx
   15ffb:	31 c0                	xor    %eax,%eax
   15ffd:	50                   	push   %eax
   15ffe:	50                   	push   %eax
   15fff:	50                   	push   %eax
   16000:	51                   	push   %ecx
   16001:	ff 15 30 70 01 00    	call   *0x17030
   16007:	5b                   	pop    %ebx
   16008:	5f                   	pop    %edi
   16009:	5e                   	pop    %esi
   1600a:	c3                   	ret    
   1600b:	00 00                	add    %al,(%eax)
   1600d:	00 00                	add    %al,(%eax)
	...

00016010 <_ExAllocatePool@8>:
   16010:	ff 25 18 a1 01 00    	jmp    *0x1a118
   16016:	90                   	nop    
   16017:	90                   	nop    
	...

00016020 <@IofCompleteRequest@8>:
   16020:	ff 25 0c a1 01 00    	jmp    *0x1a10c
   16026:	90                   	nop    
   16027:	90                   	nop    
	...

00016030 <_ExFreePool@4>:
   16030:	ff 25 1c a1 01 00    	jmp    *0x1a11c
   16036:	90                   	nop    
   16037:	90                   	nop    
	...

00016040 <_memcpy>:
   16040:	ff 25 8c a1 01 00    	jmp    *0x1a18c
   16046:	90                   	nop    
   16047:	90                   	nop    
	...

00016050 <_IoAllocateMdl@20>:
   16050:	ff 25 20 a1 01 00    	jmp    *0x1a120
   16056:	90                   	nop    
   16057:	90                   	nop    
	...

00016060 <_IoFreeMdl@4>:
   16060:	ff 25 34 a1 01 00    	jmp    *0x1a134
   16066:	90                   	nop    
   16067:	90                   	nop    
	...

00016070 <_MmProbeAndLockPages@12>:
   16070:	ff 25 70 a1 01 00    	jmp    *0x1a170
   16076:	90                   	nop    
   16077:	90                   	nop    
	...

00016080 <_MmBuildMdlForNonPagedPool@4>:
   16080:	ff 25 68 a1 01 00    	jmp    *0x1a168
   16086:	90                   	nop    
   16087:	90                   	nop    
	...

00016090 <_MmMapLockedPages@8>:
   16090:	ff 25 6c a1 01 00    	jmp    *0x1a16c
   16096:	90                   	nop    
   16097:	90                   	nop    
	...

000160a0 <_ObReferenceObjectByHandle@24>:
   160a0:	ff 25 7c a1 01 00    	jmp    *0x1a17c
   160a6:	90                   	nop    
   160a7:	90                   	nop    
	...

000160b0 <@ObfDereferenceObject@4>:
   160b0:	ff 25 10 a1 01 00    	jmp    *0x1a110
   160b6:	90                   	nop    
   160b7:	90                   	nop    
	...

000160c0 <_MmUnmapLockedPages@8>:
   160c0:	ff 25 78 a1 01 00    	jmp    *0x1a178
   160c6:	90                   	nop    
   160c7:	90                   	nop    
	...

000160d0 <_MmUnlockPages@4>:
   160d0:	ff 25 74 a1 01 00    	jmp    *0x1a174
   160d6:	90                   	nop    
   160d7:	90                   	nop    
	...

000160e0 <_KeGetCurrentThread@0>:
   160e0:	ff 25 44 a1 01 00    	jmp    *0x1a144
   160e6:	90                   	nop    
   160e7:	90                   	nop    
	...

000160f0 <_KeWaitForSingleObject@20>:
   160f0:	ff 25 64 a1 01 00    	jmp    *0x1a164
   160f6:	90                   	nop    
   160f7:	90                   	nop    
	...

00016100 <_KePulseEvent@12>:
   16100:	ff 25 58 a1 01 00    	jmp    *0x1a158
   16106:	90                   	nop    
   16107:	90                   	nop    
	...

00016110 <_DbgPrint>:
   16110:	ff 25 14 a1 01 00    	jmp    *0x1a114
   16116:	90                   	nop    
   16117:	90                   	nop    
	...

00016120 <_KeInitializeSpinLock@4>:
   16120:	ff 25 50 a1 01 00    	jmp    *0x1a150
   16126:	90                   	nop    
   16127:	90                   	nop    
	...

00016130 <_KeInitializeEvent@12>:
   16130:	ff 25 4c a1 01 00    	jmp    *0x1a14c
   16136:	90                   	nop    
   16137:	90                   	nop    
	...

00016140 <_IoCancelIrp@4>:
   16140:	ff 25 28 a1 01 00    	jmp    *0x1a128
   16146:	90                   	nop    
   16147:	90                   	nop    
	...

00016150 <_IoCreateDevice@28>:
   16150:	ff 25 2c a1 01 00    	jmp    *0x1a12c
   16156:	90                   	nop    
   16157:	90                   	nop    
	...

00016160 <_memset>:
   16160:	ff 25 94 a1 01 00    	jmp    *0x1a194
   16166:	90                   	nop    
   16167:	90                   	nop    
	...

00016170 <_KeCancelTimer@4>:
   16170:	ff 25 40 a1 01 00    	jmp    *0x1a140
   16176:	90                   	nop    
   16177:	90                   	nop    
	...

00016180 <_KeInitializeTimerEx@8>:
   16180:	ff 25 54 a1 01 00    	jmp    *0x1a154
   16186:	90                   	nop    
   16187:	90                   	nop    
	...

00016190 <_KeSetTimer@16>:
   16190:	ff 25 60 a1 01 00    	jmp    *0x1a160
   16196:	90                   	nop    
   16197:	90                   	nop    
	...

000161a0 <_KeInitializeDpc@12>:
   161a0:	ff 25 48 a1 01 00    	jmp    *0x1a148
   161a6:	90                   	nop    
   161a7:	90                   	nop    
	...

000161b0 <_KeSetEvent@12>:
   161b0:	ff 25 5c a1 01 00    	jmp    *0x1a15c
   161b6:	90                   	nop    
   161b7:	90                   	nop    
	...

000161c0 <@IofCallDriver@8>:
   161c0:	ff 25 08 a1 01 00    	jmp    *0x1a108
   161c6:	90                   	nop    
   161c7:	90                   	nop    
	...

000161d0 <_ZwCreateFile@44>:
   161d0:	ff 25 88 a1 01 00    	jmp    *0x1a188
   161d6:	90                   	nop    
   161d7:	90                   	nop    
	...

000161e0 <_ZwClose@4>:
   161e0:	ff 25 84 a1 01 00    	jmp    *0x1a184
   161e6:	90                   	nop    
   161e7:	90                   	nop    
	...

000161f0 <_IoGetRelatedDeviceObject@4>:
   161f0:	ff 25 38 a1 01 00    	jmp    *0x1a138
   161f6:	90                   	nop    
   161f7:	90                   	nop    
	...

00016200 <_IoBuildDeviceIoControlRequest@36>:
   16200:	ff 25 24 a1 01 00    	jmp    *0x1a124
   16206:	90                   	nop    
   16207:	90                   	nop    
	...

00016210 <_IoFreeIrp@4>:
   16210:	ff 25 30 a1 01 00    	jmp    *0x1a130
   16216:	90                   	nop    
   16217:	90                   	nop    
	...

00016220 <_KeBugCheck@4>:
   16220:	ff 25 3c a1 01 00    	jmp    *0x1a13c
   16226:	90                   	nop    
   16227:	90                   	nop    
	...

00016230 <_memmove>:
   16230:	ff 25 90 a1 01 00    	jmp    *0x1a190
   16236:	90                   	nop    
   16237:	90                   	nop    
	...

00016240 <_RtlUnwind@16>:
   16240:	ff 25 80 a1 01 00    	jmp    *0x1a180
   16246:	90                   	nop    
   16247:	90                   	nop    
	...

00016250 <@ExAcquireFastMutex@4>:
   16250:	ff 25 f0 a0 01 00    	jmp    *0x1a0f0
   16256:	90                   	nop    
   16257:	90                   	nop    
	...

00016260 <@ExReleaseFastMutex@4>:
   16260:	ff 25 f4 a0 01 00    	jmp    *0x1a0f4
   16266:	90                   	nop    
   16267:	90                   	nop    
	...

00016270 <_KeAcquireSpinLock@8>:
   16270:	ff 25 f8 a0 01 00    	jmp    *0x1a0f8
   16276:	90                   	nop    
   16277:	90                   	nop    
	...

00016280 <_KeReleaseSpinLock@8>:
   16280:	ff 25 fc a0 01 00    	jmp    *0x1a0fc
   16286:	90                   	nop    
   16287:	90                   	nop    
	...

00016290 <__CTOR_LIST__>:
   16290:	ff                   	(bad)  
   16291:	ff                   	(bad)  
   16292:	ff                   	(bad)  
   16293:	ff 00                	incl   (%eax)
   16295:	00 00                	add    %al,(%eax)
	...

00016298 <__DTOR_LIST__>:
   16298:	ff                   	(bad)  
   16299:	ff                   	(bad)  
   1629a:	ff                   	(bad)  
   1629b:	ff 00                	incl   (%eax)
   1629d:	00 00                	add    %al,(%eax)
	...
