405515:	e8 b9 f9 ff ff       	call   0x404ed3
40551a:	57                   	push   %edi
40551b:	8d 85 00 f8 ff ff    	lea    -0x800(%ebp),%eax
405521:	ff 73 14             	push   0x14(%ebx)
405524:	8b cb                	mov    %ebx,%ecx
405526:	56                   	push   %esi
405527:	50                   	push   %eax
405528:	e8 a6 f9 ff ff       	call   0x404ed3
40552d:	57                   	push   %edi
40552e:	8d 85 80 f8 ff ff    	lea    -0x780(%ebp),%eax
405534:	ff 73 14             	push   0x14(%ebx)
405537:	8b cb                	mov    %ebx,%ecx
405539:	56                   	push   %esi
40553a:	50                   	push   %eax
40553b:	e8 93 f9 ff ff       	call   0x404ed3
405540:	57                   	push   %edi
405541:	8d 85 00 f9 ff ff    	lea    -0x700(%ebp),%eax
405547:	ff 73 14             	push   0x14(%ebx)
40554a:	8b cb                	mov    %ebx,%ecx
40554c:	56                   	push   %esi
40554d:	50                   	push   %eax
40554e:	e8 80 f9 ff ff       	call   0x404ed3
405553:	57                   	push   %edi
405554:	8d 85 80 f9 ff ff    	lea    -0x680(%ebp),%eax
40555a:	ff 73 14             	push   0x14(%ebx)
40555d:	8b cb                	mov    %ebx,%ecx
40555f:	56                   	push   %esi
405560:	50                   	push   %eax
405561:	e8 6d f9 ff ff       	call   0x404ed3
405566:	57                   	push   %edi
405567:	8d 85 00 fa ff ff    	lea    -0x600(%ebp),%eax
40556d:	ff 73 14             	push   0x14(%ebx)
405570:	8b cb                	mov    %ebx,%ecx
405572:	56                   	push   %esi
405573:	50                   	push   %eax
405574:	e8 5a f9 ff ff       	call   0x404ed3
405579:	eb 03                	jmp    0x40557e
40557b:	6a 09                	push   $0x9
40557d:	5f                   	pop    %edi
40557e:	8b cb                	mov    %ebx,%ecx
405580:	e8 a3 00 00 00       	call   0x405628
405585:	ff 73 58             	push   0x58(%ebx)
405588:	8b cb                	mov    %ebx,%ecx
40558a:	e8 7d 03 00 00       	call   0x40590c
40558f:	ff 73 58             	push   0x58(%ebx)
405592:	8b cb                	mov    %ebx,%ecx
405594:	e8 14 08 00 00       	call   0x405dad
405599:	8b 43 58             	mov    0x58(%ebx),%eax
40559c:	83 f8 04             	cmp    $0x4,%eax
40559f:	74 4b                	je     0x4055ec
4055a1:	33 f6                	xor    %esi,%esi
4055a3:	3b c6                	cmp    %esi,%eax
4055a5:	74 45                	je     0x4055ec
4055a7:	68 14 01 00 00       	push   $0x114
4055ac:	e8 9d 39 00 00       	call   0x408f4e
4055b1:	3b c6                	cmp    %esi,%eax
4055b3:	59                   	pop    %ecx
4055b4:	74 20                	je     0x4055d6
4055b6:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4055b9:	8b 53 4c             	mov    0x4c(%ebx),%edx
4055bc:	89 b0 0c 01 00 00    	mov    %esi,0x10c(%eax)
4055c2:	89 98 04 01 00 00    	mov    %ebx,0x104(%eax)
4055c8:	89 90 08 01 00 00    	mov    %edx,0x108(%eax)
4055ce:	89 88 10 01 00 00    	mov    %ecx,0x110(%eax)
4055d4:	8b f0                	mov    %eax,%esi
4055d6:	85 f6                	test   %esi,%esi
4055d8:	74 12                	je     0x4055ec
4055da:	8d 43 60             	lea    0x60(%ebx),%eax
4055dd:	8b ce                	mov    %esi,%ecx
4055df:	50                   	push   %eax
4055e0:	e8 cd 19 00 00       	call   0x406fb2
4055e5:	56                   	push   %esi
4055e6:	e8 5d 39 00 00       	call   0x408f48
4055eb:	59                   	pop    %ecx
4055ec:	ff 73 4c             	push   0x4c(%ebx)
4055ef:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
4055f5:	6a 02                	push   $0x2
4055f7:	68 02 11 00 00       	push   $0x1102
4055fc:	ff 33                	push   (%ebx)
4055fe:	ff d6                	call   *%esi
405600:	6a 00                	push   $0x0
405602:	6a 01                	push   $0x1
405604:	6a 0b                	push   $0xb
405606:	ff 33                	push   (%ebx)
405608:	ff d6                	call   *%esi
40560a:	8b 43 38             	mov    0x38(%ebx),%eax
40560d:	85 c0                	test   %eax,%eax
40560f:	74 03                	je     0x405614
405611:	50                   	push   %eax
405612:	eb 03                	jmp    0x405617
405614:	ff 73 4c             	push   0x4c(%ebx)
405617:	57                   	push   %edi
405618:	68 0b 11 00 00       	push   $0x110b
40561d:	ff 33                	push   (%ebx)
40561f:	ff d6                	call   *%esi
405621:	5f                   	pop    %edi
405622:	5e                   	pop    %esi
405623:	5b                   	pop    %ebx
405624:	c9                   	leave
405625:	c2 04 00             	ret    $0x4
405628:	b8 7c 94 40 00       	mov    $0x40947c,%eax
40562d:	e8 fe 38 00 00       	call   0x408f30
405632:	81 ec 5c 01 00 00    	sub    $0x15c,%esp
405638:	53                   	push   %ebx
405639:	56                   	push   %esi
40563a:	57                   	push   %edi
40563b:	33 f6                	xor    %esi,%esi
40563d:	89 65 f0             	mov    %esp,-0x10(%ebp)
405640:	33 ff                	xor    %edi,%edi
405642:	56                   	push   %esi
405643:	8b d9                	mov    %ecx,%ebx
405645:	6a 04                	push   $0x4
405647:	89 75 dc             	mov    %esi,-0x24(%ebp)
40564a:	89 75 e0             	mov    %esi,-0x20(%ebp)
40564d:	89 75 d0             	mov    %esi,-0x30(%ebp)
405650:	89 75 d4             	mov    %esi,-0x2c(%ebp)
405653:	89 7d d8             	mov    %edi,-0x28(%ebp)
405656:	89 75 fc             	mov    %esi,-0x4(%ebp)
405659:	e8 7a 38 00 00       	call   0x408ed8
40565e:	3b c6                	cmp    %esi,%eax
405660:	89 45 ec             	mov    %eax,-0x14(%ebp)
405663:	75 11                	jne    0x405676
405665:	8d 45 c0             	lea    -0x40(%ebp),%eax
405668:	68 d8 a5 40 00       	push   $0x40a5d8
40566d:	50                   	push   %eax
40566e:	89 75 c0             	mov    %esi,-0x40(%ebp)
405671:	e8 c0 38 00 00       	call   0x408f36
405676:	8d 4d a0             	lea    -0x60(%ebp),%ecx
405679:	c7 45 a0 1c 00 00 00 	movl   $0x1c,-0x60(%ebp)
405680:	51                   	push   %ecx
405681:	50                   	push   %eax
405682:	e8 4b 38 00 00       	call   0x408ed2
405687:	85 c0                	test   %eax,%eax
405689:	75 11                	jne    0x40569c
40568b:	8d 45 c8             	lea    -0x38(%ebp),%eax
40568e:	68 d8 a5 40 00       	push   $0x40a5d8
405693:	50                   	push   %eax
405694:	89 75 c8             	mov    %esi,-0x38(%ebp)
405697:	e8 9a 38 00 00       	call   0x408f36
40569c:	83 7d a0 1c          	cmpl   $0x1c,-0x60(%ebp)
4056a0:	74 11                	je     0x4056b3
4056a2:	8d 45 cc             	lea    -0x34(%ebp),%eax
4056a5:	68 d8 a5 40 00       	push   $0x40a5d8
4056aa:	50                   	push   %eax
4056ab:	89 75 cc             	mov    %esi,-0x34(%ebp)
4056ae:	e8 83 38 00 00       	call   0x408f36
4056b3:	6a 0a                	push   $0xa
4056b5:	8b cb                	mov    %ebx,%ecx
4056b7:	ff 73 10             	push   0x10(%ebx)
4056ba:	ff 73 4c             	push   0x4c(%ebx)
4056bd:	68 d4 ca 40 00       	push   $0x40cad4
4056c2:	e8 0c f8 ff ff       	call   0x404ed3
4056c7:	89 45 bc             	mov    %eax,-0x44(%ebp)
4056ca:	89 75 e8             	mov    %esi,-0x18(%ebp)
4056cd:	8b 45 ac             	mov    -0x54(%ebp),%eax
4056d0:	3b 43 58             	cmp    0x58(%ebx),%eax
4056d3:	75 50                	jne    0x405725
4056d5:	8d 45 d0             	lea    -0x30(%ebp),%eax
4056d8:	8b cb                	mov    %ebx,%ecx
4056da:	50                   	push   %eax
4056db:	ff 75 a8             	push   -0x58(%ebp)
4056de:	e8 5f 01 00 00       	call   0x405842
4056e3:	3b c6                	cmp    %esi,%eax
4056e5:	74 3e                	je     0x405725
4056e7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4056ea:	8d 70 01             	lea    0x1(%eax),%esi
4056ed:	8b c6                	mov    %esi,%eax
4056ef:	c1 e0 03             	shl    $0x3,%eax
4056f2:	50                   	push   %eax
4056f3:	57                   	push   %edi
4056f4:	ff 15 30 a1 40 00    	call   *0x40a130
4056fa:	8b f8                	mov    %eax,%edi
4056fc:	8d 45 d0             	lea    -0x30(%ebp),%eax
4056ff:	6a 08                	push   $0x8
405701:	50                   	push   %eax
405702:	8b 45 e8             	mov    -0x18(%ebp),%eax
405705:	89 7d d8             	mov    %edi,-0x28(%ebp)
405708:	8d 04 c7             	lea    (%edi,%eax,8),%eax
40570b:	50                   	push   %eax
40570c:	e8 43 39 00 00       	call   0x409054
405711:	8b 45 d0             	mov    -0x30(%ebp),%eax
405714:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
405717:	83 c4 14             	add    $0x14,%esp
40571a:	01 45 dc             	add    %eax,-0x24(%ebp)
40571d:	89 75 e8             	mov    %esi,-0x18(%ebp)
405720:	11 4d e0             	adc    %ecx,-0x20(%ebp)
405723:	33 f6                	xor    %esi,%esi
405725:	8d 45 a0             	lea    -0x60(%ebp),%eax
405728:	50                   	push   %eax
405729:	ff 75 ec             	push   -0x14(%ebp)
40572c:	e8 9b 37 00 00       	call   0x408ecc
405731:	85 c0                	test   %eax,%eax
405733:	75 98                	jne    0x4056cd
405735:	8d 45 a0             	lea    -0x60(%ebp),%eax
405738:	c7 45 a0 1c 00 00 00 	movl   $0x1c,-0x60(%ebp)
40573f:	50                   	push   %eax
405740:	ff 75 ec             	push   -0x14(%ebp)
405743:	e8 8a 37 00 00       	call   0x408ed2
405748:	85 c0                	test   %eax,%eax
40574a:	75 11                	jne    0x40575d
40574c:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40574f:	68 d8 a5 40 00       	push   $0x40a5d8
405754:	50                   	push   %eax
405755:	89 75 c4             	mov    %esi,-0x3c(%ebp)
405758:	e8 d9 37 00 00       	call   0x408f36
40575d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
405760:	8b 45 ac             	mov    -0x54(%ebp),%eax
405763:	3b 43 58             	cmp    0x58(%ebx),%eax
405766:	0f 85 89 00 00 00    	jne    0x4057f5
40576c:	3b 75 e8             	cmp    -0x18(%ebp),%esi
40576f:	7d 40                	jge    0x4057b1
405771:	6a 00                	push   $0x0
405773:	68 e8 03 00 00       	push   $0x3e8
405778:	ff 75 e0             	push   -0x20(%ebp)
40577b:	ff 75 dc             	push   -0x24(%ebp)
40577e:	e8 5d 38 00 00       	call   0x408fe0
405783:	8b ca                	mov    %edx,%ecx
405785:	8b d0                	mov    %eax,%edx
405787:	0b d1                	or     %ecx,%edx
405789:	75 05                	jne    0x405790
40578b:	6a 01                	push   $0x1
40578d:	33 c9                	xor    %ecx,%ecx
40578f:	58                   	pop    %eax
405790:	51                   	push   %ecx
405791:	50                   	push   %eax
405792:	ff 74 f7 04          	push   0x4(%edi,%esi,8)
405796:	ff 34 f7             	push   (%edi,%esi,8)
405799:	e8 42 38 00 00       	call   0x408fe0
40579e:	6a 0a                	push   $0xa
4057a0:	99                   	cltd
4057a1:	59                   	pop    %ecx
4057a2:	f7 f9                	idiv   %ecx
4057a4:	6a 63                	push   $0x63
4057a6:	59                   	pop    %ecx
4057a7:	3b c1                	cmp    %ecx,%eax
4057a9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4057ac:	7e 03                	jle    0x4057b1
4057ae:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4057b1:	ff 75 e4             	push   -0x1c(%ebp)
4057b4:	8d 85 98 fe ff ff    	lea    -0x168(%ebp),%eax
4057ba:	ff 75 a8             	push   -0x58(%ebp)
4057bd:	68 b8 ca 40 00       	push   $0x40cab8
4057c2:	50                   	push   %eax
4057c3:	ff 15 58 a1 40 00    	call   *0x40a158
4057c9:	83 c4 10             	add    $0x10,%esp
4057cc:	8d 85 98 fe ff ff    	lea    -0x168(%ebp),%eax
4057d2:	8b cb                	mov    %ebx,%ecx
4057d4:	6a 0b                	push   $0xb
4057d6:	ff 73 10             	push   0x10(%ebx)
4057d9:	ff 75 bc             	push   -0x44(%ebp)
4057dc:	50                   	push   %eax
4057dd:	e8 f1 f6 ff ff       	call   0x404ed3
4057e2:	53                   	push   %ebx
4057e3:	68 e1 44 40 00       	push   $0x4044e1
4057e8:	ff 75 a8             	push   -0x58(%ebp)
4057eb:	89 43 50             	mov    %eax,0x50(%ebx)
4057ee:	ff 15 34 a2 40 00    	call   *0x40a234
4057f4:	46                   	inc    %esi
4057f5:	8d 45 a0             	lea    -0x60(%ebp),%eax
4057f8:	50                   	push   %eax
4057f9:	ff 75 ec             	push   -0x14(%ebp)
4057fc:	e8 cb 36 00 00       	call   0x408ecc
405801:	85 c0                	test   %eax,%eax
405803:	0f 85 57 ff ff ff    	jne    0x405760
405809:	eb 28                	jmp    0x405833
40580b:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40580f:	74 09                	je     0x40581a
405811:	ff 75 ec             	push   -0x14(%ebp)
405814:	ff 15 dc a0 40 00    	call   *0x40a0dc
40581a:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
40581e:	74 0a                	je     0x40582a
405820:	ff 75 d8             	push   -0x28(%ebp)
405823:	ff 15 48 a1 40 00    	call   *0x40a148
405829:	59                   	pop    %ecx
40582a:	b8 30 58 40 00       	mov    $0x405830,%eax
40582f:	c3                   	ret
405830:	8b 45 9c             	mov    -0x64(%ebp),%eax
405833:	8b 4d f4             	mov    -0xc(%ebp),%ecx
405836:	5f                   	pop    %edi
405837:	5e                   	pop    %esi
405838:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40583f:	5b                   	pop    %ebx
405840:	c9                   	leave
405841:	c3                   	ret
405842:	55                   	push   %ebp
405843:	8b ec                	mov    %esp,%ebp
405845:	83 ec 28             	sub    $0x28,%esp
405848:	a1 c8 d7 40 00       	mov    0x40d7c8,%eax
40584d:	56                   	push   %esi
40584e:	57                   	push   %edi
40584f:	33 ff                	xor    %edi,%edi
405851:	3b c7                	cmp    %edi,%eax
405853:	74 0e                	je     0x405863
405855:	ff 75 08             	push   0x8(%ebp)
405858:	57                   	push   %edi
405859:	6a 40                	push   $0x40
40585b:	ff d0                	call   *%eax
40585d:	8b f0                	mov    %eax,%esi
40585f:	3b f7                	cmp    %edi,%esi
405861:	75 04                	jne    0x405867
405863:	33 c0                	xor    %eax,%eax
405865:	eb 4a                	jmp    0x4058b1
405867:	8d 45 f0             	lea    -0x10(%ebp),%eax
40586a:	50                   	push   %eax
40586b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40586e:	50                   	push   %eax
40586f:	8d 45 e0             	lea    -0x20(%ebp),%eax
405872:	50                   	push   %eax
405873:	8d 45 d8             	lea    -0x28(%ebp),%eax
405876:	50                   	push   %eax
405877:	56                   	push   %esi
405878:	ff 15 88 a0 40 00    	call   *0x40a088
40587e:	85 c0                	test   %eax,%eax
405880:	74 26                	je     0x4058a8
405882:	8b 45 f8             	mov    -0x8(%ebp),%eax
405885:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405888:	03 45 f0             	add    -0x10(%ebp),%eax
40588b:	6a 08                	push   $0x8
40588d:	13 4d f4             	adc    -0xc(%ebp),%ecx
405890:	89 45 e8             	mov    %eax,-0x18(%ebp)
405893:	8d 45 e8             	lea    -0x18(%ebp),%eax
405896:	50                   	push   %eax
405897:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40589a:	ff 75 0c             	push   0xc(%ebp)
40589d:	e8 b2 37 00 00       	call   0x409054
4058a2:	83 c4 0c             	add    $0xc,%esp
4058a5:	6a 01                	push   $0x1
4058a7:	5f                   	pop    %edi
4058a8:	56                   	push   %esi
4058a9:	ff 15 dc a0 40 00    	call   *0x40a0dc
4058af:	8b c7                	mov    %edi,%eax
4058b1:	5f                   	pop    %edi
4058b2:	5e                   	pop    %esi
4058b3:	c9                   	leave
4058b4:	c2 08 00             	ret    $0x8
4058b7:	8b 44 24 04          	mov    0x4(%esp),%eax
4058bb:	83 f8 0c             	cmp    $0xc,%eax
4058be:	7f 05                	jg     0x4058c5
4058c0:	83 f8 01             	cmp    $0x1,%eax
4058c3:	7d 02                	jge    0x4058c7
4058c5:	33 c0                	xor    %eax,%eax
4058c7:	8b 04 85 18 c6 40 00 	mov    0x40c618(,%eax,4),%eax
4058ce:	c2 04 00             	ret    $0x4
4058d1:	55                   	push   %ebp
4058d2:	8b ec                	mov    %esp,%ebp
4058d4:	8b 45 0c             	mov    0xc(%ebp),%eax
4058d7:	33 c9                	xor    %ecx,%ecx
4058d9:	c1 e8 10             	shr    $0x10,%eax
4058dc:	8a cc                	mov    %ah,%cl
4058de:	0f b6 c9             	movzbl %cl,%ecx