523b80:	81 e3 ff ff ff 01    	and    $0x1ffffff,%ebx
523b86:	c1 f8 19             	sar    $0x19,%eax
523b89:	03 f0                	add    %eax,%esi
523b8b:	89 5c 24 28          	mov    %ebx,0x28(%esp)
523b8f:	8b de                	mov    %esi,%ebx
523b91:	89 74 24 10          	mov    %esi,0x10(%esp)
523b95:	8b c3                	mov    %ebx,%eax
523b97:	81 e3 ff ff ff 03    	and    $0x3ffffff,%ebx
523b9d:	c1 f8 1a             	sar    $0x1a,%eax
523ba0:	03 f8                	add    %eax,%edi
523ba2:	89 5c 24 10          	mov    %ebx,0x10(%esp)
523ba6:	8b df                	mov    %edi,%ebx
523ba8:	89 7c 24 14          	mov    %edi,0x14(%esp)
523bac:	8b c3                	mov    %ebx,%eax
523bae:	81 e3 ff ff ff 01    	and    $0x1ffffff,%ebx
523bb4:	c1 f8 19             	sar    $0x19,%eax
523bb7:	03 e8                	add    %eax,%ebp
523bb9:	89 5c 24 14          	mov    %ebx,0x14(%esp)
523bbd:	8b dd                	mov    %ebp,%ebx
523bbf:	89 6c 24 18          	mov    %ebp,0x18(%esp)
523bc3:	8b 6c 24 24          	mov    0x24(%esp),%ebp
523bc7:	8b c3                	mov    %ebx,%eax
523bc9:	c1 f8 1a             	sar    $0x1a,%eax
523bcc:	03 e8                	add    %eax,%ebp
523bce:	81 e3 ff ff ff 03    	and    $0x3ffffff,%ebx
523bd4:	8b c5                	mov    %ebp,%eax
523bd6:	c1 f8 19             	sar    $0x19,%eax
523bd9:	81 e5 ff ff ff 01    	and    $0x1ffffff,%ebp
523bdf:	89 5c 24 18          	mov    %ebx,0x18(%esp)
523be3:	8b 5c 24 20          	mov    0x20(%esp),%ebx
523be7:	03 d8                	add    %eax,%ebx
523be9:	89 6c 24 24          	mov    %ebp,0x24(%esp)
523bed:	8b c3                	mov    %ebx,%eax
523bef:	81 e3 ff ff ff 03    	and    $0x3ffffff,%ebx
523bf5:	c1 f8 1a             	sar    $0x1a,%eax
523bf8:	01 44 24 34          	add    %eax,0x34(%esp)
523bfc:	89 5c 24 20          	mov    %ebx,0x20(%esp)
523c00:	8b 5c 24 34          	mov    0x34(%esp),%ebx
523c04:	8b c3                	mov    %ebx,%eax
523c06:	c1 f8 19             	sar    $0x19,%eax
523c09:	81 e3 ff ff ff 01    	and    $0x1ffffff,%ebx
523c0f:	01 44 24 1c          	add    %eax,0x1c(%esp)
523c13:	8b 44 24 1c          	mov    0x1c(%esp),%eax
523c17:	89 5c 24 34          	mov    %ebx,0x34(%esp)
523c1b:	8b d8                	mov    %eax,%ebx
523c1d:	c1 f8 1a             	sar    $0x1a,%eax
523c20:	81 e3 ff ff ff 03    	and    $0x3ffffff,%ebx
523c26:	03 c1                	add    %ecx,%eax
523c28:	8b 4c 24 30          	mov    0x30(%esp),%ecx
523c2c:	25 ff ff ff 01       	and    $0x1ffffff,%eax
523c31:	89 44 24 1c          	mov    %eax,0x1c(%esp)
523c35:	8b c2                	mov    %edx,%eax
523c37:	c1 e8 08             	shr    $0x8,%eax
523c3a:	88 41 01             	mov    %al,0x1(%ecx)
523c3d:	8b c2                	mov    %edx,%eax
523c3f:	c1 e8 10             	shr    $0x10,%eax
523c42:	88 41 02             	mov    %al,0x2(%ecx)
523c45:	0f b6 44 24 28       	movzbl 0x28(%esp),%eax
523c4a:	c0 e0 02             	shl    $0x2,%al
523c4d:	88 11                	mov    %dl,(%ecx)
523c4f:	c1 ea 18             	shr    $0x18,%edx
523c52:	0a d0                	or     %al,%dl
523c54:	88 51 03             	mov    %dl,0x3(%ecx)
523c57:	8b 54 24 28          	mov    0x28(%esp),%edx
523c5b:	8b c2                	mov    %edx,%eax
523c5d:	c1 e8 06             	shr    $0x6,%eax
523c60:	88 41 04             	mov    %al,0x4(%ecx)
523c63:	8b c2                	mov    %edx,%eax
523c65:	c1 e8 0e             	shr    $0xe,%eax
523c68:	88 41 05             	mov    %al,0x5(%ecx)
523c6b:	0f b6 44 24 10       	movzbl 0x10(%esp),%eax
523c70:	c0 e0 03             	shl    $0x3,%al
523c73:	c1 ea 16             	shr    $0x16,%edx
523c76:	0a d0                	or     %al,%dl
523c78:	88 51 06             	mov    %dl,0x6(%ecx)
523c7b:	8b 54 24 10          	mov    0x10(%esp),%edx
523c7f:	8b c2                	mov    %edx,%eax
523c81:	c1 e8 05             	shr    $0x5,%eax
523c84:	88 41 07             	mov    %al,0x7(%ecx)
523c87:	8b c2                	mov    %edx,%eax
523c89:	c1 e8 0d             	shr    $0xd,%eax
523c8c:	88 41 08             	mov    %al,0x8(%ecx)
523c8f:	0f b6 44 24 14       	movzbl 0x14(%esp),%eax
523c94:	c0 e0 05             	shl    $0x5,%al
523c97:	c1 ea 15             	shr    $0x15,%edx
523c9a:	0a d0                	or     %al,%dl
523c9c:	88 51 09             	mov    %dl,0x9(%ecx)
523c9f:	8b 54 24 14          	mov    0x14(%esp),%edx
523ca3:	8b c2                	mov    %edx,%eax
523ca5:	c1 e8 03             	shr    $0x3,%eax
523ca8:	88 41 0a             	mov    %al,0xa(%ecx)
523cab:	8b c2                	mov    %edx,%eax
523cad:	c1 e8 0b             	shr    $0xb,%eax
523cb0:	88 41 0b             	mov    %al,0xb(%ecx)
523cb3:	0f b6 44 24 18       	movzbl 0x18(%esp),%eax
523cb8:	c0 e0 06             	shl    $0x6,%al
523cbb:	c1 ea 13             	shr    $0x13,%edx
523cbe:	0a d0                	or     %al,%dl
523cc0:	88 51 0c             	mov    %dl,0xc(%ecx)
523cc3:	8b 54 24 18          	mov    0x18(%esp),%edx
523cc7:	8b c2                	mov    %edx,%eax
523cc9:	c1 e8 02             	shr    $0x2,%eax
523ccc:	88 41 0d             	mov    %al,0xd(%ecx)
523ccf:	8b c2                	mov    %edx,%eax
523cd1:	c1 e8 0a             	shr    $0xa,%eax
523cd4:	88 41 0e             	mov    %al,0xe(%ecx)
523cd7:	c1 ea 12             	shr    $0x12,%edx
523cda:	88 51 0f             	mov    %dl,0xf(%ecx)
523cdd:	8b d5                	mov    %ebp,%edx
523cdf:	8b c2                	mov    %edx,%eax
523ce1:	88 51 10             	mov    %dl,0x10(%ecx)
523ce4:	c1 e8 08             	shr    $0x8,%eax
523ce7:	88 41 11             	mov    %al,0x11(%ecx)
523cea:	8b c2                	mov    %edx,%eax
523cec:	c1 e8 10             	shr    $0x10,%eax
523cef:	88 41 12             	mov    %al,0x12(%ecx)
523cf2:	0f b6 44 24 20       	movzbl 0x20(%esp),%eax
523cf7:	02 c0                	add    %al,%al
523cf9:	c1 ea 18             	shr    $0x18,%edx
523cfc:	0a d0                	or     %al,%dl
523cfe:	88 51 13             	mov    %dl,0x13(%ecx)
523d01:	8b 54 24 20          	mov    0x20(%esp),%edx
523d05:	8b c2                	mov    %edx,%eax
523d07:	c1 e8 07             	shr    $0x7,%eax
523d0a:	88 41 14             	mov    %al,0x14(%ecx)
523d0d:	8b c2                	mov    %edx,%eax
523d0f:	c1 e8 0f             	shr    $0xf,%eax
523d12:	88 41 15             	mov    %al,0x15(%ecx)
523d15:	0f b6 44 24 34       	movzbl 0x34(%esp),%eax
523d1a:	c0 e0 03             	shl    $0x3,%al
523d1d:	c1 ea 17             	shr    $0x17,%edx
523d20:	0a d0                	or     %al,%dl
523d22:	88 51 16             	mov    %dl,0x16(%ecx)
523d25:	8b 54 24 34          	mov    0x34(%esp),%edx
523d29:	8b c2                	mov    %edx,%eax
523d2b:	c1 e8 05             	shr    $0x5,%eax
523d2e:	88 41 17             	mov    %al,0x17(%ecx)
523d31:	8b c2                	mov    %edx,%eax
523d33:	c1 e8 0d             	shr    $0xd,%eax
523d36:	88 41 18             	mov    %al,0x18(%ecx)
523d39:	8a c3                	mov    %bl,%al
523d3b:	c0 e0 04             	shl    $0x4,%al
523d3e:	c1 ea 15             	shr    $0x15,%edx
523d41:	0a d0                	or     %al,%dl
523d43:	8b c3                	mov    %ebx,%eax
523d45:	c1 e8 04             	shr    $0x4,%eax
523d48:	88 41 1a             	mov    %al,0x1a(%ecx)
523d4b:	8b c3                	mov    %ebx,%eax
523d4d:	c1 e8 0c             	shr    $0xc,%eax
523d50:	88 41 1b             	mov    %al,0x1b(%ecx)
523d53:	88 51 19             	mov    %dl,0x19(%ecx)
523d56:	8b 54 24 1c          	mov    0x1c(%esp),%edx
523d5a:	8a c2                	mov    %dl,%al
523d5c:	c0 e0 06             	shl    $0x6,%al
523d5f:	c1 eb 14             	shr    $0x14,%ebx
523d62:	0a d8                	or     %al,%bl
523d64:	8b c2                	mov    %edx,%eax
523d66:	c1 e8 02             	shr    $0x2,%eax
523d69:	5f                   	pop    %edi
523d6a:	88 41 1d             	mov    %al,0x1d(%ecx)
523d6d:	8b c2                	mov    %edx,%eax
523d6f:	5e                   	pop    %esi
523d70:	c1 e8 0a             	shr    $0xa,%eax
523d73:	c1 ea 12             	shr    $0x12,%edx
523d76:	5d                   	pop    %ebp
523d77:	88 59 1c             	mov    %bl,0x1c(%ecx)
523d7a:	88 41 1e             	mov    %al,0x1e(%ecx)
523d7d:	88 51 1f             	mov    %dl,0x1f(%ecx)
523d80:	5b                   	pop    %ebx
523d81:	83 c4 1c             	add    $0x1c,%esp
523d84:	c3                   	ret
523d85:	cc                   	int3
523d86:	cc                   	int3
523d87:	cc                   	int3
523d88:	cc                   	int3
523d89:	cc                   	int3
523d8a:	cc                   	int3
523d8b:	cc                   	int3
523d8c:	cc                   	int3
523d8d:	cc                   	int3
523d8e:	cc                   	int3
523d8f:	cc                   	int3
523d90:	b8 40 00 00 00       	mov    $0x40,%eax
523d95:	e8 16 da 0a 00       	call   0x5d17b0
523d9a:	8b 4c 24 44          	mov    0x44(%esp),%ecx
523d9e:	53                   	push   %ebx
523d9f:	55                   	push   %ebp
523da0:	56                   	push   %esi
523da1:	57                   	push   %edi
523da2:	8b 7c 24 58          	mov    0x58(%esp),%edi
523da6:	8d 69 28             	lea    0x28(%ecx),%ebp
523da9:	8b 74 24 5c          	mov    0x5c(%esp),%esi
523dad:	8d 59 50             	lea    0x50(%ecx),%ebx
523db0:	56                   	push   %esi
523db1:	51                   	push   %ecx
523db2:	8b 07                	mov    (%edi),%eax
523db4:	03 47 28             	add    0x28(%edi),%eax
523db7:	89 01                	mov    %eax,(%ecx)
523db9:	8b 47 04             	mov    0x4(%edi),%eax
523dbc:	03 47 2c             	add    0x2c(%edi),%eax
523dbf:	89 41 04             	mov    %eax,0x4(%ecx)
523dc2:	8b 47 30             	mov    0x30(%edi),%eax
523dc5:	03 47 08             	add    0x8(%edi),%eax
523dc8:	89 41 08             	mov    %eax,0x8(%ecx)
523dcb:	8b 47 34             	mov    0x34(%edi),%eax
523dce:	03 47 0c             	add    0xc(%edi),%eax
523dd1:	89 41 0c             	mov    %eax,0xc(%ecx)
523dd4:	8b 47 38             	mov    0x38(%edi),%eax
523dd7:	03 47 10             	add    0x10(%edi),%eax
523dda:	89 41 10             	mov    %eax,0x10(%ecx)
523ddd:	8b 47 14             	mov    0x14(%edi),%eax
523de0:	03 47 3c             	add    0x3c(%edi),%eax
523de3:	89 41 14             	mov    %eax,0x14(%ecx)
523de6:	8b 47 40             	mov    0x40(%edi),%eax
523de9:	03 47 18             	add    0x18(%edi),%eax
523dec:	89 41 18             	mov    %eax,0x18(%ecx)
523def:	8b 47 44             	mov    0x44(%edi),%eax
523df2:	03 47 1c             	add    0x1c(%edi),%eax
523df5:	89 41 1c             	mov    %eax,0x1c(%ecx)
523df8:	8b 47 48             	mov    0x48(%edi),%eax
523dfb:	03 47 20             	add    0x20(%edi),%eax
523dfe:	89 41 20             	mov    %eax,0x20(%ecx)
523e01:	8b 47 24             	mov    0x24(%edi),%eax
523e04:	03 47 4c             	add    0x4c(%edi),%eax
523e07:	89 41 24             	mov    %eax,0x24(%ecx)
523e0a:	8b 47 28             	mov    0x28(%edi),%eax
523e0d:	2b 07                	sub    (%edi),%eax
523e0f:	89 45 00             	mov    %eax,0x0(%ebp)
523e12:	8b 47 2c             	mov    0x2c(%edi),%eax
523e15:	2b 47 04             	sub    0x4(%edi),%eax
523e18:	89 41 2c             	mov    %eax,0x2c(%ecx)
523e1b:	8b 47 30             	mov    0x30(%edi),%eax
523e1e:	2b 47 08             	sub    0x8(%edi),%eax
523e21:	89 41 30             	mov    %eax,0x30(%ecx)
523e24:	8b 47 34             	mov    0x34(%edi),%eax
523e27:	2b 47 0c             	sub    0xc(%edi),%eax
523e2a:	89 41 34             	mov    %eax,0x34(%ecx)
523e2d:	8b 47 38             	mov    0x38(%edi),%eax
523e30:	2b 47 10             	sub    0x10(%edi),%eax
523e33:	89 41 38             	mov    %eax,0x38(%ecx)
523e36:	8b 47 3c             	mov    0x3c(%edi),%eax
523e39:	2b 47 14             	sub    0x14(%edi),%eax
523e3c:	89 41 3c             	mov    %eax,0x3c(%ecx)
523e3f:	8b 47 40             	mov    0x40(%edi),%eax
523e42:	2b 47 18             	sub    0x18(%edi),%eax
523e45:	89 41 40             	mov    %eax,0x40(%ecx)
523e48:	8b 47 44             	mov    0x44(%edi),%eax
523e4b:	2b 47 1c             	sub    0x1c(%edi),%eax
523e4e:	89 41 44             	mov    %eax,0x44(%ecx)
523e51:	8b 47 48             	mov    0x48(%edi),%eax
523e54:	2b 47 20             	sub    0x20(%edi),%eax
523e57:	89 41 48             	mov    %eax,0x48(%ecx)
523e5a:	8b 47 4c             	mov    0x4c(%edi),%eax
523e5d:	2b 47 24             	sub    0x24(%edi),%eax
523e60:	53                   	push   %ebx
523e61:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
523e65:	89 6c 24 20          	mov    %ebp,0x20(%esp)
523e69:	89 41 4c             	mov    %eax,0x4c(%ecx)
523e6c:	e8 3f e1 ff ff       	call   0x521fb0
523e71:	8d 46 28             	lea    0x28(%esi),%eax
523e74:	50                   	push   %eax
523e75:	55                   	push   %ebp
523e76:	55                   	push   %ebp
523e77:	e8 34 e1 ff ff       	call   0x521fb0
523e7c:	8b 4c 24 28          	mov    0x28(%esp),%ecx
523e80:	8d 47 78             	lea    0x78(%edi),%eax
523e83:	50                   	push   %eax
523e84:	8d 46 78             	lea    0x78(%esi),%eax
523e87:	83 c1 78             	add    $0x78,%ecx
523e8a:	50                   	push   %eax
523e8b:	51                   	push   %ecx
523e8c:	e8 1f e1 ff ff       	call   0x521fb0
523e91:	8d 46 50             	lea    0x50(%esi),%eax
523e94:	50                   	push   %eax
523e95:	8d 47 50             	lea    0x50(%edi),%eax
523e98:	50                   	push   %eax
523e99:	ff 74 24 3c          	push   0x3c(%esp)
523e9d:	e8 0e e1 ff ff       	call   0x521fb0
523ea2:	8b 54 24 40          	mov    0x40(%esp),%edx
523ea6:	83 c4 30             	add    $0x30,%esp
523ea9:	8b 02                	mov    (%edx),%eax
523eab:	03 c0                	add    %eax,%eax
523ead:	8b 7a 70             	mov    0x70(%edx),%edi
523eb0:	89 44 24 28          	mov    %eax,0x28(%esp)
523eb4:	8b 42 04             	mov    0x4(%edx),%eax
523eb7:	03 c0                	add    %eax,%eax
523eb9:	8b 72 48             	mov    0x48(%edx),%esi
523ebc:	89 44 24 2c          	mov    %eax,0x2c(%esp)
523ec0:	8b 42 08             	mov    0x8(%edx),%eax
523ec3:	03 c0                	add    %eax,%eax
523ec5:	89 7c 24 24          	mov    %edi,0x24(%esp)
523ec9:	89 44 24 30          	mov    %eax,0x30(%esp)
523ecd:	8b 42 0c             	mov    0xc(%edx),%eax
523ed0:	03 c0                	add    %eax,%eax
523ed2:	89 74 24 20          	mov    %esi,0x20(%esp)
523ed6:	89 44 24 34          	mov    %eax,0x34(%esp)
523eda:	8b 42 10             	mov    0x10(%edx),%eax
523edd:	03 c0                	add    %eax,%eax
523edf:	89 44 24 38          	mov    %eax,0x38(%esp)
523ee3:	8b 42 14             	mov    0x14(%edx),%eax
523ee6:	03 c0                	add    %eax,%eax
523ee8:	89 44 24 3c          	mov    %eax,0x3c(%esp)
523eec:	8b 42 18             	mov    0x18(%edx),%eax
523eef:	03 c0                	add    %eax,%eax
523ef1:	89 44 24 40          	mov    %eax,0x40(%esp)
523ef5:	8b 42 1c             	mov    0x1c(%edx),%eax
523ef8:	03 c0                	add    %eax,%eax
523efa:	89 44 24 44          	mov    %eax,0x44(%esp)
523efe:	8b 42 20             	mov    0x20(%edx),%eax
523f01:	03 c0                	add    %eax,%eax
523f03:	89 44 24 48          	mov    %eax,0x48(%esp)
523f07:	8b 42 24             	mov    0x24(%edx),%eax
523f0a:	03 c0                	add    %eax,%eax
523f0c:	89 44 24 4c          	mov    %eax,0x4c(%esp)
523f10:	8b 03                	mov    (%ebx),%eax
523f12:	2b 45 00             	sub    0x0(%ebp),%eax
523f15:	89 02                	mov    %eax,(%edx)
523f17:	8b 42 54             	mov    0x54(%edx),%eax
523f1a:	2b 42 2c             	sub    0x2c(%edx),%eax
523f1d:	8b 6a 6c             	mov    0x6c(%edx),%ebp
523f20:	8b 5a 44             	mov    0x44(%edx),%ebx
523f23:	89 42 04             	mov    %eax,0x4(%edx)
523f26:	8b 42 58             	mov    0x58(%edx),%eax
523f29:	2b 42 30             	sub    0x30(%edx),%eax
523f2c:	89 42 08             	mov    %eax,0x8(%edx)
523f2f:	8b 42 5c             	mov    0x5c(%edx),%eax
523f32:	2b 42 34             	sub    0x34(%edx),%eax
523f35:	89 42 0c             	mov    %eax,0xc(%edx)
523f38:	8b 42 60             	mov    0x60(%edx),%eax
523f3b:	2b 42 38             	sub    0x38(%edx),%eax
523f3e:	89 42 10             	mov    %eax,0x10(%edx)
523f41:	8b 42 64             	mov    0x64(%edx),%eax
523f44:	2b 42 3c             	sub    0x3c(%edx),%eax
523f47:	89 42 14             	mov    %eax,0x14(%edx)
523f4a:	8b 42 68             	mov    0x68(%edx),%eax
523f4d:	2b 42 40             	sub    0x40(%edx),%eax
523f50:	89 6c 24 1c          	mov    %ebp,0x1c(%esp)
523f54:	2b eb                	sub    %ebx,%ebp
523f56:	2b fe                	sub    %esi,%edi
523f58:	89 42 18             	mov    %eax,0x18(%edx)
523f5b:	89 6a 1c             	mov    %ebp,0x1c(%edx)
523f5e:	89 7a 20             	mov    %edi,0x20(%edx)
523f61:	8b 52 74             	mov    0x74(%edx),%edx
523f64:	89 5c 24 18          	mov    %ebx,0x18(%esp)
523f68:	8b 5c 24 10          	mov    0x10(%esp),%ebx
523f6c:	8b c2                	mov    %edx,%eax
523f6e:	8b 7c 24 14          	mov    0x14(%esp),%edi
523f72:	8b f3                	mov    %ebx,%esi
523f74:	8b 4b 4c             	mov    0x4c(%ebx),%ecx
523f77:	2b c1                	sub    %ecx,%eax