529d76:	3b 6c 24 04          	cmp    0x4(%esp),%ebp
529d7a:	73 5a                	jae    0x529dd6
529d7c:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
529d81:	74 07                	je     0x529d8a
529d83:	33 d2                	xor    %edx,%edx
529d85:	89 14 24             	mov    %edx,(%esp)
529d88:	eb 2e                	jmp    0x529db8
529d8a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
529d8e:	89 4b 20             	mov    %ecx,0x20(%ebx)
529d91:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
529d94:	8b 54 24 14          	mov    0x14(%esp),%edx
529d98:	8b cf                	mov    %edi,%ecx
529d9a:	89 56 04             	mov    %edx,0x4(%esi)
529d9d:	8b d6                	mov    %esi,%edx
529d9f:	2b 0e                	sub    (%esi),%ecx
529da1:	01 4e 08             	add    %ecx,0x8(%esi)
529da4:	89 3e                	mov    %edi,(%esi)
529da6:	89 43 34             	mov    %eax,0x34(%ebx)
529da9:	8b c3                	mov    %ebx,%eax
529dab:	8b 0c 24             	mov    (%esp),%ecx
529dae:	e8 cd 04 00 00       	call   0x52a280
529db3:	e9 b3 04 00 00       	jmp    0x52a26b
529db8:	ff 4c 24 14          	decl   0x14(%esp)
529dbc:	8b cd                	mov    %ebp,%ecx
529dbe:	8a 17                	mov    (%edi),%dl
529dc0:	47                   	inc    %edi
529dc1:	81 e2 ff 00 00 00    	and    $0xff,%edx
529dc7:	83 c5 08             	add    $0x8,%ebp
529dca:	d3 e2                	shl    %cl,%edx
529dcc:	09 54 24 10          	or     %edx,0x10(%esp)
529dd0:	3b 6c 24 04          	cmp    0x4(%esp),%ebp
529dd4:	72 a6                	jb     0x529d7c
529dd6:	8b 4c 24 20          	mov    0x20(%esp),%ecx
529dda:	8b 51 08             	mov    0x8(%ecx),%edx
529ddd:	8b 4c 24 04          	mov    0x4(%esp),%ecx
529de1:	8b 0c 8d c4 91 69 00 	mov    0x6991c4(,%ecx,4),%ecx
529de8:	23 4c 24 10          	and    0x10(%esp),%ecx
529dec:	c1 e1 03             	shl    $0x3,%ecx
529def:	03 d1                	add    %ecx,%edx
529df1:	89 54 24 08          	mov    %edx,0x8(%esp)
529df5:	8b 54 24 08          	mov    0x8(%esp),%edx
529df9:	8a 52 01             	mov    0x1(%edx),%dl
529dfc:	8b ca                	mov    %edx,%ecx
529dfe:	81 e2 ff 00 00 00    	and    $0xff,%edx
529e04:	d3 6c 24 10          	shrl   %cl,0x10(%esp)
529e08:	8b 4c 24 08          	mov    0x8(%esp),%ecx
529e0c:	2b ea                	sub    %edx,%ebp
529e0e:	33 d2                	xor    %edx,%edx
529e10:	8a 11                	mov    (%ecx),%dl
529e12:	89 54 24 0c          	mov    %edx,0xc(%esp)
529e16:	f6 44 24 0c 10       	testb  $0x10,0xc(%esp)
529e1b:	74 2b                	je     0x529e48
529e1d:	8b 54 24 20          	mov    0x20(%esp),%edx
529e21:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
529e25:	83 e1 0f             	and    $0xf,%ecx
529e28:	89 4a 08             	mov    %ecx,0x8(%edx)
529e2b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
529e2f:	8b 51 04             	mov    0x4(%ecx),%edx
529e32:	8b 4c 24 20          	mov    0x20(%esp),%ecx
529e36:	89 51 0c             	mov    %edx,0xc(%ecx)
529e39:	8b 54 24 20          	mov    0x20(%esp),%edx
529e3d:	c7 02 04 00 00 00    	movl   $0x4,(%edx)
529e43:	e9 d1 fb ff ff       	jmp    0x529a19
529e48:	f6 44 24 0c 40       	testb  $0x40,0xc(%esp)
529e4d:	75 25                	jne    0x529e74
529e4f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
529e53:	8b 54 24 0c          	mov    0xc(%esp),%edx
529e57:	89 51 0c             	mov    %edx,0xc(%ecx)
529e5a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
529e5e:	8b 51 04             	mov    0x4(%ecx),%edx
529e61:	8b 4c 24 20          	mov    0x20(%esp),%ecx
529e65:	c1 e2 03             	shl    $0x3,%edx
529e68:	03 54 24 08          	add    0x8(%esp),%edx
529e6c:	89 51 08             	mov    %edx,0x8(%ecx)
529e6f:	e9 a5 fb ff ff       	jmp    0x529a19
529e74:	8b 54 24 20          	mov    0x20(%esp),%edx
529e78:	c7 02 09 00 00 00    	movl   $0x9,(%edx)
529e7e:	c7 46 18 ac 91 69 00 	movl   $0x6991ac,0x18(%esi)
529e85:	c7 04 24 fd ff ff ff 	movl   $0xfffffffd,(%esp)
529e8c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
529e90:	89 4b 20             	mov    %ecx,0x20(%ebx)
529e93:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
529e96:	8b 54 24 14          	mov    0x14(%esp),%edx
529e9a:	8b cf                	mov    %edi,%ecx
529e9c:	89 56 04             	mov    %edx,0x4(%esi)
529e9f:	8b d6                	mov    %esi,%edx
529ea1:	2b 0e                	sub    (%esi),%ecx
529ea3:	01 4e 08             	add    %ecx,0x8(%esi)
529ea6:	89 3e                	mov    %edi,(%esi)
529ea8:	89 43 34             	mov    %eax,0x34(%ebx)
529eab:	8b c3                	mov    %ebx,%eax
529ead:	8b 0c 24             	mov    (%esp),%ecx
529eb0:	e8 cb 03 00 00       	call   0x52a280
529eb5:	e9 b1 03 00 00       	jmp    0x52a26b
529eba:	8b 54 24 20          	mov    0x20(%esp),%edx
529ebe:	8b 4a 08             	mov    0x8(%edx),%ecx
529ec1:	89 4c 24 04          	mov    %ecx,0x4(%esp)
529ec5:	3b 6c 24 04          	cmp    0x4(%esp),%ebp
529ec9:	73 5a                	jae    0x529f25
529ecb:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
529ed0:	74 07                	je     0x529ed9
529ed2:	33 d2                	xor    %edx,%edx
529ed4:	89 14 24             	mov    %edx,(%esp)
529ed7:	eb 2e                	jmp    0x529f07
529ed9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
529edd:	89 4b 20             	mov    %ecx,0x20(%ebx)
529ee0:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
529ee3:	8b 54 24 14          	mov    0x14(%esp),%edx
529ee7:	8b cf                	mov    %edi,%ecx
529ee9:	89 56 04             	mov    %edx,0x4(%esi)
529eec:	8b d6                	mov    %esi,%edx
529eee:	2b 0e                	sub    (%esi),%ecx
529ef0:	01 4e 08             	add    %ecx,0x8(%esi)
529ef3:	89 3e                	mov    %edi,(%esi)
529ef5:	89 43 34             	mov    %eax,0x34(%ebx)
529ef8:	8b c3                	mov    %ebx,%eax
529efa:	8b 0c 24             	mov    (%esp),%ecx
529efd:	e8 7e 03 00 00       	call   0x52a280
529f02:	e9 64 03 00 00       	jmp    0x52a26b
529f07:	ff 4c 24 14          	decl   0x14(%esp)
529f0b:	8b cd                	mov    %ebp,%ecx
529f0d:	8a 17                	mov    (%edi),%dl
529f0f:	47                   	inc    %edi
529f10:	81 e2 ff 00 00 00    	and    $0xff,%edx
529f16:	83 c5 08             	add    $0x8,%ebp
529f19:	d3 e2                	shl    %cl,%edx
529f1b:	09 54 24 10          	or     %edx,0x10(%esp)
529f1f:	3b 6c 24 04          	cmp    0x4(%esp),%ebp
529f23:	72 a6                	jb     0x529ecb
529f25:	8b 4c 24 04          	mov    0x4(%esp),%ecx
529f29:	8b 14 8d c4 91 69 00 	mov    0x6991c4(,%ecx,4),%edx
529f30:	8b 4c 24 20          	mov    0x20(%esp),%ecx
529f34:	23 54 24 10          	and    0x10(%esp),%edx
529f38:	01 51 0c             	add    %edx,0xc(%ecx)
529f3b:	8b 4c 24 04          	mov    0x4(%esp),%ecx
529f3f:	d3 6c 24 10          	shrl   %cl,0x10(%esp)
529f43:	8b 54 24 20          	mov    0x20(%esp),%edx
529f47:	2b 6c 24 04          	sub    0x4(%esp),%ebp
529f4b:	c7 02 05 00 00 00    	movl   $0x5,(%edx)
529f51:	8b 54 24 20          	mov    0x20(%esp),%edx
529f55:	8b c8                	mov    %eax,%ecx
529f57:	2b 4a 0c             	sub    0xc(%edx),%ecx
529f5a:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
529f5e:	eb 09                	jmp    0x529f69
529f60:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
529f63:	2b ca                	sub    %edx,%ecx
529f65:	01 4c 24 1c          	add    %ecx,0x1c(%esp)
529f69:	8b 53 28             	mov    0x28(%ebx),%edx
529f6c:	3b 54 24 1c          	cmp    0x1c(%esp),%edx
529f70:	77 ee                	ja     0x529f60
529f72:	e9 ef 00 00 00       	jmp    0x52a066
529f77:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
529f7c:	0f 85 b7 00 00 00    	jne    0x52a039
529f82:	3b 43 2c             	cmp    0x2c(%ebx),%eax
529f85:	75 21                	jne    0x529fa8
529f87:	8b 53 30             	mov    0x30(%ebx),%edx
529f8a:	3b 53 28             	cmp    0x28(%ebx),%edx
529f8d:	74 19                	je     0x529fa8
529f8f:	8b 43 28             	mov    0x28(%ebx),%eax
529f92:	3b 43 30             	cmp    0x30(%ebx),%eax
529f95:	73 08                	jae    0x529f9f
529f97:	8b 4b 30             	mov    0x30(%ebx),%ecx
529f9a:	2b c8                	sub    %eax,%ecx
529f9c:	49                   	dec    %ecx
529f9d:	eb 05                	jmp    0x529fa4
529f9f:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
529fa2:	2b c8                	sub    %eax,%ecx
529fa4:	89 4c 24 18          	mov    %ecx,0x18(%esp)
529fa8:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
529fad:	0f 85 86 00 00 00    	jne    0x52a039
529fb3:	89 43 34             	mov    %eax,0x34(%ebx)
529fb6:	8b 0c 24             	mov    (%esp),%ecx
529fb9:	8b d6                	mov    %esi,%edx
529fbb:	8b c3                	mov    %ebx,%eax
529fbd:	e8 be 02 00 00       	call   0x52a280
529fc2:	89 04 24             	mov    %eax,(%esp)
529fc5:	8b 43 34             	mov    0x34(%ebx),%eax
529fc8:	3b 43 30             	cmp    0x30(%ebx),%eax
529fcb:	73 08                	jae    0x529fd5
529fcd:	8b 53 30             	mov    0x30(%ebx),%edx
529fd0:	2b d0                	sub    %eax,%edx
529fd2:	4a                   	dec    %edx
529fd3:	eb 05                	jmp    0x529fda
529fd5:	8b 53 2c             	mov    0x2c(%ebx),%edx
529fd8:	2b d0                	sub    %eax,%edx
529fda:	89 54 24 18          	mov    %edx,0x18(%esp)
529fde:	3b 43 2c             	cmp    0x2c(%ebx),%eax
529fe1:	75 21                	jne    0x52a004
529fe3:	8b 4b 30             	mov    0x30(%ebx),%ecx
529fe6:	3b 4b 28             	cmp    0x28(%ebx),%ecx
529fe9:	74 19                	je     0x52a004
529feb:	8b 43 28             	mov    0x28(%ebx),%eax
529fee:	3b 43 30             	cmp    0x30(%ebx),%eax
529ff1:	73 08                	jae    0x529ffb
529ff3:	8b 53 30             	mov    0x30(%ebx),%edx
529ff6:	2b d0                	sub    %eax,%edx
529ff8:	4a                   	dec    %edx
529ff9:	eb 05                	jmp    0x52a000
529ffb:	8b 53 2c             	mov    0x2c(%ebx),%edx
529ffe:	2b d0                	sub    %eax,%edx
52a000:	89 54 24 18          	mov    %edx,0x18(%esp)
52a004:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a009:	75 2e                	jne    0x52a039
52a00b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a00f:	89 4b 20             	mov    %ecx,0x20(%ebx)
52a012:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a015:	8b 54 24 14          	mov    0x14(%esp),%edx
52a019:	8b cf                	mov    %edi,%ecx
52a01b:	89 56 04             	mov    %edx,0x4(%esi)
52a01e:	8b d6                	mov    %esi,%edx
52a020:	2b 0e                	sub    (%esi),%ecx
52a022:	01 4e 08             	add    %ecx,0x8(%esi)
52a025:	89 3e                	mov    %edi,(%esi)
52a027:	89 43 34             	mov    %eax,0x34(%ebx)
52a02a:	8b c3                	mov    %ebx,%eax
52a02c:	8b 0c 24             	mov    (%esp),%ecx
52a02f:	e8 4c 02 00 00       	call   0x52a280
52a034:	e9 32 02 00 00       	jmp    0x52a26b
52a039:	33 d2                	xor    %edx,%edx
52a03b:	89 14 24             	mov    %edx,(%esp)
52a03e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
52a042:	8a 11                	mov    (%ecx),%dl
52a044:	88 10                	mov    %dl,(%eax)
52a046:	ff 44 24 1c          	incl   0x1c(%esp)
52a04a:	40                   	inc    %eax
52a04b:	ff 4c 24 18          	decl   0x18(%esp)
52a04f:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
52a053:	3b 4b 2c             	cmp    0x2c(%ebx),%ecx
52a056:	75 07                	jne    0x52a05f
52a058:	8b 53 28             	mov    0x28(%ebx),%edx
52a05b:	89 54 24 1c          	mov    %edx,0x1c(%esp)
52a05f:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a063:	ff 49 04             	decl   0x4(%ecx)
52a066:	8b 54 24 20          	mov    0x20(%esp),%edx
52a06a:	83 7a 04 00          	cmpl   $0x0,0x4(%edx)
52a06e:	0f 85 03 ff ff ff    	jne    0x529f77
52a074:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a078:	33 d2                	xor    %edx,%edx
52a07a:	89 11                	mov    %edx,(%ecx)
52a07c:	e9 98 f9 ff ff       	jmp    0x529a19
52a081:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a086:	0f 85 b7 00 00 00    	jne    0x52a143
52a08c:	3b 43 2c             	cmp    0x2c(%ebx),%eax
52a08f:	75 21                	jne    0x52a0b2
52a091:	8b 4b 30             	mov    0x30(%ebx),%ecx
52a094:	3b 4b 28             	cmp    0x28(%ebx),%ecx
52a097:	74 19                	je     0x52a0b2
52a099:	8b 43 28             	mov    0x28(%ebx),%eax
52a09c:	3b 43 30             	cmp    0x30(%ebx),%eax
52a09f:	73 08                	jae    0x52a0a9
52a0a1:	8b 53 30             	mov    0x30(%ebx),%edx
52a0a4:	2b d0                	sub    %eax,%edx
52a0a6:	4a                   	dec    %edx
52a0a7:	eb 05                	jmp    0x52a0ae
52a0a9:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a0ac:	2b d0                	sub    %eax,%edx
52a0ae:	89 54 24 18          	mov    %edx,0x18(%esp)
52a0b2:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a0b7:	0f 85 86 00 00 00    	jne    0x52a143
52a0bd:	89 43 34             	mov    %eax,0x34(%ebx)
52a0c0:	8b 0c 24             	mov    (%esp),%ecx
52a0c3:	8b d6                	mov    %esi,%edx
52a0c5:	8b c3                	mov    %ebx,%eax
52a0c7:	e8 b4 01 00 00       	call   0x52a280
52a0cc:	89 04 24             	mov    %eax,(%esp)
52a0cf:	8b 43 34             	mov    0x34(%ebx),%eax
52a0d2:	3b 43 30             	cmp    0x30(%ebx),%eax
52a0d5:	73 08                	jae    0x52a0df
52a0d7:	8b 53 30             	mov    0x30(%ebx),%edx
52a0da:	2b d0                	sub    %eax,%edx
52a0dc:	4a                   	dec    %edx
52a0dd:	eb 05                	jmp    0x52a0e4
52a0df:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a0e2:	2b d0                	sub    %eax,%edx
52a0e4:	89 54 24 18          	mov    %edx,0x18(%esp)
52a0e8:	3b 43 2c             	cmp    0x2c(%ebx),%eax
52a0eb:	75 21                	jne    0x52a10e
52a0ed:	8b 4b 30             	mov    0x30(%ebx),%ecx
52a0f0:	3b 4b 28             	cmp    0x28(%ebx),%ecx
52a0f3:	74 19                	je     0x52a10e
52a0f5:	8b 43 28             	mov    0x28(%ebx),%eax
52a0f8:	3b 43 30             	cmp    0x30(%ebx),%eax
52a0fb:	73 08                	jae    0x52a105
52a0fd:	8b 53 30             	mov    0x30(%ebx),%edx
52a100:	2b d0                	sub    %eax,%edx
52a102:	4a                   	dec    %edx
52a103:	eb 05                	jmp    0x52a10a
52a105:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a108:	2b d0                	sub    %eax,%edx
52a10a:	89 54 24 18          	mov    %edx,0x18(%esp)
52a10e:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
52a113:	75 2e                	jne    0x52a143
52a115:	8b 4c 24 10          	mov    0x10(%esp),%ecx
52a119:	89 4b 20             	mov    %ecx,0x20(%ebx)
52a11c:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a11f:	8b 54 24 14          	mov    0x14(%esp),%edx
52a123:	8b cf                	mov    %edi,%ecx
52a125:	89 56 04             	mov    %edx,0x4(%esi)
52a128:	8b d6                	mov    %esi,%edx
52a12a:	2b 0e                	sub    (%esi),%ecx
52a12c:	01 4e 08             	add    %ecx,0x8(%esi)
52a12f:	89 3e                	mov    %edi,(%esi)
52a131:	89 43 34             	mov    %eax,0x34(%ebx)
52a134:	8b c3                	mov    %ebx,%eax
52a136:	8b 0c 24             	mov    (%esp),%ecx
52a139:	e8 42 01 00 00       	call   0x52a280
52a13e:	e9 28 01 00 00       	jmp    0x52a26b
52a143:	33 d2                	xor    %edx,%edx
52a145:	89 14 24             	mov    %edx,(%esp)
52a148:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a14c:	8a 51 08             	mov    0x8(%ecx),%dl
52a14f:	88 10                	mov    %dl,(%eax)
52a151:	40                   	inc    %eax
52a152:	ff 4c 24 18          	decl   0x18(%esp)
52a156:	8b 4c 24 20          	mov    0x20(%esp),%ecx
52a15a:	33 d2                	xor    %edx,%edx
52a15c:	89 11                	mov    %edx,(%ecx)
52a15e:	e9 b6 f8 ff ff       	jmp    0x529a19
52a163:	83 fd 07             	cmp    $0x7,%ebp
52a166:	76 08                	jbe    0x52a170
52a168:	83 ed 08             	sub    $0x8,%ebp
52a16b:	ff 44 24 14          	incl   0x14(%esp)
52a16f:	4f                   	dec    %edi
52a170:	89 43 34             	mov    %eax,0x34(%ebx)
52a173:	8b 0c 24             	mov    (%esp),%ecx
52a176:	8b d6                	mov    %esi,%edx
52a178:	8b c3                	mov    %ebx,%eax
52a17a:	e8 01 01 00 00       	call   0x52a280
52a17f:	89 04 24             	mov    %eax,(%esp)
52a182:	8b 43 34             	mov    0x34(%ebx),%eax
52a185:	3b 43 30             	cmp    0x30(%ebx),%eax
52a188:	73 08                	jae    0x52a192
52a18a:	8b 53 30             	mov    0x30(%ebx),%edx
52a18d:	2b d0                	sub    %eax,%edx
52a18f:	4a                   	dec    %edx
52a190:	eb 05                	jmp    0x52a197
52a192:	8b 53 2c             	mov    0x2c(%ebx),%edx
52a195:	2b d0                	sub    %eax,%edx
52a197:	8b 4b 30             	mov    0x30(%ebx),%ecx
52a19a:	3b 4b 34             	cmp    0x34(%ebx),%ecx
52a19d:	74 2e                	je     0x52a1cd
52a19f:	8b 54 24 10          	mov    0x10(%esp),%edx
52a1a3:	89 53 20             	mov    %edx,0x20(%ebx)
52a1a6:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
52a1a9:	8b 4c 24 14          	mov    0x14(%esp),%ecx
52a1ad:	89 4e 04             	mov    %ecx,0x4(%esi)
52a1b0:	8b d7                	mov    %edi,%edx
52a1b2:	2b 16                	sub    (%esi),%edx
52a1b4:	01 56 08             	add    %edx,0x8(%esi)
52a1b7:	89 3e                	mov    %edi,(%esi)