4086d9:	83 e3 fc             	and    $0xfffffffc,%ebx
4086dc:	8b 04 1e             	mov    (%esi,%ebx,1),%eax
4086df:	89 c1                	mov    %eax,%ecx
4086e1:	0d 80 80 80 80       	or     $0x80808080,%eax
4086e6:	89 c2                	mov    %eax,%edx
4086e8:	2d 7b 7b 7b 7b       	sub    $0x7b7b7b7b,%eax
4086ed:	31 ca                	xor    %ecx,%edx
4086ef:	0d 80 80 80 80       	or     $0x80808080,%eax
4086f4:	2d 66 66 66 66       	sub    $0x66666666,%eax
4086f9:	21 d0                	and    %edx,%eax
4086fb:	c1 e8 02             	shr    $0x2,%eax
4086fe:	31 c8                	xor    %ecx,%eax
408700:	89 04 1f             	mov    %eax,(%edi,%ebx,1)
408703:	8b 44 1e fc          	mov    -0x4(%esi,%ebx,1),%eax
408707:	83 eb 04             	sub    $0x4,%ebx
40870a:	7d d3                	jge    0x4086df
40870c:	5f                   	pop    %edi
40870d:	5e                   	pop    %esi
40870e:	5b                   	pop    %ebx
40870f:	c3                   	ret
408710:	5f                   	pop    %edi
408711:	5e                   	pop    %esi
408712:	5b                   	pop    %ebx
408713:	e9 08 c0 ff ff       	jmp    0x404720
408718:	c3                   	ret
408719:	8d 40 00             	lea    0x0(%eax),%eax
40871c:	53                   	push   %ebx
40871d:	56                   	push   %esi
40871e:	57                   	push   %edi
40871f:	89 c6                	mov    %eax,%esi
408721:	89 d0                	mov    %edx,%eax
408723:	85 f6                	test   %esi,%esi
408725:	0f 84 81 00 00 00    	je     0x4087ac
40872b:	8b 56 fc             	mov    -0x4(%esi),%edx
40872e:	89 c7                	mov    %eax,%edi
408730:	85 d2                	test   %edx,%edx
408732:	7e 78                	jle    0x4087ac
408734:	8b 08                	mov    (%eax),%ecx
408736:	89 d3                	mov    %edx,%ebx
408738:	85 c9                	test   %ecx,%ecx
40873a:	74 23                	je     0x40875f
40873c:	f7 c2 03 00 00 00    	test   $0x3,%edx
408742:	75 0a                	jne    0x40874e
408744:	33 51 fc             	xor    -0x4(%ecx),%edx
408747:	83 fa 03             	cmp    $0x3,%edx
40874a:	76 0d                	jbe    0x408759
40874c:	eb 11                	jmp    0x40875f
40874e:	83 ca 02             	or     $0x2,%edx
408751:	33 51 fc             	xor    -0x4(%ecx),%edx
408754:	83 fa 01             	cmp    $0x1,%edx
408757:	77 06                	ja     0x40875f
408759:	83 79 f8 01          	cmpl   $0x1,-0x8(%ecx)
40875d:	74 0a                	je     0x408769
40875f:	89 da                	mov    %ebx,%edx
408761:	83 ca 03             	or     $0x3,%edx
408764:	e8 03 c7 ff ff       	call   0x404e6c
408769:	8b 3f                	mov    (%edi),%edi
40876b:	89 5f fc             	mov    %ebx,-0x4(%edi)
40876e:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
408772:	83 c3 ff             	add    $0xffffffff,%ebx
408775:	83 e3 fc             	and    $0xfffffffc,%ebx
408778:	8b 04 1e             	mov    (%esi,%ebx,1),%eax
40877b:	89 c1                	mov    %eax,%ecx
40877d:	0d 80 80 80 80       	or     $0x80808080,%eax
408782:	89 c2                	mov    %eax,%edx
408784:	2d 5b 5b 5b 5b       	sub    $0x5b5b5b5b,%eax
408789:	31 ca                	xor    %ecx,%edx
40878b:	0d 80 80 80 80       	or     $0x80808080,%eax
408790:	2d 66 66 66 66       	sub    $0x66666666,%eax
408795:	21 d0                	and    %edx,%eax
408797:	c1 e8 02             	shr    $0x2,%eax
40879a:	31 c8                	xor    %ecx,%eax
40879c:	89 04 1f             	mov    %eax,(%edi,%ebx,1)
40879f:	8b 44 1e fc          	mov    -0x4(%esi,%ebx,1),%eax
4087a3:	83 eb 04             	sub    $0x4,%ebx
4087a6:	7d d3                	jge    0x40877b
4087a8:	5f                   	pop    %edi
4087a9:	5e                   	pop    %esi
4087aa:	5b                   	pop    %ebx
4087ab:	c3                   	ret
4087ac:	5f                   	pop    %edi
4087ad:	5e                   	pop    %esi
4087ae:	5b                   	pop    %ebx
4087af:	e9 6c bf ff ff       	jmp    0x404720
4087b4:	c3                   	ret
4087b5:	8d 40 00             	lea    0x0(%eax),%eax
4087b8:	56                   	push   %esi
4087b9:	57                   	push   %edi
4087ba:	89 c6                	mov    %eax,%esi
4087bc:	89 d7                	mov    %edx,%edi
4087be:	09 c0                	or     %eax,%eax
4087c0:	74 03                	je     0x4087c5
4087c2:	8b 40 fc             	mov    -0x4(%eax),%eax
4087c5:	09 d2                	or     %edx,%edx
4087c7:	74 03                	je     0x4087cc
4087c9:	8b 52 fc             	mov    -0x4(%edx),%edx
4087cc:	89 c1                	mov    %eax,%ecx
4087ce:	39 d1                	cmp    %edx,%ecx
4087d0:	76 02                	jbe    0x4087d4
4087d2:	89 d1                	mov    %edx,%ecx
4087d4:	39 c9                	cmp    %ecx,%ecx
4087d6:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4087d8:	74 08                	je     0x4087e2
4087da:	0f b6 46 ff          	movzbl -0x1(%esi),%eax
4087de:	0f b6 57 ff          	movzbl -0x1(%edi),%edx
4087e2:	29 d0                	sub    %edx,%eax
4087e4:	5f                   	pop    %edi
4087e5:	5e                   	pop    %esi
4087e6:	c3                   	ret
4087e7:	90                   	nop
4087e8:	01 c8                	add    %ecx,%eax
4087ea:	01 ca                	add    %ecx,%edx
4087ec:	83 f1 ff             	xor    $0xffffffff,%ecx
4087ef:	83 c0 f8             	add    $0xfffffff8,%eax
4087f2:	83 c2 f8             	add    $0xfffffff8,%edx
4087f5:	83 c1 09             	add    $0x9,%ecx
4087f8:	53                   	push   %ebx
4087f9:	7f 43                	jg     0x40883e
4087fb:	8b 1c 01             	mov    (%ecx,%eax,1),%ebx
4087fe:	3b 1c 11             	cmp    (%ecx,%edx,1),%ebx
408801:	75 72                	jne    0x408875
408803:	8d 1c 01             	lea    (%ecx,%eax,1),%ebx
408806:	83 c1 04             	add    $0x4,%ecx
408809:	83 e3 03             	and    $0x3,%ebx
40880c:	29 d9                	sub    %ebx,%ecx
40880e:	7f 2e                	jg     0x40883e
408810:	8b 1c 01             	mov    (%ecx,%eax,1),%ebx
408813:	3b 1c 11             	cmp    (%ecx,%edx,1),%ebx
408816:	75 5d                	jne    0x408875
408818:	8b 5c 01 04          	mov    0x4(%ecx,%eax,1),%ebx
40881c:	3b 5c 11 04          	cmp    0x4(%ecx,%edx,1),%ebx
408820:	75 53                	jne    0x408875
408822:	83 c1 08             	add    $0x8,%ecx
408825:	7f 17                	jg     0x40883e
408827:	8b 1c 01             	mov    (%ecx,%eax,1),%ebx
40882a:	3b 1c 11             	cmp    (%ecx,%edx,1),%ebx
40882d:	75 46                	jne    0x408875
40882f:	8b 5c 01 04          	mov    0x4(%ecx,%eax,1),%ebx
408833:	3b 5c 11 04          	cmp    0x4(%ecx,%edx,1),%ebx
408837:	75 3c                	jne    0x408875
408839:	83 c1 08             	add    $0x8,%ecx
40883c:	7e d2                	jle    0x408810
40883e:	83 f9 04             	cmp    $0x4,%ecx
408841:	7f 0b                	jg     0x40884e
408843:	8b 1c 01             	mov    (%ecx,%eax,1),%ebx
408846:	3b 1c 11             	cmp    (%ecx,%edx,1),%ebx
408849:	75 2a                	jne    0x408875
40884b:	83 c1 04             	add    $0x4,%ecx
40884e:	83 f9 06             	cmp    $0x6,%ecx
408851:	7f 0d                	jg     0x408860
408853:	0f b7 1c 01          	movzwl (%ecx,%eax,1),%ebx
408857:	66 3b 1c 11          	cmp    (%ecx,%edx,1),%bx
40885b:	75 18                	jne    0x408875
40885d:	83 c1 02             	add    $0x2,%ecx
408860:	83 f9 07             	cmp    $0x7,%ecx
408863:	7f 09                	jg     0x40886e
408865:	0f b6 58 07          	movzbl 0x7(%eax),%ebx
408869:	3a 5a 07             	cmp    0x7(%edx),%bl
40886c:	75 07                	jne    0x408875
40886e:	b8 01 00 00 00       	mov    $0x1,%eax
408873:	5b                   	pop    %ebx
408874:	c3                   	ret
408875:	31 c0                	xor    %eax,%eax
408877:	5b                   	pop    %ebx
408878:	c3                   	ret
408879:	8d 40 00             	lea    0x0(%eax),%eax
40887c:	85 c0                	test   %eax,%eax
40887e:	75 0a                	jne    0x40888a
408880:	85 d2                	test   %edx,%edx
408882:	74 05                	je     0x408889
408884:	8b 42 fc             	mov    -0x4(%edx),%eax
408887:	f7 d8                	neg    %eax
408889:	c3                   	ret
40888a:	85 d2                	test   %edx,%edx
40888c:	75 04                	jne    0x408892
40888e:	8b 40 fc             	mov    -0x4(%eax),%eax
408891:	c3                   	ret
408892:	53                   	push   %ebx
408893:	55                   	push   %ebp
408894:	56                   	push   %esi
408895:	8b 68 fc             	mov    -0x4(%eax),%ebp
408898:	8b 5a fc             	mov    -0x4(%edx),%ebx
40889b:	29 dd                	sub    %ebx,%ebp
40889d:	19 c9                	sbb    %ecx,%ecx
40889f:	21 e9                	and    %ebp,%ecx
4088a1:	01 d9                	add    %ebx,%ecx
4088a3:	8d 34 01             	lea    (%ecx,%eax,1),%esi
4088a6:	01 ca                	add    %ecx,%edx
4088a8:	f7 d9                	neg    %ecx
4088aa:	74 63                	je     0x40890f
4088ac:	0f b7 04 31          	movzwl (%ecx,%esi,1),%eax
4088b0:	0f b7 1c 11          	movzwl (%ecx,%edx,1),%ebx
4088b4:	39 d8                	cmp    %ebx,%eax
4088b6:	74 52                	je     0x40890a
4088b8:	38 d8                	cmp    %bl,%al
4088ba:	74 2c                	je     0x4088e8
4088bc:	b4 00                	mov    $0x0,%ah
4088be:	b7 00                	mov    $0x0,%bh
4088c0:	3c 61                	cmp    $0x61,%al
4088c2:	7c 07                	jl     0x4088cb
4088c4:	3c 7a                	cmp    $0x7a,%al
4088c6:	7f 03                	jg     0x4088cb
4088c8:	83 e8 20             	sub    $0x20,%eax
4088cb:	80 fb 61             	cmp    $0x61,%bl
4088ce:	7c 08                	jl     0x4088d8
4088d0:	80 fb 7a             	cmp    $0x7a,%bl
4088d3:	7f 03                	jg     0x4088d8
4088d5:	83 eb 20             	sub    $0x20,%ebx
4088d8:	29 d8                	sub    %ebx,%eax
4088da:	75 35                	jne    0x408911
4088dc:	0f b7 04 31          	movzwl (%ecx,%esi,1),%eax
4088e0:	0f b7 1c 11          	movzwl (%ecx,%edx,1),%ebx
4088e4:	38 fc                	cmp    %bh,%ah
4088e6:	74 22                	je     0x40890a
4088e8:	c1 e8 08             	shr    $0x8,%eax
4088eb:	c1 eb 08             	shr    $0x8,%ebx
4088ee:	3c 61                	cmp    $0x61,%al
4088f0:	7c 07                	jl     0x4088f9
4088f2:	3c 7a                	cmp    $0x7a,%al
4088f4:	7f 03                	jg     0x4088f9
4088f6:	83 e8 20             	sub    $0x20,%eax
4088f9:	80 fb 61             	cmp    $0x61,%bl
4088fc:	7c 08                	jl     0x408906
4088fe:	80 fb 7a             	cmp    $0x7a,%bl
408901:	7f 03                	jg     0x408906
408903:	83 eb 20             	sub    $0x20,%ebx
408906:	29 d8                	sub    %ebx,%eax
408908:	75 07                	jne    0x408911
40890a:	83 c1 02             	add    $0x2,%ecx
40890d:	7c 9d                	jl     0x4088ac
40890f:	89 e8                	mov    %ebp,%eax
408911:	5e                   	pop    %esi
408912:	5d                   	pop    %ebp
408913:	5b                   	pop    %ebx
408914:	c3                   	ret
408915:	8d 40 00             	lea    0x0(%eax),%eax
408918:	39 d0                	cmp    %edx,%eax
40891a:	74 19                	je     0x408935
40891c:	09 c0                	or     %eax,%eax
40891e:	74 17                	je     0x408937
408920:	09 d2                	or     %edx,%edx
408922:	74 14                	je     0x408938
408924:	8b 48 fc             	mov    -0x4(%eax),%ecx
408927:	3b 4a fc             	cmp    -0x4(%edx),%ecx
40892a:	75 0c                	jne    0x408938
40892c:	e8 4b ff ff ff       	call   0x40887c
408931:	85 c0                	test   %eax,%eax
408933:	75 03                	jne    0x408938
408935:	b0 01                	mov    $0x1,%al
408937:	c3                   	ret
408938:	31 c0                	xor    %eax,%eax
40893a:	c3                   	ret
40893b:	90                   	nop
40893c:	53                   	push   %ebx
40893d:	56                   	push   %esi
40893e:	57                   	push   %edi
40893f:	8b fa                	mov    %edx,%edi
408941:	8b f0                	mov    %eax,%esi
408943:	8b c6                	mov    %esi,%eax
408945:	85 c0                	test   %eax,%eax
408947:	74 05                	je     0x40894e
408949:	83 e8 04             	sub    $0x4,%eax
40894c:	8b 00                	mov    (%eax),%eax
40894e:	8b d8                	mov    %eax,%ebx
408950:	8b c6                	mov    %esi,%eax
408952:	e8 8d c2 ff ff       	call   0x404be4
408957:	8b d0                	mov    %eax,%edx
408959:	8b c7                	mov    %edi,%eax
40895b:	8b cb                	mov    %ebx,%ecx
40895d:	e8 ae be ff ff       	call   0x404810
408962:	85 db                	test   %ebx,%ebx
408964:	7e 09                	jle    0x40896f
408966:	53                   	push   %ebx
408967:	8b 07                	mov    (%edi),%eax
408969:	50                   	push   %eax
40896a:	e8 f1 e3 ff ff       	call   0x406d60
40896f:	5f                   	pop    %edi
408970:	5e                   	pop    %esi
408971:	5b                   	pop    %ebx
408972:	c3                   	ret
408973:	90                   	nop
408974:	53                   	push   %ebx
408975:	56                   	push   %esi
408976:	57                   	push   %edi
408977:	55                   	push   %ebp
408978:	8b ea                	mov    %edx,%ebp
40897a:	8b f8                	mov    %eax,%edi
40897c:	8b df                	mov    %edi,%ebx
40897e:	85 db                	test   %ebx,%ebx
408980:	74 05                	je     0x408987
408982:	83 eb 04             	sub    $0x4,%ebx
408985:	8b 1b                	mov    (%ebx),%ebx
408987:	8b f5                	mov    %ebp,%esi
408989:	85 f6                	test   %esi,%esi
40898b:	74 05                	je     0x408992
40898d:	83 ee 04             	sub    $0x4,%esi
408990:	8b 36                	mov    (%esi),%esi
408992:	56                   	push   %esi
408993:	8b c5                	mov    %ebp,%eax
408995:	e8 4a c2 ff ff       	call   0x404be4
40899a:	50                   	push   %eax
40899b:	53                   	push   %ebx
40899c:	8b c7                	mov    %edi,%eax
40899e:	e8 41 c2 ff ff       	call   0x404be4
4089a3:	50                   	push   %eax
4089a4:	6a 01                	push   $0x1
4089a6:	68 00 04 00 00       	push   $0x400
4089ab:	e8 68 df ff ff       	call   0x406918
4089b0:	83 e8 02             	sub    $0x2,%eax
4089b3:	5d                   	pop    %ebp
4089b4:	5f                   	pop    %edi
4089b5:	5e                   	pop    %esi
4089b6:	5b                   	pop    %ebx
4089b7:	c3                   	ret
4089b8:	53                   	push   %ebx
4089b9:	56                   	push   %esi
4089ba:	57                   	push   %edi
4089bb:	8b d9                	mov    %ecx,%ebx
4089bd:	8b fa                	mov    %edx,%edi
4089bf:	8b f0                	mov    %eax,%esi
4089c1:	53                   	push   %ebx
4089c2:	57                   	push   %edi
4089c3:	53                   	push   %ebx
4089c4:	56                   	push   %esi
4089c5:	6a 01                	push   $0x1
4089c7:	68 00 04 00 00       	push   $0x400
4089cc:	e8 47 df ff ff       	call   0x406918
4089d1:	83 e8 02             	sub    $0x2,%eax
4089d4:	5f                   	pop    %edi
4089d5:	5e                   	pop    %esi
4089d6:	5b                   	pop    %ebx
4089d7:	c3                   	ret
4089d8:	53                   	push   %ebx
4089d9:	56                   	push   %esi
4089da:	57                   	push   %edi
4089db:	55                   	push   %ebp
4089dc:	8b ea                	mov    %edx,%ebp
4089de:	8b f8                	mov    %eax,%edi
4089e0:	8b c7                	mov    %edi,%eax
4089e2:	85 c0                	test   %eax,%eax
4089e4:	74 05                	je     0x4089eb
4089e6:	83 e8 04             	sub    $0x4,%eax
4089e9:	8b 00                	mov    (%eax),%eax
4089eb:	8b f0                	mov    %eax,%esi
4089ed:	bb 01 00 00 00       	mov    $0x1,%ebx
4089f2:	eb 01                	jmp    0x4089f5
4089f4:	43                   	inc    %ebx
4089f5:	3b f3                	cmp    %ebx,%esi
4089f7:	7c 07                	jl     0x408a00
4089f9:	80 7c 1f ff 20       	cmpb   $0x20,-0x1(%edi,%ebx,1)