528a5c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528a60:	89 0e                	mov    %ecx,(%esi)
528a62:	8b 44 24 14          	mov    0x14(%esp),%eax
528a66:	89 43 34             	mov    %eax,0x34(%ebx)
528a69:	8b c3                	mov    %ebx,%eax
528a6b:	8b 0c 24             	mov    (%esp),%ecx
528a6e:	e8 0d 18 00 00       	call   0x52a280
528a73:	e9 a6 07 00 00       	jmp    0x52921e
528a78:	8b cf                	mov    %edi,%ecx
528a7a:	ff 4c 24 10          	decl   0x10(%esp)
528a7e:	8b 54 24 0c          	mov    0xc(%esp),%edx
528a82:	8a 02                	mov    (%edx),%al
528a84:	33 d2                	xor    %edx,%edx
528a86:	8a d0                	mov    %al,%dl
528a88:	d3 e2                	shl    %cl,%edx
528a8a:	09 54 24 08          	or     %edx,0x8(%esp)
528a8e:	ff 44 24 0c          	incl   0xc(%esp)
528a92:	83 c7 08             	add    $0x8,%edi
528a95:	83 ff 0e             	cmp    $0xe,%edi
528a98:	72 98                	jb     0x528a32
528a9a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
528a9e:	81 e1 ff 3f 00 00    	and    $0x3fff,%ecx
528aa4:	89 4c 24 04          	mov    %ecx,0x4(%esp)
528aa8:	89 4b 04             	mov    %ecx,0x4(%ebx)
528aab:	8b 44 24 04          	mov    0x4(%esp),%eax
528aaf:	83 e0 1f             	and    $0x1f,%eax
528ab2:	83 f8 1d             	cmp    $0x1d,%eax
528ab5:	77 0f                	ja     0x528ac6
528ab7:	8b 54 24 04          	mov    0x4(%esp),%edx
528abb:	c1 ea 05             	shr    $0x5,%edx
528abe:	83 e2 1f             	and    $0x1f,%edx
528ac1:	83 fa 1d             	cmp    $0x1d,%edx
528ac4:	76 4c                	jbe    0x528b12
528ac6:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
528acc:	c7 46 18 4c 7d 69 00 	movl   $0x697d4c,0x18(%esi)
528ad3:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
528ada:	8b 44 24 08          	mov    0x8(%esp),%eax
528ade:	89 43 20             	mov    %eax,0x20(%ebx)
528ae1:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528ae4:	8b 54 24 10          	mov    0x10(%esp),%edx
528ae8:	89 56 04             	mov    %edx,0x4(%esi)
528aeb:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528aef:	2b 0e                	sub    (%esi),%ecx
528af1:	01 4e 08             	add    %ecx,0x8(%esi)
528af4:	8b 44 24 0c          	mov    0xc(%esp),%eax
528af8:	89 06                	mov    %eax,(%esi)
528afa:	8b c3                	mov    %ebx,%eax
528afc:	8b 54 24 14          	mov    0x14(%esp),%edx
528b00:	89 53 34             	mov    %edx,0x34(%ebx)
528b03:	8b d6                	mov    %esi,%edx
528b05:	8b 0c 24             	mov    (%esp),%ecx
528b08:	e8 73 17 00 00       	call   0x52a280
528b0d:	e9 0c 07 00 00       	jmp    0x52921e
528b12:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528b16:	c1 e9 05             	shr    $0x5,%ecx
528b19:	83 e1 1f             	and    $0x1f,%ecx
528b1c:	03 c1                	add    %ecx,%eax
528b1e:	05 02 01 00 00       	add    $0x102,%eax
528b23:	89 44 24 04          	mov    %eax,0x4(%esp)
528b27:	b9 04 00 00 00       	mov    $0x4,%ecx
528b2c:	8b 54 24 04          	mov    0x4(%esp),%edx
528b30:	8b 46 28             	mov    0x28(%esi),%eax
528b33:	ff 56 20             	call   *0x20(%esi)
528b36:	89 43 0c             	mov    %eax,0xc(%ebx)
528b39:	85 c0                	test   %eax,%eax
528b3b:	75 3f                	jne    0x528b7c
528b3d:	c7 04 24 fc ff ff ff 	movl   $0xfffffffc,(%esp)
528b44:	8b 54 24 08          	mov    0x8(%esp),%edx
528b48:	89 53 20             	mov    %edx,0x20(%ebx)
528b4b:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528b4e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
528b52:	89 4e 04             	mov    %ecx,0x4(%esi)
528b55:	8b 44 24 0c          	mov    0xc(%esp),%eax
528b59:	2b 06                	sub    (%esi),%eax
528b5b:	01 46 08             	add    %eax,0x8(%esi)
528b5e:	8b c3                	mov    %ebx,%eax
528b60:	8b 54 24 0c          	mov    0xc(%esp),%edx
528b64:	89 16                	mov    %edx,(%esi)
528b66:	8b d6                	mov    %esi,%edx
528b68:	8b 4c 24 14          	mov    0x14(%esp),%ecx
528b6c:	89 4b 34             	mov    %ecx,0x34(%ebx)
528b6f:	8b 0c 24             	mov    (%esp),%ecx
528b72:	e8 09 17 00 00       	call   0x52a280
528b77:	e9 a2 06 00 00       	jmp    0x52921e
528b7c:	c1 6c 24 08 0e       	shrl   $0xe,0x8(%esp)
528b81:	83 ef 0e             	sub    $0xe,%edi
528b84:	33 c0                	xor    %eax,%eax
528b86:	89 43 08             	mov    %eax,0x8(%ebx)
528b89:	c7 03 04 00 00 00    	movl   $0x4,(%ebx)
528b8f:	e9 8f 00 00 00       	jmp    0x528c23
528b94:	83 ff 03             	cmp    $0x3,%edi
528b97:	73 68                	jae    0x528c01
528b99:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
528b9e:	74 07                	je     0x528ba7
528ba0:	33 d2                	xor    %edx,%edx
528ba2:	89 14 24             	mov    %edx,(%esp)
528ba5:	eb 38                	jmp    0x528bdf
528ba7:	8b 4c 24 08          	mov    0x8(%esp),%ecx
528bab:	89 4b 20             	mov    %ecx,0x20(%ebx)
528bae:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528bb1:	8b 44 24 10          	mov    0x10(%esp),%eax
528bb5:	89 46 04             	mov    %eax,0x4(%esi)
528bb8:	8b 54 24 0c          	mov    0xc(%esp),%edx
528bbc:	2b 16                	sub    (%esi),%edx
528bbe:	01 56 08             	add    %edx,0x8(%esi)
528bc1:	8b d6                	mov    %esi,%edx
528bc3:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528bc7:	89 0e                	mov    %ecx,(%esi)
528bc9:	8b 44 24 14          	mov    0x14(%esp),%eax
528bcd:	89 43 34             	mov    %eax,0x34(%ebx)
528bd0:	8b c3                	mov    %ebx,%eax
528bd2:	8b 0c 24             	mov    (%esp),%ecx
528bd5:	e8 a6 16 00 00       	call   0x52a280
528bda:	e9 3f 06 00 00       	jmp    0x52921e
528bdf:	8b cf                	mov    %edi,%ecx
528be1:	ff 4c 24 10          	decl   0x10(%esp)
528be5:	8b 54 24 0c          	mov    0xc(%esp),%edx
528be9:	8a 02                	mov    (%edx),%al
528beb:	33 d2                	xor    %edx,%edx
528bed:	8a d0                	mov    %al,%dl
528bef:	d3 e2                	shl    %cl,%edx
528bf1:	09 54 24 08          	or     %edx,0x8(%esp)
528bf5:	ff 44 24 0c          	incl   0xc(%esp)
528bf9:	83 c7 08             	add    $0x8,%edi
528bfc:	83 ff 03             	cmp    $0x3,%edi
528bff:	72 98                	jb     0x528b99
528c01:	8b 4b 08             	mov    0x8(%ebx),%ecx
528c04:	ff 43 08             	incl   0x8(%ebx)
528c07:	8b 04 8d d0 7c 69 00 	mov    0x697cd0(,%ecx,4),%eax
528c0e:	8b 53 0c             	mov    0xc(%ebx),%edx
528c11:	8b 4c 24 08          	mov    0x8(%esp),%ecx
528c15:	83 e1 07             	and    $0x7,%ecx
528c18:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
528c1b:	c1 6c 24 08 03       	shrl   $0x3,0x8(%esp)
528c20:	83 ef 03             	sub    $0x3,%edi
528c23:	8b 43 04             	mov    0x4(%ebx),%eax
528c26:	c1 e8 0a             	shr    $0xa,%eax
528c29:	83 c0 04             	add    $0x4,%eax
528c2c:	3b 43 08             	cmp    0x8(%ebx),%eax
528c2f:	0f 87 5f ff ff ff    	ja     0x528b94
528c35:	eb 15                	jmp    0x528c4c
528c37:	8b 53 08             	mov    0x8(%ebx),%edx
528c3a:	ff 43 08             	incl   0x8(%ebx)
528c3d:	8b 0c 95 d0 7c 69 00 	mov    0x697cd0(,%edx,4),%ecx
528c44:	8b 43 0c             	mov    0xc(%ebx),%eax
528c47:	33 d2                	xor    %edx,%edx
528c49:	89 14 88             	mov    %edx,(%eax,%ecx,4)
528c4c:	83 7b 08 13          	cmpl   $0x13,0x8(%ebx)
528c50:	72 e5                	jb     0x528c37
528c52:	c7 43 10 07 00 00 00 	movl   $0x7,0x10(%ebx)
528c59:	8b 4b 24             	mov    0x24(%ebx),%ecx
528c5c:	51                   	push   %ecx
528c5d:	56                   	push   %esi
528c5e:	8d 4b 14             	lea    0x14(%ebx),%ecx
528c61:	8d 53 10             	lea    0x10(%ebx),%edx
528c64:	8b 43 0c             	mov    0xc(%ebx),%eax
528c67:	e8 14 0b 00 00       	call   0x529780
528c6c:	89 44 24 04          	mov    %eax,0x4(%esp)
528c70:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
528c75:	74 54                	je     0x528ccb
528c77:	8b 44 24 04          	mov    0x4(%esp),%eax
528c7b:	89 04 24             	mov    %eax,(%esp)
528c7e:	83 3c 24 fd          	cmpl   $0xfffffffd,(%esp)
528c82:	75 0f                	jne    0x528c93
528c84:	8b 53 0c             	mov    0xc(%ebx),%edx
528c87:	8b 46 28             	mov    0x28(%esi),%eax
528c8a:	ff 56 24             	call   *0x24(%esi)
528c8d:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
528c93:	8b 54 24 08          	mov    0x8(%esp),%edx
528c97:	89 53 20             	mov    %edx,0x20(%ebx)
528c9a:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528c9d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
528ca1:	89 4e 04             	mov    %ecx,0x4(%esi)
528ca4:	8b 44 24 0c          	mov    0xc(%esp),%eax
528ca8:	2b 06                	sub    (%esi),%eax
528caa:	01 46 08             	add    %eax,0x8(%esi)
528cad:	8b c3                	mov    %ebx,%eax
528caf:	8b 54 24 0c          	mov    0xc(%esp),%edx
528cb3:	89 16                	mov    %edx,(%esi)
528cb5:	8b d6                	mov    %esi,%edx
528cb7:	8b 4c 24 14          	mov    0x14(%esp),%ecx
528cbb:	89 4b 34             	mov    %ecx,0x34(%ebx)
528cbe:	8b 0c 24             	mov    (%esp),%ecx
528cc1:	e8 ba 15 00 00       	call   0x52a280
528cc6:	e9 53 05 00 00       	jmp    0x52921e
528ccb:	33 c0                	xor    %eax,%eax
528ccd:	89 43 08             	mov    %eax,0x8(%ebx)
528cd0:	c7 03 05 00 00 00    	movl   $0x5,(%ebx)
528cd6:	e9 23 02 00 00       	jmp    0x528efe
528cdb:	8b 53 10             	mov    0x10(%ebx),%edx
528cde:	89 54 24 04          	mov    %edx,0x4(%esp)
528ce2:	3b 7c 24 04          	cmp    0x4(%esp),%edi
528ce6:	73 69                	jae    0x528d51
528ce8:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
528ced:	74 07                	je     0x528cf6
528cef:	33 c9                	xor    %ecx,%ecx
528cf1:	89 0c 24             	mov    %ecx,(%esp)
528cf4:	eb 38                	jmp    0x528d2e
528cf6:	8b 44 24 08          	mov    0x8(%esp),%eax
528cfa:	89 43 20             	mov    %eax,0x20(%ebx)
528cfd:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528d00:	8b 54 24 10          	mov    0x10(%esp),%edx
528d04:	89 56 04             	mov    %edx,0x4(%esi)
528d07:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528d0b:	2b 0e                	sub    (%esi),%ecx
528d0d:	01 4e 08             	add    %ecx,0x8(%esi)
528d10:	8b 44 24 0c          	mov    0xc(%esp),%eax
528d14:	89 06                	mov    %eax,(%esi)
528d16:	8b c3                	mov    %ebx,%eax
528d18:	8b 54 24 14          	mov    0x14(%esp),%edx
528d1c:	89 53 34             	mov    %edx,0x34(%ebx)
528d1f:	8b d6                	mov    %esi,%edx
528d21:	8b 0c 24             	mov    (%esp),%ecx
528d24:	e8 57 15 00 00       	call   0x52a280
528d29:	e9 f0 04 00 00       	jmp    0x52921e
528d2e:	8b cf                	mov    %edi,%ecx
528d30:	ff 4c 24 10          	decl   0x10(%esp)
528d34:	8b 44 24 0c          	mov    0xc(%esp),%eax
528d38:	8a 10                	mov    (%eax),%dl
528d3a:	33 c0                	xor    %eax,%eax
528d3c:	8a c2                	mov    %dl,%al
528d3e:	d3 e0                	shl    %cl,%eax
528d40:	09 44 24 08          	or     %eax,0x8(%esp)
528d44:	ff 44 24 0c          	incl   0xc(%esp)
528d48:	83 c7 08             	add    $0x8,%edi
528d4b:	3b 7c 24 04          	cmp    0x4(%esp),%edi
528d4f:	72 97                	jb     0x528ce8
528d51:	8b 54 24 04          	mov    0x4(%esp),%edx
528d55:	8b 04 95 c4 91 69 00 	mov    0x6991c4(,%edx,4),%eax
528d5c:	23 44 24 08          	and    0x8(%esp),%eax
528d60:	c1 e0 03             	shl    $0x3,%eax
528d63:	03 43 14             	add    0x14(%ebx),%eax
528d66:	33 d2                	xor    %edx,%edx
528d68:	8a 50 01             	mov    0x1(%eax),%dl
528d6b:	89 54 24 04          	mov    %edx,0x4(%esp)
528d6f:	8b 50 04             	mov    0x4(%eax),%edx
528d72:	83 fa 10             	cmp    $0x10,%edx
528d75:	73 1d                	jae    0x528d94
528d77:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528d7b:	d3 6c 24 08          	shrl   %cl,0x8(%esp)
528d7f:	2b 7c 24 04          	sub    0x4(%esp),%edi
528d83:	8b 43 08             	mov    0x8(%ebx),%eax
528d86:	ff 43 08             	incl   0x8(%ebx)
528d89:	8b 4b 0c             	mov    0xc(%ebx),%ecx
528d8c:	89 14 81             	mov    %edx,(%ecx,%eax,4)
528d8f:	e9 6a 01 00 00       	jmp    0x528efe
528d94:	83 fa 12             	cmp    $0x12,%edx
528d97:	75 07                	jne    0x528da0
528d99:	b8 07 00 00 00       	mov    $0x7,%eax
528d9e:	eb 05                	jmp    0x528da5
528da0:	8b c2                	mov    %edx,%eax
528da2:	83 e8 0e             	sub    $0xe,%eax
528da5:	83 fa 12             	cmp    $0x12,%edx
528da8:	75 07                	jne    0x528db1
528daa:	b9 0b 00 00 00       	mov    $0xb,%ecx
528daf:	eb 05                	jmp    0x528db6
528db1:	b9 03 00 00 00       	mov    $0x3,%ecx
528db6:	89 4c 24 28          	mov    %ecx,0x28(%esp)
528dba:	eb 67                	jmp    0x528e23
528dbc:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
528dc1:	74 07                	je     0x528dca
528dc3:	33 c9                	xor    %ecx,%ecx
528dc5:	89 0c 24             	mov    %ecx,(%esp)
528dc8:	eb 38                	jmp    0x528e02
528dca:	8b 44 24 08          	mov    0x8(%esp),%eax
528dce:	89 43 20             	mov    %eax,0x20(%ebx)
528dd1:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528dd4:	8b 54 24 10          	mov    0x10(%esp),%edx
528dd8:	89 56 04             	mov    %edx,0x4(%esi)
528ddb:	8b 44 24 0c          	mov    0xc(%esp),%eax
528ddf:	2b 06                	sub    (%esi),%eax
528de1:	01 46 08             	add    %eax,0x8(%esi)
528de4:	8b c3                	mov    %ebx,%eax
528de6:	8b 54 24 0c          	mov    0xc(%esp),%edx
528dea:	89 16                	mov    %edx,(%esi)
528dec:	8b d6                	mov    %esi,%edx
528dee:	8b 4c 24 14          	mov    0x14(%esp),%ecx
528df2:	89 4b 34             	mov    %ecx,0x34(%ebx)
528df5:	8b 0c 24             	mov    (%esp),%ecx
528df8:	e8 83 14 00 00       	call   0x52a280
528dfd:	e9 1c 04 00 00       	jmp    0x52921e
528e02:	ff 4c 24 10          	decl   0x10(%esp)
528e06:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528e0a:	8a 09                	mov    (%ecx),%cl
528e0c:	8b e9                	mov    %ecx,%ebp
528e0e:	81 e5 ff 00 00 00    	and    $0xff,%ebp
528e14:	8b cf                	mov    %edi,%ecx
528e16:	d3 e5                	shl    %cl,%ebp
528e18:	09 6c 24 08          	or     %ebp,0x8(%esp)
528e1c:	ff 44 24 0c          	incl   0xc(%esp)
528e20:	83 c7 08             	add    $0x8,%edi
528e23:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528e27:	03 c8                	add    %eax,%ecx
528e29:	3b f9                	cmp    %ecx,%edi
528e2b:	72 8f                	jb     0x528dbc
528e2d:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528e31:	d3 6c 24 08          	shrl   %cl,0x8(%esp)
528e35:	8b 0c 85 c4 91 69 00 	mov    0x6991c4(,%eax,4),%ecx
528e3c:	2b 7c 24 04          	sub    0x4(%esp),%edi
528e40:	23 4c 24 08          	and    0x8(%esp),%ecx
528e44:	2b f8                	sub    %eax,%edi
528e46:	01 4c 24 28          	add    %ecx,0x28(%esp)
528e4a:	8b c8                	mov    %eax,%ecx
528e4c:	d3 6c 24 08          	shrl   %cl,0x8(%esp)
528e50:	8b 43 08             	mov    0x8(%ebx),%eax
528e53:	8b 4b 04             	mov    0x4(%ebx),%ecx
528e56:	89 4c 24 04          	mov    %ecx,0x4(%esp)
528e5a:	8b 6c 24 04          	mov    0x4(%esp),%ebp
528e5e:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528e62:	c1 ed 05             	shr    $0x5,%ebp
528e65:	83 e1 1f             	and    $0x1f,%ecx
528e68:	83 e5 1f             	and    $0x1f,%ebp
528e6b:	03 cd                	add    %ebp,%ecx
528e6d:	8b 6c 24 28          	mov    0x28(%esp),%ebp
528e71:	03 e8                	add    %eax,%ebp
528e73:	81 c1 02 01 00 00    	add    $0x102,%ecx
528e79:	3b cd                	cmp    %ebp,%ecx
528e7b:	72 0a                	jb     0x528e87
528e7d:	83 fa 10             	cmp    $0x10,%edx
528e80:	75 5a                	jne    0x528edc
528e82:	83 f8 01             	cmp    $0x1,%eax
528e85:	73 55                	jae    0x528edc
528e87:	8b 53 0c             	mov    0xc(%ebx),%edx
528e8a:	8b 46 28             	mov    0x28(%esi),%eax
528e8d:	ff 56 24             	call   *0x24(%esi)
528e90:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
528e96:	c7 46 18 70 7d 69 00 	movl   $0x697d70,0x18(%esi)
528e9d:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
528ea4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
528ea8:	89 4b 20             	mov    %ecx,0x20(%ebx)
528eab:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528eae:	8b 44 24 10          	mov    0x10(%esp),%eax
528eb2:	89 46 04             	mov    %eax,0x4(%esi)
528eb5:	8b 54 24 0c          	mov    0xc(%esp),%edx
528eb9:	2b 16                	sub    (%esi),%edx
528ebb:	01 56 08             	add    %edx,0x8(%esi)
528ebe:	8b d6                	mov    %esi,%edx
528ec0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528ec4:	89 0e                	mov    %ecx,(%esi)
528ec6:	8b 44 24 14          	mov    0x14(%esp),%eax
528eca:	89 43 34             	mov    %eax,0x34(%ebx)
528ecd:	8b c3                	mov    %ebx,%eax
528ecf:	8b 0c 24             	mov    (%esp),%ecx
528ed2:	e8 a9 13 00 00       	call   0x52a280
528ed7:	e9 42 03 00 00       	jmp    0x52921e
528edc:	83 fa 10             	cmp    $0x10,%edx
528edf:	75 09                	jne    0x528eea
528ee1:	8b 53 0c             	mov    0xc(%ebx),%edx
528ee4:	8b 4c 82 fc          	mov    -0x4(%edx,%eax,4),%ecx
528ee8:	eb 02                	jmp    0x528eec