40b46d:	ff 77 08             	push   0x8(%edi)
40b470:	ff 15 20 f1 40 00    	call   *0x40f120
40b476:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40b479:	83 c4 0c             	add    $0xc,%esp
40b47c:	89 45 80             	mov    %eax,-0x80(%ebp)
40b47f:	8b 47 08             	mov    0x8(%edi),%eax
40b482:	2b c6                	sub    %esi,%eax
40b484:	74 33                	je     0x40b4b9
40b486:	83 e8 01             	sub    $0x1,%eax
40b489:	74 25                	je     0x40b4b0
40b48b:	83 e8 01             	sub    $0x1,%eax
40b48e:	74 17                	je     0x40b4a7
40b490:	83 e8 01             	sub    $0x1,%eax
40b493:	74 09                	je     0x40b49e
40b495:	c7 45 84 70 4d 40 00 	movl   $0x404d70,-0x7c(%ebp)
40b49c:	eb 22                	jmp    0x40b4c0
40b49e:	c7 45 84 44 4e 40 00 	movl   $0x404e44,-0x7c(%ebp)
40b4a5:	eb 19                	jmp    0x40b4c0
40b4a7:	c7 45 84 34 4e 40 00 	movl   $0x404e34,-0x7c(%ebp)
40b4ae:	eb 10                	jmp    0x40b4c0
40b4b0:	c7 45 84 24 4e 40 00 	movl   $0x404e24,-0x7c(%ebp)
40b4b7:	eb 07                	jmp    0x40b4c0
40b4b9:	c7 45 84 58 4e 40 00 	movl   $0x404e58,-0x7c(%ebp)
40b4c0:	8b 47 0c             	mov    0xc(%edi),%eax
40b4c3:	89 45 88             	mov    %eax,-0x78(%ebp)
40b4c6:	8b 47 10             	mov    0x10(%edi),%eax
40b4c9:	89 45 8c             	mov    %eax,-0x74(%ebp)
40b4cc:	8d 45 9c             	lea    -0x64(%ebp),%eax
40b4cf:	6a 0a                	push   $0xa
40b4d1:	50                   	push   %eax
40b4d2:	ff 77 14             	push   0x14(%edi)
40b4d5:	ff 15 20 f1 40 00    	call   *0x40f120
40b4db:	83 c4 0c             	add    $0xc,%esp
40b4de:	8d 45 9c             	lea    -0x64(%ebp),%eax
40b4e1:	89 45 90             	mov    %eax,-0x70(%ebp)
40b4e4:	8d 95 68 ff ff ff    	lea    -0x98(%ebp),%edx
40b4ea:	8b 47 20             	mov    0x20(%edi),%eax
40b4ed:	89 45 94             	mov    %eax,-0x6c(%ebp)
40b4f0:	8b 47 18             	mov    0x18(%edi),%eax
40b4f3:	6a 3a                	push   $0x3a
40b4f5:	59                   	pop    %ecx
40b4f6:	89 45 98             	mov    %eax,-0x68(%ebp)
40b4f9:	e8 b1 f0 ff ff       	call   0x40a5af
40b4fe:	8b 57 18             	mov    0x18(%edi),%edx
40b501:	8b ca                	mov    %edx,%ecx
40b503:	8d 71 02             	lea    0x2(%ecx),%esi
40b506:	66 8b 01             	mov    (%ecx),%ax
40b509:	83 c1 02             	add    $0x2,%ecx
40b50c:	66 3b 85 4c ff ff ff 	cmp    -0xb4(%ebp),%ax
40b513:	75 f1                	jne    0x40b506
40b515:	2b ce                	sub    %esi,%ecx
40b517:	d1 f9                	sar    $1,%ecx
40b519:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
40b51c:	83 c2 02             	add    $0x2,%edx
40b51f:	89 95 60 ff ff ff    	mov    %edx,-0xa0(%ebp)
40b525:	0f b7 02             	movzwl (%edx),%eax
40b528:	66 85 c0             	test   %ax,%ax
40b52b:	74 49                	je     0x40b576
40b52d:	8b c8                	mov    %eax,%ecx
40b52f:	66 85 c9             	test   %cx,%cx
40b532:	74 14                	je     0x40b548
40b534:	6a 3b                	push   $0x3b
40b536:	8d 95 60 ff ff ff    	lea    -0xa0(%ebp),%edx
40b53c:	59                   	pop    %ecx
40b53d:	e8 6d f0 ff ff       	call   0x40a5af
40b542:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
40b548:	8b ca                	mov    %edx,%ecx
40b54a:	8d 71 02             	lea    0x2(%ecx),%esi
40b54d:	66 8b 01             	mov    (%ecx),%ax
40b550:	83 c1 02             	add    $0x2,%ecx
40b553:	66 3b 85 4c ff ff ff 	cmp    -0xb4(%ebp),%ax
40b55a:	75 f1                	jne    0x40b54d
40b55c:	2b ce                	sub    %esi,%ecx
40b55e:	d1 f9                	sar    $1,%ecx
40b560:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
40b563:	83 c2 02             	add    $0x2,%edx
40b566:	89 95 60 ff ff ff    	mov    %edx,-0xa0(%ebp)
40b56c:	0f b7 02             	movzwl (%edx),%eax
40b56f:	8b c8                	mov    %eax,%ecx
40b571:	66 85 c0             	test   %ax,%ax
40b574:	75 b9                	jne    0x40b52f
40b576:	6a 3c                	push   $0x3c
40b578:	8d 57 1c             	lea    0x1c(%edi),%edx
40b57b:	59                   	pop    %ecx
40b57c:	e8 2e f0 ff ff       	call   0x40a5af
40b581:	57                   	push   %edi
40b582:	ff 15 68 f0 40 00    	call   *0x40f068
40b588:	8b c3                	mov    %ebx,%eax
40b58a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b58d:	5f                   	pop    %edi
40b58e:	5e                   	pop    %esi
40b58f:	33 cd                	xor    %ebp,%ecx
40b591:	5b                   	pop    %ebx
40b592:	e8 89 aa ff ff       	call   0x406020
40b597:	c9                   	leave
40b598:	c2 08 00             	ret    $0x8
40b59b:	8b ff                	mov    %edi,%edi
40b59d:	55                   	push   %ebp
40b59e:	8b ec                	mov    %esp,%ebp
40b5a0:	83 ec 2c             	sub    $0x2c,%esp
40b5a3:	a1 04 e0 40 00       	mov    0x40e004,%eax
40b5a8:	33 c5                	xor    %ebp,%eax
40b5aa:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b5ad:	53                   	push   %ebx
40b5ae:	56                   	push   %esi
40b5af:	57                   	push   %edi
40b5b0:	8b da                	mov    %edx,%ebx
40b5b2:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40b5b5:	53                   	push   %ebx
40b5b6:	33 f6                	xor    %esi,%esi
40b5b8:	56                   	push   %esi
40b5b9:	ff 15 64 f0 40 00    	call   *0x40f064
40b5bf:	8b f8                	mov    %eax,%edi
40b5c1:	85 ff                	test   %edi,%edi
40b5c3:	75 19                	jne    0x40b5de
40b5c5:	ff 15 40 f0 40 00    	call   *0x40f040
40b5cb:	8b d0                	mov    %eax,%edx
40b5cd:	b9 90 48 40 00       	mov    $0x404890,%ecx
40b5d2:	e8 a9 d3 ff ff       	call   0x408980
40b5d7:	8b f0                	mov    %eax,%esi
40b5d9:	e9 8a 00 00 00       	jmp    0x40b668
40b5de:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40b5e1:	8d 45 dc             	lea    -0x24(%ebp),%eax
40b5e4:	50                   	push   %eax
40b5e5:	53                   	push   %ebx
40b5e6:	8b d7                	mov    %edi,%edx
40b5e8:	e8 ee 15 00 00       	call   0x40cbdb
40b5ed:	85 c0                	test   %eax,%eax
40b5ef:	75 2c                	jne    0x40b61d
40b5f1:	ff 15 40 f0 40 00    	call   *0x40f040
40b5f7:	bb d4 48 40 00       	mov    $0x4048d4,%ebx
40b5fc:	8b d0                	mov    %eax,%edx
40b5fe:	8b cb                	mov    %ebx,%ecx
40b600:	e8 7b d3 ff ff       	call   0x408980
40b605:	8b f0                	mov    %eax,%esi
40b607:	83 fe 7a             	cmp    $0x7a,%esi
40b60a:	75 5c                	jne    0x40b668
40b60c:	6a 00                	push   $0x0
40b60e:	ff 75 dc             	push   -0x24(%ebp)
40b611:	8b cb                	mov    %ebx,%ecx
40b613:	6a 66                	push   $0x66
40b615:	5a                   	pop    %edx
40b616:	e8 f8 d3 ff ff       	call   0x408a13
40b61b:	eb 4b                	jmp    0x40b668
40b61d:	6a 64                	push   $0x64
40b61f:	8d 55 e0             	lea    -0x20(%ebp),%edx
40b622:	c7 45 e0 d4 48 40 00 	movl   $0x4048d4,-0x20(%ebp)
40b629:	59                   	pop    %ecx
40b62a:	e8 80 ef ff ff       	call   0x40a5af
40b62f:	8b 0f                	mov    (%edi),%ecx
40b631:	f7 d9                	neg    %ecx
40b633:	1b c9                	sbb    %ecx,%ecx
40b635:	33 d2                	xor    %edx,%edx
40b637:	83 c1 27             	add    $0x27,%ecx
40b63a:	e8 70 ef ff ff       	call   0x40a5af
40b63f:	8b 47 04             	mov    0x4(%edi),%eax
40b642:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b645:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40b648:	6a 0a                	push   $0xa
40b64a:	50                   	push   %eax
40b64b:	ff 77 08             	push   0x8(%edi)
40b64e:	ff 15 20 f1 40 00    	call   *0x40f120
40b654:	83 c4 0c             	add    $0xc,%esp
40b657:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40b65a:	8d 55 d4             	lea    -0x2c(%ebp),%edx
40b65d:	89 45 d8             	mov    %eax,-0x28(%ebp)
40b660:	6a 28                	push   $0x28
40b662:	59                   	pop    %ecx
40b663:	e8 47 ef ff ff       	call   0x40a5af
40b668:	57                   	push   %edi
40b669:	ff 15 68 f0 40 00    	call   *0x40f068
40b66f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b672:	8b c6                	mov    %esi,%eax
40b674:	5f                   	pop    %edi
40b675:	5e                   	pop    %esi
40b676:	33 cd                	xor    %ebp,%ecx
40b678:	5b                   	pop    %ebx
40b679:	e8 a2 a9 ff ff       	call   0x406020
40b67e:	c9                   	leave
40b67f:	c3                   	ret
40b680:	8b ff                	mov    %edi,%edi
40b682:	55                   	push   %ebp
40b683:	8b ec                	mov    %esp,%ebp
40b685:	83 ec 28             	sub    $0x28,%esp
40b688:	53                   	push   %ebx
40b689:	56                   	push   %esi
40b68a:	57                   	push   %edi
40b68b:	8b c2                	mov    %edx,%eax
40b68d:	33 db                	xor    %ebx,%ebx
40b68f:	6a 01                	push   $0x1
40b691:	50                   	push   %eax
40b692:	51                   	push   %ecx
40b693:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b696:	8b f3                	mov    %ebx,%esi
40b698:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40b69b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40b69e:	88 5d ff             	mov    %bl,-0x1(%ebp)
40b6a1:	ff 15 3c 00 41 00    	call   *0x41003c
40b6a7:	8b f8                	mov    %eax,%edi
40b6a9:	85 ff                	test   %edi,%edi
40b6ab:	74 6a                	je     0x40b717
40b6ad:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b6b0:	50                   	push   %eax
40b6b1:	6a 04                	push   $0x4
40b6b3:	8d 45 ec             	lea    -0x14(%ebp),%eax
40b6b6:	50                   	push   %eax
40b6b7:	6a 05                	push   $0x5
40b6b9:	57                   	push   %edi
40b6ba:	ff 15 54 00 41 00    	call   *0x410054
40b6c0:	85 c0                	test   %eax,%eax
40b6c2:	74 3a                	je     0x40b6fe
40b6c4:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
40b6c7:	74 04                	je     0x40b6cd
40b6c9:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40b6cd:	ff 75 f0             	push   -0x10(%ebp)
40b6d0:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b6d3:	50                   	push   %eax
40b6d4:	ff 15 3c f1 40 00    	call   *0x40f13c
40b6da:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b6dd:	50                   	push   %eax
40b6de:	53                   	push   %ebx
40b6df:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b6e2:	50                   	push   %eax
40b6e3:	ff 15 38 f1 40 00    	call   *0x40f138
40b6e9:	3d 23 00 00 c0       	cmp    $0xc0000023,%eax
40b6ee:	74 41                	je     0x40b731
40b6f0:	50                   	push   %eax
40b6f1:	ff 15 44 f1 40 00    	call   *0x40f144
40b6f7:	b9 e8 4e 40 00       	mov    $0x404ee8,%ecx
40b6fc:	eb 0b                	jmp    0x40b709
40b6fe:	ff 15 40 f0 40 00    	call   *0x40f040
40b704:	b9 3c 15 40 00       	mov    $0x40153c,%ecx
40b709:	8b d0                	mov    %eax,%edx
40b70b:	e8 70 d2 ff ff       	call   0x408980
40b710:	8b d8                	mov    %eax,%ebx
40b712:	e9 88 00 00 00       	jmp    0x40b79f
40b717:	ff 15 40 f0 40 00    	call   *0x40f040
40b71d:	3d 24 04 00 00       	cmp    $0x424,%eax
40b722:	74 a9                	je     0x40b6cd
40b724:	ff 15 40 f0 40 00    	call   *0x40f040
40b72a:	b9 88 14 40 00       	mov    $0x401488,%ecx
40b72f:	eb d8                	jmp    0x40b709
40b731:	ff 75 f8             	push   -0x8(%ebp)
40b734:	6a 40                	push   $0x40
40b736:	ff 15 64 f0 40 00    	call   *0x40f064
40b73c:	8b f0                	mov    %eax,%esi
40b73e:	85 f6                	test   %esi,%esi
40b740:	75 0d                	jne    0x40b74f
40b742:	ff 15 40 f0 40 00    	call   *0x40f040
40b748:	b9 9c 4e 40 00       	mov    $0x404e9c,%ecx
40b74d:	eb ba                	jmp    0x40b709
40b74f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b752:	50                   	push   %eax
40b753:	56                   	push   %esi
40b754:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b757:	50                   	push   %eax
40b758:	ff 15 38 f1 40 00    	call   *0x40f138
40b75e:	85 c0                	test   %eax,%eax
40b760:	78 8e                	js     0x40b6f0
40b762:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b765:	50                   	push   %eax
40b766:	56                   	push   %esi
40b767:	ff 15 10 00 41 00    	call   *0x410010
40b76d:	85 c0                	test   %eax,%eax
40b76f:	75 0d                	jne    0x40b77e
40b771:	ff 15 40 f0 40 00    	call   *0x40f040
40b777:	b9 10 4f 40 00       	mov    $0x404f10,%ecx
40b77c:	eb 8b                	jmp    0x40b709
40b77e:	8d 55 e0             	lea    -0x20(%ebp),%edx
40b781:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b784:	b9 85 00 00 00       	mov    $0x85,%ecx
40b789:	89 45 e0             	mov    %eax,-0x20(%ebp)
40b78c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40b78f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b792:	38 5d ff             	cmp    %bl,-0x1(%ebp)
40b795:	75 03                	jne    0x40b79a
40b797:	83 c1 19             	add    $0x19,%ecx
40b79a:	e8 10 ee ff ff       	call   0x40a5af
40b79f:	56                   	push   %esi
40b7a0:	ff 15 68 f0 40 00    	call   *0x40f068
40b7a6:	ff 75 f4             	push   -0xc(%ebp)
40b7a9:	ff 15 68 f0 40 00    	call   *0x40f068
40b7af:	85 ff                	test   %edi,%edi
40b7b1:	74 07                	je     0x40b7ba
40b7b3:	57                   	push   %edi
40b7b4:	ff 15 48 00 41 00    	call   *0x410048
40b7ba:	5f                   	pop    %edi
40b7bb:	5e                   	pop    %esi
40b7bc:	8b c3                	mov    %ebx,%eax
40b7be:	5b                   	pop    %ebx
40b7bf:	c9                   	leave
40b7c0:	c3                   	ret
40b7c1:	8b ff                	mov    %edi,%edi
40b7c3:	55                   	push   %ebp
40b7c4:	8b ec                	mov    %esp,%ebp
40b7c6:	51                   	push   %ecx
40b7c7:	53                   	push   %ebx
40b7c8:	57                   	push   %edi
40b7c9:	8b d9                	mov    %ecx,%ebx
40b7cb:	33 ff                	xor    %edi,%edi
40b7cd:	85 db                	test   %ebx,%ebx
40b7cf:	0f 84 8d 00 00 00    	je     0x40b862
40b7d5:	56                   	push   %esi
40b7d6:	6a 3a                	push   $0x3a
40b7d8:	58                   	pop    %eax
40b7d9:	50                   	push   %eax
40b7da:	53                   	push   %ebx
40b7db:	ff 15 18 f1 40 00    	call   *0x40f118
40b7e1:	8b f0                	mov    %eax,%esi
40b7e3:	59                   	pop    %ecx
40b7e4:	59                   	pop    %ecx
40b7e5:	85 f6                	test   %esi,%esi
40b7e7:	74 78                	je     0x40b861
40b7e9:	33 c0                	xor    %eax,%eax
40b7eb:	53                   	push   %ebx
40b7ec:	66 89 06             	mov    %ax,(%esi)
40b7ef:	ff 15 0c f1 40 00    	call   *0x40f10c
40b7f5:	6a 3a                	push   $0x3a
40b7f7:	8b d8                	mov    %eax,%ebx
40b7f9:	58                   	pop    %eax
40b7fa:	66 89 06             	mov    %ax,(%esi)
40b7fd:	83 c6 02             	add    $0x2,%esi
40b800:	50                   	push   %eax
40b801:	56                   	push   %esi
40b802:	ff 15 18 f1 40 00    	call   *0x40f118
40b808:	83 c4 0c             	add    $0xc,%esp
40b80b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b80e:	85 c0                	test   %eax,%eax
40b810:	74 4f                	je     0x40b861
40b812:	33 c9                	xor    %ecx,%ecx
40b814:	56                   	push   %esi
40b815:	66 89 08             	mov    %cx,(%eax)
40b818:	ff 15 0c f1 40 00    	call   *0x40f10c
40b81e:	8b f0                	mov    %eax,%esi
40b820:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b823:	6a 3a                	push   $0x3a
40b825:	59                   	pop    %ecx
40b826:	66 89 08             	mov    %cx,(%eax)
40b829:	83 c0 02             	add    $0x2,%eax
40b82c:	50                   	push   %eax
40b82d:	ff 15 0c f1 40 00    	call   *0x40f10c
40b833:	8b d6                	mov    %esi,%edx
40b835:	8b f8                	mov    %eax,%edi
40b837:	c1 e2 10             	shl    $0x10,%edx
40b83a:	8b c2                	mov    %edx,%eax
40b83c:	c1 e8 10             	shr    $0x10,%eax
40b83f:	59                   	pop    %ecx
40b840:	59                   	pop    %ecx
40b841:	3b c6                	cmp    %esi,%eax
40b843:	74 05                	je     0x40b84a