4806cc:	8d 44 24 58          	lea    0x58(%esp),%eax
4806d0:	50                   	push   %eax
4806d1:	8d 44 24 3c          	lea    0x3c(%esp),%eax
4806d5:	50                   	push   %eax
4806d6:	8d 44 24 50          	lea    0x50(%esp),%eax
4806da:	50                   	push   %eax
4806db:	e8 67 0c 00 00       	call   0x481347
4806e0:	8b 44 24 28          	mov    0x28(%esp),%eax
4806e4:	83 ec 10             	sub    $0x10,%esp
4806e7:	8b cc                	mov    %esp,%ecx
4806e9:	89 01                	mov    %eax,(%ecx)
4806eb:	8b 44 24 3c          	mov    0x3c(%esp),%eax
4806ef:	89 41 04             	mov    %eax,0x4(%ecx)
4806f2:	8b 44 24 40          	mov    0x40(%esp),%eax
4806f6:	89 41 08             	mov    %eax,0x8(%ecx)
4806f9:	8b 44 24 44          	mov    0x44(%esp),%eax
4806fd:	89 41 0c             	mov    %eax,0xc(%ecx)
480700:	ff 00                	incl   (%eax)
480702:	8d 44 24 30          	lea    0x30(%esp),%eax
480706:	50                   	push   %eax
480707:	8d 44 24 2c          	lea    0x2c(%esp),%eax
48070b:	50                   	push   %eax
48070c:	e8 94 09 00 00       	call   0x4810a5
480711:	84 c0                	test   %al,%al
480713:	75 09                	jne    0x48071e
480715:	6a 00                	push   $0x0
480717:	6a 02                	push   $0x2
480719:	e9 80 00 00 00       	jmp    0x48079e
48071e:	33 f6                	xor    %esi,%esi
480720:	89 74 24 14          	mov    %esi,0x14(%esp)
480724:	39 74 24 3c          	cmp    %esi,0x3c(%esp)
480728:	74 30                	je     0x48075a
48072a:	8d 44 24 14          	lea    0x14(%esp),%eax
48072e:	50                   	push   %eax
48072f:	ff 74 24 1c          	push   0x1c(%esp)
480733:	ff 74 24 40          	push   0x40(%esp)
480737:	ff 15 24 f0 48 00    	call   *0x48f024
48073d:	85 c0                	test   %eax,%eax
48073f:	74 13                	je     0x480754
480741:	56                   	push   %esi
480742:	50                   	push   %eax
480743:	8b 03                	mov    (%ebx),%eax
480745:	8b 48 04             	mov    0x4(%eax),%ecx
480748:	03 cb                	add    %ebx,%ecx
48074a:	e8 12 f8 f9 ff       	call   0x41ff61
48074f:	56                   	push   %esi
480750:	6a 03                	push   $0x3
480752:	eb 4a                	jmp    0x48079e
480754:	8b 4c 24 14          	mov    0x14(%esp),%ecx
480758:	eb 04                	jmp    0x48075e
48075a:	8b 4c 24 18          	mov    0x18(%esp),%ecx
48075e:	8d 44 24 10          	lea    0x10(%esp),%eax
480762:	50                   	push   %eax
480763:	8b 44 24 24          	mov    0x24(%esp),%eax
480767:	0d 19 00 02 00       	or     $0x20019,%eax
48076c:	50                   	push   %eax
48076d:	56                   	push   %esi
48076e:	ff 74 24 54          	push   0x54(%esp)
480772:	51                   	push   %ecx
480773:	ff 15 18 f0 48 00    	call   *0x48f018
480779:	85 c0                	test   %eax,%eax
48077b:	74 32                	je     0x4807af
48077d:	56                   	push   %esi
48077e:	50                   	push   %eax
48077f:	8b 03                	mov    (%ebx),%eax
480781:	8b 48 04             	mov    0x4(%eax),%ecx
480784:	03 cb                	add    %ebx,%ecx
480786:	e8 d6 f7 f9 ff       	call   0x41ff61
48078b:	39 74 24 14          	cmp    %esi,0x14(%esp)
48078f:	74 0a                	je     0x48079b
480791:	ff 74 24 14          	push   0x14(%esp)
480795:	ff 15 1c f0 48 00    	call   *0x48f01c
48079b:	56                   	push   %esi
48079c:	6a 01                	push   $0x1
48079e:	8b 03                	mov    (%ebx),%eax
4807a0:	8b 48 04             	mov    0x4(%eax),%ecx
4807a3:	03 cb                	add    %ebx,%ecx
4807a5:	e8 f9 62 fd ff       	call   0x456aa3
4807aa:	e9 0d 03 00 00       	jmp    0x480abc
4807af:	8b 45 08             	mov    0x8(%ebp),%eax
4807b2:	8b 40 04             	mov    0x4(%eax),%eax
4807b5:	8b 70 04             	mov    0x4(%eax),%esi
4807b8:	8b ce                	mov    %esi,%ecx
4807ba:	e8 d8 91 f8 ff       	call   0x409997
4807bf:	8b 46 08             	mov    0x8(%esi),%eax
4807c2:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4807c6:	51                   	push   %ecx
4807c7:	33 f6                	xor    %esi,%esi
4807c9:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4807cd:	56                   	push   %esi
4807ce:	51                   	push   %ecx
4807cf:	56                   	push   %esi
4807d0:	ff 30                	push   (%eax)
4807d2:	ff 74 24 24          	push   0x24(%esp)
4807d6:	ff 15 20 f0 48 00    	call   *0x48f020
4807dc:	56                   	push   %esi
4807dd:	85 c0                	test   %eax,%eax
4807df:	74 15                	je     0x4807f6
4807e1:	50                   	push   %eax
4807e2:	8b 03                	mov    (%ebx),%eax
4807e4:	8b 48 04             	mov    0x4(%eax),%ecx
4807e7:	03 cb                	add    %ebx,%ecx
4807e9:	e8 73 f7 f9 ff       	call   0x41ff61
4807ee:	56                   	push   %esi
4807ef:	6a ff                	push   $0xffffffff
4807f1:	e9 a1 02 00 00       	jmp    0x480a97
4807f6:	8b 03                	mov    (%ebx),%eax
4807f8:	ff 74 24 20          	push   0x20(%esp)
4807fc:	8b 48 04             	mov    0x4(%eax),%ecx
4807ff:	03 cb                	add    %ebx,%ecx
480801:	e8 5b f7 f9 ff       	call   0x41ff61
480806:	8b 44 24 1c          	mov    0x1c(%esp),%eax
48080a:	85 c0                	test   %eax,%eax
48080c:	0f 84 82 02 00 00    	je     0x480a94
480812:	6a 02                	push   $0x2
480814:	5a                   	pop    %edx
480815:	3b c2                	cmp    %edx,%eax
480817:	0f 86 e7 01 00 00    	jbe    0x480a04
48081d:	83 f8 03             	cmp    $0x3,%eax
480820:	0f 84 6b 01 00 00    	je     0x480991
480826:	6a 04                	push   $0x4
480828:	59                   	pop    %ecx
480829:	3b c1                	cmp    %ecx,%eax
48082b:	0f 84 14 01 00 00    	je     0x480945
480831:	83 f8 07             	cmp    $0x7,%eax
480834:	74 60                	je     0x480896
480836:	83 f8 0b             	cmp    $0xb,%eax
480839:	0f 85 55 02 00 00    	jne    0x480a94
48083f:	8b 45 08             	mov    0x8(%ebp),%eax
480842:	c7 44 24 0c 08 00 00 	movl   $0x8,0xc(%esp)
480849:	00
48084a:	8b 40 04             	mov    0x4(%eax),%eax
48084d:	8b 70 04             	mov    0x4(%eax),%esi
480850:	8b ce                	mov    %esi,%ecx
480852:	e8 40 91 f8 ff       	call   0x409997
480857:	8d 44 24 0c          	lea    0xc(%esp),%eax
48085b:	33 ff                	xor    %edi,%edi
48085d:	50                   	push   %eax
48085e:	8d 44 24 24          	lea    0x24(%esp),%eax
480862:	50                   	push   %eax
480863:	8b 46 08             	mov    0x8(%esi),%eax
480866:	57                   	push   %edi
480867:	57                   	push   %edi
480868:	ff 30                	push   (%eax)
48086a:	ff 74 24 24          	push   0x24(%esp)
48086e:	ff 15 20 f0 48 00    	call   *0x48f020
480874:	8b 5d 0c             	mov    0xc(%ebp),%ebx
480877:	8b cb                	mov    %ebx,%ecx
480879:	8b 74 24 20          	mov    0x20(%esp),%esi
48087d:	8b 7c 24 24          	mov    0x24(%esp),%edi
480881:	e8 9a 91 f8 ff       	call   0x409a20
480886:	6a 02                	push   $0x2
480888:	58                   	pop    %eax
480889:	89 43 0c             	mov    %eax,0xc(%ebx)
48088c:	89 33                	mov    %esi,(%ebx)
48088e:	89 7b 04             	mov    %edi,0x4(%ebx)
480891:	e9 0d 02 00 00       	jmp    0x480aa3
480896:	8b 44 24 0c          	mov    0xc(%esp),%eax
48089a:	33 c9                	xor    %ecx,%ecx
48089c:	d1 e8                	shr    $1,%eax
48089e:	03 c2                	add    %edx,%eax
4808a0:	f7 e2                	mul    %edx
4808a2:	0f 90 c1             	seto   %cl
4808a5:	f7 d9                	neg    %ecx
4808a7:	0b c8                	or     %eax,%ecx
4808a9:	51                   	push   %ecx
4808aa:	e8 47 07 fa ff       	call   0x420ff6
4808af:	89 44 24 24          	mov    %eax,0x24(%esp)
4808b3:	8b 45 08             	mov    0x8(%ebp),%eax
4808b6:	59                   	pop    %ecx
4808b7:	8b 48 04             	mov    0x4(%eax),%ecx
4808ba:	8b 71 04             	mov    0x4(%ecx),%esi
4808bd:	8b ce                	mov    %esi,%ecx
4808bf:	e8 d3 90 f8 ff       	call   0x409997
4808c4:	8b 4e 08             	mov    0x8(%esi),%ecx
4808c7:	8d 44 24 0c          	lea    0xc(%esp),%eax
4808cb:	8b 74 24 20          	mov    0x20(%esp),%esi
4808cf:	50                   	push   %eax
4808d0:	56                   	push   %esi
4808d1:	33 c0                	xor    %eax,%eax
4808d3:	50                   	push   %eax
4808d4:	50                   	push   %eax
4808d5:	ff 31                	push   (%ecx)
4808d7:	ff 74 24 24          	push   0x24(%esp)
4808db:	ff 15 20 f0 48 00    	call   *0x48f020
4808e1:	85 c0                	test   %eax,%eax
4808e3:	0f 85 83 01 00 00    	jne    0x480a6c
4808e9:	8b 44 24 0c          	mov    0xc(%esp),%eax
4808ed:	33 c9                	xor    %ecx,%ecx
4808ef:	d1 e8                	shr    $1,%eax
4808f1:	89 44 24 0c          	mov    %eax,0xc(%esp)
4808f5:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
4808f9:	8b 44 24 0c          	mov    0xc(%esp),%eax
4808fd:	83 f8 01             	cmp    $0x1,%eax
480900:	0f 86 5c 01 00 00    	jbe    0x480a62
480906:	33 d2                	xor    %edx,%edx
480908:	66 39 54 46 fe       	cmp    %dx,-0x2(%esi,%eax,2)
48090d:	75 05                	jne    0x480914
48090f:	48                   	dec    %eax
480910:	89 44 24 0c          	mov    %eax,0xc(%esp)
480914:	6a 0a                	push   $0xa
480916:	5b                   	pop    %ebx
480917:	85 c0                	test   %eax,%eax
480919:	74 13                	je     0x48092e
48091b:	66 39 14 4e          	cmp    %dx,(%esi,%ecx,2)
48091f:	75 08                	jne    0x480929
480921:	66 89 1c 4e          	mov    %bx,(%esi,%ecx,2)
480925:	8b 44 24 0c          	mov    0xc(%esp),%eax
480929:	41                   	inc    %ecx
48092a:	3b c8                	cmp    %eax,%ecx
48092c:	72 ed                	jb     0x48091b
48092e:	66 39 5c 4e fe       	cmp    %bx,-0x2(%esi,%ecx,2)
480933:	0f 85 29 01 00 00    	jne    0x480a62
480939:	33 c0                	xor    %eax,%eax
48093b:	66 89 44 4e fe       	mov    %ax,-0x2(%esi,%ecx,2)
480940:	e9 1d 01 00 00       	jmp    0x480a62
480945:	8b 45 08             	mov    0x8(%ebp),%eax
480948:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
48094c:	8b 40 04             	mov    0x4(%eax),%eax
48094f:	8b 70 04             	mov    0x4(%eax),%esi
480952:	8b ce                	mov    %esi,%ecx
480954:	e8 3e 90 f8 ff       	call   0x409997
480959:	8d 44 24 0c          	lea    0xc(%esp),%eax
48095d:	33 db                	xor    %ebx,%ebx
48095f:	50                   	push   %eax
480960:	8d 44 24 24          	lea    0x24(%esp),%eax
480964:	50                   	push   %eax
480965:	8b 46 08             	mov    0x8(%esi),%eax
480968:	53                   	push   %ebx
480969:	53                   	push   %ebx
48096a:	ff 30                	push   (%eax)
48096c:	ff 74 24 24          	push   0x24(%esp)
480970:	ff 15 20 f0 48 00    	call   *0x48f020
480976:	8b 74 24 20          	mov    0x20(%esp),%esi
48097a:	8b cf                	mov    %edi,%ecx
48097c:	e8 9f 90 f8 ff       	call   0x409a20
480981:	6a 02                	push   $0x2
480983:	58                   	pop    %eax
480984:	89 47 0c             	mov    %eax,0xc(%edi)
480987:	89 37                	mov    %esi,(%edi)
480989:	89 5f 04             	mov    %ebx,0x4(%edi)
48098c:	e9 12 01 00 00       	jmp    0x480aa3
480991:	ff 74 24 0c          	push   0xc(%esp)
480995:	8b cf                	mov    %edi,%ecx
480997:	e8 b2 6f fe ff       	call   0x46794e
48099c:	8b f8                	mov    %eax,%edi
48099e:	8b 45 08             	mov    0x8(%ebp),%eax
4809a1:	8b 48 04             	mov    0x4(%eax),%ecx
4809a4:	8b 71 04             	mov    0x4(%ecx),%esi
4809a7:	8b ce                	mov    %esi,%ecx
4809a9:	e8 e9 8f f8 ff       	call   0x409997
4809ae:	8b 4e 08             	mov    0x8(%esi),%ecx
4809b1:	8d 44 24 0c          	lea    0xc(%esp),%eax
4809b5:	50                   	push   %eax
4809b6:	57                   	push   %edi
4809b7:	33 f6                	xor    %esi,%esi
4809b9:	56                   	push   %esi
4809ba:	56                   	push   %esi
4809bb:	ff 31                	push   (%ecx)
4809bd:	ff 74 24 24          	push   0x24(%esp)
4809c1:	ff 15 20 f0 48 00    	call   *0x48f020
4809c7:	85 c0                	test   %eax,%eax
4809c9:	0f 84 d4 00 00 00    	je     0x480aa3
4809cf:	56                   	push   %esi
4809d0:	50                   	push   %eax
4809d1:	8b 03                	mov    (%ebx),%eax
4809d3:	8b 48 04             	mov    0x4(%eax),%ecx
4809d6:	03 cb                	add    %ebx,%ecx
4809d8:	e8 84 f5 f9 ff       	call   0x41ff61
4809dd:	8b 03                	mov    (%ebx),%eax
4809df:	56                   	push   %esi
4809e0:	6a fe                	push   $0xfffffffe
4809e2:	8b 48 04             	mov    0x4(%eax),%ecx
4809e5:	03 cb                	add    %ebx,%ecx
4809e7:	e8 b7 60 fd ff       	call   0x456aa3
4809ec:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4809ef:	8b cb                	mov    %ebx,%ecx
4809f1:	e8 2a 90 f8 ff       	call   0x409a20
4809f6:	c7 43 0c 01 00 00 00 	movl   $0x1,0xc(%ebx)
4809fd:	89 33                	mov    %esi,(%ebx)
4809ff:	e9 9f 00 00 00       	jmp    0x480aa3
480a04:	8b 44 24 0c          	mov    0xc(%esp),%eax
480a08:	33 c9                	xor    %ecx,%ecx
480a0a:	d1 e8                	shr    $1,%eax
480a0c:	40                   	inc    %eax
480a0d:	f7 e2                	mul    %edx
480a0f:	0f 90 c1             	seto   %cl
480a12:	f7 d9                	neg    %ecx
480a14:	0b c8                	or     %eax,%ecx
480a16:	51                   	push   %ecx
480a17:	e8 da 05 fa ff       	call   0x420ff6
480a1c:	89 44 24 24          	mov    %eax,0x24(%esp)
480a20:	8b 45 08             	mov    0x8(%ebp),%eax
480a23:	59                   	pop    %ecx
480a24:	8b 48 04             	mov    0x4(%eax),%ecx
480a27:	8b 71 04             	mov    0x4(%ecx),%esi
480a2a:	8b ce                	mov    %esi,%ecx
480a2c:	e8 66 8f f8 ff       	call   0x409997
480a31:	8b 4e 08             	mov    0x8(%esi),%ecx
480a34:	8d 44 24 0c          	lea    0xc(%esp),%eax
480a38:	8b 74 24 20          	mov    0x20(%esp),%esi
480a3c:	50                   	push   %eax
480a3d:	56                   	push   %esi
480a3e:	33 c0                	xor    %eax,%eax
480a40:	50                   	push   %eax
480a41:	50                   	push   %eax
480a42:	ff 31                	push   (%ecx)
480a44:	ff 74 24 24          	push   0x24(%esp)
480a48:	ff 15 20 f0 48 00    	call   *0x48f020
480a4e:	85 c0                	test   %eax,%eax
480a50:	75 1a                	jne    0x480a6c
480a52:	8b 44 24 0c          	mov    0xc(%esp),%eax
480a56:	d1 e8                	shr    $1,%eax
480a58:	33 c9                	xor    %ecx,%ecx
480a5a:	89 44 24 0c          	mov    %eax,0xc(%esp)
480a5e:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
480a62:	56                   	push   %esi
480a63:	8b cf                	mov    %edi,%ecx
480a65:	e8 8e 91 f8 ff       	call   0x409bf8
480a6a:	eb 1f                	jmp    0x480a8b
480a6c:	33 ff                	xor    %edi,%edi
480a6e:	57                   	push   %edi
480a6f:	50                   	push   %eax
480a70:	8b 03                	mov    (%ebx),%eax
480a72:	8b 48 04             	mov    0x4(%eax),%ecx
480a75:	03 cb                	add    %ebx,%ecx
480a77:	e8 e5 f4 f9 ff       	call   0x41ff61
480a7c:	8b 03                	mov    (%ebx),%eax
480a7e:	57                   	push   %edi
480a7f:	6a fe                	push   $0xfffffffe
480a81:	8b 48 04             	mov    0x4(%eax),%ecx
480a84:	03 cb                	add    %ebx,%ecx
480a86:	e8 18 60 fd ff       	call   0x456aa3
480a8b:	56                   	push   %esi
480a8c:	e8 db 05 fa ff       	call   0x42106c
480a91:	59                   	pop    %ecx
480a92:	eb 0f                	jmp    0x480aa3
480a94:	56                   	push   %esi
480a95:	6a fe                	push   $0xfffffffe
480a97:	8b 03                	mov    (%ebx),%eax
480a99:	8b 48 04             	mov    0x4(%eax),%ecx
480a9c:	03 cb                	add    %ebx,%ecx
480a9e:	e8 00 60 fd ff       	call   0x456aa3
480aa3:	ff 74 24 10          	push   0x10(%esp)
480aa7:	8b 35 1c f0 48 00    	mov    0x48f01c,%esi
480aad:	ff d6                	call   *%esi
480aaf:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
480ab4:	74 06                	je     0x480abc
480ab6:	ff 74 24 14          	push   0x14(%esp)
480aba:	ff d6                	call   *%esi