48bd4b:	e9 19 e1 f7 ff       	jmp    0x409e69
48bd50:	81 f9 00 00 30 00    	cmp    $0x300000,%ecx
48bd56:	77 77                	ja     0x48bdcf
48bd58:	74 1e                	je     0x48bd78
48bd5a:	81 f9 00 00 10 00    	cmp    $0x100000,%ecx
48bd60:	74 0f                	je     0x48bd71
48bd62:	81 f9 00 00 20 00    	cmp    $0x200000,%ecx
48bd68:	75 79                	jne    0x48bde3
48bd6a:	b9 0a 00 00 00       	mov    $0xa,%ecx
48bd6f:	eb 0c                	jmp    0x48bd7d
48bd71:	b9 0d 00 00 00       	mov    $0xd,%ecx
48bd76:	eb 05                	jmp    0x48bd7d
48bd78:	b9 0a 0d 00 00       	mov    $0xd0a,%ecx
48bd7d:	c7 85 20 ff ff ff 00 	movl   $0x0,-0xe0(%ebp)
48bd84:	00 00 00
48bd87:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
48bd8d:	7e 2a                	jle    0x48bdb9
48bd8f:	8b c1                	mov    %ecx,%eax
48bd91:	c1 f8 08             	sar    $0x8,%eax
48bd94:	25 ff 00 00 00       	and    $0xff,%eax
48bd99:	66 89 85 3c ff ff ff 	mov    %ax,-0xc4(%ebp)
48bda0:	0f b6 c1             	movzbl %cl,%eax
48bda3:	c7 85 24 ff ff ff 02 	movl   $0x2,-0xdc(%ebp)
48bdaa:	00 00 00
48bdad:	66 89 85 3e ff ff ff 	mov    %ax,-0xc2(%ebp)
48bdb4:	e9 d2 e0 f7 ff       	jmp    0x409e8b
48bdb9:	c7 85 24 ff ff ff 01 	movl   $0x1,-0xdc(%ebp)
48bdc0:	00 00 00
48bdc3:	66 89 8d 3c ff ff ff 	mov    %cx,-0xc4(%ebp)
48bdca:	e9 bc e0 f7 ff       	jmp    0x409e8b
48bdcf:	81 f9 00 00 40 00    	cmp    $0x400000,%ecx
48bdd5:	74 16                	je     0x48bded
48bdd7:	81 f9 00 00 50 00    	cmp    $0x500000,%ecx
48bddd:	0f 84 9e e0 f7 ff    	je     0x409e81
48bde3:	b8 e9 ff ff ff       	mov    $0xffffffe9,%eax
48bde8:	e9 6f e2 f7 ff       	jmp    0x40a05c
48bded:	c7 85 20 ff ff ff 01 	movl   $0x1,-0xe0(%ebp)
48bdf4:	00 00 00
48bdf7:	e9 8f e0 f7 ff       	jmp    0x409e8b
48bdfc:	f7 c6 00 02 00 00    	test   $0x200,%esi
48be02:	0f 84 8d e0 f7 ff    	je     0x409e95
48be08:	b8 f3 ff ff ff       	mov    $0xfffffff3,%eax
48be0d:	e9 4a e2 f7 ff       	jmp    0x40a05c
48be12:	8b c8                	mov    %eax,%ecx
48be14:	b8 56 55 55 55       	mov    $0x55555556,%eax
48be19:	f7 ef                	imul   %edi
48be1b:	8b c2                	mov    %edx,%eax
48be1d:	c1 e8 1f             	shr    $0x1f,%eax
48be20:	03 c2                	add    %edx,%eax
48be22:	3b c8                	cmp    %eax,%ecx
48be24:	0f 8c 9e e0 f7 ff    	jl     0x409ec8
48be2a:	8d 79 01             	lea    0x1(%ecx),%edi
48be2d:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
48be30:	8d 04 bd 00 00 00 00 	lea    0x0(,%edi,4),%eax
48be37:	50                   	push   %eax
48be38:	ff 15 dc bd 4b 00    	call   *0x4bbddc
48be3e:	8b f0                	mov    %eax,%esi
48be40:	83 c4 04             	add    $0x4,%esp
48be43:	89 b5 14 ff ff ff    	mov    %esi,-0xec(%ebp)
48be49:	85 f6                	test   %esi,%esi
48be4b:	75 08                	jne    0x48be55
48be4d:	8d 46 fa             	lea    -0x6(%esi),%eax
48be50:	e9 07 e2 f7 ff       	jmp    0x40a05c
48be55:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
48be5c:	e9 70 e0 f7 ff       	jmp    0x409ed1
48be61:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
48be67:	b8 ff 00 00 00       	mov    $0xff,%eax
48be6c:	66 3b f8             	cmp    %ax,%di
48be6f:	77 0a                	ja     0x48be7b
48be71:	0f b7 c7             	movzwl %di,%eax
48be74:	0f b6 3c 10          	movzbl (%eax,%edx,1),%edi
48be78:	89 7d f0             	mov    %edi,-0x10(%ebp)
48be7b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
48be7e:	85 c9                	test   %ecx,%ecx
48be80:	0f 84 c4 e0 f7 ff    	je     0x409f4a
48be86:	83 fe 7f             	cmp    $0x7f,%esi
48be89:	0f 86 bb e0 f7 ff    	jbe    0x409f4a
48be8f:	0f b7 ce             	movzwl %si,%ecx
48be92:	8b c1                	mov    %ecx,%eax
48be94:	c1 e8 07             	shr    $0x7,%eax
48be97:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
48be9e:	c1 e0 07             	shl    $0x7,%eax
48bea1:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
48bea7:	79 05                	jns    0x48beae
48bea9:	49                   	dec    %ecx
48beaa:	83 c9 80             	or     $0xffffff80,%ecx
48bead:	41                   	inc    %ecx
48beae:	03 c1                	add    %ecx,%eax
48beb0:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
48beb7:	00
48beb8:	66 8b 04 c5 0c b1 4a 	mov    0x4ab10c(,%eax,8),%ax
48bebf:	00
48bec0:	66 03 c6             	add    %si,%ax
48bec3:	0f b7 c0             	movzwl %ax,%eax
48bec6:	89 45 f0             	mov    %eax,-0x10(%ebp)
48bec9:	e9 79 e0 f7 ff       	jmp    0x409f47
48bece:	b8 ff 00 00 00       	mov    $0xff,%eax
48bed3:	66 3b f8             	cmp    %ax,%di
48bed6:	77 0a                	ja     0x48bee2
48bed8:	0f b7 c7             	movzwl %di,%eax
48bedb:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
48bedf:	89 45 e8             	mov    %eax,-0x18(%ebp)
48bee2:	85 c9                	test   %ecx,%ecx
48bee4:	0f 84 6b e0 f7 ff    	je     0x409f55
48beea:	83 fe 7f             	cmp    $0x7f,%esi
48beed:	0f 86 62 e0 f7 ff    	jbe    0x409f55
48bef3:	0f b7 ce             	movzwl %si,%ecx
48bef6:	8b c1                	mov    %ecx,%eax
48bef8:	c1 e8 07             	shr    $0x7,%eax
48befb:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
48bf02:	c1 e0 07             	shl    $0x7,%eax
48bf05:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
48bf0b:	79 05                	jns    0x48bf12
48bf0d:	49                   	dec    %ecx
48bf0e:	83 c9 80             	or     $0xffffff80,%ecx
48bf11:	41                   	inc    %ecx
48bf12:	03 c1                	add    %ecx,%eax
48bf14:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
48bf1b:	00
48bf1c:	66 8b 04 c5 0c b1 4a 	mov    0x4ab10c(,%eax,8),%ax
48bf23:	00
48bf24:	66 03 c6             	add    %si,%ax
48bf27:	0f b7 c0             	movzwl %ax,%eax
48bf2a:	89 45 e8             	mov    %eax,-0x18(%ebp)
48bf2d:	e9 23 e0 f7 ff       	jmp    0x409f55
48bf32:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
48bf36:	8b 45 fc             	mov    -0x4(%ebp),%eax
48bf39:	8b f0                	mov    %eax,%esi
48bf3b:	0f 84 b1 00 00 00    	je     0x48bff2
48bf41:	3b 45 84             	cmp    -0x7c(%ebp),%eax
48bf44:	0f 83 1d 01 00 00    	jae    0x48c067
48bf4a:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
48bf50:	8b bd 24 ff ff ff    	mov    -0xdc(%ebp),%edi
48bf56:	8b 45 84             	mov    -0x7c(%ebp),%eax
48bf59:	85 d2                	test   %edx,%edx
48bf5b:	74 2b                	je     0x48bf88
48bf5d:	ff 75 f4             	push   -0xc(%ebp)
48bf60:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
48bf66:	51                   	push   %ecx
48bf67:	50                   	push   %eax
48bf68:	8b ce                	mov    %esi,%ecx
48bf6a:	e8 8f d0 f7 ff       	call   0x408ffe
48bf6f:	83 c4 0c             	add    $0xc,%esp
48bf72:	85 c0                	test   %eax,%eax
48bf74:	0f 85 ea 00 00 00    	jne    0x48c064
48bf7a:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
48bf80:	8b bd 24 ff ff ff    	mov    -0xdc(%ebp),%edi
48bf86:	eb 32                	jmp    0x48bfba
48bf88:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
48bf8b:	8d 04 3f             	lea    (%edi,%edi,1),%eax
48bf8e:	2b c8                	sub    %eax,%ecx
48bf90:	3b f1                	cmp    %ecx,%esi
48bf92:	77 26                	ja     0x48bfba
48bf94:	66 8b 06             	mov    (%esi),%ax
48bf97:	66 3b 85 3c ff ff ff 	cmp    -0xc4(%ebp),%ax
48bf9e:	75 1a                	jne    0x48bfba
48bfa0:	83 ff 01             	cmp    $0x1,%edi
48bfa3:	0f 84 bb 00 00 00    	je     0x48c064
48bfa9:	66 8b 46 02          	mov    0x2(%esi),%ax
48bfad:	66 3b 85 3e ff ff ff 	cmp    -0xc2(%ebp),%ax
48bfb4:	0f 84 aa 00 00 00    	je     0x48c064
48bfba:	83 c6 02             	add    $0x2,%esi
48bfbd:	3b 75 f8             	cmp    -0x8(%ebp),%esi
48bfc0:	73 18                	jae    0x48bfda
48bfc2:	66 8b 06             	mov    (%esi),%ax
48bfc5:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
48bfca:	66 23 c1             	and    %cx,%ax
48bfcd:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
48bfd2:	66 3b c1             	cmp    %cx,%ax
48bfd5:	75 03                	jne    0x48bfda
48bfd7:	83 c6 02             	add    $0x2,%esi
48bfda:	8b 45 84             	mov    -0x7c(%ebp),%eax
48bfdd:	3b f0                	cmp    %eax,%esi
48bfdf:	0f 82 74 ff ff ff    	jb     0x48bf59
48bfe5:	8b 4d 10             	mov    0x10(%ebp),%ecx
48bfe8:	8b fe                	mov    %esi,%edi
48bfea:	89 7d f8             	mov    %edi,-0x8(%ebp)
48bfed:	e9 75 df f7 ff       	jmp    0x409f67
48bff2:	3b 45 84             	cmp    -0x7c(%ebp),%eax
48bff5:	73 70                	jae    0x48c067
48bff7:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
48bffd:	8b bd 24 ff ff ff    	mov    -0xdc(%ebp),%edi
48c003:	8b 45 84             	mov    -0x7c(%ebp),%eax
48c006:	85 d2                	test   %edx,%edx
48c008:	74 26                	je     0x48c030
48c00a:	6a 00                	push   $0x0
48c00c:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
48c012:	51                   	push   %ecx
48c013:	50                   	push   %eax
48c014:	8b ce                	mov    %esi,%ecx
48c016:	e8 e3 cf f7 ff       	call   0x408ffe
48c01b:	83 c4 0c             	add    $0xc,%esp
48c01e:	85 c0                	test   %eax,%eax
48c020:	75 42                	jne    0x48c064
48c022:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
48c028:	8b bd 24 ff ff ff    	mov    -0xdc(%ebp),%edi
48c02e:	eb 2a                	jmp    0x48c05a
48c030:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
48c033:	8d 04 3f             	lea    (%edi,%edi,1),%eax
48c036:	2b c8                	sub    %eax,%ecx
48c038:	3b f1                	cmp    %ecx,%esi
48c03a:	77 1e                	ja     0x48c05a
48c03c:	66 8b 06             	mov    (%esi),%ax
48c03f:	66 3b 85 3c ff ff ff 	cmp    -0xc4(%ebp),%ax
48c046:	75 12                	jne    0x48c05a
48c048:	83 ff 01             	cmp    $0x1,%edi
48c04b:	74 17                	je     0x48c064
48c04d:	66 8b 46 02          	mov    0x2(%esi),%ax
48c051:	66 3b 85 3e ff ff ff 	cmp    -0xc2(%ebp),%ax
48c058:	74 0a                	je     0x48c064
48c05a:	8b 45 84             	mov    -0x7c(%ebp),%eax
48c05d:	83 c6 02             	add    $0x2,%esi
48c060:	3b f0                	cmp    %eax,%esi
48c062:	72 a2                	jb     0x48c006
48c064:	8b 4d 10             	mov    0x10(%ebp),%ecx
48c067:	8b fe                	mov    %esi,%edi
48c069:	89 7d f8             	mov    %edi,-0x8(%ebp)
48c06c:	e9 f6 de f7 ff       	jmp    0x409f67
48c071:	3b c7                	cmp    %edi,%eax
48c073:	0f 83 0e df f7 ff    	jae    0x409f87
48c079:	0f b7 10             	movzwl (%eax),%edx
48c07c:	66 3b 55 cc          	cmp    -0x34(%ebp),%dx
48c080:	0f 84 01 df f7 ff    	je     0x409f87
48c086:	66 3b 55 f0          	cmp    -0x10(%ebp),%dx
48c08a:	0f 84 f7 de f7 ff    	je     0x409f87
48c090:	83 c0 02             	add    $0x2,%eax
48c093:	89 45 fc             	mov    %eax,-0x4(%ebp)
48c096:	3b c7                	cmp    %edi,%eax
48c098:	72 df                	jb     0x48c079
48c09a:	e9 e8 de f7 ff       	jmp    0x409f87
48c09f:	8b 55 80             	mov    -0x80(%ebp),%edx
48c0a2:	8b 85 f0 fe ff ff    	mov    -0x110(%ebp),%eax
48c0a8:	8b 7d fc             	mov    -0x4(%ebp),%edi
48c0ab:	03 c2                	add    %edx,%eax
48c0ad:	3b f8                	cmp    %eax,%edi
48c0af:	0f 86 d2 de f7 ff    	jbe    0x409f87
48c0b5:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
48c0b9:	0f 84 0e 01 00 00    	je     0x48c1cd
48c0bf:	3b 7d f8             	cmp    -0x8(%ebp),%edi
48c0c2:	0f 83 c8 00 00 00    	jae    0x48c190
48c0c8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48c0cb:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c0d1:	85 c0                	test   %eax,%eax
48c0d3:	74 2e                	je     0x48c103
48c0d5:	3b fa                	cmp    %edx,%edi
48c0d7:	76 7d                	jbe    0x48c156
48c0d9:	ff 75 f4             	push   -0xc(%ebp)
48c0dc:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
48c0e2:	51                   	push   %ecx
48c0e3:	52                   	push   %edx
48c0e4:	8b d0                	mov    %eax,%edx
48c0e6:	8b cf                	mov    %edi,%ecx
48c0e8:	e8 6f 52 fe ff       	call   0x47135c
48c0ed:	83 c4 0c             	add    $0xc,%esp
48c0f0:	85 c0                	test   %eax,%eax
48c0f2:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c0f8:	0f 85 5d 01 00 00    	jne    0x48c25b
48c0fe:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48c101:	eb 50                	jmp    0x48c153
48c103:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
48c109:	8d 14 00             	lea    (%eax,%eax,1),%edx
48c10c:	8b 45 80             	mov    -0x80(%ebp),%eax
48c10f:	03 c2                	add    %edx,%eax
48c111:	3b f8                	cmp    %eax,%edi
48c113:	72 38                	jb     0x48c14d
48c115:	8b cf                	mov    %edi,%ecx
48c117:	2b ca                	sub    %edx,%ecx
48c119:	66 8b 01             	mov    (%ecx),%ax
48c11c:	66 3b 85 3c ff ff ff 	cmp    -0xc4(%ebp),%ax
48c123:	75 25                	jne    0x48c14a
48c125:	83 bd 24 ff ff ff 01 	cmpl   $0x1,-0xdc(%ebp)
48c12c:	74 5f                	je     0x48c18d
48c12e:	66 8b 41 02          	mov    0x2(%ecx),%ax
48c132:	66 3b 85 3e ff ff ff 	cmp    -0xc2(%ebp),%ax
48c139:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c13f:	0f 84 16 01 00 00    	je     0x48c25b
48c145:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48c148:	eb 09                	jmp    0x48c153
48c14a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48c14d:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c153:	8b 55 80             	mov    -0x80(%ebp),%edx
48c156:	83 c7 02             	add    $0x2,%edi
48c159:	89 7d fc             	mov    %edi,-0x4(%ebp)
48c15c:	3b f9                	cmp    %ecx,%edi
48c15e:	0f 83 f7 00 00 00    	jae    0x48c25b
48c164:	66 8b 07             	mov    (%edi),%ax
48c167:	c7 45 d4 00 fc 00 00 	movl   $0xfc00,-0x2c(%ebp)
48c16e:	66 23 45 d4          	and    -0x2c(%ebp),%ax
48c172:	c7 45 d4 00 dc 00 00 	movl   $0xdc00,-0x2c(%ebp)
48c179:	66 3b 45 d4          	cmp    -0x2c(%ebp),%ax
48c17d:	75 06                	jne    0x48c185
48c17f:	83 c7 02             	add    $0x2,%edi
48c182:	89 7d fc             	mov    %edi,-0x4(%ebp)
48c185:	3b f9                	cmp    %ecx,%edi
48c187:	0f 82 3e ff ff ff    	jb     0x48c0cb
48c18d:	8b 4d 10             	mov    0x10(%ebp),%ecx
48c190:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c196:	66 83 7f fe 0d       	cmpw   $0xd,-0x2(%edi)
48c19b:	0f 85 e6 dd f7 ff    	jne    0x409f87
48c1a1:	83 f8 01             	cmp    $0x1,%eax
48c1a4:	74 09                	je     0x48c1af
48c1a6:	83 f8 02             	cmp    $0x2,%eax
48c1a9:	0f 85 d8 dd f7 ff    	jne    0x409f87
48c1af:	3b 7d f8             	cmp    -0x8(%ebp),%edi
48c1b2:	0f 83 cf dd f7 ff    	jae    0x409f87
48c1b8:	66 83 3f 0a          	cmpw   $0xa,(%edi)
48c1bc:	0f 85 c5 dd f7 ff    	jne    0x409f87
48c1c2:	83 c7 02             	add    $0x2,%edi
48c1c5:	89 7d fc             	mov    %edi,-0x4(%ebp)
48c1c8:	e9 ba dd f7 ff       	jmp    0x409f87
48c1cd:	3b 7d f8             	cmp    -0x8(%ebp),%edi
48c1d0:	73 be                	jae    0x48c190
48c1d2:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c1d8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48c1db:	85 c0                	test   %eax,%eax
48c1dd:	74 26                	je     0x48c205
48c1df:	3b fa                	cmp    %edx,%edi
48c1e1:	76 6e                	jbe    0x48c251
48c1e3:	6a 00                	push   $0x0
48c1e5:	8d 8d 24 ff ff ff    	lea    -0xdc(%ebp),%ecx
48c1eb:	51                   	push   %ecx
48c1ec:	52                   	push   %edx
48c1ed:	8b d0                	mov    %eax,%edx
48c1ef:	8b cf                	mov    %edi,%ecx
48c1f1:	e8 66 51 fe ff       	call   0x47135c
48c1f6:	83 c4 0c             	add    $0xc,%esp
48c1f9:	85 c0                	test   %eax,%eax
48c1fb:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c201:	75 58                	jne    0x48c25b
48c203:	eb 46                	jmp    0x48c24b
48c205:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
48c20b:	8d 14 00             	lea    (%eax,%eax,1),%edx
48c20e:	8b 45 80             	mov    -0x80(%ebp),%eax
48c211:	03 c2                	add    %edx,%eax
48c213:	3b f8                	cmp    %eax,%edi
48c215:	72 4c                	jb     0x48c263
48c217:	8b cf                	mov    %edi,%ecx
48c219:	2b ca                	sub    %edx,%ecx
48c21b:	66 8b 01             	mov    (%ecx),%ax
48c21e:	66 3b 85 3c ff ff ff 	cmp    -0xc4(%ebp),%ax
48c225:	75 1e                	jne    0x48c245
48c227:	83 bd 24 ff ff ff 01 	cmpl   $0x1,-0xdc(%ebp)
48c22e:	0f 84 59 ff ff ff    	je     0x48c18d
48c234:	66 8b 41 02          	mov    0x2(%ecx),%ax
48c238:	66 3b 85 3e ff ff ff 	cmp    -0xc2(%ebp),%ax
48c23f:	0f 84 48 ff ff ff    	je     0x48c18d
48c245:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
48c24b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48c24e:	8b 55 80             	mov    -0x80(%ebp),%edx
48c251:	83 c7 02             	add    $0x2,%edi