52ae98:	8b 54 24 0c          	mov    0xc(%esp),%edx
52ae9c:	8b c5                	mov    %ebp,%eax
52ae9e:	e8 89 fd ff ff       	call   0x52ac2c
52aea3:	83 c4 10             	add    $0x10,%esp
52aea6:	5d                   	pop    %ebp
52aea7:	5f                   	pop    %edi
52aea8:	5e                   	pop    %esi
52aea9:	5b                   	pop    %ebx
52aeaa:	c3                   	ret
52aeab:	90                   	nop
52aeac:	53                   	push   %ebx
52aead:	56                   	push   %esi
52aeae:	57                   	push   %edi
52aeaf:	83 c4 ec             	add    $0xffffffec,%esp
52aeb2:	89 4c 24 04          	mov    %ecx,0x4(%esp)
52aeb6:	89 04 24             	mov    %eax,(%esp)
52aeb9:	c7 44 24 0c ff ff ff 	movl   $0xffffffff,0xc(%esp)
52aec0:	ff
52aec1:	0f b7 5a 02          	movzwl 0x2(%edx),%ebx
52aec5:	33 f6                	xor    %esi,%esi
52aec7:	b9 07 00 00 00       	mov    $0x7,%ecx
52aecc:	b8 04 00 00 00       	mov    $0x4,%eax
52aed1:	85 db                	test   %ebx,%ebx
52aed3:	75 0a                	jne    0x52aedf
52aed5:	b9 8a 00 00 00       	mov    $0x8a,%ecx
52aeda:	b8 03 00 00 00       	mov    $0x3,%eax
52aedf:	8b 7c 24 04          	mov    0x4(%esp),%edi
52aee3:	66 c7 44 ba 06 ff ff 	movw   $0xffff,0x6(%edx,%edi,4)
52aeea:	33 ff                	xor    %edi,%edi
52aeec:	83 c2 06             	add    $0x6,%edx
52aeef:	89 7c 24 08          	mov    %edi,0x8(%esp)
52aef3:	89 54 24 10          	mov    %edx,0x10(%esp)
52aef7:	8b 54 24 08          	mov    0x8(%esp),%edx
52aefb:	3b 54 24 04          	cmp    0x4(%esp),%edx
52aeff:	0f 8f a6 00 00 00    	jg     0x52afab
52af05:	8b d3                	mov    %ebx,%edx
52af07:	8b 5c 24 10          	mov    0x10(%esp),%ebx
52af0b:	46                   	inc    %esi
52af0c:	0f b7 1b             	movzwl (%ebx),%ebx
52af0f:	3b ce                	cmp    %esi,%ecx
52af11:	7e 04                	jle    0x52af17
52af13:	3b da                	cmp    %edx,%ebx
52af15:	74 7d                	je     0x52af94
52af17:	3b c6                	cmp    %esi,%eax
52af19:	7e 0d                	jle    0x52af28
52af1b:	8b 04 24             	mov    (%esp),%eax
52af1e:	66 01 b4 90 74 0a 00 	add    %si,0xa74(%eax,%edx,4)
52af25:	00
52af26:	eb 3c                	jmp    0x52af64
52af28:	85 d2                	test   %edx,%edx
52af2a:	74 1d                	je     0x52af49
52af2c:	3b 54 24 0c          	cmp    0xc(%esp),%edx
52af30:	74 0b                	je     0x52af3d
52af32:	8b 0c 24             	mov    (%esp),%ecx
52af35:	66 ff 84 91 74 0a 00 	incw   0xa74(%ecx,%edx,4)
52af3c:	00
52af3d:	8b 04 24             	mov    (%esp),%eax
52af40:	66 ff 80 b4 0a 00 00 	incw   0xab4(%eax)
52af47:	eb 1b                	jmp    0x52af64
52af49:	83 fe 0a             	cmp    $0xa,%esi
52af4c:	7f 0c                	jg     0x52af5a
52af4e:	8b 0c 24             	mov    (%esp),%ecx
52af51:	66 ff 81 b8 0a 00 00 	incw   0xab8(%ecx)
52af58:	eb 0a                	jmp    0x52af64
52af5a:	8b 04 24             	mov    (%esp),%eax
52af5d:	66 ff 80 bc 0a 00 00 	incw   0xabc(%eax)
52af64:	33 f6                	xor    %esi,%esi
52af66:	89 54 24 0c          	mov    %edx,0xc(%esp)
52af6a:	85 db                	test   %ebx,%ebx
52af6c:	75 0c                	jne    0x52af7a
52af6e:	b9 8a 00 00 00       	mov    $0x8a,%ecx
52af73:	b8 03 00 00 00       	mov    $0x3,%eax
52af78:	eb 1a                	jmp    0x52af94
52af7a:	3b da                	cmp    %edx,%ebx
52af7c:	75 0c                	jne    0x52af8a
52af7e:	b9 06 00 00 00       	mov    $0x6,%ecx
52af83:	b8 03 00 00 00       	mov    $0x3,%eax
52af88:	eb 0a                	jmp    0x52af94
52af8a:	b9 07 00 00 00       	mov    $0x7,%ecx
52af8f:	b8 04 00 00 00       	mov    $0x4,%eax
52af94:	ff 44 24 08          	incl   0x8(%esp)
52af98:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
52af9d:	8b 54 24 08          	mov    0x8(%esp),%edx
52afa1:	3b 54 24 04          	cmp    0x4(%esp),%edx
52afa5:	0f 8e 5a ff ff ff    	jle    0x52af05
52afab:	83 c4 14             	add    $0x14,%esp
52afae:	5f                   	pop    %edi
52afaf:	5e                   	pop    %esi
52afb0:	5b                   	pop    %ebx
52afb1:	c3                   	ret
52afb2:	90                   	nop
52afb3:	90                   	nop
52afb4:	53                   	push   %ebx
52afb5:	56                   	push   %esi
52afb6:	57                   	push   %edi
52afb7:	55                   	push   %ebp
52afb8:	83 c4 d8             	add    $0xffffffd8,%esp
52afbb:	33 db                	xor    %ebx,%ebx
52afbd:	bf 04 00 00 00       	mov    $0x4,%edi
52afc2:	89 4c 24 04          	mov    %ecx,0x4(%esp)
52afc6:	89 14 24             	mov    %edx,(%esp)
52afc9:	b9 07 00 00 00       	mov    $0x7,%ecx
52afce:	c7 44 24 0c ff ff ff 	movl   $0xffffffff,0xc(%esp)
52afd5:	ff
52afd6:	8b 14 24             	mov    (%esp),%edx
52afd9:	0f b7 72 02          	movzwl 0x2(%edx),%esi
52afdd:	85 f6                	test   %esi,%esi
52afdf:	75 0a                	jne    0x52afeb
52afe1:	b9 8a 00 00 00       	mov    $0x8a,%ecx
52afe6:	bf 03 00 00 00       	mov    $0x3,%edi
52afeb:	33 d2                	xor    %edx,%edx
52afed:	89 54 24 08          	mov    %edx,0x8(%esp)
52aff1:	8b 14 24             	mov    (%esp),%edx
52aff4:	83 c2 06             	add    $0x6,%edx
52aff7:	89 54 24 24          	mov    %edx,0x24(%esp)
52affb:	8b 54 24 08          	mov    0x8(%esp),%edx
52afff:	3b 54 24 04          	cmp    0x4(%esp),%edx
52b003:	0f 8f 24 06 00 00    	jg     0x52b62d
52b009:	8b d6                	mov    %esi,%edx
52b00b:	8b 74 24 24          	mov    0x24(%esp),%esi
52b00f:	43                   	inc    %ebx
52b010:	0f b7 36             	movzwl (%esi),%esi
52b013:	3b cb                	cmp    %ebx,%ecx
52b015:	7e 08                	jle    0x52b01f
52b017:	3b f2                	cmp    %edx,%esi
52b019:	0f 84 f7 05 00 00    	je     0x52b616
52b01f:	3b fb                	cmp    %ebx,%edi
52b021:	0f 8e c7 00 00 00    	jle    0x52b0ee
52b027:	0f b7 bc 90 76 0a 00 	movzwl 0xa76(%eax,%edx,4),%edi
52b02e:	00
52b02f:	b9 10 00 00 00       	mov    $0x10,%ecx
52b034:	2b cf                	sub    %edi,%ecx
52b036:	3b 88 b4 16 00 00    	cmp    0x16b4(%eax),%ecx
52b03c:	0f 8d 82 00 00 00    	jge    0x52b0c4
52b042:	0f b7 8c 90 74 0a 00 	movzwl 0xa74(%eax,%edx,4),%ecx
52b049:	00
52b04a:	89 4c 24 10          	mov    %ecx,0x10(%esp)
52b04e:	83 ef 10             	sub    $0x10,%edi
52b051:	66 8b 6c 24 10       	mov    0x10(%esp),%bp
52b056:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b05c:	66 d3 e5             	shl    %cl,%bp
52b05f:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b066:	8b 48 14             	mov    0x14(%eax),%ecx
52b069:	ff 40 14             	incl   0x14(%eax)
52b06c:	8b 68 08             	mov    0x8(%eax),%ebp
52b06f:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b073:	51                   	push   %ecx
52b074:	5d                   	pop    %ebp
52b075:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52b07b:	80 e1 ff             	and    $0xff,%cl
52b07e:	88 4d 00             	mov    %cl,0x0(%ebp)
52b081:	8b 48 14             	mov    0x14(%eax),%ecx
52b084:	ff 40 14             	incl   0x14(%eax)
52b087:	8b 68 08             	mov    0x8(%eax),%ebp
52b08a:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b08e:	51                   	push   %ecx
52b08f:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52b096:	5d                   	pop    %ebp
52b097:	c1 f9 08             	sar    $0x8,%ecx
52b09a:	88 4d 00             	mov    %cl,0x0(%ebp)
52b09d:	b9 10 00 00 00       	mov    $0x10,%ecx
52b0a2:	0f b7 6c 24 10       	movzwl 0x10(%esp),%ebp
52b0a7:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52b0ad:	d3 fd                	sar    %cl,%ebp
52b0af:	66 89 a8 b0 16 00 00 	mov    %bp,0x16b0(%eax)
52b0b6:	03 b8 b4 16 00 00    	add    0x16b4(%eax),%edi
52b0bc:	89 b8 b4 16 00 00    	mov    %edi,0x16b4(%eax)
52b0c2:	eb 1e                	jmp    0x52b0e2
52b0c4:	66 8b ac 90 74 0a 00 	mov    0xa74(%eax,%edx,4),%bp
52b0cb:	00
52b0cc:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b0d2:	66 d3 e5             	shl    %cl,%bp
52b0d5:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b0dc:	01 b8 b4 16 00 00    	add    %edi,0x16b4(%eax)
52b0e2:	4b                   	dec    %ebx
52b0e3:	0f 85 3e ff ff ff    	jne    0x52b027
52b0e9:	e9 f8 04 00 00       	jmp    0x52b5e6
52b0ee:	85 d2                	test   %edx,%edx
52b0f0:	0f 84 29 02 00 00    	je     0x52b31f
52b0f6:	3b 54 24 0c          	cmp    0xc(%esp),%edx
52b0fa:	0f 84 bc 00 00 00    	je     0x52b1bc
52b100:	0f b7 bc 90 76 0a 00 	movzwl 0xa76(%eax,%edx,4),%edi
52b107:	00
52b108:	b9 10 00 00 00       	mov    $0x10,%ecx
52b10d:	2b cf                	sub    %edi,%ecx
52b10f:	3b 88 b4 16 00 00    	cmp    0x16b4(%eax),%ecx
52b115:	0f 8d 82 00 00 00    	jge    0x52b19d
52b11b:	0f b7 8c 90 74 0a 00 	movzwl 0xa74(%eax,%edx,4),%ecx
52b122:	00
52b123:	89 4c 24 14          	mov    %ecx,0x14(%esp)
52b127:	83 ef 10             	sub    $0x10,%edi
52b12a:	66 8b 6c 24 14       	mov    0x14(%esp),%bp
52b12f:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b135:	66 d3 e5             	shl    %cl,%bp
52b138:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b13f:	8b 48 14             	mov    0x14(%eax),%ecx
52b142:	ff 40 14             	incl   0x14(%eax)
52b145:	8b 68 08             	mov    0x8(%eax),%ebp
52b148:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b14c:	51                   	push   %ecx
52b14d:	5d                   	pop    %ebp
52b14e:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52b154:	80 e1 ff             	and    $0xff,%cl
52b157:	88 4d 00             	mov    %cl,0x0(%ebp)
52b15a:	8b 48 14             	mov    0x14(%eax),%ecx
52b15d:	ff 40 14             	incl   0x14(%eax)
52b160:	8b 68 08             	mov    0x8(%eax),%ebp
52b163:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b167:	51                   	push   %ecx
52b168:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52b16f:	5d                   	pop    %ebp
52b170:	c1 f9 08             	sar    $0x8,%ecx
52b173:	88 4d 00             	mov    %cl,0x0(%ebp)
52b176:	b9 10 00 00 00       	mov    $0x10,%ecx
52b17b:	0f b7 6c 24 14       	movzwl 0x14(%esp),%ebp
52b180:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52b186:	d3 fd                	sar    %cl,%ebp
52b188:	66 89 a8 b0 16 00 00 	mov    %bp,0x16b0(%eax)
52b18f:	03 b8 b4 16 00 00    	add    0x16b4(%eax),%edi
52b195:	89 b8 b4 16 00 00    	mov    %edi,0x16b4(%eax)
52b19b:	eb 1e                	jmp    0x52b1bb
52b19d:	66 8b ac 90 74 0a 00 	mov    0xa74(%eax,%edx,4),%bp
52b1a4:	00
52b1a5:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b1ab:	66 d3 e5             	shl    %cl,%bp
52b1ae:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b1b5:	01 b8 b4 16 00 00    	add    %edi,0x16b4(%eax)
52b1bb:	4b                   	dec    %ebx
52b1bc:	0f b7 b8 b6 0a 00 00 	movzwl 0xab6(%eax),%edi
52b1c3:	b9 10 00 00 00       	mov    $0x10,%ecx
52b1c8:	2b cf                	sub    %edi,%ecx
52b1ca:	3b 88 b4 16 00 00    	cmp    0x16b4(%eax),%ecx
52b1d0:	0f 8d 81 00 00 00    	jge    0x52b257
52b1d6:	0f b7 88 b4 0a 00 00 	movzwl 0xab4(%eax),%ecx
52b1dd:	89 4c 24 18          	mov    %ecx,0x18(%esp)
52b1e1:	83 ef 10             	sub    $0x10,%edi
52b1e4:	66 8b 6c 24 18       	mov    0x18(%esp),%bp
52b1e9:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b1ef:	66 d3 e5             	shl    %cl,%bp
52b1f2:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b1f9:	8b 48 14             	mov    0x14(%eax),%ecx
52b1fc:	ff 40 14             	incl   0x14(%eax)
52b1ff:	8b 68 08             	mov    0x8(%eax),%ebp
52b202:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b206:	51                   	push   %ecx
52b207:	5d                   	pop    %ebp
52b208:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52b20e:	80 e1 ff             	and    $0xff,%cl
52b211:	88 4d 00             	mov    %cl,0x0(%ebp)
52b214:	8b 48 14             	mov    0x14(%eax),%ecx
52b217:	ff 40 14             	incl   0x14(%eax)
52b21a:	8b 68 08             	mov    0x8(%eax),%ebp
52b21d:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b221:	51                   	push   %ecx
52b222:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52b229:	5d                   	pop    %ebp
52b22a:	c1 f9 08             	sar    $0x8,%ecx
52b22d:	88 4d 00             	mov    %cl,0x0(%ebp)
52b230:	b9 10 00 00 00       	mov    $0x10,%ecx
52b235:	0f b7 6c 24 18       	movzwl 0x18(%esp),%ebp
52b23a:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52b240:	d3 fd                	sar    %cl,%ebp
52b242:	66 89 a8 b0 16 00 00 	mov    %bp,0x16b0(%eax)
52b249:	03 b8 b4 16 00 00    	add    0x16b4(%eax),%edi
52b24f:	89 b8 b4 16 00 00    	mov    %edi,0x16b4(%eax)
52b255:	eb 1d                	jmp    0x52b274
52b257:	66 8b a8 b4 0a 00 00 	mov    0xab4(%eax),%bp
52b25e:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b264:	66 d3 e5             	shl    %cl,%bp
52b267:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b26e:	01 b8 b4 16 00 00    	add    %edi,0x16b4(%eax)
52b274:	bf 02 00 00 00       	mov    $0x2,%edi
52b279:	b9 10 00 00 00       	mov    $0x10,%ecx
52b27e:	2b cf                	sub    %edi,%ecx
52b280:	3b 88 b4 16 00 00    	cmp    0x16b4(%eax),%ecx
52b286:	7d 77                	jge    0x52b2ff
52b288:	83 c3 fd             	add    $0xfffffffd,%ebx
52b28b:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b291:	8b eb                	mov    %ebx,%ebp
52b293:	83 ef 10             	sub    $0x10,%edi
52b296:	66 d3 e5             	shl    %cl,%bp
52b299:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b2a0:	0f b7 db             	movzwl %bx,%ebx
52b2a3:	8b 48 14             	mov    0x14(%eax),%ecx
52b2a6:	ff 40 14             	incl   0x14(%eax)
52b2a9:	8b 68 08             	mov    0x8(%eax),%ebp
52b2ac:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b2b0:	51                   	push   %ecx
52b2b1:	5d                   	pop    %ebp
52b2b2:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52b2b8:	80 e1 ff             	and    $0xff,%cl
52b2bb:	88 4d 00             	mov    %cl,0x0(%ebp)
52b2be:	8b 48 14             	mov    0x14(%eax),%ecx
52b2c1:	ff 40 14             	incl   0x14(%eax)
52b2c4:	8b 68 08             	mov    0x8(%eax),%ebp
52b2c7:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b2cb:	51                   	push   %ecx
52b2cc:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52b2d3:	5d                   	pop    %ebp
52b2d4:	c1 f9 08             	sar    $0x8,%ecx
52b2d7:	88 4d 00             	mov    %cl,0x0(%ebp)
52b2da:	b9 10 00 00 00       	mov    $0x10,%ecx
52b2df:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52b2e5:	d3 fb                	sar    %cl,%ebx
52b2e7:	66 89 98 b0 16 00 00 	mov    %bx,0x16b0(%eax)
52b2ee:	03 b8 b4 16 00 00    	add    0x16b4(%eax),%edi
52b2f4:	89 b8 b4 16 00 00    	mov    %edi,0x16b4(%eax)
52b2fa:	e9 e7 02 00 00       	jmp    0x52b5e6
52b2ff:	66 81 c3 fd ff       	add    $0xfffd,%bx
52b304:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b30a:	66 d3 e3             	shl    %cl,%bx
52b30d:	66 09 98 b0 16 00 00 	or     %bx,0x16b0(%eax)
52b314:	01 b8 b4 16 00 00    	add    %edi,0x16b4(%eax)
52b31a:	e9 c7 02 00 00       	jmp    0x52b5e6
52b31f:	83 fb 0a             	cmp    $0xa,%ebx
52b322:	0f 8f 63 01 00 00    	jg     0x52b48b
52b328:	0f b7 b8 ba 0a 00 00 	movzwl 0xaba(%eax),%edi
52b32f:	b9 10 00 00 00       	mov    $0x10,%ecx
52b334:	2b cf                	sub    %edi,%ecx
52b336:	3b 88 b4 16 00 00    	cmp    0x16b4(%eax),%ecx
52b33c:	0f 8d 81 00 00 00    	jge    0x52b3c3
52b342:	0f b7 88 b8 0a 00 00 	movzwl 0xab8(%eax),%ecx
52b349:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
52b34d:	83 ef 10             	sub    $0x10,%edi
52b350:	66 8b 6c 24 1c       	mov    0x1c(%esp),%bp
52b355:	8b 88 b4 16 00 00    	mov    0x16b4(%eax),%ecx
52b35b:	66 d3 e5             	shl    %cl,%bp
52b35e:	66 09 a8 b0 16 00 00 	or     %bp,0x16b0(%eax)
52b365:	8b 48 14             	mov    0x14(%eax),%ecx
52b368:	ff 40 14             	incl   0x14(%eax)
52b36b:	8b 68 08             	mov    0x8(%eax),%ebp
52b36e:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b372:	51                   	push   %ecx
52b373:	5d                   	pop    %ebp
52b374:	8a 88 b0 16 00 00    	mov    0x16b0(%eax),%cl
52b37a:	80 e1 ff             	and    $0xff,%cl
52b37d:	88 4d 00             	mov    %cl,0x0(%ebp)
52b380:	8b 48 14             	mov    0x14(%eax),%ecx
52b383:	ff 40 14             	incl   0x14(%eax)
52b386:	8b 68 08             	mov    0x8(%eax),%ebp
52b389:	8d 4c 0d 00          	lea    0x0(%ebp,%ecx,1),%ecx
52b38d:	51                   	push   %ecx
52b38e:	0f b7 88 b0 16 00 00 	movzwl 0x16b0(%eax),%ecx
52b395:	5d                   	pop    %ebp
52b396:	c1 f9 08             	sar    $0x8,%ecx
52b399:	88 4d 00             	mov    %cl,0x0(%ebp)
52b39c:	b9 10 00 00 00       	mov    $0x10,%ecx
52b3a1:	0f b7 6c 24 1c       	movzwl 0x1c(%esp),%ebp
52b3a6:	2b 88 b4 16 00 00    	sub    0x16b4(%eax),%ecx
52b3ac:	d3 fd                	sar    %cl,%ebp