408445:	eb 28                	jmp    0x40846f
408447:	85 ff                	test   %edi,%edi
408449:	75 0b                	jne    0x408456
40844b:	a1 e0 2d 41 00       	mov    0x412de0,%eax
408450:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
408456:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40845c:	eb 07                	jmp    0x408465
40845e:	49                   	dec    %ecx
40845f:	80 38 00             	cmpb   $0x0,(%eax)
408462:	74 05                	je     0x408469
408464:	40                   	inc    %eax
408465:	85 c9                	test   %ecx,%ecx
408467:	75 f5                	jne    0x40845e
408469:	2b 85 e0 fd ff ff    	sub    -0x220(%ebp),%eax
40846f:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
408475:	83 bd bc fd ff ff 00 	cmpl   $0x0,-0x244(%ebp)
40847c:	0f 85 b8 01 00 00    	jne    0x40863a
408482:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
408488:	f6 c1 40             	test   $0x40,%cl
40848b:	74 35                	je     0x4084c2
40848d:	f7 c1 00 01 00 00    	test   $0x100,%ecx
408493:	74 09                	je     0x40849e
408495:	c6 85 d4 fd ff ff 2d 	movb   $0x2d,-0x22c(%ebp)
40849c:	eb 1a                	jmp    0x4084b8
40849e:	f6 c1 01             	test   $0x1,%cl
4084a1:	74 09                	je     0x4084ac
4084a3:	c6 85 d4 fd ff ff 2b 	movb   $0x2b,-0x22c(%ebp)
4084aa:	eb 0c                	jmp    0x4084b8
4084ac:	f6 c1 02             	test   $0x2,%cl
4084af:	74 11                	je     0x4084c2
4084b1:	c6 85 d4 fd ff ff 20 	movb   $0x20,-0x22c(%ebp)
4084b8:	c7 85 cc fd ff ff 01 	movl   $0x1,-0x234(%ebp)
4084bf:	00 00 00
4084c2:	8b 85 c8 fd ff ff    	mov    -0x238(%ebp),%eax
4084c8:	2b 85 d8 fd ff ff    	sub    -0x228(%ebp),%eax
4084ce:	2b 85 cc fd ff ff    	sub    -0x234(%ebp),%eax
4084d4:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
4084da:	f6 c1 0c             	test   $0xc,%cl
4084dd:	75 25                	jne    0x408504
4084df:	8b f8                	mov    %eax,%edi
4084e1:	eb 1d                	jmp    0x408500
4084e3:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
4084e9:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
4084ef:	b0 20                	mov    $0x20,%al
4084f1:	4f                   	dec    %edi
4084f2:	e8 94 46 00 00       	call   0x40cb8b
4084f7:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
4084fe:	74 04                	je     0x408504
408500:	85 ff                	test   %edi,%edi
408502:	7f df                	jg     0x4084e3
408504:	ff b5 cc fd ff ff    	push   -0x234(%ebp)
40850a:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
408510:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx
408516:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40851c:	50                   	push   %eax
40851d:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
408523:	e8 32 f5 ff ff       	call   0x407a5a
408528:	f6 85 f0 fd ff ff 08 	testb  $0x8,-0x210(%ebp)
40852f:	59                   	pop    %ecx
408530:	59                   	pop    %ecx
408531:	74 2e                	je     0x408561
408533:	f6 85 f0 fd ff ff 04 	testb  $0x4,-0x210(%ebp)
40853a:	75 25                	jne    0x408561
40853c:	8b bd a0 fd ff ff    	mov    -0x260(%ebp),%edi
408542:	eb 19                	jmp    0x40855d
408544:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
40854a:	8b cb                	mov    %ebx,%ecx
40854c:	b0 30                	mov    $0x30,%al
40854e:	4f                   	dec    %edi
40854f:	e8 37 46 00 00       	call   0x40cb8b
408554:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
40855b:	74 04                	je     0x408561
40855d:	85 ff                	test   %edi,%edi
40855f:	7f e3                	jg     0x408544
408561:	83 bd c4 fd ff ff 00 	cmpl   $0x0,-0x23c(%ebp)
408568:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
40856e:	74 75                	je     0x4085e5
408570:	85 c0                	test   %eax,%eax
408572:	7e 71                	jle    0x4085e5
408574:	8b b5 e0 fd ff ff    	mov    -0x220(%ebp),%esi
40857a:	89 85 98 fd ff ff    	mov    %eax,-0x268(%ebp)
408580:	0f b7 06             	movzwl (%esi),%eax
408583:	ff 8d 98 fd ff ff    	decl   -0x268(%ebp)
408589:	50                   	push   %eax
40858a:	6a 06                	push   $0x6
40858c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40858f:	50                   	push   %eax
408590:	8d 85 90 fd ff ff    	lea    -0x270(%ebp),%eax
408596:	50                   	push   %eax
408597:	83 c6 02             	add    $0x2,%esi
40859a:	e8 63 56 00 00       	call   0x40dc02
40859f:	83 c4 10             	add    $0x10,%esp
4085a2:	85 c0                	test   %eax,%eax
4085a4:	75 36                	jne    0x4085dc
4085a6:	39 85 90 fd ff ff    	cmp    %eax,-0x270(%ebp)
4085ac:	74 2e                	je     0x4085dc
4085ae:	ff b5 90 fd ff ff    	push   -0x270(%ebp)
4085b4:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
4085ba:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx
4085c0:	8d 45 f4             	lea    -0xc(%ebp),%eax
4085c3:	50                   	push   %eax
4085c4:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
4085ca:	e8 8b f4 ff ff       	call   0x407a5a
4085cf:	83 bd 98 fd ff ff 00 	cmpl   $0x0,-0x268(%ebp)
4085d6:	59                   	pop    %ecx
4085d7:	59                   	pop    %ecx
4085d8:	75 a6                	jne    0x408580
4085da:	eb 23                	jmp    0x4085ff
4085dc:	83 8d dc fd ff ff ff 	orl    $0xffffffff,-0x224(%ebp)
4085e3:	eb 1a                	jmp    0x4085ff
4085e5:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
4085eb:	50                   	push   %eax
4085ec:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
4085f2:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
4085f8:	e8 5d f4 ff ff       	call   0x407a5a
4085fd:	59                   	pop    %ecx
4085fe:	59                   	pop    %ecx
4085ff:	83 bd dc fd ff ff 00 	cmpl   $0x0,-0x224(%ebp)
408606:	7c 32                	jl     0x40863a
408608:	f6 85 f0 fd ff ff 04 	testb  $0x4,-0x210(%ebp)
40860f:	74 29                	je     0x40863a
408611:	8b bd a0 fd ff ff    	mov    -0x260(%ebp),%edi
408617:	eb 1d                	jmp    0x408636
408619:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
40861f:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
408625:	b0 20                	mov    $0x20,%al
408627:	4f                   	dec    %edi
408628:	e8 5e 45 00 00       	call   0x40cb8b
40862d:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
408634:	74 04                	je     0x40863a
408636:	85 ff                	test   %edi,%edi
408638:	7f df                	jg     0x408619
40863a:	83 bd b8 fd ff ff 00 	cmpl   $0x0,-0x248(%ebp)
408641:	74 13                	je     0x408656
408643:	ff b5 b8 fd ff ff    	push   -0x248(%ebp)
408649:	e8 1d 99 ff ff       	call   0x401f6b
40864e:	83 a5 b8 fd ff ff 00 	andl   $0x0,-0x248(%ebp)
408655:	59                   	pop    %ecx
408656:	8b 9d c0 fd ff ff    	mov    -0x240(%ebp),%ebx
40865c:	8a 03                	mov    (%ebx),%al
40865e:	88 85 ef fd ff ff    	mov    %al,-0x211(%ebp)
408664:	84 c0                	test   %al,%al
408666:	74 13                	je     0x40867b
408668:	8b 8d 8c fd ff ff    	mov    -0x274(%ebp),%ecx
40866e:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
408674:	8a d0                	mov    %al,%dl
408676:	e9 72 f5 ff ff       	jmp    0x407bed
40867b:	80 bd b0 fd ff ff 00 	cmpb   $0x0,-0x250(%ebp)
408682:	74 0a                	je     0x40868e
408684:	8b 85 ac fd ff ff    	mov    -0x254(%ebp),%eax
40868a:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40868e:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
408694:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408697:	5f                   	pop    %edi
408698:	5e                   	pop    %esi
408699:	33 cd                	xor    %ebp,%ecx
40869b:	5b                   	pop    %ebx
40869c:	e8 03 97 ff ff       	call   0x401da4
4086a1:	c9                   	leave
4086a2:	c3                   	ret
4086a3:	90                   	nop
4086a4:	3e 7e 40             	jle,pt 0x4086e7
4086a7:	00 3d 7c 40 00 6d    	add    %bh,0x6d00407c
4086ad:	7c 40                	jl     0x4086ef
4086af:	00 cb                	add    %cl,%bl
4086b1:	7c 40                	jl     0x4086f3
4086b3:	00 17                	add    %dl,(%edi)
4086b5:	7d 40                	jge    0x4086f7
4086b7:	00 22                	add    %ah,(%edx)
4086b9:	7d 40                	jge    0x4086fb
4086bb:	00 68 7d             	add    %ch,0x7d(%eax)
4086be:	40                   	inc    %eax
4086bf:	00 98 7e 40 00 83    	add    %bl,-0x7cffbf82(%eax)
4086c5:	25 fc 45 41 00       	and    $0x4145fc,%eax
4086ca:	00 c3                	add    %al,%bl
4086cc:	8b ff                	mov    %edi,%edi
4086ce:	55                   	push   %ebp
4086cf:	8b ec                	mov    %esp,%ebp
4086d1:	56                   	push   %esi
4086d2:	8b 75 08             	mov    0x8(%ebp),%esi
4086d5:	56                   	push   %esi
4086d6:	e8 9a a9 ff ff       	call   0x403075
4086db:	59                   	pop    %ecx
4086dc:	83 f8 ff             	cmp    $0xffffffff,%eax
4086df:	75 10                	jne    0x4086f1
4086e1:	e8 41 ba ff ff       	call   0x404127
4086e6:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4086ec:	83 c8 ff             	or     $0xffffffff,%eax
4086ef:	eb 4d                	jmp    0x40873e
4086f1:	57                   	push   %edi
4086f2:	ff 75 10             	push   0x10(%ebp)
4086f5:	6a 00                	push   $0x0
4086f7:	ff 75 0c             	push   0xc(%ebp)
4086fa:	50                   	push   %eax
4086fb:	ff 15 00 f1 40 00    	call   *0x40f100
408701:	8b f8                	mov    %eax,%edi
408703:	83 ff ff             	cmp    $0xffffffff,%edi
408706:	75 08                	jne    0x408710
408708:	ff 15 44 f0 40 00    	call   *0x40f044
40870e:	eb 02                	jmp    0x408712
408710:	33 c0                	xor    %eax,%eax
408712:	85 c0                	test   %eax,%eax
408714:	74 0c                	je     0x408722
408716:	50                   	push   %eax
408717:	e8 31 ba ff ff       	call   0x40414d
40871c:	59                   	pop    %ecx
40871d:	83 c8 ff             	or     $0xffffffff,%eax
408720:	eb 1b                	jmp    0x40873d
408722:	8b c6                	mov    %esi,%eax
408724:	c1 f8 05             	sar    $0x5,%eax
408727:	8b 04 85 20 46 41 00 	mov    0x414620(,%eax,4),%eax
40872e:	83 e6 1f             	and    $0x1f,%esi
408731:	c1 e6 06             	shl    $0x6,%esi
408734:	8d 44 30 04          	lea    0x4(%eax,%esi,1),%eax
408738:	80 20 fd             	andb   $0xfd,(%eax)
40873b:	8b c7                	mov    %edi,%eax
40873d:	5f                   	pop    %edi
40873e:	5e                   	pop    %esi
40873f:	5d                   	pop    %ebp
408740:	c3                   	ret
408741:	6a 10                	push   $0x10
408743:	68 50 13 41 00       	push   $0x411350
408748:	e8 23 ba ff ff       	call   0x404170
40874d:	8b 5d 08             	mov    0x8(%ebp),%ebx
408750:	83 fb fe             	cmp    $0xfffffffe,%ebx
408753:	75 1b                	jne    0x408770
408755:	e8 e0 b9 ff ff       	call   0x40413a
40875a:	83 20 00             	andl   $0x0,(%eax)
40875d:	e8 c5 b9 ff ff       	call   0x404127
408762:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
408768:	83 c8 ff             	or     $0xffffffff,%eax
40876b:	e9 94 00 00 00       	jmp    0x408804
408770:	85 db                	test   %ebx,%ebx
408772:	78 08                	js     0x40877c
408774:	3b 1d 00 46 41 00    	cmp    0x414600,%ebx
40877a:	72 1a                	jb     0x408796
40877c:	e8 b9 b9 ff ff       	call   0x40413a
408781:	83 20 00             	andl   $0x0,(%eax)
408784:	e8 9e b9 ff ff       	call   0x404127
408789:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40878f:	e8 f3 a4 ff ff       	call   0x402c87
408794:	eb d2                	jmp    0x408768
408796:	8b c3                	mov    %ebx,%eax
408798:	c1 f8 05             	sar    $0x5,%eax
40879b:	8d 3c 85 20 46 41 00 	lea    0x414620(,%eax,4),%edi
4087a2:	8b f3                	mov    %ebx,%esi
4087a4:	83 e6 1f             	and    $0x1f,%esi
4087a7:	c1 e6 06             	shl    $0x6,%esi
4087aa:	8b 07                	mov    (%edi),%eax
4087ac:	0f be 44 30 04       	movsbl 0x4(%eax,%esi,1),%eax
4087b1:	83 e0 01             	and    $0x1,%eax
4087b4:	74 c6                	je     0x40877c
4087b6:	53                   	push   %ebx
4087b7:	e8 22 a9 ff ff       	call   0x4030de
4087bc:	59                   	pop    %ecx
4087bd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4087c1:	8b 07                	mov    (%edi),%eax
4087c3:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
4087c8:	74 14                	je     0x4087de
4087ca:	ff 75 10             	push   0x10(%ebp)
4087cd:	ff 75 0c             	push   0xc(%ebp)
4087d0:	53                   	push   %ebx
4087d1:	e8 f6 fe ff ff       	call   0x4086cc
4087d6:	83 c4 0c             	add    $0xc,%esp
4087d9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4087dc:	eb 17                	jmp    0x4087f5
4087de:	e8 44 b9 ff ff       	call   0x404127
4087e3:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4087e9:	e8 4c b9 ff ff       	call   0x40413a
4087ee:	83 20 00             	andl   $0x0,(%eax)
4087f1:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
4087f5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4087fc:	e8 0c 00 00 00       	call   0x40880d
408801:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408804:	e8 ac b9 ff ff       	call   0x4041b5
408809:	c3                   	ret
40880a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40880d:	53                   	push   %ebx
40880e:	e8 6a a9 ff ff       	call   0x40317d
408813:	59                   	pop    %ecx
408814:	c3                   	ret
408815:	8b ff                	mov    %edi,%edi
408817:	55                   	push   %ebp
408818:	8b ec                	mov    %esp,%ebp
40881a:	51                   	push   %ecx
40881b:	f6 43 0c 40          	testb  $0x40,0xc(%ebx)
40881f:	56                   	push   %esi
408820:	8b f0                	mov    %eax,%esi
408822:	8b 07                	mov    (%edi),%eax
408824:	89 45 fc             	mov    %eax,-0x4(%ebp)
408827:	74 0d                	je     0x408836
408829:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40882d:	75 07                	jne    0x408836
40882f:	8b 45 0c             	mov    0xc(%ebp),%eax
408832:	01 06                	add    %eax,(%esi)
408834:	eb 43                	jmp    0x408879
408836:	83 27 00             	andl   $0x0,(%edi)
408839:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40883d:	7e 35                	jle    0x408874
40883f:	8b 45 08             	mov    0x8(%ebp),%eax
408842:	0f b7 00             	movzwl (%eax),%eax
408845:	ff 4d 0c             	decl   0xc(%ebp)
408848:	50                   	push   %eax
408849:	8b c3                	mov    %ebx,%eax
40884b:	e8 32 bd ff ff       	call   0x404582
408850:	83 45 08 02          	addl   $0x2,0x8(%ebp)
408854:	83 3e ff             	cmpl   $0xffffffff,(%esi)
408857:	59                   	pop    %ecx
408858:	75 0f                	jne    0x408869
40885a:	83 3f 2a             	cmpl   $0x2a,(%edi)
40885d:	75 10                	jne    0x40886f
40885f:	6a 3f                	push   $0x3f
408861:	8b c3                	mov    %ebx,%eax
408863:	e8 1a bd ff ff       	call   0x404582
408868:	59                   	pop    %ecx
408869:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40886d:	7f d0                	jg     0x40883f
40886f:	83 3f 00             	cmpl   $0x0,(%edi)
408872:	75 05                	jne    0x408879
408874:	8b 45 fc             	mov    -0x4(%ebp),%eax
408877:	89 07                	mov    %eax,(%edi)
408879:	5e                   	pop    %esi
40887a:	c9                   	leave
40887b:	c3                   	ret
40887c:	8b ff                	mov    %edi,%edi
40887e:	55                   	push   %ebp
40887f:	8b ec                	mov    %esp,%ebp
408881:	81 ec 78 04 00 00    	sub    $0x478,%esp
408887:	a1 84 22 41 00       	mov    0x412284,%eax
40888c:	33 c5                	xor    %ebp,%eax
40888e:	89 45 fc             	mov    %eax,-0x4(%ebp)
408891:	53                   	push   %ebx
408892:	8b 5d 14             	mov    0x14(%ebp),%ebx
408895:	56                   	push   %esi
408896:	8b 75 08             	mov    0x8(%ebp),%esi
408899:	33 c0                	xor    %eax,%eax
40889b:	57                   	push   %edi
40889c:	ff 75 10             	push   0x10(%ebp)
40889f:	8b 7d 0c             	mov    0xc(%ebp),%edi
4088a2:	8d 8d b4 fb ff ff    	lea    -0x44c(%ebp),%ecx
4088a8:	89 b5 d4 fb ff ff    	mov    %esi,-0x42c(%ebp)
4088ae:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
4088b4:	89 85 ac fb ff ff    	mov    %eax,-0x454(%ebp)
4088ba:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
4088c0:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
4088c6:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
4088cc:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4088d2:	89 85 b0 fb ff ff    	mov    %eax,-0x450(%ebp)
4088d8:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
4088de:	e8 02 97 ff ff       	call   0x401fe5