557e34:	48                   	dec    %eax
557e35:	8b f3                	mov    %ebx,%esi
557e37:	4e                   	dec    %esi
557e38:	85 f6                	test   %esi,%esi
557e3a:	0f 8c e7 00 00 00    	jl     0x557f27
557e40:	46                   	inc    %esi
557e41:	8b d1                	mov    %ecx,%edx
557e43:	8a 1a                	mov    (%edx),%bl
557e45:	88 5d ff             	mov    %bl,-0x1(%ebp)
557e48:	8a 1c 01             	mov    (%ecx,%eax,1),%bl
557e4b:	88 1a                	mov    %bl,(%edx)
557e4d:	8a 5d ff             	mov    -0x1(%ebp),%bl
557e50:	88 1c 01             	mov    %bl,(%ecx,%eax,1)
557e53:	48                   	dec    %eax
557e54:	42                   	inc    %edx
557e55:	4e                   	dec    %esi
557e56:	75 eb                	jne    0x557e43
557e58:	e9 ca 00 00 00       	jmp    0x557f27
557e5d:	0f b7 c6             	movzwl %si,%eax
557e60:	bb 03 00 00 00       	mov    $0x3,%ebx
557e65:	33 d2                	xor    %edx,%edx
557e67:	f7 f3                	div    %ebx
557e69:	8b d8                	mov    %eax,%ebx
557e6b:	d1 eb                	shr    $1,%ebx
557e6d:	0f b7 c6             	movzwl %si,%eax
557e70:	83 e8 03             	sub    $0x3,%eax
557e73:	33 d2                	xor    %edx,%edx
557e75:	8b f3                	mov    %ebx,%esi
557e77:	4e                   	dec    %esi
557e78:	85 f6                	test   %esi,%esi
557e7a:	0f 8c a7 00 00 00    	jl     0x557f27
557e80:	46                   	inc    %esi
557e81:	8a 1c 11             	mov    (%ecx,%edx,1),%bl
557e84:	88 5d ff             	mov    %bl,-0x1(%ebp)
557e87:	8a 5c 11 01          	mov    0x1(%ecx,%edx,1),%bl
557e8b:	88 5d fe             	mov    %bl,-0x2(%ebp)
557e8e:	8a 5c 11 02          	mov    0x2(%ecx,%edx,1),%bl
557e92:	88 5d fd             	mov    %bl,-0x3(%ebp)
557e95:	8a 1c 01             	mov    (%ecx,%eax,1),%bl
557e98:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
557e9b:	8a 5c 01 01          	mov    0x1(%ecx,%eax,1),%bl
557e9f:	88 5c 11 01          	mov    %bl,0x1(%ecx,%edx,1)
557ea3:	8a 5c 01 02          	mov    0x2(%ecx,%eax,1),%bl
557ea7:	88 5c 11 02          	mov    %bl,0x2(%ecx,%edx,1)
557eab:	8a 5d ff             	mov    -0x1(%ebp),%bl
557eae:	88 1c 01             	mov    %bl,(%ecx,%eax,1)
557eb1:	8a 5d fe             	mov    -0x2(%ebp),%bl
557eb4:	88 5c 01 01          	mov    %bl,0x1(%ecx,%eax,1)
557eb8:	8a 5d fd             	mov    -0x3(%ebp),%bl
557ebb:	88 5c 01 02          	mov    %bl,0x2(%ecx,%eax,1)
557ebf:	83 e8 03             	sub    $0x3,%eax
557ec2:	83 c2 03             	add    $0x3,%edx
557ec5:	4e                   	dec    %esi
557ec6:	75 b9                	jne    0x557e81
557ec8:	eb 5d                	jmp    0x557f27
557eca:	0f b7 de             	movzwl %si,%ebx
557ecd:	c1 eb 03             	shr    $0x3,%ebx
557ed0:	0f b7 c6             	movzwl %si,%eax
557ed3:	83 e8 04             	sub    $0x4,%eax
557ed6:	33 d2                	xor    %edx,%edx
557ed8:	8b f3                	mov    %ebx,%esi
557eda:	4e                   	dec    %esi
557edb:	85 f6                	test   %esi,%esi
557edd:	7c 48                	jl     0x557f27
557edf:	46                   	inc    %esi
557ee0:	8a 1c 11             	mov    (%ecx,%edx,1),%bl
557ee3:	88 5d ff             	mov    %bl,-0x1(%ebp)
557ee6:	8a 5c 11 01          	mov    0x1(%ecx,%edx,1),%bl
557eea:	88 5d fe             	mov    %bl,-0x2(%ebp)
557eed:	8a 5c 11 02          	mov    0x2(%ecx,%edx,1),%bl
557ef1:	88 5d fd             	mov    %bl,-0x3(%ebp)
557ef4:	8a 1c 01             	mov    (%ecx,%eax,1),%bl
557ef7:	88 1c 11             	mov    %bl,(%ecx,%edx,1)
557efa:	8a 5c 01 01          	mov    0x1(%ecx,%eax,1),%bl
557efe:	88 5c 11 01          	mov    %bl,0x1(%ecx,%edx,1)
557f02:	8a 5c 01 02          	mov    0x2(%ecx,%eax,1),%bl
557f06:	88 5c 11 02          	mov    %bl,0x2(%ecx,%edx,1)
557f0a:	8a 5d ff             	mov    -0x1(%ebp),%bl
557f0d:	88 1c 01             	mov    %bl,(%ecx,%eax,1)
557f10:	8a 5d fe             	mov    -0x2(%ebp),%bl
557f13:	88 5c 01 01          	mov    %bl,0x1(%ecx,%eax,1)
557f17:	8a 5d fd             	mov    -0x3(%ebp),%bl
557f1a:	88 5c 01 02          	mov    %bl,0x2(%ecx,%eax,1)
557f1e:	83 e8 04             	sub    $0x4,%eax
557f21:	83 c2 04             	add    $0x4,%edx
557f24:	4e                   	dec    %esi
557f25:	75 b9                	jne    0x557ee0
557f27:	5e                   	pop    %esi
557f28:	5b                   	pop    %ebx
557f29:	59                   	pop    %ecx
557f2a:	5d                   	pop    %ebp
557f2b:	c3                   	ret
557f2c:	55                   	push   %ebp
557f2d:	8b ec                	mov    %esp,%ebp
557f2f:	8b 55 08             	mov    0x8(%ebp),%edx
557f32:	f6 42 f7 10          	testb  $0x10,-0x9(%edx)
557f36:	74 11                	je     0x557f49
557f38:	8b 55 08             	mov    0x8(%ebp),%edx
557f3b:	52                   	push   %edx
557f3c:	8b 55 08             	mov    0x8(%ebp),%edx
557f3f:	66 8b 52 dc          	mov    -0x24(%edx),%dx
557f43:	e8 b8 fe ff ff       	call   0x557e00
557f48:	59                   	pop    %ecx
557f49:	5d                   	pop    %ebp
557f4a:	c3                   	ret
557f4b:	90                   	nop
557f4c:	55                   	push   %ebp
557f4d:	8b ec                	mov    %esp,%ebp
557f4f:	51                   	push   %ecx
557f50:	53                   	push   %ebx
557f51:	56                   	push   %esi
557f52:	57                   	push   %edi
557f53:	8b f2                	mov    %edx,%esi
557f55:	8b d8                	mov    %eax,%ebx
557f57:	0f b7 f9             	movzwl %cx,%edi
557f5a:	4f                   	dec    %edi
557f5b:	85 ff                	test   %edi,%edi
557f5d:	7c 57                	jl     0x557fb6
557f5f:	47                   	inc    %edi
557f60:	8b 45 08             	mov    0x8(%ebp),%eax
557f63:	50                   	push   %eax
557f64:	e8 7f f6 ff ff       	call   0x5575e8
557f69:	59                   	pop    %ecx
557f6a:	8b d0                	mov    %eax,%edx
557f6c:	0f b7 c2             	movzwl %dx,%eax
557f6f:	8b c8                	mov    %eax,%ecx
557f71:	c1 e9 0a             	shr    $0xa,%ecx
557f74:	80 e1 1f             	and    $0x1f,%cl
557f77:	c1 e1 03             	shl    $0x3,%ecx
557f7a:	88 4d ff             	mov    %cl,-0x1(%ebp)
557f7d:	8b c8                	mov    %eax,%ecx
557f7f:	c1 e9 05             	shr    $0x5,%ecx
557f82:	80 e1 1f             	and    $0x1f,%cl
557f85:	c1 e1 03             	shl    $0x3,%ecx
557f88:	88 4d fe             	mov    %cl,-0x2(%ebp)
557f8b:	c1 e8 00             	shr    $0x0,%eax
557f8e:	24 1f                	and    $0x1f,%al
557f90:	c1 e0 03             	shl    $0x3,%eax
557f93:	88 45 fd             	mov    %al,-0x3(%ebp)
557f96:	8b 03                	mov    (%ebx),%eax
557f98:	8a 55 fd             	mov    -0x3(%ebp),%dl
557f9b:	88 14 06             	mov    %dl,(%esi,%eax,1)
557f9e:	8b 03                	mov    (%ebx),%eax
557fa0:	8a 55 fe             	mov    -0x2(%ebp),%dl
557fa3:	88 54 06 01          	mov    %dl,0x1(%esi,%eax,1)
557fa7:	8b 03                	mov    (%ebx),%eax
557fa9:	8a 55 ff             	mov    -0x1(%ebp),%dl
557fac:	88 54 06 02          	mov    %dl,0x2(%esi,%eax,1)
557fb0:	83 03 03             	addl   $0x3,(%ebx)
557fb3:	4f                   	dec    %edi
557fb4:	75 aa                	jne    0x557f60
557fb6:	5f                   	pop    %edi
557fb7:	5e                   	pop    %esi
557fb8:	5b                   	pop    %ebx
557fb9:	59                   	pop    %ecx
557fba:	5d                   	pop    %ebp
557fbb:	c3                   	ret
557fbc:	55                   	push   %ebp
557fbd:	8b ec                	mov    %esp,%ebp
557fbf:	51                   	push   %ecx
557fc0:	53                   	push   %ebx
557fc1:	56                   	push   %esi
557fc2:	57                   	push   %edi
557fc3:	8b f1                	mov    %ecx,%esi
557fc5:	88 55 ff             	mov    %dl,-0x1(%ebp)
557fc8:	8b d8                	mov    %eax,%ebx
557fca:	0f b7 7d 0c          	movzwl 0xc(%ebp),%edi
557fce:	4f                   	dec    %edi
557fcf:	85 ff                	test   %edi,%edi
557fd1:	7c 6c                	jl     0x55803f
557fd3:	47                   	inc    %edi
557fd4:	8b 45 10             	mov    0x10(%ebp),%eax
557fd7:	50                   	push   %eax
557fd8:	e8 cf f5 ff ff       	call   0x5575ac
557fdd:	59                   	pop    %ecx
557fde:	8b 13                	mov    (%ebx),%edx
557fe0:	88 04 16             	mov    %al,(%esi,%edx,1)
557fe3:	8b 45 10             	mov    0x10(%ebp),%eax
557fe6:	50                   	push   %eax
557fe7:	e8 c0 f5 ff ff       	call   0x5575ac
557fec:	59                   	pop    %ecx
557fed:	8b 13                	mov    (%ebx),%edx
557fef:	88 44 16 01          	mov    %al,0x1(%esi,%edx,1)
557ff3:	8b 45 10             	mov    0x10(%ebp),%eax
557ff6:	50                   	push   %eax
557ff7:	e8 b0 f5 ff ff       	call   0x5575ac
557ffc:	59                   	pop    %ecx
557ffd:	8b 13                	mov    (%ebx),%edx
557fff:	88 44 16 02          	mov    %al,0x2(%esi,%edx,1)
558003:	80 7d ff 01          	cmpb   $0x1,-0x1(%ebp)
558007:	75 30                	jne    0x558039
558009:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
55800d:	74 20                	je     0x55802f
55800f:	8b 45 10             	mov    0x10(%ebp),%eax
558012:	50                   	push   %eax
558013:	e8 94 f5 ff ff       	call   0x5575ac
558018:	59                   	pop    %ecx
558019:	8b c8                	mov    %eax,%ecx
55801b:	8b 03                	mov    (%ebx),%eax
55801d:	51                   	push   %ecx
55801e:	b9 03 00 00 00       	mov    $0x3,%ecx
558023:	99                   	cltd
558024:	f7 f9                	idiv   %ecx
558026:	59                   	pop    %ecx
558027:	8b 55 08             	mov    0x8(%ebp),%edx
55802a:	88 0c 02             	mov    %cl,(%edx,%eax,1)
55802d:	eb 0a                	jmp    0x558039
55802f:	8b 45 10             	mov    0x10(%ebp),%eax
558032:	50                   	push   %eax
558033:	e8 74 f5 ff ff       	call   0x5575ac
558038:	59                   	pop    %ecx
558039:	83 03 03             	addl   $0x3,(%ebx)
55803c:	4f                   	dec    %edi
55803d:	75 95                	jne    0x557fd4
55803f:	5f                   	pop    %edi
558040:	5e                   	pop    %esi
558041:	5b                   	pop    %ebx
558042:	59                   	pop    %ecx
558043:	5d                   	pop    %ebp
558044:	c2 08 00             	ret    $0x8
558047:	90                   	nop
558048:	55                   	push   %ebp
558049:	8b ec                	mov    %esp,%ebp
55804b:	53                   	push   %ebx
55804c:	56                   	push   %esi
55804d:	57                   	push   %edi
55804e:	8b 45 08             	mov    0x8(%ebp),%eax
558051:	8b 40 08             	mov    0x8(%eax),%eax
558054:	8b 58 fc             	mov    -0x4(%eax),%ebx
558057:	33 f6                	xor    %esi,%esi
558059:	8b 45 08             	mov    0x8(%ebp),%eax
55805c:	8b 40 08             	mov    0x8(%eax),%eax
55805f:	0f b7 78 da          	movzwl -0x26(%eax),%edi
558063:	4f                   	dec    %edi
558064:	85 ff                	test   %edi,%edi
558066:	0f 8c 92 00 00 00    	jl     0x5580fe
55806c:	47                   	inc    %edi
55806d:	8b 45 08             	mov    0x8(%ebp),%eax
558070:	8b 40 08             	mov    0x8(%eax),%eax
558073:	50                   	push   %eax
558074:	e8 33 f5 ff ff       	call   0x5575ac
558079:	59                   	pop    %ecx
55807a:	8b 55 08             	mov    0x8(%ebp),%edx
55807d:	88 42 f3             	mov    %al,-0xd(%edx)
558080:	8b 55 08             	mov    0x8(%ebp),%edx
558083:	0f b6 52 f3          	movzbl -0xd(%edx),%edx
558087:	8d 14 52             	lea    (%edx,%edx,2),%edx
55808a:	8a 94 13 00 20 00 00 	mov    0x2000(%ebx,%edx,1),%dl
558091:	8b 83 04 24 00 00    	mov    0x2404(%ebx),%eax
558097:	88 14 30             	mov    %dl,(%eax,%esi,1)
55809a:	8b 55 08             	mov    0x8(%ebp),%edx
55809d:	0f b6 52 f3          	movzbl -0xd(%edx),%edx
5580a1:	8d 14 52             	lea    (%edx,%edx,2),%edx
5580a4:	8a 94 13 01 20 00 00 	mov    0x2001(%ebx,%edx,1),%dl
5580ab:	88 54 30 01          	mov    %dl,0x1(%eax,%esi,1)
5580af:	8b 55 08             	mov    0x8(%ebp),%edx
5580b2:	0f b6 52 f3          	movzbl -0xd(%edx),%edx
5580b6:	8d 14 52             	lea    (%edx,%edx,2),%edx
5580b9:	8a 94 13 02 20 00 00 	mov    0x2002(%ebx,%edx,1),%dl
5580c0:	88 54 30 02          	mov    %dl,0x2(%eax,%esi,1)
5580c4:	8b 8b 0c 24 00 00    	mov    0x240c(%ebx),%ecx
5580ca:	85 c9                	test   %ecx,%ecx
5580cc:	74 26                	je     0x5580f4
5580ce:	80 bb 00 24 00 00 00 	cmpb   $0x0,0x2400(%ebx)
5580d5:	74 1d                	je     0x5580f4
5580d7:	8b c6                	mov    %esi,%eax
5580d9:	51                   	push   %ecx
5580da:	b9 03 00 00 00       	mov    $0x3,%ecx
5580df:	99                   	cltd
5580e0:	f7 f9                	idiv   %ecx
5580e2:	59                   	pop    %ecx
5580e3:	8b 55 08             	mov    0x8(%ebp),%edx
5580e6:	0f b6 52 f3          	movzbl -0xd(%edx),%edx
5580ea:	8a 94 13 00 23 00 00 	mov    0x2300(%ebx,%edx,1),%dl
5580f1:	88 14 01             	mov    %dl,(%ecx,%eax,1)
5580f4:	83 c6 03             	add    $0x3,%esi
5580f7:	4f                   	dec    %edi
5580f8:	0f 85 6f ff ff ff    	jne    0x55806d
5580fe:	5f                   	pop    %edi
5580ff:	5e                   	pop    %esi
558100:	5b                   	pop    %ebx
558101:	5d                   	pop    %ebp
558102:	c3                   	ret
558103:	90                   	nop
558104:	55                   	push   %ebp
558105:	8b ec                	mov    %esp,%ebp
558107:	53                   	push   %ebx
558108:	56                   	push   %esi
558109:	57                   	push   %edi
55810a:	8b 7d 08             	mov    0x8(%ebp),%edi
55810d:	83 c7 f3             	add    $0xfffffff3,%edi
558110:	8b 45 08             	mov    0x8(%ebp),%eax
558113:	8b 40 08             	mov    0x8(%eax),%eax
558116:	8b 58 fc             	mov    -0x4(%eax),%ebx
558119:	8b 45 08             	mov    0x8(%ebp),%eax
55811c:	8b 70 fc             	mov    -0x4(%eax),%esi
55811f:	4e                   	dec    %esi
558120:	85 f6                	test   %esi,%esi
558122:	0f 8c a8 00 00 00    	jl     0x5581d0
558128:	46                   	inc    %esi
558129:	8b 45 08             	mov    0x8(%ebp),%eax
55812c:	8b 40 08             	mov    0x8(%eax),%eax
55812f:	50                   	push   %eax
558130:	e8 77 f4 ff ff       	call   0x5575ac
558135:	59                   	pop    %ecx
558136:	88 07                	mov    %al,(%edi)
558138:	8b 45 08             	mov    0x8(%ebp),%eax
55813b:	8b 40 f4             	mov    -0xc(%eax),%eax
55813e:	8b 93 04 24 00 00    	mov    0x2404(%ebx),%edx
558144:	33 c9                	xor    %ecx,%ecx
558146:	8a 0f                	mov    (%edi),%cl
558148:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
55814b:	8a 8c 0b 00 20 00 00 	mov    0x2000(%ebx,%ecx,1),%cl
558152:	88 0c 02             	mov    %cl,(%edx,%eax,1)
558155:	8b 45 08             	mov    0x8(%ebp),%eax
558158:	8b 40 f4             	mov    -0xc(%eax),%eax
55815b:	8b 93 04 24 00 00    	mov    0x2404(%ebx),%edx
558161:	33 c9                	xor    %ecx,%ecx
558163:	8a 0f                	mov    (%edi),%cl
558165:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
558168:	8a 8c 0b 01 20 00 00 	mov    0x2001(%ebx,%ecx,1),%cl
55816f:	88 4c 02 01          	mov    %cl,0x1(%edx,%eax,1)
558173:	8b 45 08             	mov    0x8(%ebp),%eax
558176:	8b 40 f4             	mov    -0xc(%eax),%eax
558179:	8b 93 04 24 00 00    	mov    0x2404(%ebx),%edx
55817f:	33 c9                	xor    %ecx,%ecx
558181:	8a 0f                	mov    (%edi),%cl
558183:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
558186:	8a 8c 0b 02 20 00 00 	mov    0x2002(%ebx,%ecx,1),%cl
55818d:	88 4c 02 02          	mov    %cl,0x2(%edx,%eax,1)
558191:	8b 8b 0c 24 00 00    	mov    0x240c(%ebx),%ecx
558197:	85 c9                	test   %ecx,%ecx
558199:	74 27                	je     0x5581c2
55819b:	80 bb 00 24 00 00 00 	cmpb   $0x0,0x2400(%ebx)
5581a2:	74 1e                	je     0x5581c2
5581a4:	8b 45 08             	mov    0x8(%ebp),%eax
5581a7:	8b 40 f4             	mov    -0xc(%eax),%eax
5581aa:	51                   	push   %ecx
5581ab:	b9 03 00 00 00       	mov    $0x3,%ecx
5581b0:	99                   	cltd
5581b1:	f7 f9                	idiv   %ecx
5581b3:	59                   	pop    %ecx
5581b4:	33 d2                	xor    %edx,%edx
5581b6:	8a 17                	mov    (%edi),%dl
5581b8:	8a 94 13 00 23 00 00 	mov    0x2300(%ebx,%edx,1),%dl
5581bf:	88 14 01             	mov    %dl,(%ecx,%eax,1)
5581c2:	8b 45 08             	mov    0x8(%ebp),%eax
5581c5:	83 40 f4 03          	addl   $0x3,-0xc(%eax)
5581c9:	4e                   	dec    %esi
5581ca:	0f 85 59 ff ff ff    	jne    0x558129