46e983:	57                   	push   %edi
46e984:	50                   	push   %eax
46e985:	8d 45 f4             	lea    -0xc(%ebp),%eax
46e988:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46e98e:	8b 4d 08             	mov    0x8(%ebp),%ecx
46e991:	8b 7d 0c             	mov    0xc(%ebp),%edi
46e994:	8b 55 10             	mov    0x10(%ebp),%edx
46e997:	2b f9                	sub    %ecx,%edi
46e999:	c1 ff 02             	sar    $0x2,%edi
46e99c:	89 4d 88             	mov    %ecx,-0x78(%ebp)
46e99f:	89 95 7c ff ff ff    	mov    %edx,-0x84(%ebp)
46e9a5:	85 ff                	test   %edi,%edi
46e9a7:	0f 8e 98 02 00 00    	jle    0x46ec45
46e9ad:	8b 45 14             	mov    0x14(%ebp),%eax
46e9b0:	89 45 84             	mov    %eax,-0x7c(%ebp)
46e9b3:	8b 32                	mov    (%edx),%esi
46e9b5:	8b df                	mov    %edi,%ebx
46e9b7:	d1 eb                	shr    $1,%ebx
46e9b9:	89 5d 90             	mov    %ebx,-0x70(%ebp)
46e9bc:	8d 04 99             	lea    (%ecx,%ebx,4),%eax
46e9bf:	89 45 80             	mov    %eax,-0x80(%ebp)
46e9c2:	8d 8d 74 ff ff ff    	lea    -0x8c(%ebp),%ecx
46e9c8:	8b 00                	mov    (%eax),%eax
46e9ca:	89 45 94             	mov    %eax,-0x6c(%ebp)
46e9cd:	8b 06                	mov    (%esi),%eax
46e9cf:	51                   	push   %ecx
46e9d0:	8b ce                	mov    %esi,%ecx
46e9d2:	ff 50 48             	call   *0x48(%eax)
46e9d5:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
46e9d8:	8b 40 04             	mov    0x4(%eax),%eax
46e9db:	89 45 98             	mov    %eax,-0x68(%ebp)
46e9de:	e8 bd a7 fe ff       	call   0x4591a0
46e9e3:	8b 04 85 98 7b 60 00 	mov    0x607b98(,%eax,4),%eax
46e9ea:	48                   	dec    %eax
46e9eb:	83 f8 08             	cmp    $0x8,%eax
46e9ee:	0f 87 fe 01 00 00    	ja     0x46ebf2
46e9f4:	ff 24 85 68 ec 46 00 	jmp    *0x46ec68(,%eax,4)
46e9fb:	ff 75 14             	push   0x14(%ebp)
46e9fe:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea01:	56                   	push   %esi
46ea02:	e8 49 59 ff ff       	call   0x464350
46ea07:	ff 75 14             	push   0x14(%ebp)
46ea0a:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea0d:	8a d8                	mov    %al,%bl
46ea0f:	ff 75 94             	push   -0x6c(%ebp)
46ea12:	e8 39 59 ff ff       	call   0x464350
46ea17:	3a d8                	cmp    %al,%bl
46ea19:	8b 5d 90             	mov    -0x70(%ebp),%ebx
46ea1c:	0f 92 c0             	setb   %al
46ea1f:	e9 b8 01 00 00       	jmp    0x46ebdc
46ea24:	ff 75 14             	push   0x14(%ebp)
46ea27:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea2a:	56                   	push   %esi
46ea2b:	e8 00 5f ff ff       	call   0x464930
46ea30:	ff 75 14             	push   0x14(%ebp)
46ea33:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea36:	8b f0                	mov    %eax,%esi
46ea38:	ff 75 94             	push   -0x6c(%ebp)
46ea3b:	e8 f0 5e ff ff       	call   0x464930
46ea40:	3b f0                	cmp    %eax,%esi
46ea42:	0f 9c c0             	setl   %al
46ea45:	e9 92 01 00 00       	jmp    0x46ebdc
46ea4a:	ff 75 14             	push   0x14(%ebp)
46ea4d:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea50:	56                   	push   %esi
46ea51:	e8 ba 5f ff ff       	call   0x464a10
46ea56:	ff 75 14             	push   0x14(%ebp)
46ea59:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea5c:	8b f2                	mov    %edx,%esi
46ea5e:	ff 75 94             	push   -0x6c(%ebp)
46ea61:	89 45 90             	mov    %eax,-0x70(%ebp)
46ea64:	e8 a7 5f ff ff       	call   0x464a10
46ea69:	3b f2                	cmp    %edx,%esi
46ea6b:	0f 8f 6f 01 00 00    	jg     0x46ebe0
46ea71:	0f 8c ba 01 00 00    	jl     0x46ec31
46ea77:	39 45 90             	cmp    %eax,-0x70(%ebp)
46ea7a:	0f 83 60 01 00 00    	jae    0x46ebe0
46ea80:	e9 ac 01 00 00       	jmp    0x46ec31
46ea85:	ff 75 14             	push   0x14(%ebp)
46ea88:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea8b:	56                   	push   %esi
46ea8c:	e8 ff 6e ff ff       	call   0x465990
46ea91:	ff 75 14             	push   0x14(%ebp)
46ea94:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46ea97:	8b f0                	mov    %eax,%esi
46ea99:	ff 75 94             	push   -0x6c(%ebp)
46ea9c:	e8 ef 6e ff ff       	call   0x465990
46eaa1:	3b f0                	cmp    %eax,%esi
46eaa3:	0f 92 c0             	setb   %al
46eaa6:	e9 31 01 00 00       	jmp    0x46ebdc
46eaab:	ff 75 14             	push   0x14(%ebp)
46eaae:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46eab1:	56                   	push   %esi
46eab2:	e8 b9 6f ff ff       	call   0x465a70
46eab7:	ff 75 14             	push   0x14(%ebp)
46eaba:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46eabd:	8b f2                	mov    %edx,%esi
46eabf:	ff 75 94             	push   -0x6c(%ebp)
46eac2:	89 45 90             	mov    %eax,-0x70(%ebp)
46eac5:	e8 a6 6f ff ff       	call   0x465a70
46eaca:	3b f2                	cmp    %edx,%esi
46eacc:	0f 87 0e 01 00 00    	ja     0x46ebe0
46ead2:	0f 82 59 01 00 00    	jb     0x46ec31
46ead8:	39 45 90             	cmp    %eax,-0x70(%ebp)
46eadb:	0f 83 ff 00 00 00    	jae    0x46ebe0
46eae1:	e9 4b 01 00 00       	jmp    0x46ec31
46eae6:	ff 75 14             	push   0x14(%ebp)
46eae9:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46eaec:	8d 45 d8             	lea    -0x28(%ebp),%eax
46eaef:	56                   	push   %esi
46eaf0:	50                   	push   %eax
46eaf1:	e8 9a 6c ff ff       	call   0x465790
46eaf6:	ff 75 14             	push   0x14(%ebp)
46eaf9:	8b 4d 98             	mov    -0x68(%ebp),%ecx
46eafc:	8d 45 c0             	lea    -0x40(%ebp),%eax
46eaff:	ff 75 94             	push   -0x6c(%ebp)
46eb02:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
46eb09:	50                   	push   %eax
46eb0a:	e8 81 6c ff ff       	call   0x465790
46eb0f:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
46eb13:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46eb16:	8b 45 c0             	mov    -0x40(%ebp),%eax
46eb19:	ff 75 d0             	push   -0x30(%ebp)
46eb1c:	8b 75 d8             	mov    -0x28(%ebp),%esi
46eb1f:	0f 43 c8             	cmovae %eax,%ecx
46eb22:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
46eb26:	89 45 90             	mov    %eax,-0x70(%ebp)
46eb29:	8d 45 d8             	lea    -0x28(%ebp),%eax
46eb2c:	51                   	push   %ecx
46eb2d:	ff 75 e8             	push   -0x18(%ebp)
46eb30:	0f 43 c6             	cmovae %esi,%eax
46eb33:	50                   	push   %eax
46eb34:	e8 d7 f9 ff ff       	call   0x46e510
46eb39:	c1 e8 1f             	shr    $0x1f,%eax
46eb3c:	83 c4 10             	add    $0x10,%esp
46eb3f:	89 45 94             	mov    %eax,-0x6c(%ebp)
46eb42:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46eb45:	83 f8 10             	cmp    $0x10,%eax
46eb48:	72 31                	jb     0x46eb7b
46eb4a:	8b 4d 90             	mov    -0x70(%ebp),%ecx
46eb4d:	8d 50 01             	lea    0x1(%eax),%edx
46eb50:	8b c1                	mov    %ecx,%eax
46eb52:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
46eb58:	72 14                	jb     0x46eb6e
46eb5a:	8b 49 fc             	mov    -0x4(%ecx),%ecx
46eb5d:	83 c2 23             	add    $0x23,%edx
46eb60:	2b c1                	sub    %ecx,%eax
46eb62:	83 c0 fc             	add    $0xfffffffc,%eax
46eb65:	83 f8 1f             	cmp    $0x1f,%eax
46eb68:	0f 87 f5 00 00 00    	ja     0x46ec63
46eb6e:	52                   	push   %edx
46eb6f:	51                   	push   %ecx
46eb70:	e8 e0 26 16 00       	call   0x5d1255
46eb75:	8b 75 d8             	mov    -0x28(%ebp),%esi
46eb78:	83 c4 08             	add    $0x8,%esp
46eb7b:	8b 45 ec             	mov    -0x14(%ebp),%eax
46eb7e:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
46eb85:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%ebp)
46eb8c:	c6 45 c0 00          	movb   $0x0,-0x40(%ebp)
46eb90:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46eb97:	83 f8 10             	cmp    $0x10,%eax
46eb9a:	72 2b                	jb     0x46ebc7
46eb9c:	8d 48 01             	lea    0x1(%eax),%ecx
46eb9f:	8b c6                	mov    %esi,%eax
46eba1:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46eba7:	72 14                	jb     0x46ebbd
46eba9:	8b 76 fc             	mov    -0x4(%esi),%esi
46ebac:	83 c1 23             	add    $0x23,%ecx
46ebaf:	2b c6                	sub    %esi,%eax
46ebb1:	83 c0 fc             	add    $0xfffffffc,%eax
46ebb4:	83 f8 1f             	cmp    $0x1f,%eax
46ebb7:	0f 87 a6 00 00 00    	ja     0x46ec63
46ebbd:	51                   	push   %ecx
46ebbe:	56                   	push   %esi
46ebbf:	e8 91 26 16 00       	call   0x5d1255
46ebc4:	83 c4 08             	add    $0x8,%esp
46ebc7:	8b 45 94             	mov    -0x6c(%ebp),%eax
46ebca:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
46ebd1:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
46ebd8:	c6 45 d8 00          	movb   $0x0,-0x28(%ebp)
46ebdc:	84 c0                	test   %al,%al
46ebde:	75 51                	jne    0x46ec31
46ebe0:	8b 4d 80             	mov    -0x80(%ebp),%ecx
46ebe3:	83 c8 ff             	or     $0xffffffff,%eax
46ebe6:	83 c1 04             	add    $0x4,%ecx
46ebe9:	2b c3                	sub    %ebx,%eax
46ebeb:	89 4d 88             	mov    %ecx,-0x78(%ebp)
46ebee:	03 f8                	add    %eax,%edi
46ebf0:	eb 44                	jmp    0x46ec36
46ebf2:	68 d2 00 00 00       	push   $0xd2
46ebf7:	68 e0 76 60 00       	push   $0x6076e0
46ebfc:	6a 02                	push   $0x2
46ebfe:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
46ec01:	e8 da 66 00 00       	call   0x4752e0
46ec06:	68 48 77 60 00       	push   $0x607748
46ec0b:	8b c8                	mov    %eax,%ecx
46ec0d:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
46ec14:	e8 d7 6c 00 00       	call   0x4758f0
46ec19:	50                   	push   %eax
46ec1a:	8d 4d 8f             	lea    -0x71(%ebp),%ecx
46ec1d:	e8 5e 6a 00 00       	call   0x475680
46ec22:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
46ec25:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46ec2c:	e8 df 69 00 00       	call   0x475610
46ec31:	8b 4d 88             	mov    -0x78(%ebp),%ecx
46ec34:	8b fb                	mov    %ebx,%edi
46ec36:	85 ff                	test   %edi,%edi
46ec38:	7e 0b                	jle    0x46ec45
46ec3a:	8b 95 7c ff ff ff    	mov    -0x84(%ebp),%edx
46ec40:	e9 6e fd ff ff       	jmp    0x46e9b3
46ec45:	8b c1                	mov    %ecx,%eax
46ec47:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46ec4a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46ec51:	59                   	pop    %ecx
46ec52:	5f                   	pop    %edi
46ec53:	5e                   	pop    %esi
46ec54:	5b                   	pop    %ebx
46ec55:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46ec58:	33 cd                	xor    %ebp,%ecx
46ec5a:	e8 c7 2d 16 00       	call   0x5d1a26
46ec5f:	8b e5                	mov    %ebp,%esp
46ec61:	5d                   	pop    %ebp
46ec62:	c3                   	ret
46ec63:	e8 88 75 16 00       	call   0x5d61f0
46ec68:	24 ea                	and    $0xea,%al
46ec6a:	46                   	inc    %esi
46ec6b:	00 4a ea             	add    %cl,-0x16(%edx)
46ec6e:	46                   	inc    %esi
46ec6f:	00 85 ea 46 00 ab    	add    %al,-0x54ffb916(%ebp)
46ec75:	ea 46 00 f2 eb 46 00 	ljmp   $0x46,$0xebf20046
46ec7c:	f2 eb 46             	bnd jmp 0x46ecc5
46ec7f:	00 fb                	add    %bh,%bl
46ec81:	e9 46 00 f2 eb       	jmp    0xec38eccc
46ec86:	46                   	inc    %esi
46ec87:	00 e6                	add    %ah,%dh
46ec89:	ea 46 00 cc cc cc cc 	ljmp   $0xcccc,$0xcccc0046
46ec90:	55                   	push   %ebp
46ec91:	8b ec                	mov    %esp,%ebp
46ec93:	6a ff                	push   $0xffffffff
46ec95:	68 70 88 5f 00       	push   $0x5f8870
46ec9a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
46eca0:	50                   	push   %eax
46eca1:	56                   	push   %esi
46eca2:	a1 c0 14 69 00       	mov    0x6914c0,%eax
46eca7:	33 c5                	xor    %ebp,%eax
46eca9:	50                   	push   %eax
46ecaa:	8d 45 f4             	lea    -0xc(%ebp),%eax
46ecad:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
46ecb3:	8b f1                	mov    %ecx,%esi
46ecb5:	8b 4e 04             	mov    0x4(%esi),%ecx
46ecb8:	ff 76 08             	push   0x8(%esi)
46ecbb:	ff 36                	push   (%esi)
46ecbd:	8b 01                	mov    (%ecx),%eax
46ecbf:	ff 50 38             	call   *0x38(%eax)
46ecc2:	8b 4e 0c             	mov    0xc(%esi),%ecx
46ecc5:	85 c9                	test   %ecx,%ecx
46ecc7:	74 06                	je     0x46eccf
46ecc9:	8b 01                	mov    (%ecx),%eax
46eccb:	6a 01                	push   $0x1
46eccd:	ff 10                	call   *(%eax)
46eccf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46ecd2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
46ecd9:	59                   	pop    %ecx
46ecda:	5e                   	pop    %esi
46ecdb:	8b e5                	mov    %ebp,%esp
46ecdd:	5d                   	pop    %ebp
46ecde:	c3                   	ret
46ecdf:	cc                   	int3
46ece0:	cc                   	int3
46ece1:	cc                   	int3
46ece2:	cc                   	int3
46ece3:	cc                   	int3
46ece4:	cc                   	int3
46ece5:	cc                   	int3
46ece6:	cc                   	int3
46ece7:	cc                   	int3
46ece8:	cc                   	int3
46ece9:	cc                   	int3
46ecea:	cc                   	int3
46eceb:	cc                   	int3
46ecec:	cc                   	int3
46eced:	cc                   	int3
46ecee:	cc                   	int3
46ecef:	cc                   	int3
46ecf0:	81 79 04 00 04 00 00 	cmpl   $0x400,0x4(%ecx)
46ecf7:	76 08                	jbe    0x46ed01
46ecf9:	ff 31                	push   (%ecx)
46ecfb:	e8 5f 2f 16 00       	call   0x5d1c5f
46ed00:	59                   	pop    %ecx
46ed01:	c3                   	ret
46ed02:	cc                   	int3
46ed03:	cc                   	int3
46ed04:	cc                   	int3
46ed05:	cc                   	int3
46ed06:	cc                   	int3
46ed07:	cc                   	int3
46ed08:	cc                   	int3
46ed09:	cc                   	int3
46ed0a:	cc                   	int3
46ed0b:	cc                   	int3
46ed0c:	cc                   	int3
46ed0d:	cc                   	int3
46ed0e:	cc                   	int3
46ed0f:	cc                   	int3
46ed10:	ff 71 08             	push   0x8(%ecx)
46ed13:	ff 71 04             	push   0x4(%ecx)
46ed16:	ff 31                	push   (%ecx)
46ed18:	e8 b3 cd ff ff       	call   0x46bad0
46ed1d:	83 c4 0c             	add    $0xc,%esp
46ed20:	c3                   	ret
46ed21:	cc                   	int3
46ed22:	cc                   	int3
46ed23:	cc                   	int3
46ed24:	cc                   	int3
46ed25:	cc                   	int3
46ed26:	cc                   	int3
46ed27:	cc                   	int3
46ed28:	cc                   	int3
46ed29:	cc                   	int3
46ed2a:	cc                   	int3
46ed2b:	cc                   	int3
46ed2c:	cc                   	int3
46ed2d:	cc                   	int3
46ed2e:	cc                   	int3
46ed2f:	cc                   	int3
46ed30:	56                   	push   %esi
46ed31:	8b f1                	mov    %ecx,%esi
46ed33:	8b 06                	mov    (%esi),%eax
46ed35:	85 c0                	test   %eax,%eax
46ed37:	74 4f                	je     0x46ed88
46ed39:	56                   	push   %esi
46ed3a:	ff 76 04             	push   0x4(%esi)
46ed3d:	50                   	push   %eax
46ed3e:	e8 8d cd ff ff       	call   0x46bad0
46ed43:	8b 4e 08             	mov    0x8(%esi),%ecx
46ed46:	83 c4 0c             	add    $0xc,%esp
46ed49:	8b 06                	mov    (%esi),%eax
46ed4b:	2b c8                	sub    %eax,%ecx
46ed4d:	83 e1 e0             	and    $0xffffffe0,%ecx
46ed50:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46ed56:	72 12                	jb     0x46ed6a
46ed58:	8b 50 fc             	mov    -0x4(%eax),%edx
46ed5b:	83 c1 23             	add    $0x23,%ecx
46ed5e:	2b c2                	sub    %edx,%eax
46ed60:	83 c0 fc             	add    $0xfffffffc,%eax
46ed63:	83 f8 1f             	cmp    $0x1f,%eax
46ed66:	77 22                	ja     0x46ed8a
46ed68:	8b c2                	mov    %edx,%eax
46ed6a:	51                   	push   %ecx
46ed6b:	50                   	push   %eax