5aac8c:	83 c8 fc             	or     $0xfffffffc,%eax
5aac8f:	40                   	inc    %eax
5aac90:	8b cb                	mov    %ebx,%ecx
5aac92:	2b c8                	sub    %eax,%ecx
5aac94:	83 c6 04             	add    $0x4,%esi
5aac97:	3b f1                	cmp    %ecx,%esi
5aac99:	7c f9                	jl     0x5aac94
5aac9b:	8b 7d 00             	mov    0x0(%ebp),%edi
5aac9e:	8d 41 03             	lea    0x3(%ecx),%eax
5aaca1:	99                   	cltd
5aaca2:	83 e2 03             	and    $0x3,%edx
5aaca5:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
5aaca8:	c1 f9 02             	sar    $0x2,%ecx
5aacab:	c1 e1 04             	shl    $0x4,%ecx
5aacae:	c1 e9 02             	shr    $0x2,%ecx
5aacb1:	33 c0                	xor    %eax,%eax
5aacb3:	f3 ab                	rep stos %eax,%es:(%edi)
5aacb5:	8b 7c 24 20          	mov    0x20(%esp),%edi
5aacb9:	3b f3                	cmp    %ebx,%esi
5aacbb:	7d 12                	jge    0x5aaccf
5aacbd:	0f 1f 00             	nopl   (%eax)
5aacc0:	8b 45 00             	mov    0x0(%ebp),%eax
5aacc3:	c7 04 b0 00 00 00 00 	movl   $0x0,(%eax,%esi,4)
5aacca:	46                   	inc    %esi
5aaccb:	3b f3                	cmp    %ebx,%esi
5aaccd:	7c f1                	jl     0x5aacc0
5aaccf:	8b 44 24 24          	mov    0x24(%esp),%eax
5aacd3:	33 db                	xor    %ebx,%ebx
5aacd5:	89 5c 24 10          	mov    %ebx,0x10(%esp)
5aacd9:	8b 70 04             	mov    0x4(%eax),%esi
5aacdc:	85 f6                	test   %esi,%esi
5aacde:	0f 8e 25 01 00 00    	jle    0x5aae09
5aace4:	8b 57 04             	mov    0x4(%edi),%edx
5aace7:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
5aacee:	00 00
5aacf0:	8b 00                	mov    (%eax),%eax
5aacf2:	8d 0c 9d 00 00 00 00 	lea    0x0(,%ebx,4),%ecx
5aacf9:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5aacfd:	03 c8                	add    %eax,%ecx
5aacff:	8b 01                	mov    (%ecx),%eax
5aad01:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5aad05:	8d 43 01             	lea    0x1(%ebx),%eax
5aad08:	3b c6                	cmp    %esi,%eax
5aad0a:	75 04                	jne    0x5aad10
5aad0c:	33 c0                	xor    %eax,%eax
5aad0e:	eb 03                	jmp    0x5aad13
5aad10:	8b 41 04             	mov    0x4(%ecx),%eax
5aad13:	33 db                	xor    %ebx,%ebx
5aad15:	89 44 24 18          	mov    %eax,0x18(%esp)
5aad19:	85 d2                	test   %edx,%edx
5aad1b:	0f 8e ce 00 00 00    	jle    0x5aadef
5aad21:	33 44 24 1c          	xor    0x1c(%esp),%eax
5aad25:	89 44 24 28          	mov    %eax,0x28(%esp)
5aad29:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5aad30:	8b 07                	mov    (%edi),%eax
5aad32:	8d 4b 01             	lea    0x1(%ebx),%ecx
5aad35:	8b 3c 98             	mov    (%eax,%ebx,4),%edi
5aad38:	3b ca                	cmp    %edx,%ecx
5aad3a:	75 04                	jne    0x5aad40
5aad3c:	33 f6                	xor    %esi,%esi
5aad3e:	eb 04                	jmp    0x5aad44
5aad40:	8b 74 98 04          	mov    0x4(%eax,%ebx,4),%esi
5aad44:	ff 74 24 18          	push   0x18(%esp)
5aad48:	8d 44 24 4c          	lea    0x4c(%esp),%eax
5aad4c:	56                   	push   %esi
5aad4d:	50                   	push   %eax
5aad4e:	8d 44 24 58          	lea    0x58(%esp),%eax
5aad52:	50                   	push   %eax
5aad53:	e8 d8 06 00 00       	call   0x5ab430
5aad58:	ff 74 24 2c          	push   0x2c(%esp)
5aad5c:	8d 44 24 54          	lea    0x54(%esp),%eax
5aad60:	57                   	push   %edi
5aad61:	50                   	push   %eax
5aad62:	8d 44 24 60          	lea    0x60(%esp),%eax
5aad66:	50                   	push   %eax
5aad67:	e8 c4 06 00 00       	call   0x5ab430
5aad6c:	ff 74 24 48          	push   0x48(%esp)
5aad70:	33 f7                	xor    %edi,%esi
5aad72:	8d 44 24 54          	lea    0x54(%esp),%eax
5aad76:	56                   	push   %esi
5aad77:	50                   	push   %eax
5aad78:	8d 44 24 58          	lea    0x58(%esp),%eax
5aad7c:	50                   	push   %eax
5aad7d:	e8 ae 06 00 00       	call   0x5ab430
5aad82:	8b 74 24 74          	mov    0x74(%esp),%esi
5aad86:	83 c3 02             	add    $0x2,%ebx
5aad89:	8b 45 00             	mov    0x0(%ebp),%eax
5aad8c:	83 c4 30             	add    $0x30,%esp
5aad8f:	33 74 24 4c          	xor    0x4c(%esp),%esi
5aad93:	8b 7c 24 14          	mov    0x14(%esp),%edi
5aad97:	8b 4c 24 40          	mov    0x40(%esp),%ecx
5aad9b:	8b d1                	mov    %ecx,%edx
5aad9d:	33 74 24 48          	xor    0x48(%esp),%esi
5aada1:	33 54 24 4c          	xor    0x4c(%esp),%edx
5aada5:	31 0c 07             	xor    %ecx,(%edi,%eax,1)
5aada8:	8b cf                	mov    %edi,%ecx
5aadaa:	33 74 24 2c          	xor    0x2c(%esp),%esi
5aadae:	8b 45 00             	mov    0x0(%ebp),%eax
5aadb1:	33 d6                	xor    %esi,%edx
5aadb3:	33 54 24 2c          	xor    0x2c(%esp),%edx
5aadb7:	33 54 24 30          	xor    0x30(%esp),%edx
5aadbb:	8b 7c 24 4c          	mov    0x4c(%esp),%edi
5aadbf:	31 54 01 04          	xor    %edx,0x4(%ecx,%eax,1)
5aadc3:	8b 45 00             	mov    0x0(%ebp),%eax
5aadc6:	89 54 24 44          	mov    %edx,0x44(%esp)
5aadca:	89 74 24 48          	mov    %esi,0x48(%esp)
5aadce:	31 74 01 08          	xor    %esi,0x8(%ecx,%eax,1)
5aadd2:	8b 45 00             	mov    0x0(%ebp),%eax
5aadd5:	31 7c 01 0c          	xor    %edi,0xc(%ecx,%eax,1)
5aadd9:	83 c1 08             	add    $0x8,%ecx
5aaddc:	8b 7c 24 20          	mov    0x20(%esp),%edi
5aade0:	89 4c 24 14          	mov    %ecx,0x14(%esp)
5aade4:	8b 57 04             	mov    0x4(%edi),%edx
5aade7:	3b da                	cmp    %edx,%ebx
5aade9:	0f 8c 41 ff ff ff    	jl     0x5aad30
5aadef:	8b 44 24 24          	mov    0x24(%esp),%eax
5aadf3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
5aadf7:	83 c3 02             	add    $0x2,%ebx
5aadfa:	89 5c 24 10          	mov    %ebx,0x10(%esp)
5aadfe:	8b 70 04             	mov    0x4(%eax),%esi
5aae01:	3b de                	cmp    %esi,%ebx
5aae03:	0f 8c e7 fe ff ff    	jl     0x5aacf0
5aae09:	8b 4d 04             	mov    0x4(%ebp),%ecx
5aae0c:	85 c9                	test   %ecx,%ecx
5aae0e:	7e 21                	jle    0x5aae31
5aae10:	8b 45 00             	mov    0x0(%ebp),%eax
5aae13:	8d 51 ff             	lea    -0x1(%ecx),%edx
5aae16:	8d 14 90             	lea    (%eax,%edx,4),%edx
5aae19:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5aae20:	8b 02                	mov    (%edx),%eax
5aae22:	8d 52 fc             	lea    -0x4(%edx),%edx
5aae25:	85 c0                	test   %eax,%eax
5aae27:	75 05                	jne    0x5aae2e
5aae29:	49                   	dec    %ecx
5aae2a:	85 c9                	test   %ecx,%ecx
5aae2c:	7f f2                	jg     0x5aae20
5aae2e:	89 4d 04             	mov    %ecx,0x4(%ebp)
5aae31:	83 7d 04 00          	cmpl   $0x0,0x4(%ebp)
5aae35:	75 07                	jne    0x5aae3e
5aae37:	c7 45 0c 00 00 00 00 	movl   $0x0,0xc(%ebp)
5aae3e:	ff 74 24 34          	push   0x34(%esp)
5aae42:	55                   	push   %ebp
5aae43:	ff 74 24 40          	push   0x40(%esp)
5aae47:	e8 f4 f3 ff ff       	call   0x5aa240
5aae4c:	33 c9                	xor    %ecx,%ecx
5aae4e:	83 c4 0c             	add    $0xc,%esp
5aae51:	85 c0                	test   %eax,%eax
5aae53:	ba 01 00 00 00       	mov    $0x1,%edx
5aae58:	0f 45 ca             	cmovne %edx,%ecx
5aae5b:	89 4c 24 10          	mov    %ecx,0x10(%esp)
5aae5f:	5b                   	pop    %ebx
5aae60:	ff 74 24 38          	push   0x38(%esp)
5aae64:	e8 e7 ce f2 ff       	call   0x4d7d50
5aae69:	8b 4c 24 50          	mov    0x50(%esp),%ecx
5aae6d:	83 c4 04             	add    $0x4,%esp
5aae70:	8b 44 24 0c          	mov    0xc(%esp),%eax
5aae74:	5f                   	pop    %edi
5aae75:	5e                   	pop    %esi
5aae76:	5d                   	pop    %ebp
5aae77:	33 cc                	xor    %esp,%ecx
5aae79:	e8 5c 66 03 00       	call   0x5e14da
5aae7e:	83 c4 44             	add    $0x44,%esp
5aae81:	c3                   	ret
5aae82:	cc                   	int3
5aae83:	cc                   	int3
5aae84:	cc                   	int3
5aae85:	cc                   	int3
5aae86:	cc                   	int3
5aae87:	cc                   	int3
5aae88:	cc                   	int3
5aae89:	cc                   	int3
5aae8a:	cc                   	int3
5aae8b:	cc                   	int3
5aae8c:	cc                   	int3
5aae8d:	cc                   	int3
5aae8e:	cc                   	int3
5aae8f:	cc                   	int3
5aae90:	b8 18 00 00 00       	mov    $0x18,%eax
5aae95:	e8 56 66 03 00       	call   0x5e14f0
5aae9a:	57                   	push   %edi
5aae9b:	8b 7c 24 28          	mov    0x28(%esp),%edi
5aae9f:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
5aaea6:	00
5aaea7:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
5aaeae:	00
5aaeaf:	83 3f 00             	cmpl   $0x0,(%edi)
5aaeb2:	75 18                	jne    0x5aaecc
5aaeb4:	6a 00                	push   $0x0
5aaeb6:	ff 74 24 24          	push   0x24(%esp)
5aaeba:	e8 31 86 f0 ff       	call   0x4b34f0
5aaebf:	83 c4 08             	add    $0x8,%esp
5aaec2:	b8 01 00 00 00       	mov    $0x1,%eax
5aaec7:	5f                   	pop    %edi
5aaec8:	83 c4 18             	add    $0x18,%esp
5aaecb:	c3                   	ret
5aaecc:	53                   	push   %ebx
5aaecd:	8b 5c 24 30          	mov    0x30(%esp),%ebx
5aaed1:	55                   	push   %ebp
5aaed2:	56                   	push   %esi
5aaed3:	53                   	push   %ebx
5aaed4:	e8 c7 cf f2 ff       	call   0x4d7ea0
5aaed9:	53                   	push   %ebx
5aaeda:	e8 e1 ce f2 ff       	call   0x4d7dc0
5aaedf:	53                   	push   %ebx
5aaee0:	89 44 24 40          	mov    %eax,0x40(%esp)
5aaee4:	e8 d7 ce f2 ff       	call   0x4d7dc0
5aaee9:	53                   	push   %ebx
5aaeea:	8b f0                	mov    %eax,%esi
5aaeec:	e8 cf ce f2 ff       	call   0x4d7dc0
5aaef1:	8b e8                	mov    %eax,%ebp
5aaef3:	83 c4 10             	add    $0x10,%esp
5aaef6:	89 6c 24 18          	mov    %ebp,0x18(%esp)
5aaefa:	85 ed                	test   %ebp,%ebp
5aaefc:	0f 84 c5 02 00 00    	je     0x5ab1c7
5aaf02:	57                   	push   %edi
5aaf03:	ff 74 24 34          	push   0x34(%esp)
5aaf07:	ff 74 24 3c          	push   0x3c(%esp)
5aaf0b:	e8 30 f3 ff ff       	call   0x5aa240
5aaf10:	83 c4 0c             	add    $0xc,%esp
5aaf13:	85 c0                	test   %eax,%eax
5aaf15:	0f 84 ac 02 00 00    	je     0x5ab1c7
5aaf1b:	8b 44 24 34          	mov    0x34(%esp),%eax
5aaf1f:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
5aaf23:	75 2b                	jne    0x5aaf50
5aaf25:	6a 00                	push   $0x0
5aaf27:	ff 74 24 30          	push   0x30(%esp)
5aaf2b:	e8 c0 85 f0 ff       	call   0x4b34f0
5aaf30:	83 c4 08             	add    $0x8,%esp
5aaf33:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
5aaf3a:	00
5aaf3b:	53                   	push   %ebx
5aaf3c:	e8 0f ce f2 ff       	call   0x4d7d50
5aaf41:	8b 44 24 20          	mov    0x20(%esp),%eax
5aaf45:	83 c4 04             	add    $0x4,%esp
5aaf48:	5e                   	pop    %esi
5aaf49:	5d                   	pop    %ebp
5aaf4a:	5b                   	pop    %ebx
5aaf4b:	5f                   	pop    %edi
5aaf4c:	83 c4 18             	add    $0x18,%esp
5aaf4f:	c3                   	ret
5aaf50:	f6 07 01             	testb  $0x1,(%edi)
5aaf53:	0f 84 e6 00 00 00    	je     0x5ab03f
5aaf59:	50                   	push   %eax
5aaf5a:	56                   	push   %esi
5aaf5b:	e8 70 81 f0 ff       	call   0x4b30d0
5aaf60:	83 c4 08             	add    $0x8,%esp
5aaf63:	85 c0                	test   %eax,%eax
5aaf65:	0f 84 5c 02 00 00    	je     0x5ab1c7
5aaf6b:	8b 07                	mov    (%edi),%eax
5aaf6d:	48                   	dec    %eax
5aaf6e:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
5aaf75:	00
5aaf76:	99                   	cltd
5aaf77:	2b c2                	sub    %edx,%eax
5aaf79:	d1 f8                	sar    $1,%eax
5aaf7b:	83 f8 01             	cmp    $0x1,%eax
5aaf7e:	7c 53                	jl     0x5aafd3
5aaf80:	53                   	push   %ebx
5aaf81:	57                   	push   %edi
5aaf82:	56                   	push   %esi
5aaf83:	56                   	push   %esi
5aaf84:	e8 57 02 00 00       	call   0x5ab1e0
5aaf89:	83 c4 10             	add    $0x10,%esp
5aaf8c:	85 c0                	test   %eax,%eax
5aaf8e:	0f 84 33 02 00 00    	je     0x5ab1c7
5aaf94:	53                   	push   %ebx
5aaf95:	57                   	push   %edi
5aaf96:	56                   	push   %esi
5aaf97:	56                   	push   %esi
5aaf98:	e8 43 02 00 00       	call   0x5ab1e0
5aaf9d:	83 c4 10             	add    $0x10,%esp
5aafa0:	85 c0                	test   %eax,%eax
5aafa2:	0f 84 1f 02 00 00    	je     0x5ab1c7
5aafa8:	ff 74 24 34          	push   0x34(%esp)
5aafac:	56                   	push   %esi
5aafad:	56                   	push   %esi
5aafae:	e8 4d f1 ff ff       	call   0x5aa100
5aafb3:	83 c4 0c             	add    $0xc,%esp
5aafb6:	85 c0                	test   %eax,%eax
5aafb8:	0f 84 09 02 00 00    	je     0x5ab1c7
5aafbe:	8b 07                	mov    (%edi),%eax
5aafc0:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5aafc4:	48                   	dec    %eax
5aafc5:	99                   	cltd
5aafc6:	41                   	inc    %ecx
5aafc7:	2b c2                	sub    %edx,%eax
5aafc9:	89 4c 24 18          	mov    %ecx,0x18(%esp)
5aafcd:	d1 f8                	sar    $1,%eax
5aafcf:	3b c8                	cmp    %eax,%ecx
5aafd1:	7e ad                	jle    0x5aaf80
5aafd3:	53                   	push   %ebx
5aafd4:	57                   	push   %edi
5aafd5:	56                   	push   %esi
5aafd6:	55                   	push   %ebp
5aafd7:	e8 04 02 00 00       	call   0x5ab1e0
5aafdc:	83 c4 10             	add    $0x10,%esp
5aafdf:	85 c0                	test   %eax,%eax
5aafe1:	0f 84 e0 01 00 00    	je     0x5ab1c7
5aafe7:	55                   	push   %ebp
5aafe8:	56                   	push   %esi
5aafe9:	55                   	push   %ebp
5aafea:	e8 11 f1 ff ff       	call   0x5aa100
5aafef:	83 c4 0c             	add    $0xc,%esp
5aaff2:	85 c0                	test   %eax,%eax
5aaff4:	0f 84 cd 01 00 00    	je     0x5ab1c7
5aaffa:	ff 74 24 34          	push   0x34(%esp)
5aaffe:	55                   	push   %ebp
5aafff:	e8 4c 85 f0 ff       	call   0x4b3550
5ab004:	83 c4 08             	add    $0x8,%esp
5ab007:	85 c0                	test   %eax,%eax
5ab009:	0f 84 9b 01 00 00    	je     0x5ab1aa
5ab00f:	68 af 04 00 00       	push   $0x4af
5ab014:	68 c8 d4 6c 00       	push   $0x6cd4c8
5ab019:	6a 74                	push   $0x74
5ab01b:	68 87 00 00 00       	push   $0x87
5ab020:	6a 03                	push   $0x3
5ab022:	e8 79 64 ef ff       	call   0x4a14a0
5ab027:	83 c4 14             	add    $0x14,%esp
5ab02a:	53                   	push   %ebx
5ab02b:	e8 20 cd f2 ff       	call   0x4d7d50
5ab030:	8b 44 24 20          	mov    0x20(%esp),%eax
5ab034:	83 c4 04             	add    $0x4,%esp
5ab037:	5e                   	pop    %esi
5ab038:	5d                   	pop    %ebp
5ab039:	5b                   	pop    %ebx
5ab03a:	5f                   	pop    %edi
5ab03b:	83 c4 18             	add    $0x18,%esp
5ab03e:	c3                   	ret
5ab03f:	53                   	push   %ebx
5ab040:	e8 7b cd f2 ff       	call   0x4d7dc0
5ab045:	53                   	push   %ebx
5ab046:	89 44 24 18          	mov    %eax,0x18(%esp)
5ab04a:	e8 71 cd f2 ff       	call   0x4d7dc0
5ab04f:	53                   	push   %ebx
5ab050:	89 44 24 20          	mov    %eax,0x20(%esp)
5ab054:	e8 67 cd f2 ff       	call   0x4d7dc0
5ab059:	83 c4 0c             	add    $0xc,%esp
5ab05c:	89 44 24 20          	mov    %eax,0x20(%esp)
5ab060:	85 c0                	test   %eax,%eax
5ab062:	0f 84 5f 01 00 00    	je     0x5ab1c7
5ab068:	6a 00                	push   $0x0
5ab06a:	6a 00                	push   $0x0
5ab06c:	ff 37                	push   (%edi)
5ab06e:	ff 74 24 1c          	push   0x1c(%esp)
5ab072:	e8 f9 35 fc ff       	call   0x56e670
5ab077:	83 c4 10             	add    $0x10,%esp
5ab07a:	85 c0                	test   %eax,%eax
5ab07c:	0f 84 45 01 00 00    	je     0x5ab1c7
5ab082:	8b 44 24 10          	mov    0x10(%esp),%eax
5ab086:	57                   	push   %edi