41f69a:	83 f8 fe             	cmp    $0xfffffffe,%eax
41f69d:	74 0d                	je     0x41f6ac
41f69f:	8b 4e 04             	mov    0x4(%esi),%ecx
41f6a2:	03 cf                	add    %edi,%ecx
41f6a4:	33 0c 38             	xor    (%eax,%edi,1),%ecx
41f6a7:	e8 22 eb ff ff       	call   0x41e1ce
41f6ac:	8b 4e 0c             	mov    0xc(%esi),%ecx
41f6af:	8b 56 08             	mov    0x8(%esi),%edx
41f6b2:	03 cf                	add    %edi,%ecx
41f6b4:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
41f6b7:	e8 12 eb ff ff       	call   0x41e1ce
41f6bc:	8b 45 f4             	mov    -0xc(%ebp),%eax
41f6bf:	5f                   	pop    %edi
41f6c0:	5e                   	pop    %esi
41f6c1:	5b                   	pop    %ebx
41f6c2:	8b e5                	mov    %ebp,%esp
41f6c4:	5d                   	pop    %ebp
41f6c5:	c3                   	ret
41f6c6:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
41f6cd:	eb c9                	jmp    0x41f698
41f6cf:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f6d2:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
41f6d8:	75 29                	jne    0x41f703
41f6da:	83 3d e8 b1 42 00 00 	cmpl   $0x0,0x42b1e8
41f6e1:	74 20                	je     0x41f703
41f6e3:	68 e8 b1 42 00       	push   $0x42b1e8
41f6e8:	e8 b3 47 00 00       	call   0x423ea0
41f6ed:	83 c4 04             	add    $0x4,%esp
41f6f0:	85 c0                	test   %eax,%eax
41f6f2:	74 0f                	je     0x41f703
41f6f4:	8b 55 08             	mov    0x8(%ebp),%edx
41f6f7:	6a 01                	push   $0x1
41f6f9:	52                   	push   %edx
41f6fa:	ff 15 e8 b1 42 00    	call   *0x42b1e8
41f700:	83 c4 08             	add    $0x8,%esp
41f703:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41f706:	e8 47 1b 00 00       	call   0x421252
41f70b:	8b 45 0c             	mov    0xc(%ebp),%eax
41f70e:	39 58 0c             	cmp    %ebx,0xc(%eax)
41f711:	74 12                	je     0x41f725
41f713:	68 98 f2 42 00       	push   $0x42f298
41f718:	57                   	push   %edi
41f719:	8b d3                	mov    %ebx,%edx
41f71b:	8b c8                	mov    %eax,%ecx
41f71d:	e8 4a 1b 00 00       	call   0x42126c
41f722:	8b 45 0c             	mov    0xc(%ebp),%eax
41f725:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41f728:	89 48 0c             	mov    %ecx,0xc(%eax)
41f72b:	8b 06                	mov    (%esi),%eax
41f72d:	83 f8 fe             	cmp    $0xfffffffe,%eax
41f730:	74 0d                	je     0x41f73f
41f732:	8b 4e 04             	mov    0x4(%esi),%ecx
41f735:	03 cf                	add    %edi,%ecx
41f737:	33 0c 38             	xor    (%eax,%edi,1),%ecx
41f73a:	e8 8f ea ff ff       	call   0x41e1ce
41f73f:	8b 4e 0c             	mov    0xc(%esi),%ecx
41f742:	8b 56 08             	mov    0x8(%esi),%edx
41f745:	03 cf                	add    %edi,%ecx
41f747:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
41f74a:	e8 7f ea ff ff       	call   0x41e1ce
41f74f:	8b 45 f0             	mov    -0x10(%ebp),%eax
41f752:	8b 48 08             	mov    0x8(%eax),%ecx
41f755:	8b d7                	mov    %edi,%edx
41f757:	e8 dd 1a 00 00       	call   0x421239
41f75c:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
41f761:	39 53 0c             	cmp    %edx,0xc(%ebx)
41f764:	0f 84 52 ff ff ff    	je     0x41f6bc
41f76a:	68 98 f2 42 00       	push   $0x42f298
41f76f:	57                   	push   %edi
41f770:	8b cb                	mov    %ebx,%ecx
41f772:	e8 f5 1a 00 00       	call   0x42126c
41f777:	e9 1c ff ff ff       	jmp    0x41f698
41f77c:	8b ff                	mov    %edi,%edi
41f77e:	55                   	push   %ebp
41f77f:	8b ec                	mov    %esp,%ebp
41f781:	8b 45 08             	mov    0x8(%ebp),%eax
41f784:	a3 64 ee 44 00       	mov    %eax,0x44ee64
41f789:	5d                   	pop    %ebp
41f78a:	c3                   	ret
41f78b:	8b ff                	mov    %edi,%edi
41f78d:	55                   	push   %ebp
41f78e:	8b ec                	mov    %esp,%ebp
41f790:	ff 35 64 ee 44 00    	push   0x44ee64
41f796:	e8 bd ea ff ff       	call   0x41e258
41f79b:	59                   	pop    %ecx
41f79c:	85 c0                	test   %eax,%eax
41f79e:	74 0f                	je     0x41f7af
41f7a0:	ff 75 08             	push   0x8(%ebp)
41f7a3:	ff d0                	call   *%eax
41f7a5:	59                   	pop    %ecx
41f7a6:	85 c0                	test   %eax,%eax
41f7a8:	74 05                	je     0x41f7af
41f7aa:	33 c0                	xor    %eax,%eax
41f7ac:	40                   	inc    %eax
41f7ad:	5d                   	pop    %ebp
41f7ae:	c3                   	ret
41f7af:	33 c0                	xor    %eax,%eax
41f7b1:	5d                   	pop    %ebp
41f7b2:	c3                   	ret
41f7b3:	55                   	push   %ebp
41f7b4:	8b ec                	mov    %esp,%ebp
41f7b6:	83 ec 04             	sub    $0x4,%esp
41f7b9:	89 7d fc             	mov    %edi,-0x4(%ebp)
41f7bc:	8b 7d 08             	mov    0x8(%ebp),%edi
41f7bf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41f7c2:	c1 e9 07             	shr    $0x7,%ecx
41f7c5:	66 0f ef c0          	pxor   %xmm0,%xmm0
41f7c9:	eb 08                	jmp    0x41f7d3
41f7cb:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41f7d2:	90                   	nop
41f7d3:	66 0f 7f 07          	movdqa %xmm0,(%edi)
41f7d7:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
41f7dc:	66 0f 7f 47 20       	movdqa %xmm0,0x20(%edi)
41f7e1:	66 0f 7f 47 30       	movdqa %xmm0,0x30(%edi)
41f7e6:	66 0f 7f 47 40       	movdqa %xmm0,0x40(%edi)
41f7eb:	66 0f 7f 47 50       	movdqa %xmm0,0x50(%edi)
41f7f0:	66 0f 7f 47 60       	movdqa %xmm0,0x60(%edi)
41f7f5:	66 0f 7f 47 70       	movdqa %xmm0,0x70(%edi)
41f7fa:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
41f800:	49                   	dec    %ecx
41f801:	75 d0                	jne    0x41f7d3
41f803:	8b 7d fc             	mov    -0x4(%ebp),%edi
41f806:	8b e5                	mov    %ebp,%esp
41f808:	5d                   	pop    %ebp
41f809:	c3                   	ret
41f80a:	55                   	push   %ebp
41f80b:	8b ec                	mov    %esp,%ebp
41f80d:	83 ec 10             	sub    $0x10,%esp
41f810:	89 7d fc             	mov    %edi,-0x4(%ebp)
41f813:	8b 45 08             	mov    0x8(%ebp),%eax
41f816:	99                   	cltd
41f817:	8b f8                	mov    %eax,%edi
41f819:	33 fa                	xor    %edx,%edi
41f81b:	2b fa                	sub    %edx,%edi
41f81d:	83 e7 0f             	and    $0xf,%edi
41f820:	33 fa                	xor    %edx,%edi
41f822:	2b fa                	sub    %edx,%edi
41f824:	85 ff                	test   %edi,%edi
41f826:	75 3c                	jne    0x41f864
41f828:	8b 4d 10             	mov    0x10(%ebp),%ecx
41f82b:	8b d1                	mov    %ecx,%edx
41f82d:	83 e2 7f             	and    $0x7f,%edx
41f830:	89 55 f4             	mov    %edx,-0xc(%ebp)
41f833:	3b ca                	cmp    %edx,%ecx
41f835:	74 12                	je     0x41f849
41f837:	2b ca                	sub    %edx,%ecx
41f839:	51                   	push   %ecx
41f83a:	50                   	push   %eax
41f83b:	e8 73 ff ff ff       	call   0x41f7b3
41f840:	83 c4 08             	add    $0x8,%esp
41f843:	8b 45 08             	mov    0x8(%ebp),%eax
41f846:	8b 55 f4             	mov    -0xc(%ebp),%edx
41f849:	85 d2                	test   %edx,%edx
41f84b:	74 45                	je     0x41f892
41f84d:	03 45 10             	add    0x10(%ebp),%eax
41f850:	2b c2                	sub    %edx,%eax
41f852:	89 45 f8             	mov    %eax,-0x8(%ebp)
41f855:	33 c0                	xor    %eax,%eax
41f857:	8b 7d f8             	mov    -0x8(%ebp),%edi
41f85a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41f85d:	f3 aa                	rep stos %al,%es:(%edi)
41f85f:	8b 45 08             	mov    0x8(%ebp),%eax
41f862:	eb 2e                	jmp    0x41f892
41f864:	f7 df                	neg    %edi
41f866:	83 c7 10             	add    $0x10,%edi
41f869:	89 7d f0             	mov    %edi,-0x10(%ebp)
41f86c:	33 c0                	xor    %eax,%eax
41f86e:	8b 7d 08             	mov    0x8(%ebp),%edi
41f871:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f874:	f3 aa                	rep stos %al,%es:(%edi)
41f876:	8b 45 f0             	mov    -0x10(%ebp),%eax
41f879:	8b 4d 08             	mov    0x8(%ebp),%ecx
41f87c:	8b 55 10             	mov    0x10(%ebp),%edx
41f87f:	03 c8                	add    %eax,%ecx
41f881:	2b d0                	sub    %eax,%edx
41f883:	52                   	push   %edx
41f884:	6a 00                	push   $0x0
41f886:	51                   	push   %ecx
41f887:	e8 7e ff ff ff       	call   0x41f80a
41f88c:	83 c4 0c             	add    $0xc,%esp
41f88f:	8b 45 08             	mov    0x8(%ebp),%eax
41f892:	8b 7d fc             	mov    -0x4(%ebp),%edi
41f895:	8b e5                	mov    %ebp,%esp
41f897:	5d                   	pop    %ebp
41f898:	c3                   	ret
41f899:	6a 0c                	push   $0xc
41f89b:	68 10 d9 42 00       	push   $0x42d910
41f8a0:	e8 e7 fc ff ff       	call   0x41f58c
41f8a5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41f8a9:	66 0f 28 c1          	movapd %xmm1,%xmm0
41f8ad:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
41f8b4:	eb 23                	jmp    0x41f8d9
41f8b6:	8b 45 ec             	mov    -0x14(%ebp),%eax
41f8b9:	8b 00                	mov    (%eax),%eax
41f8bb:	8b 00                	mov    (%eax),%eax
41f8bd:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
41f8c2:	74 0a                	je     0x41f8ce
41f8c4:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
41f8c9:	74 03                	je     0x41f8ce
41f8cb:	33 c0                	xor    %eax,%eax
41f8cd:	c3                   	ret
41f8ce:	33 c0                	xor    %eax,%eax
41f8d0:	40                   	inc    %eax
41f8d1:	c3                   	ret
41f8d2:	8b 65 e8             	mov    -0x18(%ebp),%esp
41f8d5:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41f8d9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41f8e0:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41f8e3:	e8 e9 fc ff ff       	call   0x41f5d1
41f8e8:	c3                   	ret
41f8e9:	8b ff                	mov    %edi,%edi
41f8eb:	55                   	push   %ebp
41f8ec:	8b ec                	mov    %esp,%ebp
41f8ee:	83 ec 18             	sub    $0x18,%esp
41f8f1:	33 c0                	xor    %eax,%eax
41f8f3:	53                   	push   %ebx
41f8f4:	89 45 fc             	mov    %eax,-0x4(%ebp)
41f8f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
41f8fa:	89 45 f8             	mov    %eax,-0x8(%ebp)
41f8fd:	53                   	push   %ebx
41f8fe:	9c                   	pushf
41f8ff:	58                   	pop    %eax
41f900:	8b c8                	mov    %eax,%ecx
41f902:	35 00 00 20 00       	xor    $0x200000,%eax
41f907:	50                   	push   %eax
41f908:	9d                   	popf
41f909:	9c                   	pushf
41f90a:	5a                   	pop    %edx
41f90b:	2b d1                	sub    %ecx,%edx
41f90d:	74 1f                	je     0x41f92e
41f90f:	51                   	push   %ecx
41f910:	9d                   	popf
41f911:	33 c0                	xor    %eax,%eax
41f913:	0f a2                	cpuid
41f915:	89 45 f4             	mov    %eax,-0xc(%ebp)
41f918:	89 5d e8             	mov    %ebx,-0x18(%ebp)
41f91b:	89 55 ec             	mov    %edx,-0x14(%ebp)
41f91e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
41f921:	b8 01 00 00 00       	mov    $0x1,%eax
41f926:	0f a2                	cpuid
41f928:	89 55 fc             	mov    %edx,-0x4(%ebp)
41f92b:	89 45 f8             	mov    %eax,-0x8(%ebp)
41f92e:	5b                   	pop    %ebx
41f92f:	f7 45 fc 00 00 00 04 	testl  $0x4000000,-0x4(%ebp)
41f936:	74 0e                	je     0x41f946
41f938:	e8 5c ff ff ff       	call   0x41f899
41f93d:	85 c0                	test   %eax,%eax
41f93f:	74 05                	je     0x41f946
41f941:	33 c0                	xor    %eax,%eax
41f943:	40                   	inc    %eax
41f944:	eb 02                	jmp    0x41f948
41f946:	33 c0                	xor    %eax,%eax
41f948:	5b                   	pop    %ebx
41f949:	c9                   	leave
41f94a:	c3                   	ret
41f94b:	e8 99 ff ff ff       	call   0x41f8e9
41f950:	a3 d8 08 45 00       	mov    %eax,0x4508d8
41f955:	33 c0                	xor    %eax,%eax
41f957:	c3                   	ret
41f958:	8b ff                	mov    %edi,%edi
41f95a:	55                   	push   %ebp
41f95b:	8b ec                	mov    %esp,%ebp
41f95d:	51                   	push   %ecx
41f95e:	56                   	push   %esi
41f95f:	8b 75 0c             	mov    0xc(%ebp),%esi
41f962:	56                   	push   %esi
41f963:	e8 4f 50 00 00       	call   0x4249b7
41f968:	89 45 0c             	mov    %eax,0xc(%ebp)
41f96b:	8b 46 0c             	mov    0xc(%esi),%eax
41f96e:	59                   	pop    %ecx
41f96f:	a8 82                	test   $0x82,%al
41f971:	75 17                	jne    0x41f98a
41f973:	e8 26 ef ff ff       	call   0x41e89e
41f978:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41f97e:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
41f982:	83 c8 ff             	or     $0xffffffff,%eax
41f985:	e9 2f 01 00 00       	jmp    0x41fab9
41f98a:	a8 40                	test   $0x40,%al
41f98c:	74 0d                	je     0x41f99b
41f98e:	e8 0b ef ff ff       	call   0x41e89e
41f993:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
41f999:	eb e3                	jmp    0x41f97e
41f99b:	53                   	push   %ebx
41f99c:	33 db                	xor    %ebx,%ebx
41f99e:	a8 01                	test   $0x1,%al
41f9a0:	74 16                	je     0x41f9b8
41f9a2:	89 5e 04             	mov    %ebx,0x4(%esi)
41f9a5:	a8 10                	test   $0x10,%al
41f9a7:	0f 84 87 00 00 00    	je     0x41fa34
41f9ad:	8b 4e 08             	mov    0x8(%esi),%ecx
41f9b0:	83 e0 fe             	and    $0xfffffffe,%eax
41f9b3:	89 0e                	mov    %ecx,(%esi)
41f9b5:	89 46 0c             	mov    %eax,0xc(%esi)
41f9b8:	8b 46 0c             	mov    0xc(%esi),%eax
41f9bb:	83 e0 ef             	and    $0xffffffef,%eax
41f9be:	83 c8 02             	or     $0x2,%eax
41f9c1:	89 46 0c             	mov    %eax,0xc(%esi)
41f9c4:	89 5e 04             	mov    %ebx,0x4(%esi)
41f9c7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41f9ca:	a9 0c 01 00 00       	test   $0x10c,%eax
41f9cf:	75 2c                	jne    0x41f9fd
41f9d1:	e8 a2 15 00 00       	call   0x420f78
41f9d6:	83 c0 20             	add    $0x20,%eax
41f9d9:	3b f0                	cmp    %eax,%esi
41f9db:	74 0c                	je     0x41f9e9
41f9dd:	e8 96 15 00 00       	call   0x420f78
41f9e2:	83 c0 40             	add    $0x40,%eax
41f9e5:	3b f0                	cmp    %eax,%esi
41f9e7:	75 0d                	jne    0x41f9f6
41f9e9:	ff 75 0c             	push   0xc(%ebp)
41f9ec:	e8 62 4f 00 00       	call   0x424953
41f9f1:	59                   	pop    %ecx
41f9f2:	85 c0                	test   %eax,%eax
41f9f4:	75 07                	jne    0x41f9fd
41f9f6:	56                   	push   %esi
41f9f7:	e8 0e 4f 00 00       	call   0x42490a
41f9fc:	59                   	pop    %ecx
41f9fd:	f7 46 0c 08 01 00 00 	testl  $0x108,0xc(%esi)
41fa04:	57                   	push   %edi
41fa05:	0f 84 80 00 00 00    	je     0x41fa8b
41fa0b:	8b 46 08             	mov    0x8(%esi),%eax
41fa0e:	8b 3e                	mov    (%esi),%edi
41fa10:	8d 48 01             	lea    0x1(%eax),%ecx
41fa13:	89 0e                	mov    %ecx,(%esi)
41fa15:	8b 4e 18             	mov    0x18(%esi),%ecx
41fa18:	2b f8                	sub    %eax,%edi
41fa1a:	49                   	dec    %ecx
41fa1b:	3b fb                	cmp    %ebx,%edi
41fa1d:	89 4e 04             	mov    %ecx,0x4(%esi)
41fa20:	7e 1d                	jle    0x41fa3f
41fa22:	57                   	push   %edi
41fa23:	50                   	push   %eax
41fa24:	ff 75 0c             	push   0xc(%ebp)
41fa27:	e8 02 4e 00 00       	call   0x42482e
41fa2c:	83 c4 0c             	add    $0xc,%esp
41fa2f:	89 45 fc             	mov    %eax,-0x4(%ebp)
41fa32:	eb 4d                	jmp    0x41fa81
41fa34:	83 c8 20             	or     $0x20,%eax
41fa37:	89 46 0c             	mov    %eax,0xc(%esi)
41fa3a:	83 c8 ff             	or     $0xffffffff,%eax
41fa3d:	eb 79                	jmp    0x41fab8
41fa3f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41fa42:	83 f9 ff             	cmp    $0xffffffff,%ecx
41fa45:	74 1b                	je     0x41fa62
41fa47:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41fa4a:	74 16                	je     0x41fa62
41fa4c:	8b c1                	mov    %ecx,%eax
41fa4e:	83 e0 1f             	and    $0x1f,%eax
41fa51:	8b d1                	mov    %ecx,%edx
41fa53:	c1 fa 05             	sar    $0x5,%edx