476761:	3b 4f 10             	cmp    0x10(%edi),%ecx
476764:	7c 08                	jl     0x47676e
476766:	89 5f 0c             	mov    %ebx,0xc(%edi)
476769:	e9 db 00 00 00       	jmp    0x476849
47676e:	8b 47 08             	mov    0x8(%edi),%eax
476771:	8d 55 f8             	lea    -0x8(%ebp),%edx
476774:	89 5d f8             	mov    %ebx,-0x8(%ebp)
476777:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47677a:	52                   	push   %edx
47677b:	8b 30                	mov    (%eax),%esi
47677d:	51                   	push   %ecx
47677e:	50                   	push   %eax
47677f:	8b 4e 1c             	mov    0x1c(%esi),%ecx
476782:	ff 15 2c 81 4a 00    	call   *0x4a812c
476788:	ff 56 1c             	call   *0x1c(%esi)
47678b:	8b f0                	mov    %eax,%esi
47678d:	85 f6                	test   %esi,%esi
47678f:	75 70                	jne    0x476801
476791:	53                   	push   %ebx
476792:	ff 75 08             	push   0x8(%ebp)
476795:	8b cf                	mov    %edi,%ecx
476797:	ff 75 f8             	push   -0x8(%ebp)
47679a:	e8 14 fe ff ff       	call   0x4765b3
47679f:	8b f0                	mov    %eax,%esi
4767a1:	85 f6                	test   %esi,%esi
4767a3:	75 5c                	jne    0x476801
4767a5:	6a 01                	push   $0x1
4767a7:	ff 75 08             	push   0x8(%ebp)
4767aa:	8b cf                	mov    %edi,%ecx
4767ac:	ff 75 f8             	push   -0x8(%ebp)
4767af:	e8 ff fd ff ff       	call   0x4765b3
4767b4:	8b f0                	mov    %eax,%esi
4767b6:	85 f6                	test   %esi,%esi
4767b8:	75 47                	jne    0x476801
4767ba:	8b 45 f8             	mov    -0x8(%ebp),%eax
4767bd:	8d 55 fc             	lea    -0x4(%ebp),%edx
4767c0:	52                   	push   %edx
4767c1:	50                   	push   %eax
4767c2:	8b 08                	mov    (%eax),%ecx
4767c4:	8b 71 34             	mov    0x34(%ecx),%esi
4767c7:	8b ce                	mov    %esi,%ecx
4767c9:	ff 15 2c 81 4a 00    	call   *0x4a812c
4767cf:	ff d6                	call   *%esi
4767d1:	8b f0                	mov    %eax,%esi
4767d3:	85 f6                	test   %esi,%esi
4767d5:	75 2a                	jne    0x476801
4767d7:	6a 02                	push   $0x2
4767d9:	ff 75 08             	push   0x8(%ebp)
4767dc:	8b cf                	mov    %edi,%ecx
4767de:	ff 75 fc             	push   -0x4(%ebp)
4767e1:	e8 cd fd ff ff       	call   0x4765b3
4767e6:	8b f0                	mov    %eax,%esi
4767e8:	85 f6                	test   %esi,%esi
4767ea:	75 15                	jne    0x476801
4767ec:	6a 03                	push   $0x3
4767ee:	ff 75 08             	push   0x8(%ebp)
4767f1:	8b cf                	mov    %edi,%ecx
4767f3:	ff 75 fc             	push   -0x4(%ebp)
4767f6:	e8 b8 fd ff ff       	call   0x4765b3
4767fb:	8b f0                	mov    %eax,%esi
4767fd:	85 f6                	test   %esi,%esi
4767ff:	74 07                	je     0x476808
476801:	8b cf                	mov    %edi,%ecx
476803:	e8 10 fb ff ff       	call   0x476318
476808:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47680b:	33 c0                	xor    %eax,%eax
47680d:	85 f6                	test   %esi,%esi
47680f:	0f 94 c0             	sete   %al
476812:	89 45 f4             	mov    %eax,-0xc(%ebp)
476815:	85 c9                	test   %ecx,%ecx
476817:	74 13                	je     0x47682c
476819:	8b 01                	mov    (%ecx),%eax
47681b:	51                   	push   %ecx
47681c:	8b 70 08             	mov    0x8(%eax),%esi
47681f:	8b ce                	mov    %esi,%ecx
476821:	ff 15 2c 81 4a 00    	call   *0x4a812c
476827:	ff d6                	call   *%esi
476829:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47682c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47682f:	85 c9                	test   %ecx,%ecx
476831:	74 10                	je     0x476843
476833:	8b 01                	mov    (%ecx),%eax
476835:	51                   	push   %ecx
476836:	8b 70 08             	mov    0x8(%eax),%esi
476839:	8b ce                	mov    %esi,%ecx
47683b:	ff 15 2c 81 4a 00    	call   *0x4a812c
476841:	ff d6                	call   *%esi
476843:	ff 47 0c             	incl   0xc(%edi)
476846:	8b 5d f4             	mov    -0xc(%ebp),%ebx
476849:	5f                   	pop    %edi
47684a:	5e                   	pop    %esi
47684b:	8b c3                	mov    %ebx,%eax
47684d:	5b                   	pop    %ebx
47684e:	c9                   	leave
47684f:	c2 04 00             	ret    $0x4
476852:	8b ff                	mov    %edi,%edi
476854:	55                   	push   %ebp
476855:	8b ec                	mov    %esp,%ebp
476857:	81 ec d8 00 00 00    	sub    $0xd8,%esp
47685d:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
476862:	33 c5                	xor    %ebp,%eax
476864:	89 45 f8             	mov    %eax,-0x8(%ebp)
476867:	53                   	push   %ebx
476868:	56                   	push   %esi
476869:	8b 75 0c             	mov    0xc(%ebp),%esi
47686c:	8b c1                	mov    %ecx,%eax
47686e:	57                   	push   %edi
47686f:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
476875:	33 db                	xor    %ebx,%ebx
476877:	8d 8d 34 ff ff ff    	lea    -0xcc(%ebp),%ecx
47687d:	51                   	push   %ecx
47687e:	8b c8                	mov    %eax,%ecx
476880:	e8 ca fe ff ff       	call   0x47674f
476885:	85 c0                	test   %eax,%eax
476887:	0f 84 eb 00 00 00    	je     0x476978
47688d:	6a 70                	push   $0x70
47688f:	8d 45 80             	lea    -0x80(%ebp),%eax
476892:	6a 00                	push   $0x0
476894:	50                   	push   %eax
476895:	e8 9f a7 01 00       	call   0x491039
47689a:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
4768a1:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4768a7:	83 c4 0c             	add    $0xc,%esp
4768aa:	c7 85 7c ff ff ff 74 	movl   $0x74,-0x84(%ebp)
4768b1:	00 00 00
4768b4:	50                   	push   %eax
4768b5:	6a 00                	push   $0x0
4768b7:	68 3a 04 00 00       	push   $0x43a
4768bc:	56                   	push   %esi
4768bd:	ff 15 f8 7d 4a 00    	call   *0x4a7df8
4768c3:	8b 85 36 ff ff ff    	mov    -0xca(%ebp),%eax
4768c9:	8d 4d 96             	lea    -0x6a(%ebp),%ecx
4768cc:	81 4d 80 00 00 00 a2 	orl    $0xa2000000,-0x80(%ebp)
4768d3:	c1 e0 0a             	shl    $0xa,%eax
4768d6:	0b 85 34 ff ff ff    	or     -0xcc(%ebp),%eax
4768dc:	0f b7 f8             	movzwl %ax,%edi
4768df:	8b c7                	mov    %edi,%eax
4768e1:	89 45 e0             	mov    %eax,-0x20(%ebp)
4768e4:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
4768ea:	89 45 88             	mov    %eax,-0x78(%ebp)
4768ed:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
4768f3:	50                   	push   %eax
4768f4:	6a 20                	push   $0x20
4768f6:	5a                   	pop    %edx
4768f7:	e8 b0 0e fa ff       	call   0x4177ac
4768fc:	6a 00                	push   $0x0
4768fe:	ff 15 38 7d 4a 00    	call   *0x4a7d38
476904:	0f b7 c0             	movzwl %ax,%eax
476907:	85 db                	test   %ebx,%ebx
476909:	75 46                	jne    0x476951
47690b:	66 3b c7             	cmp    %di,%ax
47690e:	74 16                	je     0x476926
476910:	33 c9                	xor    %ecx,%ecx
476912:	66 3b 8d 36 ff ff ff 	cmp    -0xca(%ebp),%cx
476919:	75 36                	jne    0x476951
47691b:	33 c7                	xor    %edi,%eax
47691d:	a9 ff 03 00 00       	test   $0x3ff,%eax
476922:	75 2d                	jne    0x476951
476924:	eb 03                	jmp    0x476929
476926:	33 db                	xor    %ebx,%ebx
476928:	43                   	inc    %ebx
476929:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
47692f:	50                   	push   %eax
476930:	e8 54 00 00 00       	call   0x476989
476935:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
47693c:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
476942:	50                   	push   %eax
476943:	6a 00                	push   $0x0
476945:	68 44 04 00 00       	push   $0x444
47694a:	56                   	push   %esi
47694b:	ff 15 f8 7d 4a 00    	call   *0x4a7df8
476951:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
476958:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
47695e:	50                   	push   %eax
47695f:	6a 10                	push   $0x10
476961:	68 44 04 00 00       	push   $0x444
476966:	56                   	push   %esi
476967:	ff 15 f8 7d 4a 00    	call   *0x4a7df8
47696d:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
476973:	e9 ff fe ff ff       	jmp    0x476877
476978:	8b 4d f8             	mov    -0x8(%ebp),%ecx
47697b:	5f                   	pop    %edi
47697c:	5e                   	pop    %esi
47697d:	33 cd                	xor    %ebp,%ecx
47697f:	5b                   	pop    %ebx
476980:	e8 7b 95 01 00       	call   0x48ff00
476985:	c9                   	leave
476986:	c2 0c 00             	ret    $0xc
476989:	8b ff                	mov    %edi,%edi
47698b:	55                   	push   %ebp
47698c:	8b ec                	mov    %esp,%ebp
47698e:	51                   	push   %ecx
47698f:	51                   	push   %ecx
476990:	56                   	push   %esi
476991:	57                   	push   %edi
476992:	33 f6                	xor    %esi,%esi
476994:	56                   	push   %esi
476995:	ff 15 74 71 4a 00    	call   *0x4a7174
47699b:	8b f8                	mov    %eax,%edi
47699d:	85 ff                	test   %edi,%edi
47699f:	74 61                	je     0x476a02
4769a1:	8b 45 08             	mov    0x8(%ebp),%eax
4769a4:	53                   	push   %ebx
4769a5:	8d 48 1a             	lea    0x1a(%eax),%ecx
4769a8:	0f b6 40 18          	movzbl 0x18(%eax),%eax
4769ac:	51                   	push   %ecx
4769ad:	56                   	push   %esi
4769ae:	56                   	push   %esi
4769af:	56                   	push   %esi
4769b0:	56                   	push   %esi
4769b1:	50                   	push   %eax
4769b2:	56                   	push   %esi
4769b3:	56                   	push   %esi
4769b4:	56                   	push   %esi
4769b5:	56                   	push   %esi
4769b6:	56                   	push   %esi
4769b7:	56                   	push   %esi
4769b8:	56                   	push   %esi
4769b9:	56                   	push   %esi
4769ba:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4769bd:	ff 15 88 70 4a 00    	call   *0x4a7088
4769c3:	8b d8                	mov    %eax,%ebx
4769c5:	85 db                	test   %ebx,%ebx
4769c7:	74 31                	je     0x4769fa
4769c9:	53                   	push   %ebx
4769ca:	57                   	push   %edi
4769cb:	ff 15 68 71 4a 00    	call   *0x4a7168
4769d1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4769d4:	85 c0                	test   %eax,%eax
4769d6:	74 1b                	je     0x4769f3
4769d8:	ff 75 fc             	push   -0x4(%ebp)
4769db:	6a 20                	push   $0x20
4769dd:	57                   	push   %edi
4769de:	ff 15 68 70 4a 00    	call   *0x4a7068
4769e4:	85 c0                	test   %eax,%eax
4769e6:	74 01                	je     0x4769e9
4769e8:	46                   	inc    %esi
4769e9:	ff 75 f8             	push   -0x8(%ebp)
4769ec:	57                   	push   %edi
4769ed:	ff 15 68 71 4a 00    	call   *0x4a7168
4769f3:	53                   	push   %ebx
4769f4:	ff 15 60 71 4a 00    	call   *0x4a7160
4769fa:	57                   	push   %edi
4769fb:	ff 15 80 71 4a 00    	call   *0x4a7180
476a01:	5b                   	pop    %ebx
476a02:	5f                   	pop    %edi
476a03:	8b c6                	mov    %esi,%eax
476a05:	5e                   	pop    %esi
476a06:	c9                   	leave
476a07:	c2 04 00             	ret    $0x4
476a0a:	6a 04                	push   $0x4
476a0c:	b8 96 61 49 00       	mov    $0x496196,%eax
476a11:	e8 bd 9a 01 00       	call   0x4904d3
476a16:	8b d9                	mov    %ecx,%ebx
476a18:	89 5d f0             	mov    %ebx,-0x10(%ebp)
476a1b:	c7 03 1c 36 40 00    	movl   $0x40361c,(%ebx)
476a21:	e8 3d a9 fa ff       	call   0x421363
476a26:	83 63 0c 00          	andl   $0x0,0xc(%ebx)
476a2a:	89 43 08             	mov    %eax,0x8(%ebx)
476a2d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
476a31:	8b 7d 08             	mov    0x8(%ebp),%edi
476a34:	c7 03 70 5f 40 00    	movl   $0x405f70,(%ebx)
476a3a:	8b 07                	mov    (%edi),%eax
476a3c:	8b 70 0c             	mov    0xc(%eax),%esi
476a3f:	8b ce                	mov    %esi,%ecx
476a41:	ff 15 2c 81 4a 00    	call   *0x4a812c
476a47:	8b cf                	mov    %edi,%ecx
476a49:	ff d6                	call   *%esi
476a4b:	89 43 10             	mov    %eax,0x10(%ebx)
476a4e:	8b c3                	mov    %ebx,%eax
476a50:	e8 4c 9a 01 00       	call   0x4904a1
476a55:	c2 04 00             	ret    $0x4
476a58:	8b ff                	mov    %edi,%edi
476a5a:	55                   	push   %ebp
476a5b:	8b ec                	mov    %esp,%ebp
476a5d:	83 ec 0c             	sub    $0xc,%esp
476a60:	53                   	push   %ebx
476a61:	8b d9                	mov    %ecx,%ebx
476a63:	56                   	push   %esi
476a64:	57                   	push   %edi
476a65:	ff 75 08             	push   0x8(%ebp)
476a68:	8b 7b 10             	mov    0x10(%ebx),%edi
476a6b:	8b 07                	mov    (%edi),%eax
476a6d:	8b 70 04             	mov    0x4(%eax),%esi
476a70:	8b ce                	mov    %esi,%ecx
476a72:	ff 15 2c 81 4a 00    	call   *0x4a812c
476a78:	8b cf                	mov    %edi,%ecx
476a7a:	ff d6                	call   *%esi
476a7c:	88 45 ff             	mov    %al,-0x1(%ebp)
476a7f:	84 c0                	test   %al,%al
476a81:	74 24                	je     0x476aa7
476a83:	8b 0b                	mov    (%ebx),%ecx
476a85:	8d 45 f4             	lea    -0xc(%ebp),%eax
476a88:	6a 00                	push   $0x0
476a8a:	50                   	push   %eax
476a8b:	c7 45 f4 0a 00 00 00 	movl   $0xa,-0xc(%ebp)
476a92:	8b 71 08             	mov    0x8(%ecx),%esi
476a95:	8b ce                	mov    %esi,%ecx
476a97:	89 5d f8             	mov    %ebx,-0x8(%ebp)
476a9a:	ff 15 2c 81 4a 00    	call   *0x4a812c
476aa0:	8b cb                	mov    %ebx,%ecx
476aa2:	ff d6                	call   *%esi
476aa4:	8a 45 ff             	mov    -0x1(%ebp),%al
476aa7:	5f                   	pop    %edi
476aa8:	5e                   	pop    %esi
476aa9:	5b                   	pop    %ebx
476aaa:	c9                   	leave
476aab:	c2 04 00             	ret    $0x4
476aae:	8b ff                	mov    %edi,%edi
476ab0:	55                   	push   %ebp
476ab1:	8b ec                	mov    %esp,%ebp
476ab3:	56                   	push   %esi
476ab4:	57                   	push   %edi
476ab5:	8b 79 10             	mov    0x10(%ecx),%edi
476ab8:	ff 75 08             	push   0x8(%ebp)
476abb:	8b 07                	mov    (%edi),%eax
476abd:	8b 70 08             	mov    0x8(%eax),%esi
476ac0:	8b ce                	mov    %esi,%ecx
476ac2:	ff 15 2c 81 4a 00    	call   *0x4a812c
476ac8:	8b cf                	mov    %edi,%ecx
476aca:	ff d6                	call   *%esi
476acc:	5f                   	pop    %edi
476acd:	5e                   	pop    %esi
476ace:	5d                   	pop    %ebp
476acf:	c2 04 00             	ret    $0x4
476ad2:	8b ff                	mov    %edi,%edi
476ad4:	c3                   	ret
476ad5:	8b ff                	mov    %edi,%edi
476ad7:	55                   	push   %ebp
476ad8:	8b ec                	mov    %esp,%ebp
476ada:	83 e4 f8             	and    $0xfffffff8,%esp
476add:	81 ec 20 02 00 00    	sub    $0x220,%esp
476ae3:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
476ae8:	33 c4                	xor    %esp,%eax
476aea:	89 84 24 1c 02 00 00 	mov    %eax,0x21c(%esp)
476af1:	68 08 02 00 00       	push   $0x208
476af6:	8d 44 24 14          	lea    0x14(%esp),%eax
476afa:	6a 00                	push   $0x0
476afc:	50                   	push   %eax
476afd:	e8 37 a5 01 00       	call   0x491039
476b02:	83 c4 0c             	add    $0xc,%esp
476b05:	8d 4c 24 10          	lea    0x10(%esp),%ecx
476b09:	e8 86 19 00 00       	call   0x478494
476b0e:	83 3d 10 01 4a 00 04 	cmpl   $0x4,0x4a0110
476b15:	76 5a                	jbe    0x476b71
476b17:	68 00 40 00 00       	push   $0x4000
476b1c:	6a 00                	push   $0x0
476b1e:	e8 53 fc f9 ff       	call   0x416776
476b23:	84 c0                	test   %al,%al
476b25:	74 4a                	je     0x476b71