46bc46:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
46bc4d:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
46bc54:	e8 97 38 00 00       	call   0x46f4f0
46bc59:	8b 43 04             	mov    0x4(%ebx),%eax
46bc5c:	8b 4d 08             	mov    0x8(%ebp),%ecx
46bc5f:	89 7d e4             	mov    %edi,-0x1c(%ebp)
46bc62:	8b 3b                	mov    (%ebx),%edi
46bc64:	89 45 0c             	mov    %eax,0xc(%ebp)
46bc67:	3b c8                	cmp    %eax,%ecx
46bc69:	75 41                	jne    0x46bcac
46bc6b:	89 75 bc             	mov    %esi,-0x44(%ebp)
46bc6e:	89 75 c0             	mov    %esi,-0x40(%ebp)
46bc71:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
46bc74:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46bc78:	3b f8                	cmp    %eax,%edi
46bc7a:	74 1d                	je     0x46bc99
46bc7c:	57                   	push   %edi
46bc7d:	8b ce                	mov    %esi,%ecx
46bc7f:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
46bc86:	e8 65 38 00 00       	call   0x46f4f0
46bc8b:	8b 45 0c             	mov    0xc(%ebp),%eax
46bc8e:	83 c6 20             	add    $0x20,%esi
46bc91:	89 75 c0             	mov    %esi,-0x40(%ebp)
46bc94:	83 c7 20             	add    $0x20,%edi
46bc97:	eb df                	jmp    0x46bc78
46bc99:	53                   	push   %ebx
46bc9a:	56                   	push   %esi
46bc9b:	56                   	push   %esi
46bc9c:	e8 2f fe ff ff       	call   0x46bad0
46bca1:	8b 75 ec             	mov    -0x14(%ebp),%esi
46bca4:	83 c4 0c             	add    $0xc,%esp
46bca7:	8b 7d dc             	mov    -0x24(%ebp),%edi
46bcaa:	eb 21                	jmp    0x46bccd
46bcac:	56                   	push   %esi
46bcad:	51                   	push   %ecx
46bcae:	57                   	push   %edi
46bcaf:	8b cb                	mov    %ebx,%ecx
46bcb1:	e8 6a 93 00 00       	call   0x475020
46bcb6:	8b 7d dc             	mov    -0x24(%ebp),%edi
46bcb9:	8b cb                	mov    %ebx,%ecx
46bcbb:	89 75 e4             	mov    %esi,-0x1c(%ebp)
46bcbe:	8d 47 20             	lea    0x20(%edi),%eax
46bcc1:	50                   	push   %eax
46bcc2:	ff 73 04             	push   0x4(%ebx)
46bcc5:	ff 75 08             	push   0x8(%ebp)
46bcc8:	e8 53 93 00 00       	call   0x475020
46bccd:	8b 03                	mov    (%ebx),%eax
46bccf:	85 c0                	test   %eax,%eax
46bcd1:	74 3b                	je     0x46bd0e
46bcd3:	53                   	push   %ebx
46bcd4:	ff 73 04             	push   0x4(%ebx)
46bcd7:	50                   	push   %eax
46bcd8:	e8 f3 fd ff ff       	call   0x46bad0
46bcdd:	8b 4b 08             	mov    0x8(%ebx),%ecx
46bce0:	83 c4 0c             	add    $0xc,%esp
46bce3:	8b 03                	mov    (%ebx),%eax
46bce5:	2b c8                	sub    %eax,%ecx
46bce7:	83 e1 e0             	and    $0xffffffe0,%ecx
46bcea:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46bcf0:	72 12                	jb     0x46bd04
46bcf2:	8b 50 fc             	mov    -0x4(%eax),%edx
46bcf5:	83 c1 23             	add    $0x23,%ecx
46bcf8:	2b c2                	sub    %edx,%eax
46bcfa:	83 c0 fc             	add    $0xfffffffc,%eax
46bcfd:	83 f8 1f             	cmp    $0x1f,%eax
46bd00:	77 44                	ja     0x46bd46
46bd02:	8b c2                	mov    %edx,%eax
46bd04:	51                   	push   %ecx
46bd05:	50                   	push   %eax
46bd06:	e8 4a 55 16 00       	call   0x5d1255
46bd0b:	83 c4 08             	add    $0x8,%esp
46bd0e:	8b 45 d8             	mov    -0x28(%ebp),%eax
46bd11:	8b 4d e8             	mov    -0x18(%ebp),%ecx
46bd14:	c1 e0 05             	shl    $0x5,%eax
46bd17:	03 c6                	add    %esi,%eax
46bd19:	c1 e1 05             	shl    $0x5,%ecx
46bd1c:	89 33                	mov    %esi,(%ebx)
46bd1e:	03 ce                	add    %esi,%ecx
46bd20:	89 43 04             	mov    %eax,0x4(%ebx)
46bd23:	8b c7                	mov    %edi,%eax
46bd25:	89 4b 08             	mov    %ecx,0x8(%ebx)
46bd28:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46bd2b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46bd32:	59                   	pop    %ecx
46bd33:	5f                   	pop    %edi
46bd34:	5e                   	pop    %esi
46bd35:	5b                   	pop    %ebx
46bd36:	8b e5                	mov    %ebp,%esp
46bd38:	5d                   	pop    %ebp
46bd39:	c2 08 00             	ret    $0x8
46bd3c:	e8 af b8 fd ff       	call   0x4475f0
46bd41:	e8 5a 0a ff ff       	call   0x45c7a0
46bd46:	e8 a5 a4 16 00       	call   0x5d61f0
46bd4b:	ff 75 d4             	push   -0x2c(%ebp)
46bd4e:	8b 4d d0             	mov    -0x30(%ebp),%ecx
46bd51:	ff 75 e4             	push   -0x1c(%ebp)
46bd54:	e8 37 7f 00 00       	call   0x473c90
46bd59:	ff 75 e0             	push   -0x20(%ebp)
46bd5c:	8b 4d c8             	mov    -0x38(%ebp),%ecx
46bd5f:	ff 75 cc             	push   -0x34(%ebp)
46bd62:	e8 49 93 00 00       	call   0x4750b0
46bd67:	6a 00                	push   $0x0
46bd69:	6a 00                	push   $0x0
46bd6b:	e8 cf 7d 16 00       	call   0x5d3b3f
46bd70:	cc                   	int3
46bd71:	cc                   	int3
46bd72:	cc                   	int3
46bd73:	cc                   	int3
46bd74:	cc                   	int3
46bd75:	cc                   	int3
46bd76:	cc                   	int3
46bd77:	cc                   	int3
46bd78:	cc                   	int3
46bd79:	cc                   	int3
46bd7a:	cc                   	int3
46bd7b:	cc                   	int3
46bd7c:	cc                   	int3
46bd7d:	cc                   	int3
46bd7e:	cc                   	int3
46bd7f:	cc                   	int3
46bd80:	55                   	push   %ebp
46bd81:	8b ec                	mov    %esp,%ebp
46bd83:	83 ec 08             	sub    $0x8,%esp
46bd86:	8b 45 08             	mov    0x8(%ebp),%eax
46bd89:	53                   	push   %ebx
46bd8a:	56                   	push   %esi
46bd8b:	57                   	push   %edi
46bd8c:	8b f9                	mov    %ecx,%edi
46bd8e:	8b 0f                	mov    (%edi),%ecx
46bd90:	2b c1                	sub    %ecx,%eax
46bd92:	c1 f8 02             	sar    $0x2,%eax
46bd95:	89 45 fc             	mov    %eax,-0x4(%ebp)
46bd98:	8b 47 04             	mov    0x4(%edi),%eax
46bd9b:	2b c1                	sub    %ecx,%eax
46bd9d:	c1 f8 02             	sar    $0x2,%eax
46bda0:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
46bda5:	0f 84 1e 01 00 00    	je     0x46bec9
46bdab:	8b 57 08             	mov    0x8(%edi),%edx
46bdae:	8d 70 01             	lea    0x1(%eax),%esi
46bdb1:	2b d1                	sub    %ecx,%edx
46bdb3:	89 75 f8             	mov    %esi,-0x8(%ebp)
46bdb6:	c1 fa 02             	sar    $0x2,%edx
46bdb9:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
46bdbe:	8b ca                	mov    %edx,%ecx
46bdc0:	d1 e9                	shr    $1,%ecx
46bdc2:	2b c1                	sub    %ecx,%eax
46bdc4:	3b d0                	cmp    %eax,%edx
46bdc6:	0f 87 f8 00 00 00    	ja     0x46bec4
46bdcc:	8d 04 11             	lea    (%ecx,%edx,1),%eax
46bdcf:	8b de                	mov    %esi,%ebx
46bdd1:	3b c6                	cmp    %esi,%eax
46bdd3:	0f 43 d8             	cmovae %eax,%ebx
46bdd6:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
46bddc:	0f 87 e2 00 00 00    	ja     0x46bec4
46bde2:	c1 e3 02             	shl    $0x2,%ebx
46bde5:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
46bdeb:	72 27                	jb     0x46be14
46bded:	8d 43 23             	lea    0x23(%ebx),%eax
46bdf0:	3b c3                	cmp    %ebx,%eax
46bdf2:	0f 86 cc 00 00 00    	jbe    0x46bec4
46bdf8:	50                   	push   %eax
46bdf9:	e8 27 54 16 00       	call   0x5d1225
46bdfe:	83 c4 04             	add    $0x4,%esp
46be01:	85 c0                	test   %eax,%eax
46be03:	0f 84 c5 00 00 00    	je     0x46bece
46be09:	8d 70 23             	lea    0x23(%eax),%esi
46be0c:	83 e6 e0             	and    $0xffffffe0,%esi
46be0f:	89 46 fc             	mov    %eax,-0x4(%esi)
46be12:	eb 13                	jmp    0x46be27
46be14:	85 db                	test   %ebx,%ebx
46be16:	74 0d                	je     0x46be25
46be18:	53                   	push   %ebx
46be19:	e8 07 54 16 00       	call   0x5d1225
46be1e:	83 c4 04             	add    $0x4,%esp
46be21:	8b f0                	mov    %eax,%esi
46be23:	eb 02                	jmp    0x46be27
46be25:	33 f6                	xor    %esi,%esi
46be27:	8b 45 fc             	mov    -0x4(%ebp),%eax
46be2a:	8b 55 08             	mov    0x8(%ebp),%edx
46be2d:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
46be30:	8b 45 0c             	mov    0xc(%ebp),%eax
46be33:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46be36:	8b 00                	mov    (%eax),%eax
46be38:	89 01                	mov    %eax,(%ecx)
46be3a:	8b 47 04             	mov    0x4(%edi),%eax
46be3d:	8b 0f                	mov    (%edi),%ecx
46be3f:	3b d0                	cmp    %eax,%edx
46be41:	75 0f                	jne    0x46be52
46be43:	2b c1                	sub    %ecx,%eax
46be45:	50                   	push   %eax
46be46:	51                   	push   %ecx
46be47:	56                   	push   %esi
46be48:	e8 83 6f 16 00       	call   0x5d2dd0
46be4d:	83 c4 0c             	add    $0xc,%esp
46be50:	eb 23                	jmp    0x46be75
46be52:	2b d1                	sub    %ecx,%edx
46be54:	52                   	push   %edx
46be55:	51                   	push   %ecx
46be56:	56                   	push   %esi
46be57:	e8 74 6f 16 00       	call   0x5d2dd0
46be5c:	8b 47 04             	mov    0x4(%edi),%eax
46be5f:	8b 4d 08             	mov    0x8(%ebp),%ecx
46be62:	2b c1                	sub    %ecx,%eax
46be64:	50                   	push   %eax
46be65:	8b 45 fc             	mov    -0x4(%ebp),%eax
46be68:	51                   	push   %ecx
46be69:	83 c0 04             	add    $0x4,%eax
46be6c:	50                   	push   %eax
46be6d:	e8 5e 6f 16 00       	call   0x5d2dd0
46be72:	83 c4 18             	add    $0x18,%esp
46be75:	8b 07                	mov    (%edi),%eax
46be77:	85 c0                	test   %eax,%eax
46be79:	74 2c                	je     0x46bea7
46be7b:	8b 4f 08             	mov    0x8(%edi),%ecx
46be7e:	2b c8                	sub    %eax,%ecx
46be80:	83 e1 fc             	and    $0xfffffffc,%ecx
46be83:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46be89:	72 12                	jb     0x46be9d
46be8b:	8b 50 fc             	mov    -0x4(%eax),%edx
46be8e:	83 c1 23             	add    $0x23,%ecx
46be91:	2b c2                	sub    %edx,%eax
46be93:	83 c0 fc             	add    $0xfffffffc,%eax
46be96:	83 f8 1f             	cmp    $0x1f,%eax
46be99:	77 33                	ja     0x46bece
46be9b:	8b c2                	mov    %edx,%eax
46be9d:	51                   	push   %ecx
46be9e:	50                   	push   %eax
46be9f:	e8 b1 53 16 00       	call   0x5d1255
46bea4:	83 c4 08             	add    $0x8,%esp
46bea7:	8b 45 f8             	mov    -0x8(%ebp),%eax
46beaa:	89 37                	mov    %esi,(%edi)
46beac:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
46beaf:	8b 45 fc             	mov    -0x4(%ebp),%eax
46beb2:	89 4f 04             	mov    %ecx,0x4(%edi)
46beb5:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
46beb8:	89 4f 08             	mov    %ecx,0x8(%edi)
46bebb:	5f                   	pop    %edi
46bebc:	5e                   	pop    %esi
46bebd:	5b                   	pop    %ebx
46bebe:	8b e5                	mov    %ebp,%esp
46bec0:	5d                   	pop    %ebp
46bec1:	c2 08 00             	ret    $0x8
46bec4:	e8 27 b7 fd ff       	call   0x4475f0
46bec9:	e8 d2 08 ff ff       	call   0x45c7a0
46bece:	e8 1d a3 16 00       	call   0x5d61f0
46bed3:	cc                   	int3
46bed4:	cc                   	int3
46bed5:	cc                   	int3
46bed6:	cc                   	int3
46bed7:	cc                   	int3
46bed8:	cc                   	int3
46bed9:	cc                   	int3
46beda:	cc                   	int3
46bedb:	cc                   	int3
46bedc:	cc                   	int3
46bedd:	cc                   	int3
46bede:	cc                   	int3
46bedf:	cc                   	int3
46bee0:	55                   	push   %ebp
46bee1:	8b ec                	mov    %esp,%ebp
46bee3:	6a ff                	push   $0xffffffff
46bee5:	68 e5 97 5f 00       	push   $0x5f97e5
46beea:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46bef0:	50                   	push   %eax
46bef1:	81 ec 88 00 00 00    	sub    $0x88,%esp
46bef7:	a1 c0 14 69 00       	mov    0x6914c0,%eax
46befc:	33 c5                	xor    %ebp,%eax
46befe:	89 45 f0             	mov    %eax,-0x10(%ebp)
46bf01:	53                   	push   %ebx
46bf02:	56                   	push   %esi
46bf03:	57                   	push   %edi
46bf04:	50                   	push   %eax
46bf05:	8d 45 f4             	lea    -0xc(%ebp),%eax
46bf08:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46bf0e:	83 7d 10 20          	cmpl   $0x20,0x10(%ebp)
46bf12:	8b 7d 08             	mov    0x8(%ebp),%edi
46bf15:	89 bd 78 ff ff ff    	mov    %edi,-0x88(%ebp)
46bf1b:	0f 8e 62 01 00 00    	jle    0x46c083
46bf21:	8b 45 14             	mov    0x14(%ebp),%eax
46bf24:	8d 8f 80 00 00 00    	lea    0x80(%edi),%ecx
46bf2a:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
46bf30:	89 45 84             	mov    %eax,-0x7c(%ebp)
46bf33:	3b f9                	cmp    %ecx,%edi
46bf35:	0f 84 2e 01 00 00    	je     0x46c069
46bf3b:	8d 77 04             	lea    0x4(%edi),%esi
46bf3e:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
46bf44:	3b f1                	cmp    %ecx,%esi
46bf46:	0f 84 1d 01 00 00    	je     0x46c069
46bf4c:	0f 1f 40 00          	nopl   0x0(%eax)
46bf50:	ff 37                	push   (%edi)
46bf52:	8b 1e                	mov    (%esi),%ebx
46bf54:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
46bf57:	53                   	push   %ebx
46bf58:	89 75 88             	mov    %esi,-0x78(%ebp)
46bf5b:	89 5d 80             	mov    %ebx,-0x80(%ebp)
46bf5e:	e8 5d 2e 00 00       	call   0x46edc0
46bf63:	84 c0                	test   %al,%al
46bf65:	74 1d                	je     0x46bf84
46bf67:	8b ce                	mov    %esi,%ecx
46bf69:	8b c6                	mov    %esi,%eax
46bf6b:	2b cf                	sub    %edi,%ecx
46bf6d:	51                   	push   %ecx
46bf6e:	2b c1                	sub    %ecx,%eax
46bf70:	83 c0 04             	add    $0x4,%eax
46bf73:	57                   	push   %edi
46bf74:	50                   	push   %eax
46bf75:	e8 56 6e 16 00       	call   0x5d2dd0
46bf7a:	83 c4 0c             	add    $0xc,%esp
46bf7d:	89 1f                	mov    %ebx,(%edi)
46bf7f:	e9 ce 00 00 00       	jmp    0x46c052
46bf84:	8b fe                	mov    %esi,%edi
46bf86:	8b 75 84             	mov    -0x7c(%ebp),%esi
46bf89:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
46bf90:	8b 47 fc             	mov    -0x4(%edi),%eax
46bf93:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
46bf99:	83 ef 04             	sub    $0x4,%edi
46bf9c:	89 45 94             	mov    %eax,-0x6c(%ebp)
46bf9f:	8b 03                	mov    (%ebx),%eax
46bfa1:	51                   	push   %ecx
46bfa2:	8b cb                	mov    %ebx,%ecx
46bfa4:	ff 50 48             	call   *0x48(%eax)
46bfa7:	8b ce                	mov    %esi,%ecx
46bfa9:	8b 40 04             	mov    0x4(%eax),%eax
46bfac:	89 45 98             	mov    %eax,-0x68(%ebp)
46bfaf:	e8 ec d1 fe ff       	call   0x4591a0
46bfb4:	8b 04 85 98 7b 60 00 	mov    0x607b98(,%eax,4),%eax
46bfbb:	48                   	dec    %eax
46bfbc:	83 f8 08             	cmp    $0x8,%eax
46bfbf:	0f 87 5b 02 00 00    	ja     0x46c220
46bfc5:	ff 24 85 78 c2 46 00 	jmp    *0x46c278(,%eax,4)
46bfcc:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bfcf:	56                   	push   %esi
46bfd0:	53                   	push   %ebx
46bfd1:	e8 7a 83 ff ff       	call   0x464350
46bfd6:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bfd9:	8a d8                	mov    %al,%bl
46bfdb:	56                   	push   %esi
46bfdc:	ff 75 94             	push   -0x6c(%ebp)
46bfdf:	e8 6c 83 ff ff       	call   0x464350
46bfe4:	3a d8                	cmp    %al,%bl
46bfe6:	0f 92 c0             	setb   %al
46bfe9:	e9 18 02 00 00       	jmp    0x46c206
46bfee:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bff1:	56                   	push   %esi
46bff2:	53                   	push   %ebx
46bff3:	e8 38 89 ff ff       	call   0x464930
46bff8:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46bffb:	8b d8                	mov    %eax,%ebx
46bffd:	56                   	push   %esi
46bffe:	ff 75 94             	push   -0x6c(%ebp)