4776f0:	8b c8                	mov    %eax,%ecx
4776f2:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4776f5:	33 c0                	xor    %eax,%eax
4776f7:	3b c8                	cmp    %eax,%ecx
4776f9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4776fc:	74 0f                	je     0x47770d
4776fe:	50                   	push   %eax
4776ff:	ff 76 2c             	push   0x2c(%esi)
477702:	ff 76 24             	push   0x24(%esi)
477705:	ff 76 1c             	push   0x1c(%esi)
477708:	e8 8e ff ff ff       	call   0x47769b
47770d:	8b 4e 28             	mov    0x28(%esi),%ecx
477710:	89 48 28             	mov    %ecx,0x28(%eax)
477713:	8b 4d f4             	mov    -0xc(%ebp),%ecx
477716:	5e                   	pop    %esi
477717:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
47771e:	c9                   	leave
47771f:	c3                   	ret
477720:	b8 78 f0 48 00       	mov    $0x48f078,%eax
477725:	c3                   	ret
477726:	8b 44 24 04          	mov    0x4(%esp),%eax
47772a:	33 d2                	xor    %edx,%edx
47772c:	3b c2                	cmp    %edx,%eax
47772e:	75 07                	jne    0x477737
477730:	8b 41 40             	mov    0x40(%ecx),%eax
477733:	3b c2                	cmp    %edx,%eax
477735:	74 12                	je     0x477749
477737:	52                   	push   %edx
477738:	52                   	push   %edx
477739:	52                   	push   %edx
47773a:	52                   	push   %edx
47773b:	6a 03                	push   $0x3
47773d:	50                   	push   %eax
47773e:	50                   	push   %eax
47773f:	50                   	push   %eax
477740:	83 c1 24             	add    $0x24,%ecx
477743:	51                   	push   %ecx
477744:	e8 c5 2d 00 00       	call   0x47a50e
477749:	c2 04 00             	ret    $0x4
47774c:	8b 49 34             	mov    0x34(%ecx),%ecx
47774f:	e8 2a 92 fc ff       	call   0x44097e
477754:	85 c0                	test   %eax,%eax
477756:	75 05                	jne    0x47775d
477758:	e9 ba dc fb ff       	jmp    0x435417
47775d:	c3                   	ret
47775e:	56                   	push   %esi
47775f:	8b f1                	mov    %ecx,%esi
477761:	80 7e 44 00          	cmpb   $0x0,0x44(%esi)
477765:	75 0c                	jne    0x477773
477767:	8b 06                	mov    (%esi),%eax
477769:	ff 50 60             	call   *0x60(%eax)
47776c:	88 46 45             	mov    %al,0x45(%esi)
47776f:	c6 46 44 01          	movb   $0x1,0x44(%esi)
477773:	0f b6 46 45          	movzbl 0x45(%esi),%eax
477777:	5e                   	pop    %esi
477778:	c3                   	ret
477779:	33 c0                	xor    %eax,%eax
47777b:	40                   	inc    %eax
47777c:	c3                   	ret
47777d:	33 c0                	xor    %eax,%eax
47777f:	c2 08 00             	ret    $0x8
477782:	55                   	push   %ebp
477783:	8b ec                	mov    %esp,%ebp
477785:	51                   	push   %ecx
477786:	53                   	push   %ebx
477787:	33 db                	xor    %ebx,%ebx
477789:	39 5d 08             	cmp    %ebx,0x8(%ebp)
47778c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
47778f:	74 45                	je     0x4777d6
477791:	8b 01                	mov    (%ecx),%eax
477793:	8d 55 fc             	lea    -0x4(%ebp),%edx
477796:	52                   	push   %edx
477797:	53                   	push   %ebx
477798:	ff 50 64             	call   *0x64(%eax)
47779b:	85 c0                	test   %eax,%eax
47779d:	74 37                	je     0x4777d6
47779f:	56                   	push   %esi
4777a0:	8b 35 fc 04 4b 00    	mov    0x4b04fc,%esi
4777a6:	57                   	push   %edi
4777a7:	ff 75 fc             	push   -0x4(%ebp)
4777aa:	ff d6                	call   *%esi
4777ac:	ff 75 08             	push   0x8(%ebp)
4777af:	8b f8                	mov    %eax,%edi
4777b1:	ff d6                	call   *%esi
4777b3:	3b f8                	cmp    %eax,%edi
4777b5:	75 14                	jne    0x4777cb
4777b7:	57                   	push   %edi
4777b8:	ff 75 08             	push   0x8(%ebp)
4777bb:	ff 75 fc             	push   -0x4(%ebp)
4777be:	e8 dd 11 fa ff       	call   0x4189a0
4777c3:	83 c4 0c             	add    $0xc,%esp
4777c6:	85 c0                	test   %eax,%eax
4777c8:	75 01                	jne    0x4777cb
4777ca:	43                   	inc    %ebx
4777cb:	ff 75 fc             	push   -0x4(%ebp)
4777ce:	ff 15 08 05 4b 00    	call   *0x4b0508
4777d4:	5f                   	pop    %edi
4777d5:	5e                   	pop    %esi
4777d6:	8b c3                	mov    %ebx,%eax
4777d8:	5b                   	pop    %ebx
4777d9:	c9                   	leave
4777da:	c2 04 00             	ret    $0x4
4777dd:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4777e1:	83 c1 b8             	add    $0xffffffb8,%ecx
4777e4:	e8 56 c7 ff ff       	call   0x473f3f
4777e9:	c2 04 00             	ret    $0x4
4777ec:	ff 74 24 0c          	push   0xc(%esp)
4777f0:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4777f4:	ff 74 24 0c          	push   0xc(%esp)
4777f8:	83 c1 b8             	add    $0xffffffb8,%ecx
4777fb:	e8 fc c8 ff ff       	call   0x4740fc
477800:	c2 0c 00             	ret    $0xc
477803:	ff 74 24 10          	push   0x10(%esp)
477807:	8b 44 24 08          	mov    0x8(%esp),%eax
47780b:	8b 08                	mov    (%eax),%ecx
47780d:	6a 00                	push   $0x0
47780f:	ff 74 24 14          	push   0x14(%esp)
477813:	6a 00                	push   $0x0
477815:	ff 74 24 18          	push   0x18(%esp)
477819:	50                   	push   %eax
47781a:	ff 51 1c             	call   *0x1c(%ecx)
47781d:	c2 10 00             	ret    $0x10
477820:	b8 62 3e 48 00       	mov    $0x483e62,%eax
477825:	e8 52 04 fa ff       	call   0x417c7c
47782a:	83 ec 0c             	sub    $0xc,%esp
47782d:	53                   	push   %ebx
47782e:	56                   	push   %esi
47782f:	33 f6                	xor    %esi,%esi
477831:	39 75 0c             	cmp    %esi,0xc(%ebp)
477834:	57                   	push   %edi
477835:	89 65 f0             	mov    %esp,-0x10(%ebp)
477838:	c7 45 ec ff ff 00 80 	movl   $0x8000ffff,-0x14(%ebp)
47783f:	89 75 fc             	mov    %esi,-0x4(%ebp)
477842:	74 07                	je     0x47784b
477844:	e8 1d 84 fe ff       	call   0x45fc66
477849:	eb 05                	jmp    0x477850
47784b:	e8 8a 84 fe ff       	call   0x45fcda
477850:	89 75 ec             	mov    %esi,-0x14(%ebp)
477853:	8b 4d f4             	mov    -0xc(%ebp),%ecx
477856:	8b 45 ec             	mov    -0x14(%ebp),%eax
477859:	5f                   	pop    %edi
47785a:	5e                   	pop    %esi
47785b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
477862:	5b                   	pop    %ebx
477863:	c9                   	leave
477864:	c2 08 00             	ret    $0x8
477867:	8b 4d e8             	mov    -0x18(%ebp),%ecx
47786a:	e8 aa 86 fc ff       	call   0x43ff19
47786f:	b8 53 78 47 00       	mov    $0x477853,%eax
477874:	c3                   	ret
477875:	55                   	push   %ebp
477876:	8b ec                	mov    %esp,%ebp
477878:	56                   	push   %esi
477879:	8b 75 08             	mov    0x8(%ebp),%esi
47787c:	83 65 08 00          	andl   $0x0,0x8(%ebp)
477880:	83 c6 b8             	add    $0xffffffb8,%esi
477883:	57                   	push   %edi
477884:	8b ce                	mov    %esi,%ecx
477886:	e8 d3 fe ff ff       	call   0x47775e
47788b:	8b 7d 0c             	mov    0xc(%ebp),%edi
47788e:	8d 4d 08             	lea    0x8(%ebp),%ecx
477891:	51                   	push   %ecx
477892:	89 47 08             	mov    %eax,0x8(%edi)
477895:	8b 06                	mov    (%esi),%eax
477897:	6a 00                	push   $0x0
477899:	8b ce                	mov    %esi,%ecx
47789b:	ff 50 64             	call   *0x64(%eax)
47789e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4778a2:	89 47 04             	mov    %eax,0x4(%edi)
4778a5:	5f                   	pop    %edi
4778a6:	5e                   	pop    %esi
4778a7:	74 09                	je     0x4778b2
4778a9:	ff 75 08             	push   0x8(%ebp)
4778ac:	ff 15 08 05 4b 00    	call   *0x4b0508
4778b2:	33 c0                	xor    %eax,%eax
4778b4:	5d                   	pop    %ebp
4778b5:	c2 08 00             	ret    $0x8
4778b8:	56                   	push   %esi
4778b9:	8b 74 24 08          	mov    0x8(%esp),%esi
4778bd:	57                   	push   %edi
4778be:	8b 7c 24 14          	mov    0x14(%esp),%edi
4778c2:	83 27 00             	andl   $0x0,(%edi)
4778c5:	83 c6 b8             	add    $0xffffffb8,%esi
4778c8:	8b ce                	mov    %esi,%ecx
4778ca:	e8 8f fe ff ff       	call   0x47775e
4778cf:	85 c0                	test   %eax,%eax
4778d1:	74 1c                	je     0x4778ef
4778d3:	8b 06                	mov    (%esi),%eax
4778d5:	57                   	push   %edi
4778d6:	ff 74 24 14          	push   0x14(%esp)
4778da:	8b ce                	mov    %esi,%ecx
4778dc:	ff 50 64             	call   *0x64(%eax)
4778df:	f7 d8                	neg    %eax
4778e1:	1b c0                	sbb    %eax,%eax
4778e3:	25 fb bf ff 7f       	and    $0x7fffbffb,%eax
4778e8:	05 05 40 00 80       	add    $0x80004005,%eax
4778ed:	eb 05                	jmp    0x4778f4
4778ef:	b8 12 01 04 80       	mov    $0x80040112,%eax
4778f4:	5f                   	pop    %edi
4778f5:	5e                   	pop    %esi
4778f6:	c2 0c 00             	ret    $0xc
4778f9:	b8 6c 3e 48 00       	mov    $0x483e6c,%eax
4778fe:	e8 79 03 fa ff       	call   0x417c7c
477903:	51                   	push   %ecx
477904:	51                   	push   %ecx
477905:	53                   	push   %ebx
477906:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
477909:	56                   	push   %esi
47790a:	8b 75 08             	mov    0x8(%ebp),%esi
47790d:	57                   	push   %edi
47790e:	33 ff                	xor    %edi,%edi
477910:	83 c6 b8             	add    $0xffffffb8,%esi
477913:	3b df                	cmp    %edi,%ebx
477915:	89 65 f0             	mov    %esp,-0x10(%ebp)
477918:	75 0a                	jne    0x477924
47791a:	b8 03 40 00 80       	mov    $0x80004003,%eax
47791f:	e9 e8 00 00 00       	jmp    0x477a0c
477924:	39 7d 18             	cmp    %edi,0x18(%ebp)
477927:	89 3b                	mov    %edi,(%ebx)
477929:	8b ce                	mov    %esi,%ecx
47792b:	74 2e                	je     0x47795b
47792d:	ff 75 18             	push   0x18(%ebp)
477930:	8b 06                	mov    (%esi),%eax
477932:	ff 50 68             	call   *0x68(%eax)
477935:	85 c0                	test   %eax,%eax
477937:	74 29                	je     0x477962
477939:	39 7d 0c             	cmp    %edi,0xc(%ebp)
47793c:	74 2e                	je     0x47796c
47793e:	68 1c 5d 49 00       	push   $0x495d1c
477943:	ff 75 14             	push   0x14(%ebp)
477946:	e8 6c fc f8 ff       	call   0x4075b7
47794b:	85 c0                	test   %eax,%eax
47794d:	59                   	pop    %ecx
47794e:	59                   	pop    %ecx
47794f:	75 1b                	jne    0x47796c
477951:	b8 10 01 04 80       	mov    $0x80040110,%eax
477956:	e9 b1 00 00 00       	jmp    0x477a0c
47795b:	e8 fe fd ff ff       	call   0x47775e
477960:	eb d3                	jmp    0x477935
477962:	b8 12 01 04 80       	mov    $0x80040112,%eax
477967:	e9 a0 00 00 00       	jmp    0x477a0c
47796c:	8b 06                	mov    (%esi),%eax
47796e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
477972:	89 7d 08             	mov    %edi,0x8(%ebp)
477975:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
47797a:	8b ce                	mov    %esi,%ecx
47797c:	89 7d 18             	mov    %edi,0x18(%ebp)
47797f:	ff 50 5c             	call   *0x5c(%eax)
477982:	8b f0                	mov    %eax,%esi
477984:	85 f6                	test   %esi,%esi
477986:	89 75 08             	mov    %esi,0x8(%ebp)
477989:	74 3f                	je     0x4779ca
47798b:	8b 45 0c             	mov    0xc(%ebp),%eax
47798e:	85 c0                	test   %eax,%eax
477990:	c7 45 18 10 01 04 80 	movl   $0x80040110,0x18(%ebp)
477997:	74 06                	je     0x47799f
477999:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
47799d:	74 2b                	je     0x4779ca
47799f:	89 46 08             	mov    %eax,0x8(%esi)
4779a2:	8b 06                	mov    (%esi),%eax
4779a4:	8b ce                	mov    %esi,%ecx
4779a6:	89 7d 18             	mov    %edi,0x18(%ebp)
4779a9:	ff 50 40             	call   *0x40(%eax)
4779ac:	85 c0                	test   %eax,%eax
4779ae:	74 1a                	je     0x4779ca
4779b0:	83 65 18 00          	andl   $0x0,0x18(%ebp)
4779b4:	eb 14                	jmp    0x4779ca
4779b6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4779b9:	e8 5b 85 fc ff       	call   0x43ff19
4779be:	b8 c4 79 47 00       	mov    $0x4779c4,%eax
4779c3:	c3                   	ret
4779c4:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
4779c7:	8b 75 08             	mov    0x8(%ebp),%esi
4779ca:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4779ce:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4779d2:	75 28                	jne    0x4779fc
4779d4:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4779d8:	74 07                	je     0x4779e1
4779da:	83 c6 0c             	add    $0xc,%esi
4779dd:	89 33                	mov    %esi,(%ebx)
4779df:	eb 28                	jmp    0x477a09
4779e1:	53                   	push   %ebx
4779e2:	ff 75 14             	push   0x14(%ebp)
4779e5:	8b ce                	mov    %esi,%ecx
4779e7:	e8 10 c7 ff ff       	call   0x4740fc
4779ec:	85 c0                	test   %eax,%eax
4779ee:	89 45 18             	mov    %eax,0x18(%ebp)
4779f1:	75 09                	jne    0x4779fc
4779f3:	8b ce                	mov    %esi,%ecx
4779f5:	e8 45 c5 ff ff       	call   0x473f3f
4779fa:	eb 0d                	jmp    0x477a09
4779fc:	85 f6                	test   %esi,%esi
4779fe:	74 09                	je     0x477a09
477a00:	8b 06                	mov    (%esi),%eax
477a02:	6a 01                	push   $0x1
477a04:	8b ce                	mov    %esi,%ecx
477a06:	ff 50 04             	call   *0x4(%eax)
477a09:	8b 45 18             	mov    0x18(%ebp),%eax
477a0c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
477a0f:	5f                   	pop    %edi
477a10:	5e                   	pop    %esi
477a11:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
477a18:	5b                   	pop    %ebx
477a19:	c9                   	leave
477a1a:	c2 18 00             	ret    $0x18
477a1d:	8b 44 24 04          	mov    0x4(%esp),%eax
477a21:	83 c0 bc             	add    $0xffffffbc,%eax
477a24:	50                   	push   %eax
477a25:	ff 15 a4 02 4b 00    	call   *0x4b02a4
477a2b:	c2 04 00             	ret    $0x4
477a2e:	56                   	push   %esi
477a2f:	e8 cd 5e ff ff       	call   0x46d901
477a34:	6a 00                	push   $0x0
477a36:	8b f0                	mov    %eax,%esi
477a38:	e8 69 6b ff ff       	call   0x46e5a6
477a3d:	8b 76 24             	mov    0x24(%esi),%esi
477a40:	eb 12                	jmp    0x477a54
477a42:	ff 74 24 08          	push   0x8(%esp)
477a46:	8b 06                	mov    (%esi),%eax
477a48:	8b ce                	mov    %esi,%ecx
477a4a:	ff 50 58             	call   *0x58(%eax)
477a4d:	85 c0                	test   %eax,%eax
477a4f:	74 15                	je     0x477a66
477a51:	8b 76 1c             	mov    0x1c(%esi),%esi
477a54:	85 f6                	test   %esi,%esi
477a56:	75 ea                	jne    0x477a42
477a58:	46                   	inc    %esi
477a59:	6a 00                	push   $0x0
477a5b:	e8 a9 6b ff ff       	call   0x46e609
477a60:	8b c6                	mov    %esi,%eax
477a62:	5e                   	pop    %esi
477a63:	c2 04 00             	ret    $0x4
477a66:	33 f6                	xor    %esi,%esi
477a68:	eb ef                	jmp    0x477a59
477a6a:	b8 93 3e 48 00       	mov    $0x483e93,%eax
477a6f:	e8 08 02 fa ff       	call   0x417c7c
477a74:	81 ec 1c 04 00 00    	sub    $0x41c,%esp
477a7a:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
477a7f:	53                   	push   %ebx
477a80:	56                   	push   %esi
477a81:	57                   	push   %edi
477a82:	8b f1                	mov    %ecx,%esi
477a84:	33 ff                	xor    %edi,%edi
477a86:	39 7e 40             	cmp    %edi,0x40(%esi)
477a89:	89 45 f0             	mov    %eax,-0x10(%ebp)
477a8c:	75 07                	jne    0x477a95
477a8e:	33 c0                	xor    %eax,%eax
477a90:	e9 79 01 00 00       	jmp    0x477c0e
477a95:	39 7d 08             	cmp    %edi,0x8(%ebp)
477a98:	8b 46 40             	mov    0x40(%esi),%eax