4017dd:	6a 00                	push   $0x0
4017df:	53                   	push   %ebx
4017e0:	e8 b3 fb ff ff       	call   0x401398
4017e5:	85 c0                	test   %eax,%eax
4017e7:	74 09                	je     0x4017f2
4017e9:	89 37                	mov    %esi,(%edi)
4017eb:	89 7e 04             	mov    %edi,0x4(%esi)
4017ee:	33 c0                	xor    %eax,%eax
4017f0:	eb 03                	jmp    0x4017f5
4017f2:	83 c8 ff             	or     $0xffffffff,%eax
4017f5:	c6 05 a8 07 47 00 00 	movb   $0x0,0x4707a8
4017fc:	5f                   	pop    %edi
4017fd:	5e                   	pop    %esi
4017fe:	5b                   	pop    %ebx
4017ff:	c3                   	ret
401800:	8d 50 03             	lea    0x3(%eax),%edx
401803:	c1 ea 03             	shr    $0x3,%edx
401806:	3d 2c 0a 00 00       	cmp    $0xa2c,%eax
40180b:	53                   	push   %ebx
40180c:	8a 0d 4d e0 46 00    	mov    0x46e04d,%cl
401812:	0f 87 2c 02 00 00    	ja     0x401a44
401818:	84 c9                	test   %cl,%cl
40181a:	0f b6 82 c0 e5 46 00 	movzbl 0x46e5c0(%edx),%eax
401821:	8d 1c c5 40 00 46 00 	lea    0x460040(,%eax,8),%ebx
401828:	75 56                	jne    0x401880
40182a:	8b 53 04             	mov    0x4(%ebx),%edx
40182d:	8b 42 08             	mov    0x8(%edx),%eax
401830:	b9 f8 ff ff ff       	mov    $0xfffffff8,%ecx
401835:	39 da                	cmp    %ebx,%edx
401837:	74 17                	je     0x401850
401839:	83 42 0c 01          	addl   $0x1,0xc(%edx)
40183d:	23 48 fc             	and    -0x4(%eax),%ecx
401840:	89 4a 08             	mov    %ecx,0x8(%edx)
401843:	89 50 fc             	mov    %edx,-0x4(%eax)
401846:	74 28                	je     0x401870
401848:	c6 03 00             	movb   $0x0,(%ebx)
40184b:	5b                   	pop    %ebx
40184c:	c3                   	ret
40184d:	90                   	nop
40184e:	90                   	nop
40184f:	90                   	nop
401850:	8b 53 10             	mov    0x10(%ebx),%edx
401853:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401857:	01 c1                	add    %eax,%ecx
401859:	3b 43 0c             	cmp    0xc(%ebx),%eax
40185c:	77 6e                	ja     0x4018cc
40185e:	83 42 0c 01          	addl   $0x1,0xc(%edx)
401862:	89 4b 08             	mov    %ecx,0x8(%ebx)
401865:	c6 03 00             	movb   $0x0,(%ebx)
401868:	89 50 fc             	mov    %edx,-0x4(%eax)
40186b:	5b                   	pop    %ebx
40186c:	c3                   	ret
40186d:	90                   	nop
40186e:	90                   	nop
40186f:	90                   	nop
401870:	8b 4a 04             	mov    0x4(%edx),%ecx
401873:	89 59 14             	mov    %ebx,0x14(%ecx)
401876:	89 4b 04             	mov    %ecx,0x4(%ebx)
401879:	c6 03 00             	movb   $0x0,(%ebx)
40187c:	5b                   	pop    %ebx
40187d:	c3                   	ret
40187e:	90                   	nop
40187f:	90                   	nop
401880:	b8 00 01 00 00       	mov    $0x100,%eax
401885:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401889:	74 9f                	je     0x40182a
40188b:	83 c3 20             	add    $0x20,%ebx
40188e:	b8 00 01 00 00       	mov    $0x100,%eax
401893:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401897:	74 91                	je     0x40182a
401899:	83 c3 20             	add    $0x20,%ebx
40189c:	b8 00 01 00 00       	mov    $0x100,%eax
4018a1:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018a5:	74 83                	je     0x40182a
4018a7:	83 eb 40             	sub    $0x40,%ebx
4018aa:	6a 00                	push   $0x0
4018ac:	e8 ef fa ff ff       	call   0x4013a0
4018b1:	b8 00 01 00 00       	mov    $0x100,%eax
4018b6:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018ba:	0f 84 6a ff ff ff    	je     0x40182a
4018c0:	6a 0a                	push   $0xa
4018c2:	e8 d9 fa ff ff       	call   0x4013a0
4018c7:	eb b7                	jmp    0x401880
4018c9:	90                   	nop
4018ca:	90                   	nop
4018cb:	90                   	nop
4018cc:	56                   	push   %esi
4018cd:	57                   	push   %edi
4018ce:	80 3d 4d e0 46 00 00 	cmpb   $0x0,0x46e04d
4018d5:	74 31                	je     0x401908
4018d7:	b8 00 01 00 00       	mov    $0x100,%eax
4018dc:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
4018e3:	00
4018e4:	74 22                	je     0x401908
4018e6:	6a 00                	push   $0x0
4018e8:	e8 b3 fa ff ff       	call   0x4013a0
4018ed:	b8 00 01 00 00       	mov    $0x100,%eax
4018f2:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
4018f9:	00
4018fa:	74 0c                	je     0x401908
4018fc:	6a 0a                	push   $0xa
4018fe:	e8 9d fa ff ff       	call   0x4013a0
401903:	eb d2                	jmp    0x4018d7
401905:	90                   	nop
401906:	90                   	nop
401907:	90                   	nop
401908:	0f be 73 01          	movsbl 0x1(%ebx),%esi
40190c:	23 35 24 e7 46 00    	and    0x46e724,%esi
401912:	74 70                	je     0x401984
401914:	0f bc c6             	bsf    %esi,%eax
401917:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
40191e:	8b 0c 85 28 e7 46 00 	mov    0x46e728(,%eax,4),%ecx
401925:	0f bc c9             	bsf    %ecx,%ecx
401928:	8d 0c b1             	lea    (%ecx,%esi,4),%ecx
40192b:	8d 3c cd a8 e7 46 00 	lea    0x46e7a8(,%ecx,8),%edi
401932:	8b 77 04             	mov    0x4(%edi),%esi
401935:	8b 56 04             	mov    0x4(%esi),%edx
401938:	89 57 04             	mov    %edx,0x4(%edi)
40193b:	89 3a                	mov    %edi,(%edx)
40193d:	39 d7                	cmp    %edx,%edi
40193f:	75 17                	jne    0x401958
401941:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
401946:	d3 c2                	rol    %cl,%edx
401948:	21 14 85 28 e7 46 00 	and    %edx,0x46e728(,%eax,4)
40194f:	75 07                	jne    0x401958
401951:	0f b3 05 24 e7 46 00 	btr    %eax,0x46e724
401958:	bf f0 ff ff ff       	mov    $0xfffffff0,%edi
40195d:	23 7e fc             	and    -0x4(%esi),%edi
401960:	81 ff 60 0a 01 00    	cmp    $0x10a60,%edi
401966:	72 6c                	jb     0x4019d4
401968:	89 fa                	mov    %edi,%edx
40196a:	0f b7 7b 1a          	movzwl 0x1a(%ebx),%edi
40196e:	29 fa                	sub    %edi,%edx
401970:	8d 04 37             	lea    (%edi,%esi,1),%eax
401973:	8d 4a 03             	lea    0x3(%edx),%ecx
401976:	89 48 fc             	mov    %ecx,-0x4(%eax)
401979:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
40197d:	e8 5a fc ff ff       	call   0x4015dc
401982:	eb 55                	jmp    0x4019d9
401984:	0f b7 4b 18          	movzwl 0x18(%ebx),%ecx
401988:	8b 3d 20 e7 46 00    	mov    0x46e720,%edi
40198e:	39 cf                	cmp    %ecx,%edi
401990:	72 26                	jb     0x4019b8
401992:	8b 35 1c e7 46 00    	mov    0x46e71c,%esi
401998:	0f b7 4b 1a          	movzwl 0x1a(%ebx),%ecx
40199c:	8d 91 30 0b 00 00    	lea    0xb30(%ecx),%edx
4019a2:	39 d7                	cmp    %edx,%edi
4019a4:	72 02                	jb     0x4019a8
4019a6:	89 cf                	mov    %ecx,%edi
4019a8:	29 fe                	sub    %edi,%esi
4019aa:	29 3d 20 e7 46 00    	sub    %edi,0x46e720
4019b0:	89 35 1c e7 46 00    	mov    %esi,0x46e71c
4019b6:	eb 21                	jmp    0x4019d9
4019b8:	0f b7 43 1a          	movzwl 0x1a(%ebx),%eax
4019bc:	89 c7                	mov    %eax,%edi
4019be:	e8 e5 fc ff ff       	call   0x4016a8
4019c3:	89 c6                	mov    %eax,%esi
4019c5:	85 c0                	test   %eax,%eax
4019c7:	75 10                	jne    0x4019d9
4019c9:	a2 18 e7 46 00       	mov    %al,0x46e718
4019ce:	88 03                	mov    %al,(%ebx)
4019d0:	5f                   	pop    %edi
4019d1:	5e                   	pop    %esi
4019d2:	5b                   	pop    %ebx
4019d3:	c3                   	ret
4019d4:	80 64 37 fc f7       	andb   $0xf7,-0x4(%edi,%esi,1)
4019d9:	8d 4f 06             	lea    0x6(%edi),%ecx
4019dc:	89 4e fc             	mov    %ecx,-0x4(%esi)
4019df:	31 c0                	xor    %eax,%eax
4019e1:	a2 18 e7 46 00       	mov    %al,0x46e718
4019e6:	89 1e                	mov    %ebx,(%esi)
4019e8:	89 46 08             	mov    %eax,0x8(%esi)
4019eb:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4019f2:	89 73 10             	mov    %esi,0x10(%ebx)
4019f5:	8d 46 20             	lea    0x20(%esi),%eax
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