43a746:	5e                   	pop    %esi
43a747:	5b                   	pop    %ebx
43a748:	e8 b5 52 00 00       	call   0x43fa02
43a74d:	c9                   	leave
43a74e:	c2 1c 00             	ret    $0x1c
43a751:	6a 48                	push   $0x48
43a753:	b8 25 28 49 00       	mov    $0x492825,%eax
43a758:	e8 21 53 00 00       	call   0x43fa7e
43a75d:	8b d9                	mov    %ecx,%ebx
43a75f:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a762:	8b 7d 14             	mov    0x14(%ebp),%edi
43a765:	0f b7 55 18          	movzwl 0x18(%ebp),%edx
43a769:	8b 4d 08             	mov    0x8(%ebp),%ecx
43a76c:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
43a76f:	f7 47 14 00 40 00 00 	testl  $0x4000,0x14(%edi)
43a776:	89 55 b8             	mov    %edx,-0x48(%ebp)
43a779:	75 26                	jne    0x43a7a1
43a77b:	0f b6 45 1c          	movzbl 0x1c(%ebp),%eax
43a77f:	8b 33                	mov    (%ebx),%esi
43a781:	50                   	push   %eax
43a782:	52                   	push   %edx
43a783:	57                   	push   %edi
43a784:	ff 75 10             	push   0x10(%ebp)
43a787:	ff 75 0c             	push   0xc(%ebp)
43a78a:	51                   	push   %ecx
43a78b:	8b 4e 24             	mov    0x24(%esi),%ecx
43a78e:	ff 15 54 43 49 00    	call   *0x494354
43a794:	8b cb                	mov    %ebx,%ecx
43a796:	ff 56 24             	call   *0x24(%esi)
43a799:	8b 45 b4             	mov    -0x4c(%ebp),%eax
43a79c:	e9 14 01 00 00       	jmp    0x43a8b5
43a7a1:	ff 77 30             	push   0x30(%edi)
43a7a4:	8d 4d ac             	lea    -0x54(%ebp),%ecx
43a7a7:	e8 90 e6 fe ff       	call   0x428e3c
43a7ac:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
43a7b0:	8d 45 ac             	lea    -0x54(%ebp),%eax
43a7b3:	50                   	push   %eax
43a7b4:	e8 f5 e6 fc ff       	call   0x408eae
43a7b9:	59                   	pop    %ecx
43a7ba:	8d 4d ac             	lea    -0x54(%ebp),%ecx
43a7bd:	8b d8                	mov    %eax,%ebx
43a7bf:	e8 23 4c fd ff       	call   0x40f3e7
43a7c4:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
43a7c8:	33 c0                	xor    %eax,%eax
43a7ca:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
43a7d1:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
43a7d5:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
43a7d9:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a7dc:	8b 03                	mov    (%ebx),%eax
43a7de:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
43a7e5:	51                   	push   %ecx
43a7e6:	74 05                	je     0x43a7ed
43a7e8:	8b 70 1c             	mov    0x1c(%eax),%esi
43a7eb:	eb 03                	jmp    0x43a7f0
43a7ed:	8b 70 18             	mov    0x18(%eax),%esi
43a7f0:	8b ce                	mov    %esi,%ecx
43a7f2:	ff 15 54 43 49 00    	call   *0x494354
43a7f8:	8b cb                	mov    %ebx,%ecx
43a7fa:	ff d6                	call   *%esi
43a7fc:	8d 45 c0             	lea    -0x40(%ebp),%eax
43a7ff:	50                   	push   %eax
43a800:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a803:	e8 40 4f fd ff       	call   0x40f748
43a808:	8d 4d c0             	lea    -0x40(%ebp),%ecx
43a80b:	e8 ea 2a fe ff       	call   0x41d2fa
43a810:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
43a814:	7c 15                	jl     0x43a82b
43a816:	7f 06                	jg     0x43a81e
43a818:	83 7f 20 00          	cmpl   $0x0,0x20(%edi)
43a81c:	76 0d                	jbe    0x43a82b
43a81e:	8b 77 20             	mov    0x20(%edi),%esi
43a821:	3b 75 e8             	cmp    -0x18(%ebp),%esi
43a824:	76 05                	jbe    0x43a82b
43a826:	2b 75 e8             	sub    -0x18(%ebp),%esi
43a829:	eb 02                	jmp    0x43a82d
43a82b:	33 f6                	xor    %esi,%esi
43a82d:	8b 47 14             	mov    0x14(%edi),%eax
43a830:	8b 5d bc             	mov    -0x44(%ebp),%ebx
43a833:	25 c0 01 00 00       	and    $0x1c0,%eax
43a838:	83 f8 40             	cmp    $0x40,%eax
43a83b:	74 26                	je     0x43a863
43a83d:	56                   	push   %esi
43a83e:	ff 75 b8             	push   -0x48(%ebp)
43a841:	8d 45 ac             	lea    -0x54(%ebp),%eax
43a844:	ff 75 10             	push   0x10(%ebp)
43a847:	ff 75 0c             	push   0xc(%ebp)
43a84a:	50                   	push   %eax
43a84b:	53                   	push   %ebx
43a84c:	e8 5e c3 ff ff       	call   0x436baf
43a851:	83 c4 18             	add    $0x18,%esp
43a854:	33 f6                	xor    %esi,%esi
43a856:	8b 08                	mov    (%eax),%ecx
43a858:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43a85b:	8b 40 04             	mov    0x4(%eax),%eax
43a85e:	89 45 10             	mov    %eax,0x10(%ebp)
43a861:	eb 06                	jmp    0x43a869
43a863:	8b 45 10             	mov    0x10(%ebp),%eax
43a866:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43a869:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
43a86d:	8d 55 d8             	lea    -0x28(%ebp),%edx
43a870:	72 03                	jb     0x43a875
43a872:	8b 55 d8             	mov    -0x28(%ebp),%edx
43a875:	ff 75 e8             	push   -0x18(%ebp)
43a878:	52                   	push   %edx
43a879:	50                   	push   %eax
43a87a:	51                   	push   %ecx
43a87b:	8d 45 ac             	lea    -0x54(%ebp),%eax
43a87e:	50                   	push   %eax
43a87f:	53                   	push   %ebx
43a880:	e8 ab b7 ff ff       	call   0x436030
43a885:	56                   	push   %esi
43a886:	ff 75 b8             	push   -0x48(%ebp)
43a889:	8b 75 b4             	mov    -0x4c(%ebp),%esi
43a88c:	8b 08                	mov    (%eax),%ecx
43a88e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
43a891:	8b 40 04             	mov    0x4(%eax),%eax
43a894:	83 67 20 00          	andl   $0x0,0x20(%edi)
43a898:	83 67 24 00          	andl   $0x0,0x24(%edi)
43a89c:	50                   	push   %eax
43a89d:	51                   	push   %ecx
43a89e:	56                   	push   %esi
43a89f:	53                   	push   %ebx
43a8a0:	89 45 10             	mov    %eax,0x10(%ebp)
43a8a3:	e8 07 c3 ff ff       	call   0x436baf
43a8a8:	83 c4 30             	add    $0x30,%esp
43a8ab:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a8ae:	e8 47 2a fe ff       	call   0x41d2fa
43a8b3:	8b c6                	mov    %esi,%eax
43a8b5:	e8 6e 51 00 00       	call   0x43fa28
43a8ba:	c2 18 00             	ret    $0x18
43a8bd:	6a 34                	push   $0x34
43a8bf:	b8 52 28 49 00       	mov    $0x492852,%eax
43a8c4:	e8 b5 51 00 00       	call   0x43fa7e
43a8c9:	89 4d c8             	mov    %ecx,-0x38(%ebp)
43a8cc:	8b 45 1c             	mov    0x1c(%ebp),%eax
43a8cf:	8d 7d e4             	lea    -0x1c(%ebp),%edi
43a8d2:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a8d5:	be cc a9 49 00       	mov    $0x49a9cc,%esi
43a8da:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
43a8de:	89 45 c4             	mov    %eax,-0x3c(%ebp)
43a8e1:	33 c0                	xor    %eax,%eax
43a8e3:	89 5d c0             	mov    %ebx,-0x40(%ebp)
43a8e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a8e7:	c7 45 e0 07 00 00 00 	movl   $0x7,-0x20(%ebp)
43a8ee:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
43a8f2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a8f3:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
43a8f5:	21 45 fc             	and    %eax,-0x4(%ebp)
43a8f8:	8a 45 24             	mov    0x24(%ebp),%al
43a8fb:	84 c0                	test   %al,%al
43a8fd:	75 0b                	jne    0x43a90a
43a8ff:	66 0f be 45 20       	movsbw 0x20(%ebp),%ax
43a904:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
43a908:	eb 0f                	jmp    0x43a919
43a90a:	66 98                	cbtw
43a90c:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
43a910:	66 0f be 45 20       	movsbw 0x20(%ebp),%ax
43a915:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
43a919:	8b 7d c8             	mov    -0x38(%ebp),%edi
43a91c:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
43a91f:	6a 10                	push   $0x10
43a921:	5e                   	pop    %esi
43a922:	6a 00                	push   $0x0
43a924:	56                   	push   %esi
43a925:	8d 4d cc             	lea    -0x34(%ebp),%ecx
43a928:	e8 f4 4c fe ff       	call   0x41f621
43a92d:	83 7d e0 08          	cmpl   $0x8,-0x20(%ebp)
43a931:	8d 45 cc             	lea    -0x34(%ebp),%eax
43a934:	72 03                	jb     0x43a939
43a936:	8b 45 cc             	mov    -0x34(%ebp),%eax
43a939:	ff 77 08             	push   0x8(%edi)
43a93c:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
43a93f:	53                   	push   %ebx
43a940:	51                   	push   %ecx
43a941:	ff 75 dc             	push   -0x24(%ebp)
43a944:	50                   	push   %eax
43a945:	e8 8b 10 03 00       	call   0x46b9d5
43a94a:	8b d0                	mov    %eax,%edx
43a94c:	83 c4 14             	add    $0x14,%esp
43a94f:	85 d2                	test   %edx,%edx
43a951:	75 04                	jne    0x43a957
43a953:	03 f6                	add    %esi,%esi
43a955:	eb cb                	jmp    0x43a922
43a957:	83 7d e0 08          	cmpl   $0x8,-0x20(%ebp)
43a95b:	8d 4d cc             	lea    -0x34(%ebp),%ecx
43a95e:	8b 5d c0             	mov    -0x40(%ebp),%ebx
43a961:	72 03                	jb     0x43a966
43a963:	8b 4d cc             	mov    -0x34(%ebp),%ecx
43a966:	8d 45 cc             	lea    -0x34(%ebp),%eax
43a969:	72 03                	jb     0x43a96e
43a96b:	8b 45 cc             	mov    -0x34(%ebp),%eax
43a96e:	ff 75 10             	push   0x10(%ebp)
43a971:	8d 0c 51             	lea    (%ecx,%edx,2),%ecx
43a974:	ff 75 0c             	push   0xc(%ebp)
43a977:	51                   	push   %ecx
43a978:	8d 48 02             	lea    0x2(%eax),%ecx
43a97b:	51                   	push   %ecx
43a97c:	53                   	push   %ebx
43a97d:	e8 f4 3e ff ff       	call   0x42e876
43a982:	83 c4 14             	add    $0x14,%esp
43a985:	8d 4d cc             	lea    -0x34(%ebp),%ecx
43a988:	e8 6d 29 fe ff       	call   0x41d2fa
43a98d:	8b c3                	mov    %ebx,%eax
43a98f:	e8 94 50 00 00       	call   0x43fa28
43a994:	c2 20 00             	ret    $0x20
43a997:	6a 34                	push   $0x34
43a999:	b8 7f 28 49 00       	mov    $0x49287f,%eax
43a99e:	e8 db 50 00 00       	call   0x43fa7e
43a9a3:	89 4d c8             	mov    %ecx,-0x38(%ebp)
43a9a6:	8b 45 1c             	mov    0x1c(%ebp),%eax
43a9a9:	8d 7d e4             	lea    -0x1c(%ebp),%edi
43a9ac:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a9af:	be cc a9 49 00       	mov    $0x49a9cc,%esi
43a9b4:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
43a9b8:	89 45 c4             	mov    %eax,-0x3c(%ebp)
43a9bb:	33 c0                	xor    %eax,%eax
43a9bd:	89 5d c0             	mov    %ebx,-0x40(%ebp)
43a9c0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a9c1:	c7 45 e0 07 00 00 00 	movl   $0x7,-0x20(%ebp)
43a9c8:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
43a9cc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43a9cd:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
43a9cf:	21 45 fc             	and    %eax,-0x4(%ebp)
43a9d2:	8a 45 24             	mov    0x24(%ebp),%al
43a9d5:	84 c0                	test   %al,%al
43a9d7:	75 0b                	jne    0x43a9e4
43a9d9:	66 0f be 45 20       	movsbw 0x20(%ebp),%ax
43a9de:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
43a9e2:	eb 0f                	jmp    0x43a9f3
43a9e4:	66 98                	cbtw
43a9e6:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
43a9ea:	66 0f be 45 20       	movsbw 0x20(%ebp),%ax
43a9ef:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
43a9f3:	8b 7d c8             	mov    -0x38(%ebp),%edi
43a9f6:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
43a9f9:	6a 10                	push   $0x10
43a9fb:	5e                   	pop    %esi
43a9fc:	6a 00                	push   $0x0
43a9fe:	56                   	push   %esi
43a9ff:	8d 4d cc             	lea    -0x34(%ebp),%ecx
43aa02:	e8 1a 4c fe ff       	call   0x41f621
43aa07:	83 7d e0 08          	cmpl   $0x8,-0x20(%ebp)
43aa0b:	8d 45 cc             	lea    -0x34(%ebp),%eax
43aa0e:	72 03                	jb     0x43aa13
43aa10:	8b 45 cc             	mov    -0x34(%ebp),%eax
43aa13:	ff 77 08             	push   0x8(%edi)
43aa16:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
43aa19:	53                   	push   %ebx
43aa1a:	51                   	push   %ecx
43aa1b:	ff 75 dc             	push   -0x24(%ebp)
43aa1e:	50                   	push   %eax
43aa1f:	e8 b1 0f 03 00       	call   0x46b9d5
43aa24:	8b d0                	mov    %eax,%edx
43aa26:	83 c4 14             	add    $0x14,%esp
43aa29:	85 d2                	test   %edx,%edx
43aa2b:	75 04                	jne    0x43aa31
43aa2d:	03 f6                	add    %esi,%esi
43aa2f:	eb cb                	jmp    0x43a9fc
43aa31:	83 7d e0 08          	cmpl   $0x8,-0x20(%ebp)
43aa35:	8d 4d cc             	lea    -0x34(%ebp),%ecx
43aa38:	8b 5d c0             	mov    -0x40(%ebp),%ebx
43aa3b:	72 03                	jb     0x43aa40
43aa3d:	8b 4d cc             	mov    -0x34(%ebp),%ecx
43aa40:	8d 45 cc             	lea    -0x34(%ebp),%eax
43aa43:	72 03                	jb     0x43aa48
43aa45:	8b 45 cc             	mov    -0x34(%ebp),%eax
43aa48:	ff 75 10             	push   0x10(%ebp)
43aa4b:	8d 0c 51             	lea    (%ecx,%edx,2),%ecx
43aa4e:	ff 75 0c             	push   0xc(%ebp)
43aa51:	51                   	push   %ecx
43aa52:	8d 48 02             	lea    0x2(%eax),%ecx
43aa55:	51                   	push   %ecx
43aa56:	53                   	push   %ebx
43aa57:	e8 48 3e ff ff       	call   0x42e8a4
43aa5c:	83 c4 14             	add    $0x14,%esp
43aa5f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
43aa62:	e8 93 28 fe ff       	call   0x41d2fa
43aa67:	8b c3                	mov    %ebx,%eax
43aa69:	e8 ba 4f 00 00       	call   0x43fa28
43aa6e:	c2 20 00             	ret    $0x20
43aa71:	55                   	push   %ebp
43aa72:	8b ec                	mov    %esp,%ebp
43aa74:	53                   	push   %ebx
43aa75:	57                   	push   %edi
43aa76:	8b 7d 0c             	mov    0xc(%ebp),%edi
43aa79:	8b d9                	mov    %ecx,%ebx
43aa7b:	3b 7d 10             	cmp    0x10(%ebp),%edi
43aa7e:	74 26                	je     0x43aaa6
43aa80:	56                   	push   %esi
43aa81:	0f b7 0f             	movzwl (%edi),%ecx
43aa84:	8b 03                	mov    (%ebx),%eax
43aa86:	51                   	push   %ecx
43aa87:	ff 75 08             	push   0x8(%ebp)
43aa8a:	8b 70 10             	mov    0x10(%eax),%esi
43aa8d:	8b ce                	mov    %esi,%ecx
43aa8f:	ff 15 54 43 49 00    	call   *0x494354
43aa95:	8b cb                	mov    %ebx,%ecx
43aa97:	ff d6                	call   *%esi
43aa99:	84 c0                	test   %al,%al
43aa9b:	75 08                	jne    0x43aaa5
43aa9d:	83 c7 02             	add    $0x2,%edi
43aaa0:	3b 7d 10             	cmp    0x10(%ebp),%edi
43aaa3:	75 dc                	jne    0x43aa81
43aaa5:	5e                   	pop    %esi
43aaa6:	8b c7                	mov    %edi,%eax
43aaa8:	5f                   	pop    %edi
43aaa9:	5b                   	pop    %ebx
43aaaa:	5d                   	pop    %ebp
43aaab:	c2 0c 00             	ret    $0xc
43aaae:	55                   	push   %ebp
43aaaf:	8b ec                	mov    %esp,%ebp
43aab1:	53                   	push   %ebx
43aab2:	57                   	push   %edi
43aab3:	8b 7d 0c             	mov    0xc(%ebp),%edi
43aab6:	8b d9                	mov    %ecx,%ebx
43aab8:	3b 7d 10             	cmp    0x10(%ebp),%edi
43aabb:	74 26                	je     0x43aae3
43aabd:	56                   	push   %esi
43aabe:	0f b7 0f             	movzwl (%edi),%ecx
43aac1:	8b 03                	mov    (%ebx),%eax
43aac3:	51                   	push   %ecx
43aac4:	ff 75 08             	push   0x8(%ebp)
43aac7:	8b 70 10             	mov    0x10(%eax),%esi
43aaca:	8b ce                	mov    %esi,%ecx
43aacc:	ff 15 54 43 49 00    	call   *0x494354
43aad2:	8b cb                	mov    %ebx,%ecx
43aad4:	ff d6                	call   *%esi
43aad6:	84 c0                	test   %al,%al
43aad8:	74 08                	je     0x43aae2
43aada:	83 c7 02             	add    $0x2,%edi
43aadd:	3b 7d 10             	cmp    0x10(%ebp),%edi
43aae0:	75 dc                	jne    0x43aabe
43aae2:	5e                   	pop    %esi
43aae3:	8b c7                	mov    %edi,%eax
43aae5:	5f                   	pop    %edi
43aae6:	5b                   	pop    %ebx
43aae7:	5d                   	pop    %ebp
43aae8:	c2 0c 00             	ret    $0xc
43aaeb:	66 8b 41 0e          	mov    0xe(%ecx),%ax
43aaef:	c3                   	ret
43aaf0:	66 8b 41 0e          	mov    0xe(%ecx),%ax
43aaf4:	c3                   	ret
43aaf5:	66 8b 41 0e          	mov    0xe(%ecx),%ax
43aaf9:	c3                   	ret
43aafa:	55                   	push   %ebp
43aafb:	8b ec                	mov    %esp,%ebp
43aafd:	8d 41 08             	lea    0x8(%ecx),%eax
43ab00:	50                   	push   %eax
43ab01:	ff 75 08             	push   0x8(%ebp)
43ab04:	e8 8a ba fe ff       	call   0x426593