586c08:	74 38                	je     0x586c42
586c0a:	3b 44 24 20          	cmp    0x20(%esp),%eax
586c0e:	8b 50 10             	mov    0x10(%eax),%edx
586c11:	8b fa                	mov    %edx,%edi
586c13:	0f 45 7c 24 14       	cmovne 0x14(%esp),%edi
586c18:	8b 48 0c             	mov    0xc(%eax),%ecx
586c1b:	85 c9                	test   %ecx,%ecx
586c1d:	74 0a                	je     0x586c29
586c1f:	89 51 10             	mov    %edx,0x10(%ecx)
586c22:	8b 4c 24 10          	mov    0x10(%esp),%ecx
586c26:	8b 51 10             	mov    0x10(%ecx),%edx
586c29:	85 d2                	test   %edx,%edx
586c2b:	74 06                	je     0x586c33
586c2d:	8b 48 0c             	mov    0xc(%eax),%ecx
586c30:	89 4a 0c             	mov    %ecx,0xc(%edx)
586c33:	89 43 10             	mov    %eax,0x10(%ebx)
586c36:	89 58 0c             	mov    %ebx,0xc(%eax)
586c39:	8b d8                	mov    %eax,%ebx
586c3b:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
586c42:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
586c49:	e9 ad 00 00 00       	jmp    0x586cfb
586c4e:	83 f9 06             	cmp    $0x6,%ecx
586c51:	75 4c                	jne    0x586c9f
586c53:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
586c57:	0f 84 9e 00 00 00    	je     0x586cfb
586c5d:	3b c3                	cmp    %ebx,%eax
586c5f:	0f 84 96 00 00 00    	je     0x586cfb
586c65:	3b 44 24 14          	cmp    0x14(%esp),%eax
586c69:	8b 50 10             	mov    0x10(%eax),%edx
586c6c:	8b fa                	mov    %edx,%edi
586c6e:	0f 45 7c 24 14       	cmovne 0x14(%esp),%edi
586c73:	8b 48 0c             	mov    0xc(%eax),%ecx
586c76:	85 c9                	test   %ecx,%ecx
586c78:	74 0a                	je     0x586c84
586c7a:	89 51 10             	mov    %edx,0x10(%ecx)
586c7d:	8b 4c 24 10          	mov    0x10(%esp),%ecx
586c81:	8b 51 10             	mov    0x10(%ecx),%edx
586c84:	85 d2                	test   %edx,%edx
586c86:	74 06                	je     0x586c8e
586c88:	8b 48 0c             	mov    0xc(%eax),%ecx
586c8b:	89 4a 0c             	mov    %ecx,0xc(%edx)
586c8e:	89 43 10             	mov    %eax,0x10(%ebx)
586c91:	89 58 0c             	mov    %ebx,0xc(%eax)
586c94:	8b d8                	mov    %eax,%ebx
586c96:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
586c9d:	eb 5c                	jmp    0x586cfb
586c9f:	83 f9 02             	cmp    $0x2,%ecx
586ca2:	75 57                	jne    0x586cfb
586ca4:	8b 74 24 24          	mov    0x24(%esp),%esi
586ca8:	8b 76 0c             	mov    0xc(%esi),%esi
586cab:	3b d8                	cmp    %eax,%ebx
586cad:	75 04                	jne    0x586cb3
586caf:	8b de                	mov    %esi,%ebx
586cb1:	eb 0d                	jmp    0x586cc0
586cb3:	8b 48 10             	mov    0x10(%eax),%ecx
586cb6:	89 71 0c             	mov    %esi,0xc(%ecx)
586cb9:	8b 4c 24 28          	mov    0x28(%esp),%ecx
586cbd:	8b 71 0c             	mov    0xc(%ecx),%esi
586cc0:	39 44 24 14          	cmp    %eax,0x14(%esp)
586cc4:	8b 50 10             	mov    0x10(%eax),%edx
586cc7:	8b fa                	mov    %edx,%edi
586cc9:	0f 45 7c 24 14       	cmovne 0x14(%esp),%edi
586cce:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
586cd5:	85 f6                	test   %esi,%esi
586cd7:	74 0a                	je     0x586ce3
586cd9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
586cdd:	89 56 10             	mov    %edx,0x10(%esi)
586ce0:	8b 51 10             	mov    0x10(%ecx),%edx
586ce3:	85 d2                	test   %edx,%edx
586ce5:	74 06                	je     0x586ced
586ce7:	8b 48 0c             	mov    0xc(%eax),%ecx
586cea:	89 4a 0c             	mov    %ecx,0xc(%edx)
586ced:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
586cf4:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
586cfb:	8b 54 24 1c          	mov    0x1c(%esp),%edx
586cff:	3b 44 24 2c          	cmp    0x2c(%esp),%eax
586d03:	0f 85 48 fd ff ff    	jne    0x586a51
586d09:	8b 44 24 58          	mov    0x58(%esp),%eax
586d0d:	89 18                	mov    %ebx,(%eax)
586d0f:	8b 44 24 5c          	mov    0x5c(%esp),%eax
586d13:	89 38                	mov    %edi,(%eax)
586d15:	5f                   	pop    %edi
586d16:	5e                   	pop    %esi
586d17:	5d                   	pop    %ebp
586d18:	5b                   	pop    %ebx
586d19:	83 c4 20             	add    $0x20,%esp
586d1c:	c3                   	ret
586d1d:	89 1a                	mov    %ebx,(%edx)
586d1f:	89 3e                	mov    %edi,(%esi)
586d21:	5f                   	pop    %edi
586d22:	5e                   	pop    %esi
586d23:	5d                   	pop    %ebp
586d24:	5b                   	pop    %ebx
586d25:	83 c4 20             	add    $0x20,%esp
586d28:	c3                   	ret
586d29:	cc                   	int3
586d2a:	cc                   	int3
586d2b:	cc                   	int3
586d2c:	cc                   	int3
586d2d:	cc                   	int3
586d2e:	cc                   	int3
586d2f:	cc                   	int3
586d30:	55                   	push   %ebp
586d31:	8b ec                	mov    %esp,%ebp
586d33:	83 e4 f0             	and    $0xfffffff0,%esp
586d36:	b8 14 00 00 00       	mov    $0x14,%eax
586d3b:	e8 70 aa 04 00       	call   0x5d17b0
586d40:	8b 45 20             	mov    0x20(%ebp),%eax
586d43:	53                   	push   %ebx
586d44:	56                   	push   %esi
586d45:	57                   	push   %edi
586d46:	66 0f 6e c0          	movd   %eax,%xmm0
586d4a:	33 db                	xor    %ebx,%ebx
586d4c:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
586d51:	33 ff                	xor    %edi,%edi
586d53:	0f 29 44 24 10       	movaps %xmm0,0x10(%esp)
586d58:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
586d5b:	0f 8e 3e 02 00 00    	jle    0x586f9f
586d61:	83 c0 10             	add    $0x10,%eax
586d64:	89 44 24 0c          	mov    %eax,0xc(%esp)
586d68:	8b f0                	mov    %eax,%esi
586d6a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
586d70:	8b 45 08             	mov    0x8(%ebp),%eax
586d73:	57                   	push   %edi
586d74:	8b 40 5c             	mov    0x5c(%eax),%eax
586d77:	ff d0                	call   *%eax
586d79:	83 c4 04             	add    $0x4,%esp
586d7c:	85 c0                	test   %eax,%eax
586d7e:	74 58                	je     0x586dd8
586d80:	83 38 00             	cmpl   $0x0,(%eax)
586d83:	74 53                	je     0x586dd8
586d85:	8b 4d 10             	mov    0x10(%ebp),%ecx
586d88:	85 48 10             	test   %ecx,0x10(%eax)
586d8b:	75 4b                	jne    0x586dd8
586d8d:	8b 4d 14             	mov    0x14(%ebp),%ecx
586d90:	85 48 14             	test   %ecx,0x14(%eax)
586d93:	75 43                	jne    0x586dd8
586d95:	8b 4d 18             	mov    0x18(%ebp),%ecx
586d98:	85 48 18             	test   %ecx,0x18(%eax)
586d9b:	75 3b                	jne    0x586dd8
586d9d:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
586da0:	85 48 1c             	test   %ecx,0x1c(%eax)
586da3:	75 33                	jne    0x586dd8
586da5:	8b 4d 08             	mov    0x8(%ebp),%ecx
586da8:	8b 49 64             	mov    0x64(%ecx),%ecx
586dab:	f6 41 30 08          	testb  $0x8,0x30(%ecx)
586daf:	75 06                	jne    0x586db7
586db1:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
586db5:	eb 04                	jmp    0x586dbb
586db7:	83 78 28 00          	cmpl   $0x0,0x28(%eax)
586dbb:	74 1b                	je     0x586dd8
586dbd:	89 46 f0             	mov    %eax,-0x10(%esi)
586dc0:	43                   	inc    %ebx
586dc1:	c7 46 fc 00 00 00 00 	movl   $0x0,-0x4(%esi)
586dc8:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
586dce:	c7 46 f4 00 00 00 00 	movl   $0x0,-0xc(%esi)
586dd5:	83 c6 14             	add    $0x14,%esi
586dd8:	47                   	inc    %edi
586dd9:	3b 7d 0c             	cmp    0xc(%ebp),%edi
586ddc:	7c 92                	jl     0x586d70
586dde:	85 db                	test   %ebx,%ebx
586de0:	0f 8e b9 01 00 00    	jle    0x586f9f
586de6:	8b 44 24 0c          	mov    0xc(%esp),%eax
586dea:	8b 75 20             	mov    0x20(%ebp),%esi
586ded:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
586df3:	83 fb 01             	cmp    $0x1,%ebx
586df6:	0f 8e 89 01 00 00    	jle    0x586f85
586dfc:	8d 46 14             	lea    0x14(%esi),%eax
586dff:	bf 01 00 00 00       	mov    $0x1,%edi
586e04:	8d 53 ff             	lea    -0x1(%ebx),%edx
586e07:	89 46 0c             	mov    %eax,0xc(%esi)
586e0a:	8d 42 ff             	lea    -0x1(%edx),%eax
586e0d:	3b d7                	cmp    %edi,%edx
586e0f:	0f 8e 64 01 00 00    	jle    0x586f79
586e15:	83 f8 08             	cmp    $0x8,%eax
586e18:	0f 82 3d 01 00 00    	jb     0x586f5b
586e1e:	83 3d 58 6b 71 00 02 	cmpl   $0x2,0x716b58
586e25:	0f 8c 30 01 00 00    	jl     0x586f5b
586e2b:	0f 28 1d a0 20 61 00 	movaps 0x6120a0,%xmm3
586e32:	25 07 00 00 80       	and    $0x80000007,%eax
586e37:	79 05                	jns    0x586e3e
586e39:	48                   	dec    %eax
586e3a:	83 c8 f8             	or     $0xfffffff8,%eax
586e3d:	40                   	inc    %eax
586e3e:	0f 28 15 b0 47 66 00 	movaps 0x6647b0,%xmm2
586e45:	8b ca                	mov    %edx,%ecx
586e47:	0f 28 64 24 10       	movaps 0x10(%esp),%xmm4
586e4c:	2b c8                	sub    %eax,%ecx
586e4e:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
586e52:	8d 4e 38             	lea    0x38(%esi),%ecx
586e55:	8b 74 24 0c          	mov    0xc(%esp),%esi
586e59:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
586e60:	66 0f 6e c7          	movd   %edi,%xmm0
586e64:	8d 47 04             	lea    0x4(%edi),%eax
586e67:	66 0f 70 c8 00       	pshufd $0x0,%xmm0,%xmm1
586e6c:	8d 89 a0 00 00 00    	lea    0xa0(%ecx),%ecx
586e72:	66 0f fe cb          	paddd  %xmm3,%xmm1
586e76:	83 c7 08             	add    $0x8,%edi
586e79:	66 0f 38 40 ca       	pmulld %xmm2,%xmm1
586e7e:	66 0f fe cc          	paddd  %xmm4,%xmm1
586e82:	0f 28 c1             	movaps %xmm1,%xmm0
586e85:	66 0f fe ca          	paddd  %xmm2,%xmm1
586e89:	66 0f 7e 89 48 ff ff 	movd   %xmm1,-0xb8(%ecx)
586e90:	ff
586e91:	66 0f fa c2          	psubd  %xmm2,%xmm0
586e95:	66 0f 7e 81 4c ff ff 	movd   %xmm0,-0xb4(%ecx)
586e9c:	ff
586e9d:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
586ea2:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
586ea7:	66 0f 7e 81 60 ff ff 	movd   %xmm0,-0xa0(%ecx)
586eae:	ff
586eaf:	66 0f 7e 89 5c ff ff 	movd   %xmm1,-0xa4(%ecx)
586eb6:	ff
586eb7:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
586ebc:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
586ec1:	66 0f 7e 81 74 ff ff 	movd   %xmm0,-0x8c(%ecx)
586ec8:	ff
586ec9:	66 0f 7e 89 70 ff ff 	movd   %xmm1,-0x90(%ecx)
586ed0:	ff
586ed1:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
586ed6:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
586edb:	66 0f 7e 41 88       	movd   %xmm0,-0x78(%ecx)
586ee0:	66 0f 7e 49 84       	movd   %xmm1,-0x7c(%ecx)
586ee5:	66 0f 6e c0          	movd   %eax,%xmm0
586ee9:	66 0f 70 c8 00       	pshufd $0x0,%xmm0,%xmm1
586eee:	66 0f fe cb          	paddd  %xmm3,%xmm1
586ef2:	66 0f 38 40 ca       	pmulld %xmm2,%xmm1
586ef7:	66 0f fe cc          	paddd  %xmm4,%xmm1
586efb:	0f 28 c1             	movaps %xmm1,%xmm0
586efe:	66 0f fe ca          	paddd  %xmm2,%xmm1
586f02:	66 0f 7e 49 98       	movd   %xmm1,-0x68(%ecx)
586f07:	66 0f fa c2          	psubd  %xmm2,%xmm0
586f0b:	66 0f 7e 41 9c       	movd   %xmm0,-0x64(%ecx)
586f10:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
586f15:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
586f1a:	66 0f 7e 41 b0       	movd   %xmm0,-0x50(%ecx)
586f1f:	66 0f 7e 49 ac       	movd   %xmm1,-0x54(%ecx)
586f24:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
586f29:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
586f2e:	66 0f 7e 41 c4       	movd   %xmm0,-0x3c(%ecx)
586f33:	66 0f 7e 49 c0       	movd   %xmm1,-0x40(%ecx)
586f38:	66 0f 73 d8 04       	psrldq $0x4,%xmm0
586f3d:	66 0f 73 d9 04       	psrldq $0x4,%xmm1
586f42:	66 0f 7e 41 d8       	movd   %xmm0,-0x28(%ecx)
586f47:	66 0f 7e 49 d4       	movd   %xmm1,-0x2c(%ecx)
586f4c:	3b fe                	cmp    %esi,%edi
586f4e:	0f 8c 0c ff ff ff    	jl     0x586e60
586f54:	8b 75 20             	mov    0x20(%ebp),%esi
586f57:	3b fa                	cmp    %edx,%edi
586f59:	7d 1e                	jge    0x586f79
586f5b:	8d 4f 01             	lea    0x1(%edi),%ecx
586f5e:	2b d7                	sub    %edi,%edx
586f60:	8d 0c 8f             	lea    (%edi,%ecx,4),%ecx
586f63:	8d 0c 8e             	lea    (%esi,%ecx,4),%ecx
586f66:	8d 41 dc             	lea    -0x24(%ecx),%eax
586f69:	89 01                	mov    %eax,(%ecx)
586f6b:	8d 41 04             	lea    0x4(%ecx),%eax
586f6e:	89 41 fc             	mov    %eax,-0x4(%ecx)
586f71:	8d 49 14             	lea    0x14(%ecx),%ecx
586f74:	83 ea 01             	sub    $0x1,%edx
586f77:	75 ed                	jne    0x586f66
586f79:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
586f7c:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
586f7f:	8d 41 d8             	lea    -0x28(%ecx),%eax
586f82:	89 41 fc             	mov    %eax,-0x4(%ecx)
586f85:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
586f88:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
586f8b:	8b 45 24             	mov    0x24(%ebp),%eax
586f8e:	c7 41 f8 00 00 00 00 	movl   $0x0,-0x8(%ecx)
586f95:	83 c1 ec             	add    $0xffffffec,%ecx
586f98:	89 30                	mov    %esi,(%eax)
586f9a:	8b 45 28             	mov    0x28(%ebp),%eax
586f9d:	89 08                	mov    %ecx,(%eax)
586f9f:	5f                   	pop    %edi
586fa0:	5e                   	pop    %esi
586fa1:	5b                   	pop    %ebx
586fa2:	8b e5                	mov    %ebp,%esp
586fa4:	5d                   	pop    %ebp
586fa5:	c3                   	ret
586fa6:	cc                   	int3
586fa7:	cc                   	int3
586fa8:	cc                   	int3
586fa9:	cc                   	int3
586faa:	cc                   	int3
586fab:	cc                   	int3
586fac:	cc                   	int3
586fad:	cc                   	int3
586fae:	cc                   	int3
586faf:	cc                   	int3
586fb0:	b8 0c 00 00 00       	mov    $0xc,%eax
586fb5:	e8 f6 a7 04 00       	call   0x5d17b0
586fba:	8b 44 24 10          	mov    0x10(%esp),%eax
586fbe:	53                   	push   %ebx
586fbf:	55                   	push   %ebp
586fc0:	56                   	push   %esi
586fc1:	8b b0 bc 01 00 00    	mov    0x1bc(%eax),%esi
586fc7:	57                   	push   %edi
586fc8:	85 f6                	test   %esi,%esi
586fca:	74 4f                	je     0x58701b
586fcc:	8b 7c 24 34          	mov    0x34(%esp),%edi
586fd0:	85 ff                	test   %edi,%edi
586fd2:	74 51                	je     0x587025
586fd4:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
586fda:	8b 80 b8 01 00 00    	mov    0x1b8(%eax),%eax
586fe0:	89 44 24 10          	mov    %eax,0x10(%esp)
586fe4:	a1 50 6c 69 00       	mov    0x696c50,%eax
586fe9:	85 c0                	test   %eax,%eax
586feb:	74 1c                	je     0x587009
586fed:	8d 4c 24 10          	lea    0x10(%esp),%ecx
586ff1:	51                   	push   %ecx
586ff2:	50                   	push   %eax
586ff3:	e8 98 de f5 ff       	call   0x4e4e90
586ff8:	50                   	push   %eax
586ff9:	ff 35 50 6c 69 00    	push   0x696c50
586fff:	e8 7c e2 f5 ff       	call   0x4e5280
587004:	83 c4 10             	add    $0x10,%esp
587007:	89 07                	mov    %eax,(%edi)
587009:	8b 7c 24 24          	mov    0x24(%esp),%edi
58700d:	85 ff                	test   %edi,%edi
58700f:	75 1c                	jne    0x58702d
587011:	39 7c 24 28          	cmp    %edi,0x28(%esp)
587015:	0f 84 d1 01 00 00    	je     0x5871ec
58701b:	5f                   	pop    %edi
58701c:	5e                   	pop    %esi
58701d:	5d                   	pop    %ebp
58701e:	33 c0                	xor    %eax,%eax
587020:	5b                   	pop    %ebx
587021:	83 c4 0c             	add    $0xc,%esp
587024:	c3                   	ret
587025:	8b 7c 24 24          	mov    0x24(%esp),%edi
587029:	85 ff                	test   %edi,%edi
58702b:	74 ee                	je     0x58701b
58702d:	8b 5c 24 28          	mov    0x28(%esp),%ebx
587031:	85 db                	test   %ebx,%ebx
587033:	74 e6                	je     0x58701b
587035:	8b 56 18             	mov    0x18(%esi),%edx
587038:	b9 d8 2f 66 00       	mov    $0x662fd8,%ecx
58703d:	33 c0                	xor    %eax,%eax
58703f:	90                   	nop
587040:	39 11                	cmp    %edx,(%ecx)
587042:	74 0d                	je     0x587051
587044:	40                   	inc    %eax
587045:	83 c1 08             	add    $0x8,%ecx
587048:	83 f8 16             	cmp    $0x16,%eax
58704b:	72 f3                	jb     0x587040
58704d:	33 c0                	xor    %eax,%eax
58704f:	eb 1c                	jmp    0x58706d
587051:	83 f8 ff             	cmp    $0xffffffff,%eax
587054:	75 04                	jne    0x58705a
587056:	33 c0                	xor    %eax,%eax