4062ee:	50                   	push   %eax
4062ef:	8d 45 0c             	lea    0xc(%ebp),%eax
4062f2:	56                   	push   %esi
4062f3:	50                   	push   %eax
4062f4:	6a 00                	push   $0x0
4062f6:	ff 75 10             	push   0x10(%ebp)
4062f9:	ff 75 18             	push   0x18(%ebp)
4062fc:	ff 15 2c 80 40 00    	call   *0x40802c
406302:	ff 75 18             	push   0x18(%ebp)
406305:	8b f8                	mov    %eax,%edi
406307:	ff 15 24 80 40 00    	call   *0x408024
40630d:	66 83 a6 fe 07 00 00 	andw   $0x0,0x7fe(%esi)
406314:	00
406315:	85 ff                	test   %edi,%edi
406317:	5f                   	pop    %edi
406318:	75 0c                	jne    0x406326
40631a:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
40631e:	74 0a                	je     0x40632a
406320:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)
406324:	74 04                	je     0x40632a
406326:	66 83 26 00          	andw   $0x0,(%esi)
40632a:	5e                   	pop    %esi
40632b:	c9                   	leave
40632c:	c2 14 00             	ret    $0x14
40632f:	ff 74 24 08          	push   0x8(%esp)
406333:	68 20 84 40 00       	push   $0x408420
406338:	ff 74 24 0c          	push   0xc(%esp)
40633c:	ff 15 90 82 40 00    	call   *0x408290
406342:	83 c4 0c             	add    $0xc,%esp
406345:	c2 08 00             	ret    $0x8
406348:	55                   	push   %ebp
406349:	8b ec                	mov    %esp,%ebp
40634b:	51                   	push   %ecx
40634c:	51                   	push   %ecx
40634d:	8b 4d 08             	mov    0x8(%ebp),%ecx
406350:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406354:	53                   	push   %ebx
406355:	56                   	push   %esi
406356:	66 83 39 2d          	cmpw   $0x2d,(%ecx)
40635a:	6a 0a                	push   $0xa
40635c:	58                   	pop    %eax
40635d:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
406364:	6a 39                	push   $0x39
406366:	5b                   	pop    %ebx
406367:	75 06                	jne    0x40636f
406369:	41                   	inc    %ecx
40636a:	41                   	inc    %ecx
40636b:	83 4d f8 ff          	orl    $0xffffffff,-0x8(%ebp)
40636f:	66 83 39 30          	cmpw   $0x30,(%ecx)
406373:	75 27                	jne    0x40639c
406375:	41                   	inc    %ecx
406376:	41                   	inc    %ecx
406377:	66 8b 11             	mov    (%ecx),%dx
40637a:	66 83 fa 30          	cmp    $0x30,%dx
40637e:	72 0c                	jb     0x40638c
406380:	66 83 fa 37          	cmp    $0x37,%dx
406384:	77 06                	ja     0x40638c
406386:	6a 08                	push   $0x8
406388:	58                   	pop    %eax
406389:	6a 37                	push   $0x37
40638b:	5b                   	pop    %ebx
40638c:	0f b7 d2             	movzwl %dx,%edx
40638f:	83 e2 df             	and    $0xffffffdf,%edx
406392:	83 fa 58             	cmp    $0x58,%edx
406395:	75 05                	jne    0x40639c
406397:	6a 10                	push   $0x10
406399:	41                   	inc    %ecx
40639a:	58                   	pop    %eax
40639b:	41                   	inc    %ecx
40639c:	0f b7 11             	movzwl (%ecx),%edx
40639f:	41                   	inc    %ecx
4063a0:	41                   	inc    %ecx
4063a1:	83 fa 30             	cmp    $0x30,%edx
4063a4:	7c 0c                	jl     0x4063b2
4063a6:	0f b7 f3             	movzwl %bx,%esi
4063a9:	3b d6                	cmp    %esi,%edx
4063ab:	7f 05                	jg     0x4063b2
4063ad:	83 ea 30             	sub    $0x30,%edx
4063b0:	eb 1b                	jmp    0x4063cd
4063b2:	66 3d 10 00          	cmp    $0x10,%ax
4063b6:	75 23                	jne    0x4063db
4063b8:	8b f2                	mov    %edx,%esi
4063ba:	83 e6 df             	and    $0xffffffdf,%esi
4063bd:	83 fe 41             	cmp    $0x41,%esi
4063c0:	7c 19                	jl     0x4063db
4063c2:	83 fe 46             	cmp    $0x46,%esi
4063c5:	7f 14                	jg     0x4063db
4063c7:	83 e2 07             	and    $0x7,%edx
4063ca:	83 c2 09             	add    $0x9,%edx
4063cd:	0f b7 f0             	movzwl %ax,%esi
4063d0:	0f af 75 fc          	imul   -0x4(%ebp),%esi
4063d4:	03 f2                	add    %edx,%esi
4063d6:	89 75 fc             	mov    %esi,-0x4(%ebp)
4063d9:	eb c1                	jmp    0x40639c
4063db:	8b 45 f8             	mov    -0x8(%ebp),%eax
4063de:	5e                   	pop    %esi
4063df:	0f af 45 fc          	imul   -0x4(%ebp),%eax
4063e3:	5b                   	pop    %ebx
4063e4:	c9                   	leave
4063e5:	c2 04 00             	ret    $0x4
4063e8:	68 00 04 00 00       	push   $0x400
4063ed:	ff 74 24 0c          	push   0xc(%esp)
4063f1:	ff 74 24 0c          	push   0xc(%esp)
4063f5:	ff 15 b4 80 40 00    	call   *0x4080b4
4063fb:	c2 08 00             	ret    $0x8
4063fe:	ff 25 b0 80 40 00    	jmp    *0x4080b0
406404:	ff 25 ec 80 40 00    	jmp    *0x4080ec
40640a:	55                   	push   %ebp
40640b:	8b ec                	mov    %esp,%ebp
40640d:	83 ec 18             	sub    $0x18,%esp
406410:	8b 45 0c             	mov    0xc(%ebp),%eax
406413:	85 c0                	test   %eax,%eax
406415:	7d 11                	jge    0x406428
406417:	8b 0d 1c 92 42 00    	mov    0x42921c,%ecx
40641d:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
406424:	2b c8                	sub    %eax,%ecx
406426:	8b 01                	mov    (%ecx),%eax
406428:	8b 0d 98 a2 42 00    	mov    0x42a298,%ecx
40642e:	53                   	push   %ebx
40642f:	56                   	push   %esi
406430:	57                   	push   %edi
406431:	8d 14 41             	lea    (%ecx,%eax,2),%edx
406434:	b8 e0 81 42 00       	mov    $0x4281e0,%eax
406439:	39 45 08             	cmp    %eax,0x8(%ebp)
40643c:	8b f0                	mov    %eax,%esi
40643e:	0f 82 12 02 00 00    	jb     0x406656
406444:	8b 4d 08             	mov    0x8(%ebp),%ecx
406447:	2b c8                	sub    %eax,%ecx
406449:	d1 f9                	sar    $1,%ecx
40644b:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
406451:	0f 83 ff 01 00 00    	jae    0x406656
406457:	8b 75 08             	mov    0x8(%ebp),%esi
40645a:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40645e:	e9 f3 01 00 00       	jmp    0x406656
406463:	8b ce                	mov    %esi,%ecx
406465:	2b c8                	sub    %eax,%ecx
406467:	83 e1 fe             	and    $0xfffffffe,%ecx
40646a:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
406470:	0f 8d ec 01 00 00    	jge    0x406662
406476:	6a 02                	push   $0x2
406478:	59                   	pop    %ecx
406479:	03 d1                	add    %ecx,%edx
40647b:	66 83 ff 04          	cmp    $0x4,%di
40647f:	89 55 0c             	mov    %edx,0xc(%ebp)
406482:	0f 83 bb 01 00 00    	jae    0x406643
406488:	8a 4a 01             	mov    0x1(%edx),%cl
40648b:	8a 02                	mov    (%edx),%al
40648d:	8a d1                	mov    %cl,%dl
40648f:	8a d8                	mov    %al,%bl
406491:	83 e2 7f             	and    $0x7f,%edx
406494:	83 e3 7f             	and    $0x7f,%ebx
406497:	c1 e2 07             	shl    $0x7,%edx
40649a:	0f b6 c0             	movzbl %al,%eax
40649d:	0b d3                	or     %ebx,%edx
40649f:	8b d8                	mov    %eax,%ebx
4064a1:	89 55 fc             	mov    %edx,-0x4(%ebp)
4064a4:	ba 00 80 00 00       	mov    $0x8000,%edx
4064a9:	0b da                	or     %edx,%ebx
4064ab:	83 45 0c 02          	addl   $0x2,0xc(%ebp)
4064af:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4064b2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4064b5:	0f b6 d9             	movzbl %cl,%ebx
4064b8:	8b cb                	mov    %ebx,%ecx
4064ba:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4064bd:	0b ca                	or     %edx,%ecx
4064bf:	66 83 ff 02          	cmp    $0x2,%di
4064c3:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4064c6:	0f 85 1a 01 00 00    	jne    0x4065e6
4064cc:	8b 0d 4c a2 42 00    	mov    0x42a24c,%ecx
4064d2:	6a 02                	push   $0x2
4064d4:	85 c9                	test   %ecx,%ecx
4064d6:	5f                   	pop    %edi
4064d7:	79 17                	jns    0x4064f0
4064d9:	66 81 f9 04 5a       	cmp    $0x5a04,%cx
4064de:	74 10                	je     0x4064f0
4064e0:	83 fb 23             	cmp    $0x23,%ebx
4064e3:	74 0b                	je     0x4064f0
4064e5:	83 fb 2e             	cmp    $0x2e,%ebx
4064e8:	74 06                	je     0x4064f0
4064ea:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4064ee:	eb 07                	jmp    0x4064f7
4064f0:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4064f7:	83 3d e4 a2 42 00 00 	cmpl   $0x0,0x42a2e4
4064fe:	74 03                	je     0x406503
406500:	6a 04                	push   $0x4
406502:	5f                   	pop    %edi
406503:	84 c0                	test   %al,%al
406505:	79 39                	jns    0x406540
406507:	8b c8                	mov    %eax,%ecx
406509:	83 e0 3f             	and    $0x3f,%eax
40650c:	83 e1 40             	and    $0x40,%ecx
40650f:	51                   	push   %ecx
406510:	8b 0d 98 a2 42 00    	mov    0x42a298,%ecx
406516:	56                   	push   %esi
406517:	8d 04 41             	lea    (%ecx,%eax,2),%eax
40651a:	50                   	push   %eax
40651b:	68 28 84 40 00       	push   $0x408428
406520:	68 02 00 00 80       	push   $0x80000002
406525:	e8 8c fd ff ff       	call   0x4062b6
40652a:	66 83 3e 00          	cmpw   $0x0,(%esi)
40652e:	0f 85 9a 00 00 00    	jne    0x4065ce
406534:	53                   	push   %ebx
406535:	56                   	push   %esi
406536:	e8 cf fe ff ff       	call   0x40640a
40653b:	e9 85 00 00 00       	jmp    0x4065c5
406540:	83 f8 25             	cmp    $0x25,%eax
406543:	75 0e                	jne    0x406553
406545:	68 00 04 00 00       	push   $0x400
40654a:	56                   	push   %esi
40654b:	ff 15 f0 80 40 00    	call   *0x4080f0
406551:	eb 72                	jmp    0x4065c5
406553:	83 f8 24             	cmp    $0x24,%eax
406556:	75 69                	jne    0x4065c1
406558:	68 00 04 00 00       	push   $0x400
40655d:	56                   	push   %esi
40655e:	ff 15 9c 80 40 00    	call   *0x40809c
406564:	33 ff                	xor    %edi,%edi
406566:	eb 59                	jmp    0x4065c1
406568:	a1 44 a2 42 00       	mov    0x42a244,%eax
40656d:	33 c9                	xor    %ecx,%ecx
40656f:	4f                   	dec    %edi
406570:	3b c1                	cmp    %ecx,%eax
406572:	74 18                	je     0x40658c
406574:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
406577:	74 13                	je     0x40658c
406579:	56                   	push   %esi
40657a:	51                   	push   %ecx
40657b:	51                   	push   %ecx
40657c:	ff 74 bd e8          	push   -0x18(%ebp,%edi,4)
406580:	ff 35 48 a2 42 00    	push   0x42a248
406586:	ff d0                	call   *%eax
406588:	85 c0                	test   %eax,%eax
40658a:	74 39                	je     0x4065c5
40658c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40658f:	50                   	push   %eax
406590:	ff 74 bd e8          	push   -0x18(%ebp,%edi,4)
406594:	ff 35 48 a2 42 00    	push   0x42a248
40659a:	ff 15 78 81 40 00    	call   *0x408178
4065a0:	85 c0                	test   %eax,%eax
4065a2:	75 19                	jne    0x4065bd
4065a4:	56                   	push   %esi
4065a5:	ff 75 f8             	push   -0x8(%ebp)
4065a8:	ff 15 80 81 40 00    	call   *0x408180
4065ae:	ff 75 f8             	push   -0x8(%ebp)
4065b1:	8b d8                	mov    %eax,%ebx
4065b3:	ff 15 a4 82 40 00    	call   *0x4082a4
4065b9:	85 db                	test   %ebx,%ebx
4065bb:	75 08                	jne    0x4065c5
4065bd:	66 83 26 00          	andw   $0x0,(%esi)
4065c1:	85 ff                	test   %edi,%edi
4065c3:	75 a3                	jne    0x406568
4065c5:	66 83 3e 00          	cmpw   $0x0,(%esi)
4065c9:	74 13                	je     0x4065de
4065cb:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4065ce:	83 fb 1a             	cmp    $0x1a,%ebx
4065d1:	75 0b                	jne    0x4065de
4065d3:	68 80 84 40 00       	push   $0x408480
4065d8:	56                   	push   %esi
4065d9:	e8 26 fe ff ff       	call   0x406404
4065de:	56                   	push   %esi
4065df:	e8 98 00 00 00       	call   0x40667c
4065e4:	eb 4a                	jmp    0x406630
4065e6:	66 83 ff 03          	cmp    $0x3,%di
4065ea:	75 31                	jne    0x40661d
4065ec:	8b 7d fc             	mov    -0x4(%ebp),%edi
4065ef:	83 ff 1d             	cmp    $0x1d,%edi
4065f2:	75 0e                	jne    0x406602
4065f4:	ff 35 48 a2 42 00    	push   0x42a248
4065fa:	56                   	push   %esi
4065fb:	e8 2f fd ff ff       	call   0x40632f
406600:	eb 11                	jmp    0x406613
406602:	8b c7                	mov    %edi,%eax
406604:	c1 e0 0b             	shl    $0xb,%eax
406607:	05 00 b0 42 00       	add    $0x42b000,%eax
40660c:	50                   	push   %eax
40660d:	56                   	push   %esi
40660e:	e8 d5 fd ff ff       	call   0x4063e8
406613:	83 c7 eb             	add    $0xffffffeb,%edi
406616:	83 ff 07             	cmp    $0x7,%edi
406619:	73 15                	jae    0x406630
40661b:	eb c1                	jmp    0x4065de
40661d:	66 83 ff 01          	cmp    $0x1,%di
406621:	75 0d                	jne    0x406630
406623:	83 c8 ff             	or     $0xffffffff,%eax
406626:	2b 45 fc             	sub    -0x4(%ebp),%eax
406629:	50                   	push   %eax
40662a:	56                   	push   %esi
40662b:	e8 da fd ff ff       	call   0x40640a
406630:	56                   	push   %esi
406631:	e8 c8 fd ff ff       	call   0x4063fe
406636:	8b 55 0c             	mov    0xc(%ebp),%edx
406639:	8d 34 46             	lea    (%esi,%eax,2),%esi
40663c:	b8 e0 81 42 00       	mov    $0x4281e0,%eax
406641:	eb 13                	jmp    0x406656
406643:	75 0c                	jne    0x406651
406645:	66 8b 3a             	mov    (%edx),%di
406648:	66 89 3e             	mov    %di,(%esi)
40664b:	03 f1                	add    %ecx,%esi
40664d:	03 d1                	add    %ecx,%edx
40664f:	eb 05                	jmp    0x406656
406651:	66 89 3e             	mov    %di,(%esi)
406654:	03 f1                	add    %ecx,%esi
406656:	66 8b 3a             	mov    (%edx),%di
406659:	66 85 ff             	test   %di,%di
40665c:	0f 85 01 fe ff ff    	jne    0x406463
406662:	66 83 26 00          	andw   $0x0,(%esi)
406666:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40666a:	5f                   	pop    %edi
40666b:	5e                   	pop    %esi
40666c:	5b                   	pop    %ebx
40666d:	74 09                	je     0x406678
40666f:	50                   	push   %eax
406670:	ff 75 08             	push   0x8(%ebp)
406673:	e8 70 fd ff ff       	call   0x4063e8
406678:	c9                   	leave
406679:	c2 08 00             	ret    $0x8
40667c:	55                   	push   %ebp
40667d:	56                   	push   %esi
40667e:	8b 74 24 0c          	mov    0xc(%esp),%esi
406682:	57                   	push   %edi
406683:	66 83 3e 5c          	cmpw   $0x5c,(%esi)
406687:	75 18                	jne    0x4066a1
406689:	66 83 7e 02 5c       	cmpw   $0x5c,0x2(%esi)
40668e:	75 11                	jne    0x4066a1
406690:	66 83 7e 04 3f       	cmpw   $0x3f,0x4(%esi)
406695:	75 0a                	jne    0x4066a1
406697:	66 83 7e 06 5c       	cmpw   $0x5c,0x6(%esi)
40669c:	75 03                	jne    0x4066a1
40669e:	83 c6 08             	add    $0x8,%esi
4066a1:	66 83 3e 00          	cmpw   $0x0,(%esi)
4066a5:	74 0d                	je     0x4066b4
4066a7:	56                   	push   %esi
4066a8:	e8 87 f6 ff ff       	call   0x405d34
4066ad:	85 c0                	test   %eax,%eax
4066af:	74 03                	je     0x4066b4
4066b1:	83 c6 04             	add    $0x4,%esi
4066b4:	66 8b 06             	mov    (%esi),%ax
4066b7:	8b ee                	mov    %esi,%ebp
4066b9:	66 85 c0             	test   %ax,%ax
4066bc:	8b fe                	mov    %esi,%edi
4066be:	74 40                	je     0x406700
4066c0:	53                   	push   %ebx
4066c1:	8b 1d 48 82 40 00    	mov    0x408248,%ebx
4066c7:	66 3d 1f 00          	cmp    $0x1f,%ax
4066cb:	76 25                	jbe    0x4066f2
4066cd:	50                   	push   %eax
4066ce:	68 ac a5 40 00       	push   $0x40a5ac
4066d3:	e8 12 f6 ff ff       	call   0x405cea
4066d8:	66 83 38 00          	cmpw   $0x0,(%eax)
4066dc:	75 14                	jne    0x4066f2