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
40ba1f:	75 26                	jne    0x40ba47
40ba21:	8b cf                	mov    %edi,%ecx
40ba23:	e8 84 12 00 00       	call   0x40ccac
40ba28:	85 c0                	test   %eax,%eax
40ba2a:	75 0d                	jne    0x40ba39
40ba2c:	ff 15 40 f0 40 00    	call   *0x40f040
40ba32:	b9 2c 49 40 00       	mov    $0x40492c,%ecx
40ba37:	eb ae                	jmp    0x40b9e7
40ba39:	c7 45 fc 2c 49 40 00 	movl   $0x40492c,-0x4(%ebp)
40ba40:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ba43:	6a 64                	push   $0x64
40ba45:	eb 04                	jmp    0x40ba4b
40ba47:	33 d2                	xor    %edx,%edx
40ba49:	6a 2e                	push   $0x2e
40ba4b:	59                   	pop    %ecx
40ba4c:	e8 5e eb ff ff       	call   0x40a5af
40ba51:	33 c0                	xor    %eax,%eax
40ba53:	5f                   	pop    %edi
40ba54:	5e                   	pop    %esi
40ba55:	c9                   	leave
40ba56:	c3                   	ret
40ba57:	8b ff                	mov    %edi,%edi
40ba59:	55                   	push   %ebp
40ba5a:	8b ec                	mov    %esp,%ebp
40ba5c:	51                   	push   %ecx
40ba5d:	57                   	push   %edi
40ba5e:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ba61:	8b f9                	mov    %ecx,%edi
40ba63:	e8 87 e8 ff ff       	call   0x40a2ef
40ba68:	85 c0                	test   %eax,%eax
40ba6a:	74 18                	je     0x40ba84
40ba6c:	6a 00                	push   $0x0
40ba6e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ba71:	50                   	push   %eax
40ba72:	ff 75 fc             	push   -0x4(%ebp)
40ba75:	57                   	push   %edi
40ba76:	ff 35 c0 eb 40 00    	push   0x40ebc0
40ba7c:	ff 15 20 f0 40 00    	call   *0x40f020
40ba82:	eb 4f                	jmp    0x40bad3
40ba84:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ba87:	53                   	push   %ebx
40ba88:	56                   	push   %esi
40ba89:	03 c0                	add    %eax,%eax
40ba8b:	33 db                	xor    %ebx,%ebx
40ba8d:	50                   	push   %eax
40ba8e:	53                   	push   %ebx
40ba8f:	ff 15 64 f0 40 00    	call   *0x40f064
40ba95:	8b f0                	mov    %eax,%esi
40ba97:	85 f6                	test   %esi,%esi
40ba99:	74 36                	je     0x40bad1
40ba9b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ba9e:	53                   	push   %ebx
40ba9f:	53                   	push   %ebx
40baa0:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
40baa3:	51                   	push   %ecx
40baa4:	56                   	push   %esi
40baa5:	52                   	push   %edx
40baa6:	57                   	push   %edi
40baa7:	53                   	push   %ebx
40baa8:	6a 01                	push   $0x1
40baaa:	ff 15 a8 f0 40 00    	call   *0x40f0a8
40bab0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bab3:	85 c0                	test   %eax,%eax
40bab5:	74 13                	je     0x40baca
40bab7:	53                   	push   %ebx
40bab8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40babb:	51                   	push   %ecx
40babc:	50                   	push   %eax
40babd:	56                   	push   %esi
40babe:	ff 35 c0 eb 40 00    	push   0x40ebc0
40bac4:	ff 15 54 f0 40 00    	call   *0x40f054
40baca:	56                   	push   %esi
40bacb:	ff 15 68 f0 40 00    	call   *0x40f068
40bad1:	5e                   	pop    %esi
40bad2:	5b                   	pop    %ebx
40bad3:	5f                   	pop    %edi
40bad4:	c9                   	leave
40bad5:	c3                   	ret
40bad6:	8b ff                	mov    %edi,%edi
40bad8:	55                   	push   %ebp
40bad9:	8b ec                	mov    %esp,%ebp
40badb:	83 ec 0c             	sub    $0xc,%esp
40bade:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bae2:	53                   	push   %ebx
40bae3:	8b 5d 10             	mov    0x10(%ebp),%ebx
40bae6:	56                   	push   %esi
40bae7:	8b f2                	mov    %edx,%esi
40bae9:	8b 55 0c             	mov    0xc(%ebp),%edx
40baec:	57                   	push   %edi
40baed:	8b f9                	mov    %ecx,%edi
40baef:	89 75 f8             	mov    %esi,-0x8(%ebp)
40baf2:	89 7d f4             	mov    %edi,-0xc(%ebp)
40baf5:	8b 02                	mov    (%edx),%eax
40baf7:	8b 55 08             	mov    0x8(%ebp),%edx
40bafa:	8b 0a                	mov    (%edx),%ecx
40bafc:	eb 06                	jmp    0x40bb04
40bafe:	8b 75 f8             	mov    -0x8(%ebp),%esi
40bb01:	8b 7d f4             	mov    -0xc(%ebp),%edi
40bb04:	53                   	push   %ebx
40bb05:	50                   	push   %eax
40bb06:	51                   	push   %ecx
40bb07:	85 f6                	test   %esi,%esi
40bb09:	74 0a                	je     0x40bb15
40bb0b:	56                   	push   %esi
40bb0c:	57                   	push   %edi
40bb0d:	ff 15 54 00 41 00    	call   *0x410054
40bb13:	eb 07                	jmp    0x40bb1c
40bb15:	57                   	push   %edi
40bb16:	ff 15 60 00 41 00    	call   *0x410060
40bb1c:	8b f8                	mov    %eax,%edi
40bb1e:	33 f6                	xor    %esi,%esi
40bb20:	83 ff 01             	cmp    $0x1,%edi
40bb23:	74 49                	je     0x40bb6e
40bb25:	8b 45 0c             	mov    0xc(%ebp),%eax
40bb28:	39 30                	cmp    %esi,(%eax)
40bb2a:	75 42                	jne    0x40bb6e
40bb2c:	8b 45 08             	mov    0x8(%ebp),%eax
40bb2f:	39 30                	cmp    %esi,(%eax)
40bb31:	75 3b                	jne    0x40bb6e
40bb33:	ff 15 40 f0 40 00    	call   *0x40f040
40bb39:	83 f8 7a             	cmp    $0x7a,%eax
40bb3c:	75 30                	jne    0x40bb6e
40bb3e:	39 33                	cmp    %esi,(%ebx)
40bb40:	74 2c                	je     0x40bb6e
40bb42:	ff 33                	push   (%ebx)
40bb44:	56                   	push   %esi
40bb45:	ff 15 64 f0 40 00    	call   *0x40f064
40bb4b:	8b f0                	mov    %eax,%esi
40bb4d:	8b ce                	mov    %esi,%ecx
40bb4f:	85 f6                	test   %esi,%esi
40bb51:	74 1b                	je     0x40bb6e
40bb53:	8b 55 0c             	mov    0xc(%ebp),%edx
40bb56:	8b 03                	mov    (%ebx),%eax
40bb58:	89 02                	mov    %eax,(%edx)
40bb5a:	8b 55 08             	mov    0x8(%ebp),%edx
40bb5d:	89 32                	mov    %esi,(%edx)
40bb5f:	33 f6                	xor    %esi,%esi
40bb61:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bb64:	42                   	inc    %edx
40bb65:	89 55 fc             	mov    %edx,-0x4(%ebp)
40bb68:	66 83 fa 02          	cmp    $0x2,%dx
40bb6c:	72 90                	jb     0x40bafe
40bb6e:	56                   	push   %esi
40bb6f:	ff 15 68 f0 40 00    	call   *0x40f068
40bb75:	8b c7                	mov    %edi,%eax
40bb77:	5f                   	pop    %edi
40bb78:	5e                   	pop    %esi
40bb79:	5b                   	pop    %ebx
40bb7a:	c9                   	leave
40bb7b:	c2 0c 00             	ret    $0xc
40bb7e:	8b ff                	mov    %edi,%edi
40bb80:	55                   	push   %ebp
40bb81:	8b ec                	mov    %esp,%ebp
40bb83:	83 ec 64             	sub    $0x64,%esp
40bb86:	a1 04 e0 40 00       	mov    0x40e004,%eax
40bb8b:	33 c5                	xor    %ebp,%eax
40bb8d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bb90:	83 4d d0 ff          	orl    $0xffffffff,-0x30(%ebp)
40bb94:	8b 45 10             	mov    0x10(%ebp),%eax
40bb97:	53                   	push   %ebx
40bb98:	56                   	push   %esi
40bb99:	8b 75 08             	mov    0x8(%ebp),%esi
40bb9c:	83 cb ff             	or     $0xffffffff,%ebx
40bb9f:	57                   	push   %edi
40bba0:	33 ff                	xor    %edi,%edi
40bba2:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40bba5:	83 c9 ff             	or     $0xffffffff,%ecx
40bba8:	89 55 a0             	mov    %edx,-0x60(%ebp)
40bbab:	89 45 c0             	mov    %eax,-0x40(%ebp)
40bbae:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40bbb1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40bbb4:	89 7d a4             	mov    %edi,-0x5c(%ebp)
40bbb7:	89 7d a8             	mov    %edi,-0x58(%ebp)
40bbba:	89 7d bc             	mov    %edi,-0x44(%ebp)
40bbbd:	89 7d ac             	mov    %edi,-0x54(%ebp)