aaeac6:	cc                   	int3
aaeac7:	cc                   	int3
aaeac8:	cc                   	int3
aaeac9:	cc                   	int3
aaeaca:	cc                   	int3
aaeacb:	cc                   	int3
aaeacc:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
aaead0:	74 09                	je     0xaaeadb
aaead2:	83 c8 ff             	or     $0xffffffff,%eax
aaead5:	ba ff ff 0f 00       	mov    $0xfffff,%edx
aaeada:	c3                   	ret
aaeadb:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
aaeae0:	33 d2                	xor    %edx,%edx
aaeae2:	c3                   	ret
aaeae3:	cc                   	int3
aaeae4:	cc                   	int3
aaeae5:	cc                   	int3
aaeae6:	cc                   	int3
aaeae7:	cc                   	int3
aaeae8:	cc                   	int3
aaeae9:	cc                   	int3
aaeaea:	cc                   	int3
aaeaeb:	cc                   	int3
aaeaec:	cc                   	int3
aaeaed:	cc                   	int3
aaeaee:	cc                   	int3
aaeaef:	cc                   	int3
aaeaf0:	8b ff                	mov    %edi,%edi
aaeaf2:	55                   	push   %ebp
aaeaf3:	8b ec                	mov    %esp,%ebp
aaeaf5:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
aaeafb:	53                   	push   %ebx
aaeafc:	8b 5d 08             	mov    0x8(%ebp),%ebx
aaeaff:	8b 03                	mov    (%ebx),%eax
aaeb01:	85 c0                	test   %eax,%eax
aaeb03:	75 07                	jne    0xaaeb0c
aaeb05:	33 d2                	xor    %edx,%edx
aaeb07:	5b                   	pop    %ebx
aaeb08:	8b e5                	mov    %ebp,%esp
aaeb0a:	5d                   	pop    %ebp
aaeb0b:	c3                   	ret
aaeb0c:	57                   	push   %edi
aaeb0d:	8b 7d 0c             	mov    0xc(%ebp),%edi
aaeb10:	8b 0f                	mov    (%edi),%ecx
aaeb12:	85 c9                	test   %ecx,%ecx
aaeb14:	75 0a                	jne    0xaaeb20
aaeb16:	5f                   	pop    %edi
aaeb17:	33 c0                	xor    %eax,%eax
aaeb19:	33 d2                	xor    %edx,%edx
aaeb1b:	5b                   	pop    %ebx
aaeb1c:	8b e5                	mov    %ebp,%esp
aaeb1e:	5d                   	pop    %ebp
aaeb1f:	c3                   	ret
aaeb20:	56                   	push   %esi
aaeb21:	8d 70 ff             	lea    -0x1(%eax),%esi
aaeb24:	8d 41 ff             	lea    -0x1(%ecx),%eax
aaeb27:	89 75 f4             	mov    %esi,-0xc(%ebp)
aaeb2a:	85 c0                	test   %eax,%eax
aaeb2c:	0f 85 2d 01 00 00    	jne    0xaaec5f
aaeb32:	8b 4f 04             	mov    0x4(%edi),%ecx
aaeb35:	89 4d d8             	mov    %ecx,-0x28(%ebp)
aaeb38:	83 f9 01             	cmp    $0x1,%ecx
aaeb3b:	75 2f                	jne    0xaaeb6c
aaeb3d:	8b 73 04             	mov    0x4(%ebx),%esi
aaeb40:	8d 4b 04             	lea    0x4(%ebx),%ecx
aaeb43:	50                   	push   %eax
aaeb44:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
aaeb4a:	89 03                	mov    %eax,(%ebx)
aaeb4c:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
aaeb52:	50                   	push   %eax
aaeb53:	68 cc 01 00 00       	push   $0x1cc
aaeb58:	51                   	push   %ecx
aaeb59:	e8 92 44 00 00       	call   0xab2ff0
aaeb5e:	83 c4 10             	add    $0x10,%esp
aaeb61:	8b c6                	mov    %esi,%eax
aaeb63:	33 d2                	xor    %edx,%edx
aaeb65:	5e                   	pop    %esi
aaeb66:	5f                   	pop    %edi
aaeb67:	5b                   	pop    %ebx
aaeb68:	8b e5                	mov    %ebp,%esp
aaeb6a:	5d                   	pop    %ebp
aaeb6b:	c3                   	ret
aaeb6c:	85 f6                	test   %esi,%esi
aaeb6e:	75 49                	jne    0xaaebb9
aaeb70:	8b 73 04             	mov    0x4(%ebx),%esi
aaeb73:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
aaeb79:	6a 00                	push   $0x0
aaeb7b:	50                   	push   %eax
aaeb7c:	8d 7b 04             	lea    0x4(%ebx),%edi
aaeb7f:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
aaeb86:	00 00 00
aaeb89:	68 cc 01 00 00       	push   $0x1cc
aaeb8e:	57                   	push   %edi
aaeb8f:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
aaeb95:	e8 56 44 00 00       	call   0xab2ff0
aaeb9a:	33 d2                	xor    %edx,%edx
aaeb9c:	8b c6                	mov    %esi,%eax
aaeb9e:	f7 75 d8             	divl   -0x28(%ebp)
aaeba1:	83 c4 10             	add    $0x10,%esp
aaeba4:	33 c9                	xor    %ecx,%ecx
aaeba6:	3b ca                	cmp    %edx,%ecx
aaeba8:	89 17                	mov    %edx,(%edi)
aaebaa:	1b c9                	sbb    %ecx,%ecx
aaebac:	5e                   	pop    %esi
aaebad:	f7 d9                	neg    %ecx
aaebaf:	33 d2                	xor    %edx,%edx
aaebb1:	5f                   	pop    %edi
aaebb2:	89 0b                	mov    %ecx,(%ebx)
aaebb4:	5b                   	pop    %ebx
aaebb5:	8b e5                	mov    %ebp,%esp
aaebb7:	5d                   	pop    %ebp
aaebb8:	c3                   	ret
aaebb9:	33 ff                	xor    %edi,%edi
aaebbb:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
aaebc2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
aaebc9:	89 7d f0             	mov    %edi,-0x10(%ebp)
aaebcc:	83 fe ff             	cmp    $0xffffffff,%esi
aaebcf:	74 44                	je     0xaaec15
aaebd1:	8b 45 f4             	mov    -0xc(%ebp),%eax
aaebd4:	46                   	inc    %esi
aaebd5:	40                   	inc    %eax
aaebd6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
aaebd9:	8d 34 b3             	lea    (%ebx,%esi,4),%esi
aaebdc:	8d 64 24 00          	lea    0x0(%esp),%esp
aaebe0:	6a 00                	push   $0x0
aaebe2:	51                   	push   %ecx
aaebe3:	33 c0                	xor    %eax,%eax
aaebe5:	0b 06                	or     (%esi),%eax
aaebe7:	57                   	push   %edi
aaebe8:	50                   	push   %eax
aaebe9:	e8 d3 70 96 ff       	call   0x415cc1
aaebee:	89 55 c0             	mov    %edx,-0x40(%ebp)
aaebf1:	8d 76 fc             	lea    -0x4(%esi),%esi
aaebf4:	33 d2                	xor    %edx,%edx
aaebf6:	89 5d f0             	mov    %ebx,-0x10(%ebp)
aaebf9:	8b f9                	mov    %ecx,%edi
aaebfb:	03 d0                	add    %eax,%edx
aaebfd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
aaec00:	83 d1 00             	adc    $0x0,%ecx
aaec03:	89 55 f8             	mov    %edx,-0x8(%ebp)
aaec06:	83 6d e4 01          	subl   $0x1,-0x1c(%ebp)
aaec0a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
aaec0d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
aaec10:	75 ce                	jne    0xaaebe0
aaec12:	8b 5d 08             	mov    0x8(%ebp),%ebx
aaec15:	6a 00                	push   $0x0
aaec17:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
aaec1d:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
aaec24:	00 00 00
aaec27:	50                   	push   %eax
aaec28:	8d 73 04             	lea    0x4(%ebx),%esi
aaec2b:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
aaec31:	68 cc 01 00 00       	push   $0x1cc
aaec36:	56                   	push   %esi
aaec37:	e8 b4 43 00 00       	call   0xab2ff0
aaec3c:	8b 45 f0             	mov    -0x10(%ebp),%eax
aaec3f:	83 c4 10             	add    $0x10,%esp
aaec42:	8b 55 fc             	mov    -0x4(%ebp),%edx
aaec45:	33 c9                	xor    %ecx,%ecx
aaec47:	3b c8                	cmp    %eax,%ecx
aaec49:	89 3e                	mov    %edi,(%esi)
aaec4b:	89 43 08             	mov    %eax,0x8(%ebx)
aaec4e:	8b 45 f8             	mov    -0x8(%ebp),%eax
aaec51:	1b c9                	sbb    %ecx,%ecx
aaec53:	f7 d9                	neg    %ecx
aaec55:	5e                   	pop    %esi
aaec56:	41                   	inc    %ecx
aaec57:	5f                   	pop    %edi
aaec58:	89 0b                	mov    %ecx,(%ebx)
aaec5a:	5b                   	pop    %ebx
aaec5b:	8b e5                	mov    %ebp,%esp
aaec5d:	5d                   	pop    %ebp
aaec5e:	c3                   	ret
aaec5f:	3b c6                	cmp    %esi,%eax
aaec61:	77 47                	ja     0xaaecaa
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