41f758:	83 7e fc 00          	cmpl   $0x0,-0x4(%esi)
41f75c:	74 13                	je     0x41f771
41f75e:	8b 1e                	mov    (%esi),%ebx
41f760:	85 db                	test   %ebx,%ebx
41f762:	74 0d                	je     0x41f771
41f764:	6a 00                	push   $0x0
41f766:	8b cb                	mov    %ebx,%ecx
41f768:	ff 15 50 72 42 00    	call   *0x427250
41f76e:	ff d3                	call   *%ebx
41f770:	59                   	pop    %ecx
41f771:	83 ee 08             	sub    $0x8,%esi
41f774:	8d 46 04             	lea    0x4(%esi),%eax
41f777:	3b c7                	cmp    %edi,%eax
41f779:	75 dd                	jne    0x41f758
41f77b:	32 c0                	xor    %al,%al
41f77d:	5b                   	pop    %ebx
41f77e:	5e                   	pop    %esi
41f77f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f782:	33 cd                	xor    %ebp,%ecx
41f784:	5f                   	pop    %edi
41f785:	e8 d6 78 fe ff       	call   0x407060
41f78a:	8b e5                	mov    %ebp,%esp
41f78c:	5d                   	pop    %ebp
41f78d:	c3                   	ret
41f78e:	8b ff                	mov    %edi,%edi
41f790:	55                   	push   %ebp
41f791:	8b ec                	mov    %esp,%ebp
41f793:	51                   	push   %ecx
41f794:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41f799:	33 c5                	xor    %ebp,%eax
41f79b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41f79e:	56                   	push   %esi
41f79f:	8b 75 0c             	mov    0xc(%ebp),%esi
41f7a2:	39 75 08             	cmp    %esi,0x8(%ebp)
41f7a5:	74 23                	je     0x41f7ca
41f7a7:	83 c6 fc             	add    $0xfffffffc,%esi
41f7aa:	57                   	push   %edi
41f7ab:	8b 3e                	mov    (%esi),%edi
41f7ad:	85 ff                	test   %edi,%edi
41f7af:	74 0d                	je     0x41f7be
41f7b1:	6a 00                	push   $0x0
41f7b3:	8b cf                	mov    %edi,%ecx
41f7b5:	ff 15 50 72 42 00    	call   *0x427250
41f7bb:	ff d7                	call   *%edi
41f7bd:	59                   	pop    %ecx
41f7be:	83 ee 08             	sub    $0x8,%esi
41f7c1:	8d 46 04             	lea    0x4(%esi),%eax
41f7c4:	3b 45 08             	cmp    0x8(%ebp),%eax
41f7c7:	75 e2                	jne    0x41f7ab
41f7c9:	5f                   	pop    %edi
41f7ca:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f7cd:	b0 01                	mov    $0x1,%al
41f7cf:	33 cd                	xor    %ebp,%ecx
41f7d1:	5e                   	pop    %esi
41f7d2:	e8 89 78 fe ff       	call   0x407060
41f7d7:	8b e5                	mov    %ebp,%esp
41f7d9:	5d                   	pop    %ebp
41f7da:	c3                   	ret
41f7db:	8b ff                	mov    %edi,%edi
41f7dd:	55                   	push   %ebp
41f7de:	8b ec                	mov    %esp,%ebp
41f7e0:	53                   	push   %ebx
41f7e1:	56                   	push   %esi
41f7e2:	57                   	push   %edi
41f7e3:	8b 7d 08             	mov    0x8(%ebp),%edi
41f7e6:	85 ff                	test   %edi,%edi
41f7e8:	74 13                	je     0x41f7fd
41f7ea:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41f7ed:	85 c9                	test   %ecx,%ecx
41f7ef:	74 0c                	je     0x41f7fd
41f7f1:	8b 5d 10             	mov    0x10(%ebp),%ebx
41f7f4:	85 db                	test   %ebx,%ebx
41f7f6:	75 1b                	jne    0x41f813
41f7f8:	33 c0                	xor    %eax,%eax
41f7fa:	66 89 07             	mov    %ax,(%edi)
41f7fd:	e8 69 52 ff ff       	call   0x414a6b
41f802:	6a 16                	push   $0x16
41f804:	5e                   	pop    %esi
41f805:	89 30                	mov    %esi,(%eax)
41f807:	e8 d6 c4 fe ff       	call   0x40bce2
41f80c:	5f                   	pop    %edi
41f80d:	8b c6                	mov    %esi,%eax
41f80f:	5e                   	pop    %esi
41f810:	5b                   	pop    %ebx
41f811:	5d                   	pop    %ebp
41f812:	c3                   	ret
41f813:	8b d7                	mov    %edi,%edx
41f815:	33 f6                	xor    %esi,%esi
41f817:	66 39 32             	cmp    %si,(%edx)
41f81a:	74 08                	je     0x41f824
41f81c:	83 c2 02             	add    $0x2,%edx
41f81f:	83 e9 01             	sub    $0x1,%ecx
41f822:	75 f3                	jne    0x41f817
41f824:	85 c9                	test   %ecx,%ecx
41f826:	74 d0                	je     0x41f7f8
41f828:	2b da                	sub    %edx,%ebx
41f82a:	0f b7 04 13          	movzwl (%ebx,%edx,1),%eax
41f82e:	66 89 02             	mov    %ax,(%edx)
41f831:	8d 52 02             	lea    0x2(%edx),%edx
41f834:	66 85 c0             	test   %ax,%ax
41f837:	74 05                	je     0x41f83e
41f839:	83 e9 01             	sub    $0x1,%ecx
41f83c:	75 ec                	jne    0x41f82a
41f83e:	85 c9                	test   %ecx,%ecx
41f840:	75 ca                	jne    0x41f80c
41f842:	33 c0                	xor    %eax,%eax
41f844:	66 89 07             	mov    %ax,(%edi)
41f847:	e8 1f 52 ff ff       	call   0x414a6b
41f84c:	6a 22                	push   $0x22
41f84e:	eb b4                	jmp    0x41f804
41f850:	8b ff                	mov    %edi,%edi
41f852:	55                   	push   %ebp
41f853:	8b ec                	mov    %esp,%ebp
41f855:	51                   	push   %ecx
41f856:	8b 55 14             	mov    0x14(%ebp),%edx
41f859:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f85c:	56                   	push   %esi
41f85d:	85 d2                	test   %edx,%edx
41f85f:	75 0d                	jne    0x41f86e
41f861:	85 c9                	test   %ecx,%ecx
41f863:	75 0d                	jne    0x41f872
41f865:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
41f868:	75 26                	jne    0x41f890
41f86a:	33 c0                	xor    %eax,%eax
41f86c:	eb 33                	jmp    0x41f8a1
41f86e:	85 c9                	test   %ecx,%ecx
41f870:	74 1e                	je     0x41f890
41f872:	8b 45 0c             	mov    0xc(%ebp),%eax
41f875:	85 c0                	test   %eax,%eax
41f877:	74 17                	je     0x41f890
41f879:	85 d2                	test   %edx,%edx
41f87b:	75 07                	jne    0x41f884
41f87d:	33 c0                	xor    %eax,%eax
41f87f:	66 89 01             	mov    %ax,(%ecx)
41f882:	eb e6                	jmp    0x41f86a
41f884:	8b 75 10             	mov    0x10(%ebp),%esi
41f887:	85 f6                	test   %esi,%esi
41f889:	75 1b                	jne    0x41f8a6
41f88b:	33 c0                	xor    %eax,%eax
41f88d:	66 89 01             	mov    %ax,(%ecx)
41f890:	e8 d6 51 ff ff       	call   0x414a6b
41f895:	6a 16                	push   $0x16
41f897:	5e                   	pop    %esi
41f898:	89 30                	mov    %esi,(%eax)
41f89a:	e8 43 c4 fe ff       	call   0x40bce2
41f89f:	8b c6                	mov    %esi,%eax
41f8a1:	5e                   	pop    %esi
41f8a2:	8b e5                	mov    %ebp,%esp
41f8a4:	5d                   	pop    %ebp
41f8a5:	c3                   	ret
41f8a6:	53                   	push   %ebx
41f8a7:	2b f1                	sub    %ecx,%esi
41f8a9:	8b d8                	mov    %eax,%ebx
41f8ab:	57                   	push   %edi
41f8ac:	8b f9                	mov    %ecx,%edi
41f8ae:	83 fa ff             	cmp    $0xffffffff,%edx
41f8b1:	75 16                	jne    0x41f8c9
41f8b3:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
41f8b7:	66 89 07             	mov    %ax,(%edi)
41f8ba:	8d 7f 02             	lea    0x2(%edi),%edi
41f8bd:	66 85 c0             	test   %ax,%ax
41f8c0:	74 2c                	je     0x41f8ee
41f8c2:	83 eb 01             	sub    $0x1,%ebx
41f8c5:	75 ec                	jne    0x41f8b3
41f8c7:	eb 25                	jmp    0x41f8ee
41f8c9:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
41f8cd:	66 89 07             	mov    %ax,(%edi)
41f8d0:	8d 7f 02             	lea    0x2(%edi),%edi
41f8d3:	66 85 c0             	test   %ax,%ax
41f8d6:	74 0a                	je     0x41f8e2
41f8d8:	83 eb 01             	sub    $0x1,%ebx
41f8db:	74 05                	je     0x41f8e2
41f8dd:	83 ea 01             	sub    $0x1,%edx
41f8e0:	75 e7                	jne    0x41f8c9
41f8e2:	85 d2                	test   %edx,%edx
41f8e4:	8b 55 14             	mov    0x14(%ebp),%edx
41f8e7:	75 05                	jne    0x41f8ee
41f8e9:	33 c0                	xor    %eax,%eax
41f8eb:	66 89 07             	mov    %ax,(%edi)
41f8ee:	5f                   	pop    %edi
41f8ef:	85 db                	test   %ebx,%ebx
41f8f1:	5b                   	pop    %ebx
41f8f2:	0f 85 72 ff ff ff    	jne    0x41f86a
41f8f8:	83 fa ff             	cmp    $0xffffffff,%edx
41f8fb:	75 0f                	jne    0x41f90c
41f8fd:	8b 45 0c             	mov    0xc(%ebp),%eax
41f900:	33 d2                	xor    %edx,%edx
41f902:	6a 50                	push   $0x50
41f904:	66 89 54 41 fe       	mov    %dx,-0x2(%ecx,%eax,2)
41f909:	58                   	pop    %eax
41f90a:	eb 95                	jmp    0x41f8a1
41f90c:	33 c0                	xor    %eax,%eax
41f90e:	66 89 01             	mov    %ax,(%ecx)
41f911:	e8 55 51 ff ff       	call   0x414a6b
41f916:	6a 22                	push   $0x22
41f918:	e9 7a ff ff ff       	jmp    0x41f897
41f91d:	8b ff                	mov    %edi,%edi
41f91f:	55                   	push   %ebp
41f920:	8b ec                	mov    %esp,%ebp
41f922:	5d                   	pop    %ebp
41f923:	e9 28 ff ff ff       	jmp    0x41f850
41f928:	8b ff                	mov    %edi,%edi
41f92a:	55                   	push   %ebp
41f92b:	8b ec                	mov    %esp,%ebp
41f92d:	51                   	push   %ecx
41f92e:	51                   	push   %ecx
41f92f:	53                   	push   %ebx
41f930:	57                   	push   %edi
41f931:	6a 30                	push   $0x30
41f933:	6a 40                	push   $0x40
41f935:	e8 f5 4a ff ff       	call   0x41442f
41f93a:	8b f8                	mov    %eax,%edi
41f93c:	33 db                	xor    %ebx,%ebx
41f93e:	89 7d f8             	mov    %edi,-0x8(%ebp)
41f941:	59                   	pop    %ecx
41f942:	59                   	pop    %ecx
41f943:	85 ff                	test   %edi,%edi
41f945:	75 04                	jne    0x41f94b
41f947:	8b fb                	mov    %ebx,%edi
41f949:	eb 48                	jmp    0x41f993
41f94b:	8d 87 00 0c 00 00    	lea    0xc00(%edi),%eax
41f951:	3b f8                	cmp    %eax,%edi
41f953:	74 3e                	je     0x41f993
41f955:	56                   	push   %esi
41f956:	8d 77 20             	lea    0x20(%edi),%esi
41f959:	8b f8                	mov    %eax,%edi
41f95b:	53                   	push   %ebx
41f95c:	68 a0 0f 00 00       	push   $0xfa0
41f961:	8d 46 e0             	lea    -0x20(%esi),%eax
41f964:	50                   	push   %eax
41f965:	e8 1c 98 ff ff       	call   0x419186
41f96a:	83 4e f8 ff          	orl    $0xffffffff,-0x8(%esi)
41f96e:	89 1e                	mov    %ebx,(%esi)
41f970:	8d 76 30             	lea    0x30(%esi),%esi
41f973:	89 5e d4             	mov    %ebx,-0x2c(%esi)
41f976:	8d 46 e0             	lea    -0x20(%esi),%eax
41f979:	c7 46 d8 00 00 0a 0a 	movl   $0xa0a0000,-0x28(%esi)
41f980:	c6 46 dc 0a          	movb   $0xa,-0x24(%esi)
41f984:	80 66 dd f8          	andb   $0xf8,-0x23(%esi)
41f988:	88 5e de             	mov    %bl,-0x22(%esi)
41f98b:	3b c7                	cmp    %edi,%eax
41f98d:	75 cc                	jne    0x41f95b
41f98f:	8b 7d f8             	mov    -0x8(%ebp),%edi
41f992:	5e                   	pop    %esi
41f993:	53                   	push   %ebx
41f994:	e8 77 53 ff ff       	call   0x414d10
41f999:	59                   	pop    %ecx
41f99a:	8b c7                	mov    %edi,%eax
41f99c:	5f                   	pop    %edi
41f99d:	5b                   	pop    %ebx
41f99e:	8b e5                	mov    %ebp,%esp
41f9a0:	5d                   	pop    %ebp
41f9a1:	c3                   	ret
41f9a2:	8b ff                	mov    %edi,%edi
41f9a4:	55                   	push   %ebp
41f9a5:	8b ec                	mov    %esp,%ebp
41f9a7:	56                   	push   %esi
41f9a8:	8b 75 08             	mov    0x8(%ebp),%esi
41f9ab:	85 f6                	test   %esi,%esi
41f9ad:	74 25                	je     0x41f9d4
41f9af:	53                   	push   %ebx
41f9b0:	8d 9e 00 0c 00 00    	lea    0xc00(%esi),%ebx
41f9b6:	57                   	push   %edi
41f9b7:	8b fe                	mov    %esi,%edi
41f9b9:	3b f3                	cmp    %ebx,%esi
41f9bb:	74 0e                	je     0x41f9cb
41f9bd:	57                   	push   %edi
41f9be:	ff 15 40 71 42 00    	call   *0x427140
41f9c4:	83 c7 30             	add    $0x30,%edi
41f9c7:	3b fb                	cmp    %ebx,%edi
41f9c9:	75 f2                	jne    0x41f9bd
41f9cb:	56                   	push   %esi
41f9cc:	e8 3f 53 ff ff       	call   0x414d10
41f9d1:	59                   	pop    %ecx
41f9d2:	5f                   	pop    %edi
41f9d3:	5b                   	pop    %ebx
41f9d4:	5e                   	pop    %esi
41f9d5:	5d                   	pop    %ebp
41f9d6:	c3                   	ret
41f9d7:	6a 14                	push   $0x14
41f9d9:	68 d0 82 43 00       	push   $0x4382d0
41f9de:	e8 3d 7c fe ff       	call   0x407620
41f9e3:	81 7d 08 00 20 00 00 	cmpl   $0x2000,0x8(%ebp)
41f9ea:	1b c0                	sbb    %eax,%eax
41f9ec:	f7 d8                	neg    %eax
41f9ee:	75 17                	jne    0x41fa07
41f9f0:	e8 76 50 ff ff       	call   0x414a6b
41f9f5:	6a 09                	push   $0x9
41f9f7:	5e                   	pop    %esi
41f9f8:	89 30                	mov    %esi,(%eax)
41f9fa:	e8 e3 c2 fe ff       	call   0x40bce2
41f9ff:	8b c6                	mov    %esi,%eax
41fa01:	e8 60 7c fe ff       	call   0x407666
41fa06:	c3                   	ret
41fa07:	33 f6                	xor    %esi,%esi
41fa09:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fa0c:	6a 07                	push   $0x7
41fa0e:	e8 ab 49 ff ff       	call   0x4143be
41fa13:	59                   	pop    %ecx
41fa14:	89 75 fc             	mov    %esi,-0x4(%ebp)
41fa17:	8b fe                	mov    %esi,%edi
41fa19:	a1 c0 9f 83 02       	mov    0x2839fc0,%eax
41fa1e:	89 7d e0             	mov    %edi,-0x20(%ebp)
41fa21:	39 45 08             	cmp    %eax,0x8(%ebp)
41fa24:	7c 1f                	jl     0x41fa45
41fa26:	39 34 bd c0 9d 83 02 	cmp    %esi,0x2839dc0(,%edi,4)
41fa2d:	75 31                	jne    0x41fa60
41fa2f:	e8 f4 fe ff ff       	call   0x41f928
41fa34:	89 04 bd c0 9d 83 02 	mov    %eax,0x2839dc0(,%edi,4)
41fa3b:	85 c0                	test   %eax,%eax
41fa3d:	75 14                	jne    0x41fa53
41fa3f:	6a 0c                	push   $0xc
41fa41:	5e                   	pop    %esi
41fa42:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fa45:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fa4c:	e8 15 00 00 00       	call   0x41fa66
41fa51:	eb ac                	jmp    0x41f9ff
41fa53:	a1 c0 9f 83 02       	mov    0x2839fc0,%eax
41fa58:	83 c0 40             	add    $0x40,%eax
41fa5b:	a3 c0 9f 83 02       	mov    %eax,0x2839fc0
41fa60:	47                   	inc    %edi
41fa61:	eb bb                	jmp    0x41fa1e
41fa63:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41fa66:	6a 07                	push   $0x7
41fa68:	e8 99 49 ff ff       	call   0x414406
41fa6d:	59                   	pop    %ecx
41fa6e:	c3                   	ret
41fa6f:	8b ff                	mov    %edi,%edi
41fa71:	55                   	push   %ebp
41fa72:	8b ec                	mov    %esp,%ebp
41fa74:	8b 45 08             	mov    0x8(%ebp),%eax
41fa77:	8b c8                	mov    %eax,%ecx
41fa79:	83 e0 3f             	and    $0x3f,%eax
41fa7c:	c1 f9 06             	sar    $0x6,%ecx
41fa7f:	6b c0 30             	imul   $0x30,%eax,%eax
41fa82:	03 04 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%eax
41fa89:	50                   	push   %eax
41fa8a:	ff 15 38 71 42 00    	call   *0x427138
41fa90:	5d                   	pop    %ebp
41fa91:	c3                   	ret
41fa92:	8b ff                	mov    %edi,%edi
41fa94:	55                   	push   %ebp
41fa95:	8b ec                	mov    %esp,%ebp
41fa97:	8b 45 08             	mov    0x8(%ebp),%eax
41fa9a:	8b c8                	mov    %eax,%ecx
41fa9c:	83 e0 3f             	and    $0x3f,%eax
41fa9f:	c1 f9 06             	sar    $0x6,%ecx
41faa2:	6b c0 30             	imul   $0x30,%eax,%eax
41faa5:	03 04 8d c0 9d 83 02 	add    0x2839dc0(,%ecx,4),%eax
41faac:	50                   	push   %eax