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
528eea:	33 c9                	xor    %ecx,%ecx
528eec:	8b d1                	mov    %ecx,%edx
528eee:	8b 4b 0c             	mov    0xc(%ebx),%ecx
528ef1:	89 14 81             	mov    %edx,(%ecx,%eax,4)
528ef4:	40                   	inc    %eax
528ef5:	ff 4c 24 28          	decl   0x28(%esp)
528ef9:	75 f3                	jne    0x528eee
528efb:	89 43 08             	mov    %eax,0x8(%ebx)
528efe:	8b 43 04             	mov    0x4(%ebx),%eax
528f01:	89 44 24 04          	mov    %eax,0x4(%esp)
528f05:	8b 44 24 04          	mov    0x4(%esp),%eax
528f09:	8b 54 24 04          	mov    0x4(%esp),%edx
528f0d:	c1 e8 05             	shr    $0x5,%eax
528f10:	83 e2 1f             	and    $0x1f,%edx
528f13:	83 e0 1f             	and    $0x1f,%eax
528f16:	03 d0                	add    %eax,%edx
528f18:	81 c2 02 01 00 00    	add    $0x102,%edx
528f1e:	3b 53 08             	cmp    0x8(%ebx),%edx
528f21:	0f 87 b4 fd ff ff    	ja     0x528cdb
528f27:	33 d2                	xor    %edx,%edx
528f29:	89 53 14             	mov    %edx,0x14(%ebx)
528f2c:	c7 44 24 2c 09 00 00 	movl   $0x9,0x2c(%esp)
528f33:	00
528f34:	c7 44 24 30 06 00 00 	movl   $0x6,0x30(%esp)
528f3b:	00
528f3c:	8b 4b 04             	mov    0x4(%ebx),%ecx
528f3f:	8d 44 24 2c          	lea    0x2c(%esp),%eax
528f43:	89 4c 24 04          	mov    %ecx,0x4(%esp)
528f47:	50                   	push   %eax
528f48:	8d 54 24 34          	lea    0x34(%esp),%edx
528f4c:	52                   	push   %edx
528f4d:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
528f51:	51                   	push   %ecx
528f52:	8d 44 24 44          	lea    0x44(%esp),%eax
528f56:	50                   	push   %eax
528f57:	8b 53 24             	mov    0x24(%ebx),%edx
528f5a:	52                   	push   %edx
528f5b:	56                   	push   %esi
528f5c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
528f60:	8b 44 24 1c          	mov    0x1c(%esp),%eax
528f64:	c1 ea 05             	shr    $0x5,%edx
528f67:	83 e0 1f             	and    $0x1f,%eax
528f6a:	83 e2 1f             	and    $0x1f,%edx
528f6d:	8b 4b 0c             	mov    0xc(%ebx),%ecx
528f70:	42                   	inc    %edx
528f71:	05 01 01 00 00       	add    $0x101,%eax
528f76:	e8 a1 08 00 00       	call   0x52981c
528f7b:	89 44 24 04          	mov    %eax,0x4(%esp)
528f7f:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
528f84:	74 55                	je     0x528fdb
528f86:	83 7c 24 04 fd       	cmpl   $0xfffffffd,0x4(%esp)
528f8b:	75 0f                	jne    0x528f9c
528f8d:	8b 53 0c             	mov    0xc(%ebx),%edx
528f90:	8b 46 28             	mov    0x28(%esi),%eax
528f93:	ff 56 24             	call   *0x24(%esi)
528f96:	c7 03 09 00 00 00    	movl   $0x9,(%ebx)
528f9c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
528fa0:	89 0c 24             	mov    %ecx,(%esp)
528fa3:	8b 44 24 08          	mov    0x8(%esp),%eax
528fa7:	89 43 20             	mov    %eax,0x20(%ebx)
528faa:	89 7b 1c             	mov    %edi,0x1c(%ebx)
528fad:	8b 54 24 10          	mov    0x10(%esp),%edx
528fb1:	89 56 04             	mov    %edx,0x4(%esi)
528fb4:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
528fb8:	2b 0e                	sub    (%esi),%ecx
528fba:	01 4e 08             	add    %ecx,0x8(%esi)
528fbd:	8b 44 24 0c          	mov    0xc(%esp),%eax
528fc1:	89 06                	mov    %eax,(%esi)
528fc3:	8b c3                	mov    %ebx,%eax
528fc5:	8b 54 24 14          	mov    0x14(%esp),%edx
528fc9:	89 53 34             	mov    %edx,0x34(%ebx)
528fcc:	8b d6                	mov    %esi,%edx
528fce:	8b 0c 24             	mov    (%esp),%ecx
528fd1:	e8 aa 12 00 00       	call   0x52a280
528fd6:	e9 43 02 00 00       	jmp    0x52921e
528fdb:	8b 4c 24 38          	mov    0x38(%esp),%ecx
528fdf:	51                   	push   %ecx
528fe0:	56                   	push   %esi
528fe1:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
528fe5:	8b 54 24 38          	mov    0x38(%esp),%edx
528fe9:	8b 44 24 34          	mov    0x34(%esp),%eax
528fed:	e8 96 09 00 00       	call   0x529988
528ff2:	8b e8                	mov    %eax,%ebp
528ff4:	85 c0                	test   %eax,%eax
528ff6:	75 3f                	jne    0x529037
528ff8:	c7 04 24 fc ff ff ff 	movl   $0xfffffffc,(%esp)
528fff:	8b 54 24 08          	mov    0x8(%esp),%edx
529003:	89 53 20             	mov    %edx,0x20(%ebx)
529006:	89 7b 1c             	mov    %edi,0x1c(%ebx)
529009:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52900d:	89 4e 04             	mov    %ecx,0x4(%esi)
529010:	8b 44 24 0c          	mov    0xc(%esp),%eax
529014:	2b 06                	sub    (%esi),%eax
529016:	01 46 08             	add    %eax,0x8(%esi)
529019:	8b c3                	mov    %ebx,%eax
52901b:	8b 54 24 0c          	mov    0xc(%esp),%edx
52901f:	89 16                	mov    %edx,(%esi)
529021:	8b d6                	mov    %esi,%edx
529023:	8b 4c 24 14          	mov    0x14(%esp),%ecx
529027:	89 4b 34             	mov    %ecx,0x34(%ebx)
52902a:	8b 0c 24             	mov    (%esp),%ecx
52902d:	e8 4e 12 00 00       	call   0x52a280
529032:	e9 e7 01 00 00       	jmp    0x52921e
529037:	89 6b 04             	mov    %ebp,0x4(%ebx)
52903a:	8b 53 0c             	mov    0xc(%ebx),%edx
52903d:	8b 46 28             	mov    0x28(%esi),%eax
529040:	ff 56 24             	call   *0x24(%esi)
529043:	c7 03 06 00 00 00    	movl   $0x6,(%ebx)
529049:	8b 4c 24 08          	mov    0x8(%esp),%ecx
52904d:	89 4b 20             	mov    %ecx,0x20(%ebx)
529050:	89 7b 1c             	mov    %edi,0x1c(%ebx)
529053:	8b 44 24 10          	mov    0x10(%esp),%eax
529057:	89 46 04             	mov    %eax,0x4(%esi)
52905a:	8b 54 24 0c          	mov    0xc(%esp),%edx
52905e:	2b 16                	sub    (%esi),%edx
529060:	01 56 08             	add    %edx,0x8(%esi)
529063:	8b d6                	mov    %esi,%edx
529065:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
529069:	89 0e                	mov    %ecx,(%esi)
52906b:	8b 44 24 14          	mov    0x14(%esp),%eax
52906f:	89 43 34             	mov    %eax,0x34(%ebx)
529072:	8b c3                	mov    %ebx,%eax
529074:	8b 0c 24             	mov    (%esp),%ecx
529077:	e8 5c 09 00 00       	call   0x5299d8
52907c:	89 04 24             	mov    %eax,(%esp)
52907f:	48                   	dec    %eax
529080:	74 11                	je     0x529093
529082:	8b 0c 24             	mov    (%esp),%ecx
529085:	8b d6                	mov    %esi,%edx
529087:	8b c3                	mov    %ebx,%eax
529089:	e8 f2 11 00 00       	call   0x52a280
52908e:	e9 8b 01 00 00       	jmp    0x52921e
529093:	33 d2                	xor    %edx,%edx
529095:	89 14 24             	mov    %edx,(%esp)
529098:	8b d6                	mov    %esi,%edx
52909a:	8b 43 04             	mov    0x4(%ebx),%eax
52909d:	e8 d2 11 00 00       	call   0x52a274
5290a2:	8b 0e                	mov    (%esi),%ecx
5290a4:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5290a8:	8b 46 04             	mov    0x4(%esi),%eax
5290ab:	89 44 24 10          	mov    %eax,0x10(%esp)
5290af:	8b 53 20             	mov    0x20(%ebx),%edx
5290b2:	89 54 24 08          	mov    %edx,0x8(%esp)
5290b6:	8b 7b 1c             	mov    0x1c(%ebx),%edi
5290b9:	8b 43 34             	mov    0x34(%ebx),%eax
5290bc:	89 44 24 14          	mov    %eax,0x14(%esp)
5290c0:	8b 54 24 14          	mov    0x14(%esp),%edx
5290c4:	3b 53 30             	cmp    0x30(%ebx),%edx
5290c7:	73 0a                	jae    0x5290d3
5290c9:	8b 6b 30             	mov    0x30(%ebx),%ebp
5290cc:	2b 6c 24 14          	sub    0x14(%esp),%ebp
5290d0:	4d                   	dec    %ebp
5290d1:	eb 07                	jmp    0x5290da
5290d3:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
5290d6:	2b 6c 24 14          	sub    0x14(%esp),%ebp
5290da:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
5290de:	75 09                	jne    0x5290e9
5290e0:	33 c0                	xor    %eax,%eax
5290e2:	89 03                	mov    %eax,(%ebx)
5290e4:	e9 ad f4 ff ff       	jmp    0x528596
5290e9:	c7 03 07 00 00 00    	movl   $0x7,(%ebx)
5290ef:	8b 54 24 14          	mov    0x14(%esp),%edx
5290f3:	8b c3                	mov    %ebx,%eax
5290f5:	89 53 34             	mov    %edx,0x34(%ebx)
5290f8:	8b d6                	mov    %esi,%edx
5290fa:	8b 0c 24             	mov    (%esp),%ecx
5290fd:	e8 7e 11 00 00       	call   0x52a280
529102:	89 04 24             	mov    %eax,(%esp)
529105:	8b 4b 34             	mov    0x34(%ebx),%ecx
529108:	89 4c 24 14          	mov    %ecx,0x14(%esp)
52910c:	8b 44 24 14          	mov    0x14(%esp),%eax
529110:	3b 43 30             	cmp    0x30(%ebx),%eax
529113:	73 0a                	jae    0x52911f
529115:	8b 53 30             	mov    0x30(%ebx),%edx
529118:	2b 54 24 14          	sub    0x14(%esp),%edx