415614:	53                   	push   %ebx
415615:	56                   	push   %esi
415616:	e8 69 e5 fe ff       	call   0x403b84
41561b:	8b da                	mov    %edx,%ebx
41561d:	8b f0                	mov    %eax,%esi
41561f:	33 c0                	xor    %eax,%eax
415621:	89 46 20             	mov    %eax,0x20(%esi)
415624:	89 46 24             	mov    %eax,0x24(%esi)
415627:	33 c0                	xor    %eax,%eax
415629:	89 46 28             	mov    %eax,0x28(%esi)
41562c:	89 46 2c             	mov    %eax,0x2c(%esi)
41562f:	8b d3                	mov    %ebx,%edx
415631:	80 e2 fc             	and    $0xfc,%dl
415634:	8b c6                	mov    %esi,%eax
415636:	e8 55 f2 ff ff       	call   0x414890
41563b:	8b 46 14             	mov    0x14(%esi),%eax
41563e:	85 c0                	test   %eax,%eax
415640:	74 10                	je     0x415652
415642:	8b c8                	mov    %eax,%ecx
415644:	8b 46 10             	mov    0x10(%esi),%eax
415647:	8b 15 64 20 41 00    	mov    0x412064,%edx
41564d:	e8 9e f9 fe ff       	call   0x404ff0
415652:	33 c0                	xor    %eax,%eax
415654:	89 46 14             	mov    %eax,0x14(%esi)
415657:	33 d2                	xor    %edx,%edx
415659:	8b c6                	mov    %esi,%eax
41565b:	8b 08                	mov    (%eax),%ecx
41565d:	ff 51 28             	call   *0x28(%ecx)
415660:	84 db                	test   %bl,%bl
415662:	7e 07                	jle    0x41566b
415664:	8b c6                	mov    %esi,%eax
415666:	e8 01 e5 fe ff       	call   0x403b6c
41566b:	5e                   	pop    %esi
41566c:	5b                   	pop    %ebx
41566d:	c3                   	ret
41566e:	8b c0                	mov    %eax,%eax
415670:	53                   	push   %ebx
415671:	56                   	push   %esi
415672:	8b f0                	mov    %eax,%esi
415674:	33 c9                	xor    %ecx,%ecx
415676:	8b c6                	mov    %esi,%eax
415678:	8b 18                	mov    (%eax),%ebx
41567a:	ff 53 3c             	call   *0x3c(%ebx)
41567d:	5e                   	pop    %esi
41567e:	5b                   	pop    %ebx
41567f:	c3                   	ret
415680:	53                   	push   %ebx
415681:	56                   	push   %esi
415682:	57                   	push   %edi
415683:	55                   	push   %ebp
415684:	51                   	push   %ecx
415685:	8b f9                	mov    %ecx,%edi
415687:	8b f2                	mov    %edx,%esi
415689:	8b d8                	mov    %eax,%ebx
41568b:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
41568f:	75 08                	jne    0x415699
415691:	8b 43 14             	mov    0x14(%ebx),%eax
415694:	89 04 24             	mov    %eax,(%esp)
415697:	eb 2e                	jmp    0x4156c7
415699:	8b cc                	mov    %esp,%ecx
41569b:	8b d6                	mov    %esi,%edx
41569d:	8b c3                	mov    %ebx,%eax
41569f:	8b 28                	mov    (%eax),%ebp
4156a1:	ff 95 8c 00 00 00    	call   *0x8c(%ebp)
4156a7:	84 c0                	test   %al,%al
4156a9:	74 1c                	je     0x4156c7
4156ab:	8a 43 1d             	mov    0x1d(%ebx),%al
4156ae:	2c 01                	sub    $0x1,%al
4156b0:	72 26                	jb     0x4156d8
4156b2:	fe c8                	dec    %al
4156b4:	74 02                	je     0x4156b8
4156b6:	eb 0f                	jmp    0x4156c7
4156b8:	8b 15 74 0a 46 00    	mov    0x460a74,%edx
4156be:	33 c9                	xor    %ecx,%ecx
4156c0:	8b c3                	mov    %ebx,%eax
4156c2:	e8 45 f5 ff ff       	call   0x414c0c
4156c7:	57                   	push   %edi
4156c8:	8b ce                	mov    %esi,%ecx
4156ca:	8b 54 24 04          	mov    0x4(%esp),%edx
4156ce:	8b c3                	mov    %ebx,%eax
4156d0:	8b 18                	mov    (%eax),%ebx
4156d2:	ff 93 88 00 00 00    	call   *0x88(%ebx)
4156d8:	8b 04 24             	mov    (%esp),%eax
4156db:	5a                   	pop    %edx
4156dc:	5d                   	pop    %ebp
4156dd:	5f                   	pop    %edi
4156de:	5e                   	pop    %esi
4156df:	5b                   	pop    %ebx
4156e0:	c3                   	ret
4156e1:	8d 40 00             	lea    0x0(%eax),%eax
4156e4:	53                   	push   %ebx
4156e5:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
4156e9:	75 11                	jne    0x4156fc
4156eb:	66 83 78 22 00       	cmpw   $0x0,0x22(%eax)
4156f0:	74 0a                	je     0x4156fc
4156f2:	8b d8                	mov    %eax,%ebx
4156f4:	8b d0                	mov    %eax,%edx
4156f6:	8b 43 24             	mov    0x24(%ebx),%eax
4156f9:	ff 53 20             	call   *0x20(%ebx)
4156fc:	5b                   	pop    %ebx
4156fd:	c3                   	ret
4156fe:	8b c0                	mov    %eax,%eax
415700:	53                   	push   %ebx
415701:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
415705:	75 11                	jne    0x415718
415707:	66 83 78 2a 00       	cmpw   $0x0,0x2a(%eax)
41570c:	74 0a                	je     0x415718
41570e:	8b d8                	mov    %eax,%ebx
415710:	8b d0                	mov    %eax,%edx
415712:	8b 43 2c             	mov    0x2c(%ebx),%eax
415715:	ff 53 28             	call   *0x28(%ebx)
415718:	5b                   	pop    %ebx
415719:	c3                   	ret
41571a:	8b c0                	mov    %eax,%eax
41571c:	53                   	push   %ebx
41571d:	8b d8                	mov    %eax,%ebx
41571f:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
415723:	74 33                	je     0x415758
415725:	8b c3                	mov    %ebx,%eax
415727:	8b 10                	mov    (%eax),%edx
415729:	ff 92 84 00 00 00    	call   *0x84(%edx)
41572f:	8b 43 10             	mov    0x10(%ebx),%eax
415732:	8b 4b 14             	mov    0x14(%ebx),%ecx
415735:	8b 15 64 20 41 00    	mov    0x412064,%edx
41573b:	e8 b0 f8 fe ff       	call   0x404ff0
415740:	33 c0                	xor    %eax,%eax
415742:	89 43 14             	mov    %eax,0x14(%ebx)
415745:	33 d2                	xor    %edx,%edx
415747:	8b c3                	mov    %ebx,%eax
415749:	8b 08                	mov    (%eax),%ecx
41574b:	ff 51 28             	call   *0x28(%ecx)
41574e:	8b c3                	mov    %ebx,%eax
415750:	8b 10                	mov    (%eax),%edx
415752:	ff 92 80 00 00 00    	call   *0x80(%edx)
415758:	5b                   	pop    %ebx
415759:	c3                   	ret
41575a:	8b c0                	mov    %eax,%eax
41575c:	53                   	push   %ebx
41575d:	56                   	push   %esi
41575e:	8b f2                	mov    %edx,%esi
415760:	8b d8                	mov    %eax,%ebx
415762:	85 f6                	test   %esi,%esi
415764:	7c 05                	jl     0x41576b
415766:	3b 73 14             	cmp    0x14(%ebx),%esi
415769:	7c 0f                	jl     0x41577a
41576b:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
415771:	8b ce                	mov    %esi,%ecx
415773:	8b c3                	mov    %ebx,%eax
415775:	e8 92 f4 ff ff       	call   0x414c0c
41577a:	8b c3                	mov    %ebx,%eax
41577c:	8b 10                	mov    (%eax),%edx
41577e:	ff 92 84 00 00 00    	call   *0x84(%edx)
415784:	8b 43 10             	mov    0x10(%ebx),%eax
415787:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41578a:	8b 15 64 20 41 00    	mov    0x412064,%edx
415790:	e8 47 f9 fe ff       	call   0x4050dc
415795:	ff 4b 14             	decl   0x14(%ebx)
415798:	8b 43 14             	mov    0x14(%ebx),%eax
41579b:	3b f0                	cmp    %eax,%esi
41579d:	7d 19                	jge    0x4157b8
41579f:	2b c6                	sub    %esi,%eax
4157a1:	8b c8                	mov    %eax,%ecx
4157a3:	c1 e1 03             	shl    $0x3,%ecx
4157a6:	8b 43 10             	mov    0x10(%ebx),%eax
4157a9:	8d 14 f0             	lea    (%eax,%esi,8),%edx
4157ac:	8b 43 10             	mov    0x10(%ebx),%eax
4157af:	8d 44 f0 08          	lea    0x8(%eax,%esi,8),%eax
4157b3:	e8 a0 d4 fe ff       	call   0x402c58
4157b8:	8b c3                	mov    %ebx,%eax
4157ba:	8b 10                	mov    (%eax),%edx
4157bc:	ff 92 80 00 00 00    	call   *0x80(%edx)
4157c2:	5e                   	pop    %esi
4157c3:	5b                   	pop    %ebx
4157c4:	c3                   	ret
4157c5:	8d 40 00             	lea    0x0(%eax),%eax
4157c8:	53                   	push   %ebx
4157c9:	56                   	push   %esi
4157ca:	57                   	push   %edi
4157cb:	8b f9                	mov    %ecx,%edi
4157cd:	8b f2                	mov    %edx,%esi
4157cf:	8b d8                	mov    %eax,%ebx
4157d1:	85 f6                	test   %esi,%esi
4157d3:	7c 05                	jl     0x4157da
4157d5:	3b 73 14             	cmp    0x14(%ebx),%esi
4157d8:	7c 0f                	jl     0x4157e9
4157da:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
4157e0:	8b ce                	mov    %esi,%ecx
4157e2:	8b c3                	mov    %ebx,%eax
4157e4:	e8 23 f4 ff ff       	call   0x414c0c
4157e9:	85 ff                	test   %edi,%edi
4157eb:	7c 05                	jl     0x4157f2
4157ed:	3b 7b 14             	cmp    0x14(%ebx),%edi
4157f0:	7c 0f                	jl     0x415801
4157f2:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
4157f8:	8b cf                	mov    %edi,%ecx
4157fa:	8b c3                	mov    %ebx,%eax
4157fc:	e8 0b f4 ff ff       	call   0x414c0c
415801:	8b c3                	mov    %ebx,%eax
415803:	8b 10                	mov    (%eax),%edx
415805:	ff 92 84 00 00 00    	call   *0x84(%edx)
41580b:	8b cf                	mov    %edi,%ecx
41580d:	8b d6                	mov    %esi,%edx
41580f:	8b c3                	mov    %ebx,%eax
415811:	e8 0e 00 00 00       	call   0x415824
415816:	8b c3                	mov    %ebx,%eax
415818:	8b 10                	mov    (%eax),%edx
41581a:	ff 92 80 00 00 00    	call   *0x80(%edx)
415820:	5f                   	pop    %edi
415821:	5e                   	pop    %esi
415822:	5b                   	pop    %ebx
415823:	c3                   	ret
415824:	53                   	push   %ebx
415825:	83 c4 f8             	add    $0xfffffff8,%esp
415828:	8b 58 10             	mov    0x10(%eax),%ebx
41582b:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
41582e:	89 14 24             	mov    %edx,(%esp)
415831:	8b 40 10             	mov    0x10(%eax),%eax
415834:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
415837:	89 44 24 04          	mov    %eax,0x4(%esp)
41583b:	8b 04 24             	mov    (%esp),%eax
41583e:	8b 00                	mov    (%eax),%eax
415840:	8b 54 24 04          	mov    0x4(%esp),%edx
415844:	8b 12                	mov    (%edx),%edx
415846:	8b 0c 24             	mov    (%esp),%ecx
415849:	89 11                	mov    %edx,(%ecx)
41584b:	8b 54 24 04          	mov    0x4(%esp),%edx
41584f:	89 02                	mov    %eax,(%edx)
415851:	8b 04 24             	mov    (%esp),%eax
415854:	8b 40 04             	mov    0x4(%eax),%eax
415857:	8b 54 24 04          	mov    0x4(%esp),%edx
41585b:	8b 52 04             	mov    0x4(%edx),%edx
41585e:	8b 0c 24             	mov    (%esp),%ecx
415861:	89 51 04             	mov    %edx,0x4(%ecx)
415864:	8b 54 24 04          	mov    0x4(%esp),%edx
415868:	89 42 04             	mov    %eax,0x4(%edx)
41586b:	59                   	pop    %ecx
41586c:	5a                   	pop    %edx
41586d:	5b                   	pop    %ebx
41586e:	c3                   	ret
41586f:	90                   	nop
415870:	53                   	push   %ebx
415871:	56                   	push   %esi
415872:	57                   	push   %edi
415873:	55                   	push   %ebp
415874:	83 c4 ec             	add    $0xffffffec,%esp
415877:	89 4c 24 04          	mov    %ecx,0x4(%esp)
41587b:	89 14 24             	mov    %edx,(%esp)
41587e:	8b f8                	mov    %eax,%edi
415880:	c6 44 24 08 00       	movb   $0x0,0x8(%esp)
415885:	33 f6                	xor    %esi,%esi
415887:	8b 47 14             	mov    0x14(%edi),%eax
41588a:	48                   	dec    %eax
41588b:	89 44 24 0c          	mov    %eax,0xc(%esp)
41588f:	3b 74 24 0c          	cmp    0xc(%esp),%esi
415893:	7f 49                	jg     0x4158de
415895:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
415899:	03 de                	add    %esi,%ebx
41589b:	d1 eb                	shr    $1,%ebx
41589d:	8b 47 10             	mov    0x10(%edi),%eax
4158a0:	8b 14 d8             	mov    (%eax,%ebx,8),%edx
4158a3:	8b 0c 24             	mov    (%esp),%ecx
4158a6:	8b c7                	mov    %edi,%eax
4158a8:	8b 28                	mov    (%eax),%ebp
4158aa:	ff 55 34             	call   *0x34(%ebp)
4158ad:	89 44 24 10          	mov    %eax,0x10(%esp)
4158b1:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
4158b6:	7d 05                	jge    0x4158bd
4158b8:	8d 73 01             	lea    0x1(%ebx),%esi
4158bb:	eb 1b                	jmp    0x4158d8
4158bd:	8b c3                	mov    %ebx,%eax
4158bf:	48                   	dec    %eax
4158c0:	89 44 24 0c          	mov    %eax,0xc(%esp)
4158c4:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
4158c9:	75 0d                	jne    0x4158d8
4158cb:	c6 44 24 08 01       	movb   $0x1,0x8(%esp)
4158d0:	80 7f 1d 01          	cmpb   $0x1,0x1d(%edi)
4158d4:	74 02                	je     0x4158d8
4158d6:	8b f3                	mov    %ebx,%esi
4158d8:	3b 74 24 0c          	cmp    0xc(%esp),%esi
4158dc:	7e b7                	jle    0x415895
4158de:	8b 44 24 04          	mov    0x4(%esp),%eax
4158e2:	89 30                	mov    %esi,(%eax)
4158e4:	8a 44 24 08          	mov    0x8(%esp),%al
4158e8:	83 c4 14             	add    $0x14,%esp
4158eb:	5d                   	pop    %ebp
4158ec:	5f                   	pop    %edi
4158ed:	5e                   	pop    %esi
4158ee:	5b                   	pop    %ebx
4158ef:	c3                   	ret
4158f0:	53                   	push   %ebx
4158f1:	56                   	push   %esi
4158f2:	57                   	push   %edi
4158f3:	8b f9                	mov    %ecx,%edi
4158f5:	8b f2                	mov    %edx,%esi
4158f7:	8b d8                	mov    %eax,%ebx
4158f9:	85 f6                	test   %esi,%esi
4158fb:	7c 05                	jl     0x415902
4158fd:	3b 73 14             	cmp    0x14(%ebx),%esi
415900:	7c 0f                	jl     0x415911
415902:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
415908:	8b ce                	mov    %esi,%ecx
41590a:	8b c3                	mov    %ebx,%eax
41590c:	e8 fb f2 ff ff       	call   0x414c0c
415911:	8b c7                	mov    %edi,%eax
415913:	8b 53 10             	mov    0x10(%ebx),%edx
415916:	8b 14 f2             	mov    (%edx,%esi,8),%edx
415919:	e8 a6 ec fe ff       	call   0x4045c4
41591e:	5f                   	pop    %edi
41591f:	5e                   	pop    %esi
415920:	5b                   	pop    %ebx
415921:	c3                   	ret
415922:	8b c0                	mov    %eax,%eax
415924:	8b 40 18             	mov    0x18(%eax),%eax
415927:	c3                   	ret
415928:	8b 40 14             	mov    0x14(%eax),%eax
41592b:	c3                   	ret
41592c:	53                   	push   %ebx
41592d:	56                   	push   %esi
41592e:	8b f2                	mov    %edx,%esi
415930:	8b d8                	mov    %eax,%ebx
415932:	85 f6                	test   %esi,%esi
415934:	7c 05                	jl     0x41593b
415936:	3b 73 14             	cmp    0x14(%ebx),%esi
415939:	7c 0f                	jl     0x41594a
41593b:	8b 15 70 0c 46 00    	mov    0x460c70,%edx
415941:	8b ce                	mov    %esi,%ecx
415943:	8b c3                	mov    %ebx,%eax
415945:	e8 c2 f2 ff ff       	call   0x414c0c
41594a:	8b 43 10             	mov    0x10(%ebx),%eax
41594d:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
415951:	5e                   	pop    %esi
415952:	5b                   	pop    %ebx
415953:	c3                   	ret
415954:	56                   	push   %esi
415955:	8b 50 18             	mov    0x18(%eax),%edx
415958:	83 fa 40             	cmp    $0x40,%edx
41595b:	7e 0e                	jle    0x41596b
41595d:	8b f2                	mov    %edx,%esi
41595f:	85 f6                	test   %esi,%esi
415961:	79 03                	jns    0x415966
415963:	83 c6 03             	add    $0x3,%esi
415966:	c1 fe 02             	sar    $0x2,%esi
415969:	eb 11                	jmp    0x41597c
41596b:	83 fa 08             	cmp    $0x8,%edx
41596e:	7e 07                	jle    0x415977
415970:	be 10 00 00 00       	mov    $0x10,%esi
415975:	eb 05                	jmp    0x41597c
415977:	be 04 00 00 00       	mov    $0x4,%esi
41597c:	03 f2                	add    %edx,%esi
41597e:	8b d6                	mov    %esi,%edx