406393:	85 c9                	test   %ecx,%ecx
406395:	7f e6                	jg     0x40637d
406397:	eb b9                	jmp    0x406352
406399:	66 0f b6 4c 32 01    	movzbw 0x1(%edx,%esi,1),%cx
40639f:	bb 00 01 00 00       	mov    $0x100,%ebx
4063a4:	66 0f af cb          	imul   %bx,%cx
4063a8:	66 0f b6 1c 32       	movzbw (%edx,%esi,1),%bx
4063ad:	66 03 cb             	add    %bx,%cx
4063b0:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4063b4:	40                   	inc    %eax
4063b5:	42                   	inc    %edx
4063b6:	42                   	inc    %edx
4063b7:	eb 96                	jmp    0x40634f
4063b9:	66 0f b6 7d 0f       	movzbw 0xf(%ebp),%di
4063be:	66 0f b6 0c 32       	movzbw (%edx,%esi,1),%cx
4063c3:	bb 00 01 00 00       	mov    $0x100,%ebx
4063c8:	66 0f af fb          	imul   %bx,%di
4063cc:	66 03 cf             	add    %di,%cx
4063cf:	8b 7d 14             	mov    0x14(%ebp),%edi
4063d2:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4063d6:	40                   	inc    %eax
4063d7:	42                   	inc    %edx
4063d8:	e9 72 ff ff ff       	jmp    0x40634f
4063dd:	66 0f b6 0c 32       	movzbw (%edx,%esi,1),%cx
4063e2:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
4063e6:	40                   	inc    %eax
4063e7:	42                   	inc    %edx
4063e8:	e9 65 ff ff ff       	jmp    0x406352
4063ed:	33 c0                	xor    %eax,%eax
4063ef:	89 01                	mov    %eax,(%ecx)
4063f1:	89 41 04             	mov    %eax,0x4(%ecx)
4063f4:	c6 41 08 01          	movb   $0x1,0x8(%ecx)
4063f8:	88 41 09             	mov    %al,0x9(%ecx)
4063fb:	88 41 0a             	mov    %al,0xa(%ecx)
4063fe:	88 41 0b             	mov    %al,0xb(%ecx)
406401:	88 41 0c             	mov    %al,0xc(%ecx)
406404:	c3                   	ret
406405:	32 c0                	xor    %al,%al
406407:	c2 04 00             	ret    $0x4
40640a:	8b 54 24 04          	mov    0x4(%esp),%edx
40640e:	8b c2                	mov    %edx,%eax
406410:	48                   	dec    %eax
406411:	74 0d                	je     0x406420
406413:	48                   	dec    %eax
406414:	74 24                	je     0x40643a
406416:	48                   	dec    %eax
406417:	74 14                	je     0x40642d
406419:	2d fc 00 00 00       	sub    $0xfc,%eax
40641e:	75 05                	jne    0x406425
406420:	83 39 00             	cmpl   $0x0,(%ecx)
406423:	75 02                	jne    0x406427
406425:	89 11                	mov    %edx,(%ecx)
406427:	ff 41 04             	incl   0x4(%ecx)
40642a:	c2 04 00             	ret    $0x4
40642d:	83 39 0b             	cmpl   $0xb,(%ecx)
406430:	74 f5                	je     0x406427
406432:	c7 01 03 00 00 00    	movl   $0x3,(%ecx)
406438:	eb ed                	jmp    0x406427
40643a:	8b 01                	mov    (%ecx),%eax
40643c:	85 c0                	test   %eax,%eax
40643e:	74 05                	je     0x406445
406440:	83 f8 01             	cmp    $0x1,%eax
406443:	75 e2                	jne    0x406427
406445:	c7 01 02 00 00 00    	movl   $0x2,(%ecx)
40644b:	eb da                	jmp    0x406427
40644d:	55                   	push   %ebp
40644e:	8b ec                	mov    %esp,%ebp
406450:	56                   	push   %esi
406451:	8b 75 08             	mov    0x8(%ebp),%esi
406454:	81 fe ff 00 00 00    	cmp    $0xff,%esi
40645a:	75 06                	jne    0x406462
40645c:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
406460:	74 17                	je     0x406479
406462:	56                   	push   %esi
406463:	e8 a2 ff ff ff       	call   0x40640a
406468:	68 00 d1 42 00       	push   $0x42d100
40646d:	8d 45 08             	lea    0x8(%ebp),%eax
406470:	50                   	push   %eax
406471:	89 75 08             	mov    %esi,0x8(%ebp)
406474:	e8 64 5e 01 00       	call   0x41c2dd
406479:	5e                   	pop    %esi
40647a:	5d                   	pop    %ebp
40647b:	c2 04 00             	ret    $0x4
40647e:	e8 6a ff ff ff       	call   0x4063ed
406483:	8b c1                	mov    %ecx,%eax
406485:	c3                   	ret
406486:	80 79 09 00          	cmpb   $0x0,0x9(%ecx)
40648a:	75 05                	jne    0x406491
40648c:	e9 36 b2 00 00       	jmp    0x4116c7
406491:	32 c0                	xor    %al,%al
406493:	c2 08 00             	ret    $0x8
406496:	56                   	push   %esi
406497:	6a 07                	push   $0x7
406499:	8b f1                	mov    %ecx,%esi
40649b:	e8 c9 b6 ff ff       	call   0x401b69
4064a0:	6a 08                	push   $0x8
4064a2:	8b ce                	mov    %esi,%ecx
4064a4:	e8 61 ff ff ff       	call   0x40640a
4064a9:	5e                   	pop    %esi
4064aa:	c3                   	ret
4064ab:	e9 9d ff ff ff       	jmp    0x40644d
4064b0:	55                   	push   %ebp
4064b1:	8b ec                	mov    %esp,%ebp
4064b3:	83 ec 4c             	sub    $0x4c,%esp
4064b6:	8b 45 08             	mov    0x8(%ebp),%eax
4064b9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4064bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064c0:	8b 45 0c             	mov    0xc(%ebp),%eax
4064c3:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4064c6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4064c9:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4064d0:	e8 9d ae 00 00       	call   0x411372
4064d5:	c9                   	leave
4064d6:	c2 08 00             	ret    $0x8
4064d9:	55                   	push   %ebp
4064da:	8b ec                	mov    %esp,%ebp
4064dc:	83 ec 4c             	sub    $0x4c,%esp
4064df:	8b 45 08             	mov    0x8(%ebp),%eax
4064e2:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4064e6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4064e9:	8b 45 0c             	mov    0xc(%ebp),%eax
4064ec:	89 45 b4             	mov    %eax,-0x4c(%ebp)
4064ef:	8b 45 10             	mov    0x10(%ebp),%eax
4064f2:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4064f5:	89 45 b8             	mov    %eax,-0x48(%ebp)
4064f8:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
4064ff:	e8 6e ae 00 00       	call   0x411372
406504:	c9                   	leave
406505:	c2 0c 00             	ret    $0xc
406508:	56                   	push   %esi
406509:	8b f1                	mov    %ecx,%esi
40650b:	e8 86 ff ff ff       	call   0x406496
406510:	6a 08                	push   $0x8
406512:	8b ce                	mov    %esi,%ecx
406514:	e8 34 ff ff ff       	call   0x40644d
406519:	5e                   	pop    %esi
40651a:	c3                   	ret
40651b:	56                   	push   %esi
40651c:	8b f1                	mov    %ecx,%esi
40651e:	80 7e 0b 00          	cmpb   $0x0,0xb(%esi)
406522:	75 0b                	jne    0x40652f
406524:	ff 74 24 08          	push   0x8(%esp)
406528:	6a 0a                	push   $0xa
40652a:	e8 81 ff ff ff       	call   0x4064b0
40652f:	6a 02                	push   $0x2
406531:	8b ce                	mov    %esi,%ecx
406533:	e8 15 ff ff ff       	call   0x40644d
406538:	5e                   	pop    %esi
406539:	c2 04 00             	ret    $0x4
40653c:	56                   	push   %esi
40653d:	8b f1                	mov    %ecx,%esi
40653f:	80 7e 0b 00          	cmpb   $0x0,0xb(%esi)
406543:	75 0b                	jne    0x406550
406545:	ff 74 24 08          	push   0x8(%esp)
406549:	6a 0b                	push   $0xb
40654b:	e8 60 ff ff ff       	call   0x4064b0
406550:	6a 02                	push   $0x2
406552:	8b ce                	mov    %esi,%ecx
406554:	e8 f4 fe ff ff       	call   0x40644d
406559:	5e                   	pop    %esi
40655a:	c2 04 00             	ret    $0x4
40655d:	55                   	push   %ebp
40655e:	8b ec                	mov    %esp,%ebp
406560:	81 ec 00 08 00 00    	sub    $0x800,%esp
406566:	8d 45 10             	lea    0x10(%ebp),%eax
406569:	50                   	push   %eax
40656a:	6a 00                	push   $0x0
40656c:	ff 75 0c             	push   0xc(%ebp)
40656f:	8d 85 00 f8 ff ff    	lea    -0x800(%ebp),%eax
406575:	68 00 04 00 00       	push   $0x400
40657a:	50                   	push   %eax
40657b:	e8 57 3e 01 00       	call   0x41a3d7
406580:	83 c4 14             	add    $0x14,%esp
406583:	8d 85 00 f8 ff ff    	lea    -0x800(%ebp),%eax
406589:	50                   	push   %eax
40658a:	6a 01                	push   $0x1
40658c:	e8 1f ff ff ff       	call   0x4064b0
406591:	c9                   	leave
406592:	c3                   	ret
406593:	56                   	push   %esi
406594:	ff 74 24 0c          	push   0xc(%esp)
406598:	8b f1                	mov    %ecx,%esi
40659a:	ff 74 24 0c          	push   0xc(%esp)
40659e:	6a 08                	push   $0x8
4065a0:	e8 34 ff ff ff       	call   0x4064d9
4065a5:	6a 06                	push   $0x6
4065a7:	8b ce                	mov    %esi,%ecx
4065a9:	e8 5c fe ff ff       	call   0x40640a
4065ae:	5e                   	pop    %esi
4065af:	c2 08 00             	ret    $0x8
4065b2:	56                   	push   %esi
4065b3:	ff 74 24 0c          	push   0xc(%esp)
4065b7:	8b f1                	mov    %ecx,%esi
4065b9:	ff 74 24 0c          	push   0xc(%esp)
4065bd:	6a 09                	push   $0x9
4065bf:	e8 15 ff ff ff       	call   0x4064d9
4065c4:	6a 09                	push   $0x9
4065c6:	8b ce                	mov    %esi,%ecx
4065c8:	e8 3d fe ff ff       	call   0x40640a
4065cd:	5e                   	pop    %esi
4065ce:	c2 08 00             	ret    $0x8
4065d1:	56                   	push   %esi
4065d2:	ff 74 24 0c          	push   0xc(%esp)
4065d6:	8b f1                	mov    %ecx,%esi
4065d8:	ff 74 24 0c          	push   0xc(%esp)
4065dc:	6a 0c                	push   $0xc
4065de:	e8 f6 fe ff ff       	call   0x4064d9
4065e3:	6a 02                	push   $0x2
4065e5:	8b ce                	mov    %esi,%ecx
4065e7:	e8 1e fe ff ff       	call   0x40640a
4065ec:	5e                   	pop    %esi
4065ed:	c2 08 00             	ret    $0x8
4065f0:	56                   	push   %esi
4065f1:	ff 74 24 0c          	push   0xc(%esp)
4065f5:	8b f1                	mov    %ecx,%esi
4065f7:	ff 74 24 0c          	push   0xc(%esp)
4065fb:	6a 0d                	push   $0xd
4065fd:	e8 d7 fe ff ff       	call   0x4064d9
406602:	6a 05                	push   $0x5
406604:	8b ce                	mov    %esi,%ecx
406606:	e8 ff fd ff ff       	call   0x40640a
40660b:	5e                   	pop    %esi
40660c:	c2 08 00             	ret    $0x8
40660f:	ff 74 24 08          	push   0x8(%esp)
406613:	ff 74 24 08          	push   0x8(%esp)
406617:	6a 1f                	push   $0x1f
406619:	e8 bb fe ff ff       	call   0x4064d9
40661e:	6a 02                	push   $0x2
406620:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
406625:	e8 e0 fd ff ff       	call   0x40640a
40662a:	c2 08 00             	ret    $0x8
40662d:	56                   	push   %esi
40662e:	ff 74 24 0c          	push   0xc(%esp)
406632:	8b f1                	mov    %ecx,%esi
406634:	ff 74 24 0c          	push   0xc(%esp)
406638:	e8 b3 ff ff ff       	call   0x4065f0
40663d:	6a 05                	push   $0x5
40663f:	8b ce                	mov    %esi,%ecx
406641:	e8 07 fe ff ff       	call   0x40644d
406646:	5e                   	pop    %esi
406647:	c2 08 00             	ret    $0x8
40664a:	ff 74 24 04          	push   0x4(%esp)
40664e:	6a 00                	push   $0x0
406650:	e8 3e ff ff ff       	call   0x406593
406655:	c2 04 00             	ret    $0x4
406658:	ff 74 24 04          	push   0x4(%esp)
40665c:	6a 00                	push   $0x0
40665e:	e8 4f ff ff ff       	call   0x4065b2
406663:	c2 04 00             	ret    $0x4
406666:	ff 74 24 04          	push   0x4(%esp)
40666a:	6a 00                	push   $0x0
40666c:	e8 60 ff ff ff       	call   0x4065d1
406671:	c2 04 00             	ret    $0x4
406674:	56                   	push   %esi
406675:	ff 74 24 08          	push   0x8(%esp)
406679:	8b f1                	mov    %ecx,%esi
40667b:	e8 e6 ff ff ff       	call   0x406666
406680:	6a 02                	push   $0x2
406682:	8b ce                	mov    %esi,%ecx
406684:	e8 c4 fd ff ff       	call   0x40644d
406689:	5e                   	pop    %esi
40668a:	c2 04 00             	ret    $0x4
40668d:	55                   	push   %ebp
40668e:	8b ec                	mov    %esp,%ebp
406690:	83 ec 14             	sub    $0x14,%esp
406693:	53                   	push   %ebx
406694:	8d 45 fc             	lea    -0x4(%ebp),%eax
406697:	50                   	push   %eax
406698:	6a 20                	push   $0x20
40669a:	33 db                	xor    %ebx,%ebx
40669c:	ff 15 18 a2 42 00    	call   *0x42a218
4066a2:	50                   	push   %eax
4066a3:	ff 15 18 a0 42 00    	call   *0x42a018
4066a9:	85 c0                	test   %eax,%eax
4066ab:	74 4a                	je     0x4066f7
4066ad:	8d 45 f0             	lea    -0x10(%ebp),%eax
4066b0:	50                   	push   %eax
4066b1:	ff 75 08             	push   0x8(%ebp)
4066b4:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
4066bb:	53                   	push   %ebx
4066bc:	c7 45 f8 02 00 00 00 	movl   $0x2,-0x8(%ebp)
4066c3:	ff 15 1c a0 42 00    	call   *0x42a01c
4066c9:	85 c0                	test   %eax,%eax
4066cb:	74 21                	je     0x4066ee
4066cd:	53                   	push   %ebx
4066ce:	53                   	push   %ebx
4066cf:	53                   	push   %ebx
4066d0:	8d 45 ec             	lea    -0x14(%ebp),%eax
4066d3:	50                   	push   %eax
4066d4:	53                   	push   %ebx
4066d5:	ff 75 fc             	push   -0x4(%ebp)
4066d8:	ff 15 20 a0 42 00    	call   *0x42a020
4066de:	85 c0                	test   %eax,%eax
4066e0:	74 0c                	je     0x4066ee
4066e2:	ff 15 24 a2 42 00    	call   *0x42a224
4066e8:	85 c0                	test   %eax,%eax
4066ea:	75 02                	jne    0x4066ee
4066ec:	b3 01                	mov    $0x1,%bl
4066ee:	ff 75 fc             	push   -0x4(%ebp)
4066f1:	ff 15 1c a2 42 00    	call   *0x42a21c
4066f7:	8a c3                	mov    %bl,%al
4066f9:	5b                   	pop    %ebx
4066fa:	c9                   	leave
4066fb:	c2 04 00             	ret    $0x4
4066fe:	55                   	push   %ebp
4066ff:	8b ec                	mov    %esp,%ebp
406701:	b8 00 20 00 00       	mov    $0x2000,%eax
406706:	e8 c5 3d 01 00       	call   0x41a4d0
40670b:	8b 45 08             	mov    0x8(%ebp),%eax
40670e:	83 b8 30 a2 00 00 02 	cmpl   $0x2,0xa230(%eax)
406715:	8b 90 28 8b 00 00    	mov    0x8b28(%eax),%edx
40671b:	8b 88 2c 8b 00 00    	mov    0x8b2c(%eax),%ecx
406721:	56                   	push   %esi
406722:	75 23                	jne    0x406747
406724:	8b 45 10             	mov    0x10(%ebp),%eax
406727:	d1 e9                	shr    $1,%ecx
406729:	48                   	dec    %eax
40672a:	8b f1                	mov    %ecx,%esi
40672c:	3b c8                	cmp    %eax,%ecx
40672e:	72 02                	jb     0x406732
406730:	8b f0                	mov    %eax,%esi
406732:	57                   	push   %edi
406733:	8b 7d 0c             	mov    0xc(%ebp),%edi
406736:	56                   	push   %esi
406737:	57                   	push   %edi
406738:	52                   	push   %edx
406739:	e8 a1 b0 00 00       	call   0x4117df
40673e:	33 c0                	xor    %eax,%eax
406740:	66 89 04 77          	mov    %ax,(%edi,%esi,2)
406744:	5f                   	pop    %edi
406745:	eb 38                	jmp    0x40677f
406747:	b8 ff 1f 00 00       	mov    $0x1fff,%eax
40674c:	8b f1                	mov    %ecx,%esi
40674e:	3b c8                	cmp    %eax,%ecx
406750:	72 02                	jb     0x406754
406752:	8b f0                	mov    %eax,%esi
406754:	56                   	push   %esi
406755:	52                   	push   %edx
406756:	8d 85 00 e0 ff ff    	lea    -0x2000(%ebp),%eax
40675c:	50                   	push   %eax
40675d:	e8 0e 55 01 00       	call   0x41bc70
406762:	83 c4 0c             	add    $0xc,%esp
406765:	ff 75 10             	push   0x10(%ebp)
406768:	8d 85 00 e0 ff ff    	lea    -0x2000(%ebp),%eax
40676e:	ff 75 0c             	push   0xc(%ebp)
406771:	c6 84 35 00 e0 ff ff 	movb   $0x0,-0x2000(%ebp,%esi,1)
406778:	00
406779:	50                   	push   %eax
40677a:	e8 8a b1 00 00       	call   0x411909
40677f:	5e                   	pop    %esi