416bf6:	83 e1 07             	and    $0x7,%ecx
416bf9:	89 4f 04             	mov    %ecx,0x4(%edi)
416bfc:	0f b7 84 46 f4 22 00 	movzwl 0x22f4(%esi,%eax,2),%eax
416c03:	00
416c04:	eb 5b                	jmp    0x416c61
416c06:	6a 0f                	push   $0xf
416c08:	5a                   	pop    %edx
416c09:	8d 4b 01             	lea    0x1(%ebx),%ecx
416c0c:	3b ca                	cmp    %edx,%ecx
416c0e:	73 18                	jae    0x416c28
416c10:	8d 9c 8e 70 1e 00 00 	lea    0x1e70(%esi,%ecx,4),%ebx
416c17:	3b 03                	cmp    (%ebx),%eax
416c19:	72 0b                	jb     0x416c26
416c1b:	41                   	inc    %ecx
416c1c:	83 c3 04             	add    $0x4,%ebx
416c1f:	83 f9 0f             	cmp    $0xf,%ecx
416c22:	72 f3                	jb     0x416c17
416c24:	eb 02                	jmp    0x416c28
416c26:	8b d1                	mov    %ecx,%edx
416c28:	8b 4f 04             	mov    0x4(%edi),%ecx
416c2b:	03 ca                	add    %edx,%ecx
416c2d:	8b d9                	mov    %ecx,%ebx
416c2f:	83 e1 07             	and    $0x7,%ecx
416c32:	89 4f 04             	mov    %ecx,0x4(%edi)
416c35:	c1 eb 03             	shr    $0x3,%ebx
416c38:	01 1f                	add    %ebx,(%edi)
416c3a:	2b 84 96 6c 1e 00 00 	sub    0x1e6c(%esi,%edx,4),%eax
416c41:	6a 10                	push   $0x10
416c43:	59                   	pop    %ecx
416c44:	2b ca                	sub    %edx,%ecx
416c46:	d3 e8                	shr    %cl,%eax
416c48:	03 84 96 b0 1e 00 00 	add    0x1eb0(%esi,%edx,4),%eax
416c4f:	3b 86 6c 1e 00 00    	cmp    0x1e6c(%esi),%eax
416c55:	72 02                	jb     0x416c59
416c57:	33 c0                	xor    %eax,%eax
416c59:	0f b7 84 46 f4 2a 00 	movzwl 0x2af4(%esi,%eax,2),%eax
416c60:	00
416c61:	01 45 f8             	add    %eax,-0x8(%ebp)
416c64:	eb 23                	jmp    0x416c89
416c66:	8b cf                	mov    %edi,%ecx
416c68:	e8 a2 ba ff ff       	call   0x41270f
416c6d:	6a 20                	push   $0x20
416c6f:	59                   	pop    %ecx
416c70:	2b cb                	sub    %ebx,%ecx
416c72:	d3 e8                	shr    %cl,%eax
416c74:	01 45 f8             	add    %eax,-0x8(%ebp)
416c77:	8b 47 04             	mov    0x4(%edi),%eax
416c7a:	03 c3                	add    %ebx,%eax
416c7c:	8b c8                	mov    %eax,%ecx
416c7e:	c1 e9 03             	shr    $0x3,%ecx
416c81:	01 0f                	add    %ecx,(%edi)
416c83:	83 e0 07             	and    $0x7,%eax
416c86:	89 47 04             	mov    %eax,0x4(%edi)
416c89:	8b 5d f8             	mov    -0x8(%ebp),%ebx
416c8c:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
416c92:	76 1d                	jbe    0x416cb1
416c94:	8b 45 f4             	mov    -0xc(%ebp),%eax
416c97:	40                   	inc    %eax
416c98:	89 45 08             	mov    %eax,0x8(%ebp)
416c9b:	81 fb 00 20 00 00    	cmp    $0x2000,%ebx
416ca1:	76 0e                	jbe    0x416cb1
416ca3:	ff 45 08             	incl   0x8(%ebp)
416ca6:	81 fb 00 00 04 00    	cmp    $0x40000,%ebx
416cac:	76 03                	jbe    0x416cb1
416cae:	ff 45 08             	incl   0x8(%ebp)
416cb1:	80 be 38 4c 00 00 00 	cmpb   $0x0,0x4c38(%esi)
416cb8:	8b 46 5c             	mov    0x5c(%esi),%eax
416cbb:	8b 4d 08             	mov    0x8(%ebp),%ecx
416cbe:	89 46 60             	mov    %eax,0x60(%esi)
416cc1:	8b 46 58             	mov    0x58(%esi),%eax
416cc4:	89 46 5c             	mov    %eax,0x5c(%esi)
416cc7:	8b 46 54             	mov    0x54(%esi),%eax
416cca:	89 46 58             	mov    %eax,0x58(%esi)
416ccd:	89 5e 54             	mov    %ebx,0x54(%esi)
416cd0:	89 4e 68             	mov    %ecx,0x68(%esi)
416cd3:	8d 46 70             	lea    0x70(%esi),%eax
416cd6:	74 19                	je     0x416cf1
416cd8:	ff b6 f8 e6 00 00    	push   0xe6f8(%esi)
416cde:	50                   	push   %eax
416cdf:	53                   	push   %ebx
416ce0:	51                   	push   %ecx
416ce1:	8d 8e 38 4b 00 00    	lea    0x4b38(%esi),%ecx
416ce7:	e8 82 b5 ff ff       	call   0x41226e
416cec:	e9 c0 fb ff ff       	jmp    0x4168b1
416cf1:	8b 10                	mov    (%eax),%edx
416cf3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
416cf6:	8b ca                	mov    %edx,%ecx
416cf8:	2b cb                	sub    %ebx,%ecx
416cfa:	8b 9e f4 e6 00 00    	mov    0xe6f4(%esi),%ebx
416d00:	81 c3 ff ef ff ff    	add    $0xffffefff,%ebx
416d06:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416d09:	3b cb                	cmp    %ebx,%ecx
416d0b:	0f 83 13 01 00 00    	jae    0x416e24
416d11:	3b d3                	cmp    %ebx,%edx
416d13:	0f 83 0b 01 00 00    	jae    0x416e24
416d19:	8b 9e 34 4b 00 00    	mov    0x4b34(%esi),%ebx
416d1f:	03 d9                	add    %ecx,%ebx
416d21:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
416d27:	03 ca                	add    %edx,%ecx
416d29:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416d2c:	8b 4d 08             	mov    0x8(%ebp),%ecx
416d2f:	03 d1                	add    %ecx,%edx
416d31:	89 10                	mov    %edx,(%eax)
416d33:	39 4d f8             	cmp    %ecx,-0x8(%ebp)
416d36:	73 4f                	jae    0x416d87
416d38:	83 f9 08             	cmp    $0x8,%ecx
416d3b:	72 76                	jb     0x416db3
416d3d:	8b c1                	mov    %ecx,%eax
416d3f:	c1 e8 03             	shr    $0x3,%eax
416d42:	8b c8                	mov    %eax,%ecx
416d44:	8b 45 f4             	mov    -0xc(%ebp),%eax
416d47:	8a 13                	mov    (%ebx),%dl
416d49:	83 6d fc 08          	subl   $0x8,-0x4(%ebp)
416d4d:	88 10                	mov    %dl,(%eax)
416d4f:	8a 53 01             	mov    0x1(%ebx),%dl
416d52:	88 50 01             	mov    %dl,0x1(%eax)
416d55:	8a 53 02             	mov    0x2(%ebx),%dl
416d58:	88 50 02             	mov    %dl,0x2(%eax)
416d5b:	8a 53 03             	mov    0x3(%ebx),%dl
416d5e:	88 50 03             	mov    %dl,0x3(%eax)
416d61:	8a 53 04             	mov    0x4(%ebx),%dl
416d64:	88 50 04             	mov    %dl,0x4(%eax)
416d67:	8a 53 05             	mov    0x5(%ebx),%dl
416d6a:	88 50 05             	mov    %dl,0x5(%eax)
416d6d:	8a 53 06             	mov    0x6(%ebx),%dl
416d70:	88 50 06             	mov    %dl,0x6(%eax)
416d73:	8a 53 07             	mov    0x7(%ebx),%dl
416d76:	88 50 07             	mov    %dl,0x7(%eax)
416d79:	83 c3 08             	add    $0x8,%ebx
416d7c:	83 c0 08             	add    $0x8,%eax
416d7f:	49                   	dec    %ecx
416d80:	75 c5                	jne    0x416d47
416d82:	89 45 f4             	mov    %eax,-0xc(%ebp)
416d85:	eb 2c                	jmp    0x416db3
416d87:	83 f9 08             	cmp    $0x8,%ecx
416d8a:	72 27                	jb     0x416db3
416d8c:	8b 45 08             	mov    0x8(%ebp),%eax
416d8f:	c1 e8 03             	shr    $0x3,%eax
416d92:	89 45 08             	mov    %eax,0x8(%ebp)
416d95:	6a 08                	push   $0x8
416d97:	53                   	push   %ebx
416d98:	ff 75 f4             	push   -0xc(%ebp)
416d9b:	e8 d0 4e 00 00       	call   0x41bc70
416da0:	83 45 f4 08          	addl   $0x8,-0xc(%ebp)
416da4:	83 6d fc 08          	subl   $0x8,-0x4(%ebp)
416da8:	83 c4 0c             	add    $0xc,%esp
416dab:	83 c3 08             	add    $0x8,%ebx
416dae:	ff 4d 08             	decl   0x8(%ebp)
416db1:	75 e2                	jne    0x416d95
416db3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
416db6:	85 c9                	test   %ecx,%ecx
416db8:	0f 86 f3 fa ff ff    	jbe    0x4168b1
416dbe:	8a 13                	mov    (%ebx),%dl
416dc0:	8b 45 f4             	mov    -0xc(%ebp),%eax
416dc3:	88 10                	mov    %dl,(%eax)
416dc5:	83 f9 01             	cmp    $0x1,%ecx
416dc8:	0f 86 e3 fa ff ff    	jbe    0x4168b1
416dce:	8a 53 01             	mov    0x1(%ebx),%dl
416dd1:	88 50 01             	mov    %dl,0x1(%eax)
416dd4:	83 f9 02             	cmp    $0x2,%ecx
416dd7:	0f 86 d4 fa ff ff    	jbe    0x4168b1
416ddd:	8a 53 02             	mov    0x2(%ebx),%dl
416de0:	88 50 02             	mov    %dl,0x2(%eax)
416de3:	83 f9 03             	cmp    $0x3,%ecx
416de6:	0f 86 c5 fa ff ff    	jbe    0x4168b1
416dec:	8a 53 03             	mov    0x3(%ebx),%dl
416def:	88 50 03             	mov    %dl,0x3(%eax)
416df2:	83 f9 04             	cmp    $0x4,%ecx
416df5:	0f 86 b6 fa ff ff    	jbe    0x4168b1
416dfb:	8a 53 04             	mov    0x4(%ebx),%dl
416dfe:	88 50 04             	mov    %dl,0x4(%eax)
416e01:	83 f9 05             	cmp    $0x5,%ecx
416e04:	0f 86 a7 fa ff ff    	jbe    0x4168b1
416e0a:	8a 53 05             	mov    0x5(%ebx),%dl
416e0d:	88 50 05             	mov    %dl,0x5(%eax)
416e10:	83 f9 06             	cmp    $0x6,%ecx
416e13:	0f 86 98 fa ff ff    	jbe    0x4168b1
416e19:	8a 4b 06             	mov    0x6(%ebx),%cl
416e1c:	88 48 06             	mov    %cl,0x6(%eax)
416e1f:	e9 8d fa ff ff       	jmp    0x4168b1
416e24:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
416e28:	0f 86 83 fa ff ff    	jbe    0x4168b1
416e2e:	8b 9e f8 e6 00 00    	mov    0xe6f8(%esi),%ebx
416e34:	8b 96 34 4b 00 00    	mov    0x4b34(%esi),%edx
416e3a:	ff 4d fc             	decl   -0x4(%ebp)
416e3d:	23 cb                	and    %ebx,%ecx
416e3f:	8a 0c 11             	mov    (%ecx,%edx,1),%cl
416e42:	8b 18                	mov    (%eax),%ebx
416e44:	88 0c 1a             	mov    %cl,(%edx,%ebx,1)
416e47:	8b 4d f4             	mov    -0xc(%ebp),%ecx
416e4a:	8b 10                	mov    (%eax),%edx
416e4c:	8b 9e f8 e6 00 00    	mov    0xe6f8(%esi),%ebx
416e52:	41                   	inc    %ecx
416e53:	42                   	inc    %edx
416e54:	23 d3                	and    %ebx,%edx
416e56:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
416e5a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416e5d:	89 10                	mov    %edx,(%eax)
416e5f:	77 d3                	ja     0x416e34
416e61:	e9 4b fa ff ff       	jmp    0x4168b1
416e66:	3b d8                	cmp    %eax,%ebx
416e68:	75 31                	jne    0x416e9b
416e6a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
416e6d:	50                   	push   %eax
416e6e:	57                   	push   %edi
416e6f:	8b ce                	mov    %esi,%ecx
416e71:	e8 3e d0 ff ff       	call   0x413eb4
416e76:	84 c0                	test   %al,%al
416e78:	74 13                	je     0x416e8d
416e7a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
416e7d:	50                   	push   %eax
416e7e:	8b ce                	mov    %esi,%ecx
416e80:	e8 0d e5 ff ff       	call   0x415392
416e85:	84 c0                	test   %al,%al
416e87:	0f 85 24 fa ff ff    	jne    0x4168b1
416e8d:	8b ce                	mov    %esi,%ecx
416e8f:	e8 d9 e0 ff ff       	call   0x414f6d
416e94:	5f                   	pop    %edi
416e95:	5e                   	pop    %esi
416e96:	5b                   	pop    %ebx
416e97:	c9                   	leave
416e98:	c2 04 00             	ret    $0x4
416e9b:	81 fb 01 01 00 00    	cmp    $0x101,%ebx
416ea1:	0f 85 34 01 00 00    	jne    0x416fdb
416ea7:	8b 46 68             	mov    0x68(%esi),%eax
416eaa:	85 c0                	test   %eax,%eax
416eac:	0f 84 ff f9 ff ff    	je     0x4168b1
416eb2:	80 be 38 4c 00 00 00 	cmpb   $0x0,0x4c38(%esi)
416eb9:	74 13                	je     0x416ece
416ebb:	ff b6 f8 e6 00 00    	push   0xe6f8(%esi)
416ec1:	8d 4e 70             	lea    0x70(%esi),%ecx
416ec4:	51                   	push   %ecx
416ec5:	ff 76 54             	push   0x54(%esi)
416ec8:	50                   	push   %eax
416ec9:	e9 13 fe ff ff       	jmp    0x416ce1
416ece:	8b 5e 54             	mov    0x54(%esi),%ebx
416ed1:	89 45 08             	mov    %eax,0x8(%ebp)
416ed4:	8d 46 70             	lea    0x70(%esi),%eax
416ed7:	8b 10                	mov    (%eax),%edx
416ed9:	8b ca                	mov    %edx,%ecx
416edb:	2b cb                	sub    %ebx,%ecx
416edd:	8b 9e f4 e6 00 00    	mov    0xe6f4(%esi),%ebx
416ee3:	81 c3 ff ef ff ff    	add    $0xffffefff,%ebx
416ee9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416eec:	3b cb                	cmp    %ebx,%ecx
416eee:	0f 83 a5 00 00 00    	jae    0x416f99
416ef4:	3b d3                	cmp    %ebx,%edx
416ef6:	0f 83 9d 00 00 00    	jae    0x416f99
416efc:	8b 9e 34 4b 00 00    	mov    0x4b34(%esi),%ebx
416f02:	03 d9                	add    %ecx,%ebx
416f04:	8b 8e 34 4b 00 00    	mov    0x4b34(%esi),%ecx
416f0a:	03 ca                	add    %edx,%ecx
416f0c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416f0f:	8b 4d 08             	mov    0x8(%ebp),%ecx
416f12:	03 d1                	add    %ecx,%edx
416f14:	89 10                	mov    %edx,(%eax)
416f16:	39 4e 54             	cmp    %ecx,0x54(%esi)
416f19:	73 4b                	jae    0x416f66
416f1b:	83 f9 08             	cmp    $0x8,%ecx
416f1e:	72 71                	jb     0x416f91
416f20:	8b 45 f4             	mov    -0xc(%ebp),%eax
416f23:	c1 e9 03             	shr    $0x3,%ecx
416f26:	8a 13                	mov    (%ebx),%dl
416f28:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
416f2c:	88 10                	mov    %dl,(%eax)
416f2e:	8a 53 01             	mov    0x1(%ebx),%dl
416f31:	88 50 01             	mov    %dl,0x1(%eax)
416f34:	8a 53 02             	mov    0x2(%ebx),%dl
416f37:	88 50 02             	mov    %dl,0x2(%eax)
416f3a:	8a 53 03             	mov    0x3(%ebx),%dl
416f3d:	88 50 03             	mov    %dl,0x3(%eax)
416f40:	8a 53 04             	mov    0x4(%ebx),%dl
416f43:	88 50 04             	mov    %dl,0x4(%eax)
416f46:	8a 53 05             	mov    0x5(%ebx),%dl
416f49:	88 50 05             	mov    %dl,0x5(%eax)
416f4c:	8a 53 06             	mov    0x6(%ebx),%dl
416f4f:	88 50 06             	mov    %dl,0x6(%eax)
416f52:	8a 53 07             	mov    0x7(%ebx),%dl
416f55:	88 50 07             	mov    %dl,0x7(%eax)
416f58:	83 c3 08             	add    $0x8,%ebx
416f5b:	83 c0 08             	add    $0x8,%eax
416f5e:	49                   	dec    %ecx
416f5f:	75 c5                	jne    0x416f26
416f61:	89 45 f4             	mov    %eax,-0xc(%ebp)
416f64:	eb 2b                	jmp    0x416f91
416f66:	83 f9 08             	cmp    $0x8,%ecx
416f69:	72 26                	jb     0x416f91
416f6b:	8b c1                	mov    %ecx,%eax
416f6d:	c1 e8 03             	shr    $0x3,%eax
416f70:	89 45 f8             	mov    %eax,-0x8(%ebp)
416f73:	6a 08                	push   $0x8
416f75:	53                   	push   %ebx
416f76:	ff 75 f4             	push   -0xc(%ebp)
416f79:	e8 f2 4c 00 00       	call   0x41bc70
416f7e:	83 45 f4 08          	addl   $0x8,-0xc(%ebp)
416f82:	83 6d 08 08          	subl   $0x8,0x8(%ebp)
416f86:	83 c4 0c             	add    $0xc,%esp
416f89:	83 c3 08             	add    $0x8,%ebx
416f8c:	ff 4d f8             	decl   -0x8(%ebp)
416f8f:	75 e2                	jne    0x416f73
416f91:	8b 4d 08             	mov    0x8(%ebp),%ecx
416f94:	e9 1d fe ff ff       	jmp    0x416db6
416f99:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
416f9d:	0f 86 0e f9 ff ff    	jbe    0x4168b1
416fa3:	8b 9e f8 e6 00 00    	mov    0xe6f8(%esi),%ebx
416fa9:	8b 96 34 4b 00 00    	mov    0x4b34(%esi),%edx
416faf:	ff 4d 08             	decl   0x8(%ebp)
416fb2:	23 cb                	and    %ebx,%ecx
416fb4:	8a 0c 11             	mov    (%ecx,%edx,1),%cl
416fb7:	8b 18                	mov    (%eax),%ebx
416fb9:	88 0c 1a             	mov    %cl,(%edx,%ebx,1)
416fbc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
416fbf:	8b 10                	mov    (%eax),%edx
416fc1:	8b 9e f8 e6 00 00    	mov    0xe6f8(%esi),%ebx
416fc7:	41                   	inc    %ecx
416fc8:	42                   	inc    %edx
416fc9:	23 d3                	and    %ebx,%edx
416fcb:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
416fcf:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416fd2:	89 10                	mov    %edx,(%eax)
416fd4:	77 d3                	ja     0x416fa9
416fd6:	e9 d6 f8 ff ff       	jmp    0x4168b1
416fdb:	81 c3 fe fe ff ff    	add    $0xfffffefe,%ebx
416fe1:	8d 44 9e 54          	lea    0x54(%esi,%ebx,4),%eax
416fe5:	8b 08                	mov    (%eax),%ecx
416fe7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
416fea:	8b cb                	mov    %ebx,%ecx
416fec:	74 0d                	je     0x416ffb
416fee:	8b 50 fc             	mov    -0x4(%eax),%edx
416ff1:	89 10                	mov    %edx,(%eax)
416ff3:	49                   	dec    %ecx
416ff4:	83 e8 04             	sub    $0x4,%eax
416ff7:	85 c9                	test   %ecx,%ecx
416ff9:	77 f3                	ja     0x416fee
416ffb:	8b 45 f4             	mov    -0xc(%ebp),%eax
416ffe:	8b cf                	mov    %edi,%ecx
417000:	89 46 54             	mov    %eax,0x54(%esi)
417003:	e8 02 27 ff ff       	call   0x40970a
417008:	8b 9e dc 2d 00 00    	mov    0x2ddc(%esi),%ebx
41700e:	25 fe ff 00 00       	and    $0xfffe,%eax
417013:	3b 84 9e 5c 2d 00 00 	cmp    0x2d5c(%esi,%ebx,4),%eax
41701a:	73 29                	jae    0x417045
41701c:	6a 10                	push   $0x10
41701e:	59                   	pop    %ecx
41701f:	2b cb                	sub    %ebx,%ecx
417021:	d3 e8                	shr    %cl,%eax
417023:	0f b6 8c 30 e0 2d 00 	movzbl 0x2de0(%eax,%esi,1),%ecx
41702a:	00
41702b:	03 4f 04             	add    0x4(%edi),%ecx
41702e:	8b d1                	mov    %ecx,%edx