47a739:	55                   	push   %ebp
47a73a:	8b ec                	mov    %esp,%ebp
47a73c:	83 ec 1c             	sub    $0x1c,%esp
47a73f:	56                   	push   %esi
47a740:	8b 75 08             	mov    0x8(%ebp),%esi
47a743:	57                   	push   %edi
47a744:	8b 7d 0c             	mov    0xc(%ebp),%edi
47a747:	85 ff                	test   %edi,%edi
47a749:	74 02                	je     0x47a74d
47a74b:	89 37                	mov    %esi,(%edi)
47a74d:	85 f6                	test   %esi,%esi
47a74f:	75 14                	jne    0x47a765
47a751:	e8 df f7 ff ff       	call   0x479f35
47a756:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a75c:	e8 c0 ee ff ff       	call   0x479621
47a761:	d9 ee                	fldz
47a763:	eb 57                	jmp    0x47a7bc
47a765:	ff 75 10             	push   0x10(%ebp)
47a768:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
47a76b:	e8 a1 f3 ff ff       	call   0x479b11
47a770:	d9 ee                	fldz
47a772:	8d 45 f4             	lea    -0xc(%ebp),%eax
47a775:	50                   	push   %eax
47a776:	51                   	push   %ecx
47a777:	51                   	push   %ecx
47a778:	8b c4                	mov    %esp,%eax
47a77a:	57                   	push   %edi
47a77b:	56                   	push   %esi
47a77c:	50                   	push   %eax
47a77d:	dd 5d f4             	fstpl  -0xc(%ebp)
47a780:	e8 8c b2 ff ff       	call   0x475a11
47a785:	83 c4 0c             	add    $0xc,%esp
47a788:	8d 45 e8             	lea    -0x18(%ebp),%eax
47a78b:	50                   	push   %eax
47a78c:	e8 b3 01 00 00       	call   0x47a944
47a791:	83 c4 10             	add    $0x10,%esp
47a794:	83 f8 03             	cmp    $0x3,%eax
47a797:	74 05                	je     0x47a79e
47a799:	83 f8 02             	cmp    $0x2,%eax
47a79c:	75 0b                	jne    0x47a7a9
47a79e:	e8 92 f7 ff ff       	call   0x479f35
47a7a3:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
47a7a9:	80 7d f0 00          	cmpb   $0x0,-0x10(%ebp)
47a7ad:	dd 45 f4             	fldl   -0xc(%ebp)
47a7b0:	74 0a                	je     0x47a7bc
47a7b2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
47a7b5:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
47a7bc:	5f                   	pop    %edi
47a7bd:	5e                   	pop    %esi
47a7be:	c9                   	leave
47a7bf:	c3                   	ret
47a7c0:	8b ff                	mov    %edi,%edi
47a7c2:	55                   	push   %ebp
47a7c3:	8b ec                	mov    %esp,%ebp
47a7c5:	51                   	push   %ecx
47a7c6:	51                   	push   %ecx
47a7c7:	8b 45 0c             	mov    0xc(%ebp),%eax
47a7ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a7cd:	8d 45 f8             	lea    -0x8(%ebp),%eax
47a7d0:	50                   	push   %eax
47a7d1:	ff 75 08             	push   0x8(%ebp)
47a7d4:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
47a7d8:	e8 12 1f 00 00       	call   0x47c6ef
47a7dd:	59                   	pop    %ecx
47a7de:	59                   	pop    %ecx
47a7df:	c9                   	leave
47a7e0:	c3                   	ret
47a7e1:	8b ff                	mov    %edi,%edi
47a7e3:	55                   	push   %ebp
47a7e4:	8b ec                	mov    %esp,%ebp
47a7e6:	51                   	push   %ecx
47a7e7:	51                   	push   %ecx
47a7e8:	8b 45 0c             	mov    0xc(%ebp),%eax
47a7eb:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a7ee:	8d 45 f8             	lea    -0x8(%ebp),%eax
47a7f1:	50                   	push   %eax
47a7f2:	ff 75 08             	push   0x8(%ebp)
47a7f5:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
47a7f9:	e8 f1 1e 00 00       	call   0x47c6ef
47a7fe:	59                   	pop    %ecx
47a7ff:	59                   	pop    %ecx
47a800:	c9                   	leave
47a801:	c3                   	ret
47a802:	8b ff                	mov    %edi,%edi
47a804:	55                   	push   %ebp
47a805:	8b ec                	mov    %esp,%ebp
47a807:	51                   	push   %ecx
47a808:	51                   	push   %ecx
47a809:	8b 45 0c             	mov    0xc(%ebp),%eax
47a80c:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a80f:	8d 45 f8             	lea    -0x8(%ebp),%eax
47a812:	50                   	push   %eax
47a813:	ff 75 08             	push   0x8(%ebp)
47a816:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
47a81a:	e8 76 3c 00 00       	call   0x47e495
47a81f:	59                   	pop    %ecx
47a820:	59                   	pop    %ecx
47a821:	c9                   	leave
47a822:	c3                   	ret
47a823:	8b ff                	mov    %edi,%edi
47a825:	55                   	push   %ebp
47a826:	8b ec                	mov    %esp,%ebp
47a828:	51                   	push   %ecx
47a829:	51                   	push   %ecx
47a82a:	8b 45 0c             	mov    0xc(%ebp),%eax
47a82d:	89 45 f8             	mov    %eax,-0x8(%ebp)
47a830:	8d 45 f8             	lea    -0x8(%ebp),%eax
47a833:	50                   	push   %eax
47a834:	ff 75 08             	push   0x8(%ebp)
47a837:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
47a83b:	e8 55 3c 00 00       	call   0x47e495
47a840:	59                   	pop    %ecx
47a841:	59                   	pop    %ecx
47a842:	c9                   	leave
47a843:	c3                   	ret
47a844:	8b ff                	mov    %edi,%edi
47a846:	55                   	push   %ebp
47a847:	8b ec                	mov    %esp,%ebp
47a849:	81 ec 10 03 00 00    	sub    $0x310,%esp
47a84f:	a1 14 40 4c 00       	mov    0x4c4014,%eax
47a854:	33 c5                	xor    %ebp,%eax
47a856:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a859:	8b 45 08             	mov    0x8(%ebp),%eax
47a85c:	56                   	push   %esi
47a85d:	8b 75 14             	mov    0x14(%ebp),%esi
47a860:	85 f6                	test   %esi,%esi
47a862:	74 04                	je     0x47a868
47a864:	85 c0                	test   %eax,%eax
47a866:	75 21                	jne    0x47a889
47a868:	e8 c8 f6 ff ff       	call   0x479f35
47a86d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a873:	e8 a9 ed ff ff       	call   0x479621
47a878:	8b 4d 10             	mov    0x10(%ebp),%ecx
47a87b:	85 c9                	test   %ecx,%ecx
47a87d:	74 05                	je     0x47a884
47a87f:	8b 45 0c             	mov    0xc(%ebp),%eax
47a882:	89 01                	mov    %eax,(%ecx)
47a884:	33 c0                	xor    %eax,%eax
47a886:	40                   	inc    %eax
47a887:	eb 2e                	jmp    0x47a8b7
47a889:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
47a88f:	51                   	push   %ecx
47a890:	8d 4d 0c             	lea    0xc(%ebp),%ecx
47a893:	51                   	push   %ecx
47a894:	50                   	push   %eax
47a895:	e8 2a 01 00 00       	call   0x47a9c4
47a89a:	56                   	push   %esi
47a89b:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
47a8a1:	51                   	push   %ecx
47a8a2:	50                   	push   %eax
47a8a3:	e8 bf 15 00 00       	call   0x47be67
47a8a8:	8b 55 10             	mov    0x10(%ebp),%edx
47a8ab:	83 c4 18             	add    $0x18,%esp
47a8ae:	85 d2                	test   %edx,%edx
47a8b0:	74 05                	je     0x47a8b7
47a8b2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47a8b5:	89 0a                	mov    %ecx,(%edx)
47a8b7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47a8ba:	33 cd                	xor    %ebp,%ecx
47a8bc:	5e                   	pop    %esi
47a8bd:	e8 08 f1 fe ff       	call   0x4699ca
47a8c2:	c9                   	leave
47a8c3:	c3                   	ret
47a8c4:	8b ff                	mov    %edi,%edi
47a8c6:	55                   	push   %ebp
47a8c7:	8b ec                	mov    %esp,%ebp
47a8c9:	81 ec 10 03 00 00    	sub    $0x310,%esp
47a8cf:	a1 14 40 4c 00       	mov    0x4c4014,%eax
47a8d4:	33 c5                	xor    %ebp,%eax
47a8d6:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a8d9:	8b 45 08             	mov    0x8(%ebp),%eax
47a8dc:	56                   	push   %esi
47a8dd:	8b 75 14             	mov    0x14(%ebp),%esi
47a8e0:	85 f6                	test   %esi,%esi
47a8e2:	74 04                	je     0x47a8e8
47a8e4:	85 c0                	test   %eax,%eax
47a8e6:	75 21                	jne    0x47a909
47a8e8:	e8 48 f6 ff ff       	call   0x479f35
47a8ed:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a8f3:	e8 29 ed ff ff       	call   0x479621
47a8f8:	8b 4d 10             	mov    0x10(%ebp),%ecx
47a8fb:	85 c9                	test   %ecx,%ecx
47a8fd:	74 05                	je     0x47a904
47a8ff:	8b 45 0c             	mov    0xc(%ebp),%eax
47a902:	89 01                	mov    %eax,(%ecx)
47a904:	33 c0                	xor    %eax,%eax
47a906:	40                   	inc    %eax
47a907:	eb 2e                	jmp    0x47a937
47a909:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
47a90f:	51                   	push   %ecx
47a910:	8d 4d 0c             	lea    0xc(%ebp),%ecx
47a913:	51                   	push   %ecx
47a914:	50                   	push   %eax
47a915:	e8 aa 00 00 00       	call   0x47a9c4
47a91a:	56                   	push   %esi
47a91b:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
47a921:	51                   	push   %ecx
47a922:	50                   	push   %eax
47a923:	e8 ab 16 00 00       	call   0x47bfd3
47a928:	8b 55 10             	mov    0x10(%ebp),%edx
47a92b:	83 c4 18             	add    $0x18,%esp
47a92e:	85 d2                	test   %edx,%edx
47a930:	74 05                	je     0x47a937
47a932:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47a935:	89 0a                	mov    %ecx,(%edx)
47a937:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47a93a:	33 cd                	xor    %ebp,%ecx
47a93c:	5e                   	pop    %esi
47a93d:	e8 88 f0 fe ff       	call   0x4699ca
47a942:	c9                   	leave
47a943:	c3                   	ret
47a944:	8b ff                	mov    %edi,%edi
47a946:	55                   	push   %ebp
47a947:	8b ec                	mov    %esp,%ebp
47a949:	81 ec 10 03 00 00    	sub    $0x310,%esp
47a94f:	a1 14 40 4c 00       	mov    0x4c4014,%eax
47a954:	33 c5                	xor    %ebp,%eax
47a956:	89 45 fc             	mov    %eax,-0x4(%ebp)
47a959:	8b 45 08             	mov    0x8(%ebp),%eax
47a95c:	56                   	push   %esi
47a95d:	8b 75 14             	mov    0x14(%ebp),%esi
47a960:	85 f6                	test   %esi,%esi
47a962:	74 04                	je     0x47a968
47a964:	85 c0                	test   %eax,%eax
47a966:	75 21                	jne    0x47a989
47a968:	e8 c8 f5 ff ff       	call   0x479f35
47a96d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
47a973:	e8 a9 ec ff ff       	call   0x479621
47a978:	8b 4d 10             	mov    0x10(%ebp),%ecx
47a97b:	85 c9                	test   %ecx,%ecx
47a97d:	74 05                	je     0x47a984
47a97f:	8b 45 0c             	mov    0xc(%ebp),%eax
47a982:	89 01                	mov    %eax,(%ecx)
47a984:	33 c0                	xor    %eax,%eax
47a986:	40                   	inc    %eax
47a987:	eb 2e                	jmp    0x47a9b7
47a989:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
47a98f:	51                   	push   %ecx
47a990:	8d 4d 0c             	lea    0xc(%ebp),%ecx
47a993:	51                   	push   %ecx
47a994:	50                   	push   %eax
47a995:	e8 42 04 00 00       	call   0x47addc
47a99a:	56                   	push   %esi
47a99b:	8d 8d f0 fc ff ff    	lea    -0x310(%ebp),%ecx
47a9a1:	51                   	push   %ecx
47a9a2:	50                   	push   %eax
47a9a3:	e8 2b 16 00 00       	call   0x47bfd3
47a9a8:	8b 55 10             	mov    0x10(%ebp),%edx
47a9ab:	83 c4 18             	add    $0x18,%esp
47a9ae:	85 d2                	test   %edx,%edx
47a9b0:	74 05                	je     0x47a9b7
47a9b2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47a9b5:	89 0a                	mov    %ecx,(%edx)
47a9b7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47a9ba:	33 cd                	xor    %ebp,%ecx
47a9bc:	5e                   	pop    %esi
47a9bd:	e8 08 f0 fe ff       	call   0x4699ca
47a9c2:	c9                   	leave
47a9c3:	c3                   	ret
47a9c4:	8b ff                	mov    %edi,%edi
47a9c6:	55                   	push   %ebp
47a9c7:	8b ec                	mov    %esp,%ebp
47a9c9:	83 ec 28             	sub    $0x28,%esp
47a9cc:	53                   	push   %ebx
47a9cd:	56                   	push   %esi
47a9ce:	8b 75 0c             	mov    0xc(%ebp),%esi
47a9d1:	8b ce                	mov    %esi,%ecx
47a9d3:	57                   	push   %edi
47a9d4:	e8 92 e7 ff ff       	call   0x47916b
47a9d9:	84 c0                	test   %al,%al
47a9db:	0f 84 16 02 00 00    	je     0x47abf7
47a9e1:	8b 06                	mov    (%esi),%eax
47a9e3:	8b 7d 08             	mov    0x8(%ebp),%edi
47a9e6:	89 45 ec             	mov    %eax,-0x14(%ebp)
47a9e9:	89 75 d8             	mov    %esi,-0x28(%ebp)
47a9ec:	8a 08                	mov    (%eax),%cl
47a9ee:	40                   	inc    %eax
47a9ef:	89 06                	mov    %eax,(%esi)
47a9f1:	8d 45 fa             	lea    -0x6(%ebp),%eax
47a9f4:	89 45 dc             	mov    %eax,-0x24(%ebp)
47a9f7:	8d 45 ec             	lea    -0x14(%ebp),%eax
47a9fa:	89 45 e0             	mov    %eax,-0x20(%ebp)
47a9fd:	eb 07                	jmp    0x47aa06
47a9ff:	8b 06                	mov    (%esi),%eax
47aa01:	8a 08                	mov    (%eax),%cl
47aa03:	40                   	inc    %eax
47aa04:	89 06                	mov    %eax,(%esi)
47aa06:	57                   	push   %edi
47aa07:	0f b6 c1             	movzbl %cl,%eax
47aa0a:	6a 08                	push   $0x8
47aa0c:	50                   	push   %eax
47aa0d:	88 4d fa             	mov    %cl,-0x6(%ebp)
47aa10:	e8 0d 40 00 00       	call   0x47ea22
47aa15:	83 c4 0c             	add    $0xc,%esp
47aa18:	85 c0                	test   %eax,%eax
47aa1a:	75 e3                	jne    0x47a9ff
47aa1c:	8b 55 10             	mov    0x10(%ebp),%edx
47aa1f:	8a 4d fa             	mov    -0x6(%ebp),%cl
47aa22:	81 c2 08 03 00 00    	add    $0x308,%edx
47aa28:	80 f9 2d             	cmp    $0x2d,%cl
47aa2b:	89 55 e8             	mov    %edx,-0x18(%ebp)
47aa2e:	0f 94 c0             	sete   %al
47aa31:	88 02                	mov    %al,(%edx)
47aa33:	74 05                	je     0x47aa3a
47aa35:	80 f9 2b             	cmp    $0x2b,%cl
47aa38:	75 0a                	jne    0x47aa44
47aa3a:	8b 06                	mov    (%esi),%eax
47aa3c:	8a 08                	mov    (%eax),%cl
47aa3e:	40                   	inc    %eax
47aa3f:	89 06                	mov    %eax,(%esi)
47aa41:	88 4d fa             	mov    %cl,-0x6(%ebp)
47aa44:	80 f9 49             	cmp    $0x49,%cl
47aa47:	0f 84 80 03 00 00    	je     0x47adcd
47aa4d:	80 f9 69             	cmp    $0x69,%cl
47aa50:	0f 84 77 03 00 00    	je     0x47adcd
47aa56:	80 f9 4e             	cmp    $0x4e,%cl
47aa59:	0f 84 59 03 00 00    	je     0x47adb8
47aa5f:	80 f9 6e             	cmp    $0x6e,%cl
47aa62:	0f 84 50 03 00 00    	je     0x47adb8
47aa68:	33 db                	xor    %ebx,%ebx
47aa6a:	88 5d ff             	mov    %bl,-0x1(%ebp)
47aa6d:	80 f9 30             	cmp    $0x30,%cl
47aa70:	75 34                	jne    0x47aaa6
47aa72:	8b 16                	mov    (%esi),%edx
47aa74:	8a 02                	mov    (%edx),%al
47aa76:	8d 7a 01             	lea    0x1(%edx),%edi
47aa79:	88 45 f0             	mov    %al,-0x10(%ebp)
47aa7c:	89 3e                	mov    %edi,(%esi)
47aa7e:	3c 78                	cmp    $0x78,%al
47aa80:	74 13                	je     0x47aa95
47aa82:	3c 58                	cmp    $0x58,%al
47aa84:	74 0f                	je     0x47aa95
47aa86:	ff 75 f0             	push   -0x10(%ebp)
47aa89:	8b ce                	mov    %esi,%ecx
47aa8b:	e8 21 e6 ff ff       	call   0x4790b1
47aa90:	8a 4d fa             	mov    -0x6(%ebp),%cl
47aa93:	eb 11                	jmp    0x47aaa6
47aa95:	8a 0f                	mov    (%edi),%cl
47aa97:	8d 47 01             	lea    0x1(%edi),%eax
47aa9a:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
47aa9e:	89 06                	mov    %eax,(%esi)
47aaa0:	88 4d fa             	mov    %cl,-0x6(%ebp)
47aaa3:	89 55 ec             	mov    %edx,-0x14(%ebp)
47aaa6:	8b 45 10             	mov    0x10(%ebp),%eax
47aaa9:	8a eb                	mov    %bl,%ch
47aaab:	83 c0 08             	add    $0x8,%eax
47aaae:	89 45 f4             	mov    %eax,-0xc(%ebp)
47aab1:	80 f9 30             	cmp    $0x30,%cl
47aab4:	75 11                	jne    0x47aac7
47aab6:	b5 01                	mov    $0x1,%ch