52ac27:	5f                   	pop    %edi
52ac28:	5e                   	pop    %esi
52ac29:	5b                   	pop    %ebx
52ac2a:	c3                   	ret
52ac2b:	90                   	nop
52ac2c:	53                   	push   %ebx
52ac2d:	56                   	push   %esi
52ac2e:	57                   	push   %edi
52ac2f:	83 c4 d8             	add    $0xffffffd8,%esp
52ac32:	89 4c 24 04          	mov    %ecx,0x4(%esp)
52ac36:	89 14 24             	mov    %edx,(%esp)
52ac39:	33 f6                	xor    %esi,%esi
52ac3b:	b9 01 00 00 00       	mov    $0x1,%ecx
52ac40:	8d 5c 24 0a          	lea    0xa(%esp),%ebx
52ac44:	8b 54 24 04          	mov    0x4(%esp),%edx
52ac48:	66 8b 3a             	mov    (%edx),%di
52ac4b:	83 c2 02             	add    $0x2,%edx
52ac4e:	66 03 fe             	add    %si,%di
52ac51:	41                   	inc    %ecx
52ac52:	03 ff                	add    %edi,%edi
52ac54:	66 89 3b             	mov    %di,(%ebx)
52ac57:	83 c3 02             	add    $0x2,%ebx
52ac5a:	83 f9 0f             	cmp    $0xf,%ecx
52ac5d:	8b f7                	mov    %edi,%esi
52ac5f:	7e e7                	jle    0x52ac48
52ac61:	33 ff                	xor    %edi,%edi
52ac63:	8d 58 02             	lea    0x2(%eax),%ebx
52ac66:	3b 3c 24             	cmp    (%esp),%edi
52ac69:	7f 28                	jg     0x52ac93
52ac6b:	0f b7 33             	movzwl (%ebx),%esi
52ac6e:	85 f6                	test   %esi,%esi
52ac70:	74 18                	je     0x52ac8a
52ac72:	66 8b 44 74 08       	mov    0x8(%esp,%esi,2),%ax
52ac77:	66 ff 44 74 08       	incw   0x8(%esp,%esi,2)
52ac7c:	0f b7 c0             	movzwl %ax,%eax
52ac7f:	8b d6                	mov    %esi,%edx
52ac81:	e8 92 18 00 00       	call   0x52c518
52ac86:	66 89 43 fe          	mov    %ax,-0x2(%ebx)
52ac8a:	47                   	inc    %edi
52ac8b:	83 c3 04             	add    $0x4,%ebx
52ac8e:	3b 3c 24             	cmp    (%esp),%edi
52ac91:	7e d8                	jle    0x52ac6b
52ac93:	83 c4 28             	add    $0x28,%esp
52ac96:	5f                   	pop    %edi
52ac97:	5e                   	pop    %esi
52ac98:	5b                   	pop    %ebx
52ac99:	c3                   	ret
52ac9a:	90                   	nop
52ac9b:	90                   	nop
52ac9c:	53                   	push   %ebx
52ac9d:	56                   	push   %esi
52ac9e:	57                   	push   %edi
52ac9f:	55                   	push   %ebp
52aca0:	83 c4 f0             	add    $0xfffffff0,%esp
52aca3:	8b d8                	mov    %eax,%ebx
52aca5:	33 f6                	xor    %esi,%esi
52aca7:	89 14 24             	mov    %edx,(%esp)
52acaa:	8b 04 24             	mov    (%esp),%eax
52acad:	8b 28                	mov    (%eax),%ebp
52acaf:	8b 04 24             	mov    (%esp),%eax
52acb2:	8b 40 08             	mov    0x8(%eax),%eax
52acb5:	8b 10                	mov    (%eax),%edx
52acb7:	89 54 24 04          	mov    %edx,0x4(%esp)
52acbb:	8d 93 50 14 00 00    	lea    0x1450(%ebx),%edx
52acc1:	8b 48 0c             	mov    0xc(%eax),%ecx
52acc4:	33 c0                	xor    %eax,%eax
52acc6:	89 4c 24 08          	mov    %ecx,0x8(%esp)
52acca:	c7 44 24 0c ff ff ff 	movl   $0xffffffff,0xc(%esp)
52acd1:	ff
52acd2:	89 83 48 14 00 00    	mov    %eax,0x1448(%ebx)
52acd8:	8b c5                	mov    %ebp,%eax
52acda:	c7 83 4c 14 00 00 3d 	movl   $0x23d,0x144c(%ebx)
52ace1:	02 00 00
52ace4:	3b 74 24 08          	cmp    0x8(%esp),%esi
52ace8:	0f 8d 88 00 00 00    	jge    0x52ad76
52acee:	66 83 38 00          	cmpw   $0x0,(%eax)
52acf2:	74 1c                	je     0x52ad10
52acf4:	89 74 24 0c          	mov    %esi,0xc(%esp)
52acf8:	ff 83 48 14 00 00    	incl   0x1448(%ebx)
52acfe:	8b 8b 48 14 00 00    	mov    0x1448(%ebx),%ecx
52ad04:	89 b4 8b 54 0b 00 00 	mov    %esi,0xb54(%ebx,%ecx,4)
52ad0b:	c6 02 00             	movb   $0x0,(%edx)
52ad0e:	eb 06                	jmp    0x52ad16
52ad10:	66 c7 40 02 00 00    	movw   $0x0,0x2(%eax)
52ad16:	46                   	inc    %esi
52ad17:	42                   	inc    %edx
52ad18:	83 c0 04             	add    $0x4,%eax
52ad1b:	3b 74 24 08          	cmp    0x8(%esp),%esi
52ad1f:	7c cd                	jl     0x52acee
52ad21:	eb 53                	jmp    0x52ad76
52ad23:	83 7c 24 0c 02       	cmpl   $0x2,0xc(%esp)
52ad28:	7d 0a                	jge    0x52ad34
52ad2a:	ff 44 24 0c          	incl   0xc(%esp)
52ad2e:	8b 44 24 0c          	mov    0xc(%esp),%eax
52ad32:	eb 02                	jmp    0x52ad36
52ad34:	33 c0                	xor    %eax,%eax
52ad36:	ff 83 48 14 00 00    	incl   0x1448(%ebx)
52ad3c:	8b f8                	mov    %eax,%edi
52ad3e:	8b 93 48 14 00 00    	mov    0x1448(%ebx),%edx
52ad44:	89 84 93 54 0b 00 00 	mov    %eax,0xb54(%ebx,%edx,4)
52ad4b:	66 c7 44 bd 00 01 00 	movw   $0x1,0x0(%ebp,%edi,4)
52ad52:	c6 84 3b 50 14 00 00 	movb   $0x0,0x1450(%ebx,%edi,1)
52ad59:	00
52ad5a:	ff 8b a0 16 00 00    	decl   0x16a0(%ebx)
52ad60:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
52ad65:	74 0f                	je     0x52ad76
52ad67:	8b 44 24 04          	mov    0x4(%esp),%eax
52ad6b:	0f b7 54 b8 02       	movzwl 0x2(%eax,%edi,4),%edx
52ad70:	29 93 a4 16 00 00    	sub    %edx,0x16a4(%ebx)
52ad76:	83 bb 48 14 00 00 02 	cmpl   $0x2,0x1448(%ebx)
52ad7d:	7c a4                	jl     0x52ad23
52ad7f:	8b 0c 24             	mov    (%esp),%ecx
52ad82:	8b 44 24 0c          	mov    0xc(%esp),%eax
52ad86:	89 41 04             	mov    %eax,0x4(%ecx)
52ad89:	8b b3 48 14 00 00    	mov    0x1448(%ebx),%esi
52ad8f:	d1 fe                	sar    $1,%esi
52ad91:	79 03                	jns    0x52ad96
52ad93:	83 d6 00             	adc    $0x0,%esi
52ad96:	83 fe 01             	cmp    $0x1,%esi
52ad99:	7c 11                	jl     0x52adac
52ad9b:	8b ce                	mov    %esi,%ecx
52ad9d:	8b d5                	mov    %ebp,%edx
52ad9f:	8b c3                	mov    %ebx,%eax
52ada1:	e8 92 fb ff ff       	call   0x52a938
52ada6:	4e                   	dec    %esi
52ada7:	83 fe 01             	cmp    $0x1,%esi
52adaa:	7d ef                	jge    0x52ad9b
52adac:	8b 7c 24 08          	mov    0x8(%esp),%edi
52adb0:	8b 83 48 14 00 00    	mov    0x1448(%ebx),%eax
52adb6:	8b b3 58 0b 00 00    	mov    0xb58(%ebx),%esi
52adbc:	83 83 48 14 00 00 ff 	addl   $0xffffffff,0x1448(%ebx)
52adc3:	8b 94 83 54 0b 00 00 	mov    0xb54(%ebx,%eax,4),%edx
52adca:	8b c3                	mov    %ebx,%eax
52adcc:	89 93 58 0b 00 00    	mov    %edx,0xb58(%ebx)
52add2:	8b d5                	mov    %ebp,%edx
52add4:	b9 01 00 00 00       	mov    $0x1,%ecx
52add9:	e8 5a fb ff ff       	call   0x52a938
52adde:	8b 83 58 0b 00 00    	mov    0xb58(%ebx),%eax
52ade4:	ff 8b 4c 14 00 00    	decl   0x144c(%ebx)
52adea:	8b 93 4c 14 00 00    	mov    0x144c(%ebx),%edx
52adf0:	89 b4 93 54 0b 00 00 	mov    %esi,0xb54(%ebx,%edx,4)
52adf7:	ff 8b 4c 14 00 00    	decl   0x144c(%ebx)
52adfd:	8b 8b 4c 14 00 00    	mov    0x144c(%ebx),%ecx
52ae03:	89 84 8b 54 0b 00 00 	mov    %eax,0xb54(%ebx,%ecx,4)
52ae0a:	66 8b 54 85 00       	mov    0x0(%ebp,%eax,4),%dx
52ae0f:	66 03 54 b5 00       	add    0x0(%ebp,%esi,4),%dx
52ae14:	52                   	push   %edx
52ae15:	59                   	pop    %ecx
52ae16:	66 89 4c bd 00       	mov    %cx,0x0(%ebp,%edi,4)
52ae1b:	8a 94 03 50 14 00 00 	mov    0x1450(%ebx,%eax,1),%dl
52ae22:	3a 94 33 50 14 00 00 	cmp    0x1450(%ebx,%esi,1),%dl
52ae29:	77 09                	ja     0x52ae34
52ae2b:	8a 8c 33 50 14 00 00 	mov    0x1450(%ebx,%esi,1),%cl
52ae32:	eb 07                	jmp    0x52ae3b
52ae34:	8a 8c 03 50 14 00 00 	mov    0x1450(%ebx,%eax,1),%cl
52ae3b:	41                   	inc    %ecx
52ae3c:	8b d5                	mov    %ebp,%edx
52ae3e:	88 8c 3b 50 14 00 00 	mov    %cl,0x1450(%ebx,%edi,1)
52ae45:	b9 01 00 00 00       	mov    $0x1,%ecx
52ae4a:	66 89 7c 85 02       	mov    %di,0x2(%ebp,%eax,4)
52ae4f:	8b c3                	mov    %ebx,%eax
52ae51:	66 89 7c b5 02       	mov    %di,0x2(%ebp,%esi,4)
52ae56:	89 bb 58 0b 00 00    	mov    %edi,0xb58(%ebx)
52ae5c:	47                   	inc    %edi
52ae5d:	e8 d6 fa ff ff       	call   0x52a938
52ae62:	83 bb 48 14 00 00 02 	cmpl   $0x2,0x1448(%ebx)
52ae69:	0f 8d 41 ff ff ff    	jge    0x52adb0
52ae6f:	ff 8b 4c 14 00 00    	decl   0x144c(%ebx)
52ae75:	8b 83 4c 14 00 00    	mov    0x144c(%ebx),%eax
52ae7b:	8b 93 58 0b 00 00    	mov    0xb58(%ebx),%edx
52ae81:	89 94 83 54 0b 00 00 	mov    %edx,0xb54(%ebx,%eax,4)
52ae88:	8b c3                	mov    %ebx,%eax
52ae8a:	8b 14 24             	mov    (%esp),%edx
52ae8d:	e8 9a fb ff ff       	call   0x52aa2c
52ae92:	8d 8b 34 0b 00 00    	lea    0xb34(%ebx),%ecx
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