410989:	74 1a                	je     0x4109a5
41098b:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
410991:	74 0b                	je     0x41099e
410993:	2b cb                	sub    %ebx,%ecx
410995:	75 13                	jne    0x4109aa
410997:	0d 00 00 00 01       	or     $0x1000000,%eax
41099c:	eb 0c                	jmp    0x4109aa
41099e:	0d 00 00 00 03       	or     $0x3000000,%eax
4109a3:	eb 05                	jmp    0x4109aa
4109a5:	0d 00 00 00 02       	or     $0x2000000,%eax
4109aa:	8b c8                	mov    %eax,%ecx
4109ac:	33 c6                	xor    %esi,%eax
4109ae:	0b ce                	or     %esi,%ecx
4109b0:	a9 1f 03 08 00       	test   $0x8031f,%eax
4109b5:	74 06                	je     0x4109bd
4109b7:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
4109bd:	8b c1                	mov    %ecx,%eax
4109bf:	eb 02                	jmp    0x4109c3
4109c1:	8b c6                	mov    %esi,%eax
4109c3:	5f                   	pop    %edi
4109c4:	5e                   	pop    %esi
4109c5:	5b                   	pop    %ebx
4109c6:	c9                   	leave
4109c7:	c3                   	ret
4109c8:	8b ff                	mov    %edi,%edi
4109ca:	55                   	push   %ebp
4109cb:	8b ec                	mov    %esp,%ebp
4109cd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4109d0:	8b d1                	mov    %ecx,%edx
4109d2:	c1 ea 04             	shr    $0x4,%edx
4109d5:	83 e2 01             	and    $0x1,%edx
4109d8:	8b c2                	mov    %edx,%eax
4109da:	f6 c1 08             	test   $0x8,%cl
4109dd:	74 06                	je     0x4109e5
4109df:	83 ca 04             	or     $0x4,%edx
4109e2:	0f b7 c2             	movzwl %dx,%eax
4109e5:	f6 c1 04             	test   $0x4,%cl
4109e8:	74 03                	je     0x4109ed
4109ea:	83 c8 08             	or     $0x8,%eax
4109ed:	f6 c1 02             	test   $0x2,%cl
4109f0:	74 03                	je     0x4109f5
4109f2:	83 c8 10             	or     $0x10,%eax
4109f5:	f6 c1 01             	test   $0x1,%cl
4109f8:	74 03                	je     0x4109fd
4109fa:	83 c8 20             	or     $0x20,%eax
4109fd:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
410a03:	74 03                	je     0x410a08
410a05:	83 c8 02             	or     $0x2,%eax
410a08:	56                   	push   %esi
410a09:	8b d1                	mov    %ecx,%edx
410a0b:	be 00 03 00 00       	mov    $0x300,%esi
410a10:	57                   	push   %edi
410a11:	bf 00 02 00 00       	mov    $0x200,%edi
410a16:	23 d6                	and    %esi,%edx
410a18:	74 23                	je     0x410a3d
410a1a:	81 fa 00 01 00 00    	cmp    $0x100,%edx
410a20:	74 16                	je     0x410a38
410a22:	3b d7                	cmp    %edi,%edx
410a24:	74 0b                	je     0x410a31
410a26:	3b d6                	cmp    %esi,%edx
410a28:	75 13                	jne    0x410a3d
410a2a:	0d 00 0c 00 00       	or     $0xc00,%eax
410a2f:	eb 0c                	jmp    0x410a3d
410a31:	0d 00 08 00 00       	or     $0x800,%eax
410a36:	eb 05                	jmp    0x410a3d
410a38:	0d 00 04 00 00       	or     $0x400,%eax
410a3d:	8b d1                	mov    %ecx,%edx
410a3f:	81 e2 00 00 03 00    	and    $0x30000,%edx
410a45:	74 0c                	je     0x410a53
410a47:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
410a4d:	75 06                	jne    0x410a55
410a4f:	0b c7                	or     %edi,%eax
410a51:	eb 02                	jmp    0x410a55
410a53:	0b c6                	or     %esi,%eax
410a55:	5f                   	pop    %edi
410a56:	5e                   	pop    %esi
410a57:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
410a5d:	74 05                	je     0x410a64
410a5f:	0d 00 10 00 00       	or     $0x1000,%eax
410a64:	5d                   	pop    %ebp
410a65:	c3                   	ret
410a66:	8b ff                	mov    %edi,%edi
410a68:	55                   	push   %ebp
410a69:	8b ec                	mov    %esp,%ebp
410a6b:	53                   	push   %ebx
410a6c:	56                   	push   %esi
410a6d:	57                   	push   %edi
410a6e:	33 ff                	xor    %edi,%edi
410a70:	bb e3 00 00 00       	mov    $0xe3,%ebx
410a75:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
410a78:	99                   	cltd
410a79:	2b c2                	sub    %edx,%eax
410a7b:	8b f0                	mov    %eax,%esi
410a7d:	d1 fe                	sar    $1,%esi
410a7f:	6a 55                	push   $0x55
410a81:	ff 34 f5 20 c9 41 00 	push   0x41c920(,%esi,8)
410a88:	ff 75 08             	push   0x8(%ebp)
410a8b:	e8 92 0f 00 00       	call   0x411a22
410a90:	83 c4 0c             	add    $0xc,%esp
410a93:	85 c0                	test   %eax,%eax
410a95:	74 13                	je     0x410aaa
410a97:	79 05                	jns    0x410a9e
410a99:	8d 5e ff             	lea    -0x1(%esi),%ebx
410a9c:	eb 03                	jmp    0x410aa1
410a9e:	8d 7e 01             	lea    0x1(%esi),%edi
410aa1:	3b fb                	cmp    %ebx,%edi
410aa3:	7e d0                	jle    0x410a75
410aa5:	83 c8 ff             	or     $0xffffffff,%eax
410aa8:	eb 07                	jmp    0x410ab1
410aaa:	8b 04 f5 24 c9 41 00 	mov    0x41c924(,%esi,8),%eax
410ab1:	5f                   	pop    %edi
410ab2:	5e                   	pop    %esi
410ab3:	5b                   	pop    %ebx
410ab4:	5d                   	pop    %ebp
410ab5:	c3                   	ret
410ab6:	8b ff                	mov    %edi,%edi
410ab8:	55                   	push   %ebp
410ab9:	8b ec                	mov    %esp,%ebp
410abb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
410abf:	74 1d                	je     0x410ade
410ac1:	ff 75 08             	push   0x8(%ebp)
410ac4:	e8 9d ff ff ff       	call   0x410a66
410ac9:	59                   	pop    %ecx
410aca:	85 c0                	test   %eax,%eax
410acc:	78 10                	js     0x410ade
410ace:	3d e4 00 00 00       	cmp    $0xe4,%eax
410ad3:	73 09                	jae    0x410ade
410ad5:	8b 04 c5 00 b8 41 00 	mov    0x41b800(,%eax,8),%eax
410adc:	5d                   	pop    %ebp
410add:	c3                   	ret
410ade:	33 c0                	xor    %eax,%eax
410ae0:	5d                   	pop    %ebp
410ae1:	c3                   	ret
410ae2:	6a 0c                	push   $0xc
410ae4:	68 88 02 42 00       	push   $0x420288
410ae9:	e8 b2 33 ff ff       	call   0x403ea0
410aee:	33 f6                	xor    %esi,%esi
410af0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
410af3:	8b 45 08             	mov    0x8(%ebp),%eax
410af6:	ff 30                	push   (%eax)
410af8:	e8 82 eb ff ff       	call   0x40f67f
410afd:	59                   	pop    %ecx
410afe:	89 75 fc             	mov    %esi,-0x4(%ebp)
410b01:	8b 45 0c             	mov    0xc(%ebp),%eax
410b04:	8b 00                	mov    (%eax),%eax
410b06:	8b 38                	mov    (%eax),%edi
410b08:	8b d7                	mov    %edi,%edx
410b0a:	c1 fa 06             	sar    $0x6,%edx
410b0d:	8b c7                	mov    %edi,%eax
410b0f:	83 e0 3f             	and    $0x3f,%eax
410b12:	6b c8 38             	imul   $0x38,%eax,%ecx
410b15:	8b 04 95 a8 21 42 00 	mov    0x4221a8(,%edx,4),%eax
410b1c:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
410b21:	74 21                	je     0x410b44
410b23:	57                   	push   %edi
410b24:	e8 d2 ed ff ff       	call   0x40f8fb
410b29:	59                   	pop    %ecx
410b2a:	50                   	push   %eax
410b2b:	ff 15 30 91 41 00    	call   *0x419130
410b31:	85 c0                	test   %eax,%eax
410b33:	75 1d                	jne    0x410b52
410b35:	ff 15 28 90 41 00    	call   *0x419028
410b3b:	8b f0                	mov    %eax,%esi
410b3d:	e8 da 9b ff ff       	call   0x40a71c
410b42:	89 30                	mov    %esi,(%eax)
410b44:	e8 e6 9b ff ff       	call   0x40a72f
410b49:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
410b4f:	83 ce ff             	or     $0xffffffff,%esi
410b52:	89 75 e4             	mov    %esi,-0x1c(%ebp)
410b55:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
410b5c:	e8 17 00 00 00       	call   0x410b78
410b61:	8b c6                	mov    %esi,%eax
410b63:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410b66:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410b6d:	59                   	pop    %ecx
410b6e:	5f                   	pop    %edi
410b6f:	5e                   	pop    %esi
410b70:	5b                   	pop    %ebx
410b71:	c9                   	leave
410b72:	c2 0c 00             	ret    $0xc
410b75:	8b 75 e4             	mov    -0x1c(%ebp),%esi
410b78:	8b 4d 10             	mov    0x10(%ebp),%ecx
410b7b:	ff 31                	push   (%ecx)
410b7d:	e8 b2 eb ff ff       	call   0x40f734
410b82:	59                   	pop    %ecx
410b83:	c3                   	ret
410b84:	8b ff                	mov    %edi,%edi
410b86:	55                   	push   %ebp
410b87:	8b ec                	mov    %esp,%ebp
410b89:	83 ec 10             	sub    $0x10,%esp
410b8c:	56                   	push   %esi
410b8d:	8b 75 08             	mov    0x8(%ebp),%esi
410b90:	83 fe fe             	cmp    $0xfffffffe,%esi
410b93:	75 0d                	jne    0x410ba2
410b95:	e8 95 9b ff ff       	call   0x40a72f
410b9a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
410ba0:	eb 59                	jmp    0x410bfb
410ba2:	85 f6                	test   %esi,%esi
410ba4:	78 45                	js     0x410beb
410ba6:	3b 35 a8 23 42 00    	cmp    0x4223a8,%esi
410bac:	73 3d                	jae    0x410beb
410bae:	8b c6                	mov    %esi,%eax
410bb0:	8b d6                	mov    %esi,%edx
410bb2:	83 e0 3f             	and    $0x3f,%eax
410bb5:	c1 fa 06             	sar    $0x6,%edx
410bb8:	6b c8 38             	imul   $0x38,%eax,%ecx
410bbb:	8b 04 95 a8 21 42 00 	mov    0x4221a8(,%edx,4),%eax
410bc2:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
410bc7:	74 22                	je     0x410beb
410bc9:	8d 45 08             	lea    0x8(%ebp),%eax
410bcc:	89 75 f8             	mov    %esi,-0x8(%ebp)
410bcf:	89 45 f4             	mov    %eax,-0xc(%ebp)
410bd2:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410bd5:	8d 45 f8             	lea    -0x8(%ebp),%eax
410bd8:	89 75 f0             	mov    %esi,-0x10(%ebp)
410bdb:	50                   	push   %eax
410bdc:	8d 45 f4             	lea    -0xc(%ebp),%eax
410bdf:	50                   	push   %eax
410be0:	8d 45 f0             	lea    -0x10(%ebp),%eax
410be3:	50                   	push   %eax
410be4:	e8 f9 fe ff ff       	call   0x410ae2
410be9:	eb 13                	jmp    0x410bfe
410beb:	e8 3f 9b ff ff       	call   0x40a72f
410bf0:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
410bf6:	e8 ce 68 ff ff       	call   0x4074c9
410bfb:	83 c8 ff             	or     $0xffffffff,%eax
410bfe:	5e                   	pop    %esi
410bff:	c9                   	leave
410c00:	c3                   	ret
410c01:	8b ff                	mov    %edi,%edi
410c03:	55                   	push   %ebp
410c04:	8b ec                	mov    %esp,%ebp
410c06:	8b 4d 08             	mov    0x8(%ebp),%ecx
410c09:	83 f9 fe             	cmp    $0xfffffffe,%ecx
410c0c:	75 0d                	jne    0x410c1b
410c0e:	e8 1c 9b ff ff       	call   0x40a72f
410c13:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
410c19:	eb 38                	jmp    0x410c53
410c1b:	85 c9                	test   %ecx,%ecx
410c1d:	78 24                	js     0x410c43
410c1f:	3b 0d a8 23 42 00    	cmp    0x4223a8,%ecx
410c25:	73 1c                	jae    0x410c43
410c27:	8b c1                	mov    %ecx,%eax
410c29:	83 e1 3f             	and    $0x3f,%ecx
410c2c:	c1 e8 06             	shr    $0x6,%eax
410c2f:	6b c9 38             	imul   $0x38,%ecx,%ecx
410c32:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
410c39:	0f b6 44 08 28       	movzbl 0x28(%eax,%ecx,1),%eax
410c3e:	83 e0 40             	and    $0x40,%eax
410c41:	5d                   	pop    %ebp
410c42:	c3                   	ret
410c43:	e8 e7 9a ff ff       	call   0x40a72f
410c48:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
410c4e:	e8 76 68 ff ff       	call   0x4074c9
410c53:	33 c0                	xor    %eax,%eax
410c55:	5d                   	pop    %ebp
410c56:	c3                   	ret
410c57:	6a 18                	push   $0x18
410c59:	68 a8 02 42 00       	push   $0x4202a8
410c5e:	e8 3d 32 ff ff       	call   0x403ea0
410c63:	8b 5d 08             	mov    0x8(%ebp),%ebx
410c66:	83 fb fe             	cmp    $0xfffffffe,%ebx
410c69:	75 20                	jne    0x410c8b
410c6b:	8b 45 18             	mov    0x18(%ebp),%eax
410c6e:	c6 40 24 01          	movb   $0x1,0x24(%eax)
410c72:	83 60 20 00          	andl   $0x0,0x20(%eax)
410c76:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410c7a:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
410c81:	83 cf ff             	or     $0xffffffff,%edi
410c84:	8b d7                	mov    %edi,%edx
410c86:	e9 ce 00 00 00       	jmp    0x410d59
410c8b:	85 db                	test   %ebx,%ebx
410c8d:	78 0f                	js     0x410c9e
410c8f:	3b 1d a8 23 42 00    	cmp    0x4223a8,%ebx
410c95:	73 07                	jae    0x410c9e
410c97:	33 c0                	xor    %eax,%eax
410c99:	40                   	inc    %eax
410c9a:	33 f6                	xor    %esi,%esi
410c9c:	eb 04                	jmp    0x410ca2
410c9e:	33 f6                	xor    %esi,%esi
410ca0:	8b c6                	mov    %esi,%eax
410ca2:	85 c0                	test   %eax,%eax
410ca4:	75 25                	jne    0x410ccb
410ca6:	8b 45 18             	mov    0x18(%ebp),%eax
410ca9:	c6 40 24 01          	movb   $0x1,0x24(%eax)
410cad:	89 70 20             	mov    %esi,0x20(%eax)
410cb0:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410cb4:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
410cbb:	50                   	push   %eax
410cbc:	56                   	push   %esi
410cbd:	56                   	push   %esi
410cbe:	56                   	push   %esi
410cbf:	56                   	push   %esi
410cc0:	56                   	push   %esi
410cc1:	e8 86 67 ff ff       	call   0x40744c
410cc6:	83 c4 18             	add    $0x18,%esp
410cc9:	eb b6                	jmp    0x410c81
410ccb:	8b cb                	mov    %ebx,%ecx
410ccd:	c1 f9 06             	sar    $0x6,%ecx
410cd0:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
410cd3:	8b c3                	mov    %ebx,%eax
410cd5:	83 e0 3f             	and    $0x3f,%eax
410cd8:	6b d0 38             	imul   $0x38,%eax,%edx
410cdb:	89 55 e0             	mov    %edx,-0x20(%ebp)
410cde:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
410ce5:	f6 44 10 28 01       	testb  $0x1,0x28(%eax,%edx,1)
410cea:	74 ba                	je     0x410ca6
410cec:	53                   	push   %ebx
410ced:	e8 8d e9 ff ff       	call   0x40f67f
410cf2:	59                   	pop    %ecx
410cf3:	83 cf ff             	or     $0xffffffff,%edi
410cf6:	89 7d d8             	mov    %edi,-0x28(%ebp)
410cf9:	89 7d dc             	mov    %edi,-0x24(%ebp)
410cfc:	89 75 fc             	mov    %esi,-0x4(%ebp)
410cff:	8b 45 e4             	mov    -0x1c(%ebp),%eax
410d02:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
410d09:	8b 4d e0             	mov    -0x20(%ebp),%ecx
410d0c:	f6 44 01 28 01       	testb  $0x1,0x28(%ecx,%eax,1)
410d11:	75 19                	jne    0x410d2c
410d13:	8b 45 18             	mov    0x18(%ebp),%eax
410d16:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410d1a:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
410d21:	c6 40 24 01          	movb   $0x1,0x24(%eax)
410d25:	89 70 20             	mov    %esi,0x20(%eax)
410d28:	8b f7                	mov    %edi,%esi
410d2a:	eb 1f                	jmp    0x410d4b
410d2c:	ff 75 18             	push   0x18(%ebp)
410d2f:	ff 75 14             	push   0x14(%ebp)
410d32:	ff 75 10             	push   0x10(%ebp)
410d35:	ff 75 0c             	push   0xc(%ebp)
410d38:	53                   	push   %ebx
410d39:	e8 3e 00 00 00       	call   0x410d7c
410d3e:	83 c4 14             	add    $0x14,%esp
410d41:	8b f8                	mov    %eax,%edi
410d43:	89 7d d8             	mov    %edi,-0x28(%ebp)
410d46:	8b f2                	mov    %edx,%esi
410d48:	89 75 dc             	mov    %esi,-0x24(%ebp)
410d4b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
410d52:	e8 1d 00 00 00       	call   0x410d74
410d57:	8b d6                	mov    %esi,%edx
410d59:	8b c7                	mov    %edi,%eax
410d5b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
410d5e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410d65:	59                   	pop    %ecx
410d66:	5f                   	pop    %edi
410d67:	5e                   	pop    %esi
410d68:	5b                   	pop    %ebx
410d69:	c9                   	leave
410d6a:	c3                   	ret
410d6b:	8b 5d 08             	mov    0x8(%ebp),%ebx