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
40b845:	ba 00 00 07 00       	mov    $0x70000,%edx
40b84a:	8b cb                	mov    %ebx,%ecx
40b84c:	c1 e1 1c             	shl    $0x1c,%ecx
40b84f:	8b c1                	mov    %ecx,%eax
40b851:	c1 e8 1c             	shr    $0x1c,%eax
40b854:	3b c3                	cmp    %ebx,%eax
40b856:	74 05                	je     0x40b85d
40b858:	b9 00 00 00 80       	mov    $0x80000000,%ecx
40b85d:	03 fa                	add    %edx,%edi
40b85f:	03 f9                	add    %ecx,%edi
40b861:	5e                   	pop    %esi
40b862:	8b c7                	mov    %edi,%eax
40b864:	5f                   	pop    %edi
40b865:	5b                   	pop    %ebx
40b866:	c9                   	leave
40b867:	c3                   	ret
40b868:	8b ff                	mov    %edi,%edi
40b86a:	55                   	push   %ebp
40b86b:	8b ec                	mov    %esp,%ebp
40b86d:	81 ec 14 02 00 00    	sub    $0x214,%esp
40b873:	a1 04 e0 40 00       	mov    0x40e004,%eax
40b878:	33 c5                	xor    %ebp,%eax
40b87a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b87d:	56                   	push   %esi
40b87e:	33 c0                	xor    %eax,%eax
40b880:	c7 85 f4 fd ff ff 00 	movl   $0x100,-0x20c(%ebp)
40b887:	01 00 00
40b88a:	57                   	push   %edi
40b88b:	66 89 85 f8 fd ff ff 	mov    %ax,-0x208(%ebp)
40b892:	8b fa                	mov    %edx,%edi
40b894:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40b89a:	50                   	push   %eax
40b89b:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40b8a1:	50                   	push   %eax
40b8a2:	57                   	push   %edi
40b8a3:	ff 15 80 00 41 00    	call   *0x410080
40b8a9:	8b f0                	mov    %eax,%esi
40b8ab:	85 f6                	test   %esi,%esi
40b8ad:	74 10                	je     0x40b8bf
40b8af:	8b d6                	mov    %esi,%edx
40b8b1:	b9 b4 4e 40 00       	mov    $0x404eb4,%ecx
40b8b6:	e8 c5 d0 ff ff       	call   0x408980
40b8bb:	8b f0                	mov    %eax,%esi
40b8bd:	eb 22                	jmp    0x40b8e1
40b8bf:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40b8c5:	89 bd ec fd ff ff    	mov    %edi,-0x214(%ebp)
40b8cb:	8d 95 ec fd ff ff    	lea    -0x214(%ebp),%edx
40b8d1:	89 85 f0 fd ff ff    	mov    %eax,-0x210(%ebp)
40b8d7:	b9 b3 00 00 00       	mov    $0xb3,%ecx
40b8dc:	e8 ce ec ff ff       	call   0x40a5af
40b8e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b8e4:	8b c6                	mov    %esi,%eax
40b8e6:	5f                   	pop    %edi
40b8e7:	33 cd                	xor    %ebp,%ecx
40b8e9:	5e                   	pop    %esi
40b8ea:	e8 31 a7 ff ff       	call   0x406020
40b8ef:	c9                   	leave
40b8f0:	c3                   	ret
40b8f1:	8b ff                	mov    %edi,%edi
40b8f3:	55                   	push   %ebp
40b8f4:	8b ec                	mov    %esp,%ebp
40b8f6:	83 ec 0c             	sub    $0xc,%esp
40b8f9:	53                   	push   %ebx
40b8fa:	56                   	push   %esi
40b8fb:	33 f6                	xor    %esi,%esi
40b8fd:	57                   	push   %edi
40b8fe:	8b fa                	mov    %edx,%edi
40b900:	8b de                	mov    %esi,%ebx
40b902:	8b d1                	mov    %ecx,%edx
40b904:	8b ce                	mov    %esi,%ecx
40b906:	89 55 f4             	mov    %edx,-0xc(%ebp)
40b909:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b90c:	83 ff 02             	cmp    $0x2,%edi
40b90f:	0f 86 9f 00 00 00    	jbe    0x40b9b4
40b915:	66 83 3a 30          	cmpw   $0x30,(%edx)
40b919:	0f 85 95 00 00 00    	jne    0x40b9b4
40b91f:	0f b7 42 02          	movzwl 0x2(%edx),%eax
40b923:	83 f8 78             	cmp    $0x78,%eax
40b926:	74 09                	je     0x40b931
40b928:	83 f8 58             	cmp    $0x58,%eax
40b92b:	0f 85 83 00 00 00    	jne    0x40b9b4
40b931:	83 ef 02             	sub    $0x2,%edi
40b934:	83 ff 10             	cmp    $0x10,%edi
40b937:	77 7b                	ja     0x40b9b4
40b939:	8b c6                	mov    %esi,%eax
40b93b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b93e:	85 ff                	test   %edi,%edi
40b940:	74 68                	je     0x40b9aa
40b942:	0f b7 4c 42 04       	movzwl 0x4(%edx,%eax,2),%ecx
40b947:	8d 41 d0             	lea    -0x30(%ecx),%eax
40b94a:	66 83 f8 09          	cmp    $0x9,%ax
40b94e:	77 1a                	ja     0x40b96a
40b950:	80 e9 30             	sub    $0x30,%cl
40b953:	0f b6 c1             	movzbl %cl,%eax
40b956:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b959:	0f a4 d9 04          	shld   $0x4,%ebx,%ecx
40b95d:	99                   	cltd
40b95e:	c1 e3 04             	shl    $0x4,%ebx
40b961:	0b d8                	or     %eax,%ebx
40b963:	0b ca                	or     %edx,%ecx
40b965:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b968:	eb 32                	jmp    0x40b99c
40b96a:	6a 05                	push   $0x5
40b96c:	8d 41 9f             	lea    -0x61(%ecx),%eax
40b96f:	5a                   	pop    %edx
40b970:	66 3b c2             	cmp    %dx,%ax
40b973:	77 05                	ja     0x40b97a
40b975:	80 e9 57             	sub    $0x57,%cl
40b978:	eb d9                	jmp    0x40b953
40b97a:	8d 41 bf             	lea    -0x41(%ecx),%eax
40b97d:	66 3b c2             	cmp    %dx,%ax
40b980:	77 32                	ja     0x40b9b4
40b982:	80 e9 37             	sub    $0x37,%cl
40b985:	0f b6 c1             	movzbl %cl,%eax
40b988:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b98b:	0f a4 d9 04          	shld   $0x4,%ebx,%ecx
40b98f:	99                   	cltd
40b990:	c1 e3 04             	shl    $0x4,%ebx
40b993:	0b d8                	or     %eax,%ebx
40b995:	0b d1                	or     %ecx,%edx
40b997:	8b ca                	mov    %edx,%ecx
40b999:	89 55 fc             	mov    %edx,-0x4(%ebp)
40b99c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b99f:	8b 55 f4             	mov    -0xc(%ebp),%edx
40b9a2:	40                   	inc    %eax
40b9a3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b9a6:	3b c7                	cmp    %edi,%eax
40b9a8:	72 98                	jb     0x40b942
40b9aa:	8b 45 0c             	mov    0xc(%ebp),%eax
40b9ad:	89 18                	mov    %ebx,(%eax)
40b9af:	89 48 04             	mov    %ecx,0x4(%eax)
40b9b2:	eb 03                	jmp    0x40b9b7
40b9b4:	6a 0d                	push   $0xd
40b9b6:	5e                   	pop    %esi
40b9b7:	5f                   	pop    %edi
40b9b8:	8b c6                	mov    %esi,%eax
40b9ba:	5e                   	pop    %esi
40b9bb:	5b                   	pop    %ebx
40b9bc:	c9                   	leave
40b9bd:	c2 08 00             	ret    $0x8
40b9c0:	8b ff                	mov    %edi,%edi
40b9c2:	55                   	push   %ebp
40b9c3:	8b ec                	mov    %esp,%ebp
40b9c5:	51                   	push   %ecx
40b9c6:	56                   	push   %esi
40b9c7:	57                   	push   %edi
40b9c8:	8b f1                	mov    %ecx,%esi
40b9ca:	e8 1e 11 00 00       	call   0x40caed
40b9cf:	56                   	push   %esi
40b9d0:	8b f8                	mov    %eax,%edi
40b9d2:	ff 15 48 00 41 00    	call   *0x410048
40b9d8:	85 ff                	test   %edi,%edi
40b9da:	75 14                	jne    0x40b9f0
40b9dc:	ff 15 40 f0 40 00    	call   *0x40f040
40b9e2:	b9 04 49 40 00       	mov    $0x404904,%ecx
40b9e7:	8b d0                	mov    %eax,%edx
40b9e9:	e8 92 cf ff ff       	call   0x408980
40b9ee:	eb 63                	jmp    0x40ba53
40b9f0:	6a 2d                	push   $0x2d
40b9f2:	33 d2                	xor    %edx,%edx
40b9f4:	59                   	pop    %ecx
40b9f5:	e8 b5 eb ff ff       	call   0x40a5af
40b9fa:	ff 15 14 f1 40 00    	call   *0x40f114
40ba00:	8b f0                	mov    %eax,%esi
40ba02:	56                   	push   %esi
40ba03:	ff 15 1c f1 40 00    	call   *0x40f11c
40ba09:	59                   	pop    %ecx
40ba0a:	85 c0                	test   %eax,%eax
40ba0c:	74 0a                	je     0x40ba18
40ba0e:	56                   	push   %esi
40ba0f:	ff 15 24 f1 40 00    	call   *0x40f124
40ba15:	59                   	pop    %ecx
40ba16:	8b f0                	mov    %eax,%esi
40ba18:	e8 de f6 ff ff       	call   0x40b0fb
40ba1d:	3b f0                	cmp    %eax,%esi