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
480abc:	8d 4c 24 48          	lea    0x48(%esp),%ecx
480ac0:	e8 9f 4f f8 ff       	call   0x405a64
480ac5:	8d 4c 24 28          	lea    0x28(%esp),%ecx
480ac9:	e8 96 4f f8 ff       	call   0x405a64
480ace:	8d 4c 24 38          	lea    0x38(%esp),%ecx
480ad2:	e8 8d 4f f8 ff       	call   0x405a64
480ad7:	5f                   	pop    %edi
480ad8:	5e                   	pop    %esi
480ad9:	33 c0                	xor    %eax,%eax
480adb:	5b                   	pop    %ebx
480adc:	8b e5                	mov    %ebp,%esp
480ade:	5d                   	pop    %ebp
480adf:	c2 08 00             	ret    $0x8
480ae2:	55                   	push   %ebp
480ae3:	8b ec                	mov    %esp,%ebp
480ae5:	83 e4 f8             	and    $0xfffffff8,%esp
480ae8:	83 ec 54             	sub    $0x54,%esp
480aeb:	83 64 24 04 00       	andl   $0x0,0x4(%esp)
480af0:	53                   	push   %ebx
480af1:	56                   	push   %esi
480af2:	8b d9                	mov    %ecx,%ebx
480af4:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
480af8:	57                   	push   %edi
480af9:	89 5c 24 14          	mov    %ebx,0x14(%esp)
480afd:	e8 c5 6c f8 ff       	call   0x4077c7
480b02:	8d 4c 24 30          	lea    0x30(%esp),%ecx
480b06:	e8 bc 6c f8 ff       	call   0x4077c7
480b0b:	8d 4c 24 50          	lea    0x50(%esp),%ecx
480b0f:	e8 b3 6c f8 ff       	call   0x4077c7
480b14:	8b 7d 08             	mov    0x8(%ebp),%edi
480b17:	8b 47 08             	mov    0x8(%edi),%eax
480b1a:	89 44 24 20          	mov    %eax,0x20(%esp)
480b1e:	83 f8 01             	cmp    $0x1,%eax
480b21:	74 09                	je     0x480b2c
480b23:	83 f8 04             	cmp    $0x4,%eax
480b26:	0f 85 85 00 00 00    	jne    0x480bb1
480b2c:	8b 47 04             	mov    0x4(%edi),%eax
480b2f:	8b 30                	mov    (%eax),%esi
480b31:	8b ce                	mov    %esi,%ecx
480b33:	e8 5f 8e f8 ff       	call   0x409997
480b38:	8b 4e 08             	mov    0x8(%esi),%ecx
480b3b:	83 ec 10             	sub    $0x10,%esp
480b3e:	8b d4                	mov    %esp,%edx
480b40:	8b 01                	mov    (%ecx),%eax
480b42:	89 02                	mov    %eax,(%edx)
480b44:	8b 41 04             	mov    0x4(%ecx),%eax
480b47:	89 42 04             	mov    %eax,0x4(%edx)
480b4a:	8b 41 08             	mov    0x8(%ecx),%eax
480b4d:	89 42 08             	mov    %eax,0x8(%edx)
480b50:	8b 41 0c             	mov    0xc(%ecx),%eax
480b53:	89 42 0c             	mov    %eax,0xc(%edx)
480b56:	ff 00                	incl   (%eax)
480b58:	8d 44 24 60          	lea    0x60(%esp),%eax
480b5c:	50                   	push   %eax
480b5d:	8d 44 24 44          	lea    0x44(%esp),%eax
480b61:	50                   	push   %eax
480b62:	8d 44 24 58          	lea    0x58(%esp),%eax
480b66:	50                   	push   %eax
480b67:	e8 db 07 00 00       	call   0x481347
480b6c:	8b 44 24 30          	mov    0x30(%esp),%eax
480b70:	83 ec 10             	sub    $0x10,%esp
480b73:	8b cc                	mov    %esp,%ecx
480b75:	89 01                	mov    %eax,(%ecx)
480b77:	8b 44 24 44          	mov    0x44(%esp),%eax
480b7b:	89 41 04             	mov    %eax,0x4(%ecx)
480b7e:	8b 44 24 48          	mov    0x48(%esp),%eax
480b82:	89 41 08             	mov    %eax,0x8(%ecx)
480b85:	8b 44 24 4c          	mov    0x4c(%esp),%eax
480b89:	89 41 0c             	mov    %eax,0xc(%ecx)
480b8c:	ff 00                	incl   (%eax)
480b8e:	8d 44 24 2c          	lea    0x2c(%esp),%eax
480b92:	50                   	push   %eax
480b93:	8d 44 24 2c          	lea    0x2c(%esp),%eax
480b97:	50                   	push   %eax
480b98:	e8 08 05 00 00       	call   0x4810a5
480b9d:	84 c0                	test   %al,%al
480b9f:	75 29                	jne    0x480bca
480ba1:	8b 03                	mov    (%ebx),%eax
480ba3:	6a 00                	push   $0x0
480ba5:	6a 02                	push   $0x2
480ba7:	8b 48 04             	mov    0x4(%eax),%ecx
480baa:	03 cb                	add    %ebx,%ecx
480bac:	e8 f2 5e fd ff       	call   0x456aa3
480bb1:	8b 75 0c             	mov    0xc(%ebp),%esi
480bb4:	8b ce                	mov    %esi,%ecx
480bb6:	e8 65 8e f8 ff       	call   0x409a20
480bbb:	83 26 00             	andl   $0x0,(%esi)
480bbe:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
480bc5:	e9 82 04 00 00       	jmp    0x48104c
480bca:	83 7c 24 44 00       	cmpl   $0x0,0x44(%esp)
480bcf:	74 54                	je     0x480c25
480bd1:	8d 44 24 10          	lea    0x10(%esp),%eax
480bd5:	50                   	push   %eax
480bd6:	ff 74 24 1c          	push   0x1c(%esp)
480bda:	ff 74 24 48          	push   0x48(%esp)
480bde:	ff 15 24 f0 48 00    	call   *0x48f024
480be4:	85 c0                	test   %eax,%eax
480be6:	74 37                	je     0x480c1f
480be8:	33 ff                	xor    %edi,%edi
480bea:	57                   	push   %edi
480beb:	50                   	push   %eax
480bec:	8b 03                	mov    (%ebx),%eax
480bee:	8b 48 04             	mov    0x4(%eax),%ecx
480bf1:	03 cb                	add    %ebx,%ecx
480bf3:	e8 69 f3 f9 ff       	call   0x41ff61
480bf8:	8b 03                	mov    (%ebx),%eax
480bfa:	57                   	push   %edi
480bfb:	6a 03                	push   $0x3
480bfd:	8b 48 04             	mov    0x4(%eax),%ecx
480c00:	03 cb                	add    %ebx,%ecx
480c02:	e8 9c 5e fd ff       	call   0x456aa3
480c07:	8b 75 0c             	mov    0xc(%ebp),%esi
480c0a:	8b ce                	mov    %esi,%ecx
480c0c:	e8 0f 8e f8 ff       	call   0x409a20
480c11:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
480c18:	89 3e                	mov    %edi,(%esi)
480c1a:	e9 2d 04 00 00       	jmp    0x48104c
480c1f:	8b 4c 24 10          	mov    0x10(%esp),%ecx
480c23:	eb 04                	jmp    0x480c29
480c25:	8b 4c 24 18          	mov    0x18(%esp),%ecx
480c29:	8d 44 24 2c          	lea    0x2c(%esp),%eax
480c2d:	33 f6                	xor    %esi,%esi
480c2f:	50                   	push   %eax
480c30:	8d 44 24 10          	lea    0x10(%esp),%eax
480c34:	50                   	push   %eax
480c35:	8b 44 24 24          	mov    0x24(%esp),%eax
480c39:	56                   	push   %esi
480c3a:	0d 06 00 02 00       	or     $0x20006,%eax
480c3f:	50                   	push   %eax
480c40:	56                   	push   %esi
480c41:	68 10 f9 48 00       	push   $0x48f910
480c46:	56                   	push   %esi
480c47:	ff 74 24 6c          	push   0x6c(%esp)
480c4b:	51                   	push   %ecx
480c4c:	ff 15 60 f0 48 00    	call   *0x48f060
480c52:	85 c0                	test   %eax,%eax
480c54:	74 49                	je     0x480c9f
480c56:	56                   	push   %esi
480c57:	50                   	push   %eax
480c58:	8b 03                	mov    (%ebx),%eax
480c5a:	8b 48 04             	mov    0x4(%eax),%ecx
480c5d:	03 cb                	add    %ebx,%ecx
480c5f:	e8 fd f2 f9 ff       	call   0x41ff61
480c64:	8b 03                	mov    (%ebx),%eax
480c66:	33 ff                	xor    %edi,%edi
480c68:	56                   	push   %esi
480c69:	47                   	inc    %edi
480c6a:	57                   	push   %edi
480c6b:	8b 48 04             	mov    0x4(%eax),%ecx
480c6e:	03 cb                	add    %ebx,%ecx
480c70:	e8 2e 5e fd ff       	call   0x456aa3
480c75:	8b 75 0c             	mov    0xc(%ebp),%esi
480c78:	8b ce                	mov    %esi,%ecx
480c7a:	e8 a1 8d f8 ff       	call   0x409a20
480c7f:	83 26 00             	andl   $0x0,(%esi)
480c82:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
480c87:	89 7e 0c             	mov    %edi,0xc(%esi)
480c8a:	0f 84 bc 03 00 00    	je     0x48104c
480c90:	ff 74 24 10          	push   0x10(%esp)
480c94:	ff 15 1c f0 48 00    	call   *0x48f01c
480c9a:	e9 ad 03 00 00       	jmp    0x48104c
480c9f:	83 7c 24 20 01       	cmpl   $0x1,0x20(%esp)
480ca4:	0f 86 89 03 00 00    	jbe    0x481033
480caa:	8b 47 04             	mov    0x4(%edi),%eax
480cad:	8b 70 08             	mov    0x8(%eax),%esi
480cb0:	8b ce                	mov    %esi,%ecx
480cb2:	e8 e0 8c f8 ff       	call   0x409997
480cb7:	8b 46 08             	mov    0x8(%esi),%eax
480cba:	68 a0 b1 4b 00       	push   $0x4bb1a0
480cbf:	ff 30                	push   (%eax)
480cc1:	e8 77 24 fa ff       	call   0x42313d
480cc6:	59                   	pop    %ecx
480cc7:	85 c0                	test   %eax,%eax
480cc9:	8b 47 04             	mov    0x4(%edi),%eax
480ccc:	59                   	pop    %ecx