4711e5:	73 ef                	jae    0x4711d6
4711e7:	0f b7 04 37          	movzwl (%edi,%esi,1),%eax
4711eb:	0f b7 0e             	movzwl (%esi),%ecx
4711ee:	89 45 08             	mov    %eax,0x8(%ebp)
4711f1:	3d ff 00 00 00       	cmp    $0xff,%eax
4711f6:	77 10                	ja     0x471208
4711f8:	8b 43 3c             	mov    0x3c(%ebx),%eax
4711fb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4711fe:	0f b6 1c 18          	movzbl (%eax,%ebx,1),%ebx
471202:	89 5d 08             	mov    %ebx,0x8(%ebp)
471205:	8b 5d 0c             	mov    0xc(%ebp),%ebx
471208:	81 f9 ff 00 00 00    	cmp    $0xff,%ecx
47120e:	77 07                	ja     0x471217
471210:	8b 43 3c             	mov    0x3c(%ebx),%eax
471213:	0f b6 0c 08          	movzbl (%eax,%ecx,1),%ecx
471217:	39 4d 08             	cmp    %ecx,0x8(%ebp)
47121a:	0f 85 c4 fe ff ff    	jne    0x4710e4
471220:	83 c6 02             	add    $0x2,%esi
471223:	85 d2                	test   %edx,%edx
471225:	7f ba                	jg     0x4711e1
471227:	eb 25                	jmp    0x47124e
471229:	85 d2                	test   %edx,%edx
47122b:	7e 21                	jle    0x47124e
47122d:	8b 5b 7c             	mov    0x7c(%ebx),%ebx
471230:	4a                   	dec    %edx
471231:	3b f3                	cmp    %ebx,%esi
471233:	73 a1                	jae    0x4711d6
471235:	66 8b 0f             	mov    (%edi),%cx
471238:	66 8b 06             	mov    (%esi),%ax
47123b:	83 c6 02             	add    $0x2,%esi
47123e:	83 c7 02             	add    $0x2,%edi
471241:	66 3b c8             	cmp    %ax,%cx
471244:	0f 85 9a fe ff ff    	jne    0x4710e4
47124a:	85 d2                	test   %edx,%edx
47124c:	7f e2                	jg     0x471230
47124e:	2b 75 f8             	sub    -0x8(%ebp),%esi
471251:	d1 fe                	sar    $1,%esi
471253:	8b c6                	mov    %esi,%eax
471255:	5f                   	pop    %edi
471256:	5e                   	pop    %esi
471257:	5b                   	pop    %ebx
471258:	c9                   	leave
471259:	c3                   	ret
47125a:	55                   	push   %ebp
47125b:	8b ec                	mov    %esp,%ebp
47125d:	51                   	push   %ecx
47125e:	8b 45 0c             	mov    0xc(%ebp),%eax
471261:	53                   	push   %ebx
471262:	56                   	push   %esi
471263:	57                   	push   %edi
471264:	8b da                	mov    %edx,%ebx
471266:	89 4d fc             	mov    %ecx,-0x4(%ebp)
471269:	85 c0                	test   %eax,%eax
47126b:	78 53                	js     0x4712c0
47126d:	3b 45 08             	cmp    0x8(%ebp),%eax
471270:	7d 4e                	jge    0x4712c0
471272:	03 c0                	add    %eax,%eax
471274:	89 45 0c             	mov    %eax,0xc(%ebp)
471277:	8b 74 83 04          	mov    0x4(%ebx,%eax,4),%esi
47127b:	2b 34 83             	sub    (%ebx,%eax,4),%esi
47127e:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
471285:	50                   	push   %eax
471286:	ff 15 dc bd 4b 00    	call   *0x4bbddc
47128c:	8b f8                	mov    %eax,%edi
47128e:	59                   	pop    %ecx
47128f:	85 ff                	test   %edi,%edi
471291:	75 04                	jne    0x471297
471293:	6a fa                	push   $0xfffffffa
471295:	eb 2b                	jmp    0x4712c2
471297:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47129a:	8d 04 36             	lea    (%esi,%esi,1),%eax
47129d:	8b 0c 8b             	mov    (%ebx,%ecx,4),%ecx
4712a0:	50                   	push   %eax
4712a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4712a4:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4712a7:	51                   	push   %ecx
4712a8:	57                   	push   %edi
4712a9:	e8 d2 db fa ff       	call   0x41ee80
4712ae:	8b 4d 10             	mov    0x10(%ebp),%ecx
4712b1:	83 c4 0c             	add    $0xc,%esp
4712b4:	33 c0                	xor    %eax,%eax
4712b6:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
4712ba:	89 39                	mov    %edi,(%ecx)
4712bc:	8b c6                	mov    %esi,%eax
4712be:	eb 03                	jmp    0x4712c3
4712c0:	6a f9                	push   $0xfffffff9
4712c2:	58                   	pop    %eax
4712c3:	5f                   	pop    %edi
4712c4:	5e                   	pop    %esi
4712c5:	5b                   	pop    %ebx
4712c6:	c9                   	leave
4712c7:	c3                   	ret
4712c8:	56                   	push   %esi
4712c9:	0f b7 01             	movzwl (%ecx),%eax
4712cc:	66 85 c0             	test   %ax,%ax
4712cf:	75 04                	jne    0x4712d5
4712d1:	38 02                	cmp    %al,(%edx)
4712d3:	74 1e                	je     0x4712f3
4712d5:	8b f0                	mov    %eax,%esi
4712d7:	0f b6 02             	movzbl (%edx),%eax
4712da:	83 c1 02             	add    $0x2,%ecx
4712dd:	42                   	inc    %edx
4712de:	66 3b f0             	cmp    %ax,%si
4712e1:	74 e6                	je     0x4712c9
4712e3:	66 3b c6             	cmp    %si,%ax
4712e6:	1b c0                	sbb    %eax,%eax
4712e8:	f7 d8                	neg    %eax
4712ea:	5e                   	pop    %esi
4712eb:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
4712f2:	c3                   	ret
4712f3:	33 c0                	xor    %eax,%eax
4712f5:	5e                   	pop    %esi
4712f6:	c3                   	ret
4712f7:	2b ca                	sub    %edx,%ecx
4712f9:	56                   	push   %esi
4712fa:	0f b7 04 11          	movzwl (%ecx,%edx,1),%eax
4712fe:	66 85 c0             	test   %ax,%ax
471301:	75 05                	jne    0x471308
471303:	66 39 02             	cmp    %ax,(%edx)
471306:	74 1b                	je     0x471323
471308:	0f b7 32             	movzwl (%edx),%esi
47130b:	83 c2 02             	add    $0x2,%edx
47130e:	66 3b c6             	cmp    %si,%ax
471311:	74 e7                	je     0x4712fa
471313:	66 3b f0             	cmp    %ax,%si
471316:	1b c0                	sbb    %eax,%eax
471318:	f7 d8                	neg    %eax
47131a:	5e                   	pop    %esi
47131b:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
471322:	c3                   	ret
471323:	33 c0                	xor    %eax,%eax
471325:	5e                   	pop    %esi
471326:	c3                   	ret
471327:	55                   	push   %ebp
471328:	8b ec                	mov    %esp,%ebp
47132a:	8b 45 08             	mov    0x8(%ebp),%eax
47132d:	56                   	push   %esi
47132e:	57                   	push   %edi
47132f:	85 c0                	test   %eax,%eax
471331:	74 16                	je     0x471349
471333:	2b ca                	sub    %edx,%ecx
471335:	0f b7 34 11          	movzwl (%ecx,%edx,1),%esi
471339:	0f b7 3a             	movzwl (%edx),%edi
47133c:	48                   	dec    %eax
47133d:	8d 52 02             	lea    0x2(%edx),%edx
471340:	66 3b fe             	cmp    %si,%di
471343:	75 0a                	jne    0x47134f
471345:	85 c0                	test   %eax,%eax
471347:	75 ec                	jne    0x471335
471349:	33 c0                	xor    %eax,%eax
47134b:	5f                   	pop    %edi
47134c:	5e                   	pop    %esi
47134d:	5d                   	pop    %ebp
47134e:	c3                   	ret
47134f:	1b c0                	sbb    %eax,%eax
471351:	f7 d8                	neg    %eax
471353:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
47135a:	eb ef                	jmp    0x47134b
47135c:	55                   	push   %ebp
47135d:	8b ec                	mov    %esp,%ebp
47135f:	53                   	push   %ebx
471360:	56                   	push   %esi
471361:	57                   	push   %edi
471362:	6a 02                	push   $0x2
471364:	8b f1                	mov    %ecx,%esi
471366:	5f                   	pop    %edi
471367:	2b f7                	sub    %edi,%esi
471369:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
47136d:	74 3f                	je     0x4713ae
47136f:	66 8b 06             	mov    (%esi),%ax
471372:	bb 00 fc 00 00       	mov    $0xfc00,%ebx
471377:	66 23 c3             	and    %bx,%ax
47137a:	b9 00 dc 00 00       	mov    $0xdc00,%ecx
47137f:	66 3b c1             	cmp    %cx,%ax
471382:	75 02                	jne    0x471386
471384:	2b f7                	sub    %edi,%esi
471386:	0f b7 0e             	movzwl (%esi),%ecx
471389:	8b c1                	mov    %ecx,%eax
47138b:	23 c3                	and    %ebx,%eax
47138d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
471392:	75 1d                	jne    0x4713b1
471394:	0f b7 46 02          	movzwl 0x2(%esi),%eax
471398:	bb ff 03 00 00       	mov    $0x3ff,%ebx
47139d:	23 cb                	and    %ebx,%ecx
47139f:	23 c3                	and    %ebx,%eax
4713a1:	c1 e1 0a             	shl    $0xa,%ecx
4713a4:	0b c8                	or     %eax,%ecx
4713a6:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4713ac:	eb 03                	jmp    0x4713b1
4713ae:	0f b7 0e             	movzwl (%esi),%ecx
4713b1:	3b d7                	cmp    %edi,%edx
4713b3:	75 18                	jne    0x4713cd
4713b5:	83 f9 0a             	cmp    $0xa,%ecx
4713b8:	74 3d                	je     0x4713f7
4713ba:	83 f9 0d             	cmp    $0xd,%ecx
4713bd:	74 04                	je     0x4713c3
4713bf:	33 c0                	xor    %eax,%eax
4713c1:	eb 4d                	jmp    0x471410
4713c3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4713c6:	33 d2                	xor    %edx,%edx
4713c8:	42                   	inc    %edx
4713c9:	89 11                	mov    %edx,(%ecx)
4713cb:	eb 26                	jmp    0x4713f3
4713cd:	83 f9 0a             	cmp    $0xa,%ecx
4713d0:	74 25                	je     0x4713f7
4713d2:	76 eb                	jbe    0x4713bf
4713d4:	33 d2                	xor    %edx,%edx
4713d6:	42                   	inc    %edx
4713d7:	83 f9 0d             	cmp    $0xd,%ecx
4713da:	76 12                	jbe    0x4713ee
4713dc:	81 f9 85 00 00 00    	cmp    $0x85,%ecx
4713e2:	74 0a                	je     0x4713ee
4713e4:	8d 81 d8 df ff ff    	lea    -0x2028(%ecx),%eax
4713ea:	3b c2                	cmp    %edx,%eax
4713ec:	77 d1                	ja     0x4713bf
4713ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4713f1:	89 10                	mov    %edx,(%eax)
4713f3:	8b c2                	mov    %edx,%eax
4713f5:	eb 19                	jmp    0x471410
4713f7:	33 d2                	xor    %edx,%edx
4713f9:	3b 75 08             	cmp    0x8(%ebp),%esi
4713fc:	76 07                	jbe    0x471405
4713fe:	66 83 7e fe 0d       	cmpw   $0xd,-0x2(%esi)
471403:	74 03                	je     0x471408
471405:	8d 7a 01             	lea    0x1(%edx),%edi
471408:	8b 45 0c             	mov    0xc(%ebp),%eax
47140b:	89 38                	mov    %edi,(%eax)
47140d:	8d 42 01             	lea    0x1(%edx),%eax
471410:	5f                   	pop    %edi
471411:	5e                   	pop    %esi
471412:	5b                   	pop    %ebx
471413:	5d                   	pop    %ebp
471414:	c3                   	ret
471415:	55                   	push   %ebp
471416:	8b ec                	mov    %esp,%ebp
471418:	51                   	push   %ecx
471419:	51                   	push   %ecx
47141a:	53                   	push   %ebx
47141b:	56                   	push   %esi
47141c:	8b f2                	mov    %edx,%esi
47141e:	33 d2                	xor    %edx,%edx
471420:	0f b7 06             	movzwl (%esi),%eax
471423:	0f b6 d8             	movzbl %al,%ebx
471426:	42                   	inc    %edx
471427:	57                   	push   %edi
471428:	8b f9                	mov    %ecx,%edi
47142a:	23 da                	and    %edx,%ebx
47142c:	89 45 fc             	mov    %eax,-0x4(%ebp)
47142f:	81 ff 00 01 00 00    	cmp    $0x100,%edi
471435:	73 26                	jae    0x47145d
471437:	a8 02                	test   $0x2,%al
471439:	74 22                	je     0x47145d
47143b:	83 e1 07             	and    $0x7,%ecx
47143e:	d3 e2                	shl    %cl,%edx
471440:	8b c7                	mov    %edi,%eax
471442:	c1 e8 03             	shr    $0x3,%eax
471445:	84 54 30 02          	test   %dl,0x2(%eax,%esi,1)
471449:	74 0c                	je     0x471457
47144b:	33 c0                	xor    %eax,%eax
47144d:	85 db                	test   %ebx,%ebx
47144f:	0f 94 c0             	sete   %al
471452:	e9 30 03 00 00       	jmp    0x471787
471457:	8b 45 fc             	mov    -0x4(%ebp),%eax
47145a:	33 d2                	xor    %edx,%edx
47145c:	42                   	inc    %edx
47145d:	6a 02                	push   $0x2
47145f:	59                   	pop    %ecx
471460:	03 f1                	add    %ecx,%esi
471462:	22 c1                	and    %cl,%al
471464:	74 03                	je     0x471469
471466:	83 c6 20             	add    $0x20,%esi
471469:	0f b7 0e             	movzwl (%esi),%ecx
47146c:	66 85 c9             	test   %cx,%cx
47146f:	0f 84 10 03 00 00    	je     0x471785
471475:	c7 45 f8 03 00 00 00 	movl   $0x3,-0x8(%ebp)
47147c:	6a 02                	push   $0x2
47147e:	58                   	pop    %eax
47147f:	03 f0                	add    %eax,%esi
471481:	66 3b ca             	cmp    %dx,%cx
471484:	75 40                	jne    0x4714c6
471486:	0f b7 0e             	movzwl (%esi),%ecx
471489:	03 f0                	add    %eax,%esi
47148b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
47148f:	74 2c                	je     0x4714bd
471491:	8b c1                	mov    %ecx,%eax
471493:	25 00 fc 00 00       	and    $0xfc00,%eax
471498:	3d 00 d8 00 00       	cmp    $0xd800,%eax
47149d:	75 1e                	jne    0x4714bd
47149f:	0f b7 06             	movzwl (%esi),%eax
4714a2:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4714a8:	25 ff 03 00 00       	and    $0x3ff,%eax
4714ad:	c1 e1 0a             	shl    $0xa,%ecx
4714b0:	0b c8                	or     %eax,%ecx
4714b2:	6a 02                	push   $0x2
4714b4:	58                   	pop    %eax
4714b5:	81 c1 00 00 01 00    	add    $0x10000,%ecx
4714bb:	03 f0                	add    %eax,%esi
4714bd:	3b f9                	cmp    %ecx,%edi
4714bf:	74 8a                	je     0x47144b
4714c1:	e9 b3 02 00 00       	jmp    0x471779
4714c6:	66 3b c8             	cmp    %ax,%cx
4714c9:	0f 85 83 00 00 00    	jne    0x471552
4714cf:	0f b7 0e             	movzwl (%esi),%ecx
4714d2:	03 f0                	add    %eax,%esi
4714d4:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4714d8:	74 5e                	je     0x471538
4714da:	8b c1                	mov    %ecx,%eax
4714dc:	25 00 fc 00 00       	and    $0xfc00,%eax
4714e1:	6a 02                	push   $0x2
4714e3:	3d 00 d8 00 00       	cmp    $0xd800,%eax
4714e8:	75 1c                	jne    0x471506
4714ea:	0f b7 06             	movzwl (%esi),%eax
4714ed:	ba ff 03 00 00       	mov    $0x3ff,%edx
4714f2:	23 ca                	and    %edx,%ecx
4714f4:	23 c2                	and    %edx,%eax
4714f6:	c1 e1 0a             	shl    $0xa,%ecx
4714f9:	0b c8                	or     %eax,%ecx
4714fb:	58                   	pop    %eax
4714fc:	81 c1 00 00 01 00    	add    $0x10000,%ecx
471502:	03 f0                	add    %eax,%esi
471504:	eb 01                	jmp    0x471507
471506:	58                   	pop    %eax
471507:	0f b7 16             	movzwl (%esi),%edx
47150a:	03 f0                	add    %eax,%esi
47150c:	8b c2                	mov    %edx,%eax
47150e:	25 00 fc 00 00       	and    $0xfc00,%eax
471513:	3d 00 d8 00 00       	cmp    $0xd800,%eax
471518:	75 23                	jne    0x47153d
47151a:	0f b7 06             	movzwl (%esi),%eax
47151d:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
471523:	25 ff 03 00 00       	and    $0x3ff,%eax
471528:	c1 e2 0a             	shl    $0xa,%edx
47152b:	0b d0                	or     %eax,%edx
47152d:	6a 02                	push   $0x2
47152f:	81 c2 00 00 01 00    	add    $0x10000,%edx
471535:	58                   	pop    %eax
471536:	eb 03                	jmp    0x47153b
471538:	0f b7 16             	movzwl (%esi),%edx
47153b:	03 f0                	add    %eax,%esi
47153d:	3b f9                	cmp    %ecx,%edi
47153f:	0f 82 31 02 00 00    	jb     0x471776
471545:	3b fa                	cmp    %edx,%edi
471547:	0f 86 fe fe ff ff    	jbe    0x47144b
47154d:	e9 24 02 00 00       	jmp    0x471776
471552:	8b c7                	mov    %edi,%eax
471554:	99                   	cltd
471555:	c7 45 fc 80 00 00 00 	movl   $0x80,-0x4(%ebp)
47155c:	f7 7d fc             	idivl  -0x4(%ebp)
47155f:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
471566:	c1 e0 07             	shl    $0x7,%eax