40898c:	8d 55 f0             	lea    -0x10(%ebp),%edx
40898f:	b9 d5 02 00 00       	mov    $0x2d5,%ecx
408994:	e8 a8 5e 00 00       	call   0x40e841
408999:	b9 00 00 00 02       	mov    $0x2000000,%ecx
40899e:	8b c1                	mov    %ecx,%eax
4089a0:	d1 e8                	shr    $1,%eax
4089a2:	46                   	inc    %esi
4089a3:	84 c3                	test   %al,%bl
4089a5:	74 f9                	je     0x4089a0
4089a7:	ff 75 f0             	push   -0x10(%ebp)
4089aa:	51                   	push   %ecx
4089ab:	56                   	push   %esi
4089ac:	57                   	push   %edi
4089ad:	6a 04                	push   $0x4
4089af:	e8 36 5d 00 00       	call   0x40e6ea
4089b4:	83 c4 14             	add    $0x14,%esp
4089b7:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4089bb:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4089be:	ff 15 44 32 42 00    	call   *0x423244
4089c4:	e8 3d 3a 01 00       	call   0x41c406
4089c9:	c3                   	ret
4089ca:	8b ff                	mov    %edi,%edi
4089cc:	56                   	push   %esi
4089cd:	be 92 01 00 00       	mov    $0x192,%esi
4089d2:	33 c9                	xor    %ecx,%ecx
4089d4:	8b d6                	mov    %esi,%edx
4089d6:	e8 a9 5d 00 00       	call   0x40e784
4089db:	68 04 44 40 00       	push   $0x404404
4089e0:	ff 15 54 35 42 00    	call   *0x423554
4089e6:	59                   	pop    %ecx
4089e7:	8b d6                	mov    %esi,%edx
4089e9:	33 c9                	xor    %ecx,%ecx
4089eb:	e8 94 5d 00 00       	call   0x40e784
4089f0:	46                   	inc    %esi
4089f1:	81 fe 98 01 00 00    	cmp    $0x198,%esi
4089f7:	76 ee                	jbe    0x4089e7
4089f9:	ba 1b 02 00 00       	mov    $0x21b,%edx
4089fe:	33 c9                	xor    %ecx,%ecx
408a00:	e8 7f 5d 00 00       	call   0x40e784
408a05:	be 99 01 00 00       	mov    $0x199,%esi
408a0a:	8b d6                	mov    %esi,%edx
408a0c:	33 c9                	xor    %ecx,%ecx
408a0e:	e8 71 5d 00 00       	call   0x40e784
408a13:	46                   	inc    %esi
408a14:	81 fe b8 01 00 00    	cmp    $0x1b8,%esi
408a1a:	76 ee                	jbe    0x408a0a
408a1c:	be b9 01 00 00       	mov    $0x1b9,%esi
408a21:	8b d6                	mov    %esi,%edx
408a23:	33 c9                	xor    %ecx,%ecx
408a25:	e8 5a 5d 00 00       	call   0x40e784
408a2a:	46                   	inc    %esi
408a2b:	81 fe bc 01 00 00    	cmp    $0x1bc,%esi
408a31:	76 ee                	jbe    0x408a21
408a33:	33 c9                	xor    %ecx,%ecx
408a35:	e8 da f6 ff ff       	call   0x408114
408a3a:	be bd 01 00 00       	mov    $0x1bd,%esi
408a3f:	8b d6                	mov    %esi,%edx
408a41:	33 c9                	xor    %ecx,%ecx
408a43:	e8 3c 5d 00 00       	call   0x40e784
408a48:	46                   	inc    %esi
408a49:	81 fe c0 01 00 00    	cmp    $0x1c0,%esi
408a4f:	76 ee                	jbe    0x408a3f
408a51:	ba 13 02 00 00       	mov    $0x213,%edx
408a56:	33 c9                	xor    %ecx,%ecx
408a58:	e8 27 5d 00 00       	call   0x40e784
408a5d:	33 c9                	xor    %ecx,%ecx
408a5f:	41                   	inc    %ecx
408a60:	e8 af f6 ff ff       	call   0x408114
408a65:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
408a6c:	74 1f                	je     0x408a8d
408a6e:	be c1 01 00 00       	mov    $0x1c1,%esi
408a73:	8b d6                	mov    %esi,%edx
408a75:	33 c9                	xor    %ecx,%ecx
408a77:	e8 08 5d 00 00       	call   0x40e784
408a7c:	46                   	inc    %esi
408a7d:	81 fe c3 01 00 00    	cmp    $0x1c3,%esi
408a83:	76 ee                	jbe    0x408a73
408a85:	6a 02                	push   $0x2
408a87:	59                   	pop    %ecx
408a88:	e8 87 f6 ff ff       	call   0x408114
408a8d:	ba c4 01 00 00       	mov    $0x1c4,%edx
408a92:	33 c9                	xor    %ecx,%ecx
408a94:	e8 eb 5c 00 00       	call   0x40e784
408a99:	be 14 02 00 00       	mov    $0x214,%esi
408a9e:	8b d6                	mov    %esi,%edx
408aa0:	33 c9                	xor    %ecx,%ecx
408aa2:	e8 dd 5c 00 00       	call   0x40e784
408aa7:	46                   	inc    %esi
408aa8:	81 fe 1a 02 00 00    	cmp    $0x21a,%esi
408aae:	76 ee                	jbe    0x408a9e
408ab0:	be c5 01 00 00       	mov    $0x1c5,%esi
408ab5:	8b d6                	mov    %esi,%edx
408ab7:	33 c9                	xor    %ecx,%ecx
408ab9:	e8 c6 5c 00 00       	call   0x40e784
408abe:	46                   	inc    %esi
408abf:	81 fe d1 01 00 00    	cmp    $0x1d1,%esi
408ac5:	76 ee                	jbe    0x408ab5
408ac7:	be d3 01 00 00       	mov    $0x1d3,%esi
408acc:	8b d6                	mov    %esi,%edx
408ace:	33 c9                	xor    %ecx,%ecx
408ad0:	e8 af 5c 00 00       	call   0x40e784
408ad5:	46                   	inc    %esi
408ad6:	81 fe 0f 02 00 00    	cmp    $0x20f,%esi
408adc:	76 ee                	jbe    0x408acc
408ade:	83 3d 38 1f 42 00 00 	cmpl   $0x0,0x421f38
408ae5:	74 17                	je     0x408afe
408ae7:	be 10 02 00 00       	mov    $0x210,%esi
408aec:	8b d6                	mov    %esi,%edx
408aee:	33 c9                	xor    %ecx,%ecx
408af0:	e8 8f 5c 00 00       	call   0x40e784
408af5:	46                   	inc    %esi
408af6:	81 fe 12 02 00 00    	cmp    $0x212,%esi
408afc:	76 ee                	jbe    0x408aec
408afe:	5e                   	pop    %esi
408aff:	c3                   	ret
408b00:	8b ff                	mov    %edi,%edi
408b02:	55                   	push   %ebp
408b03:	8b ec                	mov    %esp,%ebp
408b05:	83 e4 f8             	and    $0xfffffff8,%esp
408b08:	83 ec 10             	sub    $0x10,%esp
408b0b:	56                   	push   %esi
408b0c:	57                   	push   %edi
408b0d:	8b f2                	mov    %edx,%esi
408b0f:	8d 44 24 10          	lea    0x10(%esp),%eax
408b13:	33 ff                	xor    %edi,%edi
408b15:	51                   	push   %ecx
408b16:	50                   	push   %eax
408b17:	89 3e                	mov    %edi,(%esi)
408b19:	89 7c 24 10          	mov    %edi,0x10(%esp)
408b1d:	89 7c 24 14          	mov    %edi,0x14(%esp)
408b21:	ff 15 e4 35 42 00    	call   *0x4235e4
408b27:	8d 44 24 08          	lea    0x8(%esp),%eax
408b2b:	50                   	push   %eax
408b2c:	57                   	push   %edi
408b2d:	6a ff                	push   $0xffffffff
408b2f:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
408b33:	e8 2f 00 00 00       	call   0x408b67
408b38:	85 c0                	test   %eax,%eax
408b3a:	74 25                	je     0x408b61
408b3c:	39 7c 24 0c          	cmp    %edi,0xc(%esp)
408b40:	77 0f                	ja     0x408b51
408b42:	8b 4c 24 08          	mov    0x8(%esp),%ecx
408b46:	72 05                	jb     0x408b4d
408b48:	83 f9 ff             	cmp    $0xffffffff,%ecx
408b4b:	77 04                	ja     0x408b51
408b4d:	8b d7                	mov    %edi,%edx
408b4f:	eb 08                	jmp    0x408b59
408b51:	ba 95 00 00 c0       	mov    $0xc0000095,%edx
408b56:	83 c9 ff             	or     $0xffffffff,%ecx
408b59:	89 0e                	mov    %ecx,(%esi)
408b5b:	85 d2                	test   %edx,%edx
408b5d:	79 02                	jns    0x408b61
408b5f:	8b c7                	mov    %edi,%eax
408b61:	5f                   	pop    %edi
408b62:	5e                   	pop    %esi
408b63:	8b e5                	mov    %ebp,%esp
408b65:	5d                   	pop    %ebp
408b66:	c3                   	ret
408b67:	8b ff                	mov    %edi,%edi
408b69:	55                   	push   %ebp
408b6a:	8b ec                	mov    %esp,%ebp
408b6c:	83 ec 24             	sub    $0x24,%esp
408b6f:	53                   	push   %ebx
408b70:	56                   	push   %esi
408b71:	8b f1                	mov    %ecx,%esi
408b73:	33 c9                	xor    %ecx,%ecx
408b75:	57                   	push   %edi
408b76:	89 75 f0             	mov    %esi,-0x10(%ebp)
408b79:	8b d9                	mov    %ecx,%ebx
408b7b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408b7e:	0f b7 06             	movzwl (%esi),%eax
408b81:	89 4d ec             	mov    %ecx,-0x14(%ebp)
408b84:	8b d0                	mov    %eax,%edx
408b86:	66 85 c0             	test   %ax,%ax
408b89:	0f 84 24 02 00 00    	je     0x408db3
408b8f:	a8 01                	test   $0x1,%al
408b91:	0f 85 1c 02 00 00    	jne    0x408db3
408b97:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
408b9b:	75 05                	jne    0x408ba2
408b9d:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
408ba0:	74 0f                	je     0x408bb1
408ba2:	8b 45 08             	mov    0x8(%ebp),%eax
408ba5:	23 45 0c             	and    0xc(%ebp),%eax
408ba8:	83 f8 ff             	cmp    $0xffffffff,%eax
408bab:	0f 85 02 02 00 00    	jne    0x408db3
408bb1:	8b 7e 04             	mov    0x4(%esi),%edi
408bb4:	8b f2                	mov    %edx,%esi
408bb6:	d1 ee                	shr    $1,%esi
408bb8:	6a 2d                	push   $0x2d
408bba:	5a                   	pop    %edx
408bbb:	74 18                	je     0x408bd5
408bbd:	0f b7 07             	movzwl (%edi),%eax
408bc0:	4e                   	dec    %esi
408bc1:	83 c7 02             	add    $0x2,%edi
408bc4:	89 45 e0             	mov    %eax,-0x20(%ebp)
408bc7:	83 f8 20             	cmp    $0x20,%eax
408bca:	77 12                	ja     0x408bde
408bcc:	85 f6                	test   %esi,%esi
408bce:	75 ed                	jne    0x408bbd
408bd0:	89 4d e0             	mov    %ecx,-0x20(%ebp)
408bd3:	eb 26                	jmp    0x408bfb
408bd5:	8b 45 dc             	mov    -0x24(%ebp),%eax
408bd8:	83 ce ff             	or     $0xffffffff,%esi
408bdb:	89 45 e0             	mov    %eax,-0x20(%ebp)
408bde:	0f b7 c8             	movzwl %ax,%ecx
408be1:	66 3b c2             	cmp    %dx,%ax
408be4:	74 06                	je     0x408bec
408be6:	66 83 f8 2b          	cmp    $0x2b,%ax
408bea:	75 0f                	jne    0x408bfb
408bec:	85 f6                	test   %esi,%esi
408bee:	74 09                	je     0x408bf9
408bf0:	0f b7 0f             	movzwl (%edi),%ecx
408bf3:	4e                   	dec    %esi
408bf4:	83 c7 02             	add    $0x2,%edi
408bf7:	eb 02                	jmp    0x408bfb
408bf9:	33 c9                	xor    %ecx,%ecx
408bfb:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
408bff:	8b d7                	mov    %edi,%edx
408c01:	c7 45 f8 0a 00 00 00 	movl   $0xa,-0x8(%ebp)
408c08:	8b de                	mov    %esi,%ebx
408c0a:	66 83 f9 30          	cmp    $0x30,%cx
408c0e:	75 5b                	jne    0x408c6b
408c10:	85 f6                	test   %esi,%esi
408c12:	74 55                	je     0x408c69
408c14:	0f b7 07             	movzwl (%edi),%eax
408c17:	4e                   	dec    %esi
408c18:	6a 02                	push   $0x2
408c1a:	59                   	pop    %ecx
408c1b:	03 f9                	add    %ecx,%edi
408c1d:	83 f8 78             	cmp    $0x78,%eax
408c20:	75 10                	jne    0x408c32
408c22:	c7 45 f8 10 00 00 00 	movl   $0x10,-0x8(%ebp)
408c29:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
408c30:	eb 2a                	jmp    0x408c5c
408c32:	83 f8 6f             	cmp    $0x6f,%eax
408c35:	75 10                	jne    0x408c47
408c37:	c7 45 f8 08 00 00 00 	movl   $0x8,-0x8(%ebp)
408c3e:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
408c45:	eb 15                	jmp    0x408c5c
408c47:	83 f8 62             	cmp    $0x62,%eax
408c4a:	75 0c                	jne    0x408c58
408c4c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408c4f:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
408c56:	eb 04                	jmp    0x408c5c
408c58:	8b f3                	mov    %ebx,%esi
408c5a:	8b fa                	mov    %edx,%edi
408c5c:	85 f6                	test   %esi,%esi
408c5e:	74 09                	je     0x408c69
408c60:	0f b7 0f             	movzwl (%edi),%ecx
408c63:	4e                   	dec    %esi
408c64:	83 c7 02             	add    $0x2,%edi
408c67:	eb 02                	jmp    0x408c6b
408c69:	33 c9                	xor    %ecx,%ecx
408c6b:	33 c0                	xor    %eax,%eax
408c6d:	33 db                	xor    %ebx,%ebx
408c6f:	89 45 fc             	mov    %eax,-0x4(%ebp)
408c72:	66 85 c9             	test   %cx,%cx
408c75:	0f 84 23 01 00 00    	je     0x408d9e
408c7b:	8d 41 d0             	lea    -0x30(%ecx),%eax
408c7e:	6a 05                	push   $0x5
408c80:	5a                   	pop    %edx
408c81:	66 83 f8 09          	cmp    $0x9,%ax
408c85:	77 09                	ja     0x408c90
408c87:	0f b7 c1             	movzwl %cx,%eax
408c8a:	99                   	cltd
408c8b:	83 c0 d0             	add    $0xffffffd0,%eax
408c8e:	eb 24                	jmp    0x408cb4
408c90:	8d 41 bf             	lea    -0x41(%ecx),%eax
408c93:	66 3b c2             	cmp    %dx,%ax
408c96:	77 09                	ja     0x408ca1
408c98:	0f b7 c1             	movzwl %cx,%eax
408c9b:	99                   	cltd
408c9c:	83 c0 c9             	add    $0xffffffc9,%eax
408c9f:	eb 13                	jmp    0x408cb4
408ca1:	8d 41 9f             	lea    -0x61(%ecx),%eax
408ca4:	66 3b c2             	cmp    %dx,%ax
408ca7:	0f 87 e8 00 00 00    	ja     0x408d95
408cad:	0f b7 c1             	movzwl %cx,%eax
408cb0:	99                   	cltd
408cb1:	83 c0 a9             	add    $0xffffffa9,%eax
408cb4:	8b ca                	mov    %edx,%ecx
408cb6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
408cb9:	83 d1 ff             	adc    $0xffffffff,%ecx
408cbc:	89 4d e8             	mov    %ecx,-0x18(%ebp)
408cbf:	85 c9                	test   %ecx,%ecx
408cc1:	0f 87 ce 00 00 00    	ja     0x408d95
408cc7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408cca:	72 08                	jb     0x408cd4
408ccc:	3b c1                	cmp    %ecx,%eax
408cce:	0f 83 c1 00 00 00    	jae    0x408d95
408cd4:	8b 45 f4             	mov    -0xc(%ebp),%eax
408cd7:	83 c8 00             	or     $0x0,%eax
408cda:	75 56                	jne    0x408d32
408cdc:	50                   	push   %eax
408cdd:	51                   	push   %ecx
408cde:	ff 75 0c             	push   0xc(%ebp)
408ce1:	ff 75 08             	push   0x8(%ebp)
408ce4:	e8 97 38 01 00       	call   0x41c580
408ce9:	8b c8                	mov    %eax,%ecx
408ceb:	3b da                	cmp    %edx,%ebx
408ced:	0f 87 81 00 00 00    	ja     0x408d74
408cf3:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cf6:	72 04                	jb     0x408cfc
408cf8:	3b c1                	cmp    %ecx,%eax
408cfa:	77 78                	ja     0x408d74
408cfc:	53                   	push   %ebx
408cfd:	50                   	push   %eax
408cfe:	6a 00                	push   $0x0
408d00:	ff 75 f8             	push   -0x8(%ebp)
408d03:	e8 18 38 01 00       	call   0x41c520
408d08:	8b 4d 08             	mov    0x8(%ebp),%ecx
408d0b:	89 55 dc             	mov    %edx,-0x24(%ebp)
408d0e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
408d11:	2b ca                	sub    %edx,%ecx
408d13:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408d16:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408d19:	1b 4d e8             	sbb    -0x18(%ebp),%ecx
408d1c:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
408d1f:	77 53                	ja     0x408d74
408d21:	72 05                	jb     0x408d28
408d23:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
408d26:	77 4c                	ja     0x408d74
408d28:	8b 5d dc             	mov    -0x24(%ebp),%ebx
408d2b:	03 c2                	add    %edx,%eax
408d2d:	13 5d e8             	adc    -0x18(%ebp),%ebx
408d30:	eb 2f                	jmp    0x408d61
408d32:	8b 45 08             	mov    0x8(%ebp),%eax
408d35:	8b 55 0c             	mov    0xc(%ebp),%edx
408d38:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408d3b:	e8 b0 38 01 00       	call   0x41c5f0
408d40:	8b c8                	mov    %eax,%ecx
408d42:	3b da                	cmp    %edx,%ebx
408d44:	77 2e                	ja     0x408d74
408d46:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d49:	72 04                	jb     0x408d4f
408d4b:	3b c1                	cmp    %ecx,%eax
408d4d:	77 25                	ja     0x408d74
408d4f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408d52:	8b d3                	mov    %ebx,%edx
408d54:	e8 07 38 01 00       	call   0x41c560
408d59:	0b 45 e4             	or     -0x1c(%ebp),%eax
408d5c:	8b da                	mov    %edx,%ebx
408d5e:	0b 5d e8             	or     -0x18(%ebp),%ebx
408d61:	89 45 fc             	mov    %eax,-0x4(%ebp)
408d64:	85 f6                	test   %esi,%esi
408d66:	74 36                	je     0x408d9e
408d68:	0f b7 0f             	movzwl (%edi),%ecx
408d6b:	4e                   	dec    %esi
408d6c:	83 c7 02             	add    $0x2,%edi
408d6f:	e9 fe fe ff ff       	jmp    0x408c72