485f67:	85 f6                	test   %esi,%esi
485f69:	74 7e                	je     0x485fe9
485f6b:	83 f8 01             	cmp    $0x1,%eax
485f6e:	0f 8c b3 00 00 00    	jl     0x486027
485f74:	8b 45 f8             	mov    -0x8(%ebp),%eax
485f77:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485f7a:	0f 83 25 4c f8 ff    	jae    0x40aba5
485f80:	0f b7 30             	movzwl (%eax),%esi
485f83:	83 c0 02             	add    $0x2,%eax
485f86:	89 45 f8             	mov    %eax,-0x8(%ebp)
485f89:	8b c6                	mov    %esi,%eax
485f8b:	25 00 fc 00 00       	and    $0xfc00,%eax
485f90:	3d 00 d8 00 00       	cmp    $0xd800,%eax
485f95:	8b 45 f8             	mov    -0x8(%ebp),%eax
485f98:	89 75 d8             	mov    %esi,-0x28(%ebp)
485f9b:	75 24                	jne    0x485fc1
485f9d:	0f b7 00             	movzwl (%eax),%eax
485fa0:	25 ff 03 00 00       	and    $0x3ff,%eax
485fa5:	81 e6 ff 03 00 00    	and    $0x3ff,%esi
485fab:	c1 e6 0a             	shl    $0xa,%esi
485fae:	0b c6                	or     %esi,%eax
485fb0:	05 00 00 01 00       	add    $0x10000,%eax
485fb5:	89 45 d8             	mov    %eax,-0x28(%ebp)
485fb8:	8b 45 f8             	mov    -0x8(%ebp),%eax
485fbb:	83 c0 02             	add    $0x2,%eax
485fbe:	89 45 f8             	mov    %eax,-0x8(%ebp)
485fc1:	8b 5d d8             	mov    -0x28(%ebp),%ebx
485fc4:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
485fc7:	0f 84 a7 45 f8 ff    	je     0x40a574
485fcd:	8b 75 e0             	mov    -0x20(%ebp),%esi
485fd0:	3b f3                	cmp    %ebx,%esi
485fd2:	0f 84 9c 45 f8 ff    	je     0x40a574
485fd8:	8b 5d f4             	mov    -0xc(%ebp),%ebx
485fdb:	43                   	inc    %ebx
485fdc:	3b 5d dc             	cmp    -0x24(%ebp),%ebx
485fdf:	89 5d f4             	mov    %ebx,-0xc(%ebp)
485fe2:	8b 5d 10             	mov    0x10(%ebp),%ebx
485fe5:	7e 8d                	jle    0x485f74
485fe7:	eb 41                	jmp    0x48602a
485fe9:	83 f8 01             	cmp    $0x1,%eax
485fec:	8b 45 f8             	mov    -0x8(%ebp),%eax
485fef:	7c 39                	jl     0x48602a
485ff1:	3b 43 7c             	cmp    0x7c(%ebx),%eax
485ff4:	0f 83 ab 4b f8 ff    	jae    0x40aba5
485ffa:	0f b7 30             	movzwl (%eax),%esi
485ffd:	39 75 e8             	cmp    %esi,-0x18(%ebp)
486000:	0f 84 6e 45 f8 ff    	je     0x40a574
486006:	0f b7 18             	movzwl (%eax),%ebx
486009:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
48600c:	0f 84 62 45 f8 ff    	je     0x40a574
486012:	8b 5d f4             	mov    -0xc(%ebp),%ebx
486015:	43                   	inc    %ebx
486016:	83 c0 02             	add    $0x2,%eax
486019:	3b 5d dc             	cmp    -0x24(%ebp),%ebx
48601c:	89 5d f4             	mov    %ebx,-0xc(%ebp)
48601f:	8b 5d 10             	mov    0x10(%ebp),%ebx
486022:	89 45 f8             	mov    %eax,-0x8(%ebp)
486025:	7e ca                	jle    0x485ff1
486027:	8b 45 f8             	mov    -0x8(%ebp),%eax
48602a:	8b 75 f0             	mov    -0x10(%ebp),%esi
48602d:	39 75 dc             	cmp    %esi,-0x24(%ebp)
486030:	8b 75 e4             	mov    -0x1c(%ebp),%esi
486033:	0f 84 27 43 f8 ff    	je     0x40a360
486039:	85 d2                	test   %edx,%edx
48603b:	0f 85 8d 40 00 00    	jne    0x48a0ce
486041:	8b d0                	mov    %eax,%edx
486043:	89 55 d8             	mov    %edx,-0x28(%ebp)
486046:	85 f6                	test   %esi,%esi
486048:	0f 84 04 01 00 00    	je     0x486152
48604e:	8b 75 dc             	mov    -0x24(%ebp),%esi
486051:	3b 75 f0             	cmp    -0x10(%ebp),%esi
486054:	7d 6e                	jge    0x4860c4
486056:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
48605d:	3b 43 7c             	cmp    0x7c(%ebx),%eax
486060:	0f 83 c2 00 00 00    	jae    0x486128
486066:	0f b7 00             	movzwl (%eax),%eax
486069:	8b 55 f8             	mov    -0x8(%ebp),%edx
48606c:	89 45 c8             	mov    %eax,-0x38(%ebp)
48606f:	25 00 fc 00 00       	and    $0xfc00,%eax
486074:	3d 00 d8 00 00       	cmp    $0xd800,%eax
486079:	75 25                	jne    0x4860a0
48607b:	0f b7 42 02          	movzwl 0x2(%edx),%eax
48607f:	81 65 c8 ff 03 00 00 	andl   $0x3ff,-0x38(%ebp)
486086:	c1 65 c8 0a          	shll   $0xa,-0x38(%ebp)
48608a:	25 ff 03 00 00       	and    $0x3ff,%eax
48608f:	0b 45 c8             	or     -0x38(%ebp),%eax
486092:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
486099:	05 00 00 01 00       	add    $0x10000,%eax
48609e:	eb 03                	jmp    0x4860a3
4860a0:	8b 45 c8             	mov    -0x38(%ebp),%eax
4860a3:	39 45 e8             	cmp    %eax,-0x18(%ebp)
4860a6:	74 16                	je     0x4860be
4860a8:	39 45 e0             	cmp    %eax,-0x20(%ebp)
4860ab:	74 11                	je     0x4860be
4860ad:	8b 45 f4             	mov    -0xc(%ebp),%eax
4860b0:	46                   	inc    %esi
4860b1:	8d 14 42             	lea    (%edx,%eax,2),%edx
4860b4:	89 55 f8             	mov    %edx,-0x8(%ebp)
4860b7:	8b c2                	mov    %edx,%eax
4860b9:	3b 75 f0             	cmp    -0x10(%ebp),%esi
4860bc:	7c 98                	jl     0x486056
4860be:	8b 45 f8             	mov    -0x8(%ebp),%eax
4860c1:	8b 55 d8             	mov    -0x28(%ebp),%edx
4860c4:	85 c9                	test   %ecx,%ecx
4860c6:	0f 85 94 42 f8 ff    	jne    0x40a360
4860cc:	3b c2                	cmp    %edx,%eax
4860ce:	0f 84 fd 42 f8 ff    	je     0x40a3d1
4860d4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4860d7:	8b 75 d8             	mov    -0x28(%ebp),%esi
4860da:	8b 45 18             	mov    0x18(%ebp),%eax
4860dd:	40                   	inc    %eax
4860de:	50                   	push   %eax
4860df:	ff 75 14             	push   0x14(%ebp)
4860e2:	8b d7                	mov    %edi,%edx
4860e4:	53                   	push   %ebx
4860e5:	ff 75 0c             	push   0xc(%ebp)
4860e8:	ff 75 08             	push   0x8(%ebp)
4860eb:	e8 10 42 f8 ff       	call   0x40a300
4860f0:	83 c4 14             	add    $0x14,%esp
4860f3:	85 c0                	test   %eax,%eax
4860f5:	0f 85 cc 43 f8 ff    	jne    0x40a4c7
4860fb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4860fe:	83 e9 02             	sub    $0x2,%ecx
486101:	ba 00 fc 00 00       	mov    $0xfc00,%edx
486106:	66 8b 01             	mov    (%ecx),%ax
486109:	66 23 c2             	and    %dx,%ax
48610c:	ba 00 dc 00 00       	mov    $0xdc00,%edx
486111:	89 4d f8             	mov    %ecx,-0x8(%ebp)
486114:	66 3b c2             	cmp    %dx,%ax
486117:	75 06                	jne    0x48611f
486119:	83 e9 02             	sub    $0x2,%ecx
48611c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48611f:	3b ce                	cmp    %esi,%ecx
486121:	75 b7                	jne    0x4860da
486123:	e9 a9 42 f8 ff       	jmp    0x40a3d1
486128:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
48612f:	74 90                	je     0x4860c1
486131:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
486137:	76 88                	jbe    0x4860c1
486139:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
486140:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
486147:	0f 8f e0 df ff ff    	jg     0x48412d
48614d:	e9 6f ff ff ff       	jmp    0x4860c1
486152:	8b 55 dc             	mov    -0x24(%ebp),%edx
486155:	3b 55 f0             	cmp    -0x10(%ebp),%edx
486158:	7d 50                	jge    0x4861aa
48615a:	8b 75 e8             	mov    -0x18(%ebp),%esi
48615d:	3b 43 7c             	cmp    0x7c(%ebx),%eax
486160:	73 23                	jae    0x486185
486162:	0f b7 18             	movzwl (%eax),%ebx
486165:	3b f3                	cmp    %ebx,%esi
486167:	8b 5d 10             	mov    0x10(%ebp),%ebx
48616a:	74 3e                	je     0x4861aa
48616c:	0f b7 30             	movzwl (%eax),%esi
48616f:	39 75 e0             	cmp    %esi,-0x20(%ebp)
486172:	8b 75 e8             	mov    -0x18(%ebp),%esi
486175:	74 33                	je     0x4861aa
486177:	83 c0 02             	add    $0x2,%eax
48617a:	42                   	inc    %edx
48617b:	89 45 f8             	mov    %eax,-0x8(%ebp)
48617e:	3b 55 f0             	cmp    -0x10(%ebp),%edx
486181:	7c da                	jl     0x48615d
486183:	eb 25                	jmp    0x4861aa
486185:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
48618c:	74 1c                	je     0x4861aa
48618e:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
486194:	76 14                	jbe    0x4861aa
486196:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
48619d:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4861a4:	0f 8f 83 df ff ff    	jg     0x48412d
4861aa:	85 c9                	test   %ecx,%ecx
4861ac:	0f 85 ae 41 f8 ff    	jne    0x40a360
4861b2:	8b 75 d8             	mov    -0x28(%ebp),%esi
4861b5:	3b c6                	cmp    %esi,%eax
4861b7:	0f 84 14 42 f8 ff    	je     0x40a3d1
4861bd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4861c0:	8b 45 18             	mov    0x18(%ebp),%eax
4861c3:	40                   	inc    %eax
4861c4:	50                   	push   %eax
4861c5:	ff 75 14             	push   0x14(%ebp)
4861c8:	8b d7                	mov    %edi,%edx
4861ca:	53                   	push   %ebx
4861cb:	ff 75 0c             	push   0xc(%ebp)
4861ce:	ff 75 08             	push   0x8(%ebp)
4861d1:	e8 2a 41 f8 ff       	call   0x40a300
4861d6:	83 c4 14             	add    $0x14,%esp
4861d9:	85 c0                	test   %eax,%eax
4861db:	0f 85 e6 42 f8 ff    	jne    0x40a4c7
4861e1:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4861e4:	83 e9 02             	sub    $0x2,%ecx
4861e7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4861ea:	3b ce                	cmp    %esi,%ecx
4861ec:	75 d2                	jne    0x4861c0
4861ee:	e9 de 41 f8 ff       	jmp    0x40a3d1
4861f3:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4861fa:	85 f6                	test   %esi,%esi
4861fc:	74 7b                	je     0x486279
4861fe:	8b 5d 10             	mov    0x10(%ebp),%ebx
486201:	83 f8 01             	cmp    $0x1,%eax
486204:	0f 8c a1 00 00 00    	jl     0x4862ab
48620a:	8b 45 f8             	mov    -0x8(%ebp),%eax
48620d:	3b 43 7c             	cmp    0x7c(%ebx),%eax
486210:	0f 83 8f 49 f8 ff    	jae    0x40aba5
486216:	0f b7 30             	movzwl (%eax),%esi
486219:	83 c0 02             	add    $0x2,%eax
48621c:	89 45 f8             	mov    %eax,-0x8(%ebp)
48621f:	8b c6                	mov    %esi,%eax
486221:	25 00 fc 00 00       	and    $0xfc00,%eax
486226:	3d 00 d8 00 00       	cmp    $0xd800,%eax
48622b:	8b 45 f8             	mov    -0x8(%ebp),%eax
48622e:	89 75 ec             	mov    %esi,-0x14(%ebp)
486231:	75 26                	jne    0x486259
486233:	0f b7 00             	movzwl (%eax),%eax
486236:	8b de                	mov    %esi,%ebx
486238:	25 ff 03 00 00       	and    $0x3ff,%eax
48623d:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
486243:	c1 e3 0a             	shl    $0xa,%ebx
486246:	0b c3                	or     %ebx,%eax
486248:	05 00 00 01 00       	add    $0x10000,%eax
48624d:	89 45 ec             	mov    %eax,-0x14(%ebp)
486250:	8b 45 f8             	mov    -0x8(%ebp),%eax
486253:	83 c0 02             	add    $0x2,%eax
486256:	89 45 f8             	mov    %eax,-0x8(%ebp)
486259:	8b 75 ec             	mov    -0x14(%ebp),%esi
48625c:	39 75 e8             	cmp    %esi,-0x18(%ebp)
48625f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
486262:	0f 84 0c 43 f8 ff    	je     0x40a574
486268:	8b 5d f4             	mov    -0xc(%ebp),%ebx
48626b:	43                   	inc    %ebx
48626c:	3b 5d dc             	cmp    -0x24(%ebp),%ebx
48626f:	89 5d f4             	mov    %ebx,-0xc(%ebp)
486272:	8b 5d 10             	mov    0x10(%ebp),%ebx
486275:	7e 93                	jle    0x48620a
486277:	eb 35                	jmp    0x4862ae
486279:	83 f8 01             	cmp    $0x1,%eax
48627c:	7c 2d                	jl     0x4862ab
48627e:	8b 75 f8             	mov    -0x8(%ebp),%esi
486281:	3b 73 7c             	cmp    0x7c(%ebx),%esi
486284:	0f 83 28 3c 00 00    	jae    0x489eb2
48628a:	0f b7 06             	movzwl (%esi),%eax
48628d:	83 c6 02             	add    $0x2,%esi
486290:	89 75 f8             	mov    %esi,-0x8(%ebp)
486293:	39 45 e8             	cmp    %eax,-0x18(%ebp)
486296:	0f 84 d8 42 f8 ff    	je     0x40a574
48629c:	8b 45 f4             	mov    -0xc(%ebp),%eax
48629f:	40                   	inc    %eax
4862a0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4862a3:	3b 45 dc             	cmp    -0x24(%ebp),%eax
4862a6:	7e d9                	jle    0x486281
4862a8:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4862ab:	8b 45 f8             	mov    -0x8(%ebp),%eax
4862ae:	8b 5d f0             	mov    -0x10(%ebp),%ebx
4862b1:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
4862b4:	8b 5d 10             	mov    0x10(%ebp),%ebx
4862b7:	0f 84 a3 40 f8 ff    	je     0x40a360
4862bd:	85 d2                	test   %edx,%edx
4862bf:	0f 85 1b 3f 00 00    	jne    0x48a1e0
4862c5:	8b d0                	mov    %eax,%edx
4862c7:	89 55 e0             	mov    %edx,-0x20(%ebp)
4862ca:	85 f6                	test   %esi,%esi
4862cc:	0f 84 ff 00 00 00    	je     0x4863d1
4862d2:	8b 75 dc             	mov    -0x24(%ebp),%esi
4862d5:	3b 75 f0             	cmp    -0x10(%ebp),%esi
4862d8:	7d 69                	jge    0x486343
4862da:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4862e1:	3b 43 7c             	cmp    0x7c(%ebx),%eax
4862e4:	0f 83 bd 00 00 00    	jae    0x4863a7
4862ea:	0f b7 00             	movzwl (%eax),%eax
4862ed:	8b 55 f8             	mov    -0x8(%ebp),%edx
4862f0:	89 45 d8             	mov    %eax,-0x28(%ebp)
4862f3:	25 00 fc 00 00       	and    $0xfc00,%eax
4862f8:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4862fd:	75 25                	jne    0x486324
4862ff:	0f b7 42 02          	movzwl 0x2(%edx),%eax
486303:	81 65 d8 ff 03 00 00 	andl   $0x3ff,-0x28(%ebp)
48630a:	c1 65 d8 0a          	shll   $0xa,-0x28(%ebp)
48630e:	25 ff 03 00 00       	and    $0x3ff,%eax
486313:	0b 45 d8             	or     -0x28(%ebp),%eax
486316:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
48631d:	05 00 00 01 00       	add    $0x10000,%eax
486322:	eb 03                	jmp    0x486327
486324:	8b 45 d8             	mov    -0x28(%ebp),%eax
486327:	39 45 e8             	cmp    %eax,-0x18(%ebp)
48632a:	74 11                	je     0x48633d
48632c:	8b 45 f4             	mov    -0xc(%ebp),%eax
48632f:	46                   	inc    %esi
486330:	8d 14 42             	lea    (%edx,%eax,2),%edx
486333:	89 55 f8             	mov    %edx,-0x8(%ebp)
486336:	8b c2                	mov    %edx,%eax
486338:	3b 75 f0             	cmp    -0x10(%ebp),%esi
48633b:	7c 9d                	jl     0x4862da
48633d:	8b 45 f8             	mov    -0x8(%ebp),%eax
486340:	8b 55 e0             	mov    -0x20(%ebp),%edx
486343:	85 c9                	test   %ecx,%ecx
486345:	0f 85 15 40 f8 ff    	jne    0x40a360
48634b:	3b c2                	cmp    %edx,%eax
48634d:	0f 84 7e 40 f8 ff    	je     0x40a3d1
486353:	8b 4d f8             	mov    -0x8(%ebp),%ecx
486356:	8b 75 e0             	mov    -0x20(%ebp),%esi
486359:	8b 45 18             	mov    0x18(%ebp),%eax
48635c:	40                   	inc    %eax
48635d:	50                   	push   %eax
48635e:	ff 75 14             	push   0x14(%ebp)
486361:	8b d7                	mov    %edi,%edx
486363:	53                   	push   %ebx
486364:	ff 75 0c             	push   0xc(%ebp)
486367:	ff 75 08             	push   0x8(%ebp)
48636a:	e8 91 3f f8 ff       	call   0x40a300
48636f:	83 c4 14             	add    $0x14,%esp
486372:	85 c0                	test   %eax,%eax
486374:	0f 85 4d 41 f8 ff    	jne    0x40a4c7
48637a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
48637d:	83 e9 02             	sub    $0x2,%ecx
486380:	ba 00 fc 00 00       	mov    $0xfc00,%edx
486385:	66 8b 01             	mov    (%ecx),%ax
486388:	66 23 c2             	and    %dx,%ax
48638b:	ba 00 dc 00 00       	mov    $0xdc00,%edx
486390:	89 4d f8             	mov    %ecx,-0x8(%ebp)
486393:	66 3b c2             	cmp    %dx,%ax
486396:	75 06                	jne    0x48639e
486398:	83 e9 02             	sub    $0x2,%ecx
48639b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
48639e:	3b ce                	cmp    %esi,%ecx
4863a0:	75 b7                	jne    0x486359
4863a2:	e9 2a 40 f8 ff       	jmp    0x40a3d1
4863a7:	83 bb 8c 00 00 00 00 	cmpl   $0x0,0x8c(%ebx)
4863ae:	74 90                	je     0x486340
4863b0:	3b 83 88 00 00 00    	cmp    0x88(%ebx),%eax
4863b6:	76 88                	jbe    0x486340
4863b8:	c7 43 68 01 00 00 00 	movl   $0x1,0x68(%ebx)
4863bf:	83 bb 8c 00 00 00 01 	cmpl   $0x1,0x8c(%ebx)
4863c6:	0f 8f 61 dd ff ff    	jg     0x48412d
4863cc:	e9 6f ff ff ff       	jmp    0x486340
4863d1:	8b 55 dc             	mov    -0x24(%ebp),%edx
4863d4:	3b 55 f0             	cmp    -0x10(%ebp),%edx
4863d7:	7d 1f                	jge    0x4863f8
4863d9:	8b 75 e8             	mov    -0x18(%ebp),%esi
4863dc:	3b 43 7c             	cmp    0x7c(%ebx),%eax
4863df:	73 60                	jae    0x486441
4863e1:	0f b7 00             	movzwl (%eax),%eax
4863e4:	3b f0                	cmp    %eax,%esi
4863e6:	74 0d                	je     0x4863f5
4863e8:	83 45 f8 02          	addl   $0x2,-0x8(%ebp)
4863ec:	8b 45 f8             	mov    -0x8(%ebp),%eax
4863ef:	42                   	inc    %edx
4863f0:	3b 55 f0             	cmp    -0x10(%ebp),%edx
4863f3:	7c e7                	jl     0x4863dc
4863f5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4863f8:	85 c9                	test   %ecx,%ecx
4863fa:	0f 85 60 3f f8 ff    	jne    0x40a360