42274a:	e8 1b 50 fe ff       	call   0x40776a
42274f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
422753:	83 c4 0c             	add    $0xc,%esp
422756:	8b cc                	mov    %esp,%ecx
422758:	50                   	push   %eax
422759:	e8 ef ef fd ff       	call   0x40174d
42275e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
422761:	e8 7c 95 fe ff       	call   0x40bce2
422766:	68 24 16 4b 00       	push   $0x4b1624
42276b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
42276e:	50                   	push   %eax
42276f:	e8 4e 1a 02 00       	call   0x4441c2
422774:	0f be c3             	movsbl %bl,%eax
422777:	89 45 d8             	mov    %eax,-0x28(%ebp)
42277a:	8d 45 d4             	lea    -0x2c(%ebp),%eax
42277d:	50                   	push   %eax
42277e:	8d 45 d8             	lea    -0x28(%ebp),%eax
422781:	50                   	push   %eax
422782:	51                   	push   %ecx
422783:	8b cc                	mov    %esp,%ecx
422785:	68 d0 49 49 00       	push   $0x4949d0
42278a:	e8 b1 7e fe ff       	call   0x40a640
42278f:	8d 45 dc             	lea    -0x24(%ebp),%eax
422792:	50                   	push   %eax
422793:	e8 40 50 fe ff       	call   0x4077d8
422798:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
42279f:	eb b2                	jmp    0x422753
4227a1:	6a 2c                	push   $0x2c
4227a3:	b8 8f 01 49 00       	mov    $0x49018f,%eax
4227a8:	e8 d1 d2 01 00       	call   0x43fa7e
4227ad:	8b 45 08             	mov    0x8(%ebp),%eax
4227b0:	83 78 08 09          	cmpl   $0x9,0x8(%eax)
4227b4:	7f 06                	jg     0x4227bc
4227b6:	e8 6d d2 01 00       	call   0x43fa28
4227bb:	c3                   	ret
4227bc:	8d 45 0c             	lea    0xc(%ebp),%eax
4227bf:	50                   	push   %eax
4227c0:	51                   	push   %ecx
4227c1:	8b cc                	mov    %esp,%ecx
4227c3:	68 74 49 49 00       	push   $0x494974
4227c8:	e8 73 7e fe ff       	call   0x40a640
4227cd:	8d 45 d8             	lea    -0x28(%ebp),%eax
4227d0:	50                   	push   %eax
4227d1:	e8 34 4f fe ff       	call   0x40770a
4227d6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4227da:	83 c4 08             	add    $0x8,%esp
4227dd:	8d 45 d8             	lea    -0x28(%ebp),%eax
4227e0:	8b cc                	mov    %esp,%ecx
4227e2:	50                   	push   %eax
4227e3:	e8 65 ef fd ff       	call   0x40174d
4227e8:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4227eb:	e8 f2 94 fe ff       	call   0x40bce2
4227f0:	68 24 16 4b 00       	push   $0x4b1624
4227f5:	8d 45 c8             	lea    -0x38(%ebp),%eax
4227f8:	50                   	push   %eax
4227f9:	e8 c4 19 02 00       	call   0x4441c2
4227fe:	cc                   	int3
4227ff:	55                   	push   %ebp
422800:	8b ec                	mov    %esp,%ebp
422802:	8b 45 08             	mov    0x8(%ebp),%eax
422805:	56                   	push   %esi
422806:	8b f1                	mov    %ecx,%esi
422808:	57                   	push   %edi
422809:	8b 7e 10             	mov    0x10(%esi),%edi
42280c:	3b f8                	cmp    %eax,%edi
42280e:	77 2b                	ja     0x42283b
422810:	39 46 14             	cmp    %eax,0x14(%esi)
422813:	74 26                	je     0x42283b
422815:	73 14                	jae    0x42282b
422817:	c6 45 08 00          	movb   $0x0,0x8(%ebp)
42281b:	2b c7                	sub    %edi,%eax
42281d:	ff 75 08             	push   0x8(%ebp)
422820:	50                   	push   %eax
422821:	e8 5a 29 fe ff       	call   0x405180
422826:	89 7e 10             	mov    %edi,0x10(%esi)
422829:	eb 10                	jmp    0x42283b
42282b:	83 f8 10             	cmp    $0x10,%eax
42282e:	73 0b                	jae    0x42283b
422830:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
422834:	72 05                	jb     0x42283b
422836:	e8 01 3c ff ff       	call   0x41643c
42283b:	5f                   	pop    %edi
42283c:	5e                   	pop    %esi
42283d:	5d                   	pop    %ebp
42283e:	c2 04 00             	ret    $0x4
422841:	55                   	push   %ebp
422842:	8b ec                	mov    %esp,%ebp
422844:	8b 45 08             	mov    0x8(%ebp),%eax
422847:	56                   	push   %esi
422848:	8b f1                	mov    %ecx,%esi
42284a:	57                   	push   %edi
42284b:	8b 7e 10             	mov    0x10(%esi),%edi
42284e:	3b f8                	cmp    %eax,%edi
422850:	77 2b                	ja     0x42287d
422852:	39 46 14             	cmp    %eax,0x14(%esi)
422855:	74 26                	je     0x42287d
422857:	73 14                	jae    0x42286d
422859:	c6 45 08 00          	movb   $0x0,0x8(%ebp)
42285d:	2b c7                	sub    %edi,%eax
42285f:	ff 75 08             	push   0x8(%ebp)
422862:	50                   	push   %eax
422863:	e8 86 28 fe ff       	call   0x4050ee
422868:	89 7e 10             	mov    %edi,0x10(%esi)
42286b:	eb 10                	jmp    0x42287d
42286d:	83 f8 08             	cmp    $0x8,%eax
422870:	73 0b                	jae    0x42287d
422872:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
422876:	72 05                	jb     0x42287d
422878:	e8 e9 3b ff ff       	call   0x416466
42287d:	5f                   	pop    %edi
42287e:	5e                   	pop    %esi
42287f:	5d                   	pop    %ebp
422880:	c2 04 00             	ret    $0x4
422883:	55                   	push   %ebp
422884:	8b ec                	mov    %esp,%ebp
422886:	8b 45 08             	mov    0x8(%ebp),%eax
422889:	8d 51 10             	lea    0x10(%ecx),%edx
42288c:	3b 02                	cmp    (%edx),%eax
42288e:	77 10                	ja     0x4228a0
422890:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
422894:	72 02                	jb     0x422898
422896:	8b 09                	mov    (%ecx),%ecx
422898:	89 02                	mov    %eax,(%edx)
42289a:	c6 04 01 00          	movb   $0x0,(%ecx,%eax,1)
42289e:	eb 0b                	jmp    0x4228ab
4228a0:	ff 75 0c             	push   0xc(%ebp)
4228a3:	2b 02                	sub    (%edx),%eax
4228a5:	50                   	push   %eax
4228a6:	e8 85 cc ff ff       	call   0x41f530
4228ab:	5d                   	pop    %ebp
4228ac:	c2 08 00             	ret    $0x8
4228af:	55                   	push   %ebp
4228b0:	8b ec                	mov    %esp,%ebp
4228b2:	8b 45 08             	mov    0x8(%ebp),%eax
4228b5:	3b 41 10             	cmp    0x10(%ecx),%eax
4228b8:	77 08                	ja     0x4228c2
4228ba:	50                   	push   %eax
4228bb:	e8 9b 6c ff ff       	call   0x41955b
4228c0:	eb 0c                	jmp    0x4228ce
4228c2:	ff 75 0c             	push   0xc(%ebp)
4228c5:	2b 41 10             	sub    0x10(%ecx),%eax
4228c8:	50                   	push   %eax
4228c9:	e8 53 cd ff ff       	call   0x41f621
4228ce:	5d                   	pop    %ebp
4228cf:	c2 08 00             	ret    $0x8
4228d2:	55                   	push   %ebp
4228d3:	8b ec                	mov    %esp,%ebp
4228d5:	83 ec 20             	sub    $0x20,%esp
4228d8:	56                   	push   %esi
4228d9:	8b 75 08             	mov    0x8(%ebp),%esi
4228dc:	57                   	push   %edi
4228dd:	8b f9                	mov    %ecx,%edi
4228df:	89 7d fc             	mov    %edi,-0x4(%ebp)
4228e2:	39 77 0c             	cmp    %esi,0xc(%edi)
4228e5:	73 23                	jae    0x42290a
4228e7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4228ea:	50                   	push   %eax
4228eb:	e8 e1 e2 ff ff       	call   0x420bd1
4228f0:	2b 77 0c             	sub    0xc(%edi),%esi
4228f3:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4228f6:	51                   	push   %ecx
4228f7:	56                   	push   %esi
4228f8:	ff 70 04             	push   0x4(%eax)
4228fb:	8b cf                	mov    %edi,%ecx
4228fd:	ff 30                	push   (%eax)
4228ff:	8d 45 f8             	lea    -0x8(%ebp),%eax
422902:	50                   	push   %eax
422903:	e8 21 88 ff ff       	call   0x41b129
422908:	eb 3e                	jmp    0x422948
42290a:	76 3c                	jbe    0x422948
42290c:	8d 45 e8             	lea    -0x18(%ebp),%eax
42290f:	50                   	push   %eax
422910:	e8 bc e2 ff ff       	call   0x420bd1
422915:	ff 75 08             	push   0x8(%ebp)
422918:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
42291c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
42291f:	8b 38                	mov    (%eax),%edi
422921:	8b 70 04             	mov    0x4(%eax),%esi
422924:	8b 45 fc             	mov    -0x4(%ebp),%eax
422927:	8b 00                	mov    (%eax),%eax
422929:	89 45 f0             	mov    %eax,-0x10(%ebp)
42292c:	8d 45 e0             	lea    -0x20(%ebp),%eax
42292f:	50                   	push   %eax
422930:	e8 bb d6 fe ff       	call   0x40fff0
422935:	8b 4d fc             	mov    -0x4(%ebp),%ecx
422938:	56                   	push   %esi
422939:	57                   	push   %edi
42293a:	ff 70 04             	push   0x4(%eax)
42293d:	ff 30                	push   (%eax)
42293f:	8d 45 f0             	lea    -0x10(%ebp),%eax
422942:	50                   	push   %eax
422943:	e8 19 e4 ff ff       	call   0x420d61
422948:	5f                   	pop    %edi
422949:	5e                   	pop    %esi
42294a:	c9                   	leave
42294b:	c2 08 00             	ret    $0x8
42294e:	55                   	push   %ebp
42294f:	8b ec                	mov    %esp,%ebp
422951:	8b 55 08             	mov    0x8(%ebp),%edx
422954:	56                   	push   %esi
422955:	8d 72 02             	lea    0x2(%edx),%esi
422958:	66 8b 02             	mov    (%edx),%ax
42295b:	83 c2 02             	add    $0x2,%edx
42295e:	66 85 c0             	test   %ax,%ax
422961:	75 f5                	jne    0x422958
422963:	8b 41 10             	mov    0x10(%ecx),%eax
422966:	2b d6                	sub    %esi,%edx
422968:	d1 fa                	sar    $1,%edx
42296a:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
42296e:	5e                   	pop    %esi
42296f:	72 02                	jb     0x422973
422971:	8b 09                	mov    (%ecx),%ecx
422973:	52                   	push   %edx
422974:	ff 75 08             	push   0x8(%ebp)
422977:	ff 75 0c             	push   0xc(%ebp)
42297a:	50                   	push   %eax
42297b:	51                   	push   %ecx
42297c:	e8 55 38 fe ff       	call   0x4061d6
422981:	83 c4 14             	add    $0x14,%esp
422984:	5d                   	pop    %ebp
422985:	c2 08 00             	ret    $0x8
422988:	8b 41 1c             	mov    0x1c(%ecx),%eax
42298b:	33 d2                	xor    %edx,%edx
42298d:	39 10                	cmp    %edx,(%eax)
42298f:	74 05                	je     0x422996
422991:	8b 41 2c             	mov    0x2c(%ecx),%eax
422994:	8b 10                	mov    (%eax),%edx
422996:	85 d2                	test   %edx,%edx
422998:	7e 13                	jle    0x4229ad
42299a:	8b 41 2c             	mov    0x2c(%ecx),%eax
42299d:	ff 08                	decl   (%eax)
42299f:	8b 49 1c             	mov    0x1c(%ecx),%ecx
4229a2:	8b 11                	mov    (%ecx),%edx
4229a4:	8d 42 02             	lea    0x2(%edx),%eax
4229a7:	89 01                	mov    %eax,(%ecx)
4229a9:	0f b7 02             	movzwl (%edx),%eax
4229ac:	c3                   	ret
4229ad:	8b 01                	mov    (%ecx),%eax
4229af:	ff 50 1c             	call   *0x1c(%eax)
4229b2:	0f b7 c0             	movzwl %ax,%eax
4229b5:	c3                   	ret
4229b6:	55                   	push   %ebp
4229b7:	8b ec                	mov    %esp,%ebp
4229b9:	8b 45 08             	mov    0x8(%ebp),%eax
4229bc:	83 08 ff             	orl    $0xffffffff,(%eax)
4229bf:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
4229c3:	33 c9                	xor    %ecx,%ecx
4229c5:	89 48 08             	mov    %ecx,0x8(%eax)
4229c8:	89 48 0c             	mov    %ecx,0xc(%eax)
4229cb:	89 48 10             	mov    %ecx,0x10(%eax)
4229ce:	89 48 14             	mov    %ecx,0x14(%eax)
4229d1:	5d                   	pop    %ebp
4229d2:	c2 14 00             	ret    $0x14
4229d5:	55                   	push   %ebp
4229d6:	8b ec                	mov    %esp,%ebp
4229d8:	83 ec 1c             	sub    $0x1c,%esp
4229db:	53                   	push   %ebx
4229dc:	56                   	push   %esi
4229dd:	8b f1                	mov    %ecx,%esi
4229df:	57                   	push   %edi
4229e0:	8b 46 1c             	mov    0x1c(%esi),%eax
4229e3:	8b 00                	mov    (%eax),%eax
4229e5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4229e8:	8b 46 20             	mov    0x20(%esi),%eax
4229eb:	8b 08                	mov    (%eax),%ecx
4229ed:	85 c9                	test   %ecx,%ecx
4229ef:	74 08                	je     0x4229f9
4229f1:	39 4e 38             	cmp    %ecx,0x38(%esi)
4229f4:	73 03                	jae    0x4229f9
4229f6:	89 4e 38             	mov    %ecx,0x38(%esi)
4229f9:	8b 46 0c             	mov    0xc(%esi),%eax
4229fc:	8b 5d 18             	mov    0x18(%ebp),%ebx
4229ff:	8b 10                	mov    (%eax),%edx
422a01:	8b 46 38             	mov    0x38(%esi),%eax
422a04:	8b f8                	mov    %eax,%edi
422a06:	89 45 f8             	mov    %eax,-0x8(%ebp)
422a09:	2b fa                	sub    %edx,%edi
422a0b:	8b 45 14             	mov    0x14(%ebp),%eax
422a0e:	d1 ff                	sar    $1,%edi
422a10:	89 55 f4             	mov    %edx,-0xc(%ebp)
422a13:	89 7d f0             	mov    %edi,-0x10(%ebp)
422a16:	83 e8 00             	sub    $0x0,%eax
422a19:	74 52                	je     0x422a6d
422a1b:	83 e8 01             	sub    $0x1,%eax
422a1e:	74 0e                	je     0x422a2e
422a20:	83 e8 01             	sub    $0x1,%eax
422a23:	75 39                	jne    0x422a5e
422a25:	8b c7                	mov    %edi,%eax
422a27:	99                   	cltd
422a28:	8b f8                	mov    %eax,%edi
422a2a:	8b c2                	mov    %edx,%eax
422a2c:	eb 4d                	jmp    0x422a7b
422a2e:	8b c3                	mov    %ebx,%eax
422a30:	83 e0 03             	and    $0x3,%eax
422a33:	3c 03                	cmp    $0x3,%al
422a35:	74 27                	je     0x422a5e
422a37:	f6 c3 01             	test   $0x1,%bl
422a3a:	74 11                	je     0x422a4d
422a3c:	8b 45 fc             	mov    -0x4(%ebp),%eax
422a3f:	85 c0                	test   %eax,%eax
422a41:	75 04                	jne    0x422a47
422a43:	85 d2                	test   %edx,%edx
422a45:	75 17                	jne    0x422a5e
422a47:	2b c2                	sub    %edx,%eax
422a49:	d1 f8                	sar    $1,%eax
422a4b:	eb da                	jmp    0x422a27
422a4d:	f6 c3 02             	test   $0x2,%bl
422a50:	74 0c                	je     0x422a5e
422a52:	85 c9                	test   %ecx,%ecx
422a54:	75 04                	jne    0x422a5a
422a56:	85 d2                	test   %edx,%edx
422a58:	75 04                	jne    0x422a5e
422a5a:	8b c1                	mov    %ecx,%eax
422a5c:	eb e9                	jmp    0x422a47
422a5e:	8b 45 08             	mov    0x8(%ebp),%eax
422a61:	83 08 ff             	orl    $0xffffffff,(%eax)
422a64:	83 48 04 ff          	orl    $0xffffffff,0x4(%eax)
422a68:	e9 a7 00 00 00       	jmp    0x422b14
422a6d:	0f 57 c0             	xorps  %xmm0,%xmm0
422a70:	66 0f 13 45 e4       	movlpd %xmm0,-0x1c(%ebp)
422a75:	8b 45 e8             	mov    -0x18(%ebp),%eax
422a78:	8b 7d e4             	mov    -0x1c(%ebp),%edi
422a7b:	03 7d 0c             	add    0xc(%ebp),%edi
422a7e:	13 45 10             	adc    0x10(%ebp),%eax
422a81:	89 45 14             	mov    %eax,0x14(%ebp)
422a84:	8b 45 f0             	mov    -0x10(%ebp),%eax
422a87:	99                   	cltd
422a88:	39 55 14             	cmp    %edx,0x14(%ebp)
422a8b:	72 06                	jb     0x422a93
422a8d:	77 cf                	ja     0x422a5e
422a8f:	3b f8                	cmp    %eax,%edi
422a91:	77 cb                	ja     0x422a5e
422a93:	8b c7                	mov    %edi,%eax
422a95:	0b 45 14             	or     0x14(%ebp),%eax
422a98:	74 14                	je     0x422aae
422a9a:	f6 c3 01             	test   $0x1,%bl
422a9d:	74 06                	je     0x422aa5
422a9f:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
422aa3:	74 b9                	je     0x422a5e
422aa5:	f6 c3 02             	test   $0x2,%bl
422aa8:	74 04                	je     0x422aae
422aaa:	85 c9                	test   %ecx,%ecx
422aac:	74 b0                	je     0x422a5e
422aae:	8b 55 f4             	mov    -0xc(%ebp),%edx
422ab1:	8d 04 7a             	lea    (%edx,%edi,2),%eax
422ab4:	89 45 18             	mov    %eax,0x18(%ebp)
422ab7:	f6 c3 01             	test   $0x1,%bl
422aba:	74 21                	je     0x422add
422abc:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
422ac0:	74 1b                	je     0x422add