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)
4089fe:	76 f4                	jbe    0x4089f4
408a00:	3b f3                	cmp    %ebx,%esi
408a02:	7d 0a                	jge    0x408a0e
408a04:	8b c5                	mov    %ebp,%eax
408a06:	e8 15 bd ff ff       	call   0x404720
408a0b:	eb 17                	jmp    0x408a24
408a0d:	4e                   	dec    %esi
408a0e:	80 7c 37 ff 20       	cmpb   $0x20,-0x1(%edi,%esi,1)
408a13:	76 f8                	jbe    0x408a0d
408a15:	55                   	push   %ebp
408a16:	8b ce                	mov    %esi,%ecx
408a18:	2b cb                	sub    %ebx,%ecx
408a1a:	41                   	inc    %ecx
408a1b:	8b d3                	mov    %ebx,%edx
408a1d:	8b c7                	mov    %edi,%eax
408a1f:	e8 20 c2 ff ff       	call   0x404c44
408a24:	5d                   	pop    %ebp
408a25:	5f                   	pop    %edi
408a26:	5e                   	pop    %esi
408a27:	5b                   	pop    %ebx
408a28:	c3                   	ret
408a29:	8d 40 00             	lea    0x0(%eax),%eax
408a2c:	56                   	push   %esi
408a2d:	57                   	push   %edi
408a2e:	8b f8                	mov    %eax,%edi
408a30:	33 c0                	xor    %eax,%eax
408a32:	8b f7                	mov    %edi,%esi
408a34:	8b ce                	mov    %esi,%ecx
408a36:	85 c9                	test   %ecx,%ecx
408a38:	74 05                	je     0x408a3f
408a3a:	83 e9 04             	sub    $0x4,%ecx
408a3d:	8b 09                	mov    (%ecx),%ecx
408a3f:	85 c9                	test   %ecx,%ecx
408a41:	75 04                	jne    0x408a47
408a43:	b1 01                	mov    $0x1,%cl
408a45:	eb 21                	jmp    0x408a68
408a47:	0f b6 0f             	movzbl (%edi),%ecx
408a4a:	80 c1 bf             	add    $0xbf,%cl
408a4d:	80 e9 1a             	sub    $0x1a,%cl
408a50:	72 11                	jb     0x408a63
408a52:	80 e9 04             	sub    $0x4,%cl
408a55:	74 0c                	je     0x408a63
408a57:	80 c1 fe             	add    $0xfe,%cl
408a5a:	80 e9 1a             	sub    $0x1a,%cl
408a5d:	72 04                	jb     0x408a63
408a5f:	33 c9                	xor    %ecx,%ecx
408a61:	eb 02                	jmp    0x408a65
408a63:	b1 01                	mov    $0x1,%cl
408a65:	80 f1 01             	xor    $0x1,%cl
408a68:	84 c9                	test   %cl,%cl
408a6a:	0f 85 85 00 00 00    	jne    0x408af5
408a70:	84 d2                	test   %dl,%dl
408a72:	74 43                	je     0x408ab7
408a74:	8b d6                	mov    %esi,%edx
408a76:	85 d2                	test   %edx,%edx
408a78:	74 05                	je     0x408a7f
408a7a:	83 ea 04             	sub    $0x4,%edx
408a7d:	8b 12                	mov    (%edx),%edx
408a7f:	83 ea 02             	sub    $0x2,%edx
408a82:	7c 6f                	jl     0x408af3
408a84:	42                   	inc    %edx
408a85:	be 02 00 00 00       	mov    $0x2,%esi
408a8a:	0f b6 4c 37 ff       	movzbl -0x1(%edi,%esi,1),%ecx
408a8f:	80 e9 2e             	sub    $0x2e,%cl
408a92:	74 1d                	je     0x408ab1
408a94:	80 c1 fe             	add    $0xfe,%cl
408a97:	80 e9 0a             	sub    $0xa,%cl
408a9a:	72 15                	jb     0x408ab1
408a9c:	80 c1 f9             	add    $0xf9,%cl
408a9f:	80 e9 1a             	sub    $0x1a,%cl
408aa2:	72 0d                	jb     0x408ab1
408aa4:	80 e9 04             	sub    $0x4,%cl
408aa7:	74 08                	je     0x408ab1
408aa9:	80 c1 fe             	add    $0xfe,%cl
408aac:	80 e9 1a             	sub    $0x1a,%cl
408aaf:	73 44                	jae    0x408af5
408ab1:	46                   	inc    %esi
408ab2:	4a                   	dec    %edx
408ab3:	75 d5                	jne    0x408a8a
408ab5:	eb 3c                	jmp    0x408af3
408ab7:	8b d6                	mov    %esi,%edx
408ab9:	85 d2                	test   %edx,%edx
408abb:	74 05                	je     0x408ac2
408abd:	83 ea 04             	sub    $0x4,%edx
408ac0:	8b 12                	mov    (%edx),%edx
408ac2:	83 ea 02             	sub    $0x2,%edx
408ac5:	7c 2c                	jl     0x408af3
408ac7:	42                   	inc    %edx
408ac8:	be 02 00 00 00       	mov    $0x2,%esi
408acd:	0f b6 4c 37 ff       	movzbl -0x1(%edi,%esi,1),%ecx
408ad2:	80 c1 d0             	add    $0xd0,%cl
408ad5:	80 e9 0a             	sub    $0xa,%cl
408ad8:	72 15                	jb     0x408aef
408ada:	80 c1 f9             	add    $0xf9,%cl
408add:	80 e9 1a             	sub    $0x1a,%cl
408ae0:	72 0d                	jb     0x408aef
408ae2:	80 e9 04             	sub    $0x4,%cl
408ae5:	74 08                	je     0x408aef
408ae7:	80 c1 fe             	add    $0xfe,%cl
408aea:	80 e9 1a             	sub    $0x1a,%cl
408aed:	73 06                	jae    0x408af5
408aef:	46                   	inc    %esi
408af0:	4a                   	dec    %edx
408af1:	75 da                	jne    0x408acd
408af3:	b0 01                	mov    $0x1,%al
408af5:	5f                   	pop    %edi
408af6:	5e                   	pop    %esi
408af7:	c3                   	ret
408af8:	08 c9                	or     %cl,%cl
408afa:	75 17                	jne    0x408b13
408afc:	09 c0                	or     %eax,%eax
408afe:	79 0e                	jns    0x408b0e
408b00:	f7 d8                	neg    %eax
408b02:	e8 07 00 00 00       	call   0x408b0e
408b07:	b0 2d                	mov    $0x2d,%al
408b09:	41                   	inc    %ecx
408b0a:	4e                   	dec    %esi
408b0b:	88 06                	mov    %al,(%esi)
408b0d:	c3                   	ret
408b0e:	b9 0a 00 00 00       	mov    $0xa,%ecx
408b13:	52                   	push   %edx
408b14:	56                   	push   %esi
408b15:	31 d2                	xor    %edx,%edx
408b17:	f7 f1                	div    %ecx
408b19:	4e                   	dec    %esi
408b1a:	80 c2 30             	add    $0x30,%dl
408b1d:	80 fa 3a             	cmp    $0x3a,%dl
408b20:	72 03                	jb     0x408b25
408b22:	80 c2 07             	add    $0x7,%dl
408b25:	88 16                	mov    %dl,(%esi)
408b27:	09 c0                	or     %eax,%eax
408b29:	75 ea                	jne    0x408b15
408b2b:	59                   	pop    %ecx
408b2c:	5a                   	pop    %edx
408b2d:	29 f1                	sub    %esi,%ecx
408b2f:	29 ca                	sub    %ecx,%edx
408b31:	76 10                	jbe    0x408b43
408b33:	01 d1                	add    %edx,%ecx
408b35:	b0 30                	mov    $0x30,%al
408b37:	29 d6                	sub    %edx,%esi
408b39:	eb 03                	jmp    0x408b3e
408b3b:	88 04 32             	mov    %al,(%edx,%esi,1)
408b3e:	4a                   	dec    %edx
408b3f:	75 fa                	jne    0x408b3b
408b41:	88 06                	mov    %al,(%esi)
408b43:	c3                   	ret
408b44:	56                   	push   %esi
408b45:	89 e6                	mov    %esp,%esi
408b47:	83 ec 10             	sub    $0x10,%esp
408b4a:	31 c9                	xor    %ecx,%ecx
408b4c:	52                   	push   %edx
408b4d:	31 d2                	xor    %edx,%edx
408b4f:	e8 a4 ff ff ff       	call   0x408af8
408b54:	89 f2                	mov    %esi,%edx
408b56:	58                   	pop    %eax
408b57:	e8 b4 bc ff ff       	call   0x404810
408b5c:	83 c4 10             	add    $0x10,%esp
408b5f:	5e                   	pop    %esi
408b60:	c3                   	ret
408b61:	8d 40 00             	lea    0x0(%eax),%eax
408b64:	08 c9                	or     %cl,%cl
408b66:	75 30                	jne    0x408b98
408b68:	b9 0a 00 00 00       	mov    $0xa,%ecx
408b6d:	f7 40 04 00 00 00 80 	testl  $0x80000000,0x4(%eax)
408b74:	74 22                	je     0x408b98
408b76:	ff 70 04             	push   0x4(%eax)
408b79:	ff 30                	push   (%eax)
408b7b:	89 e0                	mov    %esp,%eax
408b7d:	f7 1c 24             	negl   (%esp)
408b80:	83 54 24 04 00       	adcl   $0x0,0x4(%esp)
408b85:	f7 5c 24 04          	negl   0x4(%esp)
408b89:	e8 0a 00 00 00       	call   0x408b98
408b8e:	c6 46 ff 2d          	movb   $0x2d,-0x1(%esi)
408b92:	4e                   	dec    %esi
408b93:	41                   	inc    %ecx