410bed:	33 ff                	xor    %edi,%edi
410bef:	89 7d e4             	mov    %edi,-0x1c(%ebp)
410bf2:	83 fe e0             	cmp    $0xffffffe0,%esi
410bf5:	0f 87 8a 01 00 00    	ja     0x410d85
410bfb:	6a 04                	push   $0x4
410bfd:	e8 15 bf ff ff       	call   0x40cb17
410c02:	59                   	pop    %ecx
410c03:	89 7d fc             	mov    %edi,-0x4(%ebp)
410c06:	53                   	push   %ebx
410c07:	e8 84 bf ff ff       	call   0x40cb90
410c0c:	59                   	pop    %ecx
410c0d:	89 45 e0             	mov    %eax,-0x20(%ebp)
410c10:	3b c7                	cmp    %edi,%eax
410c12:	0f 84 9e 00 00 00    	je     0x410cb6
410c18:	3b 35 e0 e5 41 00    	cmp    0x41e5e0,%esi
410c1e:	77 49                	ja     0x410c69
410c20:	56                   	push   %esi
410c21:	53                   	push   %ebx
410c22:	50                   	push   %eax
410c23:	e8 5d c4 ff ff       	call   0x40d085
410c28:	83 c4 0c             	add    $0xc,%esp
410c2b:	85 c0                	test   %eax,%eax
410c2d:	74 05                	je     0x410c34
410c2f:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
410c32:	eb 35                	jmp    0x410c69
410c34:	56                   	push   %esi
410c35:	e8 2a c7 ff ff       	call   0x40d364
410c3a:	59                   	pop    %ecx
410c3b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
410c3e:	3b c7                	cmp    %edi,%eax
410c40:	74 27                	je     0x410c69
410c42:	8b 43 fc             	mov    -0x4(%ebx),%eax
410c45:	48                   	dec    %eax
410c46:	3b c6                	cmp    %esi,%eax
410c48:	72 02                	jb     0x410c4c
410c4a:	8b c6                	mov    %esi,%eax
410c4c:	50                   	push   %eax
410c4d:	53                   	push   %ebx
410c4e:	ff 75 e4             	push   -0x1c(%ebp)
410c51:	e8 7a 4f ff ff       	call   0x405bd0
410c56:	53                   	push   %ebx
410c57:	e8 34 bf ff ff       	call   0x40cb90
410c5c:	89 45 e0             	mov    %eax,-0x20(%ebp)
410c5f:	53                   	push   %ebx
410c60:	50                   	push   %eax
410c61:	e8 55 bf ff ff       	call   0x40cbbb
410c66:	83 c4 18             	add    $0x18,%esp
410c69:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
410c6c:	75 48                	jne    0x410cb6
410c6e:	3b f7                	cmp    %edi,%esi
410c70:	75 06                	jne    0x410c78
410c72:	33 f6                	xor    %esi,%esi
410c74:	46                   	inc    %esi
410c75:	89 75 0c             	mov    %esi,0xc(%ebp)
410c78:	83 c6 0f             	add    $0xf,%esi
410c7b:	83 e6 f0             	and    $0xfffffff0,%esi
410c7e:	89 75 0c             	mov    %esi,0xc(%ebp)
410c81:	56                   	push   %esi
410c82:	57                   	push   %edi
410c83:	ff 35 5c dd 41 00    	push   0x41dd5c
410c89:	ff 15 c0 70 41 00    	call   *0x4170c0
410c8f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
410c92:	3b c7                	cmp    %edi,%eax
410c94:	74 20                	je     0x410cb6
410c96:	8b 43 fc             	mov    -0x4(%ebx),%eax
410c99:	48                   	dec    %eax
410c9a:	3b c6                	cmp    %esi,%eax
410c9c:	72 02                	jb     0x410ca0
410c9e:	8b c6                	mov    %esi,%eax
410ca0:	50                   	push   %eax
410ca1:	53                   	push   %ebx
410ca2:	ff 75 e4             	push   -0x1c(%ebp)
410ca5:	e8 26 4f ff ff       	call   0x405bd0
410caa:	53                   	push   %ebx
410cab:	ff 75 e0             	push   -0x20(%ebp)
410cae:	e8 08 bf ff ff       	call   0x40cbbb
410cb3:	83 c4 14             	add    $0x14,%esp
410cb6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
410cbd:	e8 2e 00 00 00       	call   0x410cf0
410cc2:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
410cc6:	75 31                	jne    0x410cf9
410cc8:	85 f6                	test   %esi,%esi
410cca:	75 01                	jne    0x410ccd
410ccc:	46                   	inc    %esi
410ccd:	83 c6 0f             	add    $0xf,%esi
410cd0:	83 e6 f0             	and    $0xfffffff0,%esi
410cd3:	89 75 0c             	mov    %esi,0xc(%ebp)
410cd6:	56                   	push   %esi
410cd7:	53                   	push   %ebx
410cd8:	6a 00                	push   $0x0
410cda:	ff 35 5c dd 41 00    	push   0x41dd5c
410ce0:	ff 15 18 71 41 00    	call   *0x417118
410ce6:	8b f8                	mov    %eax,%edi
410ce8:	eb 12                	jmp    0x410cfc
410cea:	8b 75 0c             	mov    0xc(%ebp),%esi
410ced:	8b 5d 08             	mov    0x8(%ebp),%ebx
410cf0:	6a 04                	push   $0x4
410cf2:	e8 48 bd ff ff       	call   0x40ca3f
410cf7:	59                   	pop    %ecx
410cf8:	c3                   	ret
410cf9:	8b 7d e4             	mov    -0x1c(%ebp),%edi
410cfc:	85 ff                	test   %edi,%edi
410cfe:	0f 85 bf 00 00 00    	jne    0x410dc3
410d04:	39 3d 88 e3 41 00    	cmp    %edi,0x41e388
410d0a:	74 2c                	je     0x410d38
410d0c:	56                   	push   %esi
410d0d:	e8 f1 b4 ff ff       	call   0x40c203
410d12:	59                   	pop    %ecx
410d13:	85 c0                	test   %eax,%eax
410d15:	0f 85 d2 fe ff ff    	jne    0x410bed
410d1b:	e8 da 86 ff ff       	call   0x4093fa
410d20:	39 7d e0             	cmp    %edi,-0x20(%ebp)
410d23:	75 6c                	jne    0x410d91
410d25:	8b f0                	mov    %eax,%esi
410d27:	ff 15 b0 70 41 00    	call   *0x4170b0
410d2d:	50                   	push   %eax
410d2e:	e8 8c 86 ff ff       	call   0x4093bf
410d33:	59                   	pop    %ecx
410d34:	89 06                	mov    %eax,(%esi)
410d36:	eb 5f                	jmp    0x410d97
410d38:	85 ff                	test   %edi,%edi
410d3a:	0f 85 83 00 00 00    	jne    0x410dc3
410d40:	e8 b5 86 ff ff       	call   0x4093fa
410d45:	39 7d e0             	cmp    %edi,-0x20(%ebp)
410d48:	74 68                	je     0x410db2
410d4a:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
410d50:	eb 71                	jmp    0x410dc3
410d52:	85 f6                	test   %esi,%esi
410d54:	75 01                	jne    0x410d57
410d56:	46                   	inc    %esi
410d57:	56                   	push   %esi
410d58:	53                   	push   %ebx
410d59:	6a 00                	push   $0x0
410d5b:	ff 35 5c dd 41 00    	push   0x41dd5c
410d61:	ff 15 18 71 41 00    	call   *0x417118
410d67:	8b f8                	mov    %eax,%edi
410d69:	85 ff                	test   %edi,%edi
410d6b:	75 56                	jne    0x410dc3
410d6d:	39 05 88 e3 41 00    	cmp    %eax,0x41e388
410d73:	74 34                	je     0x410da9
410d75:	56                   	push   %esi
410d76:	e8 88 b4 ff ff       	call   0x40c203
410d7b:	59                   	pop    %ecx
410d7c:	85 c0                	test   %eax,%eax
410d7e:	74 1f                	je     0x410d9f
410d80:	83 fe e0             	cmp    $0xffffffe0,%esi
410d83:	76 cd                	jbe    0x410d52
410d85:	56                   	push   %esi
410d86:	e8 78 b4 ff ff       	call   0x40c203
410d8b:	59                   	pop    %ecx
410d8c:	e8 69 86 ff ff       	call   0x4093fa
410d91:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
410d97:	33 c0                	xor    %eax,%eax
410d99:	e8 ef c8 ff ff       	call   0x40d68d
410d9e:	c3                   	ret
410d9f:	e8 56 86 ff ff       	call   0x4093fa
410da4:	e9 7c ff ff ff       	jmp    0x410d25
410da9:	85 ff                	test   %edi,%edi
410dab:	75 16                	jne    0x410dc3
410dad:	e8 48 86 ff ff       	call   0x4093fa
410db2:	8b f0                	mov    %eax,%esi
410db4:	ff 15 b0 70 41 00    	call   *0x4170b0
410dba:	50                   	push   %eax
410dbb:	e8 ff 85 ff ff       	call   0x4093bf
410dc0:	89 06                	mov    %eax,(%esi)
410dc2:	59                   	pop    %ecx
410dc3:	8b c7                	mov    %edi,%eax
410dc5:	eb d2                	jmp    0x410d99
410dc7:	55                   	push   %ebp
410dc8:	8b ec                	mov    %esp,%ebp
410dca:	83 ec 10             	sub    $0x10,%esp
410dcd:	85 f6                	test   %esi,%esi
410dcf:	0f b7 48 42          	movzwl 0x42(%eax),%ecx
410dd3:	0f b7 50 44          	movzwl 0x44(%eax),%edx
410dd7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410dda:	89 55 f8             	mov    %edx,-0x8(%ebp)
410ddd:	75 05                	jne    0x410de4
410ddf:	83 c8 ff             	or     $0xffffffff,%eax
410de2:	c9                   	leave
410de3:	c3                   	ret
410de4:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
410de8:	53                   	push   %ebx
410de9:	57                   	push   %edi
410dea:	89 45 f0             	mov    %eax,-0x10(%ebp)
410ded:	8d 46 04             	lea    0x4(%esi),%eax
410df0:	50                   	push   %eax
410df1:	6a 31                	push   $0x31
410df3:	51                   	push   %ecx
410df4:	33 db                	xor    %ebx,%ebx
410df6:	43                   	inc    %ebx
410df7:	8d 45 f0             	lea    -0x10(%ebp),%eax
410dfa:	53                   	push   %ebx
410dfb:	50                   	push   %eax
410dfc:	e8 29 fb ff ff       	call   0x41092a
410e01:	8b f8                	mov    %eax,%edi
410e03:	8d 46 08             	lea    0x8(%esi),%eax
410e06:	50                   	push   %eax
410e07:	6a 32                	push   $0x32
410e09:	ff 75 fc             	push   -0x4(%ebp)
410e0c:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e0f:	53                   	push   %ebx
410e10:	50                   	push   %eax
410e11:	e8 14 fb ff ff       	call   0x41092a
410e16:	0b f8                	or     %eax,%edi
410e18:	8d 46 0c             	lea    0xc(%esi),%eax
410e1b:	50                   	push   %eax
410e1c:	6a 33                	push   $0x33
410e1e:	ff 75 fc             	push   -0x4(%ebp)
410e21:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e24:	53                   	push   %ebx
410e25:	50                   	push   %eax
410e26:	e8 ff fa ff ff       	call   0x41092a
410e2b:	0b f8                	or     %eax,%edi
410e2d:	8d 46 10             	lea    0x10(%esi),%eax
410e30:	50                   	push   %eax
410e31:	6a 34                	push   $0x34
410e33:	ff 75 fc             	push   -0x4(%ebp)
410e36:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e39:	53                   	push   %ebx
410e3a:	50                   	push   %eax
410e3b:	e8 ea fa ff ff       	call   0x41092a
410e40:	83 c4 50             	add    $0x50,%esp
410e43:	0b f8                	or     %eax,%edi
410e45:	8d 46 14             	lea    0x14(%esi),%eax
410e48:	50                   	push   %eax
410e49:	6a 35                	push   $0x35
410e4b:	ff 75 fc             	push   -0x4(%ebp)
410e4e:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e51:	53                   	push   %ebx
410e52:	50                   	push   %eax
410e53:	e8 d2 fa ff ff       	call   0x41092a
410e58:	0b f8                	or     %eax,%edi
410e5a:	8d 46 18             	lea    0x18(%esi),%eax
410e5d:	50                   	push   %eax
410e5e:	6a 36                	push   $0x36
410e60:	ff 75 fc             	push   -0x4(%ebp)
410e63:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e66:	53                   	push   %ebx
410e67:	50                   	push   %eax
410e68:	e8 bd fa ff ff       	call   0x41092a
410e6d:	56                   	push   %esi
410e6e:	6a 37                	push   $0x37
410e70:	ff 75 fc             	push   -0x4(%ebp)
410e73:	0b f8                	or     %eax,%edi
410e75:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e78:	53                   	push   %ebx
410e79:	50                   	push   %eax
410e7a:	e8 ab fa ff ff       	call   0x41092a
410e7f:	0b f8                	or     %eax,%edi
410e81:	8d 46 20             	lea    0x20(%esi),%eax
410e84:	50                   	push   %eax
410e85:	6a 2a                	push   $0x2a
410e87:	ff 75 fc             	push   -0x4(%ebp)
410e8a:	8d 45 f0             	lea    -0x10(%ebp),%eax
410e8d:	53                   	push   %ebx
410e8e:	50                   	push   %eax
410e8f:	e8 96 fa ff ff       	call   0x41092a
410e94:	83 c4 50             	add    $0x50,%esp
410e97:	0b f8                	or     %eax,%edi
410e99:	8d 46 24             	lea    0x24(%esi),%eax
410e9c:	50                   	push   %eax
410e9d:	6a 2b                	push   $0x2b
410e9f:	ff 75 fc             	push   -0x4(%ebp)
410ea2:	8d 45 f0             	lea    -0x10(%ebp),%eax
410ea5:	53                   	push   %ebx
410ea6:	50                   	push   %eax
410ea7:	e8 7e fa ff ff       	call   0x41092a
410eac:	0b f8                	or     %eax,%edi
410eae:	8d 46 28             	lea    0x28(%esi),%eax
410eb1:	50                   	push   %eax
410eb2:	6a 2c                	push   $0x2c
410eb4:	ff 75 fc             	push   -0x4(%ebp)
410eb7:	8d 45 f0             	lea    -0x10(%ebp),%eax
410eba:	53                   	push   %ebx
410ebb:	50                   	push   %eax
410ebc:	e8 69 fa ff ff       	call   0x41092a
410ec1:	0b f8                	or     %eax,%edi
410ec3:	8d 46 2c             	lea    0x2c(%esi),%eax
410ec6:	50                   	push   %eax
410ec7:	6a 2d                	push   $0x2d
410ec9:	ff 75 fc             	push   -0x4(%ebp)
410ecc:	8d 45 f0             	lea    -0x10(%ebp),%eax
410ecf:	53                   	push   %ebx
410ed0:	50                   	push   %eax
410ed1:	e8 54 fa ff ff       	call   0x41092a
410ed6:	0b f8                	or     %eax,%edi
410ed8:	8d 46 30             	lea    0x30(%esi),%eax
410edb:	50                   	push   %eax
410edc:	6a 2e                	push   $0x2e
410ede:	ff 75 fc             	push   -0x4(%ebp)
410ee1:	8d 45 f0             	lea    -0x10(%ebp),%eax
410ee4:	53                   	push   %ebx
410ee5:	50                   	push   %eax
410ee6:	e8 3f fa ff ff       	call   0x41092a
410eeb:	83 c4 50             	add    $0x50,%esp
410eee:	0b f8                	or     %eax,%edi
410ef0:	8d 46 34             	lea    0x34(%esi),%eax
410ef3:	50                   	push   %eax
410ef4:	6a 2f                	push   $0x2f
410ef6:	ff 75 fc             	push   -0x4(%ebp)
410ef9:	8d 45 f0             	lea    -0x10(%ebp),%eax
410efc:	53                   	push   %ebx
410efd:	50                   	push   %eax
410efe:	e8 27 fa ff ff       	call   0x41092a
410f03:	0b f8                	or     %eax,%edi
410f05:	8d 46 1c             	lea    0x1c(%esi),%eax
410f08:	50                   	push   %eax
410f09:	6a 30                	push   $0x30
410f0b:	ff 75 fc             	push   -0x4(%ebp)
410f0e:	8d 45 f0             	lea    -0x10(%ebp),%eax
410f11:	53                   	push   %ebx
410f12:	50                   	push   %eax
410f13:	e8 12 fa ff ff       	call   0x41092a
410f18:	0b f8                	or     %eax,%edi
410f1a:	8d 46 38             	lea    0x38(%esi),%eax
410f1d:	50                   	push   %eax
410f1e:	6a 44                	push   $0x44
410f20:	ff 75 fc             	push   -0x4(%ebp)
410f23:	8d 45 f0             	lea    -0x10(%ebp),%eax
410f26:	53                   	push   %ebx
410f27:	50                   	push   %eax
410f28:	e8 fd f9 ff ff       	call   0x41092a
410f2d:	0b f8                	or     %eax,%edi
410f2f:	8d 46 3c             	lea    0x3c(%esi),%eax
410f32:	50                   	push   %eax
410f33:	6a 45                	push   $0x45
410f35:	ff 75 fc             	push   -0x4(%ebp)
410f38:	8d 45 f0             	lea    -0x10(%ebp),%eax
410f3b:	53                   	push   %ebx
410f3c:	50                   	push   %eax
410f3d:	e8 e8 f9 ff ff       	call   0x41092a
410f42:	83 c4 50             	add    $0x50,%esp
410f45:	0b f8                	or     %eax,%edi
410f47:	8d 46 40             	lea    0x40(%esi),%eax
410f4a:	50                   	push   %eax
410f4b:	6a 46                	push   $0x46
410f4d:	ff 75 fc             	push   -0x4(%ebp)
410f50:	8d 45 f0             	lea    -0x10(%ebp),%eax
410f53:	53                   	push   %ebx
410f54:	50                   	push   %eax
410f55:	e8 d0 f9 ff ff       	call   0x41092a
410f5a:	0b f8                	or     %eax,%edi
410f5c:	8d 46 44             	lea    0x44(%esi),%eax
410f5f:	50                   	push   %eax
410f60:	6a 47                	push   $0x47
410f62:	ff 75 fc             	push   -0x4(%ebp)
410f65:	8d 45 f0             	lea    -0x10(%ebp),%eax
410f68:	53                   	push   %ebx
410f69:	50                   	push   %eax
410f6a:	e8 bb f9 ff ff       	call   0x41092a