4796ab:	50                   	push   %eax
4796ac:	b9 03 00 00 00       	mov    $0x3,%ecx
4796b1:	8b d7                	mov    %edi,%edx
4796b3:	8b c3                	mov    %ebx,%eax
4796b5:	e8 4a 03 00 00       	call   0x479a04
4796ba:	85 ff                	test   %edi,%edi
4796bc:	0f 85 d6 01 00 00    	jne    0x479898
4796c2:	80 7d df 01          	cmpb   $0x1,-0x21(%ebp)
4796c6:	74 06                	je     0x4796ce
4796c8:	80 7d df 02          	cmpb   $0x2,-0x21(%ebp)
4796cc:	75 34                	jne    0x479702
4796ce:	6a 01                	push   $0x1
4796d0:	8a 4d df             	mov    -0x21(%ebp),%cl
4796d3:	b2 01                	mov    $0x1,%dl
4796d5:	8b c3                	mov    %ebx,%eax
4796d7:	e8 e4 02 00 00       	call   0x4799c0
4796dc:	8b f8                	mov    %eax,%edi
4796de:	8a 4e 06             	mov    0x6(%esi),%cl
4796e1:	8b 55 f4             	mov    -0xc(%ebp),%edx
4796e4:	8b c3                	mov    %ebx,%eax
4796e6:	e8 85 fb ff ff       	call   0x479270
4796eb:	89 45 ec             	mov    %eax,-0x14(%ebp)
4796ee:	8b 45 ec             	mov    -0x14(%ebp),%eax
4796f1:	50                   	push   %eax
4796f2:	33 c9                	xor    %ecx,%ecx
4796f4:	8b d7                	mov    %edi,%edx
4796f6:	8b c3                	mov    %ebx,%eax
4796f8:	e8 07 03 00 00       	call   0x479a04
4796fd:	e9 96 01 00 00       	jmp    0x479898
479702:	6a 02                	push   $0x2
479704:	8a 4d df             	mov    -0x21(%ebp),%cl
479707:	b2 02                	mov    $0x2,%dl
479709:	8b c3                	mov    %ebx,%eax
47970b:	e8 b0 02 00 00       	call   0x4799c0
479710:	8b f8                	mov    %eax,%edi
479712:	8a 4e 06             	mov    0x6(%esi),%cl
479715:	8b 55 f4             	mov    -0xc(%ebp),%edx
479718:	8b c3                	mov    %ebx,%eax
47971a:	e8 51 fb ff ff       	call   0x479270
47971f:	89 45 ec             	mov    %eax,-0x14(%ebp)
479722:	8a 4e 06             	mov    0x6(%esi),%cl
479725:	8b 55 f0             	mov    -0x10(%ebp),%edx
479728:	8b c3                	mov    %ebx,%eax
47972a:	e8 41 fb ff ff       	call   0x479270
47972f:	8b f0                	mov    %eax,%esi
479731:	8b 45 ec             	mov    -0x14(%ebp),%eax
479734:	50                   	push   %eax
479735:	33 c9                	xor    %ecx,%ecx
479737:	8b d7                	mov    %edi,%edx
479739:	8b c3                	mov    %ebx,%eax
47973b:	e8 c4 02 00 00       	call   0x479a04
479740:	56                   	push   %esi
479741:	b9 01 00 00 00       	mov    $0x1,%ecx
479746:	8b d7                	mov    %edi,%edx
479748:	8b c3                	mov    %ebx,%eax
47974a:	e8 b5 02 00 00       	call   0x479a04
47974f:	e9 44 01 00 00       	jmp    0x479898
479754:	6a 02                	push   $0x2
479756:	b1 23                	mov    $0x23,%cl
479758:	b2 0a                	mov    $0xa,%dl
47975a:	8b c3                	mov    %ebx,%eax
47975c:	e8 5f 02 00 00       	call   0x4799c0
479761:	8b f8                	mov    %eax,%edi
479763:	8d 45 c0             	lea    -0x40(%ebp),%eax
479766:	8d 56 08             	lea    0x8(%esi),%edx
479769:	e8 7e 9d f9 ff       	call   0x4134ec
47976e:	8b 45 c0             	mov    -0x40(%ebp),%eax
479771:	e8 ae ac f8 ff       	call   0x404424
479776:	40                   	inc    %eax
479777:	50                   	push   %eax
479778:	8d 45 bc             	lea    -0x44(%ebp),%eax
47977b:	8d 56 08             	lea    0x8(%esi),%edx
47977e:	e8 69 9d f9 ff       	call   0x4134ec
479783:	8b 45 bc             	mov    -0x44(%ebp),%eax
479786:	e8 99 ae f8 ff       	call   0x404624
47978b:	8b d0                	mov    %eax,%edx
47978d:	8b c3                	mov    %ebx,%eax
47978f:	59                   	pop    %ecx
479790:	e8 1b f9 ff ff       	call   0x4790b0
479795:	50                   	push   %eax
479796:	33 c9                	xor    %ecx,%ecx
479798:	8b d7                	mov    %edi,%edx
47979a:	8b c3                	mov    %ebx,%eax
47979c:	e8 63 02 00 00       	call   0x479a04
4797a1:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
4797a5:	0f 84 dd 00 00 00    	je     0x479888
4797ab:	6a 02                	push   $0x2
4797ad:	b1 24                	mov    $0x24,%cl
4797af:	b2 0b                	mov    $0xb,%dl
4797b1:	8b c3                	mov    %ebx,%eax
4797b3:	e8 08 02 00 00       	call   0x4799c0
4797b8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4797bb:	8b 45 e8             	mov    -0x18(%ebp),%eax
4797be:	50                   	push   %eax
4797bf:	b9 01 00 00 00       	mov    $0x1,%ecx
4797c4:	8b d7                	mov    %edi,%edx
4797c6:	8b c3                	mov    %ebx,%eax
4797c8:	e8 37 02 00 00       	call   0x479a04
4797cd:	8b 45 e8             	mov    -0x18(%ebp),%eax
4797d0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4797d3:	8b 46 28             	mov    0x28(%esi),%eax
4797d6:	8b 40 08             	mov    0x8(%eax),%eax
4797d9:	48                   	dec    %eax
4797da:	85 c0                	test   %eax,%eax
4797dc:	0f 8c b6 00 00 00    	jl     0x479898
4797e2:	40                   	inc    %eax
4797e3:	89 45 c8             	mov    %eax,-0x38(%ebp)
4797e6:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
4797ed:	8b 55 e0             	mov    -0x20(%ebp),%edx
4797f0:	8b 46 28             	mov    0x28(%esi),%eax
4797f3:	e8 f8 25 fa ff       	call   0x41bdf0
4797f8:	8b d0                	mov    %eax,%edx
4797fa:	8a 4e 06             	mov    0x6(%esi),%cl
4797fd:	8b c3                	mov    %ebx,%eax
4797ff:	e8 6c fa ff ff       	call   0x479270
479804:	89 45 ec             	mov    %eax,-0x14(%ebp)
479807:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
47980b:	75 23                	jne    0x479830
47980d:	8b 45 ec             	mov    -0x14(%ebp),%eax
479810:	50                   	push   %eax
479811:	33 c9                	xor    %ecx,%ecx
479813:	8b 55 e4             	mov    -0x1c(%ebp),%edx
479816:	8b c3                	mov    %ebx,%eax
479818:	e8 e7 01 00 00       	call   0x479a04
47981d:	6a 00                	push   $0x0
47981f:	b9 01 00 00 00       	mov    $0x1,%ecx
479824:	8b 55 e4             	mov    -0x1c(%ebp),%edx
479827:	8b c3                	mov    %ebx,%eax
479829:	e8 d6 01 00 00       	call   0x479a04
47982e:	eb 4a                	jmp    0x47987a
479830:	6a 02                	push   $0x2
479832:	b1 24                	mov    $0x24,%cl
479834:	b2 0b                	mov    $0xb,%dl
479836:	8b c3                	mov    %ebx,%eax
479838:	e8 83 01 00 00       	call   0x4799c0
47983d:	89 45 e8             	mov    %eax,-0x18(%ebp)
479840:	8b 45 ec             	mov    -0x14(%ebp),%eax
479843:	50                   	push   %eax
479844:	33 c9                	xor    %ecx,%ecx
479846:	8b 55 e8             	mov    -0x18(%ebp),%edx
479849:	8b c3                	mov    %ebx,%eax
47984b:	e8 b4 01 00 00       	call   0x479a04
479850:	6a 00                	push   $0x0
479852:	b9 01 00 00 00       	mov    $0x1,%ecx
479857:	8b 55 e8             	mov    -0x18(%ebp),%edx
47985a:	8b c3                	mov    %ebx,%eax
47985c:	e8 a3 01 00 00       	call   0x479a04
479861:	8b 45 e8             	mov    -0x18(%ebp),%eax
479864:	50                   	push   %eax
479865:	b9 01 00 00 00       	mov    $0x1,%ecx
47986a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
47986d:	8b c3                	mov    %ebx,%eax
47986f:	e8 90 01 00 00       	call   0x479a04
479874:	8b 45 e8             	mov    -0x18(%ebp),%eax
479877:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47987a:	ff 45 e0             	incl   -0x20(%ebp)
47987d:	ff 4d c8             	decl   -0x38(%ebp)
479880:	0f 85 67 ff ff ff    	jne    0x4797ed
479886:	eb 10                	jmp    0x479898
479888:	6a 00                	push   $0x0
47988a:	b9 01 00 00 00       	mov    $0x1,%ecx
47988f:	8b d7                	mov    %edi,%edx
479891:	8b c3                	mov    %ebx,%eax
479893:	e8 6c 01 00 00       	call   0x479a04
479898:	33 c0                	xor    %eax,%eax
47989a:	5a                   	pop    %edx
47989b:	59                   	pop    %ecx
47989c:	59                   	pop    %ecx
47989d:	64 89 10             	mov    %edx,%fs:(%eax)
4798a0:	68 c2 98 47 00       	push   $0x4798c2
4798a5:	8d 45 bc             	lea    -0x44(%ebp),%eax
4798a8:	ba 03 00 00 00       	mov    $0x3,%edx
4798ad:	e8 d6 a8 f8 ff       	call   0x404188
4798b2:	8d 45 cc             	lea    -0x34(%ebp),%eax
4798b5:	e8 aa a8 f8 ff       	call   0x404164
4798ba:	c3                   	ret
4798bb:	e9 a8 a2 f8 ff       	jmp    0x403b68
4798c0:	eb e3                	jmp    0x4798a5
4798c2:	8b c7                	mov    %edi,%eax
4798c4:	5f                   	pop    %edi
4798c5:	5e                   	pop    %esi
4798c6:	5b                   	pop    %ebx
4798c7:	8b e5                	mov    %ebp,%esp
4798c9:	5d                   	pop    %ebp
4798ca:	c3                   	ret
4798cb:	90                   	nop
4798cc:	55                   	push   %ebp
4798cd:	8b ec                	mov    %esp,%ebp
4798cf:	81 c4 f8 fe ff ff    	add    $0xfffffef8,%esp
4798d5:	53                   	push   %ebx
4798d6:	56                   	push   %esi
4798d7:	33 db                	xor    %ebx,%ebx
4798d9:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
4798df:	8b f1                	mov    %ecx,%esi
4798e1:	89 55 fc             	mov    %edx,-0x4(%ebp)
4798e4:	8b d8                	mov    %eax,%ebx
4798e6:	33 c0                	xor    %eax,%eax
4798e8:	55                   	push   %ebp
4798e9:	68 b0 99 47 00       	push   $0x4799b0
4798ee:	64 ff 30             	push   %fs:(%eax)
4798f1:	64 89 20             	mov    %esp,%fs:(%eax)
4798f4:	f6 43 2f 10          	testb  $0x10,0x2f(%ebx)
4798f8:	74 22                	je     0x47991c
4798fa:	6a 01                	push   $0x1
4798fc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4798ff:	8b 40 38             	mov    0x38(%eax),%eax
479902:	e8 1d ad f8 ff       	call   0x404624
479907:	8b d0                	mov    %eax,%edx
479909:	8d 8d fc fe ff ff    	lea    -0x104(%ebp),%ecx
47990f:	8b 43 04             	mov    0x4(%ebx),%eax
479912:	8b 30                	mov    (%eax),%esi
479914:	ff 96 54 02 00 00    	call   *0x254(%esi)
47991a:	eb 2e                	jmp    0x47994a
47991c:	6a 01                	push   $0x1
47991e:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
479924:	8d 56 08             	lea    0x8(%esi),%edx
479927:	e8 c0 9b f9 ff       	call   0x4134ec
47992c:	8b 85 f8 fe ff ff    	mov    -0x108(%ebp),%eax
479932:	e8 ed ac f8 ff       	call   0x404624
479937:	8b d0                	mov    %eax,%edx
479939:	8d 8d fc fe ff ff    	lea    -0x104(%ebp),%ecx
47993f:	8b 43 04             	mov    0x4(%ebx),%eax
479942:	8b 30                	mov    (%eax),%esi
479944:	ff 96 54 02 00 00    	call   *0x254(%esi)
47994a:	6a 02                	push   $0x2
47994c:	b1 0d                	mov    $0xd,%cl
47994e:	b2 04                	mov    $0x4,%dl
479950:	8b c3                	mov    %ebx,%eax
479952:	e8 69 00 00 00       	call   0x4799c0
479957:	8b f0                	mov    %eax,%esi
479959:	8b 45 fc             	mov    -0x4(%ebp),%eax
47995c:	8b 10                	mov    (%eax),%edx
47995e:	ff 52 7c             	call   *0x7c(%edx)
479961:	50                   	push   %eax
479962:	33 c9                	xor    %ecx,%ecx
479964:	8b d6                	mov    %esi,%edx
479966:	8b c3                	mov    %ebx,%eax
479968:	e8 97 00 00 00       	call   0x479a04
47996d:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
479973:	e8 a4 f4 f8 ff       	call   0x408e1c
479978:	8b c8                	mov    %eax,%ecx
47997a:	41                   	inc    %ecx
47997b:	8d 95 fc fe ff ff    	lea    -0x104(%ebp),%edx
479981:	8b c3                	mov    %ebx,%eax
479983:	e8 28 f7 ff ff       	call   0x4790b0
479988:	50                   	push   %eax
479989:	b9 01 00 00 00       	mov    $0x1,%ecx
47998e:	8b d6                	mov    %esi,%edx
479990:	8b c3                	mov    %ebx,%eax
479992:	e8 6d 00 00 00       	call   0x479a04
479997:	33 c0                	xor    %eax,%eax
479999:	5a                   	pop    %edx
47999a:	59                   	pop    %ecx
47999b:	59                   	pop    %ecx
47999c:	64 89 10             	mov    %edx,%fs:(%eax)
47999f:	68 b7 99 47 00       	push   $0x4799b7
4799a4:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4799aa:	e8 b5 a7 f8 ff       	call   0x404164
4799af:	c3                   	ret
4799b0:	e9 b3 a1 f8 ff       	jmp    0x403b68
4799b5:	eb ed                	jmp    0x4799a4
4799b7:	8b c6                	mov    %esi,%eax
4799b9:	5e                   	pop    %esi
4799ba:	5b                   	pop    %ebx
4799bb:	8b e5                	mov    %ebp,%esp
4799bd:	5d                   	pop    %ebp
4799be:	c3                   	ret
4799bf:	90                   	nop
4799c0:	55                   	push   %ebp
4799c1:	8b ec                	mov    %esp,%ebp
4799c3:	51                   	push   %ecx
4799c4:	53                   	push   %ebx
4799c5:	56                   	push   %esi
4799c6:	88 4d fe             	mov    %cl,-0x2(%ebp)
4799c9:	88 55 ff             	mov    %dl,-0x1(%ebp)
4799cc:	8b d8                	mov    %eax,%ebx
4799ce:	8b 75 08             	mov    0x8(%ebp),%esi
4799d1:	03 f6                	add    %esi,%esi
4799d3:	83 c6 08             	add    $0x8,%esi
4799d6:	8b 53 3c             	mov    0x3c(%ebx),%edx
4799d9:	83 c2 0a             	add    $0xa,%edx
4799dc:	8b ce                	mov    %esi,%ecx
4799de:	8b c3                	mov    %ebx,%eax
4799e0:	e8 d7 ef ff ff       	call   0x4789bc
4799e5:	33 d2                	xor    %edx,%edx
4799e7:	8a 55 ff             	mov    -0x1(%ebp),%dl
4799ea:	89 10                	mov    %edx,(%eax)
4799ec:	33 d2                	xor    %edx,%edx
4799ee:	8a 55 fe             	mov    -0x2(%ebp),%dl
4799f1:	83 c0 04             	add    $0x4,%eax
4799f4:	89 10                	mov    %edx,(%eax)
4799f6:	8b 43 3c             	mov    0x3c(%ebx),%eax
4799f9:	01 73 3c             	add    %esi,0x3c(%ebx)
4799fc:	5e                   	pop    %esi
4799fd:	5b                   	pop    %ebx
4799fe:	59                   	pop    %ecx
4799ff:	5d                   	pop    %ebp
479a00:	c2 04 00             	ret    $0x4
479a03:	90                   	nop
479a04:	55                   	push   %ebp
479a05:	8b ec                	mov    %esp,%ebp
479a07:	83 c2 12             	add    $0x12,%edx
479a0a:	03 50 34             	add    0x34(%eax),%edx
479a0d:	66 8b 45 08          	mov    0x8(%ebp),%ax
479a11:	66 89 04 4a          	mov    %ax,(%edx,%ecx,2)
479a15:	5d                   	pop    %ebp
479a16:	c2 04 00             	ret    $0x4
479a19:	8d 40 00             	lea    0x0(%eax),%eax
479a1c:	55                   	push   %ebp
479a1d:	8b ec                	mov    %esp,%ebp
479a1f:	83 c4 dc             	add    $0xffffffdc,%esp
479a22:	53                   	push   %ebx
479a23:	56                   	push   %esi
479a24:	57                   	push   %edi
479a25:	33 c9                	xor    %ecx,%ecx
479a27:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
479a2a:	89 55 fc             	mov    %edx,-0x4(%ebp)
479a2d:	8b d8                	mov    %eax,%ebx
479a2f:	8b 45 fc             	mov    -0x4(%ebp),%eax
479a32:	e8 dd ab f8 ff       	call   0x404614
479a37:	8d 45 e8             	lea    -0x18(%ebp),%eax
479a3a:	8b 15 d8 7c 47 00    	mov    0x477cd8,%edx
479a40:	e8 b7 b0 f8 ff       	call   0x404afc
479a45:	33 c0                	xor    %eax,%eax
479a47:	55                   	push   %ebp
479a48:	68 5e 9b 47 00       	push   $0x479b5e
479a4d:	64 ff 30             	push   %fs:(%eax)
479a50:	64 89 20             	mov    %esp,%fs:(%eax)
479a53:	33 f6                	xor    %esi,%esi
479a55:	f6 43 2f 10          	testb  $0x10,0x2f(%ebx)
479a59:	74 0f                	je     0x479a6a
479a5b:	8b 53 44             	mov    0x44(%ebx),%edx
479a5e:	8b 43 04             	mov    0x4(%ebx),%eax
479a61:	e8 42 bd ff ff       	call   0x4757a8
479a66:	8b f0                	mov    %eax,%esi
479a68:	eb 5b                	jmp    0x479ac5
479a6a:	f6 43 2f 08          	testb  $0x8,0x2f(%ebx)
479a6e:	74 55                	je     0x479ac5
479a70:	8b 43 04             	mov    0x4(%ebx),%eax
479a73:	e8 0c b9 ff ff       	call   0x475384
479a78:	48                   	dec    %eax
479a79:	85 c0                	test   %eax,%eax
479a7b:	7c 48                	jl     0x479ac5
479a7d:	40                   	inc    %eax
479a7e:	89 45 f4             	mov    %eax,-0xc(%ebp)
479a81:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
479a88:	8b 43 04             	mov    0x4(%ebx),%eax
479a8b:	8b 40 30             	mov    0x30(%eax),%eax
479a8e:	8b 55 f8             	mov    -0x8(%ebp),%edx
479a91:	e8 1e 19 ff ff       	call   0x46b3b4