505cf7:	89 4d e8             	mov    %ecx,-0x18(%ebp)
505cfa:	8b 55 f4             	mov    -0xc(%ebp),%edx
505cfd:	8b ca                	mov    %edx,%ecx
505cff:	f7 da                	neg    %edx
505d01:	8d 14 d1             	lea    (%ecx,%edx,8),%edx
505d04:	8d 14 91             	lea    (%ecx,%edx,4),%edx
505d07:	c1 e2 05             	shl    $0x5,%edx
505d0a:	2b d1                	sub    %ecx,%edx
505d0c:	69 4d f0 75 2e 00 00 	imul   $0x2e75,-0x10(%ebp),%ecx
505d13:	03 d2                	add    %edx,%edx
505d15:	03 d1                	add    %ecx,%edx
505d17:	69 4d ec 79 ba ff ff 	imul   $0xffffba79,-0x14(%ebp),%ecx
505d1e:	03 d1                	add    %ecx,%edx
505d20:	8b 4d e8             	mov    -0x18(%ebp),%ecx
505d23:	8b d9                	mov    %ecx,%ebx
505d25:	c1 e1 04             	shl    $0x4,%ecx
505d28:	03 cb                	add    %ebx,%ecx
505d2a:	c1 e1 06             	shl    $0x6,%ecx
505d2d:	2b cb                	sub    %ebx,%ecx
505d2f:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
505d32:	03 d1                	add    %ecx,%edx
505d34:	8b 4d f4             	mov    -0xc(%ebp),%ecx
505d37:	8b d9                	mov    %ecx,%ebx
505d39:	f7 d9                	neg    %ecx
505d3b:	c1 e1 06             	shl    $0x6,%ecx
505d3e:	2b cb                	sub    %ebx,%ecx
505d40:	c1 e1 02             	shl    $0x2,%ecx
505d43:	2b cb                	sub    %ebx,%ecx
505d45:	69 5d f0 c2 ec ff ff 	imul   $0xffffecc2,-0x10(%ebp),%ebx
505d4c:	c1 e1 04             	shl    $0x4,%ecx
505d4f:	03 cb                	add    %ebx,%ecx
505d51:	69 5d ec cd 1c 00 00 	imul   $0x1ccd,-0x14(%ebp),%ebx
505d58:	03 cb                	add    %ebx,%ecx
505d5a:	8b 5d e8             	mov    -0x18(%ebp),%ebx
505d5d:	8b fb                	mov    %ebx,%edi
505d5f:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505d62:	8d 1c df             	lea    (%edi,%ebx,8),%ebx
505d65:	c1 e3 08             	shl    $0x8,%ebx
505d68:	03 df                	add    %edi,%ebx
505d6a:	8d 1c 5f             	lea    (%edi,%ebx,2),%ebx
505d6d:	8b 7d e0             	mov    -0x20(%ebp),%edi
505d70:	03 cb                	add    %ebx,%ecx
505d72:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505d75:	03 d9                	add    %ecx,%ebx
505d77:	81 c3 00 00 04 00    	add    $0x40000,%ebx
505d7d:	c1 fb 13             	sar    $0x13,%ebx
505d80:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505d86:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
505d89:	88 1e                	mov    %bl,(%esi)
505d8b:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505d8e:	2b d9                	sub    %ecx,%ebx
505d90:	8b 4d e0             	mov    -0x20(%ebp),%ecx
505d93:	81 c3 00 00 04 00    	add    $0x40000,%ebx
505d99:	c1 fb 13             	sar    $0x13,%ebx
505d9c:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505da2:	8a 0c 19             	mov    (%ecx,%ebx,1),%cl
505da5:	88 4e 03             	mov    %cl,0x3(%esi)
505da8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505dab:	8b 5d e0             	mov    -0x20(%ebp),%ebx
505dae:	03 ca                	add    %edx,%ecx
505db0:	81 c1 00 00 04 00    	add    $0x40000,%ecx
505db6:	c1 f9 13             	sar    $0x13,%ecx
505db9:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505dbf:	8a 0c 0b             	mov    (%ebx,%ecx,1),%cl
505dc2:	88 4e 01             	mov    %cl,0x1(%esi)
505dc5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505dc8:	2b ca                	sub    %edx,%ecx
505dca:	8b 55 e0             	mov    -0x20(%ebp),%edx
505dcd:	81 c1 00 00 04 00    	add    $0x40000,%ecx
505dd3:	c1 f9 13             	sar    $0x13,%ecx
505dd6:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
505ddc:	83 c0 20             	add    $0x20,%eax
505ddf:	8a 14 0a             	mov    (%edx,%ecx,1),%dl
505de2:	88 56 02             	mov    %dl,0x2(%esi)
505de5:	ff 45 dc             	incl   -0x24(%ebp)
505de8:	83 45 d8 04          	addl   $0x4,-0x28(%ebp)
505dec:	83 7d dc 04          	cmpl   $0x4,-0x24(%ebp)
505df0:	0f 8c 6a fe ff ff    	jl     0x505c60
505df6:	5f                   	pop    %edi
505df7:	5e                   	pop    %esi
505df8:	5b                   	pop    %ebx
505df9:	8b e5                	mov    %ebp,%esp
505dfb:	5d                   	pop    %ebp
505dfc:	c2 08 00             	ret    $0x8
505dff:	90                   	nop
505e00:	55                   	push   %ebp
505e01:	8b ec                	mov    %esp,%ebp
505e03:	83 c4 ac             	add    $0xffffffac,%esp
505e06:	53                   	push   %ebx
505e07:	56                   	push   %esi
505e08:	57                   	push   %edi
505e09:	8b 80 3c 01 00 00    	mov    0x13c(%eax),%eax
505e0f:	05 80 00 00 00       	add    $0x80,%eax
505e14:	89 45 f4             	mov    %eax,-0xc(%ebp)
505e17:	8d 45 ac             	lea    -0x54(%ebp),%eax
505e1a:	8b 52 50             	mov    0x50(%edx),%edx
505e1d:	89 55 f8             	mov    %edx,-0x8(%ebp)
505e20:	ba 08 00 00 00       	mov    $0x8,%edx
505e25:	83 fa 06             	cmp    $0x6,%edx
505e28:	0f 84 c6 00 00 00    	je     0x505ef4
505e2e:	83 fa 04             	cmp    $0x4,%edx
505e31:	0f 84 bd 00 00 00    	je     0x505ef4
505e37:	83 fa 02             	cmp    $0x2,%edx
505e3a:	0f 84 b4 00 00 00    	je     0x505ef4
505e40:	66 8b 59 10          	mov    0x10(%ecx),%bx
505e44:	66 0b 59 30          	or     0x30(%ecx),%bx
505e48:	66 0b 59 50          	or     0x50(%ecx),%bx
505e4c:	66 0b 59 70          	or     0x70(%ecx),%bx
505e50:	75 16                	jne    0x505e68
505e52:	0f bf 19             	movswl (%ecx),%ebx
505e55:	8b 75 f8             	mov    -0x8(%ebp),%esi
505e58:	0f af 1e             	imul   (%esi),%ebx
505e5b:	c1 e3 02             	shl    $0x2,%ebx
505e5e:	89 18                	mov    %ebx,(%eax)
505e60:	89 58 20             	mov    %ebx,0x20(%eax)
505e63:	e9 8c 00 00 00       	jmp    0x505ef4
505e68:	0f bf 19             	movswl (%ecx),%ebx
505e6b:	8b 75 f8             	mov    -0x8(%ebp),%esi
505e6e:	0f af 1e             	imul   (%esi),%ebx
505e71:	c1 e3 0f             	shl    $0xf,%ebx
505e74:	89 5d fc             	mov    %ebx,-0x4(%ebp)
505e77:	0f bf 59 70          	movswl 0x70(%ecx),%ebx
505e7b:	8b 75 f8             	mov    -0x8(%ebp),%esi
505e7e:	8b 7d f8             	mov    -0x8(%ebp),%edi
505e81:	0f af 9e e0 00 00 00 	imul   0xe0(%esi),%ebx
505e88:	69 f3 ee e8 ff ff    	imul   $0xffffe8ee,%ebx,%esi
505e8e:	0f bf 59 50          	movswl 0x50(%ecx),%ebx
505e92:	0f af 9f a0 00 00 00 	imul   0xa0(%edi),%ebx
505e99:	69 db 37 1b 00 00    	imul   $0x1b37,%ebx,%ebx
505e9f:	03 f3                	add    %ebx,%esi
505ea1:	8b 7d f8             	mov    -0x8(%ebp),%edi
505ea4:	0f bf 59 30          	movswl 0x30(%ecx),%ebx
505ea8:	0f af 5f 60          	imul   0x60(%edi),%ebx
505eac:	69 db 46 d7 ff ff    	imul   $0xffffd746,%ebx,%ebx
505eb2:	03 f3                	add    %ebx,%esi
505eb4:	8b 7d f8             	mov    -0x8(%ebp),%edi
505eb7:	0f bf 59 10          	movswl 0x10(%ecx),%ebx
505ebb:	0f af 5f 20          	imul   0x20(%edi),%ebx
505ebf:	8b fb                	mov    %ebx,%edi
505ec1:	c1 e3 03             	shl    $0x3,%ebx
505ec4:	2b df                	sub    %edi,%ebx
505ec6:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505ec9:	c1 e3 08             	shl    $0x8,%ebx
505ecc:	2b df                	sub    %edi,%ebx
505ece:	c1 e3 02             	shl    $0x2,%ebx
505ed1:	03 f3                	add    %ebx,%esi
505ed3:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505ed6:	03 de                	add    %esi,%ebx
505ed8:	81 c3 00 10 00 00    	add    $0x1000,%ebx
505ede:	c1 fb 0d             	sar    $0xd,%ebx
505ee1:	89 18                	mov    %ebx,(%eax)
505ee3:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505ee6:	2b de                	sub    %esi,%ebx
505ee8:	81 c3 00 10 00 00    	add    $0x1000,%ebx
505eee:	c1 fb 0d             	sar    $0xd,%ebx
505ef1:	89 58 20             	mov    %ebx,0x20(%eax)
505ef4:	83 c1 02             	add    $0x2,%ecx
505ef7:	83 45 f8 04          	addl   $0x4,-0x8(%ebp)
505efb:	83 c0 04             	add    $0x4,%eax
505efe:	4a                   	dec    %edx
505eff:	85 d2                	test   %edx,%edx
505f01:	0f 8f 1e ff ff ff    	jg     0x505e25
505f07:	8b 4d 0c             	mov    0xc(%ebp),%ecx
505f0a:	8d 45 ac             	lea    -0x54(%ebp),%eax
505f0d:	89 4d ec             	mov    %ecx,-0x14(%ebp)
505f10:	33 d2                	xor    %edx,%edx
505f12:	8b 4d ec             	mov    -0x14(%ebp),%ecx
505f15:	8b 58 04             	mov    0x4(%eax),%ebx
505f18:	0b 58 0c             	or     0xc(%eax),%ebx
505f1b:	0b 58 14             	or     0x14(%eax),%ebx
505f1e:	8b 09                	mov    (%ecx),%ecx
505f20:	03 4d 08             	add    0x8(%ebp),%ecx
505f23:	0b 58 1c             	or     0x1c(%eax),%ebx
505f26:	75 27                	jne    0x505f4f
505f28:	8b 18                	mov    (%eax),%ebx
505f2a:	8b 75 f4             	mov    -0xc(%ebp),%esi
505f2d:	83 c3 10             	add    $0x10,%ebx
505f30:	c1 fb 05             	sar    $0x5,%ebx
505f33:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505f39:	83 c0 20             	add    $0x20,%eax
505f3c:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
505f3f:	88 5d f3             	mov    %bl,-0xd(%ebp)
505f42:	8a 5d f3             	mov    -0xd(%ebp),%bl
505f45:	88 19                	mov    %bl,(%ecx)
505f47:	8a 5d f3             	mov    -0xd(%ebp),%bl
505f4a:	88 59 01             	mov    %bl,0x1(%ecx)
505f4d:	eb 74                	jmp    0x505fc3
505f4f:	8b 18                	mov    (%eax),%ebx
505f51:	c1 e3 0f             	shl    $0xf,%ebx
505f54:	89 5d fc             	mov    %ebx,-0x4(%ebp)
505f57:	69 58 14 37 1b 00 00 	imul   $0x1b37,0x14(%eax),%ebx
505f5e:	69 70 1c ee e8 ff ff 	imul   $0xffffe8ee,0x1c(%eax),%esi
505f65:	03 f3                	add    %ebx,%esi
505f67:	69 58 0c 46 d7 ff ff 	imul   $0xffffd746,0xc(%eax),%ebx
505f6e:	03 f3                	add    %ebx,%esi
505f70:	8b 58 04             	mov    0x4(%eax),%ebx
505f73:	8b fb                	mov    %ebx,%edi
505f75:	c1 e3 03             	shl    $0x3,%ebx
505f78:	2b df                	sub    %edi,%ebx
505f7a:	8d 1c 9f             	lea    (%edi,%ebx,4),%ebx
505f7d:	c1 e3 08             	shl    $0x8,%ebx
505f80:	2b df                	sub    %edi,%ebx
505f82:	8b 7d f4             	mov    -0xc(%ebp),%edi
505f85:	c1 e3 02             	shl    $0x2,%ebx
505f88:	03 f3                	add    %ebx,%esi
505f8a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505f8d:	03 de                	add    %esi,%ebx
505f8f:	81 c3 00 00 08 00    	add    $0x80000,%ebx
505f95:	c1 fb 14             	sar    $0x14,%ebx
505f98:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505f9e:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
505fa1:	88 19                	mov    %bl,(%ecx)
505fa3:	8b 5d fc             	mov    -0x4(%ebp),%ebx
505fa6:	2b de                	sub    %esi,%ebx
505fa8:	8b 75 f4             	mov    -0xc(%ebp),%esi
505fab:	81 c3 00 00 08 00    	add    $0x80000,%ebx
505fb1:	c1 fb 14             	sar    $0x14,%ebx
505fb4:	81 e3 ff 03 00 00    	and    $0x3ff,%ebx
505fba:	83 c0 20             	add    $0x20,%eax
505fbd:	8a 1c 1e             	mov    (%esi,%ebx,1),%bl
505fc0:	88 59 01             	mov    %bl,0x1(%ecx)
505fc3:	42                   	inc    %edx
505fc4:	83 45 ec 04          	addl   $0x4,-0x14(%ebp)
505fc8:	83 fa 02             	cmp    $0x2,%edx
505fcb:	0f 8c 41 ff ff ff    	jl     0x505f12
505fd1:	5f                   	pop    %edi
505fd2:	5e                   	pop    %esi
505fd3:	5b                   	pop    %ebx
505fd4:	8b e5                	mov    %ebp,%esp
505fd6:	5d                   	pop    %ebp
505fd7:	c2 08 00             	ret    $0x8
505fda:	90                   	nop
505fdb:	90                   	nop
505fdc:	55                   	push   %ebp
505fdd:	8b ec                	mov    %esp,%ebp
505fdf:	56                   	push   %esi
505fe0:	8b b0 3c 01 00 00    	mov    0x13c(%eax),%esi
505fe6:	8b 42 50             	mov    0x50(%edx),%eax
505fe9:	0f bf 11             	movswl (%ecx),%edx
505fec:	0f af 10             	imul   (%eax),%edx
505fef:	8b c2                	mov    %edx,%eax
505ff1:	81 c6 80 00 00 00    	add    $0x80,%esi
505ff7:	83 c0 04             	add    $0x4,%eax
505ffa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
505ffd:	c1 f8 03             	sar    $0x3,%eax
506000:	25 ff 03 00 00       	and    $0x3ff,%eax
506005:	8a 14 06             	mov    (%esi,%eax,1),%dl
506008:	8b 01                	mov    (%ecx),%eax
50600a:	8b 4d 08             	mov    0x8(%ebp),%ecx
50600d:	88 14 08             	mov    %dl,(%eax,%ecx,1)
506010:	5e                   	pop    %esi
506011:	5d                   	pop    %ebp
506012:	c2 08 00             	ret    $0x8
506015:	8d 40 00             	lea    0x0(%eax),%eax
506018:	53                   	push   %ebx
506019:	8b d8                	mov    %eax,%ebx
50601b:	8b 03                	mov    (%ebx),%eax
50601d:	c7 40 14 65 00 00 00 	movl   $0x65,0x14(%eax)
506024:	ba 01 00 00 00       	mov    $0x1,%edx
506029:	8b c3                	mov    %ebx,%eax
50602b:	8b 08                	mov    (%eax),%ecx
50602d:	ff 51 04             	call   *0x4(%ecx)
506030:	8b 93 b0 01 00 00    	mov    0x1b0(%ebx),%edx
506036:	83 7a 50 00          	cmpl   $0x0,0x50(%edx)
50603a:	74 0f                	je     0x50604b
50603c:	8b 03                	mov    (%ebx),%eax
50603e:	c7 40 14 3c 00 00 00 	movl   $0x3c,0x14(%eax)
506045:	8b c3                	mov    %ebx,%eax
506047:	8b 10                	mov    (%eax),%edx
506049:	ff 12                	call   *(%edx)
50604b:	33 d2                	xor    %edx,%edx
50604d:	8d 83 e0 00 00 00    	lea    0xe0(%ebx),%eax
506053:	c6 00 00             	movb   $0x0,(%eax)
506056:	c6 40 10 01          	movb   $0x1,0x10(%eax)
50605a:	c6 40 20 05          	movb   $0x5,0x20(%eax)
50605e:	42                   	inc    %edx
50605f:	40                   	inc    %eax
506060:	83 fa 10             	cmp    $0x10,%edx
506063:	7c ee                	jl     0x506053
506065:	33 c9                	xor    %ecx,%ecx
506067:	33 c0                	xor    %eax,%eax
506069:	89 8b 10 01 00 00    	mov    %ecx,0x110(%ebx)
50606f:	89 43 24             	mov    %eax,0x24(%ebx)
506072:	33 d2                	xor    %edx,%edx
506074:	33 c9                	xor    %ecx,%ecx
506076:	89 93 28 01 00 00    	mov    %edx,0x128(%ebx)
50607c:	89 8b 14 01 00 00    	mov    %ecx,0x114(%ebx)
506082:	c6 83 18 01 00 00 00 	movb   $0x0,0x118(%ebx)
506089:	66 c7 83 1a 01 00 00 	movw   $0x1,0x11a(%ebx)
506090:	01 00
506092:	66 c7 83 1c 01 00 00 	movw   $0x1,0x11c(%ebx)
506099:	01 00
50609b:	33 c0                	xor    %eax,%eax
50609d:	89 83 20 01 00 00    	mov    %eax,0x120(%ebx)
5060a3:	b8 01 00 00 00       	mov    $0x1,%eax
5060a8:	c6 83 24 01 00 00 00 	movb   $0x0,0x124(%ebx)
5060af:	8b 93 b0 01 00 00    	mov    0x1b0(%ebx),%edx
5060b5:	c7 42 50 01 00 00 00 	movl   $0x1,0x50(%edx)
5060bc:	5b                   	pop    %ebx
5060bd:	c3                   	ret
5060be:	90                   	nop
5060bf:	90                   	nop
5060c0:	53                   	push   %ebx
5060c1:	56                   	push   %esi
5060c2:	57                   	push   %edi
5060c3:	55                   	push   %ebp
5060c4:	83 c4 f0             	add    $0xfffffff0,%esp
5060c7:	8b d8                	mov    %eax,%ebx
5060c9:	89 4c 24 04          	mov    %ecx,0x4(%esp)
5060cd:	89 14 24             	mov    %edx,(%esp)
5060d0:	8b 43 14             	mov    0x14(%ebx),%eax
5060d3:	89 44 24 0c          	mov    %eax,0xc(%esp)
5060d7:	8b 44 24 0c          	mov    0xc(%esp),%eax
5060db:	8b 54 24 0c          	mov    0xc(%esp),%edx
5060df:	8b 78 04             	mov    0x4(%eax),%edi
5060e2:	8b 32                	mov    (%edx),%esi
5060e4:	8b 04 24             	mov    (%esp),%eax
5060e7:	85 ff                	test   %edi,%edi
5060e9:	89 83 d8 00 00 00    	mov    %eax,0xd8(%ebx)
5060ef:	8b 54 24 04          	mov    0x4(%esp),%edx
5060f3:	89 93 dc 00 00 00    	mov    %edx,0xdc(%ebx)
5060f9:	75 21                	jne    0x50611c
5060fb:	8b 74 24 0c          	mov    0xc(%esp),%esi
5060ff:	8b c3                	mov    %ebx,%eax
506101:	ff 56 0c             	call   *0xc(%esi)
506104:	85 c0                	test   %eax,%eax
506106:	75 07                	jne    0x50610f
506108:	33 c0                	xor    %eax,%eax
50610a:	e9 26 03 00 00       	jmp    0x506435
50610f:	8b 54 24 0c          	mov    0xc(%esp),%edx
506113:	8b 44 24 0c          	mov    0xc(%esp),%eax
506117:	8b 78 04             	mov    0x4(%eax),%edi
50611a:	8b 32                	mov    (%edx),%esi
50611c:	4f                   	dec    %edi
50611d:	0f b6 2e             	movzbl (%esi),%ebp
506120:	c1 e5 08             	shl    $0x8,%ebp
506123:	46                   	inc    %esi
506124:	85 ff                	test   %edi,%edi
506126:	75 21                	jne    0x506149
506128:	8b 74 24 0c          	mov    0xc(%esp),%esi
50612c:	8b c3                	mov    %ebx,%eax
50612e:	ff 56 0c             	call   *0xc(%esi)
506131:	85 c0                	test   %eax,%eax
506133:	75 07                	jne    0x50613c
506135:	33 c0                	xor    %eax,%eax
506137:	e9 f9 02 00 00       	jmp    0x506435
50613c:	8b 54 24 0c          	mov    0xc(%esp),%edx
506140:	8b 44 24 0c          	mov    0xc(%esp),%eax
506144:	8b 78 04             	mov    0x4(%eax),%edi
506147:	8b 32                	mov    (%edx),%esi