4017ce:	5f                   	pop    %edi
4017cf:	5e                   	pop    %esi
4017d0:	5b                   	pop    %ebx
4017d1:	c3                   	ret
4017d2:	8b c0                	mov    %eax,%eax
4017d4:	53                   	push   %ebx
4017d5:	56                   	push   %esi
4017d6:	57                   	push   %edi
4017d7:	8b d8                	mov    %eax,%ebx
4017d9:	83 eb 10             	sub    $0x10,%ebx
4017dc:	e8 4f ff ff ff       	call   0x401730
4017e1:	8b c3                	mov    %ebx,%eax
4017e3:	8b 30                	mov    (%eax),%esi
4017e5:	8b 78 04             	mov    0x4(%eax),%edi
4017e8:	68 00 80 00 00       	push   $0x8000
4017ed:	6a 00                	push   $0x0
4017ef:	53                   	push   %ebx
4017f0:	e8 b3 fb ff ff       	call   0x4013a8
4017f5:	85 c0                	test   %eax,%eax
4017f7:	74 09                	je     0x401802
4017f9:	89 37                	mov    %esi,(%edi)
4017fb:	89 7e 04             	mov    %edi,0x4(%esi)
4017fe:	33 c0                	xor    %eax,%eax
401800:	eb 03                	jmp    0x401805
401802:	83 c8 ff             	or     $0xffffffff,%eax
401805:	c6 05 a8 a7 4a 00 00 	movb   $0x0,0x4aa7a8
40180c:	5f                   	pop    %edi
40180d:	5e                   	pop    %esi
40180e:	5b                   	pop    %ebx
40180f:	c3                   	ret
401810:	8d 50 03             	lea    0x3(%eax),%edx
401813:	c1 ea 03             	shr    $0x3,%edx
401816:	3d 2c 0a 00 00       	cmp    $0xa2c,%eax
40181b:	53                   	push   %ebx
40181c:	8a 0d 4d 80 4a 00    	mov    0x4a804d,%cl
401822:	0f 87 2c 02 00 00    	ja     0x401a54
401828:	84 c9                	test   %cl,%cl
40182a:	0f b6 82 c0 85 4a 00 	movzbl 0x4a85c0(%edx),%eax
401831:	8d 1c c5 3c b0 49 00 	lea    0x49b03c(,%eax,8),%ebx
401838:	75 56                	jne    0x401890
40183a:	8b 53 04             	mov    0x4(%ebx),%edx
40183d:	8b 42 08             	mov    0x8(%edx),%eax
401840:	b9 f8 ff ff ff       	mov    $0xfffffff8,%ecx
401845:	39 da                	cmp    %ebx,%edx
401847:	74 17                	je     0x401860
401849:	83 42 0c 01          	addl   $0x1,0xc(%edx)
40184d:	23 48 fc             	and    -0x4(%eax),%ecx
401850:	89 4a 08             	mov    %ecx,0x8(%edx)
401853:	89 50 fc             	mov    %edx,-0x4(%eax)
401856:	74 28                	je     0x401880
401858:	c6 03 00             	movb   $0x0,(%ebx)
40185b:	5b                   	pop    %ebx
40185c:	c3                   	ret
40185d:	90                   	nop
40185e:	90                   	nop
40185f:	90                   	nop
401860:	8b 53 10             	mov    0x10(%ebx),%edx
401863:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401867:	01 c1                	add    %eax,%ecx
401869:	3b 43 0c             	cmp    0xc(%ebx),%eax
40186c:	77 6e                	ja     0x4018dc
40186e:	83 42 0c 01          	addl   $0x1,0xc(%edx)
401872:	89 4b 08             	mov    %ecx,0x8(%ebx)
401875:	c6 03 00             	movb   $0x0,(%ebx)
401878:	89 50 fc             	mov    %edx,-0x4(%eax)
40187b:	5b                   	pop    %ebx
40187c:	c3                   	ret
40187d:	90                   	nop
40187e:	90                   	nop
40187f:	90                   	nop
401880:	8b 4a 04             	mov    0x4(%edx),%ecx
401883:	89 59 14             	mov    %ebx,0x14(%ecx)
401886:	89 4b 04             	mov    %ecx,0x4(%ebx)
401889:	c6 03 00             	movb   $0x0,(%ebx)
40188c:	5b                   	pop    %ebx
40188d:	c3                   	ret
40188e:	90                   	nop
40188f:	90                   	nop
401890:	b8 00 01 00 00       	mov    $0x100,%eax
401895:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
401899:	74 9f                	je     0x40183a
40189b:	83 c3 20             	add    $0x20,%ebx
40189e:	b8 00 01 00 00       	mov    $0x100,%eax
4018a3:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018a7:	74 91                	je     0x40183a
4018a9:	83 c3 20             	add    $0x20,%ebx
4018ac:	b8 00 01 00 00       	mov    $0x100,%eax
4018b1:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018b5:	74 83                	je     0x40183a
4018b7:	83 eb 40             	sub    $0x40,%ebx
4018ba:	6a 00                	push   $0x0
4018bc:	e8 ef fa ff ff       	call   0x4013b0
4018c1:	b8 00 01 00 00       	mov    $0x100,%eax
4018c6:	f0 0f b0 23          	lock cmpxchg %ah,(%ebx)
4018ca:	0f 84 6a ff ff ff    	je     0x40183a
4018d0:	6a 0a                	push   $0xa
4018d2:	e8 d9 fa ff ff       	call   0x4013b0
4018d7:	eb b7                	jmp    0x401890
4018d9:	90                   	nop
4018da:	90                   	nop
4018db:	90                   	nop
4018dc:	56                   	push   %esi
4018dd:	57                   	push   %edi
4018de:	80 3d 4d 80 4a 00 00 	cmpb   $0x0,0x4a804d
4018e5:	74 31                	je     0x401918
4018e7:	b8 00 01 00 00       	mov    $0x100,%eax
4018ec:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
4018f3:	00
4018f4:	74 22                	je     0x401918
4018f6:	6a 00                	push   $0x0
4018f8:	e8 b3 fa ff ff       	call   0x4013b0
4018fd:	b8 00 01 00 00       	mov    $0x100,%eax
401902:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401909:	00
40190a:	74 0c                	je     0x401918
40190c:	6a 0a                	push   $0xa
40190e:	e8 9d fa ff ff       	call   0x4013b0
401913:	eb d2                	jmp    0x4018e7
401915:	90                   	nop
401916:	90                   	nop
401917:	90                   	nop
401918:	0f be 73 01          	movsbl 0x1(%ebx),%esi
40191c:	23 35 24 87 4a 00    	and    0x4a8724,%esi
401922:	74 70                	je     0x401994
401924:	0f bc c6             	bsf    %esi,%eax
401927:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
40192e:	8b 0c 85 28 87 4a 00 	mov    0x4a8728(,%eax,4),%ecx
401935:	0f bc c9             	bsf    %ecx,%ecx
401938:	8d 0c b1             	lea    (%ecx,%esi,4),%ecx
40193b:	8d 3c cd a8 87 4a 00 	lea    0x4a87a8(,%ecx,8),%edi
401942:	8b 77 04             	mov    0x4(%edi),%esi
401945:	8b 56 04             	mov    0x4(%esi),%edx
401948:	89 57 04             	mov    %edx,0x4(%edi)
40194b:	89 3a                	mov    %edi,(%edx)
40194d:	39 d7                	cmp    %edx,%edi
40194f:	75 17                	jne    0x401968
401951:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
401956:	d3 c2                	rol    %cl,%edx
401958:	21 14 85 28 87 4a 00 	and    %edx,0x4a8728(,%eax,4)
40195f:	75 07                	jne    0x401968
401961:	0f b3 05 24 87 4a 00 	btr    %eax,0x4a8724
401968:	bf f0 ff ff ff       	mov    $0xfffffff0,%edi
40196d:	23 7e fc             	and    -0x4(%esi),%edi
401970:	81 ff 60 0a 01 00    	cmp    $0x10a60,%edi
401976:	72 6c                	jb     0x4019e4
401978:	89 fa                	mov    %edi,%edx
40197a:	0f b7 7b 1a          	movzwl 0x1a(%ebx),%edi
40197e:	29 fa                	sub    %edi,%edx
401980:	8d 04 37             	lea    (%edi,%esi,1),%eax
401983:	8d 4a 03             	lea    0x3(%edx),%ecx
401986:	89 48 fc             	mov    %ecx,-0x4(%eax)
401989:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
40198d:	e8 5a fc ff ff       	call   0x4015ec
401992:	eb 55                	jmp    0x4019e9
401994:	0f b7 4b 18          	movzwl 0x18(%ebx),%ecx
401998:	8b 3d 20 87 4a 00    	mov    0x4a8720,%edi
40199e:	39 cf                	cmp    %ecx,%edi
4019a0:	72 26                	jb     0x4019c8
4019a2:	8b 35 1c 87 4a 00    	mov    0x4a871c,%esi
4019a8:	0f b7 4b 1a          	movzwl 0x1a(%ebx),%ecx
4019ac:	8d 91 30 0b 00 00    	lea    0xb30(%ecx),%edx
4019b2:	39 d7                	cmp    %edx,%edi
4019b4:	72 02                	jb     0x4019b8
4019b6:	89 cf                	mov    %ecx,%edi
4019b8:	29 fe                	sub    %edi,%esi
4019ba:	29 3d 20 87 4a 00    	sub    %edi,0x4a8720
4019c0:	89 35 1c 87 4a 00    	mov    %esi,0x4a871c
4019c6:	eb 21                	jmp    0x4019e9
4019c8:	0f b7 43 1a          	movzwl 0x1a(%ebx),%eax
4019cc:	89 c7                	mov    %eax,%edi
4019ce:	e8 e5 fc ff ff       	call   0x4016b8
4019d3:	89 c6                	mov    %eax,%esi
4019d5:	85 c0                	test   %eax,%eax
4019d7:	75 10                	jne    0x4019e9
4019d9:	a2 18 87 4a 00       	mov    %al,0x4a8718
4019de:	88 03                	mov    %al,(%ebx)
4019e0:	5f                   	pop    %edi
4019e1:	5e                   	pop    %esi
4019e2:	5b                   	pop    %ebx
4019e3:	c3                   	ret
4019e4:	80 64 37 fc f7       	andb   $0xf7,-0x4(%edi,%esi,1)
4019e9:	8d 4f 06             	lea    0x6(%edi),%ecx
4019ec:	89 4e fc             	mov    %ecx,-0x4(%esi)
4019ef:	31 c0                	xor    %eax,%eax
4019f1:	a2 18 87 4a 00       	mov    %al,0x4a8718
4019f6:	89 1e                	mov    %ebx,(%esi)
4019f8:	89 46 08             	mov    %eax,0x8(%esi)
4019fb:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
401a02:	89 73 10             	mov    %esi,0x10(%ebx)
401a05:	8d 46 20             	lea    0x20(%esi),%eax
401a08:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
401a0c:	8d 14 01             	lea    (%ecx,%eax,1),%edx
401a0f:	89 53 08             	mov    %edx,0x8(%ebx)
401a12:	01 f7                	add    %esi,%edi
401a14:	29 cf                	sub    %ecx,%edi
401a16:	89 7b 0c             	mov    %edi,0xc(%ebx)
401a19:	c6 03 00             	movb   $0x0,(%ebx)
401a1c:	89 70 fc             	mov    %esi,-0x4(%eax)
401a1f:	5f                   	pop    %edi
401a20:	5e                   	pop    %esi
401a21:	5b                   	pop    %ebx
401a22:	c3                   	ret
401a23:	90                   	nop
401a24:	b8 00 01 00 00       	mov    $0x100,%eax
401a29:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401a30:	00
401a31:	74 3f                	je     0x401a72
401a33:	6a 00                	push   $0x0
401a35:	e8 76 f9 ff ff       	call   0x4013b0
401a3a:	b8 00 01 00 00       	mov    $0x100,%eax
401a3f:	f0 0f b0 25 18 87 4a 	lock cmpxchg %ah,0x4a8718
401a46:	00
401a47:	74 29                	je     0x401a72
401a49:	6a 0a                	push   $0xa
401a4b:	e8 60 f9 ff ff       	call   0x4013b0
401a50:	eb d2                	jmp    0x401a24
401a52:	90                   	nop
401a53:	90                   	nop
401a54:	3d 2c 0a 04 00       	cmp    $0x40a2c,%eax
401a59:	0f 87 0d 01 00 00    	ja     0x401b6c
401a5f:	8d 98 d3 00 00 00    	lea    0xd3(%eax),%ebx
401a65:	81 e3 00 ff ff ff    	and    $0xffffff00,%ebx
401a6b:	83 c3 30             	add    $0x30,%ebx
401a6e:	84 c9                	test   %cl,%cl
401a70:	75 b2                	jne    0x401a24
401a72:	8d 93 d0 f4 ff ff    	lea    -0xb30(%ebx),%edx
401a78:	89 d1                	mov    %edx,%ecx
401a7a:	c1 ea 0d             	shr    $0xd,%edx
401a7d:	c1 e9 08             	shr    $0x8,%ecx
401a80:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
401a85:	d3 e0                	shl    %cl,%eax
401a87:	23 04 95 28 87 4a 00 	and    0x4a8728(,%edx,4),%eax
401a8e:	74 0c                	je     0x401a9c
401a90:	83 e1 e0             	and    $0xffffffe0,%ecx
401a93:	0f bc c0             	bsf    %eax,%eax
401a96:	09 c1                	or     %eax,%ecx
401a98:	eb 5e                	jmp    0x401af8
401a9a:	90                   	nop
401a9b:	90                   	nop
401a9c:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
401aa1:	89 d1                	mov    %edx,%ecx
401aa3:	d3 e0                	shl    %cl,%eax
401aa5:	23 05 24 87 4a 00    	and    0x4a8724,%eax
401aab:	74 17                	je     0x401ac4
401aad:	0f bc d0             	bsf    %eax,%edx
401ab0:	8b 04 95 28 87 4a 00 	mov    0x4a8728(,%edx,4),%eax
401ab7:	0f bc c8             	bsf    %eax,%ecx
401aba:	89 d0                	mov    %edx,%eax
401abc:	c1 e0 05             	shl    $0x5,%eax
401abf:	09 c1                	or     %eax,%ecx
401ac1:	eb 35                	jmp    0x401af8
401ac3:	90                   	nop
401ac4:	8b 0d 20 87 4a 00    	mov    0x4a8720,%ecx
401aca:	29 d9                	sub    %ebx,%ecx
401acc:	72 1a                	jb     0x401ae8
401ace:	a1 1c 87 4a 00       	mov    0x4a871c,%eax
401ad3:	29 d8                	sub    %ebx,%eax
401ad5:	a3 1c 87 4a 00       	mov    %eax,0x4a871c
401ada:	89 0d 20 87 4a 00    	mov    %ecx,0x4a8720
401ae0:	83 cb 02             	or     $0x2,%ebx
401ae3:	89 58 fc             	mov    %ebx,-0x4(%eax)
401ae6:	eb 07                	jmp    0x401aef
401ae8:	89 d8                	mov    %ebx,%eax
401aea:	e8 c9 fb ff ff       	call   0x4016b8
401aef:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401af6:	5b                   	pop    %ebx
401af7:	c3                   	ret
401af8:	56                   	push   %esi
401af9:	57                   	push   %edi
401afa:	8d 3c cd a8 87 4a 00 	lea    0x4a87a8(,%ecx,8),%edi
401b01:	8b 77 04             	mov    0x4(%edi),%esi
401b04:	8b 46 04             	mov    0x4(%esi),%eax
401b07:	89 47 04             	mov    %eax,0x4(%edi)
401b0a:	89 38                	mov    %edi,(%eax)
401b0c:	39 c7                	cmp    %eax,%edi
401b0e:	75 17                	jne    0x401b27
401b10:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
401b15:	d3 c0                	rol    %cl,%eax
401b17:	21 04 95 28 87 4a 00 	and    %eax,0x4a8728(,%edx,4)
401b1e:	75 07                	jne    0x401b27
401b20:	0f b3 15 24 87 4a 00 	btr    %edx,0x4a8724
401b27:	bf f0 ff ff ff       	mov    $0xfffffff0,%edi
401b2c:	23 7e fc             	and    -0x4(%esi),%edi
401b2f:	89 fa                	mov    %edi,%edx
401b31:	29 da                	sub    %ebx,%edx
401b33:	74 1f                	je     0x401b54
401b35:	8d 04 33             	lea    (%ebx,%esi,1),%eax
401b38:	8d 4a 03             	lea    0x3(%edx),%ecx
401b3b:	89 48 fc             	mov    %ecx,-0x4(%eax)
401b3e:	89 54 02 f8          	mov    %edx,-0x8(%edx,%eax,1)
401b42:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401b48:	72 0f                	jb     0x401b59
401b4a:	e8 9d fa ff ff       	call   0x4015ec
401b4f:	eb 08                	jmp    0x401b59
401b51:	90                   	nop
401b52:	90                   	nop
401b53:	90                   	nop
401b54:	80 64 37 fc f7       	andb   $0xf7,-0x4(%edi,%esi,1)
401b59:	8d 4b 02             	lea    0x2(%ebx),%ecx
401b5c:	89 4e fc             	mov    %ecx,-0x4(%esi)
401b5f:	c6 05 18 87 4a 00 00 	movb   $0x0,0x4a8718
401b66:	89 f0                	mov    %esi,%eax
401b68:	5f                   	pop    %edi
401b69:	5e                   	pop    %esi
401b6a:	5b                   	pop    %ebx
401b6b:	c3                   	ret
401b6c:	5b                   	pop    %ebx
401b6d:	85 c0                	test   %eax,%eax
401b6f:	0f 89 fb fb ff ff    	jns    0x401770
401b75:	31 c0                	xor    %eax,%eax
401b77:	c3                   	ret
401b78:	8b 50 fc             	mov    -0x4(%eax),%edx
401b7b:	f6 c2 07             	test   $0x7,%dl
401b7e:	89 c1                	mov    %eax,%ecx
401b80:	53                   	push   %ebx
401b81:	8a 1d 4d 80 4a 00    	mov    0x4a804d,%bl
401b87:	0f 85 cb 00 00 00    	jne    0x401c58
401b8d:	84 db                	test   %bl,%bl
401b8f:	8b 1a                	mov    (%edx),%ebx
401b91:	75 61                	jne    0x401bf4
401b93:	83 6a 0c 01          	subl   $0x1,0xc(%edx)
401b97:	8b 42 08             	mov    0x8(%edx),%eax
401b9a:	74 2c                	je     0x401bc8
401b9c:	85 c0                	test   %eax,%eax
401b9e:	89 4a 08             	mov    %ecx,0x8(%edx)
401ba1:	8d 40 01             	lea    0x1(%eax),%eax
401ba4:	89 41 fc             	mov    %eax,-0x4(%ecx)
401ba7:	74 07                	je     0x401bb0
401ba9:	31 c0                	xor    %eax,%eax
401bab:	88 03                	mov    %al,(%ebx)
401bad:	5b                   	pop    %ebx
401bae:	c3                   	ret
401baf:	90                   	nop
401bb0:	8b 4b 04             	mov    0x4(%ebx),%ecx
401bb3:	89 5a 14             	mov    %ebx,0x14(%edx)
401bb6:	89 4a 04             	mov    %ecx,0x4(%edx)
401bb9:	89 51 14             	mov    %edx,0x14(%ecx)
401bbc:	89 53 04             	mov    %edx,0x4(%ebx)
401bbf:	c6 03 00             	movb   $0x0,(%ebx)
401bc2:	31 c0                	xor    %eax,%eax
401bc4:	5b                   	pop    %ebx
401bc5:	c3                   	ret
401bc6:	90                   	nop
401bc7:	90                   	nop
401bc8:	85 c0                	test   %eax,%eax
401bca:	74 13                	je     0x401bdf
401bcc:	8b 42 14             	mov    0x14(%edx),%eax
401bcf:	8b 4a 04             	mov    0x4(%edx),%ecx
401bd2:	89 48 04             	mov    %ecx,0x4(%eax)
401bd5:	89 41 14             	mov    %eax,0x14(%ecx)