4097fe:	aa                   	stos   %al,%es:(%edi)
4097ff:	49                   	dec    %ecx
409800:	74 0f                	je     0x409811
409802:	4b                   	dec    %ebx
409803:	75 f4                	jne    0x4097f9
409805:	8a 45 fa             	mov    -0x6(%ebp),%al
409808:	84 c0                	test   %al,%al
40980a:	74 ed                	je     0x4097f9
40980c:	aa                   	stos   %al,%es:(%edi)
40980d:	b3 03                	mov    $0x3,%bl
40980f:	eb e8                	jmp    0x4097f9
409811:	09 d2                	or     %edx,%edx
409813:	74 1c                	je     0x409831
409815:	8a 45 fb             	mov    -0x5(%ebp),%al
409818:	84 c0                	test   %al,%al
40981a:	74 01                	je     0x40981d
40981c:	aa                   	stos   %al,%es:(%edi)
40981d:	e3 09                	jecxz  0x409828
40981f:	b0 30                	mov    $0x30,%al
409821:	aa                   	stos   %al,%es:(%edi)
409822:	4a                   	dec    %edx
409823:	74 0c                	je     0x409831
409825:	41                   	inc    %ecx
409826:	75 f9                	jne    0x409821
409828:	e8 f5 fe ff ff       	call   0x409722
40982d:	aa                   	stos   %al,%es:(%edi)
40982e:	4a                   	dec    %edx
40982f:	75 f7                	jne    0x409828
409831:	c3                   	ret
409832:	31 db                	xor    %ebx,%ebx
409834:	8a 5d f3             	mov    -0xd(%ebp),%bl
409837:	b9 03 00 00 00       	mov    $0x3,%ecx
40983c:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409840:	74 08                	je     0x40984a
409842:	8a 5d f2             	mov    -0xe(%ebp),%bl
409845:	b9 0f 04 00 00       	mov    $0x40f,%ecx
40984a:	38 cb                	cmp    %cl,%bl
40984c:	76 02                	jbe    0x409850
40984e:	88 cb                	mov    %cl,%bl
409850:	00 eb                	add    %ch,%bl
409852:	8d 9c 9b 95 98 40 00 	lea    0x409895(%ebx,%ebx,4),%ebx
409859:	03 5d ec             	add    -0x14(%ebp),%ebx
40985c:	b9 05 00 00 00       	mov    $0x5,%ecx
409861:	8a 03                	mov    (%ebx),%al
409863:	3c 40                	cmp    $0x40,%al
409865:	74 1e                	je     0x409885
409867:	51                   	push   %ecx
409868:	53                   	push   %ebx
409869:	3c 24                	cmp    $0x24,%al
40986b:	74 07                	je     0x409874
40986d:	3c 2a                	cmp    $0x2a,%al
40986f:	74 0a                	je     0x40987b
409871:	aa                   	stos   %al,%es:(%edi)
409872:	eb 0c                	jmp    0x409880
409874:	e8 0d 00 00 00       	call   0x409886
409879:	eb 05                	jmp    0x409880
40987b:	e8 4d ff ff ff       	call   0x4097cd
409880:	5b                   	pop    %ebx
409881:	59                   	pop    %ecx
409882:	43                   	inc    %ebx
409883:	e2 dc                	loop   0x409861
409885:	c3                   	ret
409886:	56                   	push   %esi
409887:	8b 75 f4             	mov    -0xc(%ebp),%esi
40988a:	85 f6                	test   %esi,%esi
40988c:	74 05                	je     0x409893
40988e:	8b 4e fc             	mov    -0x4(%esi),%ecx
409891:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409893:	5e                   	pop    %esi
409894:	c3                   	ret
409895:	24 2a                	and    $0x2a,%al
409897:	40                   	inc    %eax
409898:	40                   	inc    %eax
409899:	40                   	inc    %eax
40989a:	2a 24 40             	sub    (%eax,%eax,2),%ah
40989d:	40                   	inc    %eax
40989e:	40                   	inc    %eax
40989f:	24 20                	and    $0x20,%al
4098a1:	2a 40 40             	sub    0x40(%eax),%al
4098a4:	2a 20                	sub    (%eax),%ah
4098a6:	24 40                	and    $0x40,%al
4098a8:	40                   	inc    %eax
4098a9:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
4098ac:	29 40 2d             	sub    %eax,0x2d(%eax)
4098af:	24 2a                	and    $0x2a,%al
4098b1:	40                   	inc    %eax
4098b2:	40                   	inc    %eax
4098b3:	24 2d                	and    $0x2d,%al
4098b5:	2a 40 40             	sub    0x40(%eax),%al
4098b8:	24 2a                	and    $0x2a,%al
4098ba:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
4098bf:	24 29                	and    $0x29,%al
4098c1:	40                   	inc    %eax
4098c2:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
4098c7:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
4098cd:	24 2d                	and    $0x2d,%al
4098cf:	40                   	inc    %eax
4098d0:	40                   	inc    %eax
4098d1:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
4098d6:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
4098db:	2a 20                	sub    (%eax),%ah
4098dd:	24 2d                	and    $0x2d,%al
4098df:	40                   	inc    %eax
4098e0:	24 20                	and    $0x20,%al
4098e2:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
4098e8:	2a 40 2a             	sub    0x2a(%eax),%al
4098eb:	2d 20 24 40 28       	sub    $0x28402420,%eax
4098f0:	24 20                	and    $0x20,%al
4098f2:	2a 29                	sub    (%ecx),%ch
4098f4:	28 2a                	sub    %ch,(%edx)
4098f6:	20 24 29             	and    %ah,(%ecx,%ebp,1)
4098f9:	8b e5                	mov    %ebp,%esp
4098fb:	5d                   	pop    %ebp
4098fc:	c2 0c 00             	ret    $0xc
4098ff:	90                   	nop
409900:	55                   	push   %ebp
409901:	8b ec                	mov    %esp,%ebp
409903:	83 c4 b8             	add    $0xffffffb8,%esp
409906:	57                   	push   %edi
409907:	56                   	push   %esi
409908:	53                   	push   %ebx
409909:	89 45 fc             	mov    %eax,-0x4(%ebp)
40990c:	89 d7                	mov    %edx,%edi
40990e:	89 cb                	mov    %ecx,%ebx
409910:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
409917:	a0 8b c6 49 00       	mov    0x49c68b,%al
40991c:	88 45 f7             	mov    %al,-0x9(%ebp)
40991f:	a0 8a c6 49 00       	mov    0x49c68a,%al
409924:	88 45 f6             	mov    %al,-0xa(%ebp)
409927:	b9 02 00 00 00       	mov    $0x2,%ecx
40992c:	80 fb 00             	cmp    $0x0,%bl
40992f:	74 0f                	je     0x409940
409931:	8b 07                	mov    (%edi),%eax
409933:	0b 47 04             	or     0x4(%edi),%eax
409936:	74 1a                	je     0x409952
409938:	8b 4f 04             	mov    0x4(%edi),%ecx
40993b:	c1 e9 1f             	shr    $0x1f,%ecx
40993e:	eb 12                	jmp    0x409952
409940:	0f b7 47 08          	movzwl 0x8(%edi),%eax
409944:	0b 07                	or     (%edi),%eax
409946:	0b 47 04             	or     0x4(%edi),%eax
409949:	74 07                	je     0x409952
40994b:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
40994f:	c1 e9 0f             	shr    $0xf,%ecx
409952:	e8 8b 00 00 00       	call   0x4099e2
409957:	74 4c                	je     0x4099a5
409959:	e8 bf 00 00 00       	call   0x409a1d
40995e:	8b 45 f0             	mov    -0x10(%ebp),%eax
409961:	ba 0f 27 00 00       	mov    $0x270f,%edx
409966:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
40996a:	75 0a                	jne    0x409976
40996c:	2b 45 e8             	sub    -0x18(%ebp),%eax
40996f:	89 c2                	mov    %eax,%edx
409971:	b8 12 00 00 00       	mov    $0x12,%eax
409976:	50                   	push   %eax
409977:	52                   	push   %edx
409978:	8d 45 d0             	lea    -0x30(%ebp),%eax
40997b:	89 fa                	mov    %edi,%edx
40997d:	89 d9                	mov    %ebx,%ecx
40997f:	e8 70 02 00 00       	call   0x409bf4
409984:	66 8b 45 d0          	mov    -0x30(%ebp),%ax
409988:	66 3d 00 80          	cmp    $0x8000,%ax
40998c:	74 17                	je     0x4099a5
40998e:	66 3d ff 7f          	cmp    $0x7fff,%ax
409992:	74 11                	je     0x4099a5
409994:	80 fb 00             	cmp    $0x0,%bl
409997:	75 23                	jne    0x4099bc
409999:	66 3d 12 00          	cmp    $0x12,%ax
40999d:	7e 1d                	jle    0x4099bc
40999f:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
4099a3:	75 17                	jne    0x4099bc
4099a5:	6a 00                	push   $0x0
4099a7:	6a 0f                	push   $0xf
4099a9:	6a 00                	push   $0x0
4099ab:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099ae:	89 fa                	mov    %edi,%edx
4099b0:	89 d9                	mov    %ebx,%ecx
4099b2:	e8 75 fc ff ff       	call   0x40962c
4099b7:	e9 2d 02 00 00       	jmp    0x409be9
4099bc:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
4099c0:	75 16                	jne    0x4099d8
4099c2:	b9 02 00 00 00       	mov    $0x2,%ecx
4099c7:	e8 16 00 00 00       	call   0x4099e2
4099cc:	74 d7                	je     0x4099a5
4099ce:	3b 75 cc             	cmp    -0x34(%ebp),%esi
4099d1:	74 05                	je     0x4099d8
4099d3:	e8 45 00 00 00       	call   0x409a1d
4099d8:	e8 eb 00 00 00       	call   0x409ac8
4099dd:	e9 07 02 00 00       	jmp    0x409be9
4099e2:	8b 75 08             	mov    0x8(%ebp),%esi
4099e5:	e3 1d                	jecxz  0x409a04
4099e7:	ac                   	lods   %ds:(%esi),%al
4099e8:	3c 27                	cmp    $0x27,%al
4099ea:	74 24                	je     0x409a10
4099ec:	3c 22                	cmp    $0x22,%al
4099ee:	74 20                	je     0x409a10
4099f0:	08 c0                	or     %al,%al
4099f2:	74 10                	je     0x409a04
4099f4:	3c 3b                	cmp    $0x3b,%al
4099f6:	75 ef                	jne    0x4099e7
4099f8:	e2 ed                	loop   0x4099e7
4099fa:	8a 06                	mov    (%esi),%al
4099fc:	08 c0                	or     %al,%al
4099fe:	74 04                	je     0x409a04
409a00:	3c 3b                	cmp    $0x3b,%al
409a02:	75 0b                	jne    0x409a0f
409a04:	8b 75 08             	mov    0x8(%ebp),%esi
409a07:	8a 06                	mov    (%esi),%al
409a09:	08 c0                	or     %al,%al
409a0b:	74 02                	je     0x409a0f
409a0d:	3c 3b                	cmp    $0x3b,%al
409a0f:	c3                   	ret
409a10:	88 c4                	mov    %al,%ah
409a12:	ac                   	lods   %ds:(%esi),%al
409a13:	38 e0                	cmp    %ah,%al
409a15:	74 d0                	je     0x4099e7
409a17:	08 c0                	or     %al,%al
409a19:	75 f7                	jne    0x409a12
409a1b:	eb e7                	jmp    0x409a04
409a1d:	53                   	push   %ebx
409a1e:	89 75 cc             	mov    %esi,-0x34(%ebp)
409a21:	bb ff 7f 00 00       	mov    $0x7fff,%ebx
409a26:	31 c9                	xor    %ecx,%ecx
409a28:	31 d2                	xor    %edx,%edx
409a2a:	c7 45 e8 ff ff ff ff 	movl   $0xffffffff,-0x18(%ebp)
409a31:	88 55 cb             	mov    %dl,-0x35(%ebp)
409a34:	88 55 ef             	mov    %dl,-0x11(%ebp)
409a37:	ac                   	lods   %ds:(%esi),%al
409a38:	3c 23                	cmp    $0x23,%al
409a3a:	74 26                	je     0x409a62
409a3c:	3c 30                	cmp    $0x30,%al
409a3e:	74 25                	je     0x409a65
409a40:	3c 2e                	cmp    $0x2e,%al
409a42:	74 2c                	je     0x409a70
409a44:	3c 2c                	cmp    $0x2c,%al
409a46:	74 33                	je     0x409a7b
409a48:	3c 27                	cmp    $0x27,%al
409a4a:	74 35                	je     0x409a81
409a4c:	3c 22                	cmp    $0x22,%al
409a4e:	74 31                	je     0x409a81
409a50:	3c 45                	cmp    $0x45,%al
409a52:	74 3a                	je     0x409a8e
409a54:	3c 65                	cmp    $0x65,%al
409a56:	74 36                	je     0x409a8e
409a58:	3c 3b                	cmp    $0x3b,%al
409a5a:	74 46                	je     0x409aa2
409a5c:	08 c0                	or     %al,%al
409a5e:	75 d7                	jne    0x409a37
409a60:	eb 40                	jmp    0x409aa2
409a62:	42                   	inc    %edx
409a63:	eb d2                	jmp    0x409a37
409a65:	39 da                	cmp    %ebx,%edx
409a67:	7d 02                	jge    0x409a6b
409a69:	89 d3                	mov    %edx,%ebx
409a6b:	42                   	inc    %edx
409a6c:	89 d1                	mov    %edx,%ecx
409a6e:	eb c7                	jmp    0x409a37
409a70:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
409a74:	75 c1                	jne    0x409a37
409a76:	89 55 e8             	mov    %edx,-0x18(%ebp)
409a79:	eb bc                	jmp    0x409a37
409a7b:	c6 45 cb 01          	movb   $0x1,-0x35(%ebp)
409a7f:	eb b6                	jmp    0x409a37
409a81:	88 c4                	mov    %al,%ah
409a83:	ac                   	lods   %ds:(%esi),%al
409a84:	38 e0                	cmp    %ah,%al
409a86:	74 af                	je     0x409a37
409a88:	08 c0                	or     %al,%al
409a8a:	75 f7                	jne    0x409a83
409a8c:	eb 14                	jmp    0x409aa2
409a8e:	ac                   	lods   %ds:(%esi),%al
409a8f:	3c 2d                	cmp    $0x2d,%al
409a91:	74 04                	je     0x409a97
409a93:	3c 2b                	cmp    $0x2b,%al
409a95:	75 a1                	jne    0x409a38
409a97:	c6 45 ef 01          	movb   $0x1,-0x11(%ebp)
409a9b:	ac                   	lods   %ds:(%esi),%al
409a9c:	3c 30                	cmp    $0x30,%al
409a9e:	74 fb                	je     0x409a9b
409aa0:	eb 96                	jmp    0x409a38
409aa2:	89 55 f0             	mov    %edx,-0x10(%ebp)
409aa5:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
409aa9:	75 03                	jne    0x409aae
409aab:	89 55 e8             	mov    %edx,-0x18(%ebp)
409aae:	8b 45 e8             	mov    -0x18(%ebp),%eax
409ab1:	29 c8                	sub    %ecx,%eax
409ab3:	7e 02                	jle    0x409ab7
409ab5:	31 c0                	xor    %eax,%eax
409ab7:	89 45 c4             	mov    %eax,-0x3c(%ebp)
409aba:	8b 45 e8             	mov    -0x18(%ebp),%eax
409abd:	29 d8                	sub    %ebx,%eax
409abf:	7d 02                	jge    0x409ac3
409ac1:	31 c0                	xor    %eax,%eax
409ac3:	89 45 c0             	mov    %eax,-0x40(%ebp)
409ac6:	5b                   	pop    %ebx
409ac7:	c3                   	ret
409ac8:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
409acc:	74 07                	je     0x409ad5
409ace:	8b 45 e8             	mov    -0x18(%ebp),%eax
409ad1:	31 d2                	xor    %edx,%edx
409ad3:	eb 13                	jmp    0x409ae8
409ad5:	0f bf 45 d0          	movswl -0x30(%ebp),%eax
409ad9:	3b 45 e8             	cmp    -0x18(%ebp),%eax
409adc:	7f 03                	jg     0x409ae1
409ade:	8b 45 e8             	mov    -0x18(%ebp),%eax
409ae1:	0f bf 55 d0          	movswl -0x30(%ebp),%edx
409ae5:	2b 55 e8             	sub    -0x18(%ebp),%edx
409ae8:	89 45 bc             	mov    %eax,-0x44(%ebp)
409aeb:	89 55 b8             	mov    %edx,-0x48(%ebp)
409aee:	8b 75 cc             	mov    -0x34(%ebp),%esi
409af1:	8b 7d fc             	mov    -0x4(%ebp),%edi
409af4:	8d 5d d3             	lea    -0x2d(%ebp),%ebx
409af7:	80 7d d2 00          	cmpb   $0x0,-0x2e(%ebp)
409afb:	74 08                	je     0x409b05
409afd:	3b 75 08             	cmp    0x8(%ebp),%esi
409b00:	75 03                	jne    0x409b05
409b02:	b0 2d                	mov    $0x2d,%al
409b04:	aa                   	stos   %al,%es:(%edi)
409b05:	ac                   	lods   %ds:(%esi),%al
409b06:	3c 23                	cmp    $0x23,%al
409b08:	74 27                	je     0x409b31
409b0a:	3c 30                	cmp    $0x30,%al
409b0c:	74 23                	je     0x409b31
409b0e:	3c 2e                	cmp    $0x2e,%al
409b10:	74 f3                	je     0x409b05
409b12:	3c 2c                	cmp    $0x2c,%al
409b14:	74 ef                	je     0x409b05
409b16:	3c 27                	cmp    $0x27,%al
409b18:	74 1e                	je     0x409b38
409b1a:	3c 22                	cmp    $0x22,%al
409b1c:	74 1a                	je     0x409b38
409b1e:	3c 45                	cmp    $0x45,%al
409b20:	74 24                	je     0x409b46
409b22:	3c 65                	cmp    $0x65,%al
409b24:	74 20                	je     0x409b46
409b26:	3c 3b                	cmp    $0x3b,%al
409b28:	74 53                	je     0x409b7d
409b2a:	08 c0                	or     %al,%al
409b2c:	74 4f                	je     0x409b7d
409b2e:	aa                   	stos   %al,%es:(%edi)
409b2f:	eb d4                	jmp    0x409b05
409b31:	e8 4d 00 00 00       	call   0x409b83
409b36:	eb cd                	jmp    0x409b05
409b38:	88 c4                	mov    %al,%ah
409b3a:	ac                   	lods   %ds:(%esi),%al
409b3b:	38 e0                	cmp    %ah,%al
409b3d:	74 c6                	je     0x409b05
409b3f:	08 c0                	or     %al,%al
409b41:	74 3a                	je     0x409b7d
409b43:	aa                   	stos   %al,%es:(%edi)