415597:	8b 8d fc fe ff ff    	mov    -0x104(%ebp),%ecx
41559d:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
4155a3:	3b cf                	cmp    %edi,%ecx
4155a5:	73 15                	jae    0x4155bc
4155a7:	8b d7                	mov    %edi,%edx
4155a9:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
4155af:	e9 2b fd ff ff       	jmp    0x4152df
4155b4:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
4155ba:	eb 06                	jmp    0x4155c2
4155bc:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
4155c2:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
4155c8:	83 e8 01             	sub    $0x1,%eax
4155cb:	89 85 f8 fe ff ff    	mov    %eax,-0x108(%ebp)
4155d1:	78 16                	js     0x4155e9
4155d3:	8b 8c 85 0c ff ff ff 	mov    -0xf4(%ebp,%eax,4),%ecx
4155da:	8b 54 85 84          	mov    -0x7c(%ebp,%eax,4),%edx
4155de:	89 8d fc fe ff ff    	mov    %ecx,-0x104(%ebp)
4155e4:	e9 f6 fc ff ff       	jmp    0x4152df
4155e9:	5b                   	pop    %ebx
4155ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4155ed:	5f                   	pop    %edi
4155ee:	33 cd                	xor    %ebp,%ecx
4155f0:	5e                   	pop    %esi
4155f1:	e8 60 d9 fe ff       	call   0x402f56
4155f6:	8b e5                	mov    %ebp,%esp
4155f8:	5d                   	pop    %ebp
4155f9:	c3                   	ret
4155fa:	cc                   	int3
4155fb:	cc                   	int3
4155fc:	cc                   	int3
4155fd:	cc                   	int3
4155fe:	cc                   	int3
4155ff:	cc                   	int3
415600:	55                   	push   %ebp
415601:	8b ec                	mov    %esp,%ebp
415603:	56                   	push   %esi
415604:	33 c0                	xor    %eax,%eax
415606:	50                   	push   %eax
415607:	50                   	push   %eax
415608:	50                   	push   %eax
415609:	50                   	push   %eax
41560a:	50                   	push   %eax
41560b:	50                   	push   %eax
41560c:	50                   	push   %eax
41560d:	50                   	push   %eax
41560e:	8b 55 0c             	mov    0xc(%ebp),%edx
415611:	8d 49 00             	lea    0x0(%ecx),%ecx
415614:	8a 02                	mov    (%edx),%al
415616:	0a c0                	or     %al,%al
415618:	74 09                	je     0x415623
41561a:	83 c2 01             	add    $0x1,%edx
41561d:	0f ab 04 24          	bts    %eax,(%esp)
415621:	eb f1                	jmp    0x415614
415623:	8b 75 08             	mov    0x8(%ebp),%esi
415626:	8b ff                	mov    %edi,%edi
415628:	8a 06                	mov    (%esi),%al
41562a:	0a c0                	or     %al,%al
41562c:	74 0c                	je     0x41563a
41562e:	83 c6 01             	add    $0x1,%esi
415631:	0f a3 04 24          	bt     %eax,(%esp)
415635:	73 f1                	jae    0x415628
415637:	8d 46 ff             	lea    -0x1(%esi),%eax
41563a:	83 c4 20             	add    $0x20,%esp
41563d:	5e                   	pop    %esi
41563e:	c9                   	leave
41563f:	c3                   	ret
415640:	e8 be a2 ff ff       	call   0x40f903
415645:	33 c9                	xor    %ecx,%ecx
415647:	84 c0                	test   %al,%al
415649:	0f 94 c1             	sete   %cl
41564c:	8b c1                	mov    %ecx,%eax
41564e:	c3                   	ret
41564f:	8b ff                	mov    %edi,%edi
415651:	55                   	push   %ebp
415652:	8b ec                	mov    %esp,%ebp
415654:	51                   	push   %ecx
415655:	a1 98 41 42 00       	mov    0x424198,%eax
41565a:	56                   	push   %esi
41565b:	57                   	push   %edi
41565c:	85 c0                	test   %eax,%eax
41565e:	0f 85 a2 00 00 00    	jne    0x415706
415664:	8b 55 08             	mov    0x8(%ebp),%edx
415667:	85 d2                	test   %edx,%edx
415669:	75 1a                	jne    0x415685
41566b:	e8 97 26 ff ff       	call   0x407d07
415670:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
415676:	e8 b3 25 ff ff       	call   0x407c2e
41567b:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
415680:	e9 94 00 00 00       	jmp    0x415719
415685:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415688:	85 c9                	test   %ecx,%ecx
41568a:	74 df                	je     0x41566b
41568c:	8b 7d 10             	mov    0x10(%ebp),%edi
41568f:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
415694:	3b fe                	cmp    %esi,%edi
415696:	76 14                	jbe    0x4156ac
415698:	e8 6a 26 ff ff       	call   0x407d07
41569d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4156a3:	e8 86 25 ff ff       	call   0x407c2e
4156a8:	8b c6                	mov    %esi,%eax
4156aa:	eb 6d                	jmp    0x415719
4156ac:	53                   	push   %ebx
4156ad:	6a 41                	push   $0x41
4156af:	5b                   	pop    %ebx
4156b0:	6a 5a                	push   $0x5a
4156b2:	5e                   	pop    %esi
4156b3:	2b d1                	sub    %ecx,%edx
4156b5:	89 75 fc             	mov    %esi,-0x4(%ebp)
4156b8:	eb 03                	jmp    0x4156bd
4156ba:	6a 5a                	push   $0x5a
4156bc:	5e                   	pop    %esi
4156bd:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
4156c1:	66 3b c3             	cmp    %bx,%ax
4156c4:	72 0d                	jb     0x4156d3
4156c6:	66 3b c6             	cmp    %si,%ax
4156c9:	77 08                	ja     0x4156d3
4156cb:	83 c0 20             	add    $0x20,%eax
4156ce:	0f b7 f0             	movzwl %ax,%esi
4156d1:	eb 02                	jmp    0x4156d5
4156d3:	8b f0                	mov    %eax,%esi
4156d5:	0f b7 01             	movzwl (%ecx),%eax
4156d8:	66 3b c3             	cmp    %bx,%ax
4156db:	72 0c                	jb     0x4156e9
4156dd:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
4156e1:	77 06                	ja     0x4156e9
4156e3:	83 c0 20             	add    $0x20,%eax
4156e6:	0f b7 c0             	movzwl %ax,%eax
4156e9:	83 c1 02             	add    $0x2,%ecx
4156ec:	83 ef 01             	sub    $0x1,%edi
4156ef:	74 0a                	je     0x4156fb
4156f1:	66 85 f6             	test   %si,%si
4156f4:	74 05                	je     0x4156fb
4156f6:	66 3b f0             	cmp    %ax,%si
4156f9:	74 bf                	je     0x4156ba
4156fb:	0f b7 c8             	movzwl %ax,%ecx
4156fe:	0f b7 c6             	movzwl %si,%eax
415701:	2b c1                	sub    %ecx,%eax
415703:	5b                   	pop    %ebx
415704:	eb 13                	jmp    0x415719
415706:	6a 00                	push   $0x0
415708:	ff 75 10             	push   0x10(%ebp)
41570b:	ff 75 0c             	push   0xc(%ebp)
41570e:	ff 75 08             	push   0x8(%ebp)
415711:	e8 09 00 00 00       	call   0x41571f
415716:	83 c4 10             	add    $0x10,%esp
415719:	5f                   	pop    %edi
41571a:	5e                   	pop    %esi
41571b:	8b e5                	mov    %ebp,%esp
41571d:	5d                   	pop    %ebp
41571e:	c3                   	ret
41571f:	8b ff                	mov    %edi,%edi
415721:	55                   	push   %ebp
415722:	8b ec                	mov    %esp,%ebp
415724:	83 ec 10             	sub    $0x10,%esp
415727:	53                   	push   %ebx
415728:	8b 5d 10             	mov    0x10(%ebp),%ebx
41572b:	85 db                	test   %ebx,%ebx
41572d:	75 07                	jne    0x415736
41572f:	33 c0                	xor    %eax,%eax
415731:	e9 11 01 00 00       	jmp    0x415847
415736:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41573a:	75 1a                	jne    0x415756
41573c:	e8 c6 25 ff ff       	call   0x407d07
415741:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
415747:	e8 e2 24 ff ff       	call   0x407c2e
41574c:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
415751:	e9 f1 00 00 00       	jmp    0x415847
415756:	57                   	push   %edi
415757:	8b 7d 0c             	mov    0xc(%ebp),%edi
41575a:	85 ff                	test   %edi,%edi
41575c:	75 1a                	jne    0x415778
41575e:	e8 a4 25 ff ff       	call   0x407d07
415763:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
415769:	e8 c0 24 ff ff       	call   0x407c2e
41576e:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
415773:	e9 ce 00 00 00       	jmp    0x415846
415778:	56                   	push   %esi
415779:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
41577e:	3b de                	cmp    %esi,%ebx
415780:	76 15                	jbe    0x415797
415782:	e8 80 25 ff ff       	call   0x407d07
415787:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41578d:	e8 9c 24 ff ff       	call   0x407c2e
415792:	e9 ac 00 00 00       	jmp    0x415843
415797:	ff 75 14             	push   0x14(%ebp)
41579a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41579d:	e8 0f ff fe ff       	call   0x4056b1
4157a2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4157a5:	8b 80 a4 00 00 00    	mov    0xa4(%eax),%eax
4157ab:	85 c0                	test   %eax,%eax
4157ad:	75 5c                	jne    0x41580b
4157af:	8b 45 08             	mov    0x8(%ebp),%eax
4157b2:	2b c7                	sub    %edi,%eax
4157b4:	6a 41                	push   $0x41
4157b6:	89 45 08             	mov    %eax,0x8(%ebp)
4157b9:	5e                   	pop    %esi
4157ba:	0f b7 04 38          	movzwl (%eax,%edi,1),%eax
4157be:	6a 5a                	push   $0x5a
4157c0:	5a                   	pop    %edx
4157c1:	66 3b c6             	cmp    %si,%ax
4157c4:	72 0d                	jb     0x4157d3
4157c6:	66 3b c2             	cmp    %dx,%ax
4157c9:	77 08                	ja     0x4157d3
4157cb:	83 c0 20             	add    $0x20,%eax
4157ce:	0f b7 c8             	movzwl %ax,%ecx
4157d1:	eb 02                	jmp    0x4157d5
4157d3:	8b c8                	mov    %eax,%ecx
4157d5:	0f b7 07             	movzwl (%edi),%eax
4157d8:	66 3b c6             	cmp    %si,%ax
4157db:	72 0d                	jb     0x4157ea
4157dd:	66 3b c2             	cmp    %dx,%ax
4157e0:	77 08                	ja     0x4157ea
4157e2:	83 c0 20             	add    $0x20,%eax
4157e5:	0f b7 d0             	movzwl %ax,%edx
4157e8:	eb 02                	jmp    0x4157ec
4157ea:	8b d0                	mov    %eax,%edx
4157ec:	83 c7 02             	add    $0x2,%edi
4157ef:	83 eb 01             	sub    $0x1,%ebx
4157f2:	74 0d                	je     0x415801
4157f4:	66 85 c9             	test   %cx,%cx
4157f7:	74 08                	je     0x415801
4157f9:	8b 45 08             	mov    0x8(%ebp),%eax
4157fc:	66 3b ca             	cmp    %dx,%cx
4157ff:	74 b9                	je     0x4157ba
415801:	0f b7 c2             	movzwl %dx,%eax
415804:	0f b7 f1             	movzwl %cx,%esi
415807:	2b f0                	sub    %eax,%esi
415809:	eb 28                	jmp    0x415833
41580b:	53                   	push   %ebx
41580c:	57                   	push   %edi
41580d:	53                   	push   %ebx
41580e:	ff 75 08             	push   0x8(%ebp)
415811:	68 01 10 00 00       	push   $0x1001
415816:	50                   	push   %eax
415817:	e8 bc 07 00 00       	call   0x415fd8
41581c:	83 c4 18             	add    $0x18,%esp
41581f:	85 c0                	test   %eax,%eax
415821:	75 0d                	jne    0x415830
415823:	e8 df 24 ff ff       	call   0x407d07
415828:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41582e:	eb 03                	jmp    0x415833
415830:	8d 70 fe             	lea    -0x2(%eax),%esi
415833:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
415837:	74 0a                	je     0x415843
415839:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41583c:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
415843:	8b c6                	mov    %esi,%eax
415845:	5e                   	pop    %esi
415846:	5f                   	pop    %edi
415847:	5b                   	pop    %ebx
415848:	8b e5                	mov    %ebp,%esp
41584a:	5d                   	pop    %ebp
41584b:	c3                   	ret
41584c:	8b ff                	mov    %edi,%edi
41584e:	55                   	push   %ebp
41584f:	8b ec                	mov    %esp,%ebp
415851:	a1 98 41 42 00       	mov    0x424198,%eax
415856:	85 c0                	test   %eax,%eax
415858:	75 06                	jne    0x415860
41585a:	5d                   	pop    %ebp
41585b:	e9 28 e4 ff ff       	jmp    0x413c88
415860:	6a 00                	push   $0x0
415862:	ff 75 10             	push   0x10(%ebp)
415865:	ff 75 0c             	push   0xc(%ebp)
415868:	ff 75 08             	push   0x8(%ebp)
41586b:	e8 05 00 00 00       	call   0x415875
415870:	83 c4 10             	add    $0x10,%esp
415873:	5d                   	pop    %ebp
415874:	c3                   	ret
415875:	8b ff                	mov    %edi,%edi
415877:	55                   	push   %ebp
415878:	8b ec                	mov    %esp,%ebp
41587a:	83 ec 10             	sub    $0x10,%esp
41587d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
415880:	53                   	push   %ebx
415881:	56                   	push   %esi
415882:	57                   	push   %edi
415883:	ff 75 14             	push   0x14(%ebp)
415886:	e8 26 fe fe ff       	call   0x4056b1
41588b:	8b 45 10             	mov    0x10(%ebp),%eax
41588e:	85 c0                	test   %eax,%eax
415890:	75 07                	jne    0x415899
415892:	33 f6                	xor    %esi,%esi
415894:	e9 8d 00 00 00       	jmp    0x415926
415899:	8b 4d 08             	mov    0x8(%ebp),%ecx
41589c:	85 c9                	test   %ecx,%ecx
41589e:	74 07                	je     0x4158a7
4158a0:	8b 55 0c             	mov    0xc(%ebp),%edx
4158a3:	85 d2                	test   %edx,%edx
4158a5:	75 17                	jne    0x4158be
4158a7:	e8 5b 24 ff ff       	call   0x407d07
4158ac:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4158b2:	e8 77 23 ff ff       	call   0x407c2e
4158b7:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
4158bc:	eb 68                	jmp    0x415926
4158be:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
4158c3:	3b c6                	cmp    %esi,%eax
4158c5:	76 12                	jbe    0x4158d9
4158c7:	e8 3b 24 ff ff       	call   0x407d07
4158cc:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4158d2:	e8 57 23 ff ff       	call   0x407c2e
4158d7:	eb 4d                	jmp    0x415926
4158d9:	8b 7d f4             	mov    -0xc(%ebp),%edi
4158dc:	8b 9f a4 00 00 00    	mov    0xa4(%edi),%ebx
4158e2:	85 db                	test   %ebx,%ebx
4158e4:	75 13                	jne    0x4158f9
4158e6:	8d 75 f4             	lea    -0xc(%ebp),%esi
4158e9:	56                   	push   %esi
4158ea:	50                   	push   %eax
4158eb:	52                   	push   %edx
4158ec:	51                   	push   %ecx
4158ed:	e8 02 e4 ff ff       	call   0x413cf4
4158f2:	83 c4 10             	add    $0x10,%esp
4158f5:	8b f0                	mov    %eax,%esi
4158f7:	eb 2d                	jmp    0x415926
4158f9:	ff 77 10             	push   0x10(%edi)
4158fc:	50                   	push   %eax
4158fd:	52                   	push   %edx
4158fe:	50                   	push   %eax
4158ff:	51                   	push   %ecx
415900:	68 01 10 00 00       	push   $0x1001
415905:	8d 45 f4             	lea    -0xc(%ebp),%eax
415908:	53                   	push   %ebx
415909:	50                   	push   %eax
41590a:	e8 d9 09 00 00       	call   0x4162e8
41590f:	83 c4 20             	add    $0x20,%esp
415912:	85 c0                	test   %eax,%eax
415914:	75 0d                	jne    0x415923
415916:	e8 ec 23 ff ff       	call   0x407d07
41591b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
415921:	eb 03                	jmp    0x415926
415923:	8d 70 fe             	lea    -0x2(%eax),%esi
415926:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
41592a:	74 0a                	je     0x415936
41592c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41592f:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
415936:	5f                   	pop    %edi
415937:	8b c6                	mov    %esi,%eax
415939:	5e                   	pop    %esi
41593a:	5b                   	pop    %ebx
41593b:	8b e5                	mov    %ebp,%esp
41593d:	5d                   	pop    %ebp
41593e:	c3                   	ret
41593f:	6a 08                	push   $0x8
415941:	68 88 1f 42 00       	push   $0x421f88
415946:	e8 05 e2 fe ff       	call   0x403b50
41594b:	83 3d 14 3e 42 00 01 	cmpl   $0x1,0x423e14
415952:	7c 5b                	jl     0x4159af
415954:	8b 45 08             	mov    0x8(%ebp),%eax
415957:	a8 40                	test   $0x40,%al