40f53d:	83 7d e8 20          	cmpl   $0x20,-0x18(%ebp)
40f541:	0f 83 21 01 00 00    	jae    0x40f668
40f547:	b8 1f 00 00 00       	mov    $0x1f,%eax
40f54c:	2b 45 e8             	sub    -0x18(%ebp),%eax
40f54f:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f552:	8a 14 01             	mov    (%ecx,%eax,1),%dl
40f555:	88 55 ff             	mov    %dl,-0x1(%ebp)
40f558:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40f55f:	eb 09                	jmp    0x40f56a
40f561:	8b 45 c8             	mov    -0x38(%ebp),%eax
40f564:	83 c0 01             	add    $0x1,%eax
40f567:	89 45 c8             	mov    %eax,-0x38(%ebp)
40f56a:	83 7d c8 08          	cmpl   $0x8,-0x38(%ebp)
40f56e:	0f 83 ef 00 00 00    	jae    0x40f663
40f574:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
40f578:	c1 f8 07             	sar    $0x7,%eax
40f57b:	99                   	cltd
40f57c:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f57f:	89 55 d0             	mov    %edx,-0x30(%ebp)
40f582:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40f585:	51                   	push   %ecx
40f586:	8b 55 cc             	mov    -0x34(%ebp),%edx
40f589:	52                   	push   %edx
40f58a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f58d:	50                   	push   %eax
40f58e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f591:	51                   	push   %ecx
40f592:	e8 89 fd ff ff       	call   0x40f320
40f597:	83 c4 10             	add    $0x10,%esp
40f59a:	8b 55 d0             	mov    -0x30(%ebp),%edx
40f59d:	52                   	push   %edx
40f59e:	8b 45 cc             	mov    -0x34(%ebp),%eax
40f5a1:	50                   	push   %eax
40f5a2:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40f5a5:	51                   	push   %ecx
40f5a6:	8b 55 ec             	mov    -0x14(%ebp),%edx
40f5a9:	52                   	push   %edx
40f5aa:	e8 71 fd ff ff       	call   0x40f320
40f5af:	83 c4 10             	add    $0x10,%esp
40f5b2:	8b 45 14             	mov    0x14(%ebp),%eax
40f5b5:	50                   	push   %eax
40f5b6:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40f5b9:	51                   	push   %ecx
40f5ba:	8b 55 f4             	mov    -0xc(%ebp),%edx
40f5bd:	52                   	push   %edx
40f5be:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f5c1:	50                   	push   %eax
40f5c2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f5c5:	51                   	push   %ecx
40f5c6:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40f5c9:	52                   	push   %edx
40f5ca:	8b 45 dc             	mov    -0x24(%ebp),%eax
40f5cd:	50                   	push   %eax
40f5ce:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40f5d1:	51                   	push   %ecx
40f5d2:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40f5d5:	52                   	push   %edx
40f5d6:	e8 95 fa ff ff       	call   0x40f070
40f5db:	83 c4 24             	add    $0x24,%esp
40f5de:	8b 45 d0             	mov    -0x30(%ebp),%eax
40f5e1:	50                   	push   %eax
40f5e2:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40f5e5:	51                   	push   %ecx
40f5e6:	8b 55 dc             	mov    -0x24(%ebp),%edx
40f5e9:	52                   	push   %edx
40f5ea:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f5ed:	50                   	push   %eax
40f5ee:	e8 2d fd ff ff       	call   0x40f320
40f5f3:	83 c4 10             	add    $0x10,%esp
40f5f6:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40f5f9:	51                   	push   %ecx
40f5fa:	8b 55 cc             	mov    -0x34(%ebp),%edx
40f5fd:	52                   	push   %edx
40f5fe:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f601:	50                   	push   %eax
40f602:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40f605:	51                   	push   %ecx
40f606:	e8 15 fd ff ff       	call   0x40f320
40f60b:	83 c4 10             	add    $0x10,%esp
40f60e:	8b 55 f0             	mov    -0x10(%ebp),%edx
40f611:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f614:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40f617:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f61a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f61d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40f620:	8b 55 ec             	mov    -0x14(%ebp),%edx
40f623:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f626:	8b 45 e0             	mov    -0x20(%ebp),%eax
40f629:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f62c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f62f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40f632:	8b 55 f4             	mov    -0xc(%ebp),%edx
40f635:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f638:	8b 45 dc             	mov    -0x24(%ebp),%eax
40f63b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f63e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f641:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40f644:	8b 55 d8             	mov    -0x28(%ebp),%edx
40f647:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f64a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f64d:	89 45 d8             	mov    %eax,-0x28(%ebp)
40f650:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f653:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40f656:	8a 55 ff             	mov    -0x1(%ebp),%dl
40f659:	d0 e2                	shl    $1,%dl
40f65b:	88 55 ff             	mov    %dl,-0x1(%ebp)
40f65e:	e9 fe fe ff ff       	jmp    0x40f561
40f663:	e9 cc fe ff ff       	jmp    0x40f534
40f668:	6a 50                	push   $0x50
40f66a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f66d:	50                   	push   %eax
40f66e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f671:	51                   	push   %ecx
40f672:	e8 29 73 ff ff       	call   0x4069a0
40f677:	83 c4 0c             	add    $0xc,%esp
40f67a:	6a 50                	push   $0x50
40f67c:	8b 55 ec             	mov    -0x14(%ebp),%edx
40f67f:	52                   	push   %edx
40f680:	8b 45 0c             	mov    0xc(%ebp),%eax
40f683:	50                   	push   %eax
40f684:	e8 17 73 ff ff       	call   0x4069a0
40f689:	83 c4 0c             	add    $0xc,%esp
40f68c:	8b e5                	mov    %ebp,%esp
40f68e:	5d                   	pop    %ebp
40f68f:	c3                   	ret
40f690:	55                   	push   %ebp
40f691:	8b ec                	mov    %esp,%ebp
40f693:	81 ec 24 03 00 00    	sub    $0x324,%esp
40f699:	8b 45 0c             	mov    0xc(%ebp),%eax
40f69c:	50                   	push   %eax
40f69d:	8d 8d 6c fe ff ff    	lea    -0x194(%ebp),%ecx
40f6a3:	51                   	push   %ecx
40f6a4:	e8 e7 e8 ff ff       	call   0x40df90
40f6a9:	83 c4 08             	add    $0x8,%esp
40f6ac:	8d 95 6c fe ff ff    	lea    -0x194(%ebp),%edx
40f6b2:	52                   	push   %edx
40f6b3:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f6b9:	50                   	push   %eax
40f6ba:	e8 d1 e8 ff ff       	call   0x40df90
40f6bf:	83 c4 08             	add    $0x8,%esp
40f6c2:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f6c8:	51                   	push   %ecx
40f6c9:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f6cc:	52                   	push   %edx
40f6cd:	e8 be e8 ff ff       	call   0x40df90
40f6d2:	83 c4 08             	add    $0x8,%esp
40f6d5:	8b 45 0c             	mov    0xc(%ebp),%eax
40f6d8:	50                   	push   %eax
40f6d9:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f6dc:	51                   	push   %ecx
40f6dd:	8d 95 1c fe ff ff    	lea    -0x1e4(%ebp),%edx
40f6e3:	52                   	push   %edx
40f6e4:	e8 57 db ff ff       	call   0x40d240
40f6e9:	83 c4 0c             	add    $0xc,%esp
40f6ec:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
40f6f2:	50                   	push   %eax
40f6f3:	8d 8d 1c fe ff ff    	lea    -0x1e4(%ebp),%ecx
40f6f9:	51                   	push   %ecx
40f6fa:	8d 95 dc fc ff ff    	lea    -0x324(%ebp),%edx
40f700:	52                   	push   %edx
40f701:	e8 3a db ff ff       	call   0x40d240
40f706:	83 c4 0c             	add    $0xc,%esp
40f709:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
40f70f:	50                   	push   %eax
40f710:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f713:	51                   	push   %ecx
40f714:	e8 77 e8 ff ff       	call   0x40df90
40f719:	83 c4 08             	add    $0x8,%esp
40f71c:	8d 95 1c fe ff ff    	lea    -0x1e4(%ebp),%edx
40f722:	52                   	push   %edx
40f723:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f726:	50                   	push   %eax
40f727:	8d 8d cc fd ff ff    	lea    -0x234(%ebp),%ecx
40f72d:	51                   	push   %ecx
40f72e:	e8 0d db ff ff       	call   0x40d240
40f733:	83 c4 0c             	add    $0xc,%esp
40f736:	8d 95 cc fd ff ff    	lea    -0x234(%ebp),%edx
40f73c:	52                   	push   %edx
40f73d:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f740:	50                   	push   %eax
40f741:	e8 4a e8 ff ff       	call   0x40df90
40f746:	83 c4 08             	add    $0x8,%esp
40f749:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f74c:	51                   	push   %ecx
40f74d:	8d 95 5c ff ff ff    	lea    -0xa4(%ebp),%edx
40f753:	52                   	push   %edx
40f754:	e8 37 e8 ff ff       	call   0x40df90
40f759:	83 c4 08             	add    $0x8,%esp
40f75c:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f762:	50                   	push   %eax
40f763:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f766:	51                   	push   %ecx
40f767:	e8 24 e8 ff ff       	call   0x40df90
40f76c:	83 c4 08             	add    $0x8,%esp
40f76f:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f772:	52                   	push   %edx
40f773:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f779:	50                   	push   %eax
40f77a:	e8 11 e8 ff ff       	call   0x40df90
40f77f:	83 c4 08             	add    $0x8,%esp
40f782:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f788:	51                   	push   %ecx
40f789:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f78c:	52                   	push   %edx
40f78d:	e8 fe e7 ff ff       	call   0x40df90
40f792:	83 c4 08             	add    $0x8,%esp
40f795:	8d 85 cc fd ff ff    	lea    -0x234(%ebp),%eax
40f79b:	50                   	push   %eax
40f79c:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f79f:	51                   	push   %ecx
40f7a0:	8d 95 0c ff ff ff    	lea    -0xf4(%ebp),%edx
40f7a6:	52                   	push   %edx
40f7a7:	e8 94 da ff ff       	call   0x40d240
40f7ac:	83 c4 0c             	add    $0xc,%esp
40f7af:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
40f7b5:	50                   	push   %eax
40f7b6:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f7b9:	51                   	push   %ecx
40f7ba:	e8 d1 e7 ff ff       	call   0x40df90
40f7bf:	83 c4 08             	add    $0x8,%esp
40f7c2:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f7c5:	52                   	push   %edx
40f7c6:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f7cc:	50                   	push   %eax
40f7cd:	e8 be e7 ff ff       	call   0x40df90
40f7d2:	83 c4 08             	add    $0x8,%esp
40f7d5:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40f7dc:	eb 09                	jmp    0x40f7e7
40f7de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f7e1:	83 c1 02             	add    $0x2,%ecx
40f7e4:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f7e7:	83 7d fc 0a          	cmpl   $0xa,-0x4(%ebp)
40f7eb:	7d 28                	jge    0x40f815
40f7ed:	8d 95 5c ff ff ff    	lea    -0xa4(%ebp),%edx
40f7f3:	52                   	push   %edx
40f7f4:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f7f7:	50                   	push   %eax
40f7f8:	e8 93 e7 ff ff       	call   0x40df90
40f7fd:	83 c4 08             	add    $0x8,%esp
40f800:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f803:	51                   	push   %ecx
40f804:	8d 95 5c ff ff ff    	lea    -0xa4(%ebp),%edx
40f80a:	52                   	push   %edx
40f80b:	e8 80 e7 ff ff       	call   0x40df90
40f810:	83 c4 08             	add    $0x8,%esp
40f813:	eb c9                	jmp    0x40f7de
40f815:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
40f81b:	50                   	push   %eax
40f81c:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f822:	51                   	push   %ecx
40f823:	8d 95 7c fd ff ff    	lea    -0x284(%ebp),%edx
40f829:	52                   	push   %edx
40f82a:	e8 11 da ff ff       	call   0x40d240
40f82f:	83 c4 0c             	add    $0xc,%esp
40f832:	8d 85 7c fd ff ff    	lea    -0x284(%ebp),%eax
40f838:	50                   	push   %eax
40f839:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f83c:	51                   	push   %ecx
40f83d:	e8 4e e7 ff ff       	call   0x40df90
40f842:	83 c4 08             	add    $0x8,%esp
40f845:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f848:	52                   	push   %edx
40f849:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f84f:	50                   	push   %eax
40f850:	e8 3b e7 ff ff       	call   0x40df90
40f855:	83 c4 08             	add    $0x8,%esp
40f858:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40f85f:	eb 09                	jmp    0x40f86a
40f861:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f864:	83 c1 02             	add    $0x2,%ecx
40f867:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f86a:	83 7d fc 14          	cmpl   $0x14,-0x4(%ebp)
40f86e:	7d 28                	jge    0x40f898
40f870:	8d 95 5c ff ff ff    	lea    -0xa4(%ebp),%edx
40f876:	52                   	push   %edx
40f877:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f87a:	50                   	push   %eax
40f87b:	e8 10 e7 ff ff       	call   0x40df90
40f880:	83 c4 08             	add    $0x8,%esp
40f883:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f886:	51                   	push   %ecx
40f887:	8d 95 5c ff ff ff    	lea    -0xa4(%ebp),%edx
40f88d:	52                   	push   %edx
40f88e:	e8 fd e6 ff ff       	call   0x40df90
40f893:	83 c4 08             	add    $0x8,%esp
40f896:	eb c9                	jmp    0x40f861
40f898:	8d 85 7c fd ff ff    	lea    -0x284(%ebp),%eax
40f89e:	50                   	push   %eax
40f89f:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f8a5:	51                   	push   %ecx
40f8a6:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f8a9:	52                   	push   %edx
40f8aa:	e8 91 d9 ff ff       	call   0x40d240
40f8af:	83 c4 0c             	add    $0xc,%esp
40f8b2:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f8b5:	50                   	push   %eax
40f8b6:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f8bc:	51                   	push   %ecx
40f8bd:	e8 ce e6 ff ff       	call   0x40df90
40f8c2:	83 c4 08             	add    $0x8,%esp
40f8c5:	8d 95 5c ff ff ff    	lea    -0xa4(%ebp),%edx
40f8cb:	52                   	push   %edx
40f8cc:	8d 45 ac             	lea    -0x54(%ebp),%eax
40f8cf:	50                   	push   %eax
40f8d0:	e8 bb e6 ff ff       	call   0x40df90
40f8d5:	83 c4 08             	add    $0x8,%esp
40f8d8:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40f8df:	eb 09                	jmp    0x40f8ea
40f8e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f8e4:	83 c1 02             	add    $0x2,%ecx
40f8e7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f8ea:	83 7d fc 0a          	cmpl   $0xa,-0x4(%ebp)
40f8ee:	7d 28                	jge    0x40f918
40f8f0:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f8f3:	52                   	push   %edx
40f8f4:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f8fa:	50                   	push   %eax
40f8fb:	e8 90 e6 ff ff       	call   0x40df90
40f900:	83 c4 08             	add    $0x8,%esp
40f903:	8d 8d 5c ff ff ff    	lea    -0xa4(%ebp),%ecx
40f909:	51                   	push   %ecx
40f90a:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f90d:	52                   	push   %edx
40f90e:	e8 7d e6 ff ff       	call   0x40df90
40f913:	83 c4 08             	add    $0x8,%esp
40f916:	eb c9                	jmp    0x40f8e1
40f918:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
40f91e:	50                   	push   %eax
40f91f:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f922:	51                   	push   %ecx
40f923:	8d 95 bc fe ff ff    	lea    -0x144(%ebp),%edx
40f929:	52                   	push   %edx
40f92a:	e8 11 d9 ff ff       	call   0x40d240
40f92f:	83 c4 0c             	add    $0xc,%esp
40f932:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
40f938:	50                   	push   %eax
40f939:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40f93c:	51                   	push   %ecx
40f93d:	e8 4e e6 ff ff       	call   0x40df90
40f942:	83 c4 08             	add    $0x8,%esp
40f945:	8d 55 ac             	lea    -0x54(%ebp),%edx
40f948:	52                   	push   %edx
40f949:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40f94f:	50                   	push   %eax
40f950:	e8 3b e6 ff ff       	call   0x40df90
40f955:	83 c4 08             	add    $0x8,%esp
40f958:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40f95f:	eb 09                	jmp    0x40f96a
40f961:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f964:	83 c1 02             	add    $0x2,%ecx