aaec63:	8b d6                	mov    %esi,%edx
aaec65:	8d 48 01             	lea    0x1(%eax),%ecx
aaec68:	2b d0                	sub    %eax,%edx
aaec6a:	89 4d c8             	mov    %ecx,-0x38(%ebp)
aaec6d:	8b ce                	mov    %esi,%ecx
aaec6f:	3b f2                	cmp    %edx,%esi
aaec71:	7c 32                	jl     0xaaeca5
aaec73:	8b c1                	mov    %ecx,%eax
aaec75:	46                   	inc    %esi
aaec76:	2b c2                	sub    %edx,%eax
aaec78:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
aaec7b:	8d 3c 87             	lea    (%edi,%eax,4),%edi
aaec7e:	83 c7 04             	add    $0x4,%edi
aaec81:	8b 07                	mov    (%edi),%eax
aaec83:	3b 06                	cmp    (%esi),%eax
aaec85:	75 0d                	jne    0xaaec94
aaec87:	49                   	dec    %ecx
aaec88:	83 ef 04             	sub    $0x4,%edi
aaec8b:	83 ee 04             	sub    $0x4,%esi
aaec8e:	3b ca                	cmp    %edx,%ecx
aaec90:	7d ef                	jge    0xaaec81
aaec92:	eb 11                	jmp    0xaaeca5
aaec94:	8b 75 0c             	mov    0xc(%ebp),%esi
aaec97:	8b c1                	mov    %ecx,%eax
aaec99:	2b c2                	sub    %edx,%eax
aaec9b:	8b 44 86 04          	mov    0x4(%esi,%eax,4),%eax
aaec9f:	3b 44 8b 04          	cmp    0x4(%ebx,%ecx,4),%eax
aaeca3:	73 01                	jae    0xaaeca6
aaeca5:	42                   	inc    %edx
aaeca6:	85 d2                	test   %edx,%edx
aaeca8:	75 0b                	jne    0xaaecb5
aaecaa:	5e                   	pop    %esi
aaecab:	5f                   	pop    %edi
aaecac:	33 c0                	xor    %eax,%eax
aaecae:	33 d2                	xor    %edx,%edx
aaecb0:	5b                   	pop    %ebx
aaecb1:	8b e5                	mov    %ebp,%esp
aaecb3:	5d                   	pop    %ebp
aaecb4:	c3                   	ret
aaecb5:	8b 7d c8             	mov    -0x38(%ebp),%edi
aaecb8:	8b 45 0c             	mov    0xc(%ebp),%eax
aaecbb:	8b 34 b8             	mov    (%eax,%edi,4),%esi
aaecbe:	8b 44 b8 fc          	mov    -0x4(%eax,%edi,4),%eax
aaecc2:	89 45 e0             	mov    %eax,-0x20(%ebp)
aaecc5:	0f bd c6             	bsr    %esi,%eax
aaecc8:	89 75 cc             	mov    %esi,-0x34(%ebp)
aaeccb:	74 09                	je     0xaaecd6
aaeccd:	b9 1f 00 00 00       	mov    $0x1f,%ecx
aaecd2:	2b c8                	sub    %eax,%ecx
aaecd4:	eb 05                	jmp    0xaaecdb
aaecd6:	b9 20 00 00 00       	mov    $0x20,%ecx
aaecdb:	b8 20 00 00 00       	mov    $0x20,%eax
aaece0:	89 4d dc             	mov    %ecx,-0x24(%ebp)
aaece3:	2b c1                	sub    %ecx,%eax
aaece5:	89 45 c4             	mov    %eax,-0x3c(%ebp)
aaece8:	85 c9                	test   %ecx,%ecx
aaecea:	74 29                	je     0xaaed15
aaecec:	8b 45 e0             	mov    -0x20(%ebp),%eax
aaecef:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
aaecf2:	d3 e8                	shr    %cl,%eax
aaecf4:	8b 4d dc             	mov    -0x24(%ebp),%ecx
aaecf7:	d3 65 e0             	shll   %cl,-0x20(%ebp)
aaecfa:	d3 e6                	shl    %cl,%esi
aaecfc:	0b f0                	or     %eax,%esi
aaecfe:	89 75 cc             	mov    %esi,-0x34(%ebp)
aaed01:	83 ff 02             	cmp    $0x2,%edi
aaed04:	76 0f                	jbe    0xaaed15
aaed06:	8b 75 0c             	mov    0xc(%ebp),%esi
aaed09:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
aaed0c:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
aaed10:	d3 e8                	shr    %cl,%eax
aaed12:	09 45 e0             	or     %eax,-0x20(%ebp)
aaed15:	33 f6                	xor    %esi,%esi
aaed17:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
aaed1e:	83 c2 ff             	add    $0xffffffff,%edx
aaed21:	89 55 e4             	mov    %edx,-0x1c(%ebp)
aaed24:	0f 88 2c 02 00 00    	js     0xaaef56
aaed2a:	8d 4b 04             	lea    0x4(%ebx),%ecx
aaed2d:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
aaed30:	89 4d f0             	mov    %ecx,-0x10(%ebp)
aaed33:	8d 04 3a             	lea    (%edx,%edi,1),%eax
aaed36:	8d 4b fc             	lea    -0x4(%ebx),%ecx
aaed39:	89 45 f8             	mov    %eax,-0x8(%ebp)
aaed3c:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
aaed3f:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
aaed42:	3b 45 f4             	cmp    -0xc(%ebp),%eax
aaed45:	77 05                	ja     0xaaed4c
aaed47:	8b 41 08             	mov    0x8(%ecx),%eax
aaed4a:	eb 02                	jmp    0xaaed4e
aaed4c:	33 c0                	xor    %eax,%eax
aaed4e:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
aaed52:	8b 51 04             	mov    0x4(%ecx),%edx
aaed55:	8b 09                	mov    (%ecx),%ecx
aaed57:	89 45 d0             	mov    %eax,-0x30(%ebp)
aaed5a:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
aaed61:	89 45 fc             	mov    %eax,-0x4(%ebp)
aaed64:	89 4d ec             	mov    %ecx,-0x14(%ebp)
aaed67:	76 49                	jbe    0xaaedb2
aaed69:	8b f9                	mov    %ecx,%edi
aaed6b:	8b c2                	mov    %edx,%eax
aaed6d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
aaed70:	33 f6                	xor    %esi,%esi
aaed72:	8b 55 fc             	mov    -0x4(%ebp),%edx
aaed75:	d3 ef                	shr    %cl,%edi
aaed77:	8b 4d dc             	mov    -0x24(%ebp),%ecx
aaed7a:	e8 e0 bb 97 ff       	call   0x42a95f
aaed7f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
aaed82:	0b f2                	or     %edx,%esi
aaed84:	0b f8                	or     %eax,%edi
aaed86:	8b c6                	mov    %esi,%eax
aaed88:	8b 75 ec             	mov    -0x14(%ebp),%esi
aaed8b:	8b d7                	mov    %edi,%edx
aaed8d:	d3 e6                	shl    %cl,%esi
aaed8f:	83 7d f8 03          	cmpl   $0x3,-0x8(%ebp)
aaed93:	89 45 fc             	mov    %eax,-0x4(%ebp)
aaed96:	89 75 ec             	mov    %esi,-0x14(%ebp)
aaed99:	72 17                	jb     0xaaedb2
aaed9b:	8b 45 c8             	mov    -0x38(%ebp),%eax
aaed9e:	03 45 e4             	add    -0x1c(%ebp),%eax
aaeda1:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
aaeda4:	8b 44 83 f8          	mov    -0x8(%ebx,%eax,4),%eax
aaeda8:	d3 e8                	shr    %cl,%eax
aaedaa:	0b f0                	or     %eax,%esi
aaedac:	8b 45 fc             	mov    -0x4(%ebp),%eax
aaedaf:	89 75 ec             	mov    %esi,-0x14(%ebp)
aaedb2:	6a 00                	push   $0x0
aaedb4:	ff 75 cc             	push   -0x34(%ebp)
aaedb7:	50                   	push   %eax
aaedb8:	52                   	push   %edx
aaedb9:	e8 03 6f 96 ff       	call   0x415cc1
aaedbe:	89 5d d8             	mov    %ebx,-0x28(%ebp)
aaedc1:	33 f6                	xor    %esi,%esi
aaedc3:	8b d8                	mov    %eax,%ebx
aaedc5:	89 75 d8             	mov    %esi,-0x28(%ebp)
aaedc8:	8b c2                	mov    %edx,%eax
aaedca:	89 5d fc             	mov    %ebx,-0x4(%ebp)
aaedcd:	89 45 e8             	mov    %eax,-0x18(%ebp)
aaedd0:	8b f9                	mov    %ecx,%edi
aaedd2:	89 5d bc             	mov    %ebx,-0x44(%ebp)
aaedd5:	89 45 c0             	mov    %eax,-0x40(%ebp)
aaedd8:	85 c0                	test   %eax,%eax
aaedda:	75 05                	jne    0xaaede1
aaeddc:	83 fb ff             	cmp    $0xffffffff,%ebx
aaeddf:	76 2a                	jbe    0xaaee0b
aaede1:	6a 00                	push   $0x0
aaede3:	ff 75 cc             	push   -0x34(%ebp)
aaede6:	83 c3 01             	add    $0x1,%ebx
aaede9:	83 d0 ff             	adc    $0xffffffff,%eax
aaedec:	50                   	push   %eax
aaeded:	53                   	push   %ebx
aaedee:	e8 f8 bb 97 ff       	call   0x42a9eb
aaedf3:	03 f8                	add    %eax,%edi
aaedf5:	13 f2                	adc    %edx,%esi
aaedf7:	83 cb ff             	or     $0xffffffff,%ebx
aaedfa:	33 c0                	xor    %eax,%eax
aaedfc:	89 75 d8             	mov    %esi,-0x28(%ebp)
aaedff:	89 5d fc             	mov    %ebx,-0x4(%ebp)
aaee02:	89 5d bc             	mov    %ebx,-0x44(%ebp)
aaee05:	89 45 e8             	mov    %eax,-0x18(%ebp)
aaee08:	89 45 c0             	mov    %eax,-0x40(%ebp)
aaee0b:	85 f6                	test   %esi,%esi
aaee0d:	77 50                	ja     0xaaee5f
aaee0f:	72 05                	jb     0xaaee16
aaee11:	83 ff ff             	cmp    $0xffffffff,%edi
aaee14:	77 49                	ja     0xaaee5f
aaee16:	50                   	push   %eax
aaee17:	53                   	push   %ebx
aaee18:	33 c9                	xor    %ecx,%ecx
aaee1a:	8b f7                	mov    %edi,%esi
aaee1c:	0b 4d ec             	or     -0x14(%ebp),%ecx
aaee1f:	6a 00                	push   $0x0
aaee21:	ff 75 e0             	push   -0x20(%ebp)
aaee24:	89 4d fc             	mov    %ecx,-0x4(%ebp)
aaee27:	e8 bf bb 97 ff       	call   0x42a9eb
aaee2c:	3b d6                	cmp    %esi,%edx
aaee2e:	72 29                	jb     0xaaee59
aaee30:	77 05                	ja     0xaaee37
aaee32:	3b 45 fc             	cmp    -0x4(%ebp),%eax
aaee35:	76 22                	jbe    0xaaee59
aaee37:	8b 45 e8             	mov    -0x18(%ebp),%eax
aaee3a:	83 c3 ff             	add    $0xffffffff,%ebx
aaee3d:	89 5d bc             	mov    %ebx,-0x44(%ebp)
aaee40:	83 d0 ff             	adc    $0xffffffff,%eax
aaee43:	03 7d cc             	add    -0x34(%ebp),%edi
aaee46:	89 45 e8             	mov    %eax,-0x18(%ebp)
aaee49:	83 55 d8 00          	adcl   $0x0,-0x28(%ebp)
aaee4d:	89 45 c0             	mov    %eax,-0x40(%ebp)
aaee50:	75 0a                	jne    0xaaee5c
aaee52:	83 ff ff             	cmp    $0xffffffff,%edi
aaee55:	76 bf                	jbe    0xaaee16
aaee57:	eb 03                	jmp    0xaaee5c
aaee59:	8b 45 e8             	mov    -0x18(%ebp),%eax
aaee5c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
aaee5f:	85 c0                	test   %eax,%eax
aaee61:	75 08                	jne    0xaaee6b
aaee63:	85 db                	test   %ebx,%ebx
aaee65:	0f 84 b4 00 00 00    	je     0xaaef1f
aaee6b:	8b 4d c8             	mov    -0x38(%ebp),%ecx
aaee6e:	33 ff                	xor    %edi,%edi
aaee70:	33 f6                	xor    %esi,%esi
aaee72:	85 c9                	test   %ecx,%ecx
aaee74:	74 55                	je     0xaaeecb
aaee76:	8b 45 0c             	mov    0xc(%ebp),%eax
aaee79:	8b 5d f0             	mov    -0x10(%ebp),%ebx
aaee7c:	83 c0 04             	add    $0x4,%eax
aaee7f:	89 45 ec             	mov    %eax,-0x14(%ebp)
aaee82:	89 4d f4             	mov    %ecx,-0xc(%ebp)
aaee85:	8b 00                	mov    (%eax),%eax
aaee87:	89 45 d8             	mov    %eax,-0x28(%ebp)
aaee8a:	8b 45 c0             	mov    -0x40(%ebp),%eax
aaee8d:	f7 65 d8             	mull   -0x28(%ebp)
aaee90:	8b c8                	mov    %eax,%ecx
aaee92:	8b 45 bc             	mov    -0x44(%ebp),%eax
aaee95:	f7 65 d8             	mull   -0x28(%ebp)
aaee98:	03 d1                	add    %ecx,%edx
aaee9a:	03 f8                	add    %eax,%edi
aaee9c:	8b 03                	mov    (%ebx),%eax
aaee9e:	8b cf                	mov    %edi,%ecx
aaeea0:	13 f2                	adc    %edx,%esi
aaeea2:	8b fe                	mov    %esi,%edi
aaeea4:	33 f6                	xor    %esi,%esi
aaeea6:	3b c1                	cmp    %ecx,%eax
aaeea8:	73 05                	jae    0xaaeeaf
aaeeaa:	83 c7 01             	add    $0x1,%edi
aaeead:	13 f6                	adc    %esi,%esi
aaeeaf:	2b c1                	sub    %ecx,%eax
aaeeb1:	89 03                	mov    %eax,(%ebx)
aaeeb3:	83 c3 04             	add    $0x4,%ebx
aaeeb6:	8b 45 ec             	mov    -0x14(%ebp),%eax
aaeeb9:	83 c0 04             	add    $0x4,%eax
aaeebc:	83 6d f4 01          	subl   $0x1,-0xc(%ebp)
aaeec0:	89 45 ec             	mov    %eax,-0x14(%ebp)
aaeec3:	75 c0                	jne    0xaaee85
aaeec5:	8b 5d fc             	mov    -0x4(%ebp),%ebx
aaeec8:	8b 4d c8             	mov    -0x38(%ebp),%ecx
aaeecb:	33 c0                	xor    %eax,%eax
aaeecd:	3b c6                	cmp    %esi,%eax
aaeecf:	77 47                	ja     0xaaef18
aaeed1:	72 05                	jb     0xaaeed8
aaeed3:	39 7d d0             	cmp    %edi,-0x30(%ebp)
aaeed6:	73 40                	jae    0xaaef18
aaeed8:	85 c9                	test   %ecx,%ecx
aaeeda:	74 35                	je     0xaaef11
aaeedc:	8b 75 0c             	mov    0xc(%ebp),%esi
aaeedf:	8b f9                	mov    %ecx,%edi
aaeee1:	8b 55 f0             	mov    -0x10(%ebp),%edx
aaeee4:	83 c6 04             	add    $0x4,%esi
aaeee7:	8b d8                	mov    %eax,%ebx
aaeee9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
aaeef0:	8b 0a                	mov    (%edx),%ecx
aaeef2:	8d 76 04             	lea    0x4(%esi),%esi
aaeef5:	33 c0                	xor    %eax,%eax
aaeef7:	8d 52 04             	lea    0x4(%edx),%edx
aaeefa:	03 4e fc             	add    -0x4(%esi),%ecx
aaeefd:	13 c0                	adc    %eax,%eax
aaeeff:	03 cb                	add    %ebx,%ecx
aaef01:	89 4a fc             	mov    %ecx,-0x4(%edx)
aaef04:	83 d0 00             	adc    $0x0,%eax
aaef07:	8b d8                	mov    %eax,%ebx
aaef09:	83 ef 01             	sub    $0x1,%edi
aaef0c:	75 e2                	jne    0xaaeef0
aaef0e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
aaef11:	83 c3 ff             	add    $0xffffffff,%ebx
aaef14:	83 55 e8 ff          	adcl   $0xffffffff,-0x18(%ebp)
aaef18:	8b 45 f8             	mov    -0x8(%ebp),%eax
aaef1b:	48                   	dec    %eax
aaef1c:	89 45 f4             	mov    %eax,-0xc(%ebp)
aaef1f:	8b 75 b8             	mov    -0x48(%ebp),%esi
aaef22:	33 c0                	xor    %eax,%eax
aaef24:	8b 55 e4             	mov    -0x1c(%ebp),%edx
aaef27:	03 c3                	add    %ebx,%eax
aaef29:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
aaef2c:	8b f8                	mov    %eax,%edi
aaef2e:	8b 45 f8             	mov    -0x8(%ebp),%eax
aaef31:	83 d6 00             	adc    $0x0,%esi
aaef34:	83 6d f0 04          	subl   $0x4,-0x10(%ebp)
aaef38:	4a                   	dec    %edx
aaef39:	8b 5d 08             	mov    0x8(%ebp),%ebx
aaef3c:	83 e9 04             	sub    $0x4,%ecx
aaef3f:	48                   	dec    %eax
aaef40:	89 7d b8             	mov    %edi,-0x48(%ebp)
aaef43:	89 55 e4             	mov    %edx,-0x1c(%ebp)
aaef46:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
aaef49:	89 45 f8             	mov    %eax,-0x8(%ebp)
aaef4c:	85 d2                	test   %edx,%edx
aaef4e:	0f 89 ee fd ff ff    	jns    0xaaed42
aaef54:	eb 02                	jmp    0xaaef58
aaef56:	33 ff                	xor    %edi,%edi
aaef58:	8b 55 f4             	mov    -0xc(%ebp),%edx
aaef5b:	42                   	inc    %edx
aaef5c:	8b c2                	mov    %edx,%eax
aaef5e:	3b 03                	cmp    (%ebx),%eax
aaef60:	73 1c                	jae    0xaaef7e
aaef62:	8d 48 01             	lea    0x1(%eax),%ecx
aaef65:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
aaef68:	eb 06                	jmp    0xaaef70
aaef6a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
aaef70:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
aaef76:	8d 49 04             	lea    0x4(%ecx),%ecx
aaef79:	40                   	inc    %eax
aaef7a:	3b 03                	cmp    (%ebx),%eax
aaef7c:	72 f2                	jb     0xaaef70
aaef7e:	89 13                	mov    %edx,(%ebx)
aaef80:	85 d2                	test   %edx,%edx
aaef82:	74 0f                	je     0xaaef93
aaef84:	8b 0b                	mov    (%ebx),%ecx
aaef86:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
aaef8a:	75 07                	jne    0xaaef93
aaef8c:	83 c1 ff             	add    $0xffffffff,%ecx
aaef8f:	89 0b                	mov    %ecx,(%ebx)
aaef91:	75 f1                	jne    0xaaef84
aaef93:	8b d6                	mov    %esi,%edx
aaef95:	8b c7                	mov    %edi,%eax
aaef97:	5e                   	pop    %esi
aaef98:	5f                   	pop    %edi
aaef99:	5b                   	pop    %ebx
aaef9a:	8b e5                	mov    %ebp,%esp
aaef9c:	5d                   	pop    %ebp
aaef9d:	c3                   	ret
aaef9e:	cc                   	int3
aaef9f:	cc                   	int3
aaefa0:	cc                   	int3
aaefa1:	cc                   	int3
aaefa2:	cc                   	int3
aaefa3:	cc                   	int3
aaefa4:	cc                   	int3
aaefa5:	cc                   	int3
aaefa6:	cc                   	int3
aaefa7:	cc                   	int3
aaefa8:	cc                   	int3
aaefa9:	cc                   	int3
aaefaa:	cc                   	int3
aaefab:	cc                   	int3
aaefac:	cc                   	int3
aaefad:	cc                   	int3
aaefae:	cc                   	int3
aaefaf:	cc                   	int3
aaefb0:	cc                   	int3
aaefb1:	cc                   	int3
aaefb2:	cc                   	int3
aaefb3:	cc                   	int3
aaefb4:	cc                   	int3
aaefb5:	cc                   	int3
aaefb6:	cc                   	int3
aaefb7:	cc                   	int3
aaefb8:	cc                   	int3
aaefb9:	cc                   	int3
aaefba:	cc                   	int3
aaefbb:	cc                   	int3
aaefbc:	cc                   	int3