413c41:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
413c45:	66 0f 28 c1          	movapd %xmm1,%xmm0
413c49:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
413c50:	eb 23                	jmp    0x413c75
413c52:	8b 45 ec             	mov    -0x14(%ebp),%eax
413c55:	8b 00                	mov    (%eax),%eax
413c57:	8b 00                	mov    (%eax),%eax
413c59:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
413c5e:	74 0a                	je     0x413c6a
413c60:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
413c65:	74 03                	je     0x413c6a
413c67:	33 c0                	xor    %eax,%eax
413c69:	c3                   	ret
413c6a:	33 c0                	xor    %eax,%eax
413c6c:	40                   	inc    %eax
413c6d:	c3                   	ret
413c6e:	8b 65 e8             	mov    -0x18(%ebp),%esp
413c71:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
413c75:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
413c7c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
413c7f:	e8 09 9a ff ff       	call   0x40d68d
413c84:	c3                   	ret
413c85:	55                   	push   %ebp
413c86:	8b ec                	mov    %esp,%ebp
413c88:	83 ec 18             	sub    $0x18,%esp
413c8b:	33 c0                	xor    %eax,%eax
413c8d:	53                   	push   %ebx
413c8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
413c91:	89 45 f4             	mov    %eax,-0xc(%ebp)
413c94:	89 45 f8             	mov    %eax,-0x8(%ebp)
413c97:	53                   	push   %ebx
413c98:	9c                   	pushf
413c99:	58                   	pop    %eax
413c9a:	8b c8                	mov    %eax,%ecx
413c9c:	35 00 00 20 00       	xor    $0x200000,%eax
413ca1:	50                   	push   %eax
413ca2:	9d                   	popf
413ca3:	9c                   	pushf
413ca4:	5a                   	pop    %edx
413ca5:	2b d1                	sub    %ecx,%edx
413ca7:	74 1f                	je     0x413cc8
413ca9:	51                   	push   %ecx
413caa:	9d                   	popf
413cab:	33 c0                	xor    %eax,%eax
413cad:	0f a2                	cpuid
413caf:	89 45 f4             	mov    %eax,-0xc(%ebp)
413cb2:	89 5d e8             	mov    %ebx,-0x18(%ebp)
413cb5:	89 55 ec             	mov    %edx,-0x14(%ebp)
413cb8:	89 4d f0             	mov    %ecx,-0x10(%ebp)
413cbb:	b8 01 00 00 00       	mov    $0x1,%eax
413cc0:	0f a2                	cpuid
413cc2:	89 55 fc             	mov    %edx,-0x4(%ebp)
413cc5:	89 45 f8             	mov    %eax,-0x8(%ebp)
413cc8:	5b                   	pop    %ebx
413cc9:	f7 45 fc 00 00 00 04 	testl  $0x4000000,-0x4(%ebp)
413cd0:	74 0e                	je     0x413ce0
413cd2:	e8 5e ff ff ff       	call   0x413c35
413cd7:	85 c0                	test   %eax,%eax
413cd9:	74 05                	je     0x413ce0
413cdb:	33 c0                	xor    %eax,%eax
413cdd:	40                   	inc    %eax
413cde:	eb 02                	jmp    0x413ce2
413ce0:	33 c0                	xor    %eax,%eax
413ce2:	5b                   	pop    %ebx
413ce3:	c9                   	leave
413ce4:	c3                   	ret
413ce5:	e8 9b ff ff ff       	call   0x413c85
413cea:	a3 f8 e5 41 00       	mov    %eax,0x41e5f8
413cef:	33 c0                	xor    %eax,%eax
413cf1:	c3                   	ret
413cf2:	55                   	push   %ebp
413cf3:	8b ec                	mov    %esp,%ebp
413cf5:	51                   	push   %ecx
413cf6:	51                   	push   %ecx
413cf7:	8b 45 0c             	mov    0xc(%ebp),%eax
413cfa:	56                   	push   %esi
413cfb:	8b 75 08             	mov    0x8(%ebp),%esi
413cfe:	89 45 f8             	mov    %eax,-0x8(%ebp)
413d01:	8b 45 10             	mov    0x10(%ebp),%eax
413d04:	57                   	push   %edi
413d05:	56                   	push   %esi
413d06:	89 45 fc             	mov    %eax,-0x4(%ebp)
413d09:	e8 73 10 00 00       	call   0x414d81
413d0e:	83 cf ff             	or     $0xffffffff,%edi
413d11:	3b c7                	cmp    %edi,%eax
413d13:	59                   	pop    %ecx
413d14:	75 11                	jne    0x413d27
413d16:	e8 df 56 ff ff       	call   0x4093fa
413d1b:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413d21:	8b c7                	mov    %edi,%eax
413d23:	8b d7                	mov    %edi,%edx
413d25:	eb 4a                	jmp    0x413d71
413d27:	ff 75 14             	push   0x14(%ebp)
413d2a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
413d2d:	51                   	push   %ecx
413d2e:	ff 75 f8             	push   -0x8(%ebp)
413d31:	50                   	push   %eax
413d32:	ff 15 58 71 41 00    	call   *0x417158
413d38:	3b c7                	cmp    %edi,%eax
413d3a:	89 45 f8             	mov    %eax,-0x8(%ebp)
413d3d:	75 13                	jne    0x413d52
413d3f:	ff 15 b0 70 41 00    	call   *0x4170b0
413d45:	85 c0                	test   %eax,%eax
413d47:	74 09                	je     0x413d52
413d49:	50                   	push   %eax
413d4a:	e8 d1 56 ff ff       	call   0x409420
413d4f:	59                   	pop    %ecx
413d50:	eb cf                	jmp    0x413d21
413d52:	8b c6                	mov    %esi,%eax
413d54:	83 e6 1f             	and    $0x1f,%esi
413d57:	6b f6 28             	imul   $0x28,%esi,%esi
413d5a:	c1 f8 05             	sar    $0x5,%eax
413d5d:	8b 04 85 c0 e4 41 00 	mov    0x41e4c0(,%eax,4),%eax
413d64:	8d 44 30 04          	lea    0x4(%eax,%esi,1),%eax
413d68:	80 20 fd             	andb   $0xfd,(%eax)
413d6b:	8b 45 f8             	mov    -0x8(%ebp),%eax
413d6e:	8b 55 fc             	mov    -0x4(%ebp),%edx
413d71:	5f                   	pop    %edi
413d72:	5e                   	pop    %esi
413d73:	c9                   	leave
413d74:	c3                   	ret
413d75:	6a 14                	push   $0x14
413d77:	68 b8 ae 41 00       	push   $0x41aeb8
413d7c:	e8 c7 98 ff ff       	call   0x40d648
413d81:	83 ce ff             	or     $0xffffffff,%esi
413d84:	89 75 dc             	mov    %esi,-0x24(%ebp)
413d87:	89 75 e0             	mov    %esi,-0x20(%ebp)
413d8a:	8b 45 08             	mov    0x8(%ebp),%eax
413d8d:	83 f8 fe             	cmp    $0xfffffffe,%eax
413d90:	75 1c                	jne    0x413dae
413d92:	e8 76 56 ff ff       	call   0x40940d
413d97:	83 20 00             	andl   $0x0,(%eax)
413d9a:	e8 5b 56 ff ff       	call   0x4093fa
413d9f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413da5:	8b c6                	mov    %esi,%eax
413da7:	8b d6                	mov    %esi,%edx
413da9:	e9 d0 00 00 00       	jmp    0x413e7e
413dae:	33 ff                	xor    %edi,%edi
413db0:	3b c7                	cmp    %edi,%eax
413db2:	7c 08                	jl     0x413dbc
413db4:	3b 05 b4 e4 41 00    	cmp    0x41e4b4,%eax
413dba:	72 21                	jb     0x413ddd
413dbc:	e8 4c 56 ff ff       	call   0x40940d
413dc1:	89 38                	mov    %edi,(%eax)
413dc3:	e8 32 56 ff ff       	call   0x4093fa
413dc8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413dce:	57                   	push   %edi
413dcf:	57                   	push   %edi
413dd0:	57                   	push   %edi
413dd1:	57                   	push   %edi
413dd2:	57                   	push   %edi
413dd3:	e8 78 38 ff ff       	call   0x407650
413dd8:	83 c4 14             	add    $0x14,%esp
413ddb:	eb c8                	jmp    0x413da5
413ddd:	8b c8                	mov    %eax,%ecx
413ddf:	c1 f9 05             	sar    $0x5,%ecx
413de2:	8d 1c 8d c0 e4 41 00 	lea    0x41e4c0(,%ecx,4),%ebx
413de9:	8b f0                	mov    %eax,%esi
413deb:	83 e6 1f             	and    $0x1f,%esi
413dee:	6b f6 28             	imul   $0x28,%esi,%esi
413df1:	8b 0b                	mov    (%ebx),%ecx
413df3:	0f b6 4c 31 04       	movzbl 0x4(%ecx,%esi,1),%ecx
413df8:	83 e1 01             	and    $0x1,%ecx
413dfb:	75 26                	jne    0x413e23
413dfd:	e8 0b 56 ff ff       	call   0x40940d
413e02:	89 38                	mov    %edi,(%eax)
413e04:	e8 f1 55 ff ff       	call   0x4093fa
413e09:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413e0f:	57                   	push   %edi
413e10:	57                   	push   %edi
413e11:	57                   	push   %edi
413e12:	57                   	push   %edi
413e13:	57                   	push   %edi
413e14:	e8 37 38 ff ff       	call   0x407650
413e19:	83 c4 14             	add    $0x14,%esp
413e1c:	83 ca ff             	or     $0xffffffff,%edx
413e1f:	8b c2                	mov    %edx,%eax
413e21:	eb 5b                	jmp    0x413e7e
413e23:	50                   	push   %eax
413e24:	e8 c9 0f 00 00       	call   0x414df2
413e29:	59                   	pop    %ecx
413e2a:	89 7d fc             	mov    %edi,-0x4(%ebp)
413e2d:	8b 03                	mov    (%ebx),%eax
413e2f:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
413e34:	74 1c                	je     0x413e52
413e36:	ff 75 14             	push   0x14(%ebp)
413e39:	ff 75 10             	push   0x10(%ebp)
413e3c:	ff 75 0c             	push   0xc(%ebp)
413e3f:	ff 75 08             	push   0x8(%ebp)
413e42:	e8 ab fe ff ff       	call   0x413cf2
413e47:	83 c4 10             	add    $0x10,%esp
413e4a:	89 45 dc             	mov    %eax,-0x24(%ebp)
413e4d:	89 55 e0             	mov    %edx,-0x20(%ebp)
413e50:	eb 1a                	jmp    0x413e6c
413e52:	e8 a3 55 ff ff       	call   0x4093fa
413e57:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413e5d:	e8 ab 55 ff ff       	call   0x40940d
413e62:	89 38                	mov    %edi,(%eax)
413e64:	83 4d dc ff          	orl    $0xffffffff,-0x24(%ebp)
413e68:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
413e6c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
413e73:	e8 0c 00 00 00       	call   0x413e84
413e78:	8b 45 dc             	mov    -0x24(%ebp),%eax
413e7b:	8b 55 e0             	mov    -0x20(%ebp),%edx
413e7e:	e8 0a 98 ff ff       	call   0x40d68d
413e83:	c3                   	ret
413e84:	ff 75 08             	push   0x8(%ebp)
413e87:	e8 06 10 00 00       	call   0x414e92
413e8c:	59                   	pop    %ecx
413e8d:	c3                   	ret
413e8e:	8b 44 24 04          	mov    0x4(%esp),%eax
413e92:	83 f8 fe             	cmp    $0xfffffffe,%eax
413e95:	75 0e                	jne    0x413ea5
413e97:	e8 5e 55 ff ff       	call   0x4093fa
413e9c:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413ea2:	33 c0                	xor    %eax,%eax
413ea4:	c3                   	ret
413ea5:	56                   	push   %esi
413ea6:	33 f6                	xor    %esi,%esi
413ea8:	3b c6                	cmp    %esi,%eax
413eaa:	7c 08                	jl     0x413eb4
413eac:	3b 05 b4 e4 41 00    	cmp    0x41e4b4,%eax
413eb2:	72 1c                	jb     0x413ed0
413eb4:	e8 41 55 ff ff       	call   0x4093fa
413eb9:	56                   	push   %esi
413eba:	56                   	push   %esi
413ebb:	56                   	push   %esi
413ebc:	56                   	push   %esi
413ebd:	56                   	push   %esi
413ebe:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
413ec4:	e8 87 37 ff ff       	call   0x407650
413ec9:	83 c4 14             	add    $0x14,%esp
413ecc:	33 c0                	xor    %eax,%eax
413ece:	5e                   	pop    %esi
413ecf:	c3                   	ret
413ed0:	8b c8                	mov    %eax,%ecx
413ed2:	83 e0 1f             	and    $0x1f,%eax
413ed5:	6b c0 28             	imul   $0x28,%eax,%eax
413ed8:	c1 f9 05             	sar    $0x5,%ecx
413edb:	8b 0c 8d c0 e4 41 00 	mov    0x41e4c0(,%ecx,4),%ecx
413ee2:	0f b6 44 01 04       	movzbl 0x4(%ecx,%eax,1),%eax
413ee7:	83 e0 40             	and    $0x40,%eax
413eea:	5e                   	pop    %esi
413eeb:	c3                   	ret
413eec:	56                   	push   %esi
413eed:	57                   	push   %edi
413eee:	33 ff                	xor    %edi,%edi
413ef0:	8d b7 30 d3 41 00    	lea    0x41d330(%edi),%esi
413ef6:	ff 36                	push   (%esi)
413ef8:	e8 d9 83 ff ff       	call   0x40c2d6
413efd:	83 c7 04             	add    $0x4,%edi
413f00:	83 ff 28             	cmp    $0x28,%edi
413f03:	59                   	pop    %ecx
413f04:	89 06                	mov    %eax,(%esi)
413f06:	72 e8                	jb     0x413ef0
413f08:	5f                   	pop    %edi
413f09:	5e                   	pop    %esi
413f0a:	c3                   	ret
413f0b:	a1 20 c5 41 00       	mov    0x41c520,%eax
413f10:	83 c8 01             	or     $0x1,%eax
413f13:	33 c9                	xor    %ecx,%ecx
413f15:	39 05 c8 e3 41 00    	cmp    %eax,0x41e3c8
413f1b:	0f 94 c1             	sete   %cl
413f1e:	8b c1                	mov    %ecx,%eax
413f20:	c3                   	ret
413f21:	cc                   	int3
413f22:	cc                   	int3
413f23:	cc                   	int3
413f24:	55                   	push   %ebp
413f25:	8b ec                	mov    %esp,%ebp
413f27:	53                   	push   %ebx
413f28:	56                   	push   %esi
413f29:	57                   	push   %edi
413f2a:	55                   	push   %ebp
413f2b:	6a 00                	push   $0x0
413f2d:	6a 00                	push   $0x0
413f2f:	68 3c 3f 41 00       	push   $0x413f3c
413f34:	ff 75 08             	push   0x8(%ebp)
413f37:	e8 06 1a 00 00       	call   0x415942
413f3c:	5d                   	pop    %ebp
413f3d:	5f                   	pop    %edi
413f3e:	5e                   	pop    %esi
413f3f:	5b                   	pop    %ebx
413f40:	8b e5                	mov    %ebp,%esp
413f42:	5d                   	pop    %ebp
413f43:	c3                   	ret
413f44:	8b 4c 24 04          	mov    0x4(%esp),%ecx
413f48:	f7 41 04 06 00 00 00 	testl  $0x6,0x4(%ecx)
413f4f:	b8 01 00 00 00       	mov    $0x1,%eax
413f54:	74 32                	je     0x413f88
413f56:	8b 44 24 14          	mov    0x14(%esp),%eax
413f5a:	8b 48 fc             	mov    -0x4(%eax),%ecx
413f5d:	33 c8                	xor    %eax,%ecx
413f5f:	e8 d1 1f ff ff       	call   0x405f35
413f64:	55                   	push   %ebp
413f65:	8b 68 10             	mov    0x10(%eax),%ebp
413f68:	8b 50 28             	mov    0x28(%eax),%edx
413f6b:	52                   	push   %edx
413f6c:	8b 50 24             	mov    0x24(%eax),%edx
413f6f:	52                   	push   %edx
413f70:	e8 14 00 00 00       	call   0x413f89
413f75:	83 c4 08             	add    $0x8,%esp
413f78:	5d                   	pop    %ebp
413f79:	8b 44 24 08          	mov    0x8(%esp),%eax
413f7d:	8b 54 24 10          	mov    0x10(%esp),%edx
413f81:	89 02                	mov    %eax,(%edx)
413f83:	b8 03 00 00 00       	mov    $0x3,%eax
413f88:	c3                   	ret
413f89:	53                   	push   %ebx
413f8a:	56                   	push   %esi
413f8b:	57                   	push   %edi
413f8c:	8b 44 24 10          	mov    0x10(%esp),%eax
413f90:	55                   	push   %ebp
413f91:	50                   	push   %eax
413f92:	6a fe                	push   $0xfffffffe
413f94:	68 44 3f 41 00       	push   $0x413f44
413f99:	64 ff 35 00 00 00 00 	push   %fs:0x0
413fa0:	a1 20 c5 41 00       	mov    0x41c520,%eax
413fa5:	33 c4                	xor    %esp,%eax
413fa7:	50                   	push   %eax
413fa8:	8d 44 24 04          	lea    0x4(%esp),%eax
413fac:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
413fb2:	8b 44 24 28          	mov    0x28(%esp),%eax
413fb6:	8b 58 08             	mov    0x8(%eax),%ebx
413fb9:	8b 70 0c             	mov    0xc(%eax),%esi
413fbc:	83 fe ff             	cmp    $0xffffffff,%esi
413fbf:	74 3a                	je     0x413ffb
413fc1:	83 7c 24 2c ff       	cmpl   $0xffffffff,0x2c(%esp)
413fc6:	74 06                	je     0x413fce
413fc8:	3b 74 24 2c          	cmp    0x2c(%esp),%esi
413fcc:	76 2d                	jbe    0x413ffb
413fce:	8d 34 76             	lea    (%esi,%esi,2),%esi
413fd1:	8b 0c b3             	mov    (%ebx,%esi,4),%ecx
413fd4:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
413fd8:	89 48 0c             	mov    %ecx,0xc(%eax)
413fdb:	83 7c b3 04 00       	cmpl   $0x0,0x4(%ebx,%esi,4)
413fe0:	75 17                	jne    0x413ff9
413fe2:	68 01 01 00 00       	push   $0x101
413fe7:	8b 44 b3 08          	mov    0x8(%ebx,%esi,4),%eax
413feb:	e8 49 00 00 00       	call   0x414039
413ff0:	8b 44 b3 08          	mov    0x8(%ebx,%esi,4),%eax
413ff4:	e8 5f 00 00 00       	call   0x414058
413ff9:	eb b7                	jmp    0x413fb2
413ffb:	8b 4c 24 04          	mov    0x4(%esp),%ecx
413fff:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
414006:	83 c4 18             	add    $0x18,%esp
414009:	5f                   	pop    %edi
41400a:	5e                   	pop    %esi
41400b:	5b                   	pop    %ebx
41400c:	c3                   	ret