4019f8:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
4019fc:	8d 14 01             	lea    (%ecx,%eax,1),%edx
4019ff:	89 53 08             	mov    %edx,0x8(%ebx)
401a02:	01 f7                	add    %esi,%edi
401a04:	29 cf                	sub    %ecx,%edi
401a06:	89 7b 0c             	mov    %edi,0xc(%ebx)
401a09:	c6 03 00             	movb   $0x0,(%ebx)
401a0c:	89 70 fc             	mov    %esi,-0x4(%eax)
401a0f:	5f                   	pop    %edi
401a10:	5e                   	pop    %esi
401a11:	5b                   	pop    %ebx
401a12:	c3                   	ret
401a13:	90                   	nop
401a14:	b8 00 01 00 00       	mov    $0x100,%eax
401a19:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401a20:	00
401a21:	74 3f                	je     0x401a62
401a23:	6a 00                	push   $0x0
401a25:	e8 76 f9 ff ff       	call   0x4013a0
401a2a:	b8 00 01 00 00       	mov    $0x100,%eax
401a2f:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401a36:	00
401a37:	74 29                	je     0x401a62
401a39:	6a 0a                	push   $0xa
401a3b:	e8 60 f9 ff ff       	call   0x4013a0
401a40:	eb d2                	jmp    0x401a14
401a42:	90                   	nop
401a43:	90                   	nop
401a44:	3d 2c 0a 04 00       	cmp    $0x40a2c,%eax
401a49:	0f 87 0d 01 00 00    	ja     0x401b5c
401a4f:	8d 98 d3 00 00 00    	lea    0xd3(%eax),%ebx
401a55:	81 e3 00 ff ff ff    	and    $0xffffff00,%ebx
401a5b:	83 c3 30             	add    $0x30,%ebx
401a5e:	84 c9                	test   %cl,%cl
401a60:	75 b2                	jne    0x401a14
401a62:	8d 93 d0 f4 ff ff    	lea    -0xb30(%ebx),%edx
401a68:	89 d1                	mov    %edx,%ecx
401a6a:	c1 ea 0d             	shr    $0xd,%edx
401a6d:	c1 e9 08             	shr    $0x8,%ecx
401a70:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
401a75:	d3 e0                	shl    %cl,%eax
401a77:	23 04 95 28 e7 46 00 	and    0x46e728(,%edx,4),%eax
401a7e:	74 0c                	je     0x401a8c
401a80:	83 e1 e0             	and    $0xffffffe0,%ecx
401a83:	0f bc c0             	bsf    %eax,%eax
401a86:	09 c1                	or     %eax,%ecx
401a88:	eb 5e                	jmp    0x401ae8
401a8a:	90                   	nop
401a8b:	90                   	nop
401a8c:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
401a91:	89 d1                	mov    %edx,%ecx
401a93:	d3 e0                	shl    %cl,%eax
401a95:	23 05 24 e7 46 00    	and    0x46e724,%eax
401a9b:	74 17                	je     0x401ab4
401a9d:	0f bc d0             	bsf    %eax,%edx
401aa0:	8b 04 95 28 e7 46 00 	mov    0x46e728(,%edx,4),%eax
401aa7:	0f bc c8             	bsf    %eax,%ecx
401aaa:	89 d0                	mov    %edx,%eax
401aac:	c1 e0 05             	shl    $0x5,%eax
401aaf:	09 c1                	or     %eax,%ecx
401ab1:	eb 35                	jmp    0x401ae8
401ab3:	90                   	nop
401ab4:	8b 0d 20 e7 46 00    	mov    0x46e720,%ecx
401aba:	29 d9                	sub    %ebx,%ecx
401abc:	72 1a                	jb     0x401ad8
401abe:	a1 1c e7 46 00       	mov    0x46e71c,%eax
401ac3:	29 d8                	sub    %ebx,%eax
401ac5:	a3 1c e7 46 00       	mov    %eax,0x46e71c
401aca:	89 0d 20 e7 46 00    	mov    %ecx,0x46e720
401ad0:	83 cb 02             	or     $0x2,%ebx
401ad3:	89 58 fc             	mov    %ebx,-0x4(%eax)
401ad6:	eb 07                	jmp    0x401adf
401ad8:	89 d8                	mov    %ebx,%eax
401ada:	e8 c9 fb ff ff       	call   0x4016a8
401adf:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401ae6:	5b                   	pop    %ebx
401ae7:	c3                   	ret
401ae8:	56                   	push   %esi
401ae9:	57                   	push   %edi
401aea:	8d 3c cd a8 e7 46 00 	lea    0x46e7a8(,%ecx,8),%edi
401af1:	8b 77 04             	mov    0x4(%edi),%esi
401af4:	8b 46 04             	mov    0x4(%esi),%eax
401af7:	89 47 04             	mov    %eax,0x4(%edi)
401afa:	89 38                	mov    %edi,(%eax)
401afc:	39 c7                	cmp    %eax,%edi
401afe:	75 17                	jne    0x401b17
401b00:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
401b05:	d3 c0                	rol    %cl,%eax
401b07:	21 04 95 28 e7 46 00 	and    %eax,0x46e728(,%edx,4)
401b0e:	75 07                	jne    0x401b17
401b10:	0f b3 15 24 e7 46 00 	btr    %edx,0x46e724
401b17:	bf f0 ff ff ff       	mov    $0xfffffff0,%edi
401b1c:	23 7e fc             	and    -0x4(%esi),%edi
401b1f:	89 fa                	mov    %edi,%edx
401b21:	29 da                	sub    %ebx,%edx
401b23:	74 1f                	je     0x401b44
401b25:	8d 04 33             	lea    (%ebx,%esi,1),%eax
401b28:	8d 4a 03             	lea    0x3(%edx),%ecx
401b2b:	89 48 fc             	mov    %ecx,-0x4(%eax)
401b2e:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
401b32:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401b38:	72 0f                	jb     0x401b49
401b3a:	e8 9d fa ff ff       	call   0x4015dc
401b3f:	eb 08                	jmp    0x401b49
401b41:	90                   	nop
401b42:	90                   	nop
401b43:	90                   	nop
401b44:	80 64 37 fc f7       	andb   $0xf7,-0x4(%edi,%esi,1)
401b49:	8d 4b 02             	lea    0x2(%ebx),%ecx
401b4c:	89 4e fc             	mov    %ecx,-0x4(%esi)
401b4f:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401b56:	89 f0                	mov    %esi,%eax
401b58:	5f                   	pop    %edi
401b59:	5e                   	pop    %esi
401b5a:	5b                   	pop    %ebx
401b5b:	c3                   	ret
401b5c:	5b                   	pop    %ebx
401b5d:	85 c0                	test   %eax,%eax
401b5f:	0f 89 fb fb ff ff    	jns    0x401760
401b65:	31 c0                	xor    %eax,%eax
401b67:	c3                   	ret
401b68:	8b 50 fc             	mov    -0x4(%eax),%edx
401b6b:	f6 c2 07             	test   $0x7,%dl
401b6e:	89 c1                	mov    %eax,%ecx
401b70:	53                   	push   %ebx
401b71:	8a 1d 4d e0 46 00    	mov    0x46e04d,%bl
401b77:	0f 85 cb 00 00 00    	jne    0x401c48
401b7d:	84 db                	test   %bl,%bl
401b7f:	8b 1a                	mov    (%edx),%ebx
401b81:	75 61                	jne    0x401be4
401b83:	83 6a 0c 01          	subl   $0x1,0xc(%edx)
401b87:	8b 42 08             	mov    0x8(%edx),%eax
401b8a:	74 2c                	je     0x401bb8
401b8c:	85 c0                	test   %eax,%eax
401b8e:	89 4a 08             	mov    %ecx,0x8(%edx)
401b91:	8d 40 01             	lea    0x1(%eax),%eax
401b94:	89 41 fc             	mov    %eax,-0x4(%ecx)
401b97:	74 07                	je     0x401ba0
401b99:	31 c0                	xor    %eax,%eax
401b9b:	88 03                	mov    %al,(%ebx)
401b9d:	5b                   	pop    %ebx
401b9e:	c3                   	ret
401b9f:	90                   	nop
401ba0:	8b 4b 04             	mov    0x4(%ebx),%ecx
401ba3:	89 5a 14             	mov    %ebx,0x14(%edx)
401ba6:	89 4a 04             	mov    %ecx,0x4(%edx)
401ba9:	89 51 14             	mov    %edx,0x14(%ecx)
401bac:	89 53 04             	mov    %edx,0x4(%ebx)
401baf:	c6 03 00             	movb   $0x0,(%ebx)
401bb2:	31 c0                	xor    %eax,%eax
401bb4:	5b                   	pop    %ebx
401bb5:	c3                   	ret
401bb6:	90                   	nop
401bb7:	90                   	nop
401bb8:	85 c0                	test   %eax,%eax
401bba:	74 13                	je     0x401bcf
401bbc:	8b 42 14             	mov    0x14(%edx),%eax
401bbf:	8b 4a 04             	mov    0x4(%edx),%ecx
401bc2:	89 48 04             	mov    %ecx,0x4(%eax)
401bc5:	89 41 14             	mov    %eax,0x14(%ecx)
401bc8:	31 c0                	xor    %eax,%eax
401bca:	39 53 10             	cmp    %edx,0x10(%ebx)
401bcd:	75 03                	jne    0x401bd2
401bcf:	89 43 0c             	mov    %eax,0xc(%ebx)
401bd2:	88 03                	mov    %al,(%ebx)
401bd4:	89 d0                	mov    %edx,%eax
401bd6:	8b 52 fc             	mov    -0x4(%edx),%edx
401bd9:	8a 1d 4d e0 46 00    	mov    0x46e04d,%bl
401bdf:	eb 70                	jmp    0x401c51
401be1:	90                   	nop
401be2:	90                   	nop
401be3:	90                   	nop
401be4:	b8 00 01 00 00       	mov    $0x100,%eax
401be9:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401bed:	74 94                	je     0x401b83
401bef:	51                   	push   %ecx
401bf0:	52                   	push   %edx
401bf1:	6a 00                	push   $0x0
401bf3:	e8 a8 f7 ff ff       	call   0x4013a0
401bf8:	5a                   	pop    %edx
401bf9:	59                   	pop    %ecx
401bfa:	b8 00 01 00 00       	mov    $0x100,%eax
401bff:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401c03:	0f 84 7a ff ff ff    	je     0x401b83
401c09:	51                   	push   %ecx
401c0a:	52                   	push   %edx
401c0b:	6a 0a                	push   $0xa
401c0d:	e8 8e f7 ff ff       	call   0x4013a0
401c12:	5a                   	pop    %edx
401c13:	59                   	pop    %ecx
401c14:	eb ce                	jmp    0x401be4
401c16:	90                   	nop
401c17:	90                   	nop
401c18:	b8 00 01 00 00       	mov    $0x100,%eax
401c1d:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401c24:	00
401c25:	74 36                	je     0x401c5d
401c27:	6a 00                	push   $0x0
401c29:	e8 72 f7 ff ff       	call   0x4013a0
401c2e:	b8 00 01 00 00       	mov    $0x100,%eax
401c33:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401c3a:	00
401c3b:	74 20                	je     0x401c5d
401c3d:	6a 0a                	push   $0xa
401c3f:	e8 5c f7 ff ff       	call   0x4013a0
401c44:	eb d2                	jmp    0x401c18
401c46:	90                   	nop
401c47:	90                   	nop
401c48:	f6 c2 05             	test   $0x5,%dl
401c4b:	0f 85 e7 00 00 00    	jne    0x401d38
401c51:	83 e2 f0             	and    $0xfffffff0,%edx
401c54:	84 db                	test   %bl,%bl
401c56:	89 d3                	mov    %edx,%ebx
401c58:	56                   	push   %esi
401c59:	89 c6                	mov    %eax,%esi
401c5b:	75 bb                	jne    0x401c18
401c5d:	f7 44 33 fc 01 00 00 	testl  $0x1,-0x4(%ebx,%esi,1)
401c64:	00
401c65:	8b 4c 33 fc          	mov    -0x4(%ebx,%esi,1),%ecx
401c69:	75 35                	jne    0x401ca0
401c6b:	83 c9 08             	or     $0x8,%ecx
401c6e:	89 4c 33 fc          	mov    %ecx,-0x4(%ebx,%esi,1)
401c72:	f6 46 fc 08          	testb  $0x8,-0x4(%esi)
401c76:	75 40                	jne    0x401cb8
401c78:	81 fb f0 ff 13 00    	cmp    $0x13fff0,%ebx
401c7e:	74 50                	je     0x401cd0
401c80:	8d 43 03             	lea    0x3(%ebx),%eax
401c83:	89 46 fc             	mov    %eax,-0x4(%esi)
401c86:	89 5c 33 f8          	mov    %ebx,-0x8(%ebx,%esi,1)
401c8a:	89 f0                	mov    %esi,%eax
401c8c:	89 da                	mov    %ebx,%edx
401c8e:	e8 49 f9 ff ff       	call   0x4015dc
401c93:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401c9a:	31 c0                	xor    %eax,%eax
401c9c:	5e                   	pop    %esi
401c9d:	5b                   	pop    %ebx
401c9e:	c3                   	ret
401c9f:	90                   	nop
401ca0:	8d 04 33             	lea    (%ebx,%esi,1),%eax
401ca3:	83 e1 f0             	and    $0xfffffff0,%ecx
401ca6:	01 cb                	add    %ecx,%ebx
401ca8:	81 f9 30 0b 00 00    	cmp    $0xb30,%ecx
401cae:	72 c2                	jb     0x401c72
401cb0:	e8 e7 f8 ff ff       	call   0x40159c
401cb5:	eb bb                	jmp    0x401c72
401cb7:	90                   	nop
401cb8:	8b 4e f8             	mov    -0x8(%esi),%ecx
401cbb:	29 ce                	sub    %ecx,%esi
401cbd:	01 cb                	add    %ecx,%ebx
401cbf:	81 f9 30 0b 00 00    	cmp    $0xb30,%ecx
401cc5:	72 b1                	jb     0x401c78
401cc7:	89 f0                	mov    %esi,%eax
401cc9:	e8 ce f8 ff ff       	call   0x40159c
401cce:	eb a8                	jmp    0x401c78
401cd0:	81 3d 20 e7 46 00 f0 	cmpl   $0x13fff0,0x46e720
401cd7:	ff 13 00
401cda:	75 2c                	jne    0x401d08
401cdc:	83 ee 10             	sub    $0x10,%esi
401cdf:	8b 06                	mov    (%esi),%eax
401ce1:	8b 56 04             	mov    0x4(%esi),%edx
401ce4:	89 50 04             	mov    %edx,0x4(%eax)
401ce7:	89 02                	mov    %eax,(%edx)
401ce9:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401cf0:	68 00 80 00 00       	push   $0x8000
401cf5:	6a 00                	push   $0x0
401cf7:	56                   	push   %esi
401cf8:	e8 9b f6 ff ff       	call   0x401398
401cfd:	83 f8 01             	cmp    $0x1,%eax
401d00:	19 c0                	sbb    %eax,%eax
401d02:	5e                   	pop    %esi
401d03:	5b                   	pop    %ebx
401d04:	c3                   	ret
401d05:	90                   	nop
401d06:	90                   	nop
401d07:	90                   	nop
401d08:	8d 9e f0 ff 13 00    	lea    0x13fff0(%esi),%ebx
401d0e:	e8 29 f9 ff ff       	call   0x40163c
401d13:	c7 43 fc 02 00 00 00 	movl   $0x2,-0x4(%ebx)
401d1a:	c7 05 20 e7 46 00 f0 	movl   $0x13fff0,0x46e720
401d21:	ff 13 00
401d24:	89 1d 1c e7 46 00    	mov    %ebx,0x46e71c
401d2a:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401d31:	31 c0                	xor    %eax,%eax
401d33:	5e                   	pop    %esi
401d34:	5b                   	pop    %ebx
401d35:	c3                   	ret
401d36:	90                   	nop
401d37:	90                   	nop
401d38:	5b                   	pop    %ebx
401d39:	f6 c2 03             	test   $0x3,%dl
401d3c:	0f 84 82 fa ff ff    	je     0x4017c4
401d42:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
401d47:	c3                   	ret
401d48:	8b 48 fc             	mov    -0x4(%eax),%ecx
401d4b:	f6 c1 07             	test   $0x7,%cl
401d4e:	53                   	push   %ebx
401d4f:	56                   	push   %esi
401d50:	89 c6                	mov    %eax,%esi
401d52:	0f 85 88 00 00 00    	jne    0x401de0
401d58:	8b 19                	mov    (%ecx),%ebx
401d5a:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401d5e:	83 e9 04             	sub    $0x4,%ecx
401d61:	39 d1                	cmp    %edx,%ecx
401d63:	72 37                	jb     0x401d9c
401d65:	8d 1c 95 40 00 00 00 	lea    0x40(,%edx,4),%ebx
401d6c:	39 cb                	cmp    %ecx,%ebx
401d6e:	72 04                	jb     0x401d74
401d70:	5e                   	pop    %esi
401d71:	5b                   	pop    %ebx
401d72:	c3                   	ret
401d73:	90                   	nop
401d74:	89 d3                	mov    %edx,%ebx
401d76:	89 d0                	mov    %edx,%eax
401d78:	e8 83 fa ff ff       	call   0x401800
401d7d:	85 c0                	test   %eax,%eax
401d7f:	74 16                	je     0x401d97
401d81:	89 d9                	mov    %ebx,%ecx
401d83:	89 c2                	mov    %eax,%edx
401d85:	89 c3                	mov    %eax,%ebx
401d87:	89 f0                	mov    %esi,%eax
401d89:	e8 f2 f7 ff ff       	call   0x401580
401d8e:	89 f0                	mov    %esi,%eax
401d90:	e8 d3 fd ff ff       	call   0x401b68
401d95:	89 d8                	mov    %ebx,%eax
401d97:	5e                   	pop    %esi
401d98:	5b                   	pop    %ebx
401d99:	c3                   	ret
401d9a:	90                   	nop
401d9b:	90                   	nop
401d9c:	8d 4c 09 20          	lea    0x20(%ecx,%ecx,1),%ecx
401da0:	57                   	push   %edi
401da1:	89 d7                	mov    %edx,%edi
401da3:	31 c0                	xor    %eax,%eax
401da5:	29 d1                	sub    %edx,%ecx
401da7:	83 d0 ff             	adc    $0xffffffff,%eax
401daa:	21 c8                	and    %ecx,%eax
401dac:	01 d0                	add    %edx,%eax
401dae:	e8 4d fa ff ff       	call   0x401800
401db3:	85 c0                	test   %eax,%eax
401db5:	74 24                	je     0x401ddb
401db7:	81 ff 2c 0a 04 00    	cmp    $0x40a2c,%edi
401dbd:	76 03                	jbe    0x401dc2
401dbf:	89 78 f8             	mov    %edi,-0x8(%eax)
401dc2:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401dc6:	83 e9 04             	sub    $0x4,%ecx
401dc9:	89 c2                	mov    %eax,%edx
401dcb:	89 c7                	mov    %eax,%edi
401dcd:	89 f0                	mov    %esi,%eax
401dcf:	ff 53 1c             	call   *0x1c(%ebx)
401dd2:	89 f0                	mov    %esi,%eax