48fa1b:	83 ef 01             	sub    $0x1,%edi
48fa1e:	75 ef                	jne    0x48fa0f
48fa20:	56                   	push   %esi
48fa21:	e8 11 fa ff ff       	call   0x48f437
48fa26:	eb 06                	jmp    0x48fa2e
48fa28:	56                   	push   %esi
48fa29:	e8 a6 f9 ff ff       	call   0x48f3d4
48fa2e:	33 c0                	xor    %eax,%eax
48fa30:	59                   	pop    %ecx
48fa31:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48fa34:	5f                   	pop    %edi
48fa35:	5e                   	pop    %esi
48fa36:	33 cd                	xor    %ebp,%ecx
48fa38:	5b                   	pop    %ebx
48fa39:	e8 8c 9f fd ff       	call   0x4699ca
48fa3e:	c9                   	leave
48fa3f:	c3                   	ret
48fa40:	8b ff                	mov    %edi,%edi
48fa42:	55                   	push   %ebp
48fa43:	8b ec                	mov    %esp,%ebp
48fa45:	8b 55 08             	mov    0x8(%ebp),%edx
48fa48:	57                   	push   %edi
48fa49:	33 ff                	xor    %edi,%edi
48fa4b:	66 39 3a             	cmp    %di,(%edx)
48fa4e:	74 21                	je     0x48fa71
48fa50:	56                   	push   %esi
48fa51:	8b ca                	mov    %edx,%ecx
48fa53:	8d 71 02             	lea    0x2(%ecx),%esi
48fa56:	66 8b 01             	mov    (%ecx),%ax
48fa59:	83 c1 02             	add    $0x2,%ecx
48fa5c:	66 3b c7             	cmp    %di,%ax
48fa5f:	75 f5                	jne    0x48fa56
48fa61:	2b ce                	sub    %esi,%ecx
48fa63:	d1 f9                	sar    $1,%ecx
48fa65:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
48fa68:	83 c2 02             	add    $0x2,%edx
48fa6b:	66 39 3a             	cmp    %di,(%edx)
48fa6e:	75 e1                	jne    0x48fa51
48fa70:	5e                   	pop    %esi
48fa71:	8d 42 02             	lea    0x2(%edx),%eax
48fa74:	5f                   	pop    %edi
48fa75:	5d                   	pop    %ebp
48fa76:	c3                   	ret
48fa77:	8b ff                	mov    %edi,%edi
48fa79:	56                   	push   %esi
48fa7a:	ff 15 d0 e0 49 00    	call   *0x49e0d0
48fa80:	8b f0                	mov    %eax,%esi
48fa82:	85 f6                	test   %esi,%esi
48fa84:	75 02                	jne    0x48fa88
48fa86:	5e                   	pop    %esi
48fa87:	c3                   	ret
48fa88:	53                   	push   %ebx
48fa89:	57                   	push   %edi
48fa8a:	56                   	push   %esi
48fa8b:	e8 b0 ff ff ff       	call   0x48fa40
48fa90:	8b d8                	mov    %eax,%ebx
48fa92:	2b de                	sub    %esi,%ebx
48fa94:	83 e3 fe             	and    $0xfffffffe,%ebx
48fa97:	53                   	push   %ebx
48fa98:	e8 95 5d ff ff       	call   0x485832
48fa9d:	8b f8                	mov    %eax,%edi
48fa9f:	59                   	pop    %ecx
48faa0:	59                   	pop    %ecx
48faa1:	85 ff                	test   %edi,%edi
48faa3:	74 0b                	je     0x48fab0
48faa5:	53                   	push   %ebx
48faa6:	56                   	push   %esi
48faa7:	57                   	push   %edi
48faa8:	e8 73 bb fd ff       	call   0x46b620
48faad:	83 c4 0c             	add    $0xc,%esp
48fab0:	6a 00                	push   $0x0
48fab2:	e8 41 5d ff ff       	call   0x4857f8
48fab7:	59                   	pop    %ecx
48fab8:	56                   	push   %esi
48fab9:	ff 15 cc e0 49 00    	call   *0x49e0cc
48fabf:	8b c7                	mov    %edi,%eax
48fac1:	5f                   	pop    %edi
48fac2:	5b                   	pop    %ebx
48fac3:	5e                   	pop    %esi
48fac4:	c3                   	ret
48fac5:	8b ff                	mov    %edi,%edi
48fac7:	55                   	push   %ebp
48fac8:	8b ec                	mov    %esp,%ebp
48faca:	83 ec 14             	sub    $0x14,%esp
48facd:	53                   	push   %ebx
48face:	56                   	push   %esi
48facf:	8b 75 08             	mov    0x8(%ebp),%esi
48fad2:	85 f6                	test   %esi,%esi
48fad4:	75 13                	jne    0x48fae9
48fad6:	e8 5a a4 fe ff       	call   0x479f35
48fadb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
48fae1:	83 c8 ff             	or     $0xffffffff,%eax
48fae4:	e9 58 02 00 00       	jmp    0x48fd41
48fae9:	57                   	push   %edi
48faea:	6a 3d                	push   $0x3d
48faec:	56                   	push   %esi
48faed:	8b fe                	mov    %esi,%edi
48faef:	e8 0a ba fd ff       	call   0x46b4fe
48faf4:	89 45 f0             	mov    %eax,-0x10(%ebp)
48faf7:	59                   	pop    %ecx
48faf8:	59                   	pop    %ecx
48faf9:	85 c0                	test   %eax,%eax
48fafb:	0f 84 2a 02 00 00    	je     0x48fd2b
48fb01:	3b c6                	cmp    %esi,%eax
48fb03:	0f 84 22 02 00 00    	je     0x48fd2b
48fb09:	0f b7 48 02          	movzwl 0x2(%eax),%ecx
48fb0d:	8b c1                	mov    %ecx,%eax
48fb0f:	89 45 ec             	mov    %eax,-0x14(%ebp)
48fb12:	89 45 f4             	mov    %eax,-0xc(%ebp)
48fb15:	e8 f4 02 00 00       	call   0x48fe0e
48fb1a:	a1 90 87 4c 00       	mov    0x4c8790,%eax
48fb1f:	33 db                	xor    %ebx,%ebx
48fb21:	89 45 fc             	mov    %eax,-0x4(%ebp)
48fb24:	85 c0                	test   %eax,%eax
48fb26:	0f 85 96 00 00 00    	jne    0x48fbc2
48fb2c:	a1 8c 87 4c 00       	mov    0x4c878c,%eax
48fb31:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
48fb34:	74 30                	je     0x48fb66
48fb36:	85 c0                	test   %eax,%eax
48fb38:	74 2c                	je     0x48fb66
48fb3a:	e8 42 39 ff ff       	call   0x483481
48fb3f:	85 c0                	test   %eax,%eax
48fb41:	75 14                	jne    0x48fb57
48fb43:	e8 ed a3 fe ff       	call   0x479f35
48fb48:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
48fb4e:	83 cb ff             	or     $0xffffffff,%ebx
48fb51:	56                   	push   %esi
48fb52:	e9 ba 01 00 00       	jmp    0x48fd11
48fb57:	e8 b2 02 00 00       	call   0x48fe0e
48fb5c:	a1 90 87 4c 00       	mov    0x4c8790,%eax
48fb61:	89 45 fc             	mov    %eax,-0x4(%ebp)
48fb64:	eb 58                	jmp    0x48fbbe
48fb66:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
48fb6a:	74 e5                	je     0x48fb51
48fb6c:	85 c0                	test   %eax,%eax
48fb6e:	75 2b                	jne    0x48fb9b
48fb70:	6a 04                	push   $0x4
48fb72:	6a 01                	push   $0x1
48fb74:	e8 c4 87 ff ff       	call   0x48833d
48fb79:	53                   	push   %ebx
48fb7a:	a3 8c 87 4c 00       	mov    %eax,0x4c878c
48fb7f:	e8 74 5c ff ff       	call   0x4857f8
48fb84:	83 c4 0c             	add    $0xc,%esp
48fb87:	39 1d 8c 87 4c 00    	cmp    %ebx,0x4c878c
48fb8d:	74 bf                	je     0x48fb4e
48fb8f:	a1 90 87 4c 00       	mov    0x4c8790,%eax
48fb94:	89 45 fc             	mov    %eax,-0x4(%ebp)
48fb97:	85 c0                	test   %eax,%eax
48fb99:	75 27                	jne    0x48fbc2
48fb9b:	6a 04                	push   $0x4
48fb9d:	6a 01                	push   $0x1
48fb9f:	e8 99 87 ff ff       	call   0x48833d
48fba4:	53                   	push   %ebx
48fba5:	a3 90 87 4c 00       	mov    %eax,0x4c8790
48fbaa:	e8 49 5c ff ff       	call   0x4857f8
48fbaf:	a1 90 87 4c 00       	mov    0x4c8790,%eax
48fbb4:	83 c4 0c             	add    $0xc,%esp
48fbb7:	89 45 fc             	mov    %eax,-0x4(%ebp)
48fbba:	85 c0                	test   %eax,%eax
48fbbc:	74 90                	je     0x48fb4e
48fbbe:	85 c0                	test   %eax,%eax
48fbc0:	74 8c                	je     0x48fb4e
48fbc2:	8b 45 f0             	mov    -0x10(%ebp),%eax
48fbc5:	2b c6                	sub    %esi,%eax
48fbc7:	d1 f8                	sar    $1,%eax
48fbc9:	50                   	push   %eax
48fbca:	56                   	push   %esi
48fbcb:	89 45 f0             	mov    %eax,-0x10(%ebp)
48fbce:	e8 55 02 00 00       	call   0x48fe28
48fbd3:	59                   	pop    %ecx
48fbd4:	59                   	pop    %ecx
48fbd5:	8b c8                	mov    %eax,%ecx
48fbd7:	8b 45 fc             	mov    -0x4(%ebp),%eax
48fbda:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48fbdd:	85 c9                	test   %ecx,%ecx
48fbdf:	78 50                	js     0x48fc31
48fbe1:	39 18                	cmp    %ebx,(%eax)
48fbe3:	74 4c                	je     0x48fc31
48fbe5:	ff 34 88             	push   (%eax,%ecx,4)
48fbe8:	e8 0b 5c ff ff       	call   0x4857f8
48fbed:	8b 55 f8             	mov    -0x8(%ebp),%edx
48fbf0:	59                   	pop    %ecx
48fbf1:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
48fbf5:	75 30                	jne    0x48fc27
48fbf7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48fbfa:	eb 08                	jmp    0x48fc04
48fbfc:	8b 44 91 04          	mov    0x4(%ecx,%edx,4),%eax
48fc00:	89 04 91             	mov    %eax,(%ecx,%edx,4)
48fc03:	42                   	inc    %edx
48fc04:	39 1c 91             	cmp    %ebx,(%ecx,%edx,4)
48fc07:	75 f3                	jne    0x48fbfc
48fc09:	6a 04                	push   $0x4
48fc0b:	52                   	push   %edx
48fc0c:	51                   	push   %ecx
48fc0d:	e8 79 5b ff ff       	call   0x48578b
48fc12:	53                   	push   %ebx
48fc13:	89 45 f4             	mov    %eax,-0xc(%ebp)
48fc16:	e8 dd 5b ff ff       	call   0x4857f8
48fc1b:	8b 45 f4             	mov    -0xc(%ebp),%eax
48fc1e:	83 c4 10             	add    $0x10,%esp
48fc21:	85 c0                	test   %eax,%eax
48fc23:	74 63                	je     0x48fc88
48fc25:	eb 5c                	jmp    0x48fc83
48fc27:	8b 45 fc             	mov    -0x4(%ebp),%eax
48fc2a:	8b fb                	mov    %ebx,%edi
48fc2c:	89 34 90             	mov    %esi,(%eax,%edx,4)
48fc2f:	eb 57                	jmp    0x48fc88
48fc31:	66 39 5d f4          	cmp    %bx,-0xc(%ebp)
48fc35:	0f 84 16 ff ff ff    	je     0x48fb51
48fc3b:	f7 d9                	neg    %ecx
48fc3d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48fc40:	8d 51 02             	lea    0x2(%ecx),%edx
48fc43:	3b d1                	cmp    %ecx,%edx
48fc45:	0f 82 03 ff ff ff    	jb     0x48fb4e
48fc4b:	81 fa ff ff ff 3f    	cmp    $0x3fffffff,%edx
48fc51:	0f 83 f7 fe ff ff    	jae    0x48fb4e
48fc57:	6a 04                	push   $0x4
48fc59:	52                   	push   %edx
48fc5a:	50                   	push   %eax
48fc5b:	e8 2b 5b ff ff       	call   0x48578b
48fc60:	53                   	push   %ebx
48fc61:	89 45 f4             	mov    %eax,-0xc(%ebp)
48fc64:	e8 8f 5b ff ff       	call   0x4857f8
48fc69:	8b 45 f4             	mov    -0xc(%ebp),%eax
48fc6c:	83 c4 10             	add    $0x10,%esp
48fc6f:	85 c0                	test   %eax,%eax
48fc71:	0f 84 d7 fe ff ff    	je     0x48fb4e
48fc77:	8b 55 f8             	mov    -0x8(%ebp),%edx
48fc7a:	8b fb                	mov    %ebx,%edi
48fc7c:	89 34 90             	mov    %esi,(%eax,%edx,4)
48fc7f:	89 5c 90 04          	mov    %ebx,0x4(%eax,%edx,4)
48fc83:	a3 90 87 4c 00       	mov    %eax,0x4c8790
48fc88:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
48fc8b:	0f 84 90 00 00 00    	je     0x48fd21
48fc91:	8d 4e 02             	lea    0x2(%esi),%ecx
48fc94:	66 8b 06             	mov    (%esi),%ax
48fc97:	83 c6 02             	add    $0x2,%esi
48fc9a:	66 3b c3             	cmp    %bx,%ax
48fc9d:	75 f5                	jne    0x48fc94
48fc9f:	2b f1                	sub    %ecx,%esi
48fca1:	d1 fe                	sar    $1,%esi
48fca3:	6a 02                	push   $0x2
48fca5:	8d 46 02             	lea    0x2(%esi),%eax
48fca8:	50                   	push   %eax
48fca9:	89 45 f4             	mov    %eax,-0xc(%ebp)
48fcac:	e8 8c 86 ff ff       	call   0x48833d
48fcb1:	8b f0                	mov    %eax,%esi
48fcb3:	59                   	pop    %ecx
48fcb4:	59                   	pop    %ecx
48fcb5:	85 f6                	test   %esi,%esi
48fcb7:	75 08                	jne    0x48fcc1
48fcb9:	53                   	push   %ebx
48fcba:	e8 39 5b ff ff       	call   0x4857f8
48fcbf:	eb 4e                	jmp    0x48fd0f
48fcc1:	ff 75 08             	push   0x8(%ebp)
48fcc4:	ff 75 f4             	push   -0xc(%ebp)
48fcc7:	56                   	push   %esi
48fcc8:	e8 d0 99 fe ff       	call   0x47969d
48fccd:	83 c4 0c             	add    $0xc,%esp
48fcd0:	85 c0                	test   %eax,%eax
48fcd2:	75 71                	jne    0x48fd45
48fcd4:	8b 45 f0             	mov    -0x10(%ebp),%eax
48fcd7:	33 d2                	xor    %edx,%edx
48fcd9:	8d 48 01             	lea    0x1(%eax),%ecx
48fcdc:	66 89 14 46          	mov    %dx,(%esi,%eax,2)
48fce0:	8b 45 ec             	mov    -0x14(%ebp),%eax
48fce3:	8d 0c 4e             	lea    (%esi,%ecx,2),%ecx
48fce6:	0f b7 c0             	movzwl %ax,%eax
48fce9:	f7 d8                	neg    %eax
48fceb:	1b c0                	sbb    %eax,%eax
48fced:	23 c1                	and    %ecx,%eax
48fcef:	50                   	push   %eax
48fcf0:	56                   	push   %esi
48fcf1:	ff 15 c8 e0 49 00    	call   *0x49e0c8
48fcf7:	85 c0                	test   %eax,%eax
48fcf9:	75 1f                	jne    0x48fd1a
48fcfb:	e8 35 a2 fe ff       	call   0x479f35
48fd00:	56                   	push   %esi
48fd01:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
48fd07:	e8 ec 5a ff ff       	call   0x4857f8
48fd0c:	83 cb ff             	or     $0xffffffff,%ebx
48fd0f:	59                   	pop    %ecx
48fd10:	57                   	push   %edi
48fd11:	e8 e2 5a ff ff       	call   0x4857f8
48fd16:	8b c3                	mov    %ebx,%eax
48fd18:	eb 25                	jmp    0x48fd3f
48fd1a:	56                   	push   %esi
48fd1b:	e8 d8 5a ff ff       	call   0x4857f8
48fd20:	59                   	pop    %ecx
48fd21:	57                   	push   %edi
48fd22:	e8 d1 5a ff ff       	call   0x4857f8
48fd27:	33 c0                	xor    %eax,%eax
48fd29:	eb 14                	jmp    0x48fd3f
48fd2b:	e8 05 a2 fe ff       	call   0x479f35
48fd30:	56                   	push   %esi
48fd31:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
48fd37:	e8 bc 5a ff ff       	call   0x4857f8
48fd3c:	83 c8 ff             	or     $0xffffffff,%eax
48fd3f:	59                   	pop    %ecx
48fd40:	5f                   	pop    %edi
48fd41:	5e                   	pop    %esi
48fd42:	5b                   	pop    %ebx
48fd43:	c9                   	leave
48fd44:	c3                   	ret
48fd45:	53                   	push   %ebx
48fd46:	53                   	push   %ebx
48fd47:	53                   	push   %ebx
48fd48:	53                   	push   %ebx
48fd49:	53                   	push   %ebx
48fd4a:	e8 ff 98 fe ff       	call   0x47964e
48fd4f:	cc                   	int3
48fd50:	8b ff                	mov    %edi,%edi
48fd52:	55                   	push   %ebp
48fd53:	8b ec                	mov    %esp,%ebp
48fd55:	51                   	push   %ecx
48fd56:	51                   	push   %ecx
48fd57:	57                   	push   %edi
48fd58:	8b 7d 08             	mov    0x8(%ebp),%edi
48fd5b:	85 ff                	test   %edi,%edi
48fd5d:	75 05                	jne    0x48fd64
48fd5f:	33 c0                	xor    %eax,%eax
48fd61:	5f                   	pop    %edi
48fd62:	c9                   	leave
48fd63:	c3                   	ret
48fd64:	33 d2                	xor    %edx,%edx
48fd66:	8b c7                	mov    %edi,%eax
48fd68:	8b ca                	mov    %edx,%ecx
48fd6a:	89 55 fc             	mov    %edx,-0x4(%ebp)
48fd6d:	39 17                	cmp    %edx,(%edi)
48fd6f:	74 08                	je     0x48fd79
48fd71:	8d 40 04             	lea    0x4(%eax),%eax
48fd74:	41                   	inc    %ecx
48fd75:	39 10                	cmp    %edx,(%eax)
48fd77:	75 f8                	jne    0x48fd71
48fd79:	56                   	push   %esi
48fd7a:	8d 41 01             	lea    0x1(%ecx),%eax
48fd7d:	6a 04                	push   $0x4
48fd7f:	50                   	push   %eax
48fd80:	e8 b8 85 ff ff       	call   0x48833d
48fd85:	8b f0                	mov    %eax,%esi
48fd87:	59                   	pop    %ecx
48fd88:	59                   	pop    %ecx
48fd89:	85 f6                	test   %esi,%esi
48fd8b:	74 6f                	je     0x48fdfc
48fd8d:	8b 0f                	mov    (%edi),%ecx
48fd8f:	85 c9                	test   %ecx,%ecx
48fd91:	74 58                	je     0x48fdeb
48fd93:	53                   	push   %ebx
48fd94:	8b de                	mov    %esi,%ebx
48fd96:	2b df                	sub    %edi,%ebx