4063fa:	bf 02 01 00 00       	mov    $0x102,%edi
4063ff:	eb 0e                	jmp    0x40640f
406401:	6a 0f                	push   $0xf
406403:	e8 a6 ff ff ff       	call   0x4063ae
406408:	6a 64                	push   $0x64
40640a:	ff 75 08             	push   0x8(%ebp)
40640d:	ff d6                	call   *%esi
40640f:	3b c7                	cmp    %edi,%eax
406411:	74 ee                	je     0x406401
406413:	8d 45 fc             	lea    -0x4(%ebp),%eax
406416:	50                   	push   %eax
406417:	ff 75 08             	push   0x8(%ebp)
40641a:	ff 15 ec 70 40 00    	call   *0x4070ec
406420:	8b 45 fc             	mov    -0x4(%ebp),%eax
406423:	5f                   	pop    %edi
406424:	5e                   	pop    %esi
406425:	c9                   	leave
406426:	c2 04 00             	ret    $0x4
406429:	83 3d 9c 22 42 00 00 	cmpl   $0x0,0x42229c
406430:	56                   	push   %esi
406431:	75 2d                	jne    0x406460
406433:	33 c9                	xor    %ecx,%ecx
406435:	6a 08                	push   $0x8
406437:	8b c1                	mov    %ecx,%eax
406439:	5e                   	pop    %esi
40643a:	8b d0                	mov    %eax,%edx
40643c:	80 e2 01             	and    $0x1,%dl
40643f:	f6 da                	neg    %dl
406441:	1b d2                	sbb    %edx,%edx
406443:	81 e2 20 83 b8 ed    	and    $0xedb88320,%edx
406449:	d1 e8                	shr    $1,%eax
40644b:	33 c2                	xor    %edx,%eax
40644d:	4e                   	dec    %esi
40644e:	75 ea                	jne    0x40643a
406450:	89 04 8d 98 22 42 00 	mov    %eax,0x422298(,%ecx,4)
406457:	41                   	inc    %ecx
406458:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40645e:	7c d5                	jl     0x406435
406460:	8b 54 24 10          	mov    0x10(%esp),%edx
406464:	8b 44 24 08          	mov    0x8(%esp),%eax
406468:	85 d2                	test   %edx,%edx
40646a:	f7 d0                	not    %eax
40646c:	76 23                	jbe    0x406491
40646e:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
406472:	57                   	push   %edi
406473:	0f b6 39             	movzbl (%ecx),%edi
406476:	8b f0                	mov    %eax,%esi
406478:	81 e6 ff 00 00 00    	and    $0xff,%esi
40647e:	33 f7                	xor    %edi,%esi
406480:	c1 e8 08             	shr    $0x8,%eax
406483:	8b 34 b5 98 22 42 00 	mov    0x422298(,%esi,4),%esi
40648a:	33 c6                	xor    %esi,%eax
40648c:	41                   	inc    %ecx
40648d:	4a                   	dec    %edx
40648e:	75 e3                	jne    0x406473
406490:	5f                   	pop    %edi
406491:	f7 d0                	not    %eax
406493:	5e                   	pop    %esi
406494:	c2 0c 00             	ret    $0xc
406497:	b8 80 00 00 00       	mov    $0x80,%eax
40649c:	48                   	dec    %eax
40649d:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
4064a1:	75 f9                	jne    0x40649c
4064a3:	83 49 78 ff          	orl    $0xffffffff,0x78(%ecx)
4064a7:	33 c0                	xor    %eax,%eax
4064a9:	40                   	inc    %eax
4064aa:	89 41 68             	mov    %eax,0x68(%ecx)
4064ad:	89 41 64             	mov    %eax,0x64(%ecx)
4064b0:	89 41 60             	mov    %eax,0x60(%ecx)
4064b3:	89 41 5c             	mov    %eax,0x5c(%ecx)
4064b6:	c3                   	ret
4064b7:	55                   	push   %ebp
4064b8:	8b ec                	mov    %esp,%ebp
4064ba:	81 ec 90 00 00 00    	sub    $0x90,%esp
4064c0:	53                   	push   %ebx
4064c1:	56                   	push   %esi
4064c2:	57                   	push   %edi
4064c3:	6a 22                	push   $0x22
4064c5:	8b f1                	mov    %ecx,%esi
4064c7:	59                   	pop    %ecx
4064c8:	8d bd 78 ff ff ff    	lea    -0x88(%ebp),%edi
4064ce:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
4064d4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4064d6:	83 7d d0 ff          	cmpl   $0xffffffff,-0x30(%ebp)
4064da:	75 08                	jne    0x4064e4
4064dc:	33 c0                	xor    %eax,%eax
4064de:	40                   	inc    %eax
4064df:	e9 20 0a 00 00       	jmp    0x406f04
4064e4:	8b 5d bc             	mov    -0x44(%ebp),%ebx
4064e7:	8b 75 ac             	mov    -0x54(%ebp),%esi
4064ea:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
4064f0:	83 f8 1c             	cmp    $0x1c,%eax
4064f3:	0f 87 08 0a 00 00    	ja     0x406f01
4064f9:	ff 24 85 09 6f 40 00 	jmp    *0x406f09(,%eax,4)
406500:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406504:	0f 84 e2 09 00 00    	je     0x406eec
40650a:	8b 45 90             	mov    -0x70(%ebp),%eax
40650d:	ff 4d 94             	decl   -0x6c(%ebp)
406510:	ff 45 90             	incl   -0x70(%ebp)
406513:	8a 00                	mov    (%eax),%al
406515:	3c e1                	cmp    $0xe1,%al
406517:	0f 87 e4 09 00 00    	ja     0x406f01
40651d:	0f b6 c0             	movzbl %al,%eax
406520:	6a 2d                	push   $0x2d
406522:	99                   	cltd
406523:	59                   	pop    %ecx
406524:	f7 f9                	idiv   %ecx
406526:	6a 09                	push   $0x9
406528:	59                   	pop    %ecx
406529:	8b f0                	mov    %eax,%esi
40652b:	0f b6 c2             	movzbl %dl,%eax
40652e:	99                   	cltd
40652f:	f7 f9                	idiv   %ecx
406531:	8b ce                	mov    %esi,%ecx
406533:	0f b6 fa             	movzbl %dl,%edi
406536:	33 d2                	xor    %edx,%edx
406538:	89 7d c4             	mov    %edi,-0x3c(%ebp)
40653b:	42                   	inc    %edx
40653c:	d3 e2                	shl    %cl,%edx
40653e:	8b c8                	mov    %eax,%ecx
406540:	4a                   	dec    %edx
406541:	89 55 e4             	mov    %edx,-0x1c(%ebp)
406544:	33 d2                	xor    %edx,%edx
406546:	42                   	inc    %edx
406547:	d3 e2                	shl    %cl,%edx
406549:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
40654c:	be 00 03 00 00       	mov    $0x300,%esi
406551:	d3 e6                	shl    %cl,%esi
406553:	4a                   	dec    %edx
406554:	89 55 e8             	mov    %edx,-0x18(%ebp)
406557:	81 c6 36 07 00 00    	add    $0x736,%esi
40655d:	8d 3c 36             	lea    (%esi,%esi,1),%edi
406560:	3b 7d 88             	cmp    -0x78(%ebp),%edi
406563:	74 26                	je     0x40658b
406565:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406569:	74 09                	je     0x406574
40656b:	ff 75 fc             	push   -0x4(%ebp)
40656e:	ff 15 5c 71 40 00    	call   *0x40715c
406574:	57                   	push   %edi
406575:	6a 40                	push   $0x40
406577:	ff 15 58 71 40 00    	call   *0x407158
40657d:	85 c0                	test   %eax,%eax
40657f:	89 45 fc             	mov    %eax,-0x4(%ebp)
406582:	0f 84 79 09 00 00    	je     0x406f01
406588:	89 7d 88             	mov    %edi,-0x78(%ebp)
40658b:	85 f6                	test   %esi,%esi
40658d:	74 0c                	je     0x40659b
40658f:	8b 45 fc             	mov    -0x4(%ebp),%eax
406592:	4e                   	dec    %esi
406593:	66 c7 04 70 00 04    	movw   $0x400,(%eax,%esi,2)
406599:	75 f4                	jne    0x40658f
40659b:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
40659f:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
4065a3:	eb 26                	jmp    0x4065cb
4065a5:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
4065a9:	0f 84 a6 08 00 00    	je     0x406e55
4065af:	8b 45 b8             	mov    -0x48(%ebp),%eax
4065b2:	ff 4d 94             	decl   -0x6c(%ebp)
4065b5:	8b c8                	mov    %eax,%ecx
4065b7:	8b 45 90             	mov    -0x70(%ebp),%eax
4065ba:	c1 e1 03             	shl    $0x3,%ecx
4065bd:	0f b6 00             	movzbl (%eax),%eax
4065c0:	d3 e0                	shl    %cl,%eax
4065c2:	09 45 c0             	or     %eax,-0x40(%ebp)
4065c5:	ff 45 90             	incl   -0x70(%ebp)
4065c8:	ff 45 b8             	incl   -0x48(%ebp)
4065cb:	83 7d b8 04          	cmpl   $0x4,-0x48(%ebp)
4065cf:	7c d4                	jl     0x4065a5
4065d1:	8b 45 c0             	mov    -0x40(%ebp),%eax
4065d4:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4065d7:	74 28                	je     0x406601
4065d9:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4065dd:	89 45 8c             	mov    %eax,-0x74(%ebp)
4065e0:	74 09                	je     0x4065eb
4065e2:	ff 75 f8             	push   -0x8(%ebp)
4065e5:	ff 15 5c 71 40 00    	call   *0x40715c
4065eb:	ff 75 c0             	push   -0x40(%ebp)
4065ee:	6a 40                	push   $0x40
4065f0:	ff 15 58 71 40 00    	call   *0x407158
4065f6:	85 c0                	test   %eax,%eax
4065f8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4065fb:	0f 84 00 09 00 00    	je     0x406f01
406601:	8b 45 f8             	mov    -0x8(%ebp),%eax
406604:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
406607:	c7 45 b8 05 00 00 00 	movl   $0x5,-0x48(%ebp)
40660e:	80 64 08 ff 00       	andb   $0x0,-0x1(%eax,%ecx,1)
406613:	eb 21                	jmp    0x406636
406615:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406619:	0f 84 45 08 00 00    	je     0x406e64
40661f:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406622:	8b 45 f4             	mov    -0xc(%ebp),%eax
406625:	ff 4d 94             	decl   -0x6c(%ebp)
406628:	0f b6 09             	movzbl (%ecx),%ecx
40662b:	c1 e0 08             	shl    $0x8,%eax
40662e:	0b c1                	or     %ecx,%eax
406630:	ff 45 90             	incl   -0x70(%ebp)
406633:	89 45 f4             	mov    %eax,-0xc(%ebp)
406636:	8b 45 b8             	mov    -0x48(%ebp),%eax
406639:	ff 4d b8             	decl   -0x48(%ebp)
40663c:	85 c0                	test   %eax,%eax
40663e:	75 d5                	jne    0x406615
406640:	8b 45 a0             	mov    -0x60(%ebp),%eax
406643:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406646:	23 45 e4             	and    -0x1c(%ebp),%eax
406649:	c7 85 7c ff ff ff 06 	movl   $0x6,-0x84(%ebp)
406650:	00 00 00
406653:	c1 e1 04             	shl    $0x4,%ecx
406656:	89 45 b4             	mov    %eax,-0x4c(%ebp)
406659:	03 c8                	add    %eax,%ecx
40665b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40665e:	8d 34 48             	lea    (%eax,%ecx,2),%esi
406661:	e9 6c 06 00 00       	jmp    0x406cd2
406666:	33 d2                	xor    %edx,%edx
406668:	39 55 c0             	cmp    %edx,-0x40(%ebp)
40666b:	75 6f                	jne    0x4066dc
40666d:	0f b6 45 a4          	movzbl -0x5c(%ebp),%eax
406671:	8b 75 a0             	mov    -0x60(%ebp),%esi
406674:	b1 08                	mov    $0x8,%cl
406676:	2a 4d c4             	sub    -0x3c(%ebp),%cl
406679:	23 75 e8             	and    -0x18(%ebp),%esi
40667c:	d3 e8                	shr    %cl,%eax
40667e:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
406681:	d3 e6                	shl    %cl,%esi
406683:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406686:	03 c6                	add    %esi,%eax
406688:	8d 04 40             	lea    (%eax,%eax,2),%eax
40668b:	c1 e0 09             	shl    $0x9,%eax
40668e:	83 7d c8 04          	cmpl   $0x4,-0x38(%ebp)
406692:	8d 84 08 6c 0e 00 00 	lea    0xe6c(%eax,%ecx,1),%eax
406699:	89 45 a8             	mov    %eax,-0x58(%ebp)
40669c:	7d 05                	jge    0x4066a3
40669e:	89 55 c8             	mov    %edx,-0x38(%ebp)
4066a1:	eb 10                	jmp    0x4066b3
4066a3:	83 7d c8 0a          	cmpl   $0xa,-0x38(%ebp)
4066a7:	7d 06                	jge    0x4066af
4066a9:	83 6d c8 03          	subl   $0x3,-0x38(%ebp)
4066ad:	eb 04                	jmp    0x4066b3
4066af:	83 6d c8 06          	subl   $0x6,-0x38(%ebp)
4066b3:	39 55 cc             	cmp    %edx,-0x34(%ebp)
4066b6:	74 1c                	je     0x4066d4
4066b8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4066bb:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4066be:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4066c1:	72 03                	jb     0x4066c6
4066c3:	03 45 8c             	add    -0x74(%ebp),%eax
4066c6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4066c9:	33 db                	xor    %ebx,%ebx
4066cb:	43                   	inc    %ebx
4066cc:	8a 04 08             	mov    (%eax,%ecx,1),%al
4066cf:	88 45 a5             	mov    %al,-0x5b(%ebp)
4066d2:	eb 68                	jmp    0x40673c
4066d4:	33 db                	xor    %ebx,%ebx
4066d6:	43                   	inc    %ebx
4066d7:	e9 cd 01 00 00       	jmp    0x4068a9
4066dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4066df:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4066e2:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
4066e9:	c7 85 7c ff ff ff 07 	movl   $0x7,-0x84(%ebp)
4066f0:	00 00 00
4066f3:	8d b4 48 80 01 00 00 	lea    0x180(%eax,%ecx,2),%esi
4066fa:	e9 d3 05 00 00       	jmp    0x406cd2
4066ff:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
406703:	0f 84 67 07 00 00    	je     0x406e70
406709:	8b 4d 90             	mov    -0x70(%ebp),%ecx
40670c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40670f:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
406713:	0f b6 09             	movzbl (%ecx),%ecx
406716:	ff 4d 94             	decl   -0x6c(%ebp)
406719:	c1 e0 08             	shl    $0x8,%eax
40671c:	0b c1                	or     %ecx,%eax
40671e:	ff 45 90             	incl   -0x70(%ebp)
406721:	89 45 f4             	mov    %eax,-0xc(%ebp)
406724:	8b 45 c0             	mov    -0x40(%ebp),%eax
406727:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40672a:	0f 85 ad 00 00 00    	jne    0x4067dd
406730:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
406736:	0f 8d 05 01 00 00    	jge    0x406841
40673c:	0f b6 45 a5          	movzbl -0x5b(%ebp),%eax
406740:	d0 65 a5             	shlb   $1,-0x5b(%ebp)
406743:	8b 4d a8             	mov    -0x58(%ebp),%ecx
406746:	c1 e8 07             	shr    $0x7,%eax
406749:	89 45 b8             	mov    %eax,-0x48(%ebp)
40674c:	40                   	inc    %eax
40674d:	c1 e0 08             	shl    $0x8,%eax
406750:	03 c3                	add    %ebx,%eax
406752:	8d 34 41             	lea    (%ecx,%eax,2),%esi
406755:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406758:	c1 e9 0b             	shr    $0xb,%ecx
40675b:	66 8b 06             	mov    (%esi),%ax
40675e:	89 75 ac             	mov    %esi,-0x54(%ebp)
406761:	0f b7 d0             	movzwl %ax,%edx
406764:	0f af ca             	imul   %edx,%ecx
406767:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
40676a:	73 1a                	jae    0x406786
40676c:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
406770:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406773:	b9 00 08 00 00       	mov    $0x800,%ecx
406778:	2b ca                	sub    %edx,%ecx
40677a:	c1 f9 05             	sar    $0x5,%ecx
40677d:	03 c8                	add    %eax,%ecx
40677f:	03 db                	add    %ebx,%ebx
406781:	66 89 0e             	mov    %cx,(%esi)
406784:	eb 1d                	jmp    0x4067a3
406786:	29 4d f0             	sub    %ecx,-0x10(%ebp)
406789:	29 4d f4             	sub    %ecx,-0xc(%ebp)
40678c:	66 8b c8             	mov    %ax,%cx
40678f:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
406796:	66 c1 e9 05          	shr    $0x5,%cx
40679a:	2b c1                	sub    %ecx,%eax
40679c:	8d 5c 1b 01          	lea    0x1(%ebx,%ebx,1),%ebx
4067a0:	66 89 06             	mov    %ax,(%esi)
4067a3:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4067aa:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4067ad:	0f 83 71 ff ff ff    	jae    0x406724
4067b3:	e9 47 ff ff ff       	jmp    0x4066ff
4067b8:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
4067bc:	0f 84 ba 06 00 00    	je     0x406e7c
4067c2:	8b 4d 90             	mov    -0x70(%ebp),%ecx
4067c5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4067c8:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
4067cc:	0f b6 09             	movzbl (%ecx),%ecx
4067cf:	ff 4d 94             	decl   -0x6c(%ebp)
4067d2:	c1 e0 08             	shl    $0x8,%eax
4067d5:	0b c1                	or     %ecx,%eax
4067d7:	ff 45 90             	incl   -0x70(%ebp)
4067da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4067dd:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4067e3:	7d 5c                	jge    0x406841
4067e5:	8b 45 a8             	mov    -0x58(%ebp),%eax
4067e8:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
4067eb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4067ee:	8d 34 02             	lea    (%edx,%eax,1),%esi
4067f1:	c1 e9 0b             	shr    $0xb,%ecx
4067f4:	66 8b 06             	mov    (%esi),%ax
4067f7:	89 75 ac             	mov    %esi,-0x54(%ebp)
4067fa:	0f b7 f8             	movzwl %ax,%edi
4067fd:	0f af cf             	imul   %edi,%ecx
406800:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
406803:	73 16                	jae    0x40681b
406805:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406808:	b9 00 08 00 00       	mov    $0x800,%ecx
40680d:	2b cf                	sub    %edi,%ecx
40680f:	c1 f9 05             	sar    $0x5,%ecx
406812:	03 c8                	add    %eax,%ecx
406814:	03 db                	add    %ebx,%ebx
406816:	66 89 0e             	mov    %cx,(%esi)
406819:	eb 15                	jmp    0x406830
40681b:	29 4d f0             	sub    %ecx,-0x10(%ebp)
40681e:	29 4d f4             	sub    %ecx,-0xc(%ebp)
406821:	66 8b c8             	mov    %ax,%cx