5479fb:	8a 19                	mov    (%ecx),%bl
5479fd:	49                   	dec    %ecx
5479fe:	88 1a                	mov    %bl,(%edx)
547a00:	4a                   	dec    %edx
547a01:	3b fe                	cmp    %esi,%edi
547a03:	77 d9                	ja     0x5479de
547a05:	e9 87 00 00 00       	jmp    0x547a91
547a0a:	8a 48 08             	mov    0x8(%eax),%cl
547a0d:	80 f9 04             	cmp    $0x4,%cl
547a10:	75 7f                	jne    0x547a91
547a12:	8a 48 09             	mov    0x9(%eax),%cl
547a15:	80 f9 08             	cmp    $0x8,%cl
547a18:	75 30                	jne    0x547a4a
547a1a:	8b df                	mov    %edi,%ebx
547a1c:	03 db                	add    %ebx,%ebx
547a1e:	8b cb                	mov    %ebx,%ecx
547a20:	03 ca                	add    %edx,%ecx
547a22:	49                   	dec    %ecx
547a23:	8b d3                	mov    %ebx,%edx
547a25:	03 d1                	add    %ecx,%edx
547a27:	33 f6                	xor    %esi,%esi
547a29:	3b fe                	cmp    %esi,%edi
547a2b:	76 64                	jbe    0x547a91
547a2d:	8a 19                	mov    (%ecx),%bl
547a2f:	49                   	dec    %ecx
547a30:	88 1a                	mov    %bl,(%edx)
547a32:	4a                   	dec    %edx
547a33:	8a 19                	mov    (%ecx),%bl
547a35:	46                   	inc    %esi
547a36:	88 1a                	mov    %bl,(%edx)
547a38:	4a                   	dec    %edx
547a39:	8a 19                	mov    (%ecx),%bl
547a3b:	88 1a                	mov    %bl,(%edx)
547a3d:	4a                   	dec    %edx
547a3e:	8a 19                	mov    (%ecx),%bl
547a40:	49                   	dec    %ecx
547a41:	88 1a                	mov    %bl,(%edx)
547a43:	4a                   	dec    %edx
547a44:	3b fe                	cmp    %esi,%edi
547a46:	77 e5                	ja     0x547a2d
547a48:	eb 47                	jmp    0x547a91
547a4a:	8b df                	mov    %edi,%ebx
547a4c:	c1 e3 02             	shl    $0x2,%ebx
547a4f:	8b cb                	mov    %ebx,%ecx
547a51:	03 ca                	add    %edx,%ecx
547a53:	49                   	dec    %ecx
547a54:	8b d3                	mov    %ebx,%edx
547a56:	03 d1                	add    %ecx,%edx
547a58:	33 f6                	xor    %esi,%esi
547a5a:	3b fe                	cmp    %esi,%edi
547a5c:	76 33                	jbe    0x547a91
547a5e:	8a 19                	mov    (%ecx),%bl
547a60:	49                   	dec    %ecx
547a61:	88 1a                	mov    %bl,(%edx)
547a63:	4a                   	dec    %edx
547a64:	8a 19                	mov    (%ecx),%bl
547a66:	49                   	dec    %ecx
547a67:	88 1a                	mov    %bl,(%edx)
547a69:	4a                   	dec    %edx
547a6a:	8a 19                	mov    (%ecx),%bl
547a6c:	46                   	inc    %esi
547a6d:	88 1a                	mov    %bl,(%edx)
547a6f:	4a                   	dec    %edx
547a70:	8a 59 ff             	mov    -0x1(%ecx),%bl
547a73:	88 1a                	mov    %bl,(%edx)
547a75:	4a                   	dec    %edx
547a76:	8a 19                	mov    (%ecx),%bl
547a78:	88 1a                	mov    %bl,(%edx)
547a7a:	4a                   	dec    %edx
547a7b:	8a 59 ff             	mov    -0x1(%ecx),%bl
547a7e:	88 1a                	mov    %bl,(%edx)
547a80:	4a                   	dec    %edx
547a81:	8a 19                	mov    (%ecx),%bl
547a83:	49                   	dec    %ecx
547a84:	88 1a                	mov    %bl,(%edx)
547a86:	4a                   	dec    %edx
547a87:	8a 19                	mov    (%ecx),%bl
547a89:	49                   	dec    %ecx
547a8a:	88 1a                	mov    %bl,(%edx)
547a8c:	4a                   	dec    %edx
547a8d:	3b fe                	cmp    %esi,%edi
547a8f:	77 cd                	ja     0x547a5e
547a91:	80 40 0a 02          	addb   $0x2,0xa(%eax)
547a95:	80 48 08 02          	orb    $0x2,0x8(%eax)
547a99:	33 d2                	xor    %edx,%edx
547a9b:	33 c9                	xor    %ecx,%ecx
547a9d:	8a 48 09             	mov    0x9(%eax),%cl
547aa0:	8a 50 0a             	mov    0xa(%eax),%dl
547aa3:	0f af d1             	imul   %ecx,%edx
547aa6:	88 50 0b             	mov    %dl,0xb(%eax)
547aa9:	81 e2 ff 00 00 00    	and    $0xff,%edx
547aaf:	0f af d7             	imul   %edi,%edx
547ab2:	83 c2 07             	add    $0x7,%edx
547ab5:	c1 ea 03             	shr    $0x3,%edx
547ab8:	89 50 04             	mov    %edx,0x4(%eax)
547abb:	5f                   	pop    %edi
547abc:	5e                   	pop    %esi
547abd:	5b                   	pop    %ebx
547abe:	c3                   	ret
547abf:	90                   	nop
547ac0:	53                   	push   %ebx
547ac1:	56                   	push   %esi
547ac2:	57                   	push   %edi
547ac3:	55                   	push   %ebp
547ac4:	83 c4 90             	add    $0xffffff90,%esp
547ac7:	89 4c 24 04          	mov    %ecx,0x4(%esp)
547acb:	89 14 24             	mov    %edx,(%esp)
547ace:	8b 14 24             	mov    (%esp),%edx
547ad1:	8b 3a                	mov    (%edx),%edi
547ad3:	33 d2                	xor    %edx,%edx
547ad5:	89 54 24 08          	mov    %edx,0x8(%esp)
547ad9:	8b 0c 24             	mov    (%esp),%ecx
547adc:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
547ae0:	0f 84 74 08 00 00    	je     0x54835a
547ae6:	0f b7 90 e6 01 00 00 	movzwl 0x1e6(%eax),%edx
547aed:	89 54 24 0c          	mov    %edx,0xc(%esp)
547af1:	0f b7 90 e8 01 00 00 	movzwl 0x1e8(%eax),%edx
547af8:	0f b7 88 ea 01 00 00 	movzwl 0x1ea(%eax),%ecx
547aff:	89 4c 24 10          	mov    %ecx,0x10(%esp)
547b03:	8b 0c 24             	mov    (%esp),%ecx
547b06:	8a 49 08             	mov    0x8(%ecx),%cl
547b09:	80 f9 02             	cmp    $0x2,%cl
547b0c:	0f 85 0b 04 00 00    	jne    0x547f1d
547b12:	8b 0c 24             	mov    (%esp),%ecx
547b15:	8a 49 09             	mov    0x9(%ecx),%cl
547b18:	80 f9 08             	cmp    $0x8,%cl
547b1b:	0f 85 7c 01 00 00    	jne    0x547c9d
547b21:	8b 88 28 01 00 00    	mov    0x128(%eax),%ecx
547b27:	85 c9                	test   %ecx,%ecx
547b29:	0f 84 e1 00 00 00    	je     0x547c10
547b2f:	8b 88 2c 01 00 00    	mov    0x12c(%eax),%ecx
547b35:	85 c9                	test   %ecx,%ecx
547b37:	0f 84 d3 00 00 00    	je     0x547c10
547b3d:	8b 4c 24 04          	mov    0x4(%esp),%ecx
547b41:	33 db                	xor    %ebx,%ebx
547b43:	89 4c 24 14          	mov    %ecx,0x14(%esp)
547b47:	3b fb                	cmp    %ebx,%edi
547b49:	8b 4c 24 04          	mov    0x4(%esp),%ecx
547b4d:	89 4c 24 18          	mov    %ecx,0x18(%esp)
547b51:	0f 86 c6 03 00 00    	jbe    0x547f1d
547b57:	8b 4c 24 14          	mov    0x14(%esp),%ecx
547b5b:	8b b0 2c 01 00 00    	mov    0x12c(%eax),%esi
547b61:	0f b6 09             	movzbl (%ecx),%ecx
547b64:	8a 0c 0e             	mov    (%esi,%ecx,1),%cl
547b67:	88 4c 24 1c          	mov    %cl,0x1c(%esp)
547b6b:	ff 44 24 14          	incl   0x14(%esp)
547b6f:	8b 4c 24 14          	mov    0x14(%esp),%ecx
547b73:	8b b0 2c 01 00 00    	mov    0x12c(%eax),%esi
547b79:	0f b6 09             	movzbl (%ecx),%ecx
547b7c:	8a 0c 0e             	mov    (%esi,%ecx,1),%cl
547b7f:	88 4c 24 1d          	mov    %cl,0x1d(%esp)
547b83:	ff 44 24 14          	incl   0x14(%esp)
547b87:	8b 4c 24 14          	mov    0x14(%esp),%ecx
547b8b:	8b b0 2c 01 00 00    	mov    0x12c(%eax),%esi
547b91:	0f b6 09             	movzbl (%ecx),%ecx
547b94:	8a 0c 0e             	mov    (%esi,%ecx,1),%cl
547b97:	88 4c 24 1e          	mov    %cl,0x1e(%esp)
547b9b:	ff 44 24 14          	incl   0x14(%esp)
547b9f:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
547ba3:	3a 4c 24 1d          	cmp    0x1d(%esp),%cl
547ba7:	75 0a                	jne    0x547bb3
547ba9:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
547bad:	3a 4c 24 1e          	cmp    0x1e(%esp),%cl
547bb1:	74 3e                	je     0x547bf1
547bb3:	83 4c 24 08 01       	orl    $0x1,0x8(%esp)
547bb8:	33 c9                	xor    %ecx,%ecx
547bba:	8a 4c 24 1c          	mov    0x1c(%esp),%cl
547bbe:	0f af 4c 24 0c       	imul   0xc(%esp),%ecx
547bc3:	0f b6 74 24 1d       	movzbl 0x1d(%esp),%esi
547bc8:	0f af f2             	imul   %edx,%esi
547bcb:	03 ce                	add    %esi,%ecx
547bcd:	0f b6 74 24 1e       	movzbl 0x1e(%esp),%esi
547bd2:	0f af 74 24 10       	imul   0x10(%esp),%esi
547bd7:	03 ce                	add    %esi,%ecx
547bd9:	c1 e9 0f             	shr    $0xf,%ecx
547bdc:	8b b0 28 01 00 00    	mov    0x128(%eax),%esi
547be2:	8a 0c 0e             	mov    (%esi,%ecx,1),%cl
547be5:	8b 74 24 18          	mov    0x18(%esp),%esi
547be9:	88 0e                	mov    %cl,(%esi)
547beb:	ff 44 24 18          	incl   0x18(%esp)
547bef:	eb 11                	jmp    0x547c02
547bf1:	8b 4c 24 14          	mov    0x14(%esp),%ecx
547bf5:	8b 74 24 18          	mov    0x18(%esp),%esi
547bf9:	8a 49 ff             	mov    -0x1(%ecx),%cl
547bfc:	88 0e                	mov    %cl,(%esi)
547bfe:	ff 44 24 18          	incl   0x18(%esp)
547c02:	43                   	inc    %ebx
547c03:	3b fb                	cmp    %ebx,%edi
547c05:	0f 87 4c ff ff ff    	ja     0x547b57
547c0b:	e9 0d 03 00 00       	jmp    0x547f1d
547c10:	8b 74 24 04          	mov    0x4(%esp),%esi
547c14:	8b 4c 24 04          	mov    0x4(%esp),%ecx
547c18:	89 4c 24 20          	mov    %ecx,0x20(%esp)
547c1c:	33 db                	xor    %ebx,%ebx
547c1e:	3b fb                	cmp    %ebx,%edi
547c20:	0f 86 f7 02 00 00    	jbe    0x547f1d
547c26:	8a 0e                	mov    (%esi),%cl
547c28:	46                   	inc    %esi
547c29:	88 4c 24 24          	mov    %cl,0x24(%esp)
547c2d:	8a 0e                	mov    (%esi),%cl
547c2f:	46                   	inc    %esi
547c30:	88 4c 24 25          	mov    %cl,0x25(%esp)
547c34:	8a 0e                	mov    (%esi),%cl
547c36:	46                   	inc    %esi
547c37:	88 4c 24 26          	mov    %cl,0x26(%esp)
547c3b:	8a 4c 24 24          	mov    0x24(%esp),%cl
547c3f:	3a 4c 24 25          	cmp    0x25(%esp),%cl
547c43:	75 0a                	jne    0x547c4f
547c45:	8a 4c 24 24          	mov    0x24(%esp),%cl
547c49:	3a 4c 24 26          	cmp    0x26(%esp),%cl
547c4d:	74 36                	je     0x547c85
547c4f:	83 4c 24 08 01       	orl    $0x1,0x8(%esp)
547c54:	0f b6 6c 24 25       	movzbl 0x25(%esp),%ebp
547c59:	33 c9                	xor    %ecx,%ecx
547c5b:	0f af ea             	imul   %edx,%ebp
547c5e:	8a 4c 24 24          	mov    0x24(%esp),%cl
547c62:	0f af 4c 24 0c       	imul   0xc(%esp),%ecx
547c67:	03 cd                	add    %ebp,%ecx
547c69:	0f b6 6c 24 26       	movzbl 0x26(%esp),%ebp
547c6e:	0f af 6c 24 10       	imul   0x10(%esp),%ebp
547c73:	03 cd                	add    %ebp,%ecx
547c75:	8b 6c 24 20          	mov    0x20(%esp),%ebp
547c79:	c1 e9 0f             	shr    $0xf,%ecx
547c7c:	88 4d 00             	mov    %cl,0x0(%ebp)
547c7f:	ff 44 24 20          	incl   0x20(%esp)
547c83:	eb 0e                	jmp    0x547c93
547c85:	8a 4e ff             	mov    -0x1(%esi),%cl
547c88:	8b 6c 24 20          	mov    0x20(%esp),%ebp
547c8c:	88 4d 00             	mov    %cl,0x0(%ebp)
547c8f:	ff 44 24 20          	incl   0x20(%esp)
547c93:	43                   	inc    %ebx
547c94:	3b fb                	cmp    %ebx,%edi
547c96:	77 8e                	ja     0x547c26
547c98:	e9 80 02 00 00       	jmp    0x547f1d
547c9d:	8b 88 38 01 00 00    	mov    0x138(%eax),%ecx
547ca3:	85 c9                	test   %ecx,%ecx
547ca5:	0f 84 a4 01 00 00    	je     0x547e4f
547cab:	8b 88 34 01 00 00    	mov    0x134(%eax),%ecx
547cb1:	85 c9                	test   %ecx,%ecx
547cb3:	0f 84 96 01 00 00    	je     0x547e4f
547cb9:	8b 74 24 04          	mov    0x4(%esp),%esi
547cbd:	8b 4c 24 04          	mov    0x4(%esp),%ecx
547cc1:	89 4c 24 28          	mov    %ecx,0x28(%esp)
547cc5:	33 db                	xor    %ebx,%ebx
547cc7:	3b fb                	cmp    %ebx,%edi
547cc9:	0f 86 4e 02 00 00    	jbe    0x547f1d
547ccf:	33 c9                	xor    %ecx,%ecx
547cd1:	8a 0e                	mov    (%esi),%cl
547cd3:	c1 e1 08             	shl    $0x8,%ecx
547cd6:	0f b6 6e 01          	movzbl 0x1(%esi),%ebp
547cda:	66 0b cd             	or     %bp,%cx
547cdd:	66 89 4c 24 2c       	mov    %cx,0x2c(%esp)
547ce2:	83 c6 02             	add    $0x2,%esi
547ce5:	33 c9                	xor    %ecx,%ecx
547ce7:	8a 0e                	mov    (%esi),%cl
547ce9:	c1 e1 08             	shl    $0x8,%ecx
547cec:	0f b6 6e 01          	movzbl 0x1(%esi),%ebp
547cf0:	66 0b cd             	or     %bp,%cx
547cf3:	66 89 4c 24 2e       	mov    %cx,0x2e(%esp)
547cf8:	83 c6 02             	add    $0x2,%esi
547cfb:	33 c9                	xor    %ecx,%ecx
547cfd:	8a 0e                	mov    (%esi),%cl
547cff:	c1 e1 08             	shl    $0x8,%ecx
547d02:	0f b6 6e 01          	movzbl 0x1(%esi),%ebp
547d06:	66 0b cd             	or     %bp,%cx
547d09:	66 89 4c 24 30       	mov    %cx,0x30(%esp)
547d0e:	83 c6 02             	add    $0x2,%esi
547d11:	66 8b 4c 24 2c       	mov    0x2c(%esp),%cx
547d16:	66 3b 4c 24 2e       	cmp    0x2e(%esp),%cx
547d1b:	75 1b                	jne    0x547d38
547d1d:	66 8b 4c 24 2c       	mov    0x2c(%esp),%cx
547d22:	66 3b 4c 24 30       	cmp    0x30(%esp),%cx
547d27:	75 0f                	jne    0x547d38
547d29:	66 8b 4c 24 2c       	mov    0x2c(%esp),%cx
547d2e:	66 89 4c 24 32       	mov    %cx,0x32(%esp)
547d33:	e9 e1 00 00 00       	jmp    0x547e19
547d38:	0f b7 6c 24 2c       	movzwl 0x2c(%esp),%ebp
547d3d:	8b 88 18 01 00 00    	mov    0x118(%eax),%ecx
547d43:	81 e5 ff 00 00 00    	and    $0xff,%ebp
547d49:	d3 fd                	sar    %cl,%ebp
547d4b:	8b 88 38 01 00 00    	mov    0x138(%eax),%ecx
547d51:	8b 0c a9             	mov    (%ecx,%ebp,4),%ecx
547d54:	0f b7 6c 24 2c       	movzwl 0x2c(%esp),%ebp
547d59:	c1 fd 08             	sar    $0x8,%ebp
547d5c:	66 8b 0c 69          	mov    (%ecx,%ebp,2),%cx
547d60:	66 89 4c 24 34       	mov    %cx,0x34(%esp)
547d65:	0f b7 6c 24 2e       	movzwl 0x2e(%esp),%ebp
547d6a:	8b 88 18 01 00 00    	mov    0x118(%eax),%ecx
547d70:	81 e5 ff 00 00 00    	and    $0xff,%ebp
547d76:	d3 fd                	sar    %cl,%ebp
547d78:	8b 88 38 01 00 00    	mov    0x138(%eax),%ecx
547d7e:	8b 0c a9             	mov    (%ecx,%ebp,4),%ecx
547d81:	0f b7 6c 24 2e       	movzwl 0x2e(%esp),%ebp
547d86:	c1 fd 08             	sar    $0x8,%ebp
547d89:	66 8b 0c 69          	mov    (%ecx,%ebp,2),%cx
547d8d:	66 89 4c 24 36       	mov    %cx,0x36(%esp)
547d92:	0f b7 6c 24 30       	movzwl 0x30(%esp),%ebp
547d97:	8b 88 18 01 00 00    	mov    0x118(%eax),%ecx
547d9d:	81 e5 ff 00 00 00    	and    $0xff,%ebp
547da3:	d3 fd                	sar    %cl,%ebp
547da5:	8b 88 38 01 00 00    	mov    0x138(%eax),%ecx
547dab:	8b 0c a9             	mov    (%ecx,%ebp,4),%ecx
547dae:	0f b7 6c 24 30       	movzwl 0x30(%esp),%ebp
547db3:	c1 fd 08             	sar    $0x8,%ebp
547db6:	66 8b 0c 69          	mov    (%ecx,%ebp,2),%cx
547dba:	66 89 4c 24 38       	mov    %cx,0x38(%esp)
547dbf:	0f b7 4c 24 34       	movzwl 0x34(%esp),%ecx
547dc4:	0f b7 6c 24 36       	movzwl 0x36(%esp),%ebp
547dc9:	0f af 4c 24 0c       	imul   0xc(%esp),%ecx
547dce:	0f af ea             	imul   %edx,%ebp
547dd1:	03 cd                	add    %ebp,%ecx
547dd3:	0f b7 6c 24 38       	movzwl 0x38(%esp),%ebp
547dd8:	0f af 6c 24 10       	imul   0x10(%esp),%ebp
547ddd:	03 cd                	add    %ebp,%ecx
547ddf:	c1 e9 0f             	shr    $0xf,%ecx
547de2:	66 89 4c 24 3a       	mov    %cx,0x3a(%esp)
547de7:	0f b7 6c 24 3a       	movzwl 0x3a(%esp),%ebp
547dec:	8b 88 18 01 00 00    	mov    0x118(%eax),%ecx
547df2:	81 e5 ff 00 00 00    	and    $0xff,%ebp
547df8:	d3 fd                	sar    %cl,%ebp
547dfa:	8b 88 34 01 00 00    	mov    0x134(%eax),%ecx
547e00:	8b 0c a9             	mov    (%ecx,%ebp,4),%ecx
547e03:	0f b7 6c 24 3a       	movzwl 0x3a(%esp),%ebp
547e08:	c1 fd 08             	sar    $0x8,%ebp
547e0b:	66 8b 0c 69          	mov    (%ecx,%ebp,2),%cx
547e0f:	66 89 4c 24 32       	mov    %cx,0x32(%esp)
547e14:	83 4c 24 08 01       	orl    $0x1,0x8(%esp)
547e19:	0f b7 4c 24 32       	movzwl 0x32(%esp),%ecx
547e1e:	c1 f9 08             	sar    $0x8,%ecx
547e21:	8b 6c 24 28          	mov    0x28(%esp),%ebp
547e25:	80 e1 ff             	and    $0xff,%cl
547e28:	88 4d 00             	mov    %cl,0x0(%ebp)
547e2b:	ff 44 24 28          	incl   0x28(%esp)
547e2f:	8b 6c 24 28          	mov    0x28(%esp),%ebp
547e33:	8a 4c 24 32          	mov    0x32(%esp),%cl
547e37:	80 e1 ff             	and    $0xff,%cl
547e3a:	88 4d 00             	mov    %cl,0x0(%ebp)
547e3d:	ff 44 24 28          	incl   0x28(%esp)
547e41:	43                   	inc    %ebx
547e42:	3b fb                	cmp    %ebx,%edi
547e44:	0f 87 85 fe ff ff    	ja     0x547ccf
547e4a:	e9 ce 00 00 00       	jmp    0x547f1d
547e4f:	8b 74 24 04          	mov    0x4(%esp),%esi
547e53:	8b 4c 24 04          	mov    0x4(%esp),%ecx
547e57:	89 4c 24 3c          	mov    %ecx,0x3c(%esp)
547e5b:	33 db                	xor    %ebx,%ebx
547e5d:	3b fb                	cmp    %ebx,%edi
547e5f:	0f 86 b8 00 00 00    	jbe    0x547f1d
547e65:	33 c9                	xor    %ecx,%ecx
547e67:	8a 0e                	mov    (%esi),%cl