406281:	c1 eb 0c             	shr    $0xc,%ebx
406284:	80 cb e0             	or     $0xe0,%bl
406287:	88 1c 30             	mov    %bl,(%eax,%esi,1)
40628a:	8b da                	mov    %edx,%ebx
40628c:	c1 eb 06             	shr    $0x6,%ebx
40628f:	80 e3 3f             	and    $0x3f,%bl
406292:	80 cb 80             	or     $0x80,%bl
406295:	88 5c 30 01          	mov    %bl,0x1(%eax,%esi,1)
406299:	80 e2 3f             	and    $0x3f,%dl
40629c:	80 ca 80             	or     $0x80,%dl
40629f:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
4062a3:	83 c6 03             	add    $0x3,%esi
4062a6:	eb 20                	jmp    0x4062c8
4062a8:	8d 5e 02             	lea    0x2(%esi),%ebx
4062ab:	3b 5d fc             	cmp    -0x4(%ebp),%ebx
4062ae:	77 22                	ja     0x4062d2
4062b0:	8b da                	mov    %edx,%ebx
4062b2:	c1 eb 06             	shr    $0x6,%ebx
4062b5:	80 cb c0             	or     $0xc0,%bl
4062b8:	88 1c 30             	mov    %bl,(%eax,%esi,1)
4062bb:	80 e2 3f             	and    $0x3f,%dl
4062be:	80 ca 80             	or     $0x80,%dl
4062c1:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
4062c5:	83 c6 02             	add    $0x2,%esi
4062c8:	3b 4d 08             	cmp    0x8(%ebp),%ecx
4062cb:	73 05                	jae    0x4062d2
4062cd:	3b 75 fc             	cmp    -0x4(%ebp),%esi
4062d0:	72 8a                	jb     0x40625c
4062d2:	3b 75 fc             	cmp    -0x4(%ebp),%esi
4062d5:	72 04                	jb     0x4062db
4062d7:	8b 75 fc             	mov    -0x4(%ebp),%esi
4062da:	4e                   	dec    %esi
4062db:	c6 04 30 00          	movb   $0x0,(%eax,%esi,1)
4062df:	eb 22                	jmp    0x406303
4062e1:	3b 4d 08             	cmp    0x8(%ebp),%ecx
4062e4:	73 1d                	jae    0x406303
4062e6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4062e9:	0f b7 14 48          	movzwl (%eax,%ecx,2),%edx
4062ed:	41                   	inc    %ecx
4062ee:	83 fa 7f             	cmp    $0x7f,%edx
4062f1:	76 0a                	jbe    0x4062fd
4062f3:	81 fa ff 07 00 00    	cmp    $0x7ff,%edx
4062f9:	76 01                	jbe    0x4062fc
4062fb:	46                   	inc    %esi
4062fc:	46                   	inc    %esi
4062fd:	46                   	inc    %esi
4062fe:	3b 4d 08             	cmp    0x8(%ebp),%ecx
406301:	72 e3                	jb     0x4062e6
406303:	8d 56 01             	lea    0x1(%esi),%edx
406306:	8b c2                	mov    %edx,%eax
406308:	5e                   	pop    %esi
406309:	5b                   	pop    %ebx
40630a:	59                   	pop    %ecx
40630b:	59                   	pop    %ecx
40630c:	5d                   	pop    %ebp
40630d:	c2 04 00             	ret    $0x4
406310:	55                   	push   %ebp
406311:	8b ec                	mov    %esp,%ebp
406313:	83 c4 f0             	add    $0xfffffff0,%esp
406316:	53                   	push   %ebx
406317:	56                   	push   %esi
406318:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40631b:	89 55 f8             	mov    %edx,-0x8(%ebp)
40631e:	89 45 fc             	mov    %eax,-0x4(%ebp)
406321:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
406325:	75 0a                	jne    0x406331
406327:	33 c0                	xor    %eax,%eax
406329:	89 45 f0             	mov    %eax,-0x10(%ebp)
40632c:	e9 04 01 00 00       	jmp    0x406435
406331:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
406338:	33 c0                	xor    %eax,%eax
40633a:	33 f6                	xor    %esi,%esi
40633c:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406340:	0f 84 a1 00 00 00    	je     0x4063e7
406346:	eb 7d                	jmp    0x4063c5
406348:	8b 55 f4             	mov    -0xc(%ebp),%edx
40634b:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
40634f:	46                   	inc    %esi
406350:	f6 c1 80             	test   $0x80,%cl
406353:	74 68                	je     0x4063bd
406355:	3b 75 08             	cmp    0x8(%ebp),%esi
406358:	0f 83 d7 00 00 00    	jae    0x406435
40635e:	83 e1 3f             	and    $0x3f,%ecx
406361:	f6 c1 20             	test   $0x20,%cl
406364:	74 2c                	je     0x406392
406366:	8b 55 f4             	mov    -0xc(%ebp),%edx
406369:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
40636d:	46                   	inc    %esi
40636e:	8b da                	mov    %edx,%ebx
406370:	80 e3 c0             	and    $0xc0,%bl
406373:	80 fb 80             	cmp    $0x80,%bl
406376:	0f 85 b9 00 00 00    	jne    0x406435
40637c:	3b 75 08             	cmp    0x8(%ebp),%esi
40637f:	0f 83 b0 00 00 00    	jae    0x406435
406385:	80 e2 3f             	and    $0x3f,%dl
406388:	0f b6 d2             	movzbl %dl,%edx
40638b:	c1 e1 06             	shl    $0x6,%ecx
40638e:	0b d1                	or     %ecx,%edx
406390:	8b ca                	mov    %edx,%ecx
406392:	8b 55 f4             	mov    -0xc(%ebp),%edx
406395:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
406399:	46                   	inc    %esi
40639a:	8b da                	mov    %edx,%ebx
40639c:	80 e3 c0             	and    $0xc0,%bl
40639f:	80 fb 80             	cmp    $0x80,%bl
4063a2:	0f 85 8d 00 00 00    	jne    0x406435
4063a8:	80 e2 3f             	and    $0x3f,%dl
4063ab:	0f b6 d2             	movzbl %dl,%edx
4063ae:	c1 e1 06             	shl    $0x6,%ecx
4063b1:	66 0b d1             	or     %cx,%dx
4063b4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4063b7:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
4063bb:	eb 07                	jmp    0x4063c4
4063bd:	8b 55 fc             	mov    -0x4(%ebp),%edx
4063c0:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
4063c4:	40                   	inc    %eax
4063c5:	3b 75 08             	cmp    0x8(%ebp),%esi
4063c8:	73 09                	jae    0x4063d3
4063ca:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4063cd:	0f 82 75 ff ff ff    	jb     0x406348
4063d3:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4063d6:	72 04                	jb     0x4063dc
4063d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4063db:	48                   	dec    %eax
4063dc:	8b 55 fc             	mov    -0x4(%ebp),%edx
4063df:	66 c7 04 42 00 00    	movw   $0x0,(%edx,%eax,2)
4063e5:	eb 4a                	jmp    0x406431
4063e7:	3b 75 08             	cmp    0x8(%ebp),%esi
4063ea:	73 45                	jae    0x406431
4063ec:	8b 55 f4             	mov    -0xc(%ebp),%edx
4063ef:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
4063f3:	46                   	inc    %esi
4063f4:	f6 c2 80             	test   $0x80,%dl
4063f7:	74 32                	je     0x40642b
4063f9:	3b 75 08             	cmp    0x8(%ebp),%esi
4063fc:	73 37                	jae    0x406435
4063fe:	80 e2 3f             	and    $0x3f,%dl
406401:	f6 c2 20             	test   $0x20,%dl
406404:	74 15                	je     0x40641b
406406:	8b 55 f4             	mov    -0xc(%ebp),%edx
406409:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
40640d:	46                   	inc    %esi
40640e:	80 e2 c0             	and    $0xc0,%dl
406411:	80 fa 80             	cmp    $0x80,%dl
406414:	75 1f                	jne    0x406435
406416:	3b 75 08             	cmp    0x8(%ebp),%esi
406419:	73 1a                	jae    0x406435
40641b:	8b 55 f4             	mov    -0xc(%ebp),%edx
40641e:	0f b6 14 32          	movzbl (%edx,%esi,1),%edx
406422:	46                   	inc    %esi
406423:	80 e2 c0             	and    $0xc0,%dl
406426:	80 fa 80             	cmp    $0x80,%dl
406429:	75 0a                	jne    0x406435
40642b:	40                   	inc    %eax
40642c:	3b 75 08             	cmp    0x8(%ebp),%esi
40642f:	72 bb                	jb     0x4063ec
406431:	40                   	inc    %eax
406432:	89 45 f0             	mov    %eax,-0x10(%ebp)
406435:	8b 45 f0             	mov    -0x10(%ebp),%eax
406438:	5e                   	pop    %esi
406439:	5b                   	pop    %ebx
40643a:	8b e5                	mov    %ebp,%esp
40643c:	5d                   	pop    %ebp
40643d:	c2 04 00             	ret    $0x4
406440:	55                   	push   %ebp
406441:	8b ec                	mov    %esp,%ebp
406443:	83 c4 f8             	add    $0xfffffff8,%esp
406446:	53                   	push   %ebx
406447:	56                   	push   %esi
406448:	33 c9                	xor    %ecx,%ecx
40644a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40644d:	89 55 f8             	mov    %edx,-0x8(%ebp)
406450:	8b f0                	mov    %eax,%esi
406452:	33 c0                	xor    %eax,%eax
406454:	55                   	push   %ebp
406455:	68 ec 64 40 00       	push   $0x4064ec
40645a:	64 ff 30             	push   %fs:(%eax)
40645d:	64 89 20             	mov    %esp,%fs:(%eax)
406460:	8b 45 f8             	mov    -0x8(%ebp),%eax
406463:	e8 b8 e2 ff ff       	call   0x404720
406468:	8b c6                	mov    %esi,%eax
40646a:	33 d2                	xor    %edx,%edx
40646c:	e8 0b ec ff ff       	call   0x40507c
406471:	74 63                	je     0x4064d6
406473:	8b c6                	mov    %esi,%eax
406475:	e8 f6 eb ff ff       	call   0x405070
40647a:	8d 14 40             	lea    (%eax,%eax,2),%edx
40647d:	8d 45 fc             	lea    -0x4(%ebp),%eax
406480:	e8 e7 e9 ff ff       	call   0x404e6c
406485:	8b 5d fc             	mov    -0x4(%ebp),%ebx
406488:	85 db                	test   %ebx,%ebx
40648a:	74 05                	je     0x406491
40648c:	83 eb 04             	sub    $0x4,%ebx
40648f:	8b 1b                	mov    (%ebx),%ebx
406491:	8b c6                	mov    %esi,%eax
406493:	e8 d8 eb ff ff       	call   0x405070
406498:	50                   	push   %eax
406499:	8b c6                	mov    %esi,%eax
40649b:	e8 c0 eb ff ff       	call   0x405060
4064a0:	50                   	push   %eax
4064a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4064a4:	e8 3b e7 ff ff       	call   0x404be4
4064a9:	8d 53 01             	lea    0x1(%ebx),%edx
4064ac:	59                   	pop    %ecx
4064ad:	e8 82 fd ff ff       	call   0x406234
4064b2:	85 c0                	test   %eax,%eax
4064b4:	7e 0d                	jle    0x4064c3
4064b6:	8b d0                	mov    %eax,%edx
4064b8:	4a                   	dec    %edx
4064b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4064bc:	e8 ab e9 ff ff       	call   0x404e6c
4064c1:	eb 08                	jmp    0x4064cb
4064c3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4064c6:	e8 55 e2 ff ff       	call   0x404720
4064cb:	8b 45 f8             	mov    -0x8(%ebp),%eax
4064ce:	8b 55 fc             	mov    -0x4(%ebp),%edx
4064d1:	e8 9e e2 ff ff       	call   0x404774
4064d6:	33 c0                	xor    %eax,%eax
4064d8:	5a                   	pop    %edx
4064d9:	59                   	pop    %ecx
4064da:	59                   	pop    %ecx
4064db:	64 89 10             	mov    %edx,%fs:(%eax)
4064de:	68 f3 64 40 00       	push   $0x4064f3
4064e3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4064e6:	e8 35 e2 ff ff       	call   0x404720
4064eb:	c3                   	ret
4064ec:	e9 97 db ff ff       	jmp    0x404088
4064f1:	eb f0                	jmp    0x4064e3
4064f3:	5e                   	pop    %esi
4064f4:	5b                   	pop    %ebx
4064f5:	59                   	pop    %ecx
4064f6:	59                   	pop    %ecx
4064f7:	5d                   	pop    %ebp
4064f8:	c3                   	ret
4064f9:	8d 40 00             	lea    0x0(%eax),%eax
4064fc:	55                   	push   %ebp
4064fd:	8b ec                	mov    %esp,%ebp
4064ff:	83 c4 f4             	add    $0xfffffff4,%esp
406502:	53                   	push   %ebx
406503:	56                   	push   %esi
406504:	33 c9                	xor    %ecx,%ecx
406506:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406509:	89 55 f8             	mov    %edx,-0x8(%ebp)
40650c:	8b f0                	mov    %eax,%esi
40650e:	33 c0                	xor    %eax,%eax
406510:	55                   	push   %ebp
406511:	68 a7 65 40 00       	push   $0x4065a7
406516:	64 ff 30             	push   %fs:(%eax)
406519:	64 89 20             	mov    %esp,%fs:(%eax)
40651c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40651f:	e8 dc e9 ff ff       	call   0x404f00
406524:	85 f6                	test   %esi,%esi
406526:	74 69                	je     0x406591
406528:	89 75 f4             	mov    %esi,-0xc(%ebp)
40652b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40652e:	8b c3                	mov    %ebx,%eax
406530:	85 c0                	test   %eax,%eax
406532:	74 05                	je     0x406539
406534:	83 e8 04             	sub    $0x4,%eax
406537:	8b 00                	mov    (%eax),%eax
406539:	8d 55 fc             	lea    -0x4(%ebp),%edx
40653c:	92                   	xchg   %eax,%edx
40653d:	e8 0a ec ff ff       	call   0x40514c
406542:	85 db                	test   %ebx,%ebx
406544:	74 05                	je     0x40654b
406546:	83 eb 04             	sub    $0x4,%ebx
406549:	8b 1b                	mov    (%ebx),%ebx
40654b:	53                   	push   %ebx
40654c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40654f:	e8 1c eb ff ff       	call   0x405070
406554:	40                   	inc    %eax
406555:	50                   	push   %eax
406556:	8b c6                	mov    %esi,%eax
406558:	e8 87 e6 ff ff       	call   0x404be4
40655d:	50                   	push   %eax
40655e:	8b 45 fc             	mov    -0x4(%ebp),%eax
406561:	e8 fa ea ff ff       	call   0x405060
406566:	59                   	pop    %ecx
406567:	5a                   	pop    %edx
406568:	e8 a3 fd ff ff       	call   0x406310
40656d:	85 c0                	test   %eax,%eax
40656f:	7e 0d                	jle    0x40657e
406571:	8b d0                	mov    %eax,%edx
406573:	4a                   	dec    %edx
406574:	8d 45 fc             	lea    -0x4(%ebp),%eax
406577:	e8 d0 eb ff ff       	call   0x40514c
40657c:	eb 08                	jmp    0x406586
40657e:	8d 45 fc             	lea    -0x4(%ebp),%eax
406581:	e8 7a e9 ff ff       	call   0x404f00
406586:	8b 45 f8             	mov    -0x8(%ebp),%eax
406589:	8b 55 fc             	mov    -0x4(%ebp),%edx
40658c:	e8 ab e9 ff ff       	call   0x404f3c
406591:	33 c0                	xor    %eax,%eax
406593:	5a                   	pop    %edx
406594:	59                   	pop    %ecx
406595:	59                   	pop    %ecx
406596:	64 89 10             	mov    %edx,%fs:(%eax)
406599:	68 ae 65 40 00       	push   $0x4065ae
40659e:	8d 45 fc             	lea    -0x4(%ebp),%eax
4065a1:	e8 5a e9 ff ff       	call   0x404f00
4065a6:	c3                   	ret
4065a7:	e9 dc da ff ff       	jmp    0x404088
4065ac:	eb f0                	jmp    0x40659e
4065ae:	5e                   	pop    %esi
4065af:	5b                   	pop    %ebx
4065b0:	8b e5                	mov    %ebp,%esp
4065b2:	5d                   	pop    %ebp
4065b3:	c3                   	ret
4065b4:	55                   	push   %ebp
4065b5:	8b ec                	mov    %esp,%ebp
4065b7:	6a 00                	push   $0x0
4065b9:	53                   	push   %ebx
4065ba:	56                   	push   %esi
4065bb:	8b f2                	mov    %edx,%esi
4065bd:	8b d8                	mov    %eax,%ebx
4065bf:	33 c0                	xor    %eax,%eax
4065c1:	55                   	push   %ebp
4065c2:	68 f7 65 40 00       	push   $0x4065f7
4065c7:	64 ff 30             	push   %fs:(%eax)
4065ca:	64 89 20             	mov    %esp,%fs:(%eax)
4065cd:	8d 45 fc             	lea    -0x4(%ebp),%eax
4065d0:	8b d3                	mov    %ebx,%edx
4065d2:	e8 79 ea ff ff       	call   0x405050
4065d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4065da:	8b d6                	mov    %esi,%edx
4065dc:	e8 5f fe ff ff       	call   0x406440
4065e1:	33 c0                	xor    %eax,%eax
4065e3:	5a                   	pop    %edx
4065e4:	59                   	pop    %ecx
4065e5:	59                   	pop    %ecx
4065e6:	64 89 10             	mov    %edx,%fs:(%eax)
4065e9:	68 fe 65 40 00       	push   $0x4065fe
4065ee:	8d 45 fc             	lea    -0x4(%ebp),%eax
4065f1:	e8 0a e9 ff ff       	call   0x404f00
4065f6:	c3                   	ret
4065f7:	e9 8c da ff ff       	jmp    0x404088
4065fc:	eb f0                	jmp    0x4065ee
4065fe:	5e                   	pop    %esi
4065ff:	5b                   	pop    %ebx
406600:	59                   	pop    %ecx
406601:	5d                   	pop    %ebp
406602:	c3                   	ret
406603:	90                   	nop
406604:	53                   	push   %ebx
406605:	56                   	push   %esi
406606:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
40660c:	50                   	push   %eax
40660d:	8b f2                	mov    %edx,%esi
40660f:	8b d8                	mov    %eax,%ebx
406611:	85 db                	test   %ebx,%ebx