410671:	a1 18 51 41 00       	mov    0x415118,%eax
410676:	33 c5                	xor    %ebp,%eax
410678:	50                   	push   %eax
410679:	8d 45 f4             	lea    -0xc(%ebp),%eax
41067c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
410682:	83 39 00             	cmpl   $0x0,(%ecx)
410685:	74 08                	je     0x41068f
410687:	ff 31                	push   (%ecx)
410689:	ff 15 0c b1 41 00    	call   *0x41b10c
41068f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410692:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410699:	59                   	pop    %ecx
41069a:	c9                   	leave
41069b:	c3                   	ret
41069c:	8b ff                	mov    %edi,%edi
41069e:	55                   	push   %ebp
41069f:	8b ec                	mov    %esp,%ebp
4106a1:	51                   	push   %ecx
4106a2:	51                   	push   %ecx
4106a3:	53                   	push   %ebx
4106a4:	57                   	push   %edi
4106a5:	8b 39                	mov    (%ecx),%edi
4106a7:	8b da                	mov    %edx,%ebx
4106a9:	85 ff                	test   %edi,%edi
4106ab:	74 2f                	je     0x4106dc
4106ad:	56                   	push   %esi
4106ae:	8b 75 08             	mov    0x8(%ebp),%esi
4106b1:	6a ff                	push   $0xffffffff
4106b3:	68 f0 d8 ff ff       	push   $0xffffd8f0
4106b8:	ff 75 0c             	push   0xc(%ebp)
4106bb:	56                   	push   %esi
4106bc:	e8 2f 3a 00 00       	call   0x4140f0
4106c1:	c1 ee 02             	shr    $0x2,%esi
4106c4:	56                   	push   %esi
4106c5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4106c8:	8d 45 f8             	lea    -0x8(%ebp),%eax
4106cb:	6a 00                	push   $0x0
4106cd:	50                   	push   %eax
4106ce:	57                   	push   %edi
4106cf:	89 55 fc             	mov    %edx,-0x4(%ebp)
4106d2:	ff 15 dc b0 41 00    	call   *0x41b0dc
4106d8:	c6 03 01             	movb   $0x1,(%ebx)
4106db:	5e                   	pop    %esi
4106dc:	5f                   	pop    %edi
4106dd:	5b                   	pop    %ebx
4106de:	c9                   	leave
4106df:	c2 08 00             	ret    $0x8
4106e2:	6a 0c                	push   $0xc
4106e4:	b8 56 44 41 00       	mov    $0x414456,%eax
4106e9:	e8 51 35 00 00       	call   0x413c3f
4106ee:	8b f9                	mov    %ecx,%edi
4106f0:	8b 47 08             	mov    0x8(%edi),%eax
4106f3:	2b 07                	sub    (%edi),%eax
4106f5:	8b 5d 08             	mov    0x8(%ebp),%ebx
4106f8:	3b c3                	cmp    %ebx,%eax
4106fa:	73 6c                	jae    0x410768
4106fc:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
410700:	ff 15 44 b1 41 00    	call   *0x41b144
410706:	8b f0                	mov    %eax,%esi
410708:	89 75 ec             	mov    %esi,-0x14(%ebp)
41070b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41070f:	83 e3 c0             	and    $0xffffffc0,%ebx
410712:	83 c3 40             	add    $0x40,%ebx
410715:	33 c9                	xor    %ecx,%ecx
410717:	8b d3                	mov    %ebx,%edx
410719:	e8 78 54 ff ff       	call   0x405b96
41071e:	89 45 f0             	mov    %eax,-0x10(%ebp)
410721:	85 c0                	test   %eax,%eax
410723:	75 0b                	jne    0x410730
410725:	56                   	push   %esi
410726:	ff 15 2c b1 41 00    	call   *0x41b12c
41072c:	32 c0                	xor    %al,%al
41072e:	eb 3a                	jmp    0x41076a
410730:	8b 77 04             	mov    0x4(%edi),%esi
410733:	2b 37                	sub    (%edi),%esi
410735:	56                   	push   %esi
410736:	ff 37                	push   (%edi)
410738:	53                   	push   %ebx
410739:	50                   	push   %eax
41073a:	ff 15 74 b3 41 00    	call   *0x41b374
410740:	83 c4 10             	add    $0x10,%esp
410743:	8d 4f 0c             	lea    0xc(%edi),%ecx
410746:	ff 75 f0             	push   -0x10(%ebp)
410749:	e8 f9 19 00 00       	call   0x412147
41074e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410751:	ff 75 ec             	push   -0x14(%ebp)
410754:	89 0f                	mov    %ecx,(%edi)
410756:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
410759:	89 47 04             	mov    %eax,0x4(%edi)
41075c:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
41075f:	89 47 08             	mov    %eax,0x8(%edi)
410762:	ff 15 2c b1 41 00    	call   *0x41b12c
410768:	b0 01                	mov    $0x1,%al
41076a:	e8 ad 34 00 00       	call   0x413c1c
41076f:	c2 04 00             	ret    $0x4
410772:	8b ff                	mov    %edi,%edi
410774:	55                   	push   %ebp
410775:	8b ec                	mov    %esp,%ebp
410777:	8b 41 04             	mov    0x4(%ecx),%eax
41077a:	2b 01                	sub    (%ecx),%eax
41077c:	8b 51 08             	mov    0x8(%ecx),%edx
41077f:	2b 11                	sub    (%ecx),%edx
410781:	03 45 08             	add    0x8(%ebp),%eax
410784:	3b c2                	cmp    %edx,%eax
410786:	73 04                	jae    0x41078c
410788:	b0 01                	mov    $0x1,%al
41078a:	eb 11                	jmp    0x41079d
41078c:	8d 04 12             	lea    (%edx,%edx,1),%eax
41078f:	39 45 08             	cmp    %eax,0x8(%ebp)
410792:	72 03                	jb     0x410797
410794:	8b 45 08             	mov    0x8(%ebp),%eax
410797:	50                   	push   %eax
410798:	e8 45 ff ff ff       	call   0x4106e2
41079d:	5d                   	pop    %ebp
41079e:	c2 04 00             	ret    $0x4
4107a1:	8b ff                	mov    %edi,%edi
4107a3:	55                   	push   %ebp
4107a4:	8b ec                	mov    %esp,%ebp
4107a6:	56                   	push   %esi
4107a7:	57                   	push   %edi
4107a8:	8b 7d 0c             	mov    0xc(%ebp),%edi
4107ab:	8b f1                	mov    %ecx,%esi
4107ad:	57                   	push   %edi
4107ae:	e8 bf ff ff ff       	call   0x410772
4107b3:	84 c0                	test   %al,%al
4107b5:	74 23                	je     0x4107da
4107b7:	8b 56 04             	mov    0x4(%esi),%edx
4107ba:	8b 4e 08             	mov    0x8(%esi),%ecx
4107bd:	2b ca                	sub    %edx,%ecx
4107bf:	3b 56 08             	cmp    0x8(%esi),%edx
4107c2:	57                   	push   %edi
4107c3:	ff 75 08             	push   0x8(%ebp)
4107c6:	1b c0                	sbb    %eax,%eax
4107c8:	23 c1                	and    %ecx,%eax
4107ca:	50                   	push   %eax
4107cb:	52                   	push   %edx
4107cc:	ff 15 74 b3 41 00    	call   *0x41b374
4107d2:	83 c4 10             	add    $0x10,%esp
4107d5:	b0 01                	mov    $0x1,%al
4107d7:	01 7e 04             	add    %edi,0x4(%esi)
4107da:	5f                   	pop    %edi
4107db:	5e                   	pop    %esi
4107dc:	5d                   	pop    %ebp
4107dd:	c2 08 00             	ret    $0x8
4107e0:	8b ff                	mov    %edi,%edi
4107e2:	55                   	push   %ebp
4107e3:	8b ec                	mov    %esp,%ebp
4107e5:	83 e4 f8             	and    $0xfffffff8,%esp
4107e8:	b8 24 10 00 00       	mov    $0x1024,%eax
4107ed:	e8 3e 39 00 00       	call   0x414130
4107f2:	a1 18 51 41 00       	mov    0x415118,%eax
4107f7:	33 c4                	xor    %esp,%eax
4107f9:	89 84 24 20 10 00 00 	mov    %eax,0x1020(%esp)
410800:	53                   	push   %ebx
410801:	8b d9                	mov    %ecx,%ebx
410803:	56                   	push   %esi
410804:	57                   	push   %edi
410805:	6a 0c                	push   $0xc
410807:	8b 43 04             	mov    0x4(%ebx),%eax
41080a:	33 f6                	xor    %esi,%esi
41080c:	2b 03                	sub    (%ebx),%eax
41080e:	59                   	pop    %ecx
41080f:	89 5c 24 10          	mov    %ebx,0x10(%esp)
410813:	89 4c 24 18          	mov    %ecx,0x18(%esp)
410817:	3b c1                	cmp    %ecx,%eax
410819:	0f 82 16 01 00 00    	jb     0x410935
41081f:	8b fe                	mov    %esi,%edi
410821:	89 74 24 14          	mov    %esi,0x14(%esp)
410825:	8d 44 24 0c          	lea    0xc(%esp),%eax
410829:	c7 44 24 0c 00 10 00 	movl   $0x1000,0xc(%esp)
410830:	00
410831:	50                   	push   %eax
410832:	8d 44 24 2c          	lea    0x2c(%esp),%eax
410836:	50                   	push   %eax
410837:	8d 44 24 28          	lea    0x28(%esp),%eax
41083b:	50                   	push   %eax
41083c:	51                   	push   %ecx
41083d:	b9 d0 41 40 00       	mov    $0x4041d0,%ecx
410842:	e8 22 f8 ff ff       	call   0x410069
410847:	89 44 24 24          	mov    %eax,0x24(%esp)
41084b:	85 c0                	test   %eax,%eax
41084d:	0f 85 c4 00 00 00    	jne    0x410917
410853:	8b 44 24 0c          	mov    0xc(%esp),%eax
410857:	33 d2                	xor    %edx,%edx
410859:	6a 0c                	push   $0xc
41085b:	59                   	pop    %ecx
41085c:	f7 f1                	div    %ecx
41085e:	8b 1b                	mov    (%ebx),%ebx
410860:	f7 da                	neg    %edx
410862:	1b f6                	sbb    %esi,%esi
410864:	33 d2                	xor    %edx,%edx
410866:	f7 d6                	not    %esi
410868:	23 74 24 0c          	and    0xc(%esp),%esi
41086c:	8b c6                	mov    %esi,%eax
41086e:	89 74 24 0c          	mov    %esi,0xc(%esp)
410872:	f7 f1                	div    %ecx
410874:	33 d2                	xor    %edx,%edx
410876:	8b c8                	mov    %eax,%ecx
410878:	8b 44 24 10          	mov    0x10(%esp),%eax
41087c:	8b 40 04             	mov    0x4(%eax),%eax
41087f:	2b c3                	sub    %ebx,%eax
410881:	f7 74 24 18          	divl   0x18(%esp)
410885:	6b c0 0c             	imul   $0xc,%eax,%eax
410888:	03 c3                	add    %ebx,%eax
41088a:	89 44 24 1c          	mov    %eax,0x1c(%esp)
41088e:	3b d8                	cmp    %eax,%ebx
410890:	74 64                	je     0x4108f6
410892:	6b c1 0c             	imul   $0xc,%ecx,%eax
410895:	8d 54 24 28          	lea    0x28(%esp),%edx
410899:	03 d0                	add    %eax,%edx
41089b:	8d 44 24 28          	lea    0x28(%esp),%eax
41089f:	3b c2                	cmp    %edx,%eax
4108a1:	74 1e                	je     0x4108c1
4108a3:	8b 3b                	mov    (%ebx),%edi
4108a5:	8b c8                	mov    %eax,%ecx
4108a7:	6a 0c                	push   $0xc
4108a9:	58                   	pop    %eax
4108aa:	39 39                	cmp    %edi,(%ecx)
4108ac:	75 0d                	jne    0x4108bb
4108ae:	66 8b 41 04          	mov    0x4(%ecx),%ax
4108b2:	6a 0c                	push   $0xc
4108b4:	66 3b 43 04          	cmp    0x4(%ebx),%ax
4108b8:	74 25                	je     0x4108df
4108ba:	58                   	pop    %eax
4108bb:	03 c8                	add    %eax,%ecx
4108bd:	3b ca                	cmp    %edx,%ecx
4108bf:	75 e9                	jne    0x4108aa
4108c1:	8d 46 0c             	lea    0xc(%esi),%eax
4108c4:	6a 0c                	push   $0xc
4108c6:	3d 00 10 00 00       	cmp    $0x1000,%eax
4108cb:	77 1c                	ja     0x4108e9
4108cd:	8b fa                	mov    %edx,%edi
4108cf:	8b f3                	mov    %ebx,%esi
4108d1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4108d2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4108d3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4108d4:	8b f0                	mov    %eax,%esi
4108d6:	58                   	pop    %eax
4108d7:	89 74 24 0c          	mov    %esi,0xc(%esp)
4108db:	03 d0                	add    %eax,%edx
4108dd:	eb 0b                	jmp    0x4108ea
4108df:	8b 43 08             	mov    0x8(%ebx),%eax
4108e2:	01 41 08             	add    %eax,0x8(%ecx)
4108e5:	8b 74 24 10          	mov    0x10(%esp),%esi
4108e9:	58                   	pop    %eax
4108ea:	03 d8                	add    %eax,%ebx
4108ec:	3b 5c 24 1c          	cmp    0x1c(%esp),%ebx
4108f0:	75 a9                	jne    0x41089b
4108f2:	8b 7c 24 14          	mov    0x14(%esp),%edi
4108f6:	6a 01                	push   $0x1
4108f8:	ff 74 24 24          	push   0x24(%esp)
4108fc:	8d 54 24 30          	lea    0x30(%esp),%edx
410900:	51                   	push   %ecx
410901:	51                   	push   %ecx
410902:	56                   	push   %esi
410903:	b9 d0 41 40 00       	mov    $0x4041d0,%ecx
410908:	e8 b1 f7 ff ff       	call   0x4100be
41090d:	8b 5c 24 10          	mov    0x10(%esp),%ebx
410911:	8b f0                	mov    %eax,%esi
410913:	8b 44 24 24          	mov    0x24(%esp),%eax
410917:	47                   	inc    %edi
410918:	89 7c 24 14          	mov    %edi,0x14(%esp)
41091c:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
410922:	75 0d                	jne    0x410931
410924:	83 ff 64             	cmp    $0x64,%edi
410927:	7d 08                	jge    0x410931
410929:	85 c0                	test   %eax,%eax
41092b:	0f 84 f4 fe ff ff    	je     0x410825
410931:	85 c0                	test   %eax,%eax
410933:	75 02                	jne    0x410937
410935:	8b c6                	mov    %esi,%eax
410937:	8b 8c 24 2c 10 00 00 	mov    0x102c(%esp),%ecx
41093e:	5f                   	pop    %edi
41093f:	5e                   	pop    %esi
410940:	5b                   	pop    %ebx
410941:	33 cc                	xor    %esp,%ecx
410943:	e8 98 2f 00 00       	call   0x4138e0
410948:	8b e5                	mov    %ebp,%esp
41094a:	5d                   	pop    %ebp
41094b:	c3                   	ret
41094c:	8b ff                	mov    %edi,%edi
41094e:	55                   	push   %ebp
41094f:	8b ec                	mov    %esp,%ebp
410951:	56                   	push   %esi
410952:	8b 35 40 a3 41 00    	mov    0x41a340,%esi
410958:	85 f6                	test   %esi,%esi
41095a:	75 1d                	jne    0x410979
41095c:	68 e8 40 40 00       	push   $0x4040e8
410961:	e8 69 66 ff ff       	call   0x406fcf
410966:	50                   	push   %eax
410967:	ff 15 5c b1 41 00    	call   *0x41b15c
41096d:	8b f0                	mov    %eax,%esi
41096f:	89 35 40 a3 41 00    	mov    %esi,0x41a340
410975:	85 f6                	test   %esi,%esi
410977:	74 0d                	je     0x410986
410979:	ff 75 08             	push   0x8(%ebp)
41097c:	8b ce                	mov    %esi,%ecx
41097e:	ff 15 90 b3 41 00    	call   *0x41b390
410984:	ff d6                	call   *%esi
410986:	5e                   	pop    %esi
410987:	5d                   	pop    %ebp
410988:	c2 04 00             	ret    $0x4
41098b:	8b ff                	mov    %edi,%edi
41098d:	55                   	push   %ebp
41098e:	8b ec                	mov    %esp,%ebp
410990:	56                   	push   %esi
410991:	8b 35 2c a3 41 00    	mov    0x41a32c,%esi
410997:	85 f6                	test   %esi,%esi
410999:	75 1d                	jne    0x4109b8
41099b:	68 48 40 40 00       	push   $0x404048
4109a0:	e8 2a 66 ff ff       	call   0x406fcf
4109a5:	50                   	push   %eax
4109a6:	ff 15 5c b1 41 00    	call   *0x41b15c
4109ac:	8b f0                	mov    %eax,%esi
4109ae:	89 35 2c a3 41 00    	mov    %esi,0x41a32c
4109b4:	85 f6                	test   %esi,%esi
4109b6:	74 0d                	je     0x4109c5
4109b8:	ff 75 08             	push   0x8(%ebp)
4109bb:	8b ce                	mov    %esi,%ecx
4109bd:	ff 15 90 b3 41 00    	call   *0x41b390
4109c3:	ff d6                	call   *%esi
4109c5:	5e                   	pop    %esi
4109c6:	5d                   	pop    %ebp
4109c7:	c2 04 00             	ret    $0x4
4109ca:	8b ff                	mov    %edi,%edi
4109cc:	55                   	push   %ebp
4109cd:	8b ec                	mov    %esp,%ebp
4109cf:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
4109d3:	8b 45 0c             	mov    0xc(%ebp),%eax
4109d6:	3b c2                	cmp    %edx,%eax
4109d8:	75 11                	jne    0x4109eb
4109da:	50                   	push   %eax
4109db:	ff 71 10             	push   0x10(%ecx)
4109de:	ff 75 08             	push   0x8(%ebp)
4109e1:	e8 75 37 00 00       	call   0x41415b
4109e6:	83 c4 0c             	add    $0xc,%esp
4109e9:	eb 02                	jmp    0x4109ed
4109eb:	2b c2                	sub    %edx,%eax
4109ed:	5d                   	pop    %ebp
4109ee:	c2 08 00             	ret    $0x8
4109f1:	8b ff                	mov    %edi,%edi
4109f3:	55                   	push   %ebp
4109f4:	8b ec                	mov    %esp,%ebp
4109f6:	51                   	push   %ecx
4109f7:	8b 55 08             	mov    0x8(%ebp),%edx
4109fa:	8d 41 04             	lea    0x4(%ecx),%eax
4109fd:	39 10                	cmp    %edx,(%eax)
4109ff:	74 31                	je     0x410a32
410a01:	89 10                	mov    %edx,(%eax)
410a03:	8a 51 02             	mov    0x2(%ecx),%dl