464362:	56                   	push   %esi
464363:	8b f1                	mov    %ecx,%esi
464365:	83 be 5c 04 00 00 01 	cmpl   $0x1,0x45c(%esi)
46436c:	75 12                	jne    0x464380
46436e:	83 46 14 04          	addl   $0x4,0x14(%esi)
464372:	8b 56 14             	mov    0x14(%esi),%edx
464375:	8b 4a fc             	mov    -0x4(%edx),%ecx
464378:	89 4e 28             	mov    %ecx,0x28(%esi)
46437b:	e9 8c 00 00 00       	jmp    0x46440c
464380:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
464384:	8d 45 fc             	lea    -0x4(%ebp),%eax
464387:	6a 0a                	push   $0xa
464389:	50                   	push   %eax
46438a:	ff 76 10             	push   0x10(%esi)
46438d:	e8 02 30 01 00       	call   0x477394
464392:	83 c4 0c             	add    $0xc,%esp
464395:	83 be 58 04 00 00 01 	cmpl   $0x1,0x458(%esi)
46439c:	8d 50 ff             	lea    -0x1(%eax),%edx
46439f:	8b 45 fc             	mov    -0x4(%ebp),%eax
4643a2:	8d 48 02             	lea    0x2(%eax),%ecx
4643a5:	89 4e 10             	mov    %ecx,0x10(%esi)
4643a8:	75 54                	jne    0x4643fe
4643aa:	85 d2                	test   %edx,%edx
4643ac:	78 3c                	js     0x4643ea
4643ae:	66 83 38 24          	cmpw   $0x24,(%eax)
4643b2:	75 36                	jne    0x4643ea
4643b4:	83 fa 64             	cmp    $0x64,%edx
4643b7:	7d 31                	jge    0x4643ea
4643b9:	8b 86 a4 0a 00 00    	mov    0xaa4(%esi),%eax
4643bf:	3b d0                	cmp    %eax,%edx
4643c1:	7e 02                	jle    0x4643c5
4643c3:	8b c2                	mov    %edx,%eax
4643c5:	ff 76 2c             	push   0x2c(%esi)
4643c8:	89 86 a4 0a 00 00    	mov    %eax,0xaa4(%esi)
4643ce:	8b ce                	mov    %esi,%ecx
4643d0:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4643d4:	50                   	push   %eax
4643d5:	c1 e2 04             	shl    $0x4,%edx
4643d8:	8d 86 64 04 00 00    	lea    0x464(%esi),%eax
4643de:	6a 01                	push   $0x1
4643e0:	03 c2                	add    %edx,%eax
4643e2:	50                   	push   %eax
4643e3:	e8 c0 01 00 00       	call   0x4645a8
4643e8:	eb 24                	jmp    0x46440e
4643ea:	e8 40 8a fe ff       	call   0x44ce2f
4643ef:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4643f5:	e8 dc 88 fe ff       	call   0x44ccd6
4643fa:	32 c0                	xor    %al,%al
4643fc:	eb 10                	jmp    0x46440e
4643fe:	03 d2                	add    %edx,%edx
464400:	8b 84 d6 6c 04 00 00 	mov    0x46c(%esi,%edx,8),%eax
464407:	8b 00                	mov    (%eax),%eax
464409:	89 46 28             	mov    %eax,0x28(%esi)
46440c:	b0 01                	mov    $0x1,%al
46440e:	5e                   	pop    %esi
46440f:	8b e5                	mov    %ebp,%esp
464411:	5d                   	pop    %ebp
464412:	c3                   	ret
464413:	83 41 14 04          	addl   $0x4,0x14(%ecx)
464417:	8b 41 14             	mov    0x14(%ecx),%eax
46441a:	8b 40 fc             	mov    -0x4(%eax),%eax
46441d:	89 41 28             	mov    %eax,0x28(%ecx)
464420:	b0 01                	mov    $0x1,%al
464422:	c3                   	ret
464423:	83 41 14 04          	addl   $0x4,0x14(%ecx)
464427:	8b 41 14             	mov    0x14(%ecx),%eax
46442a:	8b 40 fc             	mov    -0x4(%eax),%eax
46442d:	89 41 28             	mov    %eax,0x28(%ecx)
464430:	b0 01                	mov    $0x1,%al
464432:	c3                   	ret
464433:	83 41 14 04          	addl   $0x4,0x14(%ecx)
464437:	8b 41 14             	mov    0x14(%ecx),%eax
46443a:	8b 40 fc             	mov    -0x4(%eax),%eax
46443d:	89 41 28             	mov    %eax,0x28(%ecx)
464440:	b0 01                	mov    $0x1,%al
464442:	c3                   	ret
464443:	83 41 14 04          	addl   $0x4,0x14(%ecx)
464447:	8b 41 14             	mov    0x14(%ecx),%eax
46444a:	8b 40 fc             	mov    -0x4(%eax),%eax
46444d:	89 41 28             	mov    %eax,0x28(%ecx)
464450:	b0 01                	mov    $0x1,%al
464452:	c3                   	ret
464453:	8b 01                	mov    (%ecx),%eax
464455:	85 c0                	test   %eax,%eax
464457:	75 13                	jne    0x46446c
464459:	e8 d1 89 fe ff       	call   0x44ce2f
46445e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
464464:	e8 6d 88 fe ff       	call   0x44ccd6
464469:	32 c0                	xor    %al,%al
46446b:	c3                   	ret
46446c:	50                   	push   %eax
46446d:	e8 6f 09 00 00       	call   0x464de1
464472:	59                   	pop    %ecx
464473:	c3                   	ret
464474:	83 39 00             	cmpl   $0x0,(%ecx)
464477:	75 13                	jne    0x46448c
464479:	e8 b1 89 fe ff       	call   0x44ce2f
46447e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
464484:	e8 4d 88 fe ff       	call   0x44ccd6
464489:	32 c0                	xor    %al,%al
46448b:	c3                   	ret
46448c:	b0 01                	mov    $0x1,%al
46448e:	c3                   	ret
46448f:	83 39 00             	cmpl   $0x0,(%ecx)
464492:	75 13                	jne    0x4644a7
464494:	e8 96 89 fe ff       	call   0x44ce2f
464499:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46449f:	e8 32 88 fe ff       	call   0x44ccd6
4644a4:	32 c0                	xor    %al,%al
4644a6:	c3                   	ret
4644a7:	b0 01                	mov    $0x1,%al
4644a9:	c3                   	ret
4644aa:	83 39 00             	cmpl   $0x0,(%ecx)
4644ad:	75 13                	jne    0x4644c2
4644af:	e8 7b 89 fe ff       	call   0x44ce2f
4644b4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4644ba:	e8 17 88 fe ff       	call   0x44ccd6
4644bf:	32 c0                	xor    %al,%al
4644c1:	c3                   	ret
4644c2:	b0 01                	mov    $0x1,%al
4644c4:	c3                   	ret
4644c5:	8b ff                	mov    %edi,%edi
4644c7:	55                   	push   %ebp
4644c8:	8b ec                	mov    %esp,%ebp
4644ca:	8b 55 08             	mov    0x8(%ebp),%edx
4644cd:	83 3a 00             	cmpl   $0x0,(%edx)
4644d0:	75 17                	jne    0x4644e9
4644d2:	8b 45 0c             	mov    0xc(%ebp),%eax
4644d5:	89 02                	mov    %eax,(%edx)
4644d7:	8a 45 10             	mov    0x10(%ebp),%al
4644da:	88 42 04             	mov    %al,0x4(%edx)
4644dd:	8b 45 14             	mov    0x14(%ebp),%eax
4644e0:	89 42 0c             	mov    %eax,0xc(%edx)
4644e3:	b0 01                	mov    $0x1,%al
4644e5:	5d                   	pop    %ebp
4644e6:	c2 10 00             	ret    $0x10
4644e9:	ff 75 14             	push   0x14(%ebp)
4644ec:	ff 75 10             	push   0x10(%ebp)
4644ef:	ff 75 0c             	push   0xc(%ebp)
4644f2:	52                   	push   %edx
4644f3:	e8 93 5f ff ff       	call   0x45a48b
4644f8:	84 c0                	test   %al,%al
4644fa:	75 e7                	jne    0x4644e3
4644fc:	e8 2e 89 fe ff       	call   0x44ce2f
464501:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
464507:	e8 ca 87 fe ff       	call   0x44ccd6
46450c:	32 c0                	xor    %al,%al
46450e:	eb d5                	jmp    0x4644e5
464510:	8b ff                	mov    %edi,%edi
464512:	55                   	push   %ebp
464513:	8b ec                	mov    %esp,%ebp
464515:	8b 55 08             	mov    0x8(%ebp),%edx
464518:	83 3a 00             	cmpl   $0x0,(%edx)
46451b:	75 17                	jne    0x464534
46451d:	8b 45 0c             	mov    0xc(%ebp),%eax
464520:	89 02                	mov    %eax,(%edx)
464522:	8a 45 10             	mov    0x10(%ebp),%al
464525:	88 42 04             	mov    %al,0x4(%edx)
464528:	8b 45 14             	mov    0x14(%ebp),%eax
46452b:	89 42 0c             	mov    %eax,0xc(%edx)
46452e:	b0 01                	mov    $0x1,%al
464530:	5d                   	pop    %ebp
464531:	c2 10 00             	ret    $0x10
464534:	ff 75 14             	push   0x14(%ebp)
464537:	ff 75 10             	push   0x10(%ebp)
46453a:	ff 75 0c             	push   0xc(%ebp)
46453d:	52                   	push   %edx
46453e:	e8 76 60 ff ff       	call   0x45a5b9
464543:	84 c0                	test   %al,%al
464545:	75 e7                	jne    0x46452e
464547:	e8 e3 88 fe ff       	call   0x44ce2f
46454c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
464552:	e8 7f 87 fe ff       	call   0x44ccd6
464557:	32 c0                	xor    %al,%al
464559:	eb d5                	jmp    0x464530
46455b:	8b ff                	mov    %edi,%edi
46455d:	55                   	push   %ebp
46455e:	8b ec                	mov    %esp,%ebp
464560:	8b 55 08             	mov    0x8(%ebp),%edx
464563:	83 3a 00             	cmpl   $0x0,(%edx)
464566:	75 19                	jne    0x464581
464568:	8b 45 0c             	mov    0xc(%ebp),%eax
46456b:	89 02                	mov    %eax,(%edx)
46456d:	66 8b 45 10          	mov    0x10(%ebp),%ax
464571:	66 89 42 04          	mov    %ax,0x4(%edx)
464575:	8b 45 14             	mov    0x14(%ebp),%eax
464578:	89 42 0c             	mov    %eax,0xc(%edx)
46457b:	b0 01                	mov    $0x1,%al
46457d:	5d                   	pop    %ebp
46457e:	c2 10 00             	ret    $0x10
464581:	ff 75 14             	push   0x14(%ebp)
464584:	ff 75 10             	push   0x10(%ebp)
464587:	ff 75 0c             	push   0xc(%ebp)
46458a:	52                   	push   %edx
46458b:	e8 57 61 ff ff       	call   0x45a6e7
464590:	84 c0                	test   %al,%al
464592:	75 e7                	jne    0x46457b
464594:	e8 96 88 fe ff       	call   0x44ce2f
464599:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46459f:	e8 32 87 fe ff       	call   0x44ccd6
4645a4:	32 c0                	xor    %al,%al
4645a6:	eb d5                	jmp    0x46457d
4645a8:	8b ff                	mov    %edi,%edi
4645aa:	55                   	push   %ebp
4645ab:	8b ec                	mov    %esp,%ebp
4645ad:	8b 55 08             	mov    0x8(%ebp),%edx
4645b0:	83 3a 00             	cmpl   $0x0,(%edx)
4645b3:	75 19                	jne    0x4645ce
4645b5:	8b 45 0c             	mov    0xc(%ebp),%eax
4645b8:	89 02                	mov    %eax,(%edx)
4645ba:	66 8b 45 10          	mov    0x10(%ebp),%ax
4645be:	66 89 42 04          	mov    %ax,0x4(%edx)
4645c2:	8b 45 14             	mov    0x14(%ebp),%eax
4645c5:	89 42 0c             	mov    %eax,0xc(%edx)
4645c8:	b0 01                	mov    $0x1,%al
4645ca:	5d                   	pop    %ebp
4645cb:	c2 10 00             	ret    $0x10
4645ce:	ff 75 14             	push   0x14(%ebp)
4645d1:	ff 75 10             	push   0x10(%ebp)
4645d4:	ff 75 0c             	push   0xc(%ebp)
4645d7:	52                   	push   %edx
4645d8:	e8 2d 62 ff ff       	call   0x45a80a
4645dd:	84 c0                	test   %al,%al
4645df:	75 e7                	jne    0x4645c8
4645e1:	e8 49 88 fe ff       	call   0x44ce2f
4645e6:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4645ec:	e8 e5 86 fe ff       	call   0x44ccd6
4645f1:	32 c0                	xor    %al,%al
4645f3:	eb d5                	jmp    0x4645ca
4645f5:	8b ff                	mov    %edi,%edi
4645f7:	55                   	push   %ebp
4645f8:	8b ec                	mov    %esp,%ebp
4645fa:	51                   	push   %ecx
4645fb:	51                   	push   %ecx
4645fc:	53                   	push   %ebx
4645fd:	56                   	push   %esi
4645fe:	8b f1                	mov    %ecx,%esi
464600:	33 db                	xor    %ebx,%ebx
464602:	43                   	inc    %ebx
464603:	57                   	push   %edi
464604:	39 5e 1c             	cmp    %ebx,0x1c(%esi)
464607:	0f 85 c3 00 00 00    	jne    0x4646d0
46460d:	8b 4e 10             	mov    0x10(%esi),%ecx
464610:	8a 01                	mov    (%ecx),%al
464612:	3c 25                	cmp    $0x25,%al
464614:	0f 84 b6 00 00 00    	je     0x4646d0
46461a:	33 ff                	xor    %edi,%edi
46461c:	39 be 5c 04 00 00    	cmp    %edi,0x45c(%esi)
464622:	75 55                	jne    0x464679
464624:	89 7d fc             	mov    %edi,-0x4(%ebp)
464627:	3c 30                	cmp    $0x30,%al
464629:	7c 48                	jl     0x464673
46462b:	3c 39                	cmp    $0x39,%al
46462d:	7f 44                	jg     0x464673
46462f:	6a 0a                	push   $0xa
464631:	8d 45 fc             	lea    -0x4(%ebp),%eax
464634:	50                   	push   %eax
464635:	51                   	push   %ecx
464636:	e8 51 2c 01 00       	call   0x47728c
46463b:	83 c4 0c             	add    $0xc,%esp
46463e:	85 c0                	test   %eax,%eax
464640:	7e 31                	jle    0x464673
464642:	8b 45 fc             	mov    -0x4(%ebp),%eax
464645:	80 38 24             	cmpb   $0x24,(%eax)
464648:	75 29                	jne    0x464673
46464a:	39 9e 58 04 00 00    	cmp    %ebx,0x458(%esi)
464650:	75 15                	jne    0x464667
464652:	68 40 06 00 00       	push   $0x640
464657:	8d 86 64 04 00 00    	lea    0x464(%esi),%eax
46465d:	57                   	push   %edi
46465e:	50                   	push   %eax
46465f:	e8 fc f7 fd ff       	call   0x443e60
464664:	83 c4 0c             	add    $0xc,%esp
464667:	c7 86 5c 04 00 00 02 	movl   $0x2,0x45c(%esi)
46466e:	00 00 00
464671:	eb 06                	jmp    0x464679
464673:	89 9e 5c 04 00 00    	mov    %ebx,0x45c(%esi)
464679:	83 be 5c 04 00 00 02 	cmpl   $0x2,0x45c(%esi)
464680:	75 4e                	jne    0x4646d0
464682:	6a 0a                	push   $0xa
464684:	8d 45 f8             	lea    -0x8(%ebp),%eax
464687:	89 7d f8             	mov    %edi,-0x8(%ebp)
46468a:	50                   	push   %eax
46468b:	ff 76 10             	push   0x10(%esi)
46468e:	e8 f9 2b 01 00       	call   0x47728c
464693:	8b 55 f8             	mov    -0x8(%ebp),%edx
464696:	83 c4 0c             	add    $0xc,%esp
464699:	8d 48 ff             	lea    -0x1(%eax),%ecx
46469c:	8d 42 01             	lea    0x1(%edx),%eax
46469f:	89 8e a8 0a 00 00    	mov    %ecx,0xaa8(%esi)
4646a5:	89 46 10             	mov    %eax,0x10(%esi)
4646a8:	39 9e 58 04 00 00    	cmp    %ebx,0x458(%esi)
4646ae:	75 20                	jne    0x4646d0
4646b0:	85 c9                	test   %ecx,%ecx
4646b2:	78 25                	js     0x4646d9
4646b4:	80 3a 24             	cmpb   $0x24,(%edx)
4646b7:	75 20                	jne    0x4646d9
4646b9:	83 f9 64             	cmp    $0x64,%ecx
4646bc:	7d 1b                	jge    0x4646d9
4646be:	8b 86 a4 0a 00 00    	mov    0xaa4(%esi),%eax
4646c4:	3b c8                	cmp    %eax,%ecx
4646c6:	7f 02                	jg     0x4646ca
4646c8:	8b c8                	mov    %eax,%ecx
4646ca:	89 8e a4 0a 00 00    	mov    %ecx,0xaa4(%esi)
4646d0:	8a c3                	mov    %bl,%al
4646d2:	5f                   	pop    %edi
4646d3:	5e                   	pop    %esi
4646d4:	5b                   	pop    %ebx
4646d5:	8b e5                	mov    %ebp,%esp
4646d7:	5d                   	pop    %ebp
4646d8:	c3                   	ret
4646d9:	e8 51 87 fe ff       	call   0x44ce2f
4646de:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4646e4:	e8 ed 85 fe ff       	call   0x44ccd6
4646e9:	32 c0                	xor    %al,%al
4646eb:	eb e5                	jmp    0x4646d2
4646ed:	8b ff                	mov    %edi,%edi
4646ef:	55                   	push   %ebp
4646f0:	8b ec                	mov    %esp,%ebp
4646f2:	51                   	push   %ecx
4646f3:	51                   	push   %ecx
4646f4:	53                   	push   %ebx
4646f5:	56                   	push   %esi
4646f6:	8b f1                	mov    %ecx,%esi
4646f8:	33 db                	xor    %ebx,%ebx
4646fa:	43                   	inc    %ebx
4646fb:	57                   	push   %edi
4646fc:	39 5e 1c             	cmp    %ebx,0x1c(%esi)
4646ff:	0f 85 c3 00 00 00    	jne    0x4647c8
464705:	8b 4e 10             	mov    0x10(%esi),%ecx
464708:	8a 01                	mov    (%ecx),%al
46470a:	3c 25                	cmp    $0x25,%al
46470c:	0f 84 b6 00 00 00    	je     0x4647c8
464712:	33 ff                	xor    %edi,%edi
464714:	39 be 5c 04 00 00    	cmp    %edi,0x45c(%esi)
46471a:	75 55                	jne    0x464771
46471c:	89 7d fc             	mov    %edi,-0x4(%ebp)
46471f:	3c 30                	cmp    $0x30,%al
464721:	7c 48                	jl     0x46476b
464723:	3c 39                	cmp    $0x39,%al
464725:	7f 44                	jg     0x46476b
464727:	6a 0a                	push   $0xa
464729:	8d 45 fc             	lea    -0x4(%ebp),%eax
46472c:	50                   	push   %eax
46472d:	51                   	push   %ecx
46472e:	e8 59 2b 01 00       	call   0x47728c
464733:	83 c4 0c             	add    $0xc,%esp
464736:	85 c0                	test   %eax,%eax
464738:	7e 31                	jle    0x46476b
46473a:	8b 45 fc             	mov    -0x4(%ebp),%eax