4062b3:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
4062b6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4062b9:	8d 34 02             	lea    (%edx,%eax,1),%esi
4062bc:	c1 e9 0b             	shr    $0xb,%ecx
4062bf:	66 8b 06             	mov    (%esi),%ax
4062c2:	89 75 ac             	mov    %esi,-0x54(%ebp)
4062c5:	0f b7 f8             	movzwl %ax,%edi
4062c8:	0f af cf             	imul   %edi,%ecx
4062cb:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
4062ce:	73 16                	jae    0x4062e6
4062d0:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4062d3:	b9 00 08 00 00       	mov    $0x800,%ecx
4062d8:	2b cf                	sub    %edi,%ecx
4062da:	c1 f9 05             	sar    $0x5,%ecx
4062dd:	03 c8                	add    %eax,%ecx
4062df:	03 db                	add    %ebx,%ebx
4062e1:	66 89 0e             	mov    %cx,(%esi)
4062e4:	eb 15                	jmp    0x4062fb
4062e6:	29 4d f0             	sub    %ecx,-0x10(%ebp)
4062e9:	29 4d f4             	sub    %ecx,-0xc(%ebp)
4062ec:	66 8b c8             	mov    %ax,%cx
4062ef:	8d 5a 01             	lea    0x1(%edx),%ebx
4062f2:	66 c1 e9 05          	shr    $0x5,%cx
4062f6:	2b c1                	sub    %ecx,%eax
4062f8:	66 89 06             	mov    %ax,(%esi)
4062fb:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406302:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406305:	73 a1                	jae    0x4062a8
406307:	e9 77 ff ff ff       	jmp    0x406283
40630c:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
406310:	8a 45 bc             	mov    -0x44(%ebp),%al
406313:	88 45 a4             	mov    %al,-0x5c(%ebp)
406316:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
40631a:	0f 84 3f 06 00 00    	je     0x40695f
406320:	8b 4d 98             	mov    -0x68(%ebp),%ecx
406323:	8a 45 a4             	mov    -0x5c(%ebp),%al
406326:	8b 55 f8             	mov    -0x8(%ebp),%edx
406329:	ff 45 a0             	incl   -0x60(%ebp)
40632c:	ff 45 98             	incl   -0x68(%ebp)
40632f:	ff 4d 9c             	decl   -0x64(%ebp)
406332:	88 01                	mov    %al,(%ecx)
406334:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406337:	88 04 11             	mov    %al,(%ecx,%edx,1)
40633a:	8d 41 01             	lea    0x1(%ecx),%eax
40633d:	33 d2                	xor    %edx,%edx
40633f:	f7 75 8c             	divl   -0x74(%ebp)
406342:	e9 95 01 00 00       	jmp    0x4064dc
406347:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
40634b:	0f 84 02 06 00 00    	je     0x406953
406351:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406354:	8b 45 f4             	mov    -0xc(%ebp),%eax
406357:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
40635b:	0f b6 09             	movzbl (%ecx),%ecx
40635e:	ff 4d 94             	decl   -0x6c(%ebp)
406361:	c1 e0 08             	shl    $0x8,%eax
406364:	0b c1                	or     %ecx,%eax
406366:	ff 45 90             	incl   -0x70(%ebp)
406369:	89 45 f4             	mov    %eax,-0xc(%ebp)
40636c:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
406372:	7d 9c                	jge    0x406310
406374:	8b 45 a8             	mov    -0x58(%ebp),%eax
406377:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
40637a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40637d:	8d 34 02             	lea    (%edx,%eax,1),%esi
406380:	c1 e9 0b             	shr    $0xb,%ecx
406383:	66 8b 06             	mov    (%esi),%ax
406386:	89 75 ac             	mov    %esi,-0x54(%ebp)
406389:	0f b7 f8             	movzwl %ax,%edi
40638c:	0f af cf             	imul   %edi,%ecx
40638f:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
406392:	73 16                	jae    0x4063aa
406394:	89 4d f0             	mov    %ecx,-0x10(%ebp)
406397:	b9 00 08 00 00       	mov    $0x800,%ecx
40639c:	2b cf                	sub    %edi,%ecx
40639e:	c1 f9 05             	sar    $0x5,%ecx
4063a1:	03 c8                	add    %eax,%ecx
4063a3:	03 db                	add    %ebx,%ebx
4063a5:	66 89 0e             	mov    %cx,(%esi)
4063a8:	eb 15                	jmp    0x4063bf
4063aa:	29 4d f0             	sub    %ecx,-0x10(%ebp)
4063ad:	29 4d f4             	sub    %ecx,-0xc(%ebp)
4063b0:	66 8b c8             	mov    %ax,%cx
4063b3:	8d 5a 01             	lea    0x1(%edx),%ebx
4063b6:	66 c1 e9 05          	shr    $0x5,%cx
4063ba:	2b c1                	sub    %ecx,%eax
4063bc:	66 89 06             	mov    %ax,(%esi)
4063bf:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4063c6:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4063c9:	73 a1                	jae    0x40636c
4063cb:	e9 77 ff ff ff       	jmp    0x406347
4063d0:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
4063d4:	75 1c                	jne    0x4063f2
4063d6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4063d9:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4063dc:	c7 85 7c ff ff ff 08 	movl   $0x8,-0x84(%ebp)
4063e3:	00 00 00
4063e6:	8d b4 48 98 01 00 00 	lea    0x198(%eax,%ecx,2),%esi
4063ed:	e9 ab 03 00 00       	jmp    0x40679d
4063f2:	8b 45 dc             	mov    -0x24(%ebp),%eax
4063f5:	c7 45 80 16 00 00 00 	movl   $0x16,-0x80(%ebp)
4063fc:	89 45 e0             	mov    %eax,-0x20(%ebp)
4063ff:	8b 45 d8             	mov    -0x28(%ebp),%eax
406402:	89 45 dc             	mov    %eax,-0x24(%ebp)
406405:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406408:	89 45 d8             	mov    %eax,-0x28(%ebp)
40640b:	33 c0                	xor    %eax,%eax
40640d:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406411:	0f 9d c0             	setge  %al
406414:	48                   	dec    %eax
406415:	24 fd                	and    $0xfd,%al
406417:	83 c0 0a             	add    $0xa,%eax
40641a:	89 45 c8             	mov    %eax,-0x38(%ebp)
40641d:	8b 45 fc             	mov    -0x4(%ebp),%eax
406420:	05 64 06 00 00       	add    $0x664,%eax
406425:	89 45 a8             	mov    %eax,-0x58(%ebp)
406428:	8b 75 a8             	mov    -0x58(%ebp),%esi
40642b:	c7 85 7c ff ff ff 12 	movl   $0x12,-0x84(%ebp)
406432:	00 00 00
406435:	e9 63 03 00 00       	jmp    0x40679d
40643a:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40643e:	75 21                	jne    0x406461
406440:	8b 45 c8             	mov    -0x38(%ebp),%eax
406443:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406446:	83 c0 0f             	add    $0xf,%eax
406449:	c7 85 7c ff ff ff 09 	movl   $0x9,-0x84(%ebp)
406450:	00 00 00
406453:	c1 e0 04             	shl    $0x4,%eax
406456:	03 45 b4             	add    -0x4c(%ebp),%eax
406459:	8d 34 41             	lea    (%ecx,%eax,2),%esi
40645c:	e9 3c 03 00 00       	jmp    0x40679d
406461:	8b 45 fc             	mov    -0x4(%ebp),%eax
406464:	8b 4d c8             	mov    -0x38(%ebp),%ecx
406467:	c7 85 7c ff ff ff 0a 	movl   $0xa,-0x84(%ebp)
40646e:	00 00 00
406471:	8d b4 48 b0 01 00 00 	lea    0x1b0(%eax,%ecx,2),%esi
406478:	e9 20 03 00 00       	jmp    0x40679d
40647d:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406481:	0f 85 b1 00 00 00    	jne    0x406538
406487:	83 7d a0 00          	cmpl   $0x0,-0x60(%ebp)
40648b:	0f 84 3b 05 00 00    	je     0x4069cc
406491:	33 c0                	xor    %eax,%eax
406493:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406497:	0f 9d c0             	setge  %al
40649a:	8d 44 00 09          	lea    0x9(%eax,%eax,1),%eax
40649e:	89 45 c8             	mov    %eax,-0x38(%ebp)
4064a1:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
4064a5:	0f 84 c0 04 00 00    	je     0x40696b
4064ab:	8b 45 ec             	mov    -0x14(%ebp),%eax
4064ae:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4064b1:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4064b4:	72 03                	jb     0x4064b9
4064b6:	03 45 8c             	add    -0x74(%ebp),%eax
4064b9:	8b 55 f8             	mov    -0x8(%ebp),%edx
4064bc:	8a 0c 10             	mov    (%eax,%edx,1),%cl
4064bf:	8b 45 ec             	mov    -0x14(%ebp),%eax
4064c2:	88 4d a4             	mov    %cl,-0x5c(%ebp)
4064c5:	88 0c 10             	mov    %cl,(%eax,%edx,1)
4064c8:	40                   	inc    %eax
4064c9:	33 d2                	xor    %edx,%edx
4064cb:	f7 75 8c             	divl   -0x74(%ebp)
4064ce:	8b 45 98             	mov    -0x68(%ebp),%eax
4064d1:	ff 45 a0             	incl   -0x60(%ebp)
4064d4:	ff 45 98             	incl   -0x68(%ebp)
4064d7:	ff 4d 9c             	decl   -0x64(%ebp)
4064da:	88 08                	mov    %cl,(%eax)
4064dc:	89 55 ec             	mov    %edx,-0x14(%ebp)
4064df:	c7 85 78 ff ff ff 02 	movl   $0x2,-0x88(%ebp)
4064e6:	00 00 00
4064e9:	e9 c7 fa ff ff       	jmp    0x405fb5
4064ee:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4064f2:	75 05                	jne    0x4064f9
4064f4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4064f7:	eb 36                	jmp    0x40652f
4064f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4064fc:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4064ff:	c7 85 7c ff ff ff 0b 	movl   $0xb,-0x84(%ebp)
406506:	00 00 00
406509:	8d b4 48 c8 01 00 00 	lea    0x1c8(%eax,%ecx,2),%esi
406510:	e9 88 02 00 00       	jmp    0x40679d
406515:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
406519:	75 05                	jne    0x406520
40651b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40651e:	eb 09                	jmp    0x406529
406520:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406523:	8b 45 e0             	mov    -0x20(%ebp),%eax
406526:	89 4d e0             	mov    %ecx,-0x20(%ebp)
406529:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40652c:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40652f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406532:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406535:	89 4d d8             	mov    %ecx,-0x28(%ebp)
406538:	8b 45 fc             	mov    -0x4(%ebp),%eax
40653b:	c7 45 80 15 00 00 00 	movl   $0x15,-0x80(%ebp)
406542:	05 68 0a 00 00       	add    $0xa68,%eax
406547:	89 45 a8             	mov    %eax,-0x58(%ebp)
40654a:	e9 d9 fe ff ff       	jmp    0x406428
40654f:	33 c0                	xor    %eax,%eax
406551:	83 7d c8 07          	cmpl   $0x7,-0x38(%ebp)
406555:	0f 9d c0             	setge  %al
406558:	48                   	dec    %eax
406559:	24 fd                	and    $0xfd,%al
40655b:	83 c0 0b             	add    $0xb,%eax
40655e:	89 45 c8             	mov    %eax,-0x38(%ebp)
406561:	e9 9a 01 00 00       	jmp    0x406700
406566:	8b 45 d0             	mov    -0x30(%ebp),%eax
406569:	83 f8 04             	cmp    $0x4,%eax
40656c:	7c 03                	jl     0x406571
40656e:	6a 03                	push   $0x3
406570:	58                   	pop    %eax
406571:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406574:	c7 45 c0 06 00 00 00 	movl   $0x6,-0x40(%ebp)
40657b:	c1 e0 07             	shl    $0x7,%eax
40657e:	c7 45 84 19 00 00 00 	movl   $0x19,-0x7c(%ebp)
406585:	8d 84 08 60 03 00 00 	lea    0x360(%eax,%ecx,1),%eax
40658c:	89 45 a8             	mov    %eax,-0x58(%ebp)
40658f:	e9 ce 02 00 00       	jmp    0x406862
406594:	83 fb 04             	cmp    $0x4,%ebx
406597:	7c 34                	jl     0x4065cd
406599:	8b cb                	mov    %ebx,%ecx
40659b:	8b c3                	mov    %ebx,%eax
40659d:	d1 f9                	sar    $1,%ecx
40659f:	83 e0 01             	and    $0x1,%eax
4065a2:	49                   	dec    %ecx
4065a3:	0c 02                	or     $0x2,%al
4065a5:	d3 e0                	shl    %cl,%eax
4065a7:	83 fb 0e             	cmp    $0xe,%ebx
4065aa:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4065ad:	7d 14                	jge    0x4065c3
4065af:	8b 55 fc             	mov    -0x4(%ebp),%edx
4065b2:	2b c3                	sub    %ebx,%eax
4065b4:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4065b7:	8d 84 42 5e 05 00 00 	lea    0x55e(%edx,%eax,2),%eax
4065be:	e9 81 00 00 00       	jmp    0x406644
4065c3:	33 db                	xor    %ebx,%ebx
4065c5:	83 c1 fc             	add    $0xfffffffc,%ecx
4065c8:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4065cb:	eb 33                	jmp    0x406600
4065cd:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4065d0:	e9 28 01 00 00       	jmp    0x4066fd
4065d5:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
4065d9:	0f 84 98 03 00 00    	je     0x406977
4065df:	8b 4d 90             	mov    -0x70(%ebp),%ecx
4065e2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4065e5:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
4065e9:	0f b6 09             	movzbl (%ecx),%ecx
4065ec:	ff 4d 94             	decl   -0x6c(%ebp)
4065ef:	c1 e0 08             	shl    $0x8,%eax
4065f2:	0b c1                	or     %ecx,%eax
4065f4:	ff 45 90             	incl   -0x70(%ebp)
4065f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4065fa:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4065fd:	ff 4d b8             	decl   -0x48(%ebp)
406600:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
406604:	7e 27                	jle    0x40662d
406606:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406609:	03 db                	add    %ebx,%ebx
40660b:	d1 6d f0             	shrl   $1,-0x10(%ebp)
40660e:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
406611:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406614:	72 0c                	jb     0x406622
406616:	8b 4d f0             	mov    -0x10(%ebp),%ecx
406619:	29 4d f4             	sub    %ecx,-0xc(%ebp)
40661c:	83 cb 01             	or     $0x1,%ebx
40661f:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406622:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
406629:	73 d2                	jae    0x4065fd
40662b:	eb a8                	jmp    0x4065d5
40662d:	c1 e3 04             	shl    $0x4,%ebx
406630:	03 c3                	add    %ebx,%eax
406632:	c7 45 c0 04 00 00 00 	movl   $0x4,-0x40(%ebp)
406639:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40663c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40663f:	05 44 06 00 00       	add    $0x644,%eax
406644:	33 db                	xor    %ebx,%ebx
406646:	89 45 a8             	mov    %eax,-0x58(%ebp)
406649:	c7 45 b0 01 00 00 00 	movl   $0x1,-0x50(%ebp)
406650:	89 5d bc             	mov    %ebx,-0x44(%ebp)
406653:	89 5d b8             	mov    %ebx,-0x48(%ebp)
406656:	eb 28                	jmp    0x406680
406658:	83 7d 94 00          	cmpl   $0x0,-0x6c(%ebp)
40665c:	0f 84 21 03 00 00    	je     0x406983
406662:	8b 4d 90             	mov    -0x70(%ebp),%ecx
406665:	8b 45 f4             	mov    -0xc(%ebp),%eax
406668:	c1 65 f0 08          	shll   $0x8,-0x10(%ebp)
40666c:	0f b6 09             	movzbl (%ecx),%ecx
40666f:	ff 4d 94             	decl   -0x6c(%ebp)
406672:	c1 e0 08             	shl    $0x8,%eax
406675:	0b c1                	or     %ecx,%eax
406677:	ff 45 90             	incl   -0x70(%ebp)
40667a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40667d:	ff 45 b8             	incl   -0x48(%ebp)
406680:	8b 45 c0             	mov    -0x40(%ebp),%eax
406683:	39 45 b8             	cmp    %eax,-0x48(%ebp)
406686:	7d 72                	jge    0x4066fa
406688:	8b 45 b0             	mov    -0x50(%ebp),%eax
40668b:	8b 55 f0             	mov    -0x10(%ebp),%edx
40668e:	c1 ea 0b             	shr    $0xb,%edx
406691:	8d 3c 00             	lea    (%eax,%eax,1),%edi
406694:	8b 45 a8             	mov    -0x58(%ebp),%eax
406697:	8d 34 07             	lea    (%edi,%eax,1),%esi
40669a:	89 75 ac             	mov    %esi,-0x54(%ebp)
40669d:	66 8b 06             	mov    (%esi),%ax
4066a0:	0f b7 c8             	movzwl %ax,%ecx
4066a3:	0f af d1             	imul   %ecx,%edx
4066a6:	39 55 f4             	cmp    %edx,-0xc(%ebp)
4066a9:	73 17                	jae    0x4066c2
4066ab:	89 55 f0             	mov    %edx,-0x10(%ebp)
4066ae:	ba 00 08 00 00       	mov    $0x800,%edx
4066b3:	2b d1                	sub    %ecx,%edx
4066b5:	c1 fa 05             	sar    $0x5,%edx
4066b8:	03 d0                	add    %eax,%edx
4066ba:	d1 65 b0             	shll   $1,-0x50(%ebp)
4066bd:	66 89 16             	mov    %dx,(%esi)
4066c0:	eb 2a                	jmp    0x4066ec
4066c2:	33 c9                	xor    %ecx,%ecx
4066c4:	29 55 f0             	sub    %edx,-0x10(%ebp)
4066c7:	41                   	inc    %ecx
4066c8:	29 55 f4             	sub    %edx,-0xc(%ebp)
4066cb:	8b d9                	mov    %ecx,%ebx
4066cd:	8b 4d b8             	mov    -0x48(%ebp),%ecx
4066d0:	d3 e3                	shl    %cl,%ebx
4066d2:	8b cb                	mov    %ebx,%ecx
4066d4:	8b 5d bc             	mov    -0x44(%ebp),%ebx
4066d7:	0b d9                	or     %ecx,%ebx
4066d9:	66 8b c8             	mov    %ax,%cx
4066dc:	66 c1 e9 05          	shr    $0x5,%cx
4066e0:	2b c1                	sub    %ecx,%eax
4066e2:	47                   	inc    %edi
4066e3:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4066e6:	66 89 06             	mov    %ax,(%esi)
4066e9:	89 7d b0             	mov    %edi,-0x50(%ebp)
4066ec:	81 7d f0 00 00 00 01 	cmpl   $0x1000000,-0x10(%ebp)
4066f3:	73 88                	jae    0x40667d
4066f5:	e9 5e ff ff ff       	jmp    0x406658
4066fa:	01 5d d4             	add    %ebx,-0x2c(%ebp)
4066fd:	ff 45 d4             	incl   -0x2c(%ebp)
406700:	8b 45 d4             	mov    -0x2c(%ebp),%eax
406703:	85 c0                	test   %eax,%eax
406705:	0f 84 84 02 00 00    	je     0x40698f
40670b:	3b 45 a0             	cmp    -0x60(%ebp),%eax
40670e:	0f 87 b8 02 00 00    	ja     0x4069cc
406714:	83 45 d0 02          	addl   $0x2,-0x30(%ebp)
406718:	8b 45 d0             	mov    -0x30(%ebp),%eax
40671b:	01 45 a0             	add    %eax,-0x60(%ebp)
40671e:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
406722:	0f 84 6d 02 00 00    	je     0x406995
406728:	8b 45 ec             	mov    -0x14(%ebp),%eax
40672b:	2b 45 d4             	sub    -0x2c(%ebp),%eax
40672e:	3b 45 8c             	cmp    -0x74(%ebp),%eax
406731:	72 03                	jb     0x406736