41a75e:	8b c3                	mov    %ebx,%eax
41a760:	8b 10                	mov    (%eax),%edx
41a762:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a768:	5f                   	pop    %edi
41a769:	5e                   	pop    %esi
41a76a:	5b                   	pop    %ebx
41a76b:	c3                   	ret
41a76c:	53                   	push   %ebx
41a76d:	8b 58 10             	mov    0x10(%eax),%ebx
41a770:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
41a773:	8b 40 10             	mov    0x10(%eax),%eax
41a776:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
41a779:	8b 0a                	mov    (%edx),%ecx
41a77b:	8b 18                	mov    (%eax),%ebx
41a77d:	89 1a                	mov    %ebx,(%edx)
41a77f:	89 08                	mov    %ecx,(%eax)
41a781:	8b 4a 04             	mov    0x4(%edx),%ecx
41a784:	8b 58 04             	mov    0x4(%eax),%ebx
41a787:	89 5a 04             	mov    %ebx,0x4(%edx)
41a78a:	89 48 04             	mov    %ecx,0x4(%eax)
41a78d:	5b                   	pop    %ebx
41a78e:	c3                   	ret
41a78f:	90                   	nop
41a790:	53                   	push   %ebx
41a791:	56                   	push   %esi
41a792:	57                   	push   %edi
41a793:	55                   	push   %ebp
41a794:	83 c4 f0             	add    $0xfffffff0,%esp
41a797:	89 4c 24 04          	mov    %ecx,0x4(%esp)
41a79b:	89 14 24             	mov    %edx,(%esp)
41a79e:	8b f8                	mov    %eax,%edi
41a7a0:	c6 44 24 08 00       	movb   $0x0,0x8(%esp)
41a7a5:	33 f6                	xor    %esi,%esi
41a7a7:	8b 47 14             	mov    0x14(%edi),%eax
41a7aa:	48                   	dec    %eax
41a7ab:	89 44 24 0c          	mov    %eax,0xc(%esp)
41a7af:	3b 74 24 0c          	cmp    0xc(%esp),%esi
41a7b3:	7f 3f                	jg     0x41a7f4
41a7b5:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
41a7b9:	03 de                	add    %esi,%ebx
41a7bb:	d1 eb                	shr    $1,%ebx
41a7bd:	8b 47 10             	mov    0x10(%edi),%eax
41a7c0:	8b 14 d8             	mov    (%eax,%ebx,8),%edx
41a7c3:	8b 0c 24             	mov    (%esp),%ecx
41a7c6:	8b c7                	mov    %edi,%eax
41a7c8:	8b 28                	mov    (%eax),%ebp
41a7ca:	ff 55 34             	call   *0x34(%ebp)
41a7cd:	85 c0                	test   %eax,%eax
41a7cf:	7d 05                	jge    0x41a7d6
41a7d1:	8d 73 01             	lea    0x1(%ebx),%esi
41a7d4:	eb 18                	jmp    0x41a7ee
41a7d6:	8b d3                	mov    %ebx,%edx
41a7d8:	4a                   	dec    %edx
41a7d9:	89 54 24 0c          	mov    %edx,0xc(%esp)
41a7dd:	85 c0                	test   %eax,%eax
41a7df:	75 0d                	jne    0x41a7ee
41a7e1:	c6 44 24 08 01       	movb   $0x1,0x8(%esp)
41a7e6:	80 7f 1d 01          	cmpb   $0x1,0x1d(%edi)
41a7ea:	74 02                	je     0x41a7ee
41a7ec:	8b f3                	mov    %ebx,%esi
41a7ee:	3b 74 24 0c          	cmp    0xc(%esp),%esi
41a7f2:	7e c1                	jle    0x41a7b5
41a7f4:	8b 44 24 04          	mov    0x4(%esp),%eax
41a7f8:	89 30                	mov    %esi,(%eax)
41a7fa:	8a 44 24 08          	mov    0x8(%esp),%al
41a7fe:	83 c4 10             	add    $0x10,%esp
41a801:	5d                   	pop    %ebp
41a802:	5f                   	pop    %edi
41a803:	5e                   	pop    %esi
41a804:	5b                   	pop    %ebx
41a805:	c3                   	ret
41a806:	8b c0                	mov    %eax,%eax
41a808:	53                   	push   %ebx
41a809:	56                   	push   %esi
41a80a:	57                   	push   %edi
41a80b:	8b f9                	mov    %ecx,%edi
41a80d:	8b f2                	mov    %edx,%esi
41a80f:	8b d8                	mov    %eax,%ebx
41a811:	85 f6                	test   %esi,%esi
41a813:	7c 05                	jl     0x41a81a
41a815:	3b 73 14             	cmp    0x14(%ebx),%esi
41a818:	7c 0f                	jl     0x41a829
41a81a:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a820:	8b ce                	mov    %esi,%ecx
41a822:	8b c3                	mov    %ebx,%eax
41a824:	e8 4f f3 ff ff       	call   0x419b78
41a829:	8b c7                	mov    %edi,%eax
41a82b:	8b 53 10             	mov    0x10(%ebx),%edx
41a82e:	8b 14 f2             	mov    (%edx,%esi,8),%edx
41a831:	e8 6e 98 fe ff       	call   0x4040a4
41a836:	5f                   	pop    %edi
41a837:	5e                   	pop    %esi
41a838:	5b                   	pop    %ebx
41a839:	c3                   	ret
41a83a:	8b c0                	mov    %eax,%eax
41a83c:	8b 40 18             	mov    0x18(%eax),%eax
41a83f:	c3                   	ret
41a840:	8b 40 14             	mov    0x14(%eax),%eax
41a843:	c3                   	ret
41a844:	53                   	push   %ebx
41a845:	56                   	push   %esi
41a846:	8b f2                	mov    %edx,%esi
41a848:	8b d8                	mov    %eax,%ebx
41a84a:	85 f6                	test   %esi,%esi
41a84c:	7c 05                	jl     0x41a853
41a84e:	3b 73 14             	cmp    0x14(%ebx),%esi
41a851:	7c 0f                	jl     0x41a862
41a853:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a859:	8b ce                	mov    %esi,%ecx
41a85b:	8b c3                	mov    %ebx,%eax
41a85d:	e8 16 f3 ff ff       	call   0x419b78
41a862:	8b 43 10             	mov    0x10(%ebx),%eax
41a865:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
41a869:	5e                   	pop    %esi
41a86a:	5b                   	pop    %ebx
41a86b:	c3                   	ret
41a86c:	56                   	push   %esi
41a86d:	8b 50 18             	mov    0x18(%eax),%edx
41a870:	83 fa 40             	cmp    $0x40,%edx
41a873:	7e 0e                	jle    0x41a883
41a875:	8b f2                	mov    %edx,%esi
41a877:	85 f6                	test   %esi,%esi
41a879:	79 03                	jns    0x41a87e
41a87b:	83 c6 03             	add    $0x3,%esi
41a87e:	c1 fe 02             	sar    $0x2,%esi
41a881:	eb 11                	jmp    0x41a894
41a883:	83 fa 08             	cmp    $0x8,%edx
41a886:	7e 07                	jle    0x41a88f
41a888:	be 10 00 00 00       	mov    $0x10,%esi
41a88d:	eb 05                	jmp    0x41a894
41a88f:	be 04 00 00 00       	mov    $0x4,%esi
41a894:	03 f2                	add    %edx,%esi
41a896:	8b d6                	mov    %esi,%edx
41a898:	8b 08                	mov    (%eax),%ecx
41a89a:	ff 51 28             	call   *0x28(%ecx)
41a89d:	5e                   	pop    %esi
41a89e:	c3                   	ret
41a89f:	90                   	nop
41a8a0:	53                   	push   %ebx
41a8a1:	56                   	push   %esi
41a8a2:	51                   	push   %ecx
41a8a3:	8b f2                	mov    %edx,%esi
41a8a5:	8b d8                	mov    %eax,%ebx
41a8a7:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
41a8ab:	75 0e                	jne    0x41a8bb
41a8ad:	8b d6                	mov    %esi,%edx
41a8af:	8b c3                	mov    %ebx,%eax
41a8b1:	e8 8a f5 ff ff       	call   0x419e40
41a8b6:	89 04 24             	mov    %eax,(%esp)
41a8b9:	eb 19                	jmp    0x41a8d4
41a8bb:	8b cc                	mov    %esp,%ecx
41a8bd:	8b d6                	mov    %esi,%edx
41a8bf:	8b c3                	mov    %ebx,%eax
41a8c1:	8b 18                	mov    (%eax),%ebx
41a8c3:	ff 93 8c 00 00 00    	call   *0x8c(%ebx)
41a8c9:	84 c0                	test   %al,%al
41a8cb:	75 07                	jne    0x41a8d4
41a8cd:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
41a8d4:	8b 04 24             	mov    (%esp),%eax
41a8d7:	5a                   	pop    %edx
41a8d8:	5e                   	pop    %esi
41a8d9:	5b                   	pop    %ebx
41a8da:	c3                   	ret
41a8db:	90                   	nop
41a8dc:	53                   	push   %ebx
41a8dd:	56                   	push   %esi
41a8de:	8b f0                	mov    %eax,%esi
41a8e0:	6a 00                	push   $0x0
41a8e2:	8b c6                	mov    %esi,%eax
41a8e4:	8b 18                	mov    (%eax),%ebx
41a8e6:	ff 53 64             	call   *0x64(%ebx)
41a8e9:	5e                   	pop    %esi
41a8ea:	5b                   	pop    %ebx
41a8eb:	c3                   	ret
41a8ec:	55                   	push   %ebp
41a8ed:	8b ec                	mov    %esp,%ebp
41a8ef:	53                   	push   %ebx
41a8f0:	56                   	push   %esi
41a8f1:	57                   	push   %edi
41a8f2:	8b f9                	mov    %ecx,%edi
41a8f4:	8b f2                	mov    %edx,%esi
41a8f6:	8b d8                	mov    %eax,%ebx
41a8f8:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
41a8fc:	74 0f                	je     0x41a90d
41a8fe:	8b 15 70 46 47 00    	mov    0x474670,%edx
41a904:	33 c9                	xor    %ecx,%ecx
41a906:	8b c3                	mov    %ebx,%eax
41a908:	e8 6b f2 ff ff       	call   0x419b78
41a90d:	85 f6                	test   %esi,%esi
41a90f:	7c 05                	jl     0x41a916
41a911:	3b 73 14             	cmp    0x14(%ebx),%esi
41a914:	7e 0f                	jle    0x41a925
41a916:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a91c:	8b ce                	mov    %esi,%ecx
41a91e:	8b c3                	mov    %ebx,%eax
41a920:	e8 53 f2 ff ff       	call   0x419b78
41a925:	8b 45 08             	mov    0x8(%ebp),%eax
41a928:	50                   	push   %eax
41a929:	8b cf                	mov    %edi,%ecx
41a92b:	8b d6                	mov    %esi,%edx
41a92d:	8b c3                	mov    %ebx,%eax
41a92f:	8b 18                	mov    (%eax),%ebx
41a931:	ff 93 88 00 00 00    	call   *0x88(%ebx)
41a937:	5f                   	pop    %edi
41a938:	5e                   	pop    %esi
41a939:	5b                   	pop    %ebx
41a93a:	5d                   	pop    %ebp
41a93b:	c2 04 00             	ret    $0x4
41a93e:	8b c0                	mov    %eax,%eax
41a940:	55                   	push   %ebp
41a941:	8b ec                	mov    %esp,%ebp
41a943:	53                   	push   %ebx
41a944:	56                   	push   %esi
41a945:	57                   	push   %edi
41a946:	8b f9                	mov    %ecx,%edi
41a948:	8b f2                	mov    %edx,%esi
41a94a:	8b d8                	mov    %eax,%ebx
41a94c:	8b c3                	mov    %ebx,%eax
41a94e:	8b 10                	mov    (%eax),%edx
41a950:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a956:	8b 43 14             	mov    0x14(%ebx),%eax
41a959:	3b 43 18             	cmp    0x18(%ebx),%eax
41a95c:	75 07                	jne    0x41a965
41a95e:	8b c3                	mov    %ebx,%eax
41a960:	e8 07 ff ff ff       	call   0x41a86c
41a965:	8b 43 14             	mov    0x14(%ebx),%eax
41a968:	3b f0                	cmp    %eax,%esi
41a96a:	7d 1d                	jge    0x41a989
41a96c:	8b 53 10             	mov    0x10(%ebx),%edx
41a96f:	8d 54 f2 08          	lea    0x8(%edx,%esi,8),%edx
41a973:	52                   	push   %edx
41a974:	8b 53 10             	mov    0x10(%ebx),%edx
41a977:	8d 14 f2             	lea    (%edx,%esi,8),%edx
41a97a:	2b c6                	sub    %esi,%eax
41a97c:	8b c8                	mov    %eax,%ecx
41a97e:	c1 e1 03             	shl    $0x3,%ecx
41a981:	8b c2                	mov    %edx,%eax
41a983:	5a                   	pop    %edx
41a984:	e8 67 7f fe ff       	call   0x4028f0
41a989:	8b 43 10             	mov    0x10(%ebx),%eax
41a98c:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41a98f:	8b f0                	mov    %eax,%esi
41a991:	33 c0                	xor    %eax,%eax
41a993:	89 06                	mov    %eax,(%esi)
41a995:	8b 45 08             	mov    0x8(%ebp),%eax
41a998:	89 46 04             	mov    %eax,0x4(%esi)
41a99b:	8b c6                	mov    %esi,%eax
41a99d:	8b d7                	mov    %edi,%edx
41a99f:	e8 00 97 fe ff       	call   0x4040a4
41a9a4:	ff 43 14             	incl   0x14(%ebx)
41a9a7:	8b c3                	mov    %ebx,%eax
41a9a9:	8b 10                	mov    (%eax),%edx
41a9ab:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a9b1:	5f                   	pop    %edi
41a9b2:	5e                   	pop    %esi
41a9b3:	5b                   	pop    %ebx
41a9b4:	5d                   	pop    %ebp
41a9b5:	c2 04 00             	ret    $0x4
41a9b8:	53                   	push   %ebx
41a9b9:	56                   	push   %esi
41a9ba:	57                   	push   %edi
41a9bb:	8b f9                	mov    %ecx,%edi
41a9bd:	8b f2                	mov    %edx,%esi
41a9bf:	8b d8                	mov    %eax,%ebx
41a9c1:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
41a9c5:	74 0f                	je     0x41a9d6
41a9c7:	8b 15 70 46 47 00    	mov    0x474670,%edx
41a9cd:	33 c9                	xor    %ecx,%ecx
41a9cf:	8b c3                	mov    %ebx,%eax
41a9d1:	e8 a2 f1 ff ff       	call   0x419b78
41a9d6:	85 f6                	test   %esi,%esi
41a9d8:	7c 05                	jl     0x41a9df
41a9da:	3b 73 14             	cmp    0x14(%ebx),%esi
41a9dd:	7c 0f                	jl     0x41a9ee
41a9df:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a9e5:	8b ce                	mov    %esi,%ecx
41a9e7:	8b c3                	mov    %ebx,%eax
41a9e9:	e8 8a f1 ff ff       	call   0x419b78
41a9ee:	8b c3                	mov    %ebx,%eax
41a9f0:	8b 10                	mov    (%eax),%edx
41a9f2:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a9f8:	8b 43 10             	mov    0x10(%ebx),%eax
41a9fb:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41a9fe:	8b d7                	mov    %edi,%edx
41aa00:	e8 9f 96 fe ff       	call   0x4040a4
41aa05:	8b c3                	mov    %ebx,%eax
41aa07:	8b 10                	mov    (%eax),%edx
41aa09:	ff 92 80 00 00 00    	call   *0x80(%edx)
41aa0f:	5f                   	pop    %edi
41aa10:	5e                   	pop    %esi
41aa11:	5b                   	pop    %ebx
41aa12:	c3                   	ret
41aa13:	90                   	nop
41aa14:	53                   	push   %ebx
41aa15:	56                   	push   %esi
41aa16:	57                   	push   %edi
41aa17:	8b f9                	mov    %ecx,%edi
41aa19:	8b f2                	mov    %edx,%esi
41aa1b:	8b d8                	mov    %eax,%ebx
41aa1d:	85 f6                	test   %esi,%esi
41aa1f:	7c 05                	jl     0x41aa26
41aa21:	3b 73 14             	cmp    0x14(%ebx),%esi
41aa24:	7c 0f                	jl     0x41aa35
41aa26:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41aa2c:	8b ce                	mov    %esi,%ecx
41aa2e:	8b c3                	mov    %ebx,%eax
41aa30:	e8 43 f1 ff ff       	call   0x419b78
41aa35:	8b c3                	mov    %ebx,%eax
41aa37:	8b 10                	mov    (%eax),%edx
41aa39:	ff 92 84 00 00 00    	call   *0x84(%edx)
41aa3f:	8b 43 10             	mov    0x10(%ebx),%eax
41aa42:	89 7c f0 04          	mov    %edi,0x4(%eax,%esi,8)
41aa46:	8b c3                	mov    %ebx,%eax
41aa48:	8b 10                	mov    (%eax),%edx
41aa4a:	ff 92 80 00 00 00    	call   *0x80(%edx)
41aa50:	5f                   	pop    %edi
41aa51:	5e                   	pop    %esi
41aa52:	5b                   	pop    %ebx
41aa53:	c3                   	ret
41aa54:	55                   	push   %ebp
41aa55:	8b ec                	mov    %esp,%ebp
41aa57:	83 c4 f0             	add    $0xfffffff0,%esp
41aa5a:	53                   	push   %ebx
41aa5b:	56                   	push   %esi
41aa5c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41aa5f:	89 55 f8             	mov    %edx,-0x8(%ebp)
41aa62:	89 45 fc             	mov    %eax,-0x4(%ebp)
41aa65:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41aa68:	8b 75 f4             	mov    -0xc(%ebp),%esi
41aa6b:	8b 45 f8             	mov    -0x8(%ebp),%eax
41aa6e:	03 45 f4             	add    -0xc(%ebp),%eax
41aa71:	d1 e8                	shr    $1,%eax
41aa73:	89 45 f0             	mov    %eax,-0x10(%ebp)
41aa76:	eb 01                	jmp    0x41aa79
41aa78:	43                   	inc    %ebx
41aa79:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41aa7c:	8b d3                	mov    %ebx,%edx
41aa7e:	8b 45 fc             	mov    -0x4(%ebp),%eax
41aa81:	ff 55 08             	call   *0x8(%ebp)
41aa84:	85 c0                	test   %eax,%eax
41aa86:	7c f0                	jl     0x41aa78
41aa88:	eb 01                	jmp    0x41aa8b
41aa8a:	4e                   	dec    %esi
41aa8b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41aa8e:	8b d6                	mov    %esi,%edx
41aa90:	8b 45 fc             	mov    -0x4(%ebp),%eax
41aa93:	ff 55 08             	call   *0x8(%ebp)
41aa96:	85 c0                	test   %eax,%eax
41aa98:	7f f0                	jg     0x41aa8a
41aa9a:	3b f3                	cmp    %ebx,%esi