4045c7:	8b 06                	mov    (%esi),%eax
4045c9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4045cc:	85 ff                	test   %edi,%edi
4045ce:	75 17                	jne    0x4045e7
4045d0:	8b 45 08             	mov    0x8(%ebp),%eax
4045d3:	8d 48 9f             	lea    -0x61(%eax),%ecx
4045d6:	83 f9 19             	cmp    $0x19,%ecx
4045d9:	0f 87 c0 00 00 00    	ja     0x40469f
4045df:	83 e8 20             	sub    $0x20,%eax
4045e2:	e9 b8 00 00 00       	jmp    0x40469f
4045e7:	53                   	push   %ebx
4045e8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4045eb:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
4045f1:	73 1d                	jae    0x404610
4045f3:	85 f6                	test   %esi,%esi
4045f5:	75 10                	jne    0x404607
4045f7:	53                   	push   %ebx
4045f8:	e8 67 41 00 00       	call   0x408764
4045fd:	59                   	pop    %ecx
4045fe:	85 c0                	test   %eax,%eax
404600:	75 12                	jne    0x404614
404602:	e9 81 00 00 00       	jmp    0x404688
404607:	8b 46 04             	mov    0x4(%esi),%eax
40460a:	f6 04 58 02          	testb  $0x2,(%eax,%ebx,2)
40460e:	74 78                	je     0x404688
404610:	85 f6                	test   %esi,%esi
404612:	75 1e                	jne    0x404632
404614:	8b c3                	mov    %ebx,%eax
404616:	c1 f8 08             	sar    $0x8,%eax
404619:	89 45 f4             	mov    %eax,-0xc(%ebp)
40461c:	e8 ff 3f 00 00       	call   0x408620
404621:	8b 55 f4             	mov    -0xc(%ebp),%edx
404624:	0f b6 ca             	movzbl %dl,%ecx
404627:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40462b:	25 00 80 00 00       	and    $0x8000,%eax
404630:	eb 15                	jmp    0x404647
404632:	8b 46 04             	mov    0x4(%esi),%eax
404635:	8b d3                	mov    %ebx,%edx
404637:	c1 fa 08             	sar    $0x8,%edx
40463a:	0f b6 ca             	movzbl %dl,%ecx
40463d:	0f bf 04 48          	movswl (%eax,%ecx,2),%eax
404641:	c1 e8 0f             	shr    $0xf,%eax
404644:	83 e0 01             	and    $0x1,%eax
404647:	85 c0                	test   %eax,%eax
404649:	74 0f                	je     0x40465a
40464b:	6a 02                	push   $0x2
40464d:	88 55 0c             	mov    %dl,0xc(%ebp)
404650:	88 5d 0d             	mov    %bl,0xd(%ebp)
404653:	c6 45 0e 00          	movb   $0x0,0xe(%ebp)
404657:	58                   	pop    %eax
404658:	eb 0a                	jmp    0x404664
40465a:	33 c0                	xor    %eax,%eax
40465c:	88 5d 0c             	mov    %bl,0xc(%ebp)
40465f:	c6 45 0d 00          	movb   $0x0,0xd(%ebp)
404663:	40                   	inc    %eax
404664:	6a 01                	push   $0x1
404666:	ff 75 f8             	push   -0x8(%ebp)
404669:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40466c:	6a 03                	push   $0x3
40466e:	51                   	push   %ecx
40466f:	50                   	push   %eax
404670:	8d 45 0c             	lea    0xc(%ebp),%eax
404673:	50                   	push   %eax
404674:	68 00 02 00 00       	push   $0x200
404679:	57                   	push   %edi
40467a:	6a 00                	push   $0x0
40467c:	e8 75 43 00 00       	call   0x4089f6
404681:	83 c4 24             	add    $0x24,%esp
404684:	85 c0                	test   %eax,%eax
404686:	75 04                	jne    0x40468c
404688:	8b c3                	mov    %ebx,%eax
40468a:	eb 12                	jmp    0x40469e
40468c:	83 f8 01             	cmp    $0x1,%eax
40468f:	0f b6 45 fc          	movzbl -0x4(%ebp),%eax
404693:	74 09                	je     0x40469e
404695:	0f b6 4d fd          	movzbl -0x3(%ebp),%ecx
404699:	c1 e0 08             	shl    $0x8,%eax
40469c:	0b c1                	or     %ecx,%eax
40469e:	5b                   	pop    %ebx
40469f:	5f                   	pop    %edi
4046a0:	5e                   	pop    %esi
4046a1:	c9                   	leave
4046a2:	c3                   	ret
4046a3:	eb 1b                	jmp    0x4046c0
4046a5:	8b 04 8d 78 1b 42 00 	mov    0x421b78(,%ecx,4),%eax
4046ac:	41                   	inc    %ecx
4046ad:	50                   	push   %eax
4046ae:	89 0d 20 01 42 00    	mov    %ecx,0x420120
4046b4:	ff 15 5c 90 41 00    	call   *0x41905c
4046ba:	85 c0                	test   %eax,%eax
4046bc:	74 02                	je     0x4046c0
4046be:	ff d0                	call   *%eax
4046c0:	8b 0d 20 01 42 00    	mov    0x420120,%ecx
4046c6:	83 f9 0a             	cmp    $0xa,%ecx
4046c9:	72 da                	jb     0x4046a5
4046cb:	c3                   	ret
4046cc:	55                   	push   %ebp
4046cd:	8b ec                	mov    %esp,%ebp
4046cf:	a1 20 01 42 00       	mov    0x420120,%eax
4046d4:	85 c0                	test   %eax,%eax
4046d6:	0f 84 7a 44 00 00    	je     0x408b56
4046dc:	ff 75 08             	push   0x8(%ebp)
4046df:	48                   	dec    %eax
4046e0:	a3 20 01 42 00       	mov    %eax,0x420120
4046e5:	ff 15 58 90 41 00    	call   *0x419058
4046eb:	8b 0d 20 01 42 00    	mov    0x420120,%ecx
4046f1:	89 04 8d 78 1b 42 00 	mov    %eax,0x421b78(,%ecx,4)
4046f8:	5d                   	pop    %ebp
4046f9:	c3                   	ret
4046fa:	55                   	push   %ebp
4046fb:	8b ec                	mov    %esp,%ebp
4046fd:	ff 75 08             	push   0x8(%ebp)
404700:	ff 15 6c 90 41 00    	call   *0x41906c
404706:	5d                   	pop    %ebp
404707:	c3                   	ret
404708:	55                   	push   %ebp
404709:	8b ec                	mov    %esp,%ebp
40470b:	6a 00                	push   $0x0
40470d:	68 a0 0f 00 00       	push   $0xfa0
404712:	ff 75 08             	push   0x8(%ebp)
404715:	ff 15 68 90 41 00    	call   *0x419068
40471b:	5d                   	pop    %ebp
40471c:	c3                   	ret
40471d:	55                   	push   %ebp
40471e:	8b ec                	mov    %esp,%ebp
404720:	ff 75 08             	push   0x8(%ebp)
404723:	ff 15 60 90 41 00    	call   *0x419060
404729:	5d                   	pop    %ebp
40472a:	c3                   	ret
40472b:	55                   	push   %ebp
40472c:	8b ec                	mov    %esp,%ebp
40472e:	ff 75 08             	push   0x8(%ebp)
404731:	ff 15 64 90 41 00    	call   *0x419064
404737:	5d                   	pop    %ebp
404738:	c3                   	ret
404739:	3b 0d 90 08 42 00    	cmp    0x420890,%ecx
40473f:	75 02                	jne    0x404743
404741:	f3 c3                	repz ret
404743:	e9 2f 60 00 00       	jmp    0x40a777
404748:	cc                   	int3
404749:	cc                   	int3
40474a:	cc                   	int3
40474b:	cc                   	int3
40474c:	cc                   	int3
40474d:	cc                   	int3
40474e:	cc                   	int3
40474f:	cc                   	int3
404750:	57                   	push   %edi
404751:	56                   	push   %esi
404752:	8b 74 24 10          	mov    0x10(%esp),%esi
404756:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40475a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40475e:	8b c1                	mov    %ecx,%eax
404760:	8b d1                	mov    %ecx,%edx
404762:	03 c6                	add    %esi,%eax
404764:	3b fe                	cmp    %esi,%edi
404766:	76 08                	jbe    0x404770
404768:	3b f8                	cmp    %eax,%edi
40476a:	0f 82 68 03 00 00    	jb     0x404ad8
404770:	0f ba 25 d4 20 42 00 	btl    $0x1,0x4220d4
404777:	01
404778:	73 07                	jae    0x404781
40477a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40477c:	e9 17 03 00 00       	jmp    0x404a98
404781:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
404787:	0f 82 ce 01 00 00    	jb     0x40495b
40478d:	8b c7                	mov    %edi,%eax
40478f:	33 c6                	xor    %esi,%eax
404791:	a9 0f 00 00 00       	test   $0xf,%eax
404796:	75 0e                	jne    0x4047a6
404798:	0f ba 25 a8 08 42 00 	btl    $0x1,0x4208a8
40479f:	01
4047a0:	0f 82 da 04 00 00    	jb     0x404c80
4047a6:	0f ba 25 d4 20 42 00 	btl    $0x0,0x4220d4
4047ad:	00
4047ae:	0f 83 a7 01 00 00    	jae    0x40495b
4047b4:	f7 c7 03 00 00 00    	test   $0x3,%edi
4047ba:	0f 85 b8 01 00 00    	jne    0x404978
4047c0:	f7 c6 03 00 00 00    	test   $0x3,%esi
4047c6:	0f 85 97 01 00 00    	jne    0x404963
4047cc:	0f ba e7 02          	bt     $0x2,%edi
4047d0:	73 0d                	jae    0x4047df
4047d2:	8b 06                	mov    (%esi),%eax
4047d4:	83 e9 04             	sub    $0x4,%ecx
4047d7:	8d 76 04             	lea    0x4(%esi),%esi
4047da:	89 07                	mov    %eax,(%edi)
4047dc:	8d 7f 04             	lea    0x4(%edi),%edi
4047df:	0f ba e7 03          	bt     $0x3,%edi
4047e3:	73 11                	jae    0x4047f6
4047e5:	f3 0f 7e 0e          	movq   (%esi),%xmm1
4047e9:	83 e9 08             	sub    $0x8,%ecx
4047ec:	8d 76 08             	lea    0x8(%esi),%esi
4047ef:	66 0f d6 0f          	movq   %xmm1,(%edi)
4047f3:	8d 7f 08             	lea    0x8(%edi),%edi
4047f6:	f7 c6 07 00 00 00    	test   $0x7,%esi
4047fc:	74 63                	je     0x404861
4047fe:	0f ba e6 03          	bt     $0x3,%esi
404802:	0f 83 b2 00 00 00    	jae    0x4048ba
404808:	66 0f 6f 4e f4       	movdqa -0xc(%esi),%xmm1
40480d:	8d 76 f4             	lea    -0xc(%esi),%esi
404810:	66 0f 6f 5e 10       	movdqa 0x10(%esi),%xmm3
404815:	83 e9 30             	sub    $0x30,%ecx
404818:	66 0f 6f 46 20       	movdqa 0x20(%esi),%xmm0
40481d:	66 0f 6f 6e 30       	movdqa 0x30(%esi),%xmm5
404822:	8d 76 30             	lea    0x30(%esi),%esi
404825:	83 f9 30             	cmp    $0x30,%ecx
404828:	66 0f 6f d3          	movdqa %xmm3,%xmm2
40482c:	66 0f 3a 0f d9 0c    	palignr $0xc,%xmm1,%xmm3
404832:	66 0f 7f 1f          	movdqa %xmm3,(%edi)
404836:	66 0f 6f e0          	movdqa %xmm0,%xmm4
40483a:	66 0f 3a 0f c2 0c    	palignr $0xc,%xmm2,%xmm0
404840:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
404845:	66 0f 6f cd          	movdqa %xmm5,%xmm1
404849:	66 0f 3a 0f ec 0c    	palignr $0xc,%xmm4,%xmm5
40484f:	66 0f 7f 6f 20       	movdqa %xmm5,0x20(%edi)
404854:	8d 7f 30             	lea    0x30(%edi),%edi
404857:	7d b7                	jge    0x404810
404859:	8d 76 0c             	lea    0xc(%esi),%esi
40485c:	e9 af 00 00 00       	jmp    0x404910
404861:	66 0f 6f 4e f8       	movdqa -0x8(%esi),%xmm1
404866:	8d 76 f8             	lea    -0x8(%esi),%esi
404869:	8d 49 00             	lea    0x0(%ecx),%ecx
40486c:	66 0f 6f 5e 10       	movdqa 0x10(%esi),%xmm3
404871:	83 e9 30             	sub    $0x30,%ecx
404874:	66 0f 6f 46 20       	movdqa 0x20(%esi),%xmm0
404879:	66 0f 6f 6e 30       	movdqa 0x30(%esi),%xmm5
40487e:	8d 76 30             	lea    0x30(%esi),%esi
404881:	83 f9 30             	cmp    $0x30,%ecx
404884:	66 0f 6f d3          	movdqa %xmm3,%xmm2
404888:	66 0f 3a 0f d9 08    	palignr $0x8,%xmm1,%xmm3
40488e:	66 0f 7f 1f          	movdqa %xmm3,(%edi)
404892:	66 0f 6f e0          	movdqa %xmm0,%xmm4
404896:	66 0f 3a 0f c2 08    	palignr $0x8,%xmm2,%xmm0
40489c:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
4048a1:	66 0f 6f cd          	movdqa %xmm5,%xmm1
4048a5:	66 0f 3a 0f ec 08    	palignr $0x8,%xmm4,%xmm5
4048ab:	66 0f 7f 6f 20       	movdqa %xmm5,0x20(%edi)
4048b0:	8d 7f 30             	lea    0x30(%edi),%edi
4048b3:	7d b7                	jge    0x40486c
4048b5:	8d 76 08             	lea    0x8(%esi),%esi
4048b8:	eb 56                	jmp    0x404910
4048ba:	66 0f 6f 4e fc       	movdqa -0x4(%esi),%xmm1
4048bf:	8d 76 fc             	lea    -0x4(%esi),%esi
4048c2:	8b ff                	mov    %edi,%edi
4048c4:	66 0f 6f 5e 10       	movdqa 0x10(%esi),%xmm3
4048c9:	83 e9 30             	sub    $0x30,%ecx
4048cc:	66 0f 6f 46 20       	movdqa 0x20(%esi),%xmm0
4048d1:	66 0f 6f 6e 30       	movdqa 0x30(%esi),%xmm5
4048d6:	8d 76 30             	lea    0x30(%esi),%esi
4048d9:	83 f9 30             	cmp    $0x30,%ecx
4048dc:	66 0f 6f d3          	movdqa %xmm3,%xmm2
4048e0:	66 0f 3a 0f d9 04    	palignr $0x4,%xmm1,%xmm3
4048e6:	66 0f 7f 1f          	movdqa %xmm3,(%edi)
4048ea:	66 0f 6f e0          	movdqa %xmm0,%xmm4
4048ee:	66 0f 3a 0f c2 04    	palignr $0x4,%xmm2,%xmm0
4048f4:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
4048f9:	66 0f 6f cd          	movdqa %xmm5,%xmm1
4048fd:	66 0f 3a 0f ec 04    	palignr $0x4,%xmm4,%xmm5
404903:	66 0f 7f 6f 20       	movdqa %xmm5,0x20(%edi)
404908:	8d 7f 30             	lea    0x30(%edi),%edi
40490b:	7d b7                	jge    0x4048c4
40490d:	8d 76 04             	lea    0x4(%esi),%esi
404910:	83 f9 10             	cmp    $0x10,%ecx
404913:	7c 13                	jl     0x404928
404915:	f3 0f 6f 0e          	movdqu (%esi),%xmm1
404919:	83 e9 10             	sub    $0x10,%ecx
40491c:	8d 76 10             	lea    0x10(%esi),%esi
40491f:	66 0f 7f 0f          	movdqa %xmm1,(%edi)
404923:	8d 7f 10             	lea    0x10(%edi),%edi
404926:	eb e8                	jmp    0x404910
404928:	0f ba e1 02          	bt     $0x2,%ecx
40492c:	73 0d                	jae    0x40493b
40492e:	8b 06                	mov    (%esi),%eax
404930:	83 e9 04             	sub    $0x4,%ecx
404933:	8d 76 04             	lea    0x4(%esi),%esi
404936:	89 07                	mov    %eax,(%edi)
404938:	8d 7f 04             	lea    0x4(%edi),%edi
40493b:	0f ba e1 03          	bt     $0x3,%ecx
40493f:	73 11                	jae    0x404952
404941:	f3 0f 7e 0e          	movq   (%esi),%xmm1
404945:	83 e9 08             	sub    $0x8,%ecx
404948:	8d 76 08             	lea    0x8(%esi),%esi
40494b:	66 0f d6 0f          	movq   %xmm1,(%edi)
40494f:	8d 7f 08             	lea    0x8(%edi),%edi
404952:	8b 04 8d 88 4a 40 00 	mov    0x404a88(,%ecx,4),%eax
404959:	ff e0                	jmp    *%eax
40495b:	f7 c7 03 00 00 00    	test   $0x3,%edi
404961:	75 15                	jne    0x404978
404963:	c1 e9 02             	shr    $0x2,%ecx
404966:	83 e2 03             	and    $0x3,%edx
404969:	83 f9 08             	cmp    $0x8,%ecx
40496c:	72 2a                	jb     0x404998
40496e:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
404970:	ff 24 95 88 4a 40 00 	jmp    *0x404a88(,%edx,4)
404977:	90                   	nop
404978:	8b c7                	mov    %edi,%eax
40497a:	ba 03 00 00 00       	mov    $0x3,%edx
40497f:	83 e9 04             	sub    $0x4,%ecx
404982:	72 0c                	jb     0x404990
404984:	83 e0 03             	and    $0x3,%eax
404987:	03 c8                	add    %eax,%ecx
404989:	ff 24 85 9c 49 40 00 	jmp    *0x40499c(,%eax,4)
404990:	ff 24 8d 98 4a 40 00 	jmp    *0x404a98(,%ecx,4)
404997:	90                   	nop
404998:	ff 24 8d 1c 4a 40 00 	jmp    *0x404a1c(,%ecx,4)
40499f:	90                   	nop
4049a0:	ac                   	lods   %ds:(%esi),%al
4049a1:	49                   	dec    %ecx
4049a2:	40                   	inc    %eax
4049a3:	00 d8                	add    %bl,%al
4049a5:	49                   	dec    %ecx
4049a6:	40                   	inc    %eax
4049a7:	00 fc                	add    %bh,%ah
4049a9:	49                   	dec    %ecx
4049aa:	40                   	inc    %eax
4049ab:	00 23                	add    %ah,(%ebx)
4049ad:	d1 8a 06 88 07 8a    	rorl   $1,-0x75f877fa(%edx)
4049b3:	46                   	inc    %esi
4049b4:	01 88 47 01 8a 46    	add    %ecx,0x468a0147(%eax)
4049ba:	02 c1                	add    %cl,%al
4049bc:	e9 02 88 47 02       	jmp    0x287d1c3
4049c1:	83 c6 03             	add    $0x3,%esi
4049c4:	83 c7 03             	add    $0x3,%edi
4049c7:	83 f9 08             	cmp    $0x8,%ecx
4049ca:	72 cc                	jb     0x404998
4049cc:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4049ce:	ff 24 95 88 4a 40 00 	jmp    *0x404a88(,%edx,4)
4049d5:	8d 49 00             	lea    0x0(%ecx),%ecx
4049d8:	23 d1                	and    %ecx,%edx
4049da:	8a 06                	mov    (%esi),%al
4049dc:	88 07                	mov    %al,(%edi)
4049de:	8a 46 01             	mov    0x1(%esi),%al
4049e1:	c1 e9 02             	shr    $0x2,%ecx
4049e4:	88 47 01             	mov    %al,0x1(%edi)
4049e7:	83 c6 02             	add    $0x2,%esi
4049ea:	83 c7 02             	add    $0x2,%edi
4049ed:	83 f9 08             	cmp    $0x8,%ecx
4049f0:	72 a6                	jb     0x404998
4049f2:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4049f4:	ff 24 95 88 4a 40 00 	jmp    *0x404a88(,%edx,4)
4049fb:	90                   	nop
4049fc:	23 d1                	and    %ecx,%edx
4049fe:	8a 06                	mov    (%esi),%al
404a00:	88 07                	mov    %al,(%edi)
404a02:	83 c6 01             	add    $0x1,%esi
404a05:	c1 e9 02             	shr    $0x2,%ecx
404a08:	83 c7 01             	add    $0x1,%edi
404a0b:	83 f9 08             	cmp    $0x8,%ecx
404a0e:	72 88                	jb     0x404998
404a10:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)