45499e:	83 fe 10             	cmp    $0x10,%esi
4549a1:	72 28                	jb     0x4549cb
4549a3:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4549a6:	46                   	inc    %esi
4549a7:	8b c1                	mov    %ecx,%eax
4549a9:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
4549af:	72 10                	jb     0x4549c1
4549b1:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4549b4:	83 c6 23             	add    $0x23,%esi
4549b7:	2b c1                	sub    %ecx,%eax
4549b9:	83 c0 fc             	add    $0xfffffffc,%eax
4549bc:	83 f8 1f             	cmp    $0x1f,%eax
4549bf:	77 4f                	ja     0x454a10
4549c1:	56                   	push   %esi
4549c2:	51                   	push   %ecx
4549c3:	e8 aa c6 18 00       	call   0x5e1072
4549c8:	83 c4 08             	add    $0x8,%esp
4549cb:	8b 4b 04             	mov    0x4(%ebx),%ecx
4549ce:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
4549d3:	2b 0b                	sub    (%ebx),%ecx
4549d5:	8b 75 d0             	mov    -0x30(%ebp),%esi
4549d8:	83 45 e0 18          	addl   $0x18,-0x20(%ebp)
4549dc:	46                   	inc    %esi
4549dd:	f7 e9                	imul   %ecx
4549df:	89 75 d0             	mov    %esi,-0x30(%ebp)
4549e2:	c1 fa 02             	sar    $0x2,%edx
4549e5:	8b c2                	mov    %edx,%eax
4549e7:	c1 e8 1f             	shr    $0x1f,%eax
4549ea:	03 c2                	add    %edx,%eax
4549ec:	3b f0                	cmp    %eax,%esi
4549ee:	73 08                	jae    0x4549f8
4549f0:	8b 45 e0             	mov    -0x20(%ebp),%eax
4549f3:	e9 94 fe ff ff       	jmp    0x45488c
4549f8:	5f                   	pop    %edi
4549f9:	5e                   	pop    %esi
4549fa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4549fd:	33 cd                	xor    %ebp,%ecx
4549ff:	5b                   	pop    %ebx
454a00:	e8 d5 ca 18 00       	call   0x5e14da
454a05:	8b e5                	mov    %ebp,%esp
454a07:	5d                   	pop    %ebp
454a08:	c2 0c 00             	ret    $0xc
454a0b:	e8 d0 04 ff ff       	call   0x444ee0
454a10:	e8 1a 85 19 00       	call   0x5ecf2f
454a15:	cc                   	int3
454a16:	cc                   	int3
454a17:	cc                   	int3
454a18:	cc                   	int3
454a19:	cc                   	int3
454a1a:	cc                   	int3
454a1b:	cc                   	int3
454a1c:	cc                   	int3
454a1d:	cc                   	int3
454a1e:	cc                   	int3
454a1f:	cc                   	int3
454a20:	55                   	push   %ebp
454a21:	8b ec                	mov    %esp,%ebp
454a23:	8b 55 10             	mov    0x10(%ebp),%edx
454a26:	8b c2                	mov    %edx,%eax
454a28:	56                   	push   %esi
454a29:	8d 70 02             	lea    0x2(%eax),%esi
454a2c:	0f 1f 40 00          	nopl   0x0(%eax)
454a30:	66 8b 08             	mov    (%eax),%cx
454a33:	83 c0 02             	add    $0x2,%eax
454a36:	66 85 c9             	test   %cx,%cx
454a39:	75 f5                	jne    0x454a30
454a3b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454a3e:	2b c6                	sub    %esi,%eax
454a40:	d1 f8                	sar    $1,%eax
454a42:	50                   	push   %eax
454a43:	52                   	push   %edx
454a44:	e8 37 3f ff ff       	call   0x448980
454a49:	8b 4d 08             	mov    0x8(%ebp),%ecx
454a4c:	33 d2                	xor    %edx,%edx
454a4e:	5e                   	pop    %esi
454a4f:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
454a56:	c7 41 14 00 00 00 00 	movl   $0x0,0x14(%ecx)
454a5d:	0f 10 00             	movups (%eax),%xmm0
454a60:	0f 11 01             	movups %xmm0,(%ecx)
454a63:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
454a68:	66 0f d6 41 10       	movq   %xmm0,0x10(%ecx)
454a6d:	c7 40 10 00 00 00 00 	movl   $0x0,0x10(%eax)
454a74:	c7 40 14 07 00 00 00 	movl   $0x7,0x14(%eax)
454a7b:	66 89 10             	mov    %dx,(%eax)
454a7e:	8b c1                	mov    %ecx,%eax
454a80:	5d                   	pop    %ebp
454a81:	c3                   	ret
454a82:	cc                   	int3
454a83:	cc                   	int3
454a84:	cc                   	int3
454a85:	cc                   	int3
454a86:	cc                   	int3
454a87:	cc                   	int3
454a88:	cc                   	int3
454a89:	cc                   	int3
454a8a:	cc                   	int3
454a8b:	cc                   	int3
454a8c:	cc                   	int3
454a8d:	cc                   	int3
454a8e:	cc                   	int3
454a8f:	cc                   	int3
454a90:	55                   	push   %ebp
454a91:	8b ec                	mov    %esp,%ebp
454a93:	56                   	push   %esi
454a94:	57                   	push   %edi
454a95:	8b 7d 08             	mov    0x8(%ebp),%edi
454a98:	85 ff                	test   %edi,%edi
454a9a:	74 68                	je     0x454b04
454a9c:	8b 45 0c             	mov    0xc(%ebp),%eax
454a9f:	85 c0                	test   %eax,%eax
454aa1:	78 61                	js     0x454b04
454aa3:	8b 75 10             	mov    0x10(%ebp),%esi
454aa6:	85 f6                	test   %esi,%esi
454aa8:	74 5a                	je     0x454b04
454aaa:	8b 0f                	mov    (%edi),%ecx
454aac:	3b ce                	cmp    %esi,%ecx
454aae:	74 24                	je     0x454ad4
454ab0:	3b 45 14             	cmp    0x14(%ebp),%eax
454ab3:	7e 14                	jle    0x454ac9
454ab5:	6a 02                	push   $0x2
454ab7:	50                   	push   %eax
454ab8:	51                   	push   %ecx
454ab9:	e8 cd 1c 1a 00       	call   0x5f678b
454abe:	8b f0                	mov    %eax,%esi
454ac0:	83 c4 0c             	add    $0xc,%esp
454ac3:	85 f6                	test   %esi,%esi
454ac5:	74 29                	je     0x454af0
454ac7:	eb 1d                	jmp    0x454ae6
454ac9:	51                   	push   %ecx
454aca:	e8 a1 9b 19 00       	call   0x5ee670
454acf:	83 c4 04             	add    $0x4,%esp
454ad2:	eb 12                	jmp    0x454ae6
454ad4:	3b 45 14             	cmp    0x14(%ebp),%eax
454ad7:	7e 0d                	jle    0x454ae6
454ad9:	6a 02                	push   $0x2
454adb:	50                   	push   %eax
454adc:	e8 7d 9b 19 00       	call   0x5ee65e
454ae1:	83 c4 08             	add    $0x8,%esp
454ae4:	8b f0                	mov    %eax,%esi
454ae6:	89 37                	mov    %esi,(%edi)
454ae8:	85 f6                	test   %esi,%esi
454aea:	5f                   	pop    %edi
454aeb:	5e                   	pop    %esi
454aec:	74 0c                	je     0x454afa
454aee:	5d                   	pop    %ebp
454aef:	c3                   	ret
454af0:	68 0e 00 07 80       	push   $0x8007000e
454af5:	e8 b6 06 00 00       	call   0x4551b0
454afa:	68 0e 00 07 80       	push   $0x8007000e
454aff:	e8 ac 06 00 00       	call   0x4551b0
454b04:	68 57 00 07 80       	push   $0x80070057
454b09:	e8 a2 06 00 00       	call   0x4551b0
454b0e:	cc                   	int3
454b0f:	cc                   	int3
454b10:	55                   	push   %ebp
454b11:	8b ec                	mov    %esp,%ebp
454b13:	8b 45 08             	mov    0x8(%ebp),%eax
454b16:	3b 45 0c             	cmp    0xc(%ebp),%eax
454b19:	74 09                	je     0x454b24
454b1b:	50                   	push   %eax
454b1c:	e8 4f 9b 19 00       	call   0x5ee670
454b21:	83 c4 04             	add    $0x4,%esp
454b24:	5d                   	pop    %ebp
454b25:	c3                   	ret
454b26:	cc                   	int3
454b27:	cc                   	int3
454b28:	cc                   	int3
454b29:	cc                   	int3
454b2a:	cc                   	int3
454b2b:	cc                   	int3
454b2c:	cc                   	int3
454b2d:	cc                   	int3
454b2e:	cc                   	int3
454b2f:	cc                   	int3
454b30:	55                   	push   %ebp
454b31:	8b ec                	mov    %esp,%ebp
454b33:	83 ec 0c             	sub    $0xc,%esp
454b36:	8b 45 08             	mov    0x8(%ebp),%eax
454b39:	53                   	push   %ebx
454b3a:	56                   	push   %esi
454b3b:	57                   	push   %edi
454b3c:	8b f9                	mov    %ecx,%edi
454b3e:	89 45 f8             	mov    %eax,-0x8(%ebp)
454b41:	8b 17                	mov    (%edi),%edx
454b43:	2b c2                	sub    %edx,%eax
454b45:	c1 f8 03             	sar    $0x3,%eax
454b48:	89 45 fc             	mov    %eax,-0x4(%ebp)
454b4b:	8b 47 04             	mov    0x4(%edi),%eax
454b4e:	2b c2                	sub    %edx,%eax
454b50:	c1 f8 03             	sar    $0x3,%eax
454b53:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
454b58:	0f 84 25 01 00 00    	je     0x454c83
454b5e:	8b 4f 08             	mov    0x8(%edi),%ecx
454b61:	8d 58 01             	lea    0x1(%eax),%ebx
454b64:	2b ca                	sub    %edx,%ecx
454b66:	89 5d f4             	mov    %ebx,-0xc(%ebp)
454b69:	c1 f9 03             	sar    $0x3,%ecx
454b6c:	b8 ff ff ff 1f       	mov    $0x1fffffff,%eax
454b71:	8b d1                	mov    %ecx,%edx
454b73:	d1 ea                	shr    $1,%edx
454b75:	2b c2                	sub    %edx,%eax
454b77:	3b c8                	cmp    %eax,%ecx
454b79:	76 04                	jbe    0x454b7f
454b7b:	8b c3                	mov    %ebx,%eax
454b7d:	eb 08                	jmp    0x454b87
454b7f:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
454b82:	3b c3                	cmp    %ebx,%eax
454b84:	0f 42 c3             	cmovb  %ebx,%eax
454b87:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
454b8c:	0f 87 ec 00 00 00    	ja     0x454c7e
454b92:	8d 1c c5 00 00 00 00 	lea    0x0(,%eax,8),%ebx
454b99:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
454b9f:	72 27                	jb     0x454bc8
454ba1:	8d 43 23             	lea    0x23(%ebx),%eax
454ba4:	3b c3                	cmp    %ebx,%eax
454ba6:	0f 86 d2 00 00 00    	jbe    0x454c7e
454bac:	50                   	push   %eax
454bad:	e8 90 c4 18 00       	call   0x5e1042
454bb2:	83 c4 04             	add    $0x4,%esp
454bb5:	85 c0                	test   %eax,%eax
454bb7:	0f 84 cb 00 00 00    	je     0x454c88
454bbd:	8d 70 23             	lea    0x23(%eax),%esi
454bc0:	83 e6 e0             	and    $0xffffffe0,%esi
454bc3:	89 46 fc             	mov    %eax,-0x4(%esi)
454bc6:	eb 13                	jmp    0x454bdb
454bc8:	85 db                	test   %ebx,%ebx
454bca:	74 0d                	je     0x454bd9
454bcc:	53                   	push   %ebx
454bcd:	e8 70 c4 18 00       	call   0x5e1042
454bd2:	83 c4 04             	add    $0x4,%esp
454bd5:	8b f0                	mov    %eax,%esi
454bd7:	eb 02                	jmp    0x454bdb
454bd9:	33 f6                	xor    %esi,%esi
454bdb:	8b 45 fc             	mov    -0x4(%ebp),%eax
454bde:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454be1:	8d 14 c6             	lea    (%esi,%eax,8),%edx
454be4:	89 55 fc             	mov    %edx,-0x4(%ebp)
454be7:	8b 01                	mov    (%ecx),%eax
454be9:	89 02                	mov    %eax,(%edx)
454beb:	8b 41 04             	mov    0x4(%ecx),%eax
454bee:	89 42 04             	mov    %eax,0x4(%edx)
454bf1:	8b 47 04             	mov    0x4(%edi),%eax
454bf4:	8b 55 f8             	mov    -0x8(%ebp),%edx
454bf7:	8b 0f                	mov    (%edi),%ecx
454bf9:	3b d0                	cmp    %eax,%edx
454bfb:	75 0f                	jne    0x454c0c
454bfd:	2b c1                	sub    %ecx,%eax
454bff:	50                   	push   %eax
454c00:	51                   	push   %ecx
454c01:	56                   	push   %esi
454c02:	e8 79 e8 18 00       	call   0x5e3480
454c07:	83 c4 0c             	add    $0xc,%esp
454c0a:	eb 23                	jmp    0x454c2f
454c0c:	2b d1                	sub    %ecx,%edx
454c0e:	52                   	push   %edx
454c0f:	51                   	push   %ecx
454c10:	56                   	push   %esi
454c11:	e8 6a e8 18 00       	call   0x5e3480
454c16:	8b 47 04             	mov    0x4(%edi),%eax
454c19:	8b 4d f8             	mov    -0x8(%ebp),%ecx
454c1c:	2b c1                	sub    %ecx,%eax
454c1e:	50                   	push   %eax
454c1f:	8b 45 fc             	mov    -0x4(%ebp),%eax
454c22:	51                   	push   %ecx
454c23:	83 c0 08             	add    $0x8,%eax
454c26:	50                   	push   %eax
454c27:	e8 54 e8 18 00       	call   0x5e3480
454c2c:	83 c4 18             	add    $0x18,%esp
454c2f:	8b 07                	mov    (%edi),%eax
454c31:	85 c0                	test   %eax,%eax
454c33:	74 2c                	je     0x454c61
454c35:	8b 4f 08             	mov    0x8(%edi),%ecx
454c38:	2b c8                	sub    %eax,%ecx
454c3a:	83 e1 f8             	and    $0xfffffff8,%ecx
454c3d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
454c43:	72 12                	jb     0x454c57
454c45:	8b 50 fc             	mov    -0x4(%eax),%edx
454c48:	83 c1 23             	add    $0x23,%ecx
454c4b:	2b c2                	sub    %edx,%eax
454c4d:	83 c0 fc             	add    $0xfffffffc,%eax
454c50:	83 f8 1f             	cmp    $0x1f,%eax
454c53:	77 33                	ja     0x454c88
454c55:	8b c2                	mov    %edx,%eax
454c57:	51                   	push   %ecx
454c58:	50                   	push   %eax
454c59:	e8 14 c4 18 00       	call   0x5e1072
454c5e:	83 c4 08             	add    $0x8,%esp
454c61:	8b 45 f4             	mov    -0xc(%ebp),%eax
454c64:	89 37                	mov    %esi,(%edi)
454c66:	8d 0c c6             	lea    (%esi,%eax,8),%ecx
454c69:	8b 45 fc             	mov    -0x4(%ebp),%eax
454c6c:	89 4f 04             	mov    %ecx,0x4(%edi)
454c6f:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
454c72:	89 4f 08             	mov    %ecx,0x8(%edi)
454c75:	5f                   	pop    %edi
454c76:	5e                   	pop    %esi
454c77:	5b                   	pop    %ebx
454c78:	8b e5                	mov    %ebp,%esp
454c7a:	5d                   	pop    %ebp
454c7b:	c2 08 00             	ret    $0x8
454c7e:	e8 5d 02 ff ff       	call   0x444ee0
454c83:	e8 b8 03 ff ff       	call   0x445040
454c88:	e8 a2 82 19 00       	call   0x5ecf2f
454c8d:	cc                   	int3
454c8e:	cc                   	int3
454c8f:	cc                   	int3
454c90:	55                   	push   %ebp
454c91:	8b ec                	mov    %esp,%ebp
454c93:	83 ec 14             	sub    $0x14,%esp
454c96:	8b 45 08             	mov    0x8(%ebp),%eax
454c99:	53                   	push   %ebx
454c9a:	56                   	push   %esi
454c9b:	57                   	push   %edi
454c9c:	8b f9                	mov    %ecx,%edi
454c9e:	89 45 f8             	mov    %eax,-0x8(%ebp)
454ca1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454ca4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
454ca7:	8b c8                	mov    %eax,%ecx
454ca9:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454cae:	8b 37                	mov    (%edi),%esi
454cb0:	2b ce                	sub    %esi,%ecx
454cb2:	f7 e9                	imul   %ecx
454cb4:	8b 4f 04             	mov    0x4(%edi),%ecx
454cb7:	c1 fa 02             	sar    $0x2,%edx
454cba:	2b ce                	sub    %esi,%ecx
454cbc:	8b c2                	mov    %edx,%eax
454cbe:	c1 e8 1f             	shr    $0x1f,%eax
454cc1:	03 c2                	add    %edx,%eax
454cc3:	89 45 fc             	mov    %eax,-0x4(%ebp)
454cc6:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454ccb:	f7 e9                	imul   %ecx
454ccd:	c1 fa 02             	sar    $0x2,%edx
454cd0:	8b da                	mov    %edx,%ebx
454cd2:	c1 eb 1f             	shr    $0x1f,%ebx
454cd5:	03 da                	add    %edx,%ebx
454cd7:	81 fb aa aa aa 0a    	cmp    $0xaaaaaaa,%ebx
454cdd:	0f 84 7b 01 00 00    	je     0x454e5e
454ce3:	8b 4f 08             	mov    0x8(%edi),%ecx
454ce6:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
454ceb:	2b ce                	sub    %esi,%ecx
454ced:	43                   	inc    %ebx
454cee:	f7 e9                	imul   %ecx
454cf0:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
454cf5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
454cf8:	c1 fa 02             	sar    $0x2,%edx
454cfb:	8b ca                	mov    %edx,%ecx
454cfd:	c1 e9 1f             	shr    $0x1f,%ecx
454d00:	03 ca                	add    %edx,%ecx
454d02:	8b d1                	mov    %ecx,%edx
454d04:	d1 ea                	shr    $1,%edx