487d0d:	8b 5d 10             	mov    0x10(%ebp),%ebx
487d10:	83 f9 01             	cmp    $0x1,%ecx
487d13:	8b 4d f8             	mov    -0x8(%ebp),%ecx
487d16:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
487d1d:	0f 8c 72 2d f8 ff    	jl     0x40aa95
487d23:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487d26:	0f 83 2b 20 00 00    	jae    0x489d57
487d2c:	0f b7 01             	movzwl (%ecx),%eax
487d2f:	b9 ff 00 00 00       	mov    $0xff,%ecx
487d34:	66 3b c1             	cmp    %cx,%ax
487d37:	0f 87 37 28 f8 ff    	ja     0x40a574
487d3d:	8b c8                	mov    %eax,%ecx
487d3f:	8b 43 44             	mov    0x44(%ebx),%eax
487d42:	f6 04 01 10          	testb  $0x10,(%ecx,%eax,1)
487d46:	0f 84 28 28 f8 ff    	je     0x40a574
487d4c:	8b 45 f4             	mov    -0xc(%ebp),%eax
487d4f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
487d52:	40                   	inc    %eax
487d53:	83 c1 02             	add    $0x2,%ecx
487d56:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487d59:	89 45 f4             	mov    %eax,-0xc(%ebp)
487d5c:	3b 45 f0             	cmp    -0x10(%ebp),%eax
487d5f:	7e c2                	jle    0x487d23
487d61:	e9 2c 2d f8 ff       	jmp    0x40aa92
487d66:	89 4d c8             	mov    %ecx,-0x38(%ebp)
487d69:	85 d2                	test   %edx,%edx
487d6b:	0f 88 1a 09 00 00    	js     0x48868b
487d71:	83 fa 0a             	cmp    $0xa,%edx
487d74:	0f 87 9d 1d 00 00    	ja     0x489b17
487d7a:	ff 24 95 fe b9 48 00 	jmp    *0x48b9fe(,%edx,4)
487d81:	8b 55 f0             	mov    -0x10(%ebp),%edx
487d84:	3b 55 dc             	cmp    -0x24(%ebp),%edx
487d87:	0f 8d 98 08 00 00    	jge    0x488625
487d8d:	8b 43 7c             	mov    0x7c(%ebx),%eax
487d90:	89 45 d4             	mov    %eax,-0x2c(%ebp)
487d93:	8b 45 e4             	mov    -0x1c(%ebp),%eax
487d96:	8b 5d 10             	mov    0x10(%ebp),%ebx
487d99:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
487da0:	3b 4d d4             	cmp    -0x2c(%ebp),%ecx
487da3:	73 4d                	jae    0x487df2
487da5:	85 c0                	test   %eax,%eax
487da7:	74 25                	je     0x487dce
487da9:	66 8b 01             	mov    (%ecx),%ax
487dac:	c7 45 ec 00 fc 00 00 	movl   $0xfc00,-0x14(%ebp)
487db3:	66 23 45 ec          	and    -0x14(%ebp),%ax
487db7:	c7 45 ec 00 d8 00 00 	movl   $0xd800,-0x14(%ebp)
487dbe:	66 3b 45 ec          	cmp    -0x14(%ebp),%ax
487dc2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
487dc5:	75 07                	jne    0x487dce
487dc7:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
487dce:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
487dd2:	8b 75 d0             	mov    -0x30(%ebp),%esi
487dd5:	0f 85 4a 08 00 00    	jne    0x488625
487ddb:	8b 5d f4             	mov    -0xc(%ebp),%ebx
487dde:	42                   	inc    %edx
487ddf:	8d 0c 59             	lea    (%ecx,%ebx,2),%ecx
487de2:	8b 5d 10             	mov    0x10(%ebp),%ebx
487de5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487de8:	3b 55 dc             	cmp    -0x24(%ebp),%edx
487deb:	7c a9                	jl     0x487d96
487ded:	e9 33 08 00 00       	jmp    0x488625
487df2:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
487df9:	0f 84 26 08 00 00    	je     0x488625
487dff:	3b 8b 88 00 00 00    	cmp    0x88(%ebx),%ecx
487e05:	0f 86 1a 08 00 00    	jbe    0x488625
487e0b:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
487e12:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
487e19:	0f 8e 06 08 00 00    	jle    0x488625
487e1f:	b8 f4 ff ff ff       	mov    $0xfffffff4,%eax
487e24:	e9 9e 26 f8 ff       	jmp    0x40a4c7
487e29:	8b 55 dc             	mov    -0x24(%ebp),%edx
487e2c:	39 55 f0             	cmp    %edx,-0x10(%ebp)
487e2f:	0f 8d f0 07 00 00    	jge    0x488625
487e35:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
487e3c:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487e3f:	73 b1                	jae    0x487df2
487e41:	0f b7 11             	movzwl (%ecx),%edx
487e44:	89 55 f4             	mov    %edx,-0xc(%ebp)
487e47:	85 c0                	test   %eax,%eax
487e49:	74 32                	je     0x487e7d
487e4b:	8b c2                	mov    %edx,%eax
487e4d:	25 00 fc 00 00       	and    $0xfc00,%eax
487e52:	3d 00 d8 00 00       	cmp    $0xd800,%eax
487e57:	75 24                	jne    0x487e7d
487e59:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
487e5d:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
487e63:	25 ff 03 00 00       	and    $0x3ff,%eax
487e68:	c1 e2 0a             	shl    $0xa,%edx
487e6b:	0b d0                	or     %eax,%edx
487e6d:	81 c2 00 00 01 00    	add    $0x10000,%edx
487e73:	89 55 f4             	mov    %edx,-0xc(%ebp)
487e76:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
487e7d:	8b c2                	mov    %edx,%eax
487e7f:	99                   	cltd
487e80:	83 e2 7f             	and    $0x7f,%edx
487e83:	03 c2                	add    %edx,%eax
487e85:	8b 55 f4             	mov    -0xc(%ebp),%edx
487e88:	c1 f8 07             	sar    $0x7,%eax
487e8b:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
487e92:	c1 e0 07             	shl    $0x7,%eax
487e95:	81 e2 7f 00 00 80    	and    $0x8000007f,%edx
487e9b:	79 05                	jns    0x487ea2
487e9d:	4a                   	dec    %edx
487e9e:	83 ca 80             	or     $0xffffff80,%edx
487ea1:	42                   	inc    %edx
487ea2:	03 c2                	add    %edx,%eax
487ea4:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
487eab:	00
487eac:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
487eb3:	00
487eb4:	83 f8 09             	cmp    $0x9,%eax
487eb7:	74 0e                	je     0x487ec7
487eb9:	83 f8 05             	cmp    $0x5,%eax
487ebc:	74 09                	je     0x487ec7
487ebe:	83 f8 08             	cmp    $0x8,%eax
487ec1:	74 04                	je     0x487ec7
487ec3:	33 c0                	xor    %eax,%eax
487ec5:	eb 05                	jmp    0x487ecc
487ec7:	b8 01 00 00 00       	mov    $0x1,%eax
487ecc:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
487ecf:	0f 84 50 07 00 00    	je     0x488625
487ed5:	8b 45 d4             	mov    -0x2c(%ebp),%eax
487ed8:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
487edb:	8b 45 f0             	mov    -0x10(%ebp),%eax
487ede:	40                   	inc    %eax
487edf:	3b 45 dc             	cmp    -0x24(%ebp),%eax
487ee2:	89 45 f0             	mov    %eax,-0x10(%ebp)
487ee5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
487ee8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487eeb:	0f 8c 44 ff ff ff    	jl     0x487e35
487ef1:	e9 2f 07 00 00       	jmp    0x488625
487ef6:	8b 55 dc             	mov    -0x24(%ebp),%edx
487ef9:	39 55 f0             	cmp    %edx,-0x10(%ebp)
487efc:	0f 8d 23 07 00 00    	jge    0x488625
487f02:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
487f09:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487f0c:	0f 83 e0 fe ff ff    	jae    0x487df2
487f12:	0f b7 11             	movzwl (%ecx),%edx
487f15:	89 55 f4             	mov    %edx,-0xc(%ebp)
487f18:	85 c0                	test   %eax,%eax
487f1a:	74 32                	je     0x487f4e
487f1c:	8b c2                	mov    %edx,%eax
487f1e:	25 00 fc 00 00       	and    $0xfc00,%eax
487f23:	3d 00 d8 00 00       	cmp    $0xd800,%eax
487f28:	75 24                	jne    0x487f4e
487f2a:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
487f2e:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
487f34:	25 ff 03 00 00       	and    $0x3ff,%eax
487f39:	c1 e2 0a             	shl    $0xa,%edx
487f3c:	0b d0                	or     %eax,%edx
487f3e:	81 c2 00 00 01 00    	add    $0x10000,%edx
487f44:	89 55 f4             	mov    %edx,-0xc(%ebp)
487f47:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
487f4e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
487f51:	8b c2                	mov    %edx,%eax
487f53:	99                   	cltd
487f54:	83 e2 7f             	and    $0x7f,%edx
487f57:	03 c2                	add    %edx,%eax
487f59:	c1 f8 07             	sar    $0x7,%eax
487f5c:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
487f63:	c1 e0 07             	shl    $0x7,%eax
487f66:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
487f6c:	79 05                	jns    0x487f73
487f6e:	49                   	dec    %ecx
487f6f:	83 c9 80             	or     $0xffffff80,%ecx
487f72:	41                   	inc    %ecx
487f73:	8b 55 bc             	mov    -0x44(%ebp),%edx
487f76:	03 c1                	add    %ecx,%eax
487f78:	33 c9                	xor    %ecx,%ecx
487f7a:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
487f81:	00
487f82:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
487f89:	00
487f8a:	39 14 85 80 61 4b 00 	cmp    %edx,0x4b6180(,%eax,4)
487f91:	0f 94 c1             	sete   %cl
487f94:	3b 4d c4             	cmp    -0x3c(%ebp),%ecx
487f97:	8b 4d f8             	mov    -0x8(%ebp),%ecx
487f9a:	0f 84 85 06 00 00    	je     0x488625
487fa0:	8b 45 d4             	mov    -0x2c(%ebp),%eax
487fa3:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
487fa6:	8b 45 f0             	mov    -0x10(%ebp),%eax
487fa9:	40                   	inc    %eax
487faa:	3b 45 dc             	cmp    -0x24(%ebp),%eax
487fad:	89 45 f0             	mov    %eax,-0x10(%ebp)
487fb0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
487fb3:	89 4d f8             	mov    %ecx,-0x8(%ebp)
487fb6:	0f 8c 46 ff ff ff    	jl     0x487f02
487fbc:	e9 64 06 00 00       	jmp    0x488625
487fc1:	8b 55 dc             	mov    -0x24(%ebp),%edx
487fc4:	39 55 f0             	cmp    %edx,-0x10(%ebp)
487fc7:	0f 8d 58 06 00 00    	jge    0x488625
487fcd:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
487fd4:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
487fd7:	0f 83 15 fe ff ff    	jae    0x487df2
487fdd:	0f b7 11             	movzwl (%ecx),%edx
487fe0:	89 55 f4             	mov    %edx,-0xc(%ebp)
487fe3:	85 c0                	test   %eax,%eax
487fe5:	74 32                	je     0x488019
487fe7:	8b c2                	mov    %edx,%eax
487fe9:	25 00 fc 00 00       	and    $0xfc00,%eax
487fee:	3d 00 d8 00 00       	cmp    $0xd800,%eax
487ff3:	75 24                	jne    0x488019
487ff5:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
487ff9:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
487fff:	25 ff 03 00 00       	and    $0x3ff,%eax
488004:	c1 e2 0a             	shl    $0xa,%edx
488007:	0b d0                	or     %eax,%edx
488009:	81 c2 00 00 01 00    	add    $0x10000,%edx
48800f:	89 55 f4             	mov    %edx,-0xc(%ebp)
488012:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
488019:	8b 4d f4             	mov    -0xc(%ebp),%ecx
48801c:	8b c2                	mov    %edx,%eax
48801e:	99                   	cltd
48801f:	83 e2 7f             	and    $0x7f,%edx
488022:	03 c2                	add    %edx,%eax
488024:	c1 f8 07             	sar    $0x7,%eax
488027:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
48802e:	c1 e0 07             	shl    $0x7,%eax
488031:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
488037:	79 05                	jns    0x48803e
488039:	49                   	dec    %ecx
48803a:	83 c9 80             	or     $0xffffff80,%ecx
48803d:	41                   	inc    %ecx
48803e:	03 c1                	add    %ecx,%eax
488040:	33 c9                	xor    %ecx,%ecx
488042:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
488049:	00
48804a:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
488051:	00
488052:	3b 45 bc             	cmp    -0x44(%ebp),%eax
488055:	0f 94 c1             	sete   %cl
488058:	3b 4d c4             	cmp    -0x3c(%ebp),%ecx
48805b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48805e:	0f 84 c1 05 00 00    	je     0x488625
488064:	8b 45 d4             	mov    -0x2c(%ebp),%eax
488067:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
48806a:	8b 45 f0             	mov    -0x10(%ebp),%eax
48806d:	40                   	inc    %eax
48806e:	3b 45 dc             	cmp    -0x24(%ebp),%eax
488071:	89 45 f0             	mov    %eax,-0x10(%ebp)
488074:	8b 45 e4             	mov    -0x1c(%ebp),%eax
488077:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48807a:	0f 8c 4d ff ff ff    	jl     0x487fcd
488080:	e9 a0 05 00 00       	jmp    0x488625
488085:	8b 55 dc             	mov    -0x24(%ebp),%edx
488088:	39 55 f0             	cmp    %edx,-0x10(%ebp)
48808b:	0f 8d 94 05 00 00    	jge    0x488625
488091:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
488098:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
48809b:	0f 83 51 fd ff ff    	jae    0x487df2
4880a1:	0f b7 11             	movzwl (%ecx),%edx
4880a4:	89 55 f4             	mov    %edx,-0xc(%ebp)
4880a7:	85 c0                	test   %eax,%eax
4880a9:	74 32                	je     0x4880dd
4880ab:	8b c2                	mov    %edx,%eax
4880ad:	25 00 fc 00 00       	and    $0xfc00,%eax
4880b2:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4880b7:	75 24                	jne    0x4880dd
4880b9:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
4880bd:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
4880c3:	25 ff 03 00 00       	and    $0x3ff,%eax
4880c8:	c1 e2 0a             	shl    $0xa,%edx
4880cb:	0b d0                	or     %eax,%edx
4880cd:	81 c2 00 00 01 00    	add    $0x10000,%edx
4880d3:	89 55 f4             	mov    %edx,-0xc(%ebp)
4880d6:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
4880dd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4880e0:	8b c2                	mov    %edx,%eax
4880e2:	99                   	cltd
4880e3:	83 e2 7f             	and    $0x7f,%edx
4880e6:	03 c2                	add    %edx,%eax
4880e8:	c1 f8 07             	sar    $0x7,%eax
4880eb:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
4880f2:	c1 e0 07             	shl    $0x7,%eax
4880f5:	81 e1 7f 00 00 80    	and    $0x8000007f,%ecx
4880fb:	79 05                	jns    0x488102
4880fd:	49                   	dec    %ecx
4880fe:	83 c9 80             	or     $0xffffff80,%ecx
488101:	41                   	inc    %ecx
488102:	03 c1                	add    %ecx,%eax
488104:	33 c9                	xor    %ecx,%ecx
488106:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
48810d:	00
48810e:	0f b6 04 c5 08 b1 4a 	movzbl 0x4ab108(,%eax,8),%eax
488115:	00
488116:	3b 45 bc             	cmp    -0x44(%ebp),%eax
488119:	0f 94 c1             	sete   %cl
48811c:	3b 4d c4             	cmp    -0x3c(%ebp),%ecx
48811f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
488122:	0f 84 fd 04 00 00    	je     0x488625
488128:	8b 45 d4             	mov    -0x2c(%ebp),%eax
48812b:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
48812e:	8b 45 f0             	mov    -0x10(%ebp),%eax
488131:	40                   	inc    %eax
488132:	3b 45 dc             	cmp    -0x24(%ebp),%eax
488135:	89 45 f0             	mov    %eax,-0x10(%ebp)
488138:	8b 45 e4             	mov    -0x1c(%ebp),%eax
48813b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48813e:	0f 8c 4d ff ff ff    	jl     0x488091
488144:	e9 dc 04 00 00       	jmp    0x488625
488149:	8b 55 dc             	mov    -0x24(%ebp),%edx
48814c:	39 55 f0             	cmp    %edx,-0x10(%ebp)
48814f:	0f 8d d0 04 00 00    	jge    0x488625
488155:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
48815c:	3b 4b 7c             	cmp    0x7c(%ebx),%ecx
48815f:	0f 83 8d fc ff ff    	jae    0x487df2
488165:	0f b7 11             	movzwl (%ecx),%edx
488168:	89 55 f4             	mov    %edx,-0xc(%ebp)
48816b:	85 c0                	test   %eax,%eax
48816d:	74 32                	je     0x4881a1
48816f:	8b c2                	mov    %edx,%eax
488171:	25 00 fc 00 00       	and    $0xfc00,%eax
488176:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48817b:	75 24                	jne    0x4881a1
48817d:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
488181:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
488187:	25 ff 03 00 00       	and    $0x3ff,%eax
48818c:	c1 e2 0a             	shl    $0xa,%edx
48818f:	0b d0                	or     %eax,%edx
488191:	81 c2 00 00 01 00    	add    $0x10000,%edx
488197:	89 55 f4             	mov    %edx,-0xc(%ebp)
48819a:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%ebp)
4881a1:	8b c2                	mov    %edx,%eax
4881a3:	99                   	cltd
4881a4:	83 e2 7f             	and    $0x7f,%edx
4881a7:	03 c2                	add    %edx,%eax
4881a9:	8b 55 f4             	mov    -0xc(%ebp),%edx
4881ac:	c1 f8 07             	sar    $0x7,%eax
4881af:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
4881b6:	c1 e0 07             	shl    $0x7,%eax
4881b9:	81 e2 7f 00 00 80    	and    $0x8000007f,%edx
4881bf:	79 05                	jns    0x4881c6
4881c1:	4a                   	dec    %edx
4881c2:	83 ca 80             	or     $0xffffff80,%edx
4881c5:	42                   	inc    %edx
4881c6:	03 c2                	add    %edx,%eax
4881c8:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
4881cf:	00
4881d0:	0f b6 04 c5 09 b1 4a 	movzbl 0x4ab109(,%eax,8),%eax
4881d7:	00
4881d8:	8b 04 85 80 61 4b 00 	mov    0x4b6180(,%eax,4),%eax
4881df:	83 f8 01             	cmp    $0x1,%eax
4881e2:	74 09                	je     0x4881ed
4881e4:	83 f8 03             	cmp    $0x3,%eax
4881e7:	74 04                	je     0x4881ed
4881e9:	33 c0                	xor    %eax,%eax
4881eb:	eb 05                	jmp    0x4881f2
4881ed:	b8 01 00 00 00       	mov    $0x1,%eax
4881f2:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
4881f5:	0f 84 2a 04 00 00    	je     0x488625