404747:	8a 14 08             	mov    (%eax,%ecx,1),%dl
40474a:	88 10                	mov    %dl,(%eax)
40474c:	40                   	inc    %eax
40474d:	4e                   	dec    %esi
40474e:	75 f7                	jne    0x404747
404750:	5f                   	pop    %edi
404751:	5e                   	pop    %esi
404752:	c3                   	ret
404753:	8b ff                	mov    %edi,%edi
404755:	55                   	push   %ebp
404756:	8b ec                	mov    %esp,%ebp
404758:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
40475e:	a1 04 f0 41 00       	mov    0x41f004,%eax
404763:	33 c5                	xor    %ebp,%eax
404765:	89 45 fc             	mov    %eax,-0x4(%ebp)
404768:	53                   	push   %ebx
404769:	57                   	push   %edi
40476a:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
404770:	50                   	push   %eax
404771:	ff 76 04             	push   0x4(%esi)
404774:	ff 15 f4 d0 41 00    	call   *0x41d0f4
40477a:	bf 00 01 00 00       	mov    $0x100,%edi
40477f:	85 c0                	test   %eax,%eax
404781:	0f 84 fb 00 00 00    	je     0x404882
404787:	33 c0                	xor    %eax,%eax
404789:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
404790:	40                   	inc    %eax
404791:	3b c7                	cmp    %edi,%eax
404793:	72 f4                	jb     0x404789
404795:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
40479b:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
4047a2:	84 c0                	test   %al,%al
4047a4:	74 2e                	je     0x4047d4
4047a6:	8d 9d ef fa ff ff    	lea    -0x511(%ebp),%ebx
4047ac:	0f b6 c8             	movzbl %al,%ecx
4047af:	0f b6 03             	movzbl (%ebx),%eax
4047b2:	3b c8                	cmp    %eax,%ecx
4047b4:	77 16                	ja     0x4047cc
4047b6:	2b c1                	sub    %ecx,%eax
4047b8:	40                   	inc    %eax
4047b9:	50                   	push   %eax
4047ba:	8d 94 0d fc fe ff ff 	lea    -0x104(%ebp,%ecx,1),%edx
4047c1:	6a 20                	push   $0x20
4047c3:	52                   	push   %edx
4047c4:	e8 77 26 00 00       	call   0x406e40
4047c9:	83 c4 0c             	add    $0xc,%esp
4047cc:	43                   	inc    %ebx
4047cd:	8a 03                	mov    (%ebx),%al
4047cf:	43                   	inc    %ebx
4047d0:	84 c0                	test   %al,%al
4047d2:	75 d8                	jne    0x4047ac
4047d4:	6a 00                	push   $0x0
4047d6:	ff 76 0c             	push   0xc(%esi)
4047d9:	8d 85 fc fa ff ff    	lea    -0x504(%ebp),%eax
4047df:	ff 76 04             	push   0x4(%esi)
4047e2:	50                   	push   %eax
4047e3:	57                   	push   %edi
4047e4:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4047ea:	50                   	push   %eax
4047eb:	6a 01                	push   $0x1
4047ed:	6a 00                	push   $0x0
4047ef:	e8 b5 2d 00 00       	call   0x4075a9
4047f4:	33 db                	xor    %ebx,%ebx
4047f6:	53                   	push   %ebx
4047f7:	ff 76 04             	push   0x4(%esi)
4047fa:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
404800:	57                   	push   %edi
404801:	50                   	push   %eax
404802:	57                   	push   %edi
404803:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
404809:	50                   	push   %eax
40480a:	57                   	push   %edi
40480b:	ff 76 0c             	push   0xc(%esi)
40480e:	53                   	push   %ebx
40480f:	e8 96 2b 00 00       	call   0x4073aa
404814:	83 c4 44             	add    $0x44,%esp
404817:	53                   	push   %ebx
404818:	ff 76 04             	push   0x4(%esi)
40481b:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
404821:	57                   	push   %edi
404822:	50                   	push   %eax
404823:	57                   	push   %edi
404824:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40482a:	50                   	push   %eax
40482b:	68 00 02 00 00       	push   $0x200
404830:	ff 76 0c             	push   0xc(%esi)
404833:	53                   	push   %ebx
404834:	e8 71 2b 00 00       	call   0x4073aa
404839:	83 c4 24             	add    $0x24,%esp
40483c:	33 c0                	xor    %eax,%eax
40483e:	0f b7 8c 45 fc fa ff 	movzwl -0x504(%ebp,%eax,2),%ecx
404845:	ff
404846:	f6 c1 01             	test   $0x1,%cl
404849:	74 0e                	je     0x404859
40484b:	80 4c 06 1d 10       	orb    $0x10,0x1d(%esi,%eax,1)
404850:	8a 8c 05 fc fd ff ff 	mov    -0x204(%ebp,%eax,1),%cl
404857:	eb 11                	jmp    0x40486a
404859:	f6 c1 02             	test   $0x2,%cl
40485c:	74 15                	je     0x404873
40485e:	80 4c 06 1d 20       	orb    $0x20,0x1d(%esi,%eax,1)
404863:	8a 8c 05 fc fc ff ff 	mov    -0x304(%ebp,%eax,1),%cl
40486a:	88 8c 06 1d 01 00 00 	mov    %cl,0x11d(%esi,%eax,1)
404871:	eb 08                	jmp    0x40487b
404873:	c6 84 06 1d 01 00 00 	movb   $0x0,0x11d(%esi,%eax,1)
40487a:	00
40487b:	40                   	inc    %eax
40487c:	3b c7                	cmp    %edi,%eax
40487e:	72 be                	jb     0x40483e
404880:	eb 56                	jmp    0x4048d8
404882:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
404888:	c7 85 e4 fa ff ff 9f 	movl   $0xffffff9f,-0x51c(%ebp)
40488f:	ff ff ff
404892:	33 c9                	xor    %ecx,%ecx
404894:	29 85 e4 fa ff ff    	sub    %eax,-0x51c(%ebp)
40489a:	8b 95 e4 fa ff ff    	mov    -0x51c(%ebp),%edx
4048a0:	8d 84 0e 1d 01 00 00 	lea    0x11d(%esi,%ecx,1),%eax
4048a7:	03 d0                	add    %eax,%edx
4048a9:	8d 5a 20             	lea    0x20(%edx),%ebx
4048ac:	83 fb 19             	cmp    $0x19,%ebx
4048af:	77 0c                	ja     0x4048bd
4048b1:	80 4c 0e 1d 10       	orb    $0x10,0x1d(%esi,%ecx,1)
4048b6:	8a d1                	mov    %cl,%dl
4048b8:	80 c2 20             	add    $0x20,%dl
4048bb:	eb 0f                	jmp    0x4048cc
4048bd:	83 fa 19             	cmp    $0x19,%edx
4048c0:	77 0e                	ja     0x4048d0
4048c2:	80 4c 0e 1d 20       	orb    $0x20,0x1d(%esi,%ecx,1)
4048c7:	8a d1                	mov    %cl,%dl
4048c9:	80 ea 20             	sub    $0x20,%dl
4048cc:	88 10                	mov    %dl,(%eax)
4048ce:	eb 03                	jmp    0x4048d3
4048d0:	c6 00 00             	movb   $0x0,(%eax)
4048d3:	41                   	inc    %ecx
4048d4:	3b cf                	cmp    %edi,%ecx
4048d6:	72 c2                	jb     0x40489a
4048d8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4048db:	5f                   	pop    %edi
4048dc:	33 cd                	xor    %ebp,%ecx
4048de:	5b                   	pop    %ebx
4048df:	e8 1c c7 ff ff       	call   0x401000
4048e4:	c9                   	leave
4048e5:	c3                   	ret
4048e6:	6a 0c                	push   $0xc
4048e8:	68 a8 e7 41 00       	push   $0x41e7a8
4048ed:	e8 8e e2 ff ff       	call   0x402b80
4048f2:	e8 83 df ff ff       	call   0x40287a
4048f7:	8b f8                	mov    %eax,%edi
4048f9:	a1 50 fb 41 00       	mov    0x41fb50,%eax
4048fe:	85 47 70             	test   %eax,0x70(%edi)
404901:	74 1d                	je     0x404920
404903:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
404907:	74 17                	je     0x404920
404909:	8b 77 68             	mov    0x68(%edi),%esi
40490c:	85 f6                	test   %esi,%esi
40490e:	75 08                	jne    0x404918
404910:	6a 20                	push   $0x20
404912:	e8 e6 ce ff ff       	call   0x4017fd
404917:	59                   	pop    %ecx
404918:	8b c6                	mov    %esi,%eax
40491a:	e8 a6 e2 ff ff       	call   0x402bc5
40491f:	c3                   	ret
404920:	6a 0d                	push   $0xd
404922:	e8 b0 f1 ff ff       	call   0x403ad7
404927:	59                   	pop    %ecx
404928:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40492c:	8b 77 68             	mov    0x68(%edi),%esi
40492f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404932:	3b 35 58 f9 41 00    	cmp    0x41f958,%esi
404938:	74 36                	je     0x404970
40493a:	85 f6                	test   %esi,%esi
40493c:	74 1a                	je     0x404958
40493e:	56                   	push   %esi
40493f:	ff 15 4c d0 41 00    	call   *0x41d04c
404945:	85 c0                	test   %eax,%eax
404947:	75 0f                	jne    0x404958
404949:	81 fe 30 f5 41 00    	cmp    $0x41f530,%esi
40494f:	74 07                	je     0x404958
404951:	56                   	push   %esi
404952:	e8 4c 04 00 00       	call   0x404da3
404957:	59                   	pop    %ecx
404958:	a1 58 f9 41 00       	mov    0x41f958,%eax
40495d:	89 47 68             	mov    %eax,0x68(%edi)
404960:	8b 35 58 f9 41 00    	mov    0x41f958,%esi
404966:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404969:	56                   	push   %esi
40496a:	ff 15 bc d0 41 00    	call   *0x41d0bc
404970:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
404977:	e8 05 00 00 00       	call   0x404981
40497c:	eb 8e                	jmp    0x40490c
40497e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
404981:	6a 0d                	push   $0xd
404983:	e8 75 f0 ff ff       	call   0x4039fd
404988:	59                   	pop    %ecx
404989:	c3                   	ret
40498a:	8b ff                	mov    %edi,%edi
40498c:	55                   	push   %ebp
40498d:	8b ec                	mov    %esp,%ebp
40498f:	83 ec 10             	sub    $0x10,%esp
404992:	53                   	push   %ebx
404993:	33 db                	xor    %ebx,%ebx
404995:	53                   	push   %ebx
404996:	8d 4d f0             	lea    -0x10(%ebp),%ecx
404999:	e8 30 fc ff ff       	call   0x4045ce
40499e:	89 1d cc 0f 43 00    	mov    %ebx,0x430fcc
4049a4:	83 fe fe             	cmp    $0xfffffffe,%esi
4049a7:	75 1e                	jne    0x4049c7
4049a9:	c7 05 cc 0f 43 00 01 	movl   $0x1,0x430fcc
4049b0:	00 00 00
4049b3:	ff 15 fc d0 41 00    	call   *0x41d0fc
4049b9:	38 5d fc             	cmp    %bl,-0x4(%ebp)
4049bc:	74 45                	je     0x404a03
4049be:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4049c1:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4049c5:	eb 3c                	jmp    0x404a03
4049c7:	83 fe fd             	cmp    $0xfffffffd,%esi
4049ca:	75 12                	jne    0x4049de
4049cc:	c7 05 cc 0f 43 00 01 	movl   $0x1,0x430fcc
4049d3:	00 00 00
4049d6:	ff 15 f8 d0 41 00    	call   *0x41d0f8
4049dc:	eb db                	jmp    0x4049b9
4049de:	83 fe fc             	cmp    $0xfffffffc,%esi
4049e1:	75 12                	jne    0x4049f5
4049e3:	8b 45 f0             	mov    -0x10(%ebp),%eax
4049e6:	8b 40 04             	mov    0x4(%eax),%eax
4049e9:	c7 05 cc 0f 43 00 01 	movl   $0x1,0x430fcc
4049f0:	00 00 00
4049f3:	eb c4                	jmp    0x4049b9
4049f5:	38 5d fc             	cmp    %bl,-0x4(%ebp)
4049f8:	74 07                	je     0x404a01
4049fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
4049fd:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
404a01:	8b c6                	mov    %esi,%eax
404a03:	5b                   	pop    %ebx
404a04:	c9                   	leave
404a05:	c3                   	ret
404a06:	8b ff                	mov    %edi,%edi
404a08:	55                   	push   %ebp
404a09:	8b ec                	mov    %esp,%ebp
404a0b:	83 ec 20             	sub    $0x20,%esp
404a0e:	a1 04 f0 41 00       	mov    0x41f004,%eax
404a13:	33 c5                	xor    %ebp,%eax
404a15:	89 45 fc             	mov    %eax,-0x4(%ebp)
404a18:	53                   	push   %ebx
404a19:	8b 5d 0c             	mov    0xc(%ebp),%ebx
404a1c:	56                   	push   %esi
404a1d:	8b 75 08             	mov    0x8(%ebp),%esi
404a20:	57                   	push   %edi
404a21:	e8 64 ff ff ff       	call   0x40498a
404a26:	8b f8                	mov    %eax,%edi
404a28:	33 f6                	xor    %esi,%esi
404a2a:	89 7d 08             	mov    %edi,0x8(%ebp)
404a2d:	3b fe                	cmp    %esi,%edi
404a2f:	75 0e                	jne    0x404a3f
404a31:	8b c3                	mov    %ebx,%eax
404a33:	e8 b7 fc ff ff       	call   0x4046ef
404a38:	33 c0                	xor    %eax,%eax
404a3a:	e9 9d 01 00 00       	jmp    0x404bdc
404a3f:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404a42:	33 c0                	xor    %eax,%eax
404a44:	39 b8 60 f9 41 00    	cmp    %edi,0x41f960(%eax)
404a4a:	0f 84 91 00 00 00    	je     0x404ae1
404a50:	ff 45 e4             	incl   -0x1c(%ebp)
404a53:	83 c0 30             	add    $0x30,%eax
404a56:	3d f0 00 00 00       	cmp    $0xf0,%eax
404a5b:	72 e7                	jb     0x404a44
404a5d:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi
404a63:	0f 84 70 01 00 00    	je     0x404bd9
404a69:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
404a6f:	0f 84 64 01 00 00    	je     0x404bd9
404a75:	0f b7 c7             	movzwl %di,%eax
404a78:	50                   	push   %eax
404a79:	ff 15 00 d1 41 00    	call   *0x41d100
404a7f:	85 c0                	test   %eax,%eax
404a81:	0f 84 52 01 00 00    	je     0x404bd9
404a87:	8d 45 e8             	lea    -0x18(%ebp),%eax
404a8a:	50                   	push   %eax
404a8b:	57                   	push   %edi
404a8c:	ff 15 f4 d0 41 00    	call   *0x41d0f4
404a92:	85 c0                	test   %eax,%eax
404a94:	0f 84 33 01 00 00    	je     0x404bcd
404a9a:	68 01 01 00 00       	push   $0x101
404a9f:	8d 43 1c             	lea    0x1c(%ebx),%eax
404aa2:	56                   	push   %esi
404aa3:	50                   	push   %eax
404aa4:	e8 97 23 00 00       	call   0x406e40
404aa9:	33 d2                	xor    %edx,%edx
404aab:	42                   	inc    %edx
404aac:	83 c4 0c             	add    $0xc,%esp
404aaf:	89 7b 04             	mov    %edi,0x4(%ebx)
404ab2:	89 73 0c             	mov    %esi,0xc(%ebx)
404ab5:	39 55 e8             	cmp    %edx,-0x18(%ebp)
404ab8:	0f 86 f8 00 00 00    	jbe    0x404bb6
404abe:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
404ac2:	0f 84 cf 00 00 00    	je     0x404b97
404ac8:	8d 75 ef             	lea    -0x11(%ebp),%esi
404acb:	8a 0e                	mov    (%esi),%cl
404acd:	84 c9                	test   %cl,%cl
404acf:	0f 84 c2 00 00 00    	je     0x404b97
404ad5:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
404ad9:	0f b6 c9             	movzbl %cl,%ecx
404adc:	e9 a6 00 00 00       	jmp    0x404b87
404ae1:	68 01 01 00 00       	push   $0x101
404ae6:	8d 43 1c             	lea    0x1c(%ebx),%eax
404ae9:	56                   	push   %esi
404aea:	50                   	push   %eax
404aeb:	e8 50 23 00 00       	call   0x406e40
404af0:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
404af3:	83 c4 0c             	add    $0xc,%esp
404af6:	6b c9 30             	imul   $0x30,%ecx,%ecx
404af9:	89 75 e0             	mov    %esi,-0x20(%ebp)
404afc:	8d b1 70 f9 41 00    	lea    0x41f970(%ecx),%esi
404b02:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404b05:	eb 2a                	jmp    0x404b31
404b07:	8a 46 01             	mov    0x1(%esi),%al
404b0a:	84 c0                	test   %al,%al
404b0c:	74 28                	je     0x404b36
404b0e:	0f b6 3e             	movzbl (%esi),%edi
404b11:	0f b6 c0             	movzbl %al,%eax
404b14:	eb 12                	jmp    0x404b28
404b16:	8b 45 e0             	mov    -0x20(%ebp),%eax
404b19:	8a 80 5c f9 41 00    	mov    0x41f95c(%eax),%al
404b1f:	08 44 3b 1d          	or     %al,0x1d(%ebx,%edi,1)
404b23:	0f b6 46 01          	movzbl 0x1(%esi),%eax
404b27:	47                   	inc    %edi
404b28:	3b f8                	cmp    %eax,%edi
404b2a:	76 ea                	jbe    0x404b16
404b2c:	8b 7d 08             	mov    0x8(%ebp),%edi
404b2f:	46                   	inc    %esi
404b30:	46                   	inc    %esi
404b31:	80 3e 00             	cmpb   $0x0,(%esi)
404b34:	75 d1                	jne    0x404b07
404b36:	8b 75 e4             	mov    -0x1c(%ebp),%esi
404b39:	ff 45 e0             	incl   -0x20(%ebp)
404b3c:	83 c6 08             	add    $0x8,%esi
404b3f:	83 7d e0 04          	cmpl   $0x4,-0x20(%ebp)
404b43:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404b46:	72 e9                	jb     0x404b31
404b48:	8b c7                	mov    %edi,%eax
404b4a:	89 7b 04             	mov    %edi,0x4(%ebx)
404b4d:	c7 43 08 01 00 00 00 	movl   $0x1,0x8(%ebx)
404b54:	e8 67 fb ff ff       	call   0x4046c0
404b59:	6a 06                	push   $0x6
404b5b:	89 43 0c             	mov    %eax,0xc(%ebx)
404b5e:	8d 43 10             	lea    0x10(%ebx),%eax
404b61:	8d 89 64 f9 41 00    	lea    0x41f964(%ecx),%ecx
404b67:	5a                   	pop    %edx
404b68:	66 8b 31             	mov    (%ecx),%si
404b6b:	41                   	inc    %ecx
404b6c:	66 89 30             	mov    %si,(%eax)
404b6f:	41                   	inc    %ecx