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
410d6e:	8b 7d d8             	mov    -0x28(%ebp),%edi
410d71:	8b 75 dc             	mov    -0x24(%ebp),%esi
410d74:	53                   	push   %ebx
410d75:	e8 ba e9 ff ff       	call   0x40f734
410d7a:	59                   	pop    %ecx
410d7b:	c3                   	ret
410d7c:	8b ff                	mov    %edi,%edi
410d7e:	55                   	push   %ebp
410d7f:	8b ec                	mov    %esp,%ebp
410d81:	51                   	push   %ecx
410d82:	51                   	push   %ecx
410d83:	56                   	push   %esi
410d84:	8b 75 08             	mov    0x8(%ebp),%esi
410d87:	57                   	push   %edi
410d88:	56                   	push   %esi
410d89:	e8 6d eb ff ff       	call   0x40f8fb
410d8e:	83 cf ff             	or     $0xffffffff,%edi
410d91:	59                   	pop    %ecx
410d92:	3b c7                	cmp    %edi,%eax
410d94:	75 14                	jne    0x410daa
410d96:	8b 45 18             	mov    0x18(%ebp),%eax
410d99:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410d9d:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
410da4:	8b c7                	mov    %edi,%eax
410da6:	8b d7                	mov    %edi,%edx
410da8:	eb 51                	jmp    0x410dfb
410daa:	ff 75 14             	push   0x14(%ebp)
410dad:	8d 4d f8             	lea    -0x8(%ebp),%ecx
410db0:	51                   	push   %ecx
410db1:	ff 75 10             	push   0x10(%ebp)
410db4:	ff 75 0c             	push   0xc(%ebp)
410db7:	50                   	push   %eax
410db8:	ff 15 f0 90 41 00    	call   *0x4190f0
410dbe:	85 c0                	test   %eax,%eax
410dc0:	75 13                	jne    0x410dd5
410dc2:	ff 75 18             	push   0x18(%ebp)
410dc5:	ff 15 28 90 41 00    	call   *0x419028
410dcb:	50                   	push   %eax
410dcc:	e8 27 99 ff ff       	call   0x40a6f8
410dd1:	59                   	pop    %ecx
410dd2:	59                   	pop    %ecx
410dd3:	eb cf                	jmp    0x410da4
410dd5:	8b 45 f8             	mov    -0x8(%ebp),%eax
410dd8:	8b 55 fc             	mov    -0x4(%ebp),%edx
410ddb:	23 c2                	and    %edx,%eax
410ddd:	3b c7                	cmp    %edi,%eax
410ddf:	74 c3                	je     0x410da4
410de1:	8b 45 f8             	mov    -0x8(%ebp),%eax
410de4:	8b ce                	mov    %esi,%ecx
410de6:	83 e6 3f             	and    $0x3f,%esi
410de9:	c1 f9 06             	sar    $0x6,%ecx
410dec:	6b f6 38             	imul   $0x38,%esi,%esi
410def:	8b 0c 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%ecx
410df6:	80 64 31 28 fd       	andb   $0xfd,0x28(%ecx,%esi,1)
410dfb:	5f                   	pop    %edi
410dfc:	5e                   	pop    %esi
410dfd:	c9                   	leave
410dfe:	c3                   	ret
410dff:	8b ff                	mov    %edi,%edi
410e01:	55                   	push   %ebp
410e02:	8b ec                	mov    %esp,%ebp
410e04:	83 ec 28             	sub    $0x28,%esp
410e07:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e0a:	56                   	push   %esi
410e0b:	57                   	push   %edi
410e0c:	6a 00                	push   $0x0
410e0e:	e8 57 59 ff ff       	call   0x40676a
410e13:	8d 45 d8             	lea    -0x28(%ebp),%eax
410e16:	50                   	push   %eax
410e17:	ff 75 14             	push   0x14(%ebp)
410e1a:	ff 75 10             	push   0x10(%ebp)
410e1d:	ff 75 0c             	push   0xc(%ebp)
410e20:	ff 75 08             	push   0x8(%ebp)
410e23:	e8 2f fe ff ff       	call   0x410c57
410e28:	83 c4 14             	add    $0x14,%esp
410e2b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e2e:	8b f0                	mov    %eax,%esi
410e30:	8b fa                	mov    %edx,%edi
410e32:	e8 7b 59 ff ff       	call   0x4067b2
410e37:	8b d7                	mov    %edi,%edx
410e39:	8b c6                	mov    %esi,%eax
410e3b:	5f                   	pop    %edi
410e3c:	5e                   	pop    %esi
410e3d:	c9                   	leave
410e3e:	c3                   	ret
410e3f:	8b ff                	mov    %edi,%edi
410e41:	55                   	push   %ebp
410e42:	8b ec                	mov    %esp,%ebp
410e44:	83 ec 28             	sub    $0x28,%esp
410e47:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e4a:	56                   	push   %esi
410e4b:	57                   	push   %edi
410e4c:	6a 00                	push   $0x0
410e4e:	e8 17 59 ff ff       	call   0x40676a
410e53:	8d 45 d8             	lea    -0x28(%ebp),%eax
410e56:	50                   	push   %eax
410e57:	ff 75 14             	push   0x14(%ebp)
410e5a:	ff 75 10             	push   0x10(%ebp)
410e5d:	ff 75 0c             	push   0xc(%ebp)
410e60:	ff 75 08             	push   0x8(%ebp)
410e63:	e8 14 ff ff ff       	call   0x410d7c
410e68:	83 c4 14             	add    $0x14,%esp
410e6b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410e6e:	8b f0                	mov    %eax,%esi
410e70:	8b fa                	mov    %edx,%edi
410e72:	e8 3b 59 ff ff       	call   0x4067b2
410e77:	8b d7                	mov    %edi,%edx
410e79:	8b c6                	mov    %esi,%eax
410e7b:	5f                   	pop    %edi
410e7c:	5e                   	pop    %esi
410e7d:	c9                   	leave
410e7e:	c3                   	ret
410e7f:	8b ff                	mov    %edi,%edi
410e81:	55                   	push   %ebp
410e82:	8b ec                	mov    %esp,%ebp
410e84:	ff 75 18             	push   0x18(%ebp)
410e87:	ff 75 14             	push   0x14(%ebp)
410e8a:	ff 75 10             	push   0x10(%ebp)
410e8d:	ff 75 0c             	push   0xc(%ebp)
410e90:	ff 75 08             	push   0x8(%ebp)
410e93:	e8 e4 fe ff ff       	call   0x410d7c
410e98:	83 c4 14             	add    $0x14,%esp
410e9b:	5d                   	pop    %ebp
410e9c:	c3                   	ret
410e9d:	8b ff                	mov    %edi,%edi
410e9f:	55                   	push   %ebp
410ea0:	8b ec                	mov    %esp,%ebp
410ea2:	8b 4d 08             	mov    0x8(%ebp),%ecx
410ea5:	80 39 00             	cmpb   $0x0,(%ecx)
410ea8:	75 05                	jne    0x410eaf
410eaa:	33 c0                	xor    %eax,%eax
410eac:	40                   	inc    %eax
410ead:	eb 16                	jmp    0x410ec5
410eaf:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
410eb3:	75 05                	jne    0x410eba
410eb5:	6a 02                	push   $0x2
410eb7:	58                   	pop    %eax
410eb8:	eb 0b                	jmp    0x410ec5
410eba:	33 c0                	xor    %eax,%eax
410ebc:	38 41 02             	cmp    %al,0x2(%ecx)
410ebf:	0f 95 c0             	setne  %al
410ec2:	83 c0 03             	add    $0x3,%eax
410ec5:	5d                   	pop    %ebp
410ec6:	c2 04 00             	ret    $0x4
410ec9:	8b ff                	mov    %edi,%edi
410ecb:	55                   	push   %ebp
410ecc:	8b ec                	mov    %esp,%ebp
410ece:	51                   	push   %ecx
410ecf:	ff 75 18             	push   0x18(%ebp)
410ed2:	8d 45 fc             	lea    -0x4(%ebp),%eax
410ed5:	ff 75 14             	push   0x14(%ebp)
410ed8:	ff 75 10             	push   0x10(%ebp)
410edb:	ff 75 0c             	push   0xc(%ebp)
410ede:	50                   	push   %eax
410edf:	e8 60 42 00 00       	call   0x415144
410ee4:	8b d0                	mov    %eax,%edx
410ee6:	83 c4 14             	add    $0x14,%esp
410ee9:	83 fa 04             	cmp    $0x4,%edx
410eec:	77 1a                	ja     0x410f08
410eee:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410ef1:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
410ef7:	76 05                	jbe    0x410efe
410ef9:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
410efe:	8b 45 08             	mov    0x8(%ebp),%eax
410f01:	85 c0                	test   %eax,%eax
410f03:	74 03                	je     0x410f08
410f05:	66 89 08             	mov    %cx,(%eax)
410f08:	8b c2                	mov    %edx,%eax
410f0a:	c9                   	leave
410f0b:	c3                   	ret
410f0c:	8b ff                	mov    %edi,%edi
410f0e:	55                   	push   %ebp
410f0f:	8b ec                	mov    %esp,%ebp
410f11:	51                   	push   %ecx
410f12:	51                   	push   %ecx