547892:	0f 85 cf 00 00 00    	jne    0x547967
547898:	f7 c6 80 00 00 00    	test   $0x80,%esi
54789e:	74 6c                	je     0x54790c
5478a0:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
5478a3:	03 ca                	add    %edx,%ecx
5478a5:	8b d0                	mov    %eax,%edx
5478a7:	03 d1                	add    %ecx,%edx
5478a9:	be 01 00 00 00       	mov    $0x1,%esi
5478ae:	3b c6                	cmp    %esi,%eax
5478b0:	76 35                	jbe    0x5478e7
5478b2:	4a                   	dec    %edx
5478b3:	8a 5d fb             	mov    -0x5(%ebp),%bl
5478b6:	49                   	dec    %ecx
5478b7:	46                   	inc    %esi
5478b8:	88 1a                	mov    %bl,(%edx)
5478ba:	4a                   	dec    %edx
5478bb:	8a 5d fa             	mov    -0x6(%ebp),%bl
5478be:	88 1a                	mov    %bl,(%edx)
5478c0:	4a                   	dec    %edx
5478c1:	8a 19                	mov    (%ecx),%bl
5478c3:	49                   	dec    %ecx
5478c4:	88 1a                	mov    %bl,(%edx)
5478c6:	4a                   	dec    %edx
5478c7:	8a 19                	mov    (%ecx),%bl
5478c9:	49                   	dec    %ecx
5478ca:	88 1a                	mov    %bl,(%edx)
5478cc:	4a                   	dec    %edx
5478cd:	8a 19                	mov    (%ecx),%bl
5478cf:	49                   	dec    %ecx
5478d0:	88 1a                	mov    %bl,(%edx)
5478d2:	4a                   	dec    %edx
5478d3:	8a 19                	mov    (%ecx),%bl
5478d5:	49                   	dec    %ecx
5478d6:	88 1a                	mov    %bl,(%edx)
5478d8:	4a                   	dec    %edx
5478d9:	8a 19                	mov    (%ecx),%bl
5478db:	49                   	dec    %ecx
5478dc:	88 1a                	mov    %bl,(%edx)
5478de:	4a                   	dec    %edx
5478df:	8a 19                	mov    (%ecx),%bl
5478e1:	3b c6                	cmp    %esi,%eax
5478e3:	88 1a                	mov    %bl,(%edx)
5478e5:	77 cb                	ja     0x5478b2
5478e7:	4a                   	dec    %edx
5478e8:	8a 4d fb             	mov    -0x5(%ebp),%cl
5478eb:	88 0a                	mov    %cl,(%edx)
5478ed:	4a                   	dec    %edx
5478ee:	8a 4d fa             	mov    -0x6(%ebp),%cl
5478f1:	88 0a                	mov    %cl,(%edx)
5478f3:	8b 55 fc             	mov    -0x4(%ebp),%edx
5478f6:	c6 42 0a 04          	movb   $0x4,0xa(%edx)
5478fa:	8b 55 fc             	mov    -0x4(%ebp),%edx
5478fd:	c6 42 0b 40          	movb   $0x40,0xb(%edx)
547901:	c1 e0 03             	shl    $0x3,%eax
547904:	8b 4d fc             	mov    -0x4(%ebp),%ecx
547907:	89 41 04             	mov    %eax,0x4(%ecx)
54790a:	eb 5b                	jmp    0x547967
54790c:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
54790f:	03 ca                	add    %edx,%ecx
547911:	8b d0                	mov    %eax,%edx
547913:	03 d1                	add    %ecx,%edx
547915:	33 f6                	xor    %esi,%esi
547917:	3b c6                	cmp    %esi,%eax
547919:	76 35                	jbe    0x547950
54791b:	49                   	dec    %ecx
54791c:	4a                   	dec    %edx
54791d:	46                   	inc    %esi
54791e:	8a 19                	mov    (%ecx),%bl
547920:	49                   	dec    %ecx
547921:	88 1a                	mov    %bl,(%edx)
547923:	4a                   	dec    %edx
547924:	8a 19                	mov    (%ecx),%bl
547926:	49                   	dec    %ecx
547927:	88 1a                	mov    %bl,(%edx)
547929:	4a                   	dec    %edx
54792a:	8a 19                	mov    (%ecx),%bl
54792c:	49                   	dec    %ecx
54792d:	88 1a                	mov    %bl,(%edx)
54792f:	4a                   	dec    %edx
547930:	8a 19                	mov    (%ecx),%bl
547932:	49                   	dec    %ecx
547933:	88 1a                	mov    %bl,(%edx)
547935:	4a                   	dec    %edx
547936:	8a 19                	mov    (%ecx),%bl
547938:	49                   	dec    %ecx
547939:	88 1a                	mov    %bl,(%edx)
54793b:	4a                   	dec    %edx
54793c:	8a 19                	mov    (%ecx),%bl
54793e:	88 1a                	mov    %bl,(%edx)
547940:	4a                   	dec    %edx
547941:	8a 5d fb             	mov    -0x5(%ebp),%bl
547944:	88 1a                	mov    %bl,(%edx)
547946:	4a                   	dec    %edx
547947:	8a 5d fa             	mov    -0x6(%ebp),%bl
54794a:	3b c6                	cmp    %esi,%eax
54794c:	88 1a                	mov    %bl,(%edx)
54794e:	77 cb                	ja     0x54791b
547950:	8b 55 fc             	mov    -0x4(%ebp),%edx
547953:	c6 42 0a 04          	movb   $0x4,0xa(%edx)
547957:	8b 4d fc             	mov    -0x4(%ebp),%ecx
54795a:	c6 41 0b 40          	movb   $0x40,0xb(%ecx)
54795e:	c1 e0 03             	shl    $0x3,%eax
547961:	8b 55 fc             	mov    -0x4(%ebp),%edx
547964:	89 42 04             	mov    %eax,0x4(%edx)
547967:	5e                   	pop    %esi
547968:	5b                   	pop    %ebx
547969:	59                   	pop    %ecx
54796a:	59                   	pop    %ecx
54796b:	5d                   	pop    %ebp
54796c:	c2 04 00             	ret    $0x4
54796f:	90                   	nop
547970:	53                   	push   %ebx
547971:	56                   	push   %esi
547972:	57                   	push   %edi
547973:	8b 38                	mov    (%eax),%edi
547975:	8a 48 09             	mov    0x9(%eax),%cl
547978:	80 f9 08             	cmp    $0x8,%cl
54797b:	0f 82 3a 01 00 00    	jb     0x547abb
547981:	f6 40 08 02          	testb  $0x2,0x8(%eax)
547985:	0f 85 30 01 00 00    	jne    0x547abb
54798b:	8a 58 08             	mov    0x8(%eax),%bl
54798e:	84 db                	test   %bl,%bl
547990:	75 78                	jne    0x547a0a
547992:	80 f9 08             	cmp    $0x8,%cl
547995:	75 2f                	jne    0x5479c6
547997:	8b cf                	mov    %edi,%ecx
547999:	33 f6                	xor    %esi,%esi
54799b:	03 ca                	add    %edx,%ecx
54799d:	8b d7                	mov    %edi,%edx
54799f:	49                   	dec    %ecx
5479a0:	03 d2                	add    %edx,%edx
5479a2:	03 d1                	add    %ecx,%edx
5479a4:	3b fe                	cmp    %esi,%edi
5479a6:	0f 86 e5 00 00 00    	jbe    0x547a91
5479ac:	8a 19                	mov    (%ecx),%bl
5479ae:	46                   	inc    %esi
5479af:	88 1a                	mov    %bl,(%edx)
5479b1:	4a                   	dec    %edx
5479b2:	8a 19                	mov    (%ecx),%bl
5479b4:	88 1a                	mov    %bl,(%edx)
5479b6:	4a                   	dec    %edx
5479b7:	8a 19                	mov    (%ecx),%bl
5479b9:	49                   	dec    %ecx
5479ba:	88 1a                	mov    %bl,(%edx)
5479bc:	4a                   	dec    %edx
5479bd:	3b fe                	cmp    %esi,%edi
5479bf:	77 eb                	ja     0x5479ac
5479c1:	e9 cb 00 00 00       	jmp    0x547a91
5479c6:	8b cf                	mov    %edi,%ecx
5479c8:	33 f6                	xor    %esi,%esi
5479ca:	03 c9                	add    %ecx,%ecx
5479cc:	03 ca                	add    %edx,%ecx
5479ce:	8b d7                	mov    %edi,%edx
5479d0:	c1 e2 02             	shl    $0x2,%edx
5479d3:	49                   	dec    %ecx
5479d4:	03 d1                	add    %ecx,%edx
5479d6:	3b fe                	cmp    %esi,%edi
5479d8:	0f 86 b3 00 00 00    	jbe    0x547a91
5479de:	8a 19                	mov    (%ecx),%bl
5479e0:	46                   	inc    %esi
5479e1:	88 1a                	mov    %bl,(%edx)
5479e3:	4a                   	dec    %edx
5479e4:	8a 59 ff             	mov    -0x1(%ecx),%bl
5479e7:	88 1a                	mov    %bl,(%edx)
5479e9:	4a                   	dec    %edx
5479ea:	8a 19                	mov    (%ecx),%bl
5479ec:	88 1a                	mov    %bl,(%edx)
5479ee:	4a                   	dec    %edx
5479ef:	8a 59 ff             	mov    -0x1(%ecx),%bl
5479f2:	88 1a                	mov    %bl,(%edx)
5479f4:	4a                   	dec    %edx
5479f5:	8a 19                	mov    (%ecx),%bl
5479f7:	49                   	dec    %ecx
5479f8:	88 1a                	mov    %bl,(%edx)
5479fa:	4a                   	dec    %edx
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