40872e:	77 02                	ja     0x408732
408730:	2c 20                	sub    $0x20,%al
408732:	8a 57 ff             	mov    -0x1(%edi),%dl
408735:	80 fa 61             	cmp    $0x61,%dl
408738:	72 08                	jb     0x408742
40873a:	80 fa 7a             	cmp    $0x7a,%dl
40873d:	77 03                	ja     0x408742
40873f:	80 ea 20             	sub    $0x20,%dl
408742:	29 d0                	sub    %edx,%eax
408744:	74 db                	je     0x408721
408746:	5e                   	pop    %esi
408747:	5f                   	pop    %edi
408748:	c3                   	ret
408749:	8d 40 00             	lea    0x0(%eax),%eax
40874c:	57                   	push   %edi
40874d:	56                   	push   %esi
40874e:	53                   	push   %ebx
40874f:	89 d7                	mov    %edx,%edi
408751:	89 c6                	mov    %eax,%esi
408753:	89 cb                	mov    %ecx,%ebx
408755:	31 c0                	xor    %eax,%eax
408757:	09 c9                	or     %ecx,%ecx
408759:	74 2f                	je     0x40878a
40875b:	f2 ae                	repnz scas %es:(%edi),%al
40875d:	29 cb                	sub    %ecx,%ebx
40875f:	89 d9                	mov    %ebx,%ecx
408761:	89 d7                	mov    %edx,%edi
408763:	31 d2                	xor    %edx,%edx
408765:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
408767:	74 21                	je     0x40878a
408769:	8a 46 ff             	mov    -0x1(%esi),%al
40876c:	3c 61                	cmp    $0x61,%al
40876e:	72 06                	jb     0x408776
408770:	3c 7a                	cmp    $0x7a,%al
408772:	77 02                	ja     0x408776
408774:	2c 20                	sub    $0x20,%al
408776:	8a 57 ff             	mov    -0x1(%edi),%dl
408779:	80 fa 61             	cmp    $0x61,%dl
40877c:	72 08                	jb     0x408786
40877e:	80 fa 7a             	cmp    $0x7a,%dl
408781:	77 03                	ja     0x408786
408783:	80 ea 20             	sub    $0x20,%dl
408786:	29 d0                	sub    %edx,%eax
408788:	74 db                	je     0x408765
40878a:	5b                   	pop    %ebx
40878b:	5e                   	pop    %esi
40878c:	5f                   	pop    %edi
40878d:	c3                   	ret
40878e:	8b c0                	mov    %eax,%eax
408790:	eb 08                	jmp    0x40879a
408792:	84 c9                	test   %cl,%cl
408794:	75 03                	jne    0x408799
408796:	33 c0                	xor    %eax,%eax
408798:	c3                   	ret
408799:	40                   	inc    %eax
40879a:	8a 08                	mov    (%eax),%cl
40879c:	3a d1                	cmp    %cl,%dl
40879e:	75 f2                	jne    0x408792
4087a0:	c3                   	ret
4087a1:	8d 40 00             	lea    0x0(%eax),%eax
4087a4:	57                   	push   %edi
4087a5:	56                   	push   %esi
4087a6:	53                   	push   %ebx
4087a7:	09 c0                	or     %eax,%eax
4087a9:	74 44                	je     0x4087ef
4087ab:	09 d2                	or     %edx,%edx
4087ad:	74 40                	je     0x4087ef
4087af:	89 c3                	mov    %eax,%ebx
4087b1:	89 d7                	mov    %edx,%edi
4087b3:	32 c0                	xor    %al,%al
4087b5:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4087ba:	f2 ae                	repnz scas %es:(%edi),%al
4087bc:	f7 d1                	not    %ecx
4087be:	49                   	dec    %ecx
4087bf:	74 2e                	je     0x4087ef
4087c1:	89 ce                	mov    %ecx,%esi
4087c3:	89 df                	mov    %ebx,%edi
4087c5:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4087ca:	f2 ae                	repnz scas %es:(%edi),%al
4087cc:	f7 d1                	not    %ecx
4087ce:	29 f1                	sub    %esi,%ecx
4087d0:	76 1d                	jbe    0x4087ef
4087d2:	89 df                	mov    %ebx,%edi
4087d4:	8d 5e ff             	lea    -0x1(%esi),%ebx
4087d7:	89 d6                	mov    %edx,%esi
4087d9:	ac                   	lods   %ds:(%esi),%al
4087da:	f2 ae                	repnz scas %es:(%edi),%al
4087dc:	75 11                	jne    0x4087ef
4087de:	89 c8                	mov    %ecx,%eax
4087e0:	57                   	push   %edi
4087e1:	89 d9                	mov    %ebx,%ecx
4087e3:	f3 a6                	repz cmpsb %es:(%edi),%ds:(%esi)
4087e5:	5f                   	pop    %edi
4087e6:	89 c1                	mov    %eax,%ecx
4087e8:	75 ed                	jne    0x4087d7
4087ea:	8d 47 ff             	lea    -0x1(%edi),%eax
4087ed:	eb 02                	jmp    0x4087f1
4087ef:	31 c0                	xor    %eax,%eax
4087f1:	5b                   	pop    %ebx
4087f2:	5e                   	pop    %esi
4087f3:	5f                   	pop    %edi
4087f4:	c3                   	ret
4087f5:	8d 40 00             	lea    0x0(%eax),%eax
4087f8:	53                   	push   %ebx
4087f9:	56                   	push   %esi
4087fa:	8b f2                	mov    %edx,%esi
4087fc:	8b d8                	mov    %eax,%ebx
4087fe:	8b c6                	mov    %esi,%eax
408800:	8b d3                	mov    %ebx,%edx
408802:	e8 89 b9 ff ff       	call   0x404190
408807:	5e                   	pop    %esi
408808:	5b                   	pop    %ebx
408809:	c3                   	ret
40880a:	8b c0                	mov    %eax,%eax
40880c:	53                   	push   %ebx
40880d:	8b d8                	mov    %eax,%ebx
40880f:	83 c3 04             	add    $0x4,%ebx
408812:	8b c3                	mov    %ebx,%eax
408814:	e8 a3 9e ff ff       	call   0x4026bc
408819:	89 18                	mov    %ebx,(%eax)
40881b:	83 c0 04             	add    $0x4,%eax
40881e:	5b                   	pop    %ebx
40881f:	c3                   	ret
408820:	83 e8 04             	sub    $0x4,%eax
408823:	8b 00                	mov    (%eax),%eax
408825:	83 e8 04             	sub    $0x4,%eax
408828:	c3                   	ret
408829:	8d 40 00             	lea    0x0(%eax),%eax
40882c:	53                   	push   %ebx
40882d:	56                   	push   %esi
40882e:	8b d8                	mov    %eax,%ebx
408830:	85 db                	test   %ebx,%ebx
408832:	75 05                	jne    0x408839
408834:	33 c0                	xor    %eax,%eax
408836:	5e                   	pop    %esi
408837:	5b                   	pop    %ebx
408838:	c3                   	ret
408839:	8b c3                	mov    %ebx,%eax
40883b:	e8 cc fd ff ff       	call   0x40860c
408840:	8b f0                	mov    %eax,%esi
408842:	46                   	inc    %esi
408843:	8b c6                	mov    %esi,%eax
408845:	e8 c2 ff ff ff       	call   0x40880c
40884a:	8b ce                	mov    %esi,%ecx
40884c:	8b d3                	mov    %ebx,%edx
40884e:	e8 e5 fd ff ff       	call   0x408638
408853:	5e                   	pop    %esi
408854:	5b                   	pop    %ebx
408855:	c3                   	ret
408856:	8b c0                	mov    %eax,%eax
408858:	85 c0                	test   %eax,%eax
40885a:	74 0a                	je     0x408866
40885c:	83 e8 04             	sub    $0x4,%eax
40885f:	8b 10                	mov    (%eax),%edx
408861:	e8 76 9e ff ff       	call   0x4026dc
408866:	c3                   	ret
408867:	90                   	nop
408868:	53                   	push   %ebx
408869:	56                   	push   %esi
40886a:	57                   	push   %edi
40886b:	83 c4 d8             	add    $0xffffffd8,%esp
40886e:	8b d9                	mov    %ecx,%ebx
408870:	8b f2                	mov    %edx,%esi
408872:	8b f8                	mov    %eax,%edi
408874:	83 fb 1f             	cmp    $0x1f,%ebx
408877:	76 05                	jbe    0x40887e
408879:	bb 1f 00 00 00       	mov    $0x1f,%ebx
40887e:	8b d3                	mov    %ebx,%edx
408880:	4a                   	dec    %edx
408881:	8b c6                	mov    %esi,%eax
408883:	e8 b8 36 00 00       	call   0x40bf40
408888:	3c 01                	cmp    $0x1,%al
40888a:	75 01                	jne    0x40888d
40888c:	4b                   	dec    %ebx
40888d:	8b c4                	mov    %esp,%eax
40888f:	8b cb                	mov    %ebx,%ecx
408891:	8b d6                	mov    %esi,%edx
408893:	e8 a0 fd ff ff       	call   0x408638
408898:	c6 04 1c 00          	movb   $0x0,(%esp,%ebx,1)
40889c:	8b c4                	mov    %esp,%eax
40889e:	89 44 24 20          	mov    %eax,0x20(%esp)
4088a2:	c6 44 24 24 06       	movb   $0x6,0x24(%esp)
4088a7:	8d 54 24 20          	lea    0x20(%esp),%edx
4088ab:	8b 04 bd 60 31 46 00 	mov    0x463160(,%edi,4),%eax
4088b2:	33 c9                	xor    %ecx,%ecx
4088b4:	e8 03 f2 ff ff       	call   0x407abc
4088b9:	83 c4 28             	add    $0x28,%esp
4088bc:	5f                   	pop    %edi
4088bd:	5e                   	pop    %esi
4088be:	5b                   	pop    %ebx
4088bf:	c3                   	ret
4088c0:	53                   	push   %ebx
4088c1:	8b 0d d4 dd 46 00    	mov    0x46ddd4,%ecx
4088c7:	83 39 00             	cmpl   $0x0,(%ecx)
4088ca:	74 0c                	je     0x4088d8
4088cc:	8b 1d d4 dd 46 00    	mov    0x46ddd4,%ebx
4088d2:	8b 1b                	mov    (%ebx),%ebx
4088d4:	ff d3                	call   *%ebx
4088d6:	5b                   	pop    %ebx
4088d7:	c3                   	ret
4088d8:	b0 10                	mov    $0x10,%al
4088da:	e8 39 9f ff ff       	call   0x402818
4088df:	5b                   	pop    %ebx
4088e0:	c3                   	ret
4088e1:	8d 40 00             	lea    0x0(%eax),%eax
4088e4:	53                   	push   %ebx
4088e5:	8b d8                	mov    %eax,%ebx
4088e7:	8b c3                	mov    %ebx,%eax
4088e9:	e8 aa b6 ff ff       	call   0x403f98
4088ee:	5b                   	pop    %ebx
4088ef:	c3                   	ret
4088f0:	55                   	push   %ebp
4088f1:	8b ec                	mov    %esp,%ebp
4088f3:	83 c4 94             	add    $0xffffff94,%esp
4088f6:	53                   	push   %ebx
4088f7:	33 db                	xor    %ebx,%ebx
4088f9:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4088fc:	53                   	push   %ebx
4088fd:	56                   	push   %esi
4088fe:	57                   	push   %edi
4088ff:	89 c7                	mov    %eax,%edi
408901:	89 ce                	mov    %ecx,%esi
408903:	31 c0                	xor    %eax,%eax
408905:	89 45 fc             	mov    %eax,-0x4(%ebp)
408908:	03 4d 10             	add    0x10(%ebp),%ecx
40890b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40890e:	31 c0                	xor    %eax,%eax
408910:	89 45 f4             	mov    %eax,-0xc(%ebp)
408913:	89 45 f0             	mov    %eax,-0x10(%ebp)
408916:	89 45 ec             	mov    %eax,-0x14(%ebp)
408919:	09 d2                	or     %edx,%edx
40891b:	74 0d                	je     0x40892a
40891d:	39 ce                	cmp    %ecx,%esi
40891f:	74 09                	je     0x40892a
408921:	ac                   	lods   %ds:(%esi),%al
408922:	3c 25                	cmp    $0x25,%al
408924:	74 0e                	je     0x408934
408926:	aa                   	stos   %al,%es:(%edi)
408927:	4a                   	dec    %edx
408928:	75 f3                	jne    0x40891d
40892a:	89 f8                	mov    %edi,%eax
40892c:	2b 45 f8             	sub    -0x8(%ebp),%eax
40892f:	e9 23 03 00 00       	jmp    0x408c57
408934:	39 ce                	cmp    %ecx,%esi
408936:	74 f2                	je     0x40892a
408938:	ac                   	lods   %ds:(%esi),%al
408939:	3c 25                	cmp    $0x25,%al
40893b:	74 e9                	je     0x408926
40893d:	8d 5e fe             	lea    -0x2(%esi),%ebx
408940:	89 5d e8             	mov    %ebx,-0x18(%ebp)
408943:	88 45 e7             	mov    %al,-0x19(%ebp)
408946:	3c 2d                	cmp    $0x2d,%al
408948:	75 05                	jne    0x40894f
40894a:	39 ce                	cmp    %ecx,%esi
40894c:	74 dc                	je     0x40892a
40894e:	ac                   	lods   %ds:(%esi),%al
40894f:	e8 7e 00 00 00       	call   0x4089d2
408954:	3c 3a                	cmp    $0x3a,%al
408956:	75 0a                	jne    0x408962
408958:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40895b:	39 ce                	cmp    %ecx,%esi
40895d:	74 cb                	je     0x40892a
40895f:	ac                   	lods   %ds:(%esi),%al
408960:	eb e1                	jmp    0x408943
408962:	89 5d e0             	mov    %ebx,-0x20(%ebp)
408965:	bb ff ff ff ff       	mov    $0xffffffff,%ebx
40896a:	3c 2e                	cmp    $0x2e,%al
40896c:	75 0a                	jne    0x408978
40896e:	39 ce                	cmp    %ecx,%esi
408970:	74 b8                	je     0x40892a
408972:	ac                   	lods   %ds:(%esi),%al
408973:	e8 5a 00 00 00       	call   0x4089d2
408978:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40897b:	89 75 d8             	mov    %esi,-0x28(%ebp)
40897e:	51                   	push   %ecx
40897f:	52                   	push   %edx
408980:	e8 95 00 00 00       	call   0x408a1a
408985:	5a                   	pop    %edx
408986:	8b 5d e0             	mov    -0x20(%ebp),%ebx
408989:	29 cb                	sub    %ecx,%ebx
40898b:	73 02                	jae    0x40898f
40898d:	31 db                	xor    %ebx,%ebx
40898f:	80 7d e7 2d          	cmpb   $0x2d,-0x19(%ebp)
408993:	75 0a                	jne    0x40899f
408995:	29 ca                	sub    %ecx,%edx
408997:	73 04                	jae    0x40899d
408999:	01 d1                	add    %edx,%ecx
40899b:	31 d2                	xor    %edx,%edx
40899d:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40899f:	87 d9                	xchg   %ebx,%ecx
4089a1:	29 ca                	sub    %ecx,%edx
4089a3:	73 04                	jae    0x4089a9
4089a5:	01 d1                	add    %edx,%ecx
4089a7:	31 d2                	xor    %edx,%edx
4089a9:	b0 20                	mov    $0x20,%al
4089ab:	f3 aa                	rep stos %al,%es:(%edi)
4089ad:	87 d9                	xchg   %ebx,%ecx
4089af:	29 ca                	sub    %ecx,%edx
4089b1:	73 04                	jae    0x4089b7
4089b3:	01 d1                	add    %edx,%ecx
4089b5:	31 d2                	xor    %edx,%edx
4089b7:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
4089b9:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4089bd:	74 0a                	je     0x4089c9
4089bf:	52                   	push   %edx
4089c0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4089c3:	e8 1c ff ff ff       	call   0x4088e4
4089c8:	5a                   	pop    %edx
4089c9:	59                   	pop    %ecx
4089ca:	8b 75 d8             	mov    -0x28(%ebp),%esi
4089cd:	e9 47 ff ff ff       	jmp    0x408919
4089d2:	31 db                	xor    %ebx,%ebx
4089d4:	3c 2a                	cmp    $0x2a,%al
4089d6:	74 22                	je     0x4089fa
4089d8:	3c 30                	cmp    $0x30,%al
4089da:	72 3d                	jb     0x408a19
4089dc:	3c 39                	cmp    $0x39,%al
4089de:	77 39                	ja     0x408a19
4089e0:	69 db 0a 00 00 00    	imul   $0xa,%ebx,%ebx
4089e6:	2c 30                	sub    $0x30,%al
4089e8:	0f b6 c0             	movzbl %al,%eax
4089eb:	01 c3                	add    %eax,%ebx
4089ed:	39 ce                	cmp    %ecx,%esi
4089ef:	74 03                	je     0x4089f4
4089f1:	ac                   	lods   %ds:(%esi),%al
4089f2:	eb e4                	jmp    0x4089d8
4089f4:	58                   	pop    %eax
4089f5:	e9 30 ff ff ff       	jmp    0x40892a
4089fa:	8b 45 f4             	mov    -0xc(%ebp),%eax
4089fd:	3b 45 08             	cmp    0x8(%ebp),%eax
408a00:	7f 12                	jg     0x408a14
408a02:	ff 45 f4             	incl   -0xc(%ebp)
408a05:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408a08:	80 7c c3 04 00       	cmpb   $0x0,0x4(%ebx,%eax,8)
408a0d:	8b 1c c3             	mov    (%ebx,%eax,8),%ebx
408a10:	74 02                	je     0x408a14
408a12:	31 db                	xor    %ebx,%ebx
408a14:	39 ce                	cmp    %ecx,%esi
408a16:	74 dc                	je     0x4089f4
408a18:	ac                   	lods   %ds:(%esi),%al
408a19:	c3                   	ret
408a1a:	24 df                	and    $0xdf,%al
408a1c:	88 c1                	mov    %al,%cl
408a1e:	b8 01 00 00 00       	mov    $0x1,%eax
408a23:	8b 5d f4             	mov    -0xc(%ebp),%ebx
408a26:	3b 5d 08             	cmp    0x8(%ebp),%ebx
408a29:	7f 5c                	jg     0x408a87
408a2b:	ff 45 f4             	incl   -0xc(%ebp)
408a2e:	8b 75 0c             	mov    0xc(%ebp),%esi
408a31:	8d 34 de             	lea    (%esi,%ebx,8),%esi