405721:	f7 c7 03 00 00 00    	test   $0x3,%edi
405727:	74 14                	je     0x40573d
405729:	8b d7                	mov    %edi,%edx
40572b:	83 e2 03             	and    $0x3,%edx
40572e:	2b ca                	sub    %edx,%ecx
405730:	8a 46 ff             	mov    -0x1(%esi),%al
405733:	88 47 ff             	mov    %al,-0x1(%edi)
405736:	4e                   	dec    %esi
405737:	4f                   	dec    %edi
405738:	83 ea 01             	sub    $0x1,%edx
40573b:	75 f3                	jne    0x405730
40573d:	83 f9 20             	cmp    $0x20,%ecx
405740:	0f 82 1e 01 00 00    	jb     0x405864
405746:	8b d1                	mov    %ecx,%edx
405748:	c1 e9 02             	shr    $0x2,%ecx
40574b:	83 e2 03             	and    $0x3,%edx
40574e:	83 ee 04             	sub    $0x4,%esi
405751:	83 ef 04             	sub    $0x4,%edi
405754:	fd                   	std
405755:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405757:	fc                   	cld
405758:	ff 24 95 60 57 40 00 	jmp    *0x405760(,%edx,4)
40575f:	90                   	nop
405760:	70 57                	jo     0x4057b9
405762:	40                   	inc    %eax
405763:	00 78 57             	add    %bh,0x57(%eax)
405766:	40                   	inc    %eax
405767:	00 88 57 40 00 9c    	add    %cl,-0x63ffbfa9(%eax)
40576d:	57                   	push   %edi
40576e:	40                   	inc    %eax
40576f:	00 8b 44 24 0c 5e    	add    %cl,0x5e0c2444(%ebx)
405775:	5f                   	pop    %edi
405776:	c3                   	ret
405777:	90                   	nop
405778:	8a 46 03             	mov    0x3(%esi),%al
40577b:	88 47 03             	mov    %al,0x3(%edi)
40577e:	8b 44 24 0c          	mov    0xc(%esp),%eax
405782:	5e                   	pop    %esi
405783:	5f                   	pop    %edi
405784:	c3                   	ret
405785:	8d 49 00             	lea    0x0(%ecx),%ecx
405788:	8a 46 03             	mov    0x3(%esi),%al
40578b:	88 47 03             	mov    %al,0x3(%edi)
40578e:	8a 46 02             	mov    0x2(%esi),%al
405791:	88 47 02             	mov    %al,0x2(%edi)
405794:	8b 44 24 0c          	mov    0xc(%esp),%eax
405798:	5e                   	pop    %esi
405799:	5f                   	pop    %edi
40579a:	c3                   	ret
40579b:	90                   	nop
40579c:	8a 46 03             	mov    0x3(%esi),%al
40579f:	88 47 03             	mov    %al,0x3(%edi)
4057a2:	8a 46 02             	mov    0x2(%esi),%al
4057a5:	88 47 02             	mov    %al,0x2(%edi)
4057a8:	8a 46 01             	mov    0x1(%esi),%al
4057ab:	88 47 01             	mov    %al,0x1(%edi)
4057ae:	8b 44 24 0c          	mov    0xc(%esp),%eax
4057b2:	5e                   	pop    %esi
4057b3:	5f                   	pop    %edi
4057b4:	c3                   	ret
4057b5:	f7 c7 0f 00 00 00    	test   $0xf,%edi
4057bb:	74 0f                	je     0x4057cc
4057bd:	49                   	dec    %ecx
4057be:	4e                   	dec    %esi
4057bf:	4f                   	dec    %edi
4057c0:	8a 06                	mov    (%esi),%al
4057c2:	88 07                	mov    %al,(%edi)
4057c4:	f7 c7 0f 00 00 00    	test   $0xf,%edi
4057ca:	75 f1                	jne    0x4057bd
4057cc:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
4057d2:	72 68                	jb     0x40583c
4057d4:	81 ee 80 00 00 00    	sub    $0x80,%esi
4057da:	81 ef 80 00 00 00    	sub    $0x80,%edi
4057e0:	f3 0f 6f 06          	movdqu (%esi),%xmm0
4057e4:	f3 0f 6f 4e 10       	movdqu 0x10(%esi),%xmm1
4057e9:	f3 0f 6f 56 20       	movdqu 0x20(%esi),%xmm2
4057ee:	f3 0f 6f 5e 30       	movdqu 0x30(%esi),%xmm3
4057f3:	f3 0f 6f 66 40       	movdqu 0x40(%esi),%xmm4
4057f8:	f3 0f 6f 6e 50       	movdqu 0x50(%esi),%xmm5
4057fd:	f3 0f 6f 76 60       	movdqu 0x60(%esi),%xmm6
405802:	f3 0f 6f 7e 70       	movdqu 0x70(%esi),%xmm7
405807:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40580b:	f3 0f 7f 4f 10       	movdqu %xmm1,0x10(%edi)
405810:	f3 0f 7f 57 20       	movdqu %xmm2,0x20(%edi)
405815:	f3 0f 7f 5f 30       	movdqu %xmm3,0x30(%edi)
40581a:	f3 0f 7f 67 40       	movdqu %xmm4,0x40(%edi)
40581f:	f3 0f 7f 6f 50       	movdqu %xmm5,0x50(%edi)
405824:	f3 0f 7f 77 60       	movdqu %xmm6,0x60(%edi)
405829:	f3 0f 7f 7f 70       	movdqu %xmm7,0x70(%edi)
40582e:	81 e9 80 00 00 00    	sub    $0x80,%ecx
405834:	f7 c1 80 ff ff ff    	test   $0xffffff80,%ecx
40583a:	75 90                	jne    0x4057cc
40583c:	83 f9 20             	cmp    $0x20,%ecx
40583f:	72 23                	jb     0x405864
405841:	83 ee 20             	sub    $0x20,%esi
405844:	83 ef 20             	sub    $0x20,%edi
405847:	f3 0f 6f 06          	movdqu (%esi),%xmm0
40584b:	f3 0f 6f 4e 10       	movdqu 0x10(%esi),%xmm1
405850:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
405854:	f3 0f 7f 4f 10       	movdqu %xmm1,0x10(%edi)
405859:	83 e9 20             	sub    $0x20,%ecx
40585c:	f7 c1 e0 ff ff ff    	test   $0xffffffe0,%ecx
405862:	75 dd                	jne    0x405841
405864:	f7 c1 fc ff ff ff    	test   $0xfffffffc,%ecx
40586a:	74 15                	je     0x405881
40586c:	83 ef 04             	sub    $0x4,%edi
40586f:	83 ee 04             	sub    $0x4,%esi
405872:	8b 06                	mov    (%esi),%eax
405874:	89 07                	mov    %eax,(%edi)
405876:	83 e9 04             	sub    $0x4,%ecx
405879:	f7 c1 fc ff ff ff    	test   $0xfffffffc,%ecx
40587f:	75 eb                	jne    0x40586c
405881:	85 c9                	test   %ecx,%ecx
405883:	74 0f                	je     0x405894
405885:	83 ef 01             	sub    $0x1,%edi
405888:	83 ee 01             	sub    $0x1,%esi
40588b:	8a 06                	mov    (%esi),%al
40588d:	88 07                	mov    %al,(%edi)
40588f:	83 e9 01             	sub    $0x1,%ecx
405892:	75 f1                	jne    0x405885
405894:	8b 44 24 0c          	mov    0xc(%esp),%eax
405898:	5e                   	pop    %esi
405899:	5f                   	pop    %edi
40589a:	c3                   	ret
40589b:	eb 03                	jmp    0x4058a0
40589d:	cc                   	int3
40589e:	cc                   	int3
40589f:	cc                   	int3
4058a0:	8b c6                	mov    %esi,%eax
4058a2:	83 e0 0f             	and    $0xf,%eax
4058a5:	85 c0                	test   %eax,%eax
4058a7:	0f 85 e3 00 00 00    	jne    0x405990
4058ad:	8b d1                	mov    %ecx,%edx
4058af:	83 e1 7f             	and    $0x7f,%ecx
4058b2:	c1 ea 07             	shr    $0x7,%edx
4058b5:	74 66                	je     0x40591d
4058b7:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4058be:	8b ff                	mov    %edi,%edi
4058c0:	66 0f 6f 06          	movdqa (%esi),%xmm0
4058c4:	66 0f 6f 4e 10       	movdqa 0x10(%esi),%xmm1
4058c9:	66 0f 6f 56 20       	movdqa 0x20(%esi),%xmm2
4058ce:	66 0f 6f 5e 30       	movdqa 0x30(%esi),%xmm3
4058d3:	66 0f 7f 07          	movdqa %xmm0,(%edi)
4058d7:	66 0f 7f 4f 10       	movdqa %xmm1,0x10(%edi)
4058dc:	66 0f 7f 57 20       	movdqa %xmm2,0x20(%edi)
4058e1:	66 0f 7f 5f 30       	movdqa %xmm3,0x30(%edi)
4058e6:	66 0f 6f 66 40       	movdqa 0x40(%esi),%xmm4
4058eb:	66 0f 6f 6e 50       	movdqa 0x50(%esi),%xmm5
4058f0:	66 0f 6f 76 60       	movdqa 0x60(%esi),%xmm6
4058f5:	66 0f 6f 7e 70       	movdqa 0x70(%esi),%xmm7
4058fa:	66 0f 7f 67 40       	movdqa %xmm4,0x40(%edi)
4058ff:	66 0f 7f 6f 50       	movdqa %xmm5,0x50(%edi)
405904:	66 0f 7f 77 60       	movdqa %xmm6,0x60(%edi)
405909:	66 0f 7f 7f 70       	movdqa %xmm7,0x70(%edi)
40590e:	8d b6 80 00 00 00    	lea    0x80(%esi),%esi
405914:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
40591a:	4a                   	dec    %edx
40591b:	75 a3                	jne    0x4058c0
40591d:	85 c9                	test   %ecx,%ecx
40591f:	74 5f                	je     0x405980
405921:	8b d1                	mov    %ecx,%edx
405923:	c1 ea 05             	shr    $0x5,%edx
405926:	85 d2                	test   %edx,%edx
405928:	74 21                	je     0x40594b
40592a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
405930:	f3 0f 6f 06          	movdqu (%esi),%xmm0
405934:	f3 0f 6f 4e 10       	movdqu 0x10(%esi),%xmm1
405939:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
40593d:	f3 0f 7f 4f 10       	movdqu %xmm1,0x10(%edi)
405942:	8d 76 20             	lea    0x20(%esi),%esi
405945:	8d 7f 20             	lea    0x20(%edi),%edi
405948:	4a                   	dec    %edx
405949:	75 e5                	jne    0x405930
40594b:	83 e1 1f             	and    $0x1f,%ecx
40594e:	74 30                	je     0x405980
405950:	8b c1                	mov    %ecx,%eax
405952:	c1 e9 02             	shr    $0x2,%ecx
405955:	74 0f                	je     0x405966
405957:	8b 16                	mov    (%esi),%edx
405959:	89 17                	mov    %edx,(%edi)
40595b:	83 c7 04             	add    $0x4,%edi
40595e:	83 c6 04             	add    $0x4,%esi
405961:	83 e9 01             	sub    $0x1,%ecx
405964:	75 f1                	jne    0x405957
405966:	8b c8                	mov    %eax,%ecx
405968:	83 e1 03             	and    $0x3,%ecx
40596b:	74 13                	je     0x405980
40596d:	8a 06                	mov    (%esi),%al
40596f:	88 07                	mov    %al,(%edi)
405971:	46                   	inc    %esi
405972:	47                   	inc    %edi
405973:	49                   	dec    %ecx
405974:	75 f7                	jne    0x40596d
405976:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40597d:	8d 49 00             	lea    0x0(%ecx),%ecx
405980:	8b 44 24 0c          	mov    0xc(%esp),%eax
405984:	5e                   	pop    %esi
405985:	5f                   	pop    %edi
405986:	c3                   	ret
405987:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40598e:	8b ff                	mov    %edi,%edi
405990:	ba 10 00 00 00       	mov    $0x10,%edx
405995:	2b d0                	sub    %eax,%edx
405997:	2b ca                	sub    %edx,%ecx
405999:	51                   	push   %ecx
40599a:	8b c2                	mov    %edx,%eax
40599c:	8b c8                	mov    %eax,%ecx
40599e:	83 e1 03             	and    $0x3,%ecx
4059a1:	74 09                	je     0x4059ac
4059a3:	8a 16                	mov    (%esi),%dl
4059a5:	88 17                	mov    %dl,(%edi)
4059a7:	46                   	inc    %esi
4059a8:	47                   	inc    %edi
4059a9:	49                   	dec    %ecx
4059aa:	75 f7                	jne    0x4059a3
4059ac:	c1 e8 02             	shr    $0x2,%eax
4059af:	74 0d                	je     0x4059be
4059b1:	8b 16                	mov    (%esi),%edx
4059b3:	89 17                	mov    %edx,(%edi)
4059b5:	8d 76 04             	lea    0x4(%esi),%esi
4059b8:	8d 7f 04             	lea    0x4(%edi),%edi
4059bb:	48                   	dec    %eax
4059bc:	75 f3                	jne    0x4059b1
4059be:	59                   	pop    %ecx
4059bf:	e9 e9 fe ff ff       	jmp    0x4058ad
4059c4:	cc                   	int3
4059c5:	cc                   	int3
4059c6:	cc                   	int3
4059c7:	cc                   	int3
4059c8:	cc                   	int3
4059c9:	cc                   	int3
4059ca:	cc                   	int3
4059cb:	cc                   	int3
4059cc:	cc                   	int3
4059cd:	cc                   	int3
4059ce:	cc                   	int3
4059cf:	cc                   	int3
4059d0:	53                   	push   %ebx
4059d1:	51                   	push   %ecx
4059d2:	bb 30 60 41 00       	mov    $0x416030,%ebx
4059d7:	e9 0f 00 00 00       	jmp    0x4059eb
4059dc:	cc                   	int3
4059dd:	cc                   	int3
4059de:	cc                   	int3
4059df:	cc                   	int3
4059e0:	53                   	push   %ebx
4059e1:	51                   	push   %ecx
4059e2:	bb 30 60 41 00       	mov    $0x416030,%ebx
4059e7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4059eb:	89 4b 08             	mov    %ecx,0x8(%ebx)
4059ee:	89 43 04             	mov    %eax,0x4(%ebx)
4059f1:	89 6b 0c             	mov    %ebp,0xc(%ebx)
4059f4:	55                   	push   %ebp
4059f5:	51                   	push   %ecx
4059f6:	50                   	push   %eax
4059f7:	58                   	pop    %eax
4059f8:	59                   	pop    %ecx
4059f9:	5d                   	pop    %ebp
4059fa:	59                   	pop    %ecx
4059fb:	5b                   	pop    %ebx
4059fc:	c2 04 00             	ret    $0x4
4059ff:	cc                   	int3
405a00:	ff d0                	call   *%eax
405a02:	c3                   	ret
405a03:	cc                   	int3
405a04:	cc                   	int3
405a05:	cc                   	int3
405a06:	cc                   	int3
405a07:	cc                   	int3
405a08:	cc                   	int3
405a09:	cc                   	int3
405a0a:	cc                   	int3
405a0b:	cc                   	int3
405a0c:	cc                   	int3
405a0d:	cc                   	int3
405a0e:	cc                   	int3
405a0f:	cc                   	int3
405a10:	8b ff                	mov    %edi,%edi
405a12:	55                   	push   %ebp
405a13:	8b ec                	mov    %esp,%ebp
405a15:	8b d1                	mov    %ecx,%edx
405a17:	33 c0                	xor    %eax,%eax
405a19:	8b 4d 08             	mov    0x8(%ebp),%ecx
405a1c:	88 42 14             	mov    %al,0x14(%edx)
405a1f:	89 02                	mov    %eax,(%edx)
405a21:	88 42 08             	mov    %al,0x8(%edx)
405a24:	88 42 1c             	mov    %al,0x1c(%edx)
405a27:	88 42 24             	mov    %al,0x24(%edx)
405a2a:	85 c9                	test   %ecx,%ecx
405a2c:	74 07                	je     0x405a35
405a2e:	8b 01                	mov    (%ecx),%eax
405a30:	8b 49 04             	mov    0x4(%ecx),%ecx
405a33:	eb 13                	jmp    0x405a48
405a35:	39 05 c8 6e 41 00    	cmp    %eax,0x416ec8
405a3b:	75 15                	jne    0x405a52
405a3d:	a1 10 61 41 00       	mov    0x416110,%eax
405a42:	8b 0d 14 61 41 00    	mov    0x416114,%ecx
405a48:	c6 42 14 01          	movb   $0x1,0x14(%edx)
405a4c:	89 4a 10             	mov    %ecx,0x10(%edx)
405a4f:	89 42 0c             	mov    %eax,0xc(%edx)
405a52:	8b c2                	mov    %edx,%eax
405a54:	5d                   	pop    %ebp
405a55:	c2 04 00             	ret    $0x4
405a58:	8b ff                	mov    %edi,%edi
405a5a:	56                   	push   %esi
405a5b:	57                   	push   %edi
405a5c:	8b f9                	mov    %ecx,%edi
405a5e:	80 7f 14 02          	cmpb   $0x2,0x14(%edi)
405a62:	75 09                	jne    0x405a6d
405a64:	8b 07                	mov    (%edi),%eax
405a66:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
405a6d:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
405a71:	74 0b                	je     0x405a7e
405a73:	8b 77 18             	mov    0x18(%edi),%esi
405a76:	e8 88 00 00 00       	call   0x405b03
405a7b:	89 70 10             	mov    %esi,0x10(%eax)
405a7e:	80 7f 24 00          	cmpb   $0x0,0x24(%edi)
405a82:	74 0d                	je     0x405a91
405a84:	8b 77 20             	mov    0x20(%edi),%esi
405a87:	8b cf                	mov    %edi,%ecx
405a89:	e8 75 00 00 00       	call   0x405b03
405a8e:	89 70 14             	mov    %esi,0x14(%eax)
405a91:	5f                   	pop    %edi
405a92:	5e                   	pop    %esi
405a93:	c3                   	ret
405a94:	8b ff                	mov    %edi,%edi
405a96:	56                   	push   %esi
405a97:	8b f1                	mov    %ecx,%esi
405a99:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
405a9d:	75 19                	jne    0x405ab8
405a9f:	ff 15 58 f0 40 00    	call   *0x40f058
405aa5:	83 66 04 00          	andl   $0x0,0x4(%esi)
405aa9:	50                   	push   %eax
405aaa:	c6 46 08 01          	movb   $0x1,0x8(%esi)
405aae:	ff 15 5c f0 40 00    	call   *0x40f05c
405ab4:	33 c0                	xor    %eax,%eax
405ab6:	5e                   	pop    %esi
405ab7:	c3                   	ret
405ab8:	8b 46 04             	mov    0x4(%esi),%eax
405abb:	5e                   	pop    %esi
405abc:	c3                   	ret
405abd:	8b ff                	mov    %edi,%edi
405abf:	55                   	push   %ebp
405ac0:	8b ec                	mov    %esp,%ebp
405ac2:	51                   	push   %ecx
405ac3:	56                   	push   %esi
405ac4:	57                   	push   %edi
405ac5:	8b f9                	mov    %ecx,%edi
405ac7:	ff 15 58 f0 40 00    	call   *0x40f058
405acd:	80 7f 08 00          	cmpb   $0x0,0x8(%edi)