47468d:	33 c0                	xor    %eax,%eax
47468f:	40                   	inc    %eax
474690:	6a 00                	push   $0x0
474692:	89 46 0c             	mov    %eax,0xc(%esi)
474695:	50                   	push   %eax
474696:	8b 07                	mov    (%edi),%eax
474698:	8b 48 04             	mov    0x4(%eax),%ecx
47469b:	03 cf                	add    %edi,%ecx
47469d:	e8 01 24 fe ff       	call   0x456aa3
4746a2:	5e                   	pop    %esi
4746a3:	33 c0                	xor    %eax,%eax
4746a5:	5f                   	pop    %edi
4746a6:	8b e5                	mov    %ebp,%esp
4746a8:	5d                   	pop    %ebp
4746a9:	c2 08 00             	ret    $0x8
4746ac:	55                   	push   %ebp
4746ad:	8b ec                	mov    %esp,%ebp
4746af:	83 ec 14             	sub    $0x14,%esp
4746b2:	8b 45 08             	mov    0x8(%ebp),%eax
4746b5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4746b9:	56                   	push   %esi
4746ba:	57                   	push   %edi
4746bb:	8b 40 04             	mov    0x4(%eax),%eax
4746be:	8b f9                	mov    %ecx,%edi
4746c0:	8b 30                	mov    (%eax),%esi
4746c2:	8b ce                	mov    %esi,%ecx
4746c4:	e8 ce 52 f9 ff       	call   0x409997
4746c9:	8b 56 08             	mov    0x8(%esi),%edx
4746cc:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4746cf:	8b 02                	mov    (%edx),%eax
4746d1:	89 45 ec             	mov    %eax,-0x14(%ebp)
4746d4:	8b 42 04             	mov    0x4(%edx),%eax
4746d7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4746da:	8b 42 08             	mov    0x8(%edx),%eax
4746dd:	89 45 f4             	mov    %eax,-0xc(%ebp)
4746e0:	8b 42 0c             	mov    0xc(%edx),%eax
4746e3:	89 45 f8             	mov    %eax,-0x8(%ebp)
4746e6:	ff 00                	incl   (%eax)
4746e8:	e8 c2 38 f9 ff       	call   0x407faf
4746ed:	ff 75 f0             	push   -0x10(%ebp)
4746f0:	ff 75 ec             	push   -0x14(%ebp)
4746f3:	ff 15 7c f6 48 00    	call   *0x48f67c
4746f9:	8d 45 ec             	lea    -0x14(%ebp),%eax
4746fc:	50                   	push   %eax
4746fd:	e8 26 15 ff ff       	call   0x465c28
474702:	6a 00                	push   $0x0
474704:	85 c0                	test   %eax,%eax
474706:	74 18                	je     0x474720
474708:	8d 45 fc             	lea    -0x4(%ebp),%eax
47470b:	50                   	push   %eax
47470c:	8d 45 ec             	lea    -0x14(%ebp),%eax
47470f:	50                   	push   %eax
474710:	e8 85 3e f9 ff       	call   0x40859a
474715:	8b 4d 0c             	mov    0xc(%ebp),%ecx
474718:	50                   	push   %eax
474719:	e8 7e 57 f9 ff       	call   0x409e9c
47471e:	eb 1b                	jmp    0x47473b
474720:	8b 07                	mov    (%edi),%eax
474722:	6a 01                	push   $0x1
474724:	8b 48 04             	mov    0x4(%eax),%ecx
474727:	03 cf                	add    %edi,%ecx
474729:	e8 75 23 fe ff       	call   0x456aa3
47472e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
474731:	68 10 f9 48 00       	push   $0x48f910
474736:	e8 bd 54 f9 ff       	call   0x409bf8
47473b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
47473e:	e8 21 13 f9 ff       	call   0x405a64
474743:	5f                   	pop    %edi
474744:	33 c0                	xor    %eax,%eax
474746:	5e                   	pop    %esi
474747:	8b e5                	mov    %ebp,%esp
474749:	5d                   	pop    %ebp
47474a:	c2 08 00             	ret    $0x8
47474d:	55                   	push   %ebp
47474e:	8b ec                	mov    %esp,%ebp
474750:	83 e4 f8             	and    $0xfffffff8,%esp
474753:	83 ec 14             	sub    $0x14,%esp
474756:	8b 45 08             	mov    0x8(%ebp),%eax
474759:	53                   	push   %ebx
47475a:	56                   	push   %esi
47475b:	33 db                	xor    %ebx,%ebx
47475d:	c7 44 24 0c 78 fb 48 	movl   $0x48fb78,0xc(%esp)
474764:	00
474765:	8b 40 04             	mov    0x4(%eax),%eax
474768:	57                   	push   %edi
474769:	89 5c 24 14          	mov    %ebx,0x14(%esp)
47476d:	8b f9                	mov    %ecx,%edi
47476f:	89 5c 24 18          	mov    %ebx,0x18(%esp)
474773:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
474777:	8b 30                	mov    (%eax),%esi
474779:	8b ce                	mov    %esi,%ecx
47477b:	c6 05 80 62 4c 00 01 	movb   $0x1,0x4c6280
474782:	e8 10 52 f9 ff       	call   0x409997
474787:	8b 46 08             	mov    0x8(%esi),%eax
47478a:	8d 4c 24 10          	lea    0x10(%esp),%ecx
47478e:	51                   	push   %ecx
47478f:	ff 30                	push   (%eax)
474791:	53                   	push   %ebx
474792:	e8 09 1c f9 ff       	call   0x4063a0
474797:	85 c0                	test   %eax,%eax
474799:	78 2d                	js     0x4747c8
47479b:	83 7c 24 18 01       	cmpl   $0x1,0x18(%esp)
4747a0:	76 26                	jbe    0x4747c8
4747a2:	6a ff                	push   $0xffffffff
4747a4:	ff 75 0c             	push   0xc(%ebp)
4747a7:	8d 44 24 14          	lea    0x14(%esp),%eax
4747ab:	89 5c 24 14          	mov    %ebx,0x14(%esp)
4747af:	50                   	push   %eax
4747b0:	8d 44 24 1c          	lea    0x1c(%esp),%eax
4747b4:	8b cf                	mov    %edi,%ecx
4747b6:	50                   	push   %eax
4747b7:	e8 44 58 f9 ff       	call   0x40a000
4747bc:	85 c0                	test   %eax,%eax
4747be:	78 08                	js     0x4747c8
4747c0:	88 1d 80 62 4c 00    	mov    %bl,0x4c6280
4747c6:	eb 22                	jmp    0x4747ea
4747c8:	8b 07                	mov    (%edi),%eax
4747ca:	53                   	push   %ebx
4747cb:	6a 01                	push   $0x1
4747cd:	88 1d 80 62 4c 00    	mov    %bl,0x4c6280
4747d3:	8b 48 04             	mov    0x4(%eax),%ecx
4747d6:	03 cf                	add    %edi,%ecx
4747d8:	e8 c6 22 fe ff       	call   0x456aa3
4747dd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4747e0:	68 10 f9 48 00       	push   $0x48f910
4747e5:	e8 0e 54 f9 ff       	call   0x409bf8
4747ea:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4747ee:	e8 83 2f f9 ff       	call   0x407776
4747f3:	5f                   	pop    %edi
4747f4:	5e                   	pop    %esi
4747f5:	33 c0                	xor    %eax,%eax
4747f7:	5b                   	pop    %ebx
4747f8:	8b e5                	mov    %ebp,%esp
4747fa:	5d                   	pop    %ebp
4747fb:	c2 08 00             	ret    $0x8
4747fe:	55                   	push   %ebp
4747ff:	8b ec                	mov    %esp,%ebp
474801:	8b 45 08             	mov    0x8(%ebp),%eax
474804:	83 ec 10             	sub    $0x10,%esp
474807:	8b 40 04             	mov    0x4(%eax),%eax
47480a:	56                   	push   %esi
47480b:	57                   	push   %edi
47480c:	8b f1                	mov    %ecx,%esi
47480e:	8b 38                	mov    (%eax),%edi
474810:	83 7f 0c 0e          	cmpl   $0xe,0xc(%edi)
474814:	75 0d                	jne    0x474823
474816:	8d 45 f0             	lea    -0x10(%ebp),%eax
474819:	8b cf                	mov    %edi,%ecx
47481b:	50                   	push   %eax
47481c:	e8 83 33 ff ff       	call   0x467ba4
474821:	eb 24                	jmp    0x474847
474823:	83 7f 0c 0d          	cmpl   $0xd,0xc(%edi)
474827:	75 31                	jne    0x47485a
474829:	8d 4d f0             	lea    -0x10(%ebp),%ecx
47482c:	e8 96 2f f9 ff       	call   0x4077c7
474831:	8d 45 f0             	lea    -0x10(%ebp),%eax
474834:	8b cf                	mov    %edi,%ecx
474836:	50                   	push   %eax
474837:	e8 59 33 ff ff       	call   0x467b95
47483c:	50                   	push   %eax
47483d:	8b ce                	mov    %esi,%ecx
47483f:	e8 ef 5a ff ff       	call   0x46a333
474844:	8d 45 f0             	lea    -0x10(%ebp),%eax
474847:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47484a:	50                   	push   %eax
47484b:	e8 4c 53 f9 ff       	call   0x409b9c
474850:	8d 4d f0             	lea    -0x10(%ebp),%ecx
474853:	e8 0c 12 f9 ff       	call   0x405a64
474858:	eb 1d                	jmp    0x474877
47485a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47485d:	68 10 f9 48 00       	push   $0x48f910
474862:	e8 91 53 f9 ff       	call   0x409bf8
474867:	8b 06                	mov    (%esi),%eax
474869:	6a 00                	push   $0x0
47486b:	6a 01                	push   $0x1
47486d:	8b 48 04             	mov    0x4(%eax),%ecx
474870:	03 ce                	add    %esi,%ecx
474872:	e8 2c 22 fe ff       	call   0x456aa3
474877:	5f                   	pop    %edi
474878:	33 c0                	xor    %eax,%eax
47487a:	5e                   	pop    %esi
47487b:	8b e5                	mov    %ebp,%esp
47487d:	5d                   	pop    %ebp
47487e:	c2 08 00             	ret    $0x8
474881:	55                   	push   %ebp
474882:	8b ec                	mov    %esp,%ebp
474884:	83 e4 f8             	and    $0xfffffff8,%esp
474887:	83 ec 74             	sub    $0x74,%esp
47488a:	53                   	push   %ebx
47488b:	56                   	push   %esi
47488c:	57                   	push   %edi
47488d:	8b 7d 08             	mov    0x8(%ebp),%edi
474890:	8b d9                	mov    %ecx,%ebx
474892:	8d 4c 24 20          	lea    0x20(%esp),%ecx
474896:	89 5c 24 18          	mov    %ebx,0x18(%esp)
47489a:	8b 77 08             	mov    0x8(%edi),%esi
47489d:	89 74 24 1c          	mov    %esi,0x1c(%esp)
4748a1:	e8 25 7b fe ff       	call   0x45c3cb
4748a6:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
4748ab:	8d 46 fe             	lea    -0x2(%esi),%eax
4748ae:	83 f8 08             	cmp    $0x8,%eax
4748b1:	0f 87 40 03 00 00    	ja     0x474bf7
4748b7:	ff 24 85 31 4c 47 00 	jmp    *0x474c31(,%eax,4)
4748be:	8b 47 04             	mov    0x4(%edi),%eax
4748c1:	8b 48 24             	mov    0x24(%eax),%ecx
4748c4:	e8 f2 40 ff ff       	call   0x4689bb
4748c9:	89 44 24 14          	mov    %eax,0x14(%esp)
4748cd:	8b 4f 04             	mov    0x4(%edi),%ecx
4748d0:	6a 29                	push   $0x29
4748d2:	8b 71 20             	mov    0x20(%ecx),%esi
4748d5:	8b ce                	mov    %esi,%ecx
4748d7:	e8 d2 54 f9 ff       	call   0x409dae
4748dc:	84 c0                	test   %al,%al
4748de:	75 1c                	jne    0x4748fc
4748e0:	8b ce                	mov    %esi,%ecx
4748e2:	e8 b5 53 f9 ff       	call   0x409c9c
4748e7:	89 44 24 10          	mov    %eax,0x10(%esp)
4748eb:	db 44 24 10          	fildl  0x10(%esp)
4748ef:	d9 ee                	fldz
4748f1:	d8 d9                	fcomp  %st(1)
4748f3:	df e0                	fnstsw %ax
4748f5:	f6 c4 01             	test   $0x1,%ah
4748f8:	75 08                	jne    0x474902
4748fa:	dd d8                	fstp   %st(0)
4748fc:	dd 05 d8 ba 4b 00    	fldl   0x4bbad8
474902:	dd 5c 24 38          	fstpl  0x38(%esp)
474906:	8b 47 04             	mov    0x4(%edi),%eax
474909:	6a 29                	push   $0x29
47490b:	8b 70 1c             	mov    0x1c(%eax),%esi
47490e:	8b ce                	mov    %esi,%ecx
474910:	e8 99 54 f9 ff       	call   0x409dae
474915:	84 c0                	test   %al,%al
474917:	74 0a                	je     0x474923
474919:	81 4c 24 30 80 00 00 	orl    $0x80,0x30(%esp)
474920:	00
474921:	eb 0b                	jmp    0x47492e
474923:	8b ce                	mov    %esi,%ecx
474925:	e8 72 53 f9 ff       	call   0x409c9c
47492a:	89 44 24 2c          	mov    %eax,0x2c(%esp)
47492e:	8b 47 04             	mov    0x4(%edi),%eax
474931:	6a 29                	push   $0x29
474933:	8b 70 18             	mov    0x18(%eax),%esi
474936:	8b ce                	mov    %esi,%ecx
474938:	e8 71 54 f9 ff       	call   0x409dae
47493d:	84 c0                	test   %al,%al
47493f:	74 07                	je     0x474948
474941:	83 4c 24 30 40       	orl    $0x40,0x30(%esp)
474946:	eb 0b                	jmp    0x474953
474948:	8b ce                	mov    %esi,%ecx
47494a:	e8 4d 53 f9 ff       	call   0x409c9c
47494f:	89 44 24 28          	mov    %eax,0x28(%esp)
474953:	8b 47 04             	mov    0x4(%edi),%eax
474956:	8b 48 14             	mov    0x14(%eax),%ecx
474959:	e8 3e 53 f9 ff       	call   0x409c9c
47495e:	85 c0                	test   %eax,%eax
474960:	78 20                	js     0x474982
474962:	8b 47 04             	mov    0x4(%edi),%eax
474965:	6a 29                	push   $0x29
474967:	8b 70 14             	mov    0x14(%eax),%esi
47496a:	8b ce                	mov    %esi,%ecx
47496c:	e8 3d 54 f9 ff       	call   0x409dae
474971:	84 c0                	test   %al,%al
474973:	75 0d                	jne    0x474982
474975:	8b ce                	mov    %esi,%ecx
474977:	e8 20 53 f9 ff       	call   0x409c9c
47497c:	89 44 24 24          	mov    %eax,0x24(%esp)
474980:	eb 05                	jmp    0x474987
474982:	83 4c 24 30 20       	orl    $0x20,0x30(%esp)
474987:	8b 47 04             	mov    0x4(%edi),%eax
47498a:	8b 48 10             	mov    0x10(%eax),%ecx
47498d:	e8 0a 53 f9 ff       	call   0x409c9c
474992:	85 c0                	test   %eax,%eax
474994:	78 20                	js     0x4749b6
474996:	8b 47 04             	mov    0x4(%edi),%eax
474999:	6a 29                	push   $0x29
47499b:	8b 70 10             	mov    0x10(%eax),%esi
47499e:	8b ce                	mov    %esi,%ecx
4749a0:	e8 09 54 f9 ff       	call   0x409dae
4749a5:	84 c0                	test   %al,%al
4749a7:	75 0d                	jne    0x4749b6
4749a9:	8b ce                	mov    %esi,%ecx
4749ab:	e8 ec 52 f9 ff       	call   0x409c9c
4749b0:	89 44 24 20          	mov    %eax,0x20(%esp)
4749b4:	eb 05                	jmp    0x4749bb
4749b6:	83 4c 24 30 10       	orl    $0x10,0x30(%esp)
4749bb:	8b 47 04             	mov    0x4(%edi),%eax
4749be:	6a 29                	push   $0x29
4749c0:	8b 70 0c             	mov    0xc(%eax),%esi
4749c3:	8b ce                	mov    %esi,%ecx
4749c5:	e8 e4 53 f9 ff       	call   0x409dae
4749ca:	84 c0                	test   %al,%al
4749cc:	74 2c                	je     0x4749fa
4749ce:	33 c0                	xor    %eax,%eax
4749d0:	66 89 44 24 40       	mov    %ax,0x40(%esp)
4749d5:	8b 47 04             	mov    0x4(%edi),%eax
4749d8:	6a 29                	push   $0x29
4749da:	8b 70 08             	mov    0x8(%eax),%esi
4749dd:	8b ce                	mov    %esi,%ecx
4749df:	e8 ca 53 f9 ff       	call   0x409dae
4749e4:	84 c0                	test   %al,%al
4749e6:	0f 84 1d 01 00 00    	je     0x474b09
4749ec:	8d 4c 24 54          	lea    0x54(%esp),%ecx
4749f0:	e8 f7 34 f9 ff       	call   0x407eec
4749f5:	e9 22 01 00 00       	jmp    0x474b1c
4749fa:	8b ce                	mov    %esi,%ecx
4749fc:	e8 96 4f f9 ff       	call   0x409997
474a01:	8b 46 08             	mov    0x8(%esi),%eax
474a04:	8b 00                	mov    (%eax),%eax
474a06:	0f b7 30             	movzwl (%eax),%esi
474a09:	66 85 f6             	test   %si,%si
474a0c:	74 c7                	je     0x4749d5
474a0e:	8b ce                	mov    %esi,%ecx
474a10:	e8 a4 09 f9 ff       	call   0x4053b9
474a15:	85 c0                	test   %eax,%eax
474a17:	75 05                	jne    0x474a1e
474a19:	66 89 74 24 40       	mov    %si,0x40(%esp)
474a1e:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
474a25:	00
474a26:	8b 47 04             	mov    0x4(%edi),%eax
474a29:	8b 70 0c             	mov    0xc(%eax),%esi
474a2c:	8b ce                	mov    %esi,%ecx
474a2e:	e8 64 4f f9 ff       	call   0x409997
474a33:	8b 46 08             	mov    0x8(%esi),%eax
474a36:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
474a3a:	8b 00                	mov    (%eax),%eax
474a3c:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
474a40:	66 85 c0             	test   %ax,%ax
474a43:	74 90                	je     0x4749d5
474a45:	83 f8 30             	cmp    $0x30,%eax
474a48:	0f 8c 99 00 00 00    	jl     0x474ae7
474a4e:	83 f8 39             	cmp    $0x39,%eax
474a51:	7e 15                	jle    0x474a68
474a53:	83 f8 4d             	cmp    $0x4d,%eax
474a56:	74 09                	je     0x474a61
474a58:	83 f8 6d             	cmp    $0x6d,%eax
474a5b:	0f 85 86 00 00 00    	jne    0x474ae7
474a61:	83 4c 24 30 01       	orl    $0x1,0x30(%esp)
474a66:	eb 76                	jmp    0x474ade
474a68:	8b 47 04             	mov    0x4(%edi),%eax
474a6b:	8b 70 0c             	mov    0xc(%eax),%esi
474a6e:	8b ce                	mov    %esi,%ecx
474a70:	e8 22 4f f9 ff       	call   0x409997
474a75:	8b 46 08             	mov    0x8(%esi),%eax
474a78:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
474a7c:	8b 00                	mov    (%eax),%eax
474a7e:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
474a82:	83 e8 30             	sub    $0x30,%eax
474a85:	89 44 24 10          	mov    %eax,0x10(%esp)
474a89:	8b 47 04             	mov    0x4(%edi),%eax
474a8c:	8b 70 0c             	mov    0xc(%eax),%esi